@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
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { RTETextNode } from '../../dto/nodes/text-node';
|
|
2
|
+
/**
|
|
3
|
+
* Token node for the Vega Rich Text Editor.
|
|
4
|
+
*/
|
|
5
|
+
export class RTETokenNode extends RTETextNode {
|
|
6
|
+
constructor(id, token, text, parentBlock, annotations) {
|
|
7
|
+
super(id, text, parentBlock, annotations);
|
|
8
|
+
this.type = 'token';
|
|
9
|
+
this.token = token;
|
|
10
|
+
this.text = text;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @inheritDoc
|
|
14
|
+
*/
|
|
15
|
+
static from(value, parent) {
|
|
16
|
+
const node = new RTETokenNode(value.id, value.token, value.text, parent);
|
|
17
|
+
if (value.annotations) {
|
|
18
|
+
node.annotationMap = this.generateTextAnnotationMap(value.annotations);
|
|
19
|
+
}
|
|
20
|
+
return node;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Converts the token node to a JSON representation.
|
|
24
|
+
*
|
|
25
|
+
* @returns {VegaRTETokenNode} - The JSON representation of the token node.
|
|
26
|
+
*/
|
|
27
|
+
toJSON() {
|
|
28
|
+
const json = super.toJSON();
|
|
29
|
+
return Object.assign({ id: this.id, type: this.type, text: this.text, token: this.token }, (json.annotations ? { annotations: json.annotations } : {}));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Determines if the token node is content editable.
|
|
33
|
+
*
|
|
34
|
+
* @returns {boolean} - Always returns false for token nodes.
|
|
35
|
+
*/
|
|
36
|
+
isContentEditable() {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Clones the token node.
|
|
41
|
+
*
|
|
42
|
+
* @returns {RTETokenNode} - The cloned token node.
|
|
43
|
+
*/
|
|
44
|
+
clone() {
|
|
45
|
+
return new RTETokenNode(this.id, this.token, this.text, this.parent, this.annotationMap);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Converts the token node to an HTML representation.
|
|
49
|
+
*
|
|
50
|
+
* @returns {string} - The HTML representation of the token node.
|
|
51
|
+
*/
|
|
52
|
+
toHtml() {
|
|
53
|
+
return `<span class="token" contenteditable="false" template-token-key="${this.token}" token-key="${this.token}" ${super.generateAttributeString()}>${this.text}</span>`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { methodPlaceholder } from 'vega-slimmer/core';
|
|
2
|
+
import { VegaRTEToolbarButtonRenderer } from '../base-toolbar-button-renderer';
|
|
3
|
+
import { ActionHandleStrategyRegistry } from '../../dto/action-handle-strategies/action-handle-strategy-registry';
|
|
4
|
+
import { InsertTokenNodeAction } from './insert-token-node-action';
|
|
5
|
+
/**
|
|
6
|
+
* Renderer for the token toolbar button in the Vega Rich Text Editor.
|
|
7
|
+
*/
|
|
8
|
+
export class RTETokenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer {
|
|
9
|
+
constructor(tokenList) {
|
|
10
|
+
super();
|
|
11
|
+
this.tokenList = [];
|
|
12
|
+
this.extensionContext = null;
|
|
13
|
+
this.tokenList = tokenList;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Sets the RTE extension context.
|
|
17
|
+
*
|
|
18
|
+
* @param {RTEExtensionContext} context - The context of the RTE extension.
|
|
19
|
+
*/
|
|
20
|
+
injectExtensionContext(context) {
|
|
21
|
+
this.extensionContext = context;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Renders the token toolbar button.
|
|
25
|
+
*
|
|
26
|
+
* @param {VegaRTECreateElementFunction} createElement Function to create elements in the rich text editor.
|
|
27
|
+
* @param {VegaRTEToolbarRenderContext} editorContext The render context for the editor.
|
|
28
|
+
* @returns {VegaRTERenderResult} Token toolbar button.
|
|
29
|
+
*/
|
|
30
|
+
render(createElement, editorContext) {
|
|
31
|
+
return this.renderDropdown(createElement, editorContext, {}, [
|
|
32
|
+
this.renderButton(createElement, editorContext, { label: 'Tokens', showArrowIcon: true }),
|
|
33
|
+
this.renderDropdownListTemplate(createElement, this.tokenList),
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Checks if the token toolbar button is disabled.
|
|
38
|
+
*
|
|
39
|
+
* @returns {boolean} True if the button is disabled, false otherwise.
|
|
40
|
+
*/
|
|
41
|
+
isDisabled() {
|
|
42
|
+
if (this.extensionContext) {
|
|
43
|
+
const { host, getSelectedNodes } = this.extensionContext;
|
|
44
|
+
const [startNode] = getSelectedNodes();
|
|
45
|
+
return startNode
|
|
46
|
+
? host.disabled ||
|
|
47
|
+
!ActionHandleStrategyRegistry.canHandle('INSERT_TOKEN_NODE', startNode.parent)
|
|
48
|
+
: host.disabled;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
/* istanbul ignore next */
|
|
53
|
+
/**
|
|
54
|
+
* Handles the button click event. No need this method for token button.
|
|
55
|
+
*
|
|
56
|
+
* @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
|
|
57
|
+
*/
|
|
58
|
+
handleButtonClick(editorContext) {
|
|
59
|
+
methodPlaceholder(editorContext);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Handles the token item click event from the dropdown.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} itemKey - The key of the clicked token item.
|
|
65
|
+
* @param {VegaRTEToolbarRenderContext} editorContext - The render context for the editor.
|
|
66
|
+
*/
|
|
67
|
+
handleDropdownClick(itemKey, editorContext) {
|
|
68
|
+
const token = this.tokenList.find((t) => t.key === itemKey);
|
|
69
|
+
const { rteRange } = editorContext;
|
|
70
|
+
const { startNode } = rteRange;
|
|
71
|
+
if (startNode && startNode.parent) {
|
|
72
|
+
const action = new InsertTokenNodeAction(rteRange, token);
|
|
73
|
+
startNode.parent.apply(action);
|
|
74
|
+
if (action.actionHandleResult) {
|
|
75
|
+
this.flushEditorUI();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Refreshes the editor UI.
|
|
81
|
+
*/
|
|
82
|
+
flushEditorUI() {
|
|
83
|
+
if (this.extensionContext) {
|
|
84
|
+
const { host, flushValue } = this.extensionContext;
|
|
85
|
+
flushValue(host.value);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/* istanbul ignore file */
|
|
2
|
+
export { VegaRTEContent } from './dto/content-state';
|
|
3
|
+
// block and node
|
|
4
|
+
export { RTENode } from './dto/nodes/node.abstract';
|
|
5
|
+
export { RTEDecoratorNode } from './dto/nodes/decorator-node';
|
|
6
|
+
export { RTETextNode } from './dto/nodes/text-node';
|
|
7
|
+
export { RTETextBlock } from './dto/blocks/text-block';
|
|
8
|
+
export { RTEBlock } from './dto/blocks/block.abstract';
|
|
9
|
+
// extensions
|
|
10
|
+
export { VegaRTEExtension } from './extensions/extension.abstract';
|
|
11
|
+
export { VegaRTEExtensionRenderer } from './extensions/base-extension-renderer';
|
|
12
|
+
export { VegaRTEToolbarButtonRenderer } from './extensions/base-toolbar-button-renderer';
|
|
13
|
+
export { RTETokenToolbarButtonRenderer } from './extensions/tokens/token-toolbar-button-renderer';
|
|
14
|
+
export { RTETokenNode } from './extensions/tokens/token-node';
|
|
15
|
+
export { RTETokenNodeRenderer } from './extensions/tokens/token-node-renderer';
|
|
16
|
+
export { VegaRTETokenExtension } from './extensions/tokens/token-extension';
|
|
17
|
+
export { RTELanguageToolbarButtonRenderer } from './extensions/languages/language-toolbar-button-renderer';
|
|
18
|
+
export { VegaRTELanguageExtension } from './extensions/languages/language-extension';
|
|
19
|
+
// actions
|
|
20
|
+
export { ModifyContentAction } from './dto/actions/modify-content-action.abstract';
|
|
21
|
+
export { AppendChildrenAction } from './dto/actions/append-child-nodes-action';
|
|
22
|
+
export { RemoveChildrenAction } from './dto/actions/remove-child-action';
|
|
23
|
+
export { InsertChildrenAfterAction } from './dto/actions/insert-children-after-block';
|
|
24
|
+
export { InsertChildrenBeforeAction } from './dto/actions/insert-children-before-block';
|
|
25
|
+
export { InsertNodeToNearestRootAction } from './dto/actions/insert-node-to-nearest-root-action';
|
|
26
|
+
export { UpdateCursorPositionAction } from './dto/actions/update-cursor-position-action';
|
|
27
|
+
// annotations
|
|
28
|
+
export { CustomAttributeAnnotation } from './dto/annotations/custom-attribute-annotation';
|
|
29
|
+
export { CustomClassAnnotation } from './dto/annotations/custom-class-annotation';
|
|
30
|
+
export { CustomStyleAnnotation } from './dto/annotations/custom-style-annotation';
|
|
31
|
+
// modify content strategies
|
|
32
|
+
export { ActionHandleStrategy } from './dto/action-handle-strategies/action-handle-strategy.abstract';
|
|
33
|
+
// rteRange
|
|
34
|
+
export { RTERange } from './dto/range';
|
|
35
|
+
// element to DTO strategy
|
|
36
|
+
export { ElementToDTOStrategy } from './slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract';
|
|
37
|
+
// preset toolbar buttons
|
|
38
|
+
export { VegaRTEPresetToolbarItems } from './constants/constant';
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
|
+
import { isArrayEqual } from '../../../../utils/array';
|
|
9
|
+
/**
|
|
10
|
+
* Inject the editor context to the extensions.
|
|
11
|
+
*/
|
|
12
|
+
export class RTEExtensionController extends VegaSlimmer {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
/**
|
|
16
|
+
* Flush the editor value to the host. Auto focus the last node if autoFocusLastNode is true.
|
|
17
|
+
*
|
|
18
|
+
* @param {VegaRTEContent} value - The content value to flush.
|
|
19
|
+
* @param {boolean} autoFocusLastNode - Whether to auto-focus the last node after flushing.
|
|
20
|
+
*/
|
|
21
|
+
this.flushValue = (value, autoFocusLastNode = false) => {
|
|
22
|
+
if (this.host && value) {
|
|
23
|
+
void this.valueController.flushChanges(value, true);
|
|
24
|
+
if (autoFocusLastNode) {
|
|
25
|
+
const lastNode = this.host.value.getLastNode();
|
|
26
|
+
if (lastNode) {
|
|
27
|
+
this.selectionController.enqueueSelectionRangeFutureState(lastNode, lastNode.getRangeEndOffset());
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Check if the editor is in source edit mode.
|
|
34
|
+
*
|
|
35
|
+
* @returns {boolean} - Whether the editor is in source edit mode.
|
|
36
|
+
*/
|
|
37
|
+
this.isSourceEditMode = () => {
|
|
38
|
+
return this.sourceView;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Get the currently selected nodes in the editor.
|
|
42
|
+
*
|
|
43
|
+
* @returns {RTENode[]} - An array of currently selected RTENode objects.
|
|
44
|
+
*/
|
|
45
|
+
this.getSelectedNodes = () => {
|
|
46
|
+
return this.selectionController.getSelectedNodes();
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Initializes the extension context for all registered extensions.
|
|
51
|
+
* This method is called when the component is connected and whenever the extensions property changes.
|
|
52
|
+
*/
|
|
53
|
+
initialExtensionContext() {
|
|
54
|
+
if (this.extensions && this.host) {
|
|
55
|
+
for (const extension of this.extensions) {
|
|
56
|
+
extension.initialExtension({
|
|
57
|
+
host: this.host,
|
|
58
|
+
flushValue: this.flushValue,
|
|
59
|
+
isSourceEditMode: this.isSourceEditMode,
|
|
60
|
+
getSelectedNodes: this.getSelectedNodes,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Update extension context when extensions property changes.
|
|
67
|
+
*
|
|
68
|
+
* @param {VegaRTEExtension[]} newValue - New extensions array.
|
|
69
|
+
* @param {VegaRTEExtension[]} oldValue - Old extensions array.
|
|
70
|
+
*/
|
|
71
|
+
handleExtensionsChange(newValue, oldValue) {
|
|
72
|
+
if (!isArrayEqual(newValue, oldValue, false, (a, b) => a === b ? 0 : 1)) {
|
|
73
|
+
this.initialExtensionContext();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
__decorate([
|
|
78
|
+
MapToComponentField()
|
|
79
|
+
], RTEExtensionController.prototype, "extensions", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
MapToComponentField()
|
|
82
|
+
], RTEExtensionController.prototype, "host", void 0);
|
|
83
|
+
__decorate([
|
|
84
|
+
MapToComponentField()
|
|
85
|
+
], RTEExtensionController.prototype, "sourceView", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
MapToComponentField()
|
|
88
|
+
], RTEExtensionController.prototype, "valueController", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
MapToComponentField()
|
|
91
|
+
], RTEExtensionController.prototype, "selectionController", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
MapToComponentMethod('connectedCallback')
|
|
94
|
+
], RTEExtensionController.prototype, "initialExtensionContext", null);
|
|
95
|
+
__decorate([
|
|
96
|
+
MapToComponentMethod('watchExtensions')
|
|
97
|
+
], RTEExtensionController.prototype, "handleExtensionsChange", null);
|
package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/focus-controller.js
CHANGED
|
@@ -23,13 +23,15 @@ export class FocusController extends VegaSlimmer {
|
|
|
23
23
|
this.doFocusOnLastTextNode = async (lastBlock) => {
|
|
24
24
|
const lastNode = lastBlock.getLastNode();
|
|
25
25
|
const dom = stateEntityRenderingRegistry.getDOMByEntity(lastNode);
|
|
26
|
-
if (
|
|
27
|
-
|
|
26
|
+
if (dom) {
|
|
27
|
+
if (!lastNode.isContentEditable()) {
|
|
28
|
+
this.setCaretRangeToNodeEnd(dom.parentElement, lastNode.getRangeEndOffset());
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.setCaretRangeToNodeEnd(dom.firstChild, dom.firstChild.nodeValue.length);
|
|
32
|
+
}
|
|
33
|
+
await this.vegaRichTextEditorRenderer.getRichTextContentRef().vegaFocus();
|
|
28
34
|
}
|
|
29
|
-
else {
|
|
30
|
-
this.setCaretRangeToNodeEnd(dom.firstChild, dom.firstChild.nodeValue.length);
|
|
31
|
-
}
|
|
32
|
-
await this.vegaRichTextEditorRenderer.getRichTextContentRef().vegaFocus();
|
|
33
35
|
};
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { isNonNullable } from '../../../../../../types/type-guard';
|
|
2
|
+
import htmlElementToAnnotationGenerator from './annotation-handler/html-element-to-annotation-generator';
|
|
3
|
+
import { RTETextNode } from '../../../../dto/nodes/text-node';
|
|
2
4
|
/**
|
|
3
5
|
* Abstract class to define strategies for processing HTML elements
|
|
4
6
|
*/
|
|
5
7
|
export class ElementToDTOStrategy {
|
|
8
|
+
/**
|
|
9
|
+
* Convert element style attributes to text annotations.
|
|
10
|
+
*
|
|
11
|
+
* @param {HTMLElement} element - Current html element.
|
|
12
|
+
* @param {HtmlElementToAnnotationGenerateOptions} options - Options for generating annotations.
|
|
13
|
+
* @returns {VegaRTEAnnotations} - Generated annotations.
|
|
14
|
+
*/
|
|
15
|
+
generateTextStyleAnnotations(element, options) {
|
|
16
|
+
return htmlElementToAnnotationGenerator.generate(RTETextNode, element, options);
|
|
17
|
+
}
|
|
6
18
|
}
|
|
7
19
|
/**
|
|
8
20
|
* Class to represent the output of a strategy applied to HTML elements
|
|
@@ -179,7 +179,12 @@ export class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
|
|
|
179
179
|
this.enqueueSelectionRangeFutureState(startNode, ZERO_WIDTH_SPACE.length);
|
|
180
180
|
}
|
|
181
181
|
else {
|
|
182
|
-
|
|
182
|
+
// Don't need update the range if the selected node is a non-editable text node, such as token node.
|
|
183
|
+
if (!(startNode === endNode &&
|
|
184
|
+
startNode instanceof RTETextNode &&
|
|
185
|
+
!startNode.isContentEditable())) {
|
|
186
|
+
this.enqueueSelectionRangeFutureState(startNode, startOffset, endNode, endOffset);
|
|
187
|
+
}
|
|
183
188
|
}
|
|
184
189
|
this.selectionState = null;
|
|
185
190
|
}
|
|
@@ -190,10 +195,11 @@ export class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
|
|
|
190
195
|
handleSelectionChange() {
|
|
191
196
|
if (this.disabled || this.sourceView)
|
|
192
197
|
return;
|
|
198
|
+
// Clear previous selection when handling new selection always
|
|
199
|
+
this.clearSelectionMap();
|
|
193
200
|
const selection = this.getSelection();
|
|
194
201
|
if (!selection || selection.rangeCount === 0)
|
|
195
202
|
return;
|
|
196
|
-
this.clearSelectionMap();
|
|
197
203
|
this.saveSelection();
|
|
198
204
|
const range = selection.getRangeAt(0);
|
|
199
205
|
const commonAncestor = range.commonAncestorContainer;
|
|
@@ -312,7 +318,7 @@ export class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
|
|
|
312
318
|
startNode,
|
|
313
319
|
endNode,
|
|
314
320
|
startOffset: 0,
|
|
315
|
-
endOffset: endNode.
|
|
321
|
+
endOffset: endNode.getRangeEndOffset(),
|
|
316
322
|
});
|
|
317
323
|
this.selectionState = new RTESelectionState(this.currentRange);
|
|
318
324
|
}
|
package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js
CHANGED
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { Fragment, h } from '@stencil/core';
|
|
8
8
|
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
9
9
|
import RTEDTORendererManager from '../../../../helpers/rte-manager/dto-renderer-manager';
|
|
10
|
+
import { isNonNullable } from '../../../../types/type-guard';
|
|
10
11
|
export class ToolbarRenderer extends VegaSlimmer {
|
|
11
12
|
constructor() {
|
|
12
13
|
super(...arguments);
|
|
@@ -46,32 +47,56 @@ export class ToolbarRenderer extends VegaSlimmer {
|
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
49
|
render() {
|
|
50
|
+
const [renderedItems, totalVisibleCount] = this.renderToolbarItems();
|
|
49
51
|
return (h("vega-flex", { gap: "size-8", alignItems: "center", flexWrap: "wrap" },
|
|
50
52
|
this.allowSourceEdit && (h(Fragment, null,
|
|
51
53
|
h("div", { class: "toolbar-btn-group" }, this.sourceEditToolbarButtonSlimmer.render()),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return (h("div", { class: "toolbar-btn-group" }, group.map((item) => {
|
|
55
|
-
const presetRenderer = this.getToolbarBtnRenderer(item);
|
|
56
|
-
const customRenderer = RTEDTORendererManager.getRTEToolbarButtonRenderer(item);
|
|
57
|
-
if (presetRenderer) {
|
|
58
|
-
return presetRenderer.render();
|
|
59
|
-
}
|
|
60
|
-
else if (customRenderer) {
|
|
61
|
-
return customRenderer.render(h, {
|
|
62
|
-
host: this.host,
|
|
63
|
-
rteRange: this.selectionController.getCurrentRange(),
|
|
64
|
-
sourceEditMode: this.sourceView,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
return null;
|
|
68
|
-
})));
|
|
69
|
-
})));
|
|
54
|
+
this.toolbarItems.length > 0 && totalVisibleCount > 0 && this.renderVegaDivider())),
|
|
55
|
+
renderedItems));
|
|
70
56
|
}
|
|
71
57
|
renderVegaDivider() {
|
|
72
58
|
return (h("vega-box", { height: "size-32" },
|
|
73
59
|
h("vega-divider", { direction: "vertical" })));
|
|
74
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Renders the toolbar items based on the configured toolbar groups and items.
|
|
63
|
+
*
|
|
64
|
+
* @returns {[HTMLElement[], number]} A tuple containing the rendered toolbar items and the count of displayed items.
|
|
65
|
+
*/
|
|
66
|
+
renderToolbarItems() {
|
|
67
|
+
let totalVisibleCount = 0;
|
|
68
|
+
const renderedItems = this.toolbarItems.map((group) => {
|
|
69
|
+
let visibleCountPerGroup = 0;
|
|
70
|
+
const groupElement = group
|
|
71
|
+
.map((item) => {
|
|
72
|
+
const presetRenderer = this.getToolbarBtnRenderer(item);
|
|
73
|
+
const customRenderer = RTEDTORendererManager.getRTEToolbarButtonRenderer(item);
|
|
74
|
+
if (presetRenderer) {
|
|
75
|
+
if (!presetRenderer.isHidden()) {
|
|
76
|
+
totalVisibleCount++;
|
|
77
|
+
visibleCountPerGroup++;
|
|
78
|
+
}
|
|
79
|
+
return presetRenderer.render();
|
|
80
|
+
}
|
|
81
|
+
else if (customRenderer) {
|
|
82
|
+
const renderContext = {
|
|
83
|
+
sourceEditMode: this.sourceView,
|
|
84
|
+
host: this.host,
|
|
85
|
+
rteRange: this.selectionController.getCurrentRange(),
|
|
86
|
+
};
|
|
87
|
+
if (!customRenderer.isHidden(renderContext)) {
|
|
88
|
+
totalVisibleCount++;
|
|
89
|
+
visibleCountPerGroup++;
|
|
90
|
+
}
|
|
91
|
+
return customRenderer.render(h, renderContext);
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
})
|
|
95
|
+
.filter(isNonNullable);
|
|
96
|
+
return (h("div", { class: { 'toolbar-btn-group': true, 'vega-hidden': visibleCountPerGroup < 1 } }, groupElement));
|
|
97
|
+
});
|
|
98
|
+
return [renderedItems, totalVisibleCount];
|
|
99
|
+
}
|
|
75
100
|
}
|
|
76
101
|
__decorate([
|
|
77
102
|
MapToComponentField()
|
|
@@ -17,6 +17,7 @@ import { SelectionChangeAction } from '../../../dto/actions/selection-change-act
|
|
|
17
17
|
import { generateUUID } from '../../../../../utils/misc';
|
|
18
18
|
import { waitForComponentDidRender } from '../../../../../helpers/common';
|
|
19
19
|
import { VisualModeToolbarButtonSlimmer } from './visual-mode-toolbar-button-slimmer.abstract';
|
|
20
|
+
import { ActionHandleStrategyRegistry } from '../../../dto/action-handle-strategies/action-handle-strategy-registry';
|
|
20
21
|
export class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
21
22
|
constructor() {
|
|
22
23
|
super({
|
|
@@ -64,7 +65,8 @@ export class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
64
65
|
selectedBlocks.length > 1 ||
|
|
65
66
|
selectedNodes.some((node) => {
|
|
66
67
|
var _a;
|
|
67
|
-
return !(node instanceof RTETextNode
|
|
68
|
+
return !(node instanceof RTETextNode &&
|
|
69
|
+
ActionHandleStrategyRegistry.canHandle(LinkAnnotationAction.name, node)) ||
|
|
68
70
|
node.getAnnotationByType(NodeAnnotationTypeEnum.LINK) ||
|
|
69
71
|
((_a = node.getAnnotationByType(NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code);
|
|
70
72
|
}));
|
|
@@ -44,6 +44,12 @@ export class ToolbarButtonSlimmer extends VegaSlimmer {
|
|
|
44
44
|
setIcon(icon) {
|
|
45
45
|
this.icon = icon;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Whether the button is hidden or not.
|
|
49
|
+
*/
|
|
50
|
+
isHidden() {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
47
53
|
render() {
|
|
48
54
|
return typeof this.renderBtnWrapper === 'function'
|
|
49
55
|
? this.renderBtnWrapper(this.renderBtn)
|
|
@@ -55,12 +61,6 @@ export class ToolbarButtonSlimmer extends VegaSlimmer {
|
|
|
55
61
|
isDisabled() {
|
|
56
62
|
return this.disabled;
|
|
57
63
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Whether the button is hidden or not.
|
|
60
|
-
*/
|
|
61
|
-
isHidden() {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
64
|
preventLostFocus() {
|
|
65
65
|
return {
|
|
66
66
|
onMouseDown: (e) => e.preventDefault(),
|
|
@@ -13,15 +13,6 @@ export class VisualModeToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
13
13
|
constructor(config) {
|
|
14
14
|
super(config);
|
|
15
15
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Determines if the button should be disabled.
|
|
18
|
-
* Determines whether should disable the button or not when the editor is not in source view mode, except for the source edit button.
|
|
19
|
-
*
|
|
20
|
-
* @returns {boolean} - True if the button is disabled, false otherwise.
|
|
21
|
-
*/
|
|
22
|
-
isDisabled() {
|
|
23
|
-
return super.isDisabled() && !this.sourceView;
|
|
24
|
-
}
|
|
25
16
|
/**
|
|
26
17
|
* Determines if the button should be hidden.
|
|
27
18
|
* Hide the button when the editor is in source view mode, except for the source edit button.
|
|
@@ -31,6 +22,15 @@ export class VisualModeToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
31
22
|
isHidden() {
|
|
32
23
|
return this.sourceView;
|
|
33
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Determines if the button should be disabled.
|
|
27
|
+
* Determines whether should disable the button or not when the editor is not in source view mode, except for the source edit button.
|
|
28
|
+
*
|
|
29
|
+
* @returns {boolean} - True if the button is disabled, false otherwise.
|
|
30
|
+
*/
|
|
31
|
+
isDisabled() {
|
|
32
|
+
return super.isDisabled() && !this.sourceView;
|
|
33
|
+
}
|
|
34
34
|
}
|
|
35
35
|
__decorate([
|
|
36
36
|
MapToComponentField()
|
|
@@ -2897,5 +2897,46 @@ Line 1
|
|
|
2897
2897
|
expect(VegaRTEContent.fromJSON(content, { autoMatchFormat: false }).toHtml()).toMatchSnapshot();
|
|
2898
2898
|
expect(VegaRTEContent.fromJSON(content).toHtml()).toMatchSnapshot();
|
|
2899
2899
|
});
|
|
2900
|
+
it('should getLastNode work properly', () => {
|
|
2901
|
+
const content = [
|
|
2902
|
+
{
|
|
2903
|
+
id: '1753954267610',
|
|
2904
|
+
type: 'html-block',
|
|
2905
|
+
htmlTag: 'section',
|
|
2906
|
+
children: [
|
|
2907
|
+
{
|
|
2908
|
+
id: '1753954266383',
|
|
2909
|
+
type: 'heading-1',
|
|
2910
|
+
nodes: [
|
|
2911
|
+
{
|
|
2912
|
+
id: '1753954273029',
|
|
2913
|
+
type: 'text',
|
|
2914
|
+
text: 'WWF',
|
|
2915
|
+
},
|
|
2916
|
+
],
|
|
2917
|
+
},
|
|
2918
|
+
{
|
|
2919
|
+
id: '1753954263572',
|
|
2920
|
+
type: 'paragraph',
|
|
2921
|
+
nodes: [
|
|
2922
|
+
{
|
|
2923
|
+
id: '1753954266500',
|
|
2924
|
+
type: 'text',
|
|
2925
|
+
text: 'The World Wide Fund for Nature (WWF) is....',
|
|
2926
|
+
},
|
|
2927
|
+
],
|
|
2928
|
+
},
|
|
2929
|
+
],
|
|
2930
|
+
},
|
|
2931
|
+
];
|
|
2932
|
+
let instance = VegaRTEContent.fromJSON([]);
|
|
2933
|
+
expect(instance.getLastNode()).toBeNull();
|
|
2934
|
+
instance = VegaRTEContent.fromJSON(content);
|
|
2935
|
+
expect(instance.getLastNode().toJSON()).toEqual({
|
|
2936
|
+
id: '1753954266500',
|
|
2937
|
+
type: 'text',
|
|
2938
|
+
text: 'The World Wide Fund for Nature (WWF) is....',
|
|
2939
|
+
});
|
|
2940
|
+
});
|
|
2900
2941
|
});
|
|
2901
2942
|
});
|