@globalpayments/vega 2.66.0 → 2.68.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-ab28f910.js → app-globals-f7106a22.js} +15 -14
- package/dist/cjs/{child-nodes-event-prevent-slimmer-eb803b14.js → child-nodes-event-prevent-slimmer-f8840f1b.js} +1 -1
- package/dist/cjs/{code-block-ab97a0a0.js → code-block-39074880.js} +514 -319
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-5630341e.js → component-value-history-controller-slimmer.abstract-ddedf543.js} +2 -2
- package/dist/cjs/{design-token-847739f1.js → design-token-e14a4e66.js} +1 -1
- package/dist/cjs/{dto-renderer-manager-d0f0f2c0.js → dto-renderer-manager-b7969d6c.js} +1587 -1563
- package/dist/cjs/{element-appender-slimmer-aead9bbb.js → element-appender-slimmer-7ee27ab3.js} +5 -5
- package/dist/cjs/{event-emit-slimmer-d21a0935.js → event-emit-slimmer-7afe8d78.js} +1 -1
- package/dist/cjs/{token-extension-aa8d5cce.js → function-extension-f0e845f2.js} +1019 -96
- package/dist/cjs/{image-annotation-action-d84de785.js → image-annotation-action-7f0626c8.js} +15 -25
- package/dist/cjs/index.cjs.js +36 -24
- package/dist/cjs/{internal-vega-event-manager-4d1ce667.js → internal-vega-event-manager-45d451de.js} +5 -2
- package/dist/cjs/{language-extension-d257e65d.js → language-extension-d0103d1a.js} +5 -5
- package/dist/cjs/loader.cjs.js +8 -8
- package/dist/cjs/{public-rules-d2b9b8f0.js → public-rules-8b67eaba.js} +3 -3
- package/dist/cjs/{range-d610028e.js → range-002671b6.js} +1 -1
- package/dist/cjs/{responsive-format-facade-71e7b74c.js → responsive-format-facade-347db035.js} +3 -3
- package/dist/cjs/{rich-text-editor-required-rule-a8fe5f50.js → rich-text-editor-required-rule-5392bd8a.js} +1 -1
- package/dist/cjs/{style-formatter-6facb42b.js → style-formatter-0a09f0dd.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +7 -7
- package/dist/cjs/vega-app-header-button.cjs.entry.js +8 -8
- package/dist/cjs/vega-banner.cjs.entry.js +2 -2
- package/dist/cjs/vega-box.cjs.entry.js +8 -8
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +3 -3
- package/dist/cjs/vega-button-circle.cjs.entry.js +9 -9
- package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-button-link.cjs.entry.js +3 -3
- package/dist/cjs/vega-button.cjs.entry.js +8 -8
- package/dist/cjs/vega-calendar_4.cjs.entry.js +307 -269
- package/dist/cjs/vega-card.cjs.entry.js +7 -7
- package/dist/cjs/vega-carousel.cjs.entry.js +7 -7
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-chip.cjs.entry.js +9 -9
- package/dist/cjs/vega-code-block.cjs.entry.js +6 -6
- package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
- package/dist/cjs/vega-combo-box.cjs.entry.js +3 -3
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +12 -12
- package/dist/cjs/vega-dialog_2.cjs.entry.js +138 -44
- package/dist/cjs/vega-divider.cjs.entry.js +7 -7
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +9 -9
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-label.cjs.entry.js +24 -5
- package/dist/cjs/vega-file-uploader.cjs.entry.js +2 -2
- package/dist/cjs/vega-flag-icon.cjs.entry.js +6 -6
- package/dist/cjs/vega-flex.cjs.entry.js +8 -8
- package/dist/cjs/vega-font.cjs.entry.js +7 -7
- package/dist/cjs/vega-form.cjs.entry.js +3 -3
- package/dist/cjs/vega-grid.cjs.entry.js +7 -7
- package/dist/cjs/vega-icon.cjs.entry.js +6 -6
- package/dist/cjs/vega-image-uploader.cjs.entry.js +8 -8
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +3 -3
- package/dist/cjs/vega-input-numeric.cjs.entry.js +3 -3
- package/dist/cjs/vega-input-passcode.cjs.entry.js +3 -3
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-range.cjs.entry.js +3 -3
- package/dist/cjs/vega-input-select.cjs.entry.js +38 -14
- package/dist/cjs/vega-input.cjs.entry.js +14 -3
- package/dist/cjs/vega-item-toggle.cjs.entry.js +2 -2
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +11 -11
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +8 -8
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +2 -2
- package/dist/cjs/vega-pagination.cjs.entry.js +7 -7
- package/dist/cjs/vega-popover_2.cjs.entry.js +9 -9
- package/dist/cjs/vega-progress-tracker.cjs.entry.js +2 -2
- package/dist/cjs/vega-radio_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +93 -16
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +107 -54
- package/dist/cjs/vega-segment-control.cjs.entry.js +2 -2
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +8 -8
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +10 -10
- package/dist/cjs/vega-signature-capture.cjs.entry.js +7 -7
- package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-table_8.cjs.entry.js +11 -11
- package/dist/cjs/vega-textarea.cjs.entry.js +24 -4
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +9 -9
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +7 -7
- package/dist/cjs/vega.cjs.js +8 -8
- package/dist/collection/components/vega-calendar/slimmers/common/helpers/calendar-event-sorter.js +3 -3
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +1 -1
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/layout/day-view-timed-event-layout-column.js +1 -1
- package/dist/collection/components/vega-calendar/vega-calendar-event/slimmers/renderers/vega-calendar-event-renderer.js +3 -4
- package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.js +11 -3
- package/dist/collection/components/vega-field-label/vega-field-label.js +42 -0
- package/dist/collection/components/vega-input/vega-input.js +48 -2
- package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-renderer.js +16 -5
- package/dist/collection/components/vega-input-select/vega-input-select.css +2 -44
- package/dist/collection/components/vega-input-select/vega-input-select.js +81 -1
- package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.js +95 -16
- package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-z-index-controller.js +4 -1
- package/dist/collection/components/vega-modal/slimmers/models/vega-modal-open-state.js +9 -0
- package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +4 -1
- package/dist/collection/components/vega-modal/vega-modal.js +19 -16
- package/dist/collection/components/vega-rich-text-content/slimmers/controllers/vega-rich-text-content-extensions-styles-controller.js +60 -0
- package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +7 -1
- package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +17 -1
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor-registry.js +61 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor.abstract.js +5 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.js +30 -6
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.js +10 -3
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-or-decorator-node-strategy.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.js +28 -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/paste-content-action.js +17 -0
- package/dist/collection/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.js +5 -0
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/annotation-style.js +87 -0
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +27 -9
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +1 -12
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +6 -0
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +14 -5
- package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +11 -0
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +7 -37
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +14 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/base-extension-renderer.js +19 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +44 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +51 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-new-paragraph-interceptor.js +30 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-paste-content-interceptor.js +25 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/function-block-insert-paragraph-strategy.js +30 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.js +99 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/paste-plain-text-strategy.js +68 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/actions/insert-function-block-action.js +15 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/actions/paste-plain-text-action.js +17 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js +97 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.js +73 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.js +69 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.js +49 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.js +27 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.js +55 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +75 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.js +38 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +71 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.js +20 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +3 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +5 -6
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/public-api.js +8 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/delete-selected-nodes-controller.js +9 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.js +0 -12
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-line-break-handler.js +3 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +12 -10
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bold-toolbar-button-slimmer.js +2 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +30 -5
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/clear-style-toolbar-button-slimmer.js +1 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/code-block-toolbar-button-slimmer.js +10 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/code-toolbar-button-slimmer.js +2 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +4 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/italic-toolbar-button-slimmer.js +2 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/less-indent-toolbar-button-slimmer.js +1 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +1 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/more-indent-toolbar-button-slimmer.js +1 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/strikethrough-toolbar-button-slimmer.js +2 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +2 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +2 -5
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/underline-toolbar-button-slimmer.js +2 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.js +11 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +4 -1
- package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/action-handle-strategy-registry.test.js +32 -2
- package/dist/collection/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-delete-node-content-strategy.test.js +69 -0
- package/dist/collection/components/vega-rich-text-editor/test/dto/annotation-style.test.js +70 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.css +3 -0
- package/dist/collection/components/vega-selection-chip/vega-selection-chip.js +1 -1
- package/dist/collection/components/vega-table/vega-table.css +2 -1
- package/dist/collection/components/vega-textarea/vega-textarea.js +88 -2
- package/dist/collection/global/scripts/before-vega-load.js +2 -0
- package/dist/collection/helpers/calendar/calendar-date-time.js +136 -0
- package/dist/collection/helpers/calendar/calendar-date.js +10 -4
- package/dist/collection/helpers/calendar/calendar-event.js +38 -193
- package/dist/collection/helpers/calendar/calendar-time.js +120 -0
- package/dist/collection/helpers/calendar/index.js +2 -0
- package/dist/collection/helpers/calendar/test/calendar-date-time.test.js +27 -0
- package/dist/collection/helpers/calendar/test/calendar-event.test.js +24 -22
- package/dist/collection/helpers/calendar/test/calendar-period/day-period.test.js +2 -2
- package/dist/collection/helpers/calendar/test/calendar-period/month-period.test.js +2 -2
- package/dist/collection/helpers/calendar/test/calendar-period/week-period.test.js +6 -6
- package/dist/collection/helpers/calendar/test/calendar-time.test.js +45 -0
- package/dist/collection/helpers/calendar/test/utils.test.js +1 -29
- package/dist/collection/helpers/calendar/utils.js +0 -66
- package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +5 -2
- package/dist/collection/helpers/rte-manager/dto-action-strategy-manager.js +2 -0
- package/dist/esm/{app-globals-37a60cc1.js → app-globals-2f689986.js} +6 -5
- package/dist/esm/{child-nodes-event-prevent-slimmer-735cb880.js → child-nodes-event-prevent-slimmer-76331524.js} +1 -1
- package/dist/esm/{code-block-11b2bc1c.js → code-block-e8839202.js} +511 -318
- package/dist/esm/{component-value-history-controller-slimmer.abstract-16c5cb96.js → component-value-history-controller-slimmer.abstract-c6f94113.js} +2 -2
- package/dist/esm/{design-token-297dc528.js → design-token-e9e6b011.js} +1 -1
- package/dist/esm/{dto-renderer-manager-a1a3b6d2.js → dto-renderer-manager-7abc53bf.js} +1587 -1565
- package/dist/esm/{element-appender-slimmer-f7233708.js → element-appender-slimmer-8dbc8387.js} +2 -2
- package/dist/esm/{event-emit-slimmer-28fd360c.js → event-emit-slimmer-4e28e9f8.js} +1 -1
- package/dist/esm/{token-extension-b690953f.js → function-extension-eb1d062f.js} +1018 -97
- package/dist/esm/{image-annotation-action-fc46c920.js → image-annotation-action-7957653a.js} +14 -24
- package/dist/esm/index.js +9 -9
- package/dist/esm/{internal-vega-event-manager-a5a5938d.js → internal-vega-event-manager-516aa721.js} +5 -2
- package/dist/esm/{language-extension-314a2b18.js → language-extension-3331131f.js} +3 -3
- package/dist/esm/loader.js +8 -8
- package/dist/esm/{public-rules-c6a6946d.js → public-rules-e613dead.js} +3 -3
- package/dist/esm/{range-b78254de.js → range-adf206fd.js} +1 -1
- package/dist/esm/{responsive-format-facade-a41e1be7.js → responsive-format-facade-b0712993.js} +3 -3
- package/dist/esm/{rich-text-editor-required-rule-d50c24da.js → rich-text-editor-required-rule-43857573.js} +1 -1
- package/dist/esm/{style-formatter-f7effaac.js → style-formatter-a20a1ef4.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +7 -7
- package/dist/esm/vega-app-header-button.entry.js +8 -8
- package/dist/esm/vega-banner.entry.js +2 -2
- package/dist/esm/vega-box.entry.js +8 -8
- package/dist/esm/vega-breadcrumb.entry.js +3 -3
- package/dist/esm/vega-button-circle.entry.js +9 -9
- package/dist/esm/vega-button-group_2.entry.js +3 -3
- package/dist/esm/vega-button-link.entry.js +3 -3
- package/dist/esm/vega-button.entry.js +8 -8
- package/dist/esm/vega-calendar_4.entry.js +307 -269
- package/dist/esm/vega-card.entry.js +7 -7
- package/dist/esm/vega-carousel.entry.js +7 -7
- package/dist/esm/vega-checkbox_2.entry.js +3 -3
- package/dist/esm/vega-chip.entry.js +9 -9
- package/dist/esm/vega-code-block.entry.js +6 -6
- package/dist/esm/vega-color-picker.entry.js +2 -2
- package/dist/esm/vega-combo-box.entry.js +3 -3
- package/dist/esm/vega-date-picker_2.entry.js +8 -8
- package/dist/esm/vega-dialog_2.entry.js +132 -38
- package/dist/esm/vega-divider.entry.js +7 -7
- package/dist/esm/vega-dropdown_5.entry.js +9 -9
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-label.entry.js +24 -5
- package/dist/esm/vega-file-uploader.entry.js +2 -2
- package/dist/esm/vega-flag-icon.entry.js +6 -6
- package/dist/esm/vega-flex.entry.js +8 -8
- package/dist/esm/vega-font.entry.js +7 -7
- package/dist/esm/vega-form.entry.js +3 -3
- package/dist/esm/vega-grid.entry.js +7 -7
- package/dist/esm/vega-icon.entry.js +6 -6
- package/dist/esm/vega-image-uploader.entry.js +7 -7
- package/dist/esm/vega-input-credit-card.entry.js +3 -3
- package/dist/esm/vega-input-numeric.entry.js +3 -3
- package/dist/esm/vega-input-passcode.entry.js +3 -3
- package/dist/esm/vega-input-phone-number.entry.js +6 -6
- package/dist/esm/vega-input-range.entry.js +3 -3
- package/dist/esm/vega-input-select.entry.js +38 -14
- package/dist/esm/vega-input.entry.js +14 -3
- package/dist/esm/vega-item-toggle.entry.js +2 -2
- package/dist/esm/vega-left-nav_5.entry.js +7 -7
- package/dist/esm/vega-loader-wrapper_2.entry.js +6 -6
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +2 -2
- package/dist/esm/vega-pagination.entry.js +7 -7
- package/dist/esm/vega-popover_2.entry.js +9 -9
- package/dist/esm/vega-progress-tracker.entry.js +2 -2
- package/dist/esm/vega-radio_2.entry.js +3 -3
- package/dist/esm/vega-rich-text-content.entry.js +93 -16
- package/dist/esm/vega-rich-text-editor_4.entry.js +107 -54
- package/dist/esm/vega-segment-control.entry.js +2 -2
- package/dist/esm/vega-selection-chip_2.entry.js +8 -8
- package/dist/esm/vega-selection-tile_2.entry.js +3 -3
- package/dist/esm/vega-sidenav_3.entry.js +6 -6
- package/dist/esm/vega-signature-capture.entry.js +7 -7
- package/dist/esm/vega-stepper.entry.js +3 -3
- package/dist/esm/vega-tab-group_2.entry.js +3 -3
- package/dist/esm/vega-table_8.entry.js +8 -8
- package/dist/esm/vega-textarea.entry.js +25 -5
- package/dist/esm/vega-time-picker_2.entry.js +9 -9
- package/dist/esm/vega-toggle-switch.entry.js +2 -2
- package/dist/esm/vega-tooltip_2.entry.js +7 -7
- package/dist/esm/vega.js +8 -8
- package/dist/sri/vega-sri-manifest.json +273 -273
- package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-suffix-element-renderer.d.ts +1 -0
- package/dist/types/components/vega-field-label/types.d.ts +12 -0
- package/dist/types/components/vega-field-label/vega-field-label.d.ts +13 -1
- package/dist/types/components/vega-input/vega-input.d.ts +14 -2
- package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-renderer.d.ts +3 -0
- package/dist/types/components/vega-input-select/vega-input-select.d.ts +25 -0
- package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.d.ts +31 -2
- package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-z-index-controller.d.ts +1 -0
- package/dist/types/components/vega-modal/slimmers/models/vega-modal-open-state.d.ts +9 -0
- package/dist/types/components/vega-modal/slimmers/renderers/vega-modal-renderer.d.ts +1 -0
- package/dist/types/components/vega-modal/types.d.ts +9 -0
- package/dist/types/components/vega-modal/vega-modal.d.ts +8 -2
- package/dist/types/components/vega-rich-text-content/slimmers/controllers/vega-rich-text-content-extensions-styles-controller.d.ts +26 -0
- package/dist/types/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.d.ts +1 -0
- package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor-registry.d.ts +42 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-interceptor.abstract.d.ts +26 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/action-handle-strategy-registry.d.ts +9 -2
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.d.ts +12 -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/paste-content-action.d.ts +20 -0
- package/dist/types/components/vega-rich-text-editor/dto/actions/update-cursor-position-action.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/dto/annotations/annotation-style.d.ts +46 -0
- package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +10 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +3 -3
- package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +0 -11
- package/dist/types/components/vega-rich-text-editor/extensions/base-extension-renderer.d.ts +16 -0
- package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +19 -3
- package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +36 -3
- package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-new-paragraph-interceptor.d.ts +25 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-interceptor/prevent-paste-content-interceptor.d.ts +17 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/function-block-insert-paragraph-strategy.d.ts +18 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.d.ts +27 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/paste-plain-text-strategy.d.ts +26 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/actions/insert-function-block-action.d.ts +17 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/actions/paste-plain-text-action.d.ts +17 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/function-block.d.ts +58 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.d.ts +55 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.d.ts +48 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.d.ts +27 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.d.ts +32 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +19 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.d.ts +25 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.d.ts +33 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.d.ts +12 -0
- package/dist/types/components/vega-rich-text-editor/extensions/languages/language-extension.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +3 -4
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +8 -2
- package/dist/types/components/vega-rich-text-editor/public-api.d.ts +8 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.d.ts +2 -11
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/state-entity-rendering-registry.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/code-block-toolbar-button-slimmer.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/visual-mode-toolbar-button-slimmer.abstract.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/test/dto/action-handle-strategies/block-delete-node-content-strategy.test.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/test/dto/annotation-style.test.d.ts +1 -0
- package/dist/types/components/vega-textarea/vega-textarea.d.ts +26 -0
- package/dist/types/components.d.ts +66 -4
- package/dist/types/helpers/calendar/calendar-date-time.d.ts +76 -0
- package/dist/types/helpers/calendar/calendar-event.d.ts +18 -57
- package/dist/types/helpers/calendar/calendar-time.d.ts +64 -0
- package/dist/types/helpers/calendar/index.d.ts +2 -0
- package/dist/types/helpers/calendar/test/calendar-date-time.test.d.ts +1 -0
- package/dist/types/helpers/calendar/test/calendar-time.test.d.ts +1 -0
- package/dist/types/helpers/calendar/utils.d.ts +0 -25
- package/dist/types/types/components.type.d.ts +1 -1
- package/dist/types/types/public-api.d.ts +2 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-6f7d42a0.entry.js → p-00376f71.entry.js} +1 -1
- package/dist/vega/p-018d70a5.js +1 -0
- package/dist/vega/p-0849f85e.js +1 -0
- package/dist/vega/{p-b431f9d5.entry.js → p-0a55f984.entry.js} +1 -1
- package/dist/vega/p-0f7dec29.entry.js +1 -0
- package/dist/vega/{p-47cae62d.entry.js → p-113d305b.entry.js} +1 -1
- package/dist/vega/{p-015cdbe7.entry.js → p-115b42e6.entry.js} +1 -1
- package/dist/vega/p-16358fec.entry.js +1 -0
- package/dist/vega/{p-af5bfe34.js → p-16d68187.js} +1 -1
- package/dist/vega/{p-92a22562.entry.js → p-18e8c54a.entry.js} +1 -1
- package/dist/vega/{p-6f6ccf67.entry.js → p-1922303e.entry.js} +1 -1
- package/dist/vega/{p-74d61782.entry.js → p-19256107.entry.js} +1 -1
- package/dist/vega/{p-59298f5e.entry.js → p-1dcb1fcd.entry.js} +2 -2
- package/dist/vega/{p-7f69081b.entry.js → p-1dd7f8b2.entry.js} +1 -1
- package/dist/vega/{p-d006e732.entry.js → p-22fe8c61.entry.js} +1 -1
- package/dist/vega/{p-524693d8.entry.js → p-238afe1b.entry.js} +1 -1
- package/dist/vega/p-240d9d35.entry.js +1 -0
- package/dist/vega/{p-b82d3915.entry.js → p-24419ebe.entry.js} +1 -1
- package/dist/vega/p-2478f65e.js +1 -0
- package/dist/vega/{p-358e9800.entry.js → p-2c945862.entry.js} +1 -1
- package/dist/vega/{p-5f58d1da.entry.js → p-2e32fbe6.entry.js} +1 -1
- package/dist/vega/p-2f04d2ac.js +1 -0
- package/dist/vega/p-30a8d9d6.entry.js +1 -0
- package/dist/vega/{p-e6cccee4.js → p-369810ae.js} +1 -1
- package/dist/vega/p-3ad87199.entry.js +1 -0
- package/dist/vega/{p-fe2e859f.entry.js → p-3b800f1b.entry.js} +1 -1
- package/dist/vega/p-437f865f.js +1 -0
- package/dist/vega/{p-de624f7d.entry.js → p-48bc03fa.entry.js} +1 -1
- package/dist/vega/{p-46830028.entry.js → p-54ddd06f.entry.js} +1 -1
- package/dist/vega/{p-5a0524ab.entry.js → p-56636a58.entry.js} +1 -1
- package/dist/vega/{p-fc8c5869.entry.js → p-56f77466.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-ab1001f5.entry.js → p-61d9cdf9.entry.js} +1 -1
- package/dist/vega/{p-39b9c57b.entry.js → p-626246b4.entry.js} +1 -1
- package/dist/vega/{p-ff3bb4e2.entry.js → p-634499cb.entry.js} +1 -1
- package/dist/vega/p-6609d87e.entry.js +1 -0
- package/dist/vega/p-69d27eaf.entry.js +1 -0
- package/dist/vega/{p-7efb5ebe.entry.js → p-705dad87.entry.js} +1 -1
- package/dist/vega/{p-8d574fbd.entry.js → p-75b5894f.entry.js} +1 -1
- package/dist/vega/{p-00071542.entry.js → p-76b1dae4.entry.js} +1 -1
- package/dist/vega/{p-54b62ecf.js → p-7747c163.js} +1 -1
- package/dist/vega/{p-0ed53cce.entry.js → p-787caad3.entry.js} +1 -1
- package/dist/vega/{p-129c0ce1.js → p-79e6e12c.js} +1 -1
- package/dist/vega/{p-cc519f53.entry.js → p-7dde3be9.entry.js} +1 -1
- package/dist/vega/p-8233d814.entry.js +1 -0
- package/dist/vega/{p-5e32866d.entry.js → p-83a50ac2.entry.js} +1 -1
- package/dist/vega/p-8506e8c3.js +1 -0
- package/dist/vega/{p-47fa359b.js → p-85407fb9.js} +1 -1
- package/dist/vega/{p-892cbe7c.entry.js → p-880569ec.entry.js} +1 -1
- package/dist/vega/{p-0113a83c.entry.js → p-8dba59a6.entry.js} +1 -1
- package/dist/vega/p-94e167b8.entry.js +1 -0
- package/dist/vega/{p-b2aaab66.entry.js → p-98fb9eaa.entry.js} +1 -1
- package/dist/vega/{p-3288a65b.entry.js → p-99bf5993.entry.js} +1 -1
- package/dist/vega/p-a211ae63.js +1 -0
- package/dist/vega/{p-fef846d5.entry.js → p-a2506cb5.entry.js} +1 -1
- package/dist/vega/{p-4e33fff6.entry.js → p-a6fb5a40.entry.js} +1 -1
- package/dist/vega/{p-bee1cc34.entry.js → p-b5060e84.entry.js} +1 -1
- package/dist/vega/{p-616cd622.entry.js → p-b78670c9.entry.js} +1 -1
- package/dist/vega/{p-d5761532.entry.js → p-b8558278.entry.js} +1 -1
- package/dist/vega/{p-8d655fd2.entry.js → p-bb0f2b5f.entry.js} +1 -1
- package/dist/vega/{p-a7631c6b.js → p-bb37a401.js} +1 -1
- package/dist/vega/p-bccee21e.js +1 -0
- package/dist/vega/{p-2553031f.entry.js → p-bd0e55a2.entry.js} +1 -1
- package/dist/vega/{p-65693321.entry.js → p-c0223a17.entry.js} +1 -1
- package/dist/vega/{p-2d430dc4.entry.js → p-c26332ae.entry.js} +1 -1
- package/dist/vega/{p-7f9ec104.entry.js → p-c54148fb.entry.js} +1 -1
- package/dist/vega/{p-276b1163.entry.js → p-d3905af1.entry.js} +2 -2
- package/dist/vega/p-d4893487.js +1 -0
- package/dist/vega/{p-d1dacaeb.entry.js → p-d67200e8.entry.js} +1 -1
- package/dist/vega/{p-725f0a2c.js → p-db57dddc.js} +1 -1
- package/dist/vega/{p-ed8bc4f0.entry.js → p-de02f404.entry.js} +1 -1
- package/dist/vega/{p-d4452dbc.entry.js → p-de8c5fae.entry.js} +1 -1
- package/dist/vega/{p-7b145620.js → p-de97c6d9.js} +1 -1
- package/dist/vega/{p-34800282.entry.js → p-e0979451.entry.js} +1 -1
- package/dist/vega/{p-1a3cb65e.entry.js → p-e6351dab.entry.js} +1 -1
- package/dist/vega/{p-8d096fea.entry.js → p-f0fb3fdd.entry.js} +1 -1
- package/dist/vega/{p-ea05a2fc.entry.js → p-f3399ef1.entry.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/vega/p-019f7f95.js +0 -1
- package/dist/vega/p-03a1e82e.entry.js +0 -1
- package/dist/vega/p-0d1eca78.entry.js +0 -1
- package/dist/vega/p-16370cfb.js +0 -1
- package/dist/vega/p-3a7f177a.entry.js +0 -1
- package/dist/vega/p-41c3fcb4.js +0 -1
- package/dist/vega/p-81105691.entry.js +0 -1
- package/dist/vega/p-822c6092.js +0 -1
- package/dist/vega/p-8edf3513.js +0 -1
- package/dist/vega/p-a1b7a179.entry.js +0 -1
- package/dist/vega/p-ab8f99e9.entry.js +0 -1
- package/dist/vega/p-bf7f755b.js +0 -1
- package/dist/vega/p-bf9476cd.entry.js +0 -1
- package/dist/vega/p-c1da8328.entry.js +0 -1
- package/dist/vega/p-c6ce2869.js +0 -1
- package/dist/vega/p-d0e6454e.entry.js +0 -1
- package/dist/vega/p-d88e88a7.js +0 -1
- package/dist/vega/p-f360c9ba.js +0 -1
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { RTEBlock } from './block.abstract';
|
|
2
|
-
import RTEDTOClassManager from '../../../../helpers/rte-manager/dto-class-manager';
|
|
3
|
-
import { isNonNullable } from '../../../../types/type-guard';
|
|
4
2
|
/**
|
|
5
3
|
* HTML Block
|
|
6
4
|
*/
|
|
@@ -24,16 +22,7 @@ export class RTEHtmlBlock extends RTEBlock {
|
|
|
24
22
|
if (annotations) {
|
|
25
23
|
super.convertAnnotationsToMap(htmlBlock.annotationMap, annotations);
|
|
26
24
|
}
|
|
27
|
-
htmlBlock.children = block.children
|
|
28
|
-
.map((child) => {
|
|
29
|
-
const BlockClass = RTEDTOClassManager.getRTEBlockClass(child.type);
|
|
30
|
-
if (BlockClass) {
|
|
31
|
-
const block = BlockClass.from(child, options);
|
|
32
|
-
block.parent = htmlBlock;
|
|
33
|
-
return block;
|
|
34
|
-
}
|
|
35
|
-
})
|
|
36
|
-
.filter(isNonNullable);
|
|
25
|
+
htmlBlock.children = this.generateBlockChildren(block.children, options, htmlBlock);
|
|
37
26
|
return htmlBlock;
|
|
38
27
|
}
|
|
39
28
|
/**
|
|
@@ -14,6 +14,10 @@ import { ListItemReplaceNestListStrategy } from '../action-handle-strategies/mod
|
|
|
14
14
|
import { BlockMergeNodesStrategy } from '../action-handle-strategies/modify-content-strategies/block-merge-nodes-strategy';
|
|
15
15
|
import { ListItemInsertImageStrategy } from '../action-handle-strategies/modify-content-strategies/list-item-insert-image-strategy';
|
|
16
16
|
import { isNonNullable } from '../../../../types/type-guard';
|
|
17
|
+
import { TextStyleAnnotationAction } from '../actions/text-style-annotation-action';
|
|
18
|
+
import { BlockUpdateTextStyleStrategy } from '../action-handle-strategies/apply-annotation-strategies/block-update-text-style-strategy';
|
|
19
|
+
import { HorizontalAlignmentAnnotationAction } from '../actions/horizontal-alignment-annotation-action';
|
|
20
|
+
import { BlockUpdateHorizontalAlignmentStrategy } from '../action-handle-strategies/apply-annotation-strategies/block-update-horizontal-alignment-strategy';
|
|
17
21
|
/**
|
|
18
22
|
* List item block
|
|
19
23
|
*/
|
|
@@ -116,6 +120,8 @@ export class RTEListItemBlock extends RTETextBlock {
|
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
122
|
(() => {
|
|
123
|
+
ActionHandleStrategyRegistry.register(TextStyleAnnotationAction.name, RTEListItemBlock.name, new BlockUpdateTextStyleStrategy());
|
|
124
|
+
ActionHandleStrategyRegistry.register(HorizontalAlignmentAnnotationAction.name, RTEListItemBlock.name, new BlockUpdateHorizontalAlignmentStrategy());
|
|
119
125
|
ActionHandleStrategyRegistry.register(ModifyContentActionType.LINE_BREAK_SINGLE_BLOCK, RTEListItemBlock.name, new BlockInsertLineBreakStrategy());
|
|
120
126
|
ActionHandleStrategyRegistry.register(ModifyContentActionType.LINE_BREAK_MULTIPLE_BLOCKS, RTEListItemBlock.name, new BlockInsertLineBreakWithBlocksStrategy());
|
|
121
127
|
ActionHandleStrategyRegistry.register(ModifyContentActionType.DELETE_NEST_LIST, RTEListItemBlock.name, new ListItemRemoveNestListStrategy());
|
|
@@ -140,11 +140,7 @@ export class RTETextBlock extends RTEBlock {
|
|
|
140
140
|
toHtml() {
|
|
141
141
|
const BlockTag = this.getBlockTag();
|
|
142
142
|
const attrStr = super.generateAttributeString();
|
|
143
|
-
const
|
|
144
|
-
let nodesHtml = this.children.map((node) => node.toHtml()).join('');
|
|
145
|
-
if (linkGroupAnnotation && this.children.length > 0) {
|
|
146
|
-
nodesHtml = this.generateLinkHtml(linkGroupAnnotation, nodesHtml);
|
|
147
|
-
}
|
|
143
|
+
const nodesHtml = this.getChildrenHtml();
|
|
148
144
|
return super.shouldRenderAsInternalWrapper()
|
|
149
145
|
? nodesHtml
|
|
150
146
|
: [`<${BlockTag}${attrStr}>`, nodesHtml, `</${BlockTag}>`].join('');
|
|
@@ -210,6 +206,19 @@ export class RTETextBlock extends RTEBlock {
|
|
|
210
206
|
return 'p';
|
|
211
207
|
}
|
|
212
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Get the HTML string for the children nodes, including handling link group annotations.
|
|
211
|
+
*
|
|
212
|
+
* @returns {string} The HTML string representing the children nodes.
|
|
213
|
+
*/
|
|
214
|
+
getChildrenHtml() {
|
|
215
|
+
const linkGroupAnnotation = this.getAnnotationByType(InternalAnnotationTypeEnum.LINK_GROUP);
|
|
216
|
+
let nodesHtml = this.children.map((node) => node.toHtml()).join('');
|
|
217
|
+
if (linkGroupAnnotation && this.children.length > 0) {
|
|
218
|
+
nodesHtml = this.generateLinkHtml(linkGroupAnnotation, nodesHtml);
|
|
219
|
+
}
|
|
220
|
+
return nodesHtml;
|
|
221
|
+
}
|
|
213
222
|
/**
|
|
214
223
|
* @inheritDoc
|
|
215
224
|
*/
|
|
@@ -14,6 +14,10 @@ import { RemoveChildrenStrategy } from './action-handle-strategies/modify-conten
|
|
|
14
14
|
import { AppendChildrenStrategy } from './action-handle-strategies/modify-content-strategies/append-children-strategy';
|
|
15
15
|
import { InsertChildrenBeforeStrategy } from './action-handle-strategies/modify-content-strategies/insert-children-before-strategy';
|
|
16
16
|
import { InsertChildrenAfterStrategy } from './action-handle-strategies/modify-content-strategies/insert-children-after-strategy';
|
|
17
|
+
import stateEntityRenderingRegistry from '../slimmers/controllers/state-entity-rendering-registry';
|
|
18
|
+
import changeManager from '../../../helpers/change-manager/change-manager';
|
|
19
|
+
import domNodeSubjectFactory from '../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
|
|
20
|
+
import { VegaInternalRichTextEditorFlushChanges } from '../../../helpers/event-manager/event-id/vega-internal-event-id';
|
|
17
21
|
import './setup';
|
|
18
22
|
import { StylePreservator } from '../../../helpers/csp/styles-preservator';
|
|
19
23
|
import { LogUtility } from '../../../utils/log';
|
|
@@ -146,6 +150,13 @@ export class VegaRTEContent {
|
|
|
146
150
|
*/
|
|
147
151
|
apply(action) {
|
|
148
152
|
ActionHandleStrategyRegistry.executeTheStrategy(action, this);
|
|
153
|
+
// Check if the action has been executed and is flushable
|
|
154
|
+
if (action['executedFlag'] && action.isFlushable) {
|
|
155
|
+
const host = stateEntityRenderingRegistry.getDOMByEntity(this);
|
|
156
|
+
if (host) {
|
|
157
|
+
changeManager.notify(domNodeSubjectFactory.getSubject(host, VegaInternalRichTextEditorFlushChanges), {});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
149
160
|
}
|
|
150
161
|
/**
|
|
151
162
|
* Get the last node in the content.
|
|
@@ -4,13 +4,13 @@ import domNodeSubjectFactory from '../../../../helpers/change-manager/subject/do
|
|
|
4
4
|
import { VegaInternalRichTextEditorFlushChanges } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
|
|
5
5
|
import { ModifyContentAction } from '../actions/modify-content-action.abstract';
|
|
6
6
|
import { NodeAnnotation } from '../annotations/node-annotation.abstract';
|
|
7
|
-
import { camelToDashCase } from '../../../../utils/string';
|
|
8
7
|
import { isNonNullable } from '../../../../types/type-guard';
|
|
9
8
|
import { CustomAttributeAnnotation } from '../annotations/custom-attribute-annotation';
|
|
10
9
|
import { CustomClassAnnotation } from '../annotations/custom-class-annotation';
|
|
11
10
|
import { CommonAnnotationTypeEnum } from '../annotations/common-annotation.abstract';
|
|
12
11
|
import { CustomStyleAnnotation } from '../annotations/custom-style-annotation';
|
|
13
12
|
import { methodPlaceholder } from 'vega-slimmer/core';
|
|
13
|
+
import { RTEAnnotationStyle } from '../annotations/annotation-style';
|
|
14
14
|
export var NodeTypeEnum;
|
|
15
15
|
(function (NodeTypeEnum) {
|
|
16
16
|
NodeTypeEnum["TEXT"] = "TEXT";
|
|
@@ -95,11 +95,8 @@ export class RTENode {
|
|
|
95
95
|
* @returns {AnnotationStyle} - Annotation styles
|
|
96
96
|
*/
|
|
97
97
|
getStyles(options = { standalone: false }) {
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
.map((annotation) => annotation.renderStyle(options))
|
|
101
|
-
.filter(Boolean);
|
|
102
|
-
return this.mergeAnnotationStyles(styles, ['textDecoration']);
|
|
98
|
+
const rteAnnotationStyle = new RTEAnnotationStyle(this);
|
|
99
|
+
return rteAnnotationStyle.toJSON(options, ['textDecoration']);
|
|
103
100
|
}
|
|
104
101
|
/**
|
|
105
102
|
* Get classes from annotations
|
|
@@ -146,9 +143,10 @@ export class RTENode {
|
|
|
146
143
|
*/
|
|
147
144
|
generateAttributeString(...attrs) {
|
|
148
145
|
var _a;
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
146
|
+
const nodeAnnotationStyle = new RTEAnnotationStyle(this);
|
|
147
|
+
const styles = nodeAnnotationStyle.toCssText({ standalone: true }, [
|
|
148
|
+
'textDecoration',
|
|
149
|
+
]);
|
|
152
150
|
const customClassAnnotation = this.annotationMap.get(CommonAnnotationTypeEnum.CUSTOM_CLASS);
|
|
153
151
|
const customAttributeString = ((_a = this.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.toString(attrs)) || [];
|
|
154
152
|
const attributes = [
|
|
@@ -210,32 +208,4 @@ export class RTENode {
|
|
|
210
208
|
doModifyActionApply(action) {
|
|
211
209
|
methodPlaceholder(action);
|
|
212
210
|
}
|
|
213
|
-
/**
|
|
214
|
-
* Merge an array of annotation styles into a single style object.
|
|
215
|
-
* e.g.,
|
|
216
|
-
* { textDecoration: 'underline', textDecoration: 'line-through' }
|
|
217
|
-
* -> { textDecoration: 'underline line-through' }
|
|
218
|
-
*
|
|
219
|
-
* @param {AnnotationStyle[]} styles - Array of annotation style objects to merge.
|
|
220
|
-
* @param {string[]} canMergeKeyList - List of style keys that can be merged by concatenation.
|
|
221
|
-
* @returns {AnnotationStyle} - The merged annotation style object.
|
|
222
|
-
*/
|
|
223
|
-
mergeAnnotationStyles(styles, canMergeKeyList) {
|
|
224
|
-
const merged = {};
|
|
225
|
-
for (const style of styles) {
|
|
226
|
-
for (const key in style) {
|
|
227
|
-
const value = style[key];
|
|
228
|
-
const existing = merged[key];
|
|
229
|
-
if (typeof existing === 'string' &&
|
|
230
|
-
typeof value === 'string' &&
|
|
231
|
-
canMergeKeyList.includes(key)) {
|
|
232
|
-
merged[key] = Array.from(new Set(`${existing} ${value}`.split(/\s+/).filter(Boolean))).join(' ');
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
merged[key] = value;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
return merged;
|
|
240
|
-
}
|
|
241
211
|
}
|
|
@@ -31,6 +31,13 @@ import { LinkGroupNodeSplitStrategy } from '../action-handle-strategies/modify-c
|
|
|
31
31
|
import { DeleteLinkGroupStrategy } from '../action-handle-strategies/modify-content-strategies/delete-link-group-strategy';
|
|
32
32
|
import { PlainTextAnnotation } from '../annotations/plain-text-annotation';
|
|
33
33
|
import { LinkAnnotationAction } from '../actions/link-annotation-action';
|
|
34
|
+
import { BoldAnnotationAction } from '../actions/bold-annotation-action';
|
|
35
|
+
import { ClearFormattingAnnotationAction } from '../actions/clear-formatting-annotation-action';
|
|
36
|
+
import { ItalicAnnotationAction } from '../actions/italic-annotation-action';
|
|
37
|
+
import { UnderlineAnnotationAction } from '../actions/underline-annotation-action';
|
|
38
|
+
import { TextColorAnnotationAction } from '../actions/text-color-annotation-action';
|
|
39
|
+
import { StrikethroughAnnotationAction } from '../actions/strikethrough-annotation-action';
|
|
40
|
+
import { CodeAnnotationAction } from '../actions/code-annotation-action';
|
|
34
41
|
/**
|
|
35
42
|
* Text node
|
|
36
43
|
*/
|
|
@@ -217,6 +224,13 @@ export class RTETextNode extends RTENode {
|
|
|
217
224
|
}
|
|
218
225
|
ActionHandleStrategyRegistry.register(TextSplittableAction.name, dtoClassName, new NodeSplitTextStrategy());
|
|
219
226
|
ActionHandleStrategyRegistry.register(ModifyContentActionType.DELETE_LINK_GROUP, dtoClassName, new DeleteLinkGroupStrategy());
|
|
227
|
+
ActionHandleStrategyRegistry.register(BoldAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
228
|
+
ActionHandleStrategyRegistry.register(ClearFormattingAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
229
|
+
ActionHandleStrategyRegistry.register(ItalicAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
230
|
+
ActionHandleStrategyRegistry.register(UnderlineAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
231
|
+
ActionHandleStrategyRegistry.register(TextColorAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
232
|
+
ActionHandleStrategyRegistry.register(StrikethroughAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
233
|
+
ActionHandleStrategyRegistry.register(CodeAnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
220
234
|
ActionHandleStrategyRegistry.register(AnnotationAction.name, dtoClassName, new NodeUpdateAnnotationMapStrategy());
|
|
221
235
|
RTETextNode.registerActionStrategyStatus[dtoClassName] = true;
|
|
222
236
|
}
|
|
@@ -267,9 +281,6 @@ export class RTETextNode extends RTENode {
|
|
|
267
281
|
/**
|
|
268
282
|
* 1. Try to get the specific strategy for the action and node type first (e.g., LinkAnnotationAction on RTETextNode).
|
|
269
283
|
* 2. If no specific strategy found, try to get the generic NodeUpdateAnnotationMapStrategy for AnnotationAction on RTETextNode.
|
|
270
|
-
*
|
|
271
|
-
* 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.
|
|
272
|
-
* TODO: Update the other annotation actions to follow this pattern. https://gethired.atlassian.net/browse/VD-7367
|
|
273
284
|
*/
|
|
274
285
|
const strategy = ActionHandleStrategyRegistry.get(action.constructor.name, node.constructor.name);
|
|
275
286
|
if (strategy) {
|
package/dist/collection/components/vega-rich-text-editor/extensions/base-extension-renderer.js
CHANGED
|
@@ -6,6 +6,15 @@ import stateEntityRenderingRegistry from '../slimmers/controllers/state-entity-r
|
|
|
6
6
|
* Base renderer for Vega Rich Text Editor.
|
|
7
7
|
*/
|
|
8
8
|
export class VegaRTEExtensionRenderer extends VegaRTEBaseRenderer {
|
|
9
|
+
/**
|
|
10
|
+
* Returns the styles to be injected into the RTE scope.
|
|
11
|
+
* Override this method to provide custom styles for the custom blocks or nodes.
|
|
12
|
+
*
|
|
13
|
+
* @returns {string} - The styles as a string.
|
|
14
|
+
*/
|
|
15
|
+
injectRTEScopeStyles() {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
9
18
|
/**
|
|
10
19
|
* Renders the given data as a DOM element.
|
|
11
20
|
*
|
|
@@ -34,6 +43,15 @@ export class VegaRTEExtensionRenderer extends VegaRTEBaseRenderer {
|
|
|
34
43
|
}
|
|
35
44
|
};
|
|
36
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Get a registered renderer by its key.
|
|
48
|
+
*
|
|
49
|
+
* @param {string} key - The key of the renderer.
|
|
50
|
+
* @returns {Nullable<BaseRenderer>} - The registered renderer or null if not found.
|
|
51
|
+
*/
|
|
52
|
+
getDTORenderer(key) {
|
|
53
|
+
return RTEDTORendererManager.getRTERenderer(key);
|
|
54
|
+
}
|
|
37
55
|
/**
|
|
38
56
|
* Auto render the block children if the block element is not exist
|
|
39
57
|
*
|
|
@@ -62,7 +80,7 @@ export class VegaRTEExtensionRenderer extends VegaRTEBaseRenderer {
|
|
|
62
80
|
* @returns {Nullable<VegaRTERenderResult>} - The rendered DOM element.
|
|
63
81
|
*/
|
|
64
82
|
renderChildren(renderData, rteContext, createElement) {
|
|
65
|
-
const renderer =
|
|
83
|
+
const renderer = this.getDTORenderer(renderData.type);
|
|
66
84
|
if (renderer) {
|
|
67
85
|
return renderer.render(renderData, rteContext, createElement);
|
|
68
86
|
}
|
package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js
CHANGED
|
@@ -33,7 +33,7 @@ export class VegaRTEToolbarButtonRenderer {
|
|
|
33
33
|
* @returns {VegaRTERenderResult} - The render result for the dropdown.
|
|
34
34
|
*/
|
|
35
35
|
renderDropdown(h, editorContext, dropdownProps, children) {
|
|
36
|
-
return h('vega-dropdown', Object.assign({ trigger: 'click', searchable: false,
|
|
36
|
+
return h('vega-dropdown', Object.assign({ trigger: 'click', searchable: false, maxWidth: '200', itemDisplayRule: 'ellipsis',
|
|
37
37
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
38
38
|
ref: (el) => {
|
|
39
39
|
DomNodeSubjectObserverFactory.addUniqueObserverToNode(el, VegaDropdownClick, (input) => this.handleDropdownClick(input.detail, editorContext));
|
|
@@ -43,7 +43,7 @@ export class VegaRTEToolbarButtonRenderer {
|
|
|
43
43
|
* Renders the dropdown list template.
|
|
44
44
|
*
|
|
45
45
|
* @param {VegaRTECreateElementFunction} h - Create element function.
|
|
46
|
-
* @param {RTEDropdownListItem[]} itemList - The list of dropdown items.
|
|
46
|
+
* @param {(RTEDropdownListItem | RTEDropdownListGroup)[]} itemList - The list of dropdown items.
|
|
47
47
|
* @returns {VegaRTERenderResult} - The render result for the dropdown list.
|
|
48
48
|
*/
|
|
49
49
|
renderDropdownListTemplate(h, itemList) {
|
|
@@ -51,7 +51,9 @@ export class VegaRTEToolbarButtonRenderer {
|
|
|
51
51
|
slot: 'items',
|
|
52
52
|
onMouseDown: this.preventDefault,
|
|
53
53
|
}, itemList.map((item) => {
|
|
54
|
-
return
|
|
54
|
+
return 'children' in item
|
|
55
|
+
? this.renderDropdownGroup(h, item)
|
|
56
|
+
: this.renderDropdownItem(h, item);
|
|
55
57
|
}));
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
@@ -69,6 +71,24 @@ export class VegaRTEToolbarButtonRenderer {
|
|
|
69
71
|
prefixIcon: item.icon,
|
|
70
72
|
});
|
|
71
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Renders a dropdown item for the toolbar button.
|
|
76
|
+
*
|
|
77
|
+
* @param {VegaRTECreateElementFunction} h - Create element function.
|
|
78
|
+
* @param {RTEDropdownListGroup} item - The dropdown group.
|
|
79
|
+
* @returns {VegaRTERenderResult} - The render result for the dropdown item.
|
|
80
|
+
*/
|
|
81
|
+
renderDropdownGroup(h, item) {
|
|
82
|
+
return h('vega-dropdown-group', {
|
|
83
|
+
key: item.key,
|
|
84
|
+
label: item.label,
|
|
85
|
+
divide: false,
|
|
86
|
+
}, item.children.map((child) => {
|
|
87
|
+
return 'children' in child
|
|
88
|
+
? this.renderDropdownGroup(h, child)
|
|
89
|
+
: this.renderDropdownItem(h, child);
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
72
92
|
/**
|
|
73
93
|
* Renders a common toolbar button with optional icon, label, and arrow icon.
|
|
74
94
|
*
|
|
@@ -147,4 +167,25 @@ export class VegaRTEToolbarButtonRenderer {
|
|
|
147
167
|
preventDefault(e) {
|
|
148
168
|
e.preventDefault();
|
|
149
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Recursively searches for a dropdown list item by its key.
|
|
172
|
+
*
|
|
173
|
+
* @param {(RTEDropdownListItem | RTEDropdownListGroup)[]} itemList The list of dropdown items or groups to search through.
|
|
174
|
+
* @param {string} key The key of the item to find.
|
|
175
|
+
* @returns {Nullable<RTEDropdownListItem>} The dropdown list item if found, otherwise null.
|
|
176
|
+
*/
|
|
177
|
+
getListItemByKey(itemList, key) {
|
|
178
|
+
for (const item of itemList) {
|
|
179
|
+
if ('children' in item) {
|
|
180
|
+
const foundItem = this.getListItemByKey(item.children, key);
|
|
181
|
+
if (foundItem) {
|
|
182
|
+
return foundItem;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
else if (item.key === key) {
|
|
186
|
+
return item;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
150
191
|
}
|
|
@@ -3,6 +3,8 @@ import RTEDTORendererManager from '../../../helpers/rte-manager/dto-renderer-man
|
|
|
3
3
|
import RTEDTOActionStrategyManager from '../../../helpers/rte-manager/dto-action-strategy-manager';
|
|
4
4
|
import ElementToDTOClassStrategyManager from '../../../helpers/rte-manager/element-dto-class-strategy-manager';
|
|
5
5
|
import { ActionHandleStrategyRegistry } from '../dto/action-handle-strategies/action-handle-strategy-registry';
|
|
6
|
+
import { VegaRTEExtensionRenderer } from './base-extension-renderer';
|
|
7
|
+
import { ActionHandlerInterceptorRegistry } from '../dto/action-handle-strategies/action-handle-interceptor-registry';
|
|
6
8
|
/**
|
|
7
9
|
* Abstract class for Vega Rich Text Editor extensions.
|
|
8
10
|
*/
|
|
@@ -12,17 +14,28 @@ export class VegaRTEExtension {
|
|
|
12
14
|
* The context of the RTE extension, which may include references to the host editor and other relevant information.
|
|
13
15
|
*/
|
|
14
16
|
this.extensionContext = null;
|
|
17
|
+
this.hasCustomStylesRenderers = new Set();
|
|
15
18
|
}
|
|
16
19
|
/**
|
|
17
20
|
* Registers an action handle strategy for a specific node or block class.
|
|
18
21
|
*
|
|
19
22
|
* @param {string} nodeOrBlockClassName - The name of the node or block class.
|
|
20
23
|
* @param {string} actionType - The type of the action.
|
|
21
|
-
* @param {ActionHandleStrategy<ModifyContentAction, RTENode | RTEBlock>} strategy - The strategy to register.
|
|
24
|
+
* @param {ActionHandleStrategy<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The strategy to register.
|
|
22
25
|
*/
|
|
23
26
|
static registerActionHandleStrategy(nodeOrBlockClassName, actionType, strategy) {
|
|
24
27
|
ActionHandleStrategyRegistry.register(actionType, nodeOrBlockClassName, strategy);
|
|
25
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Registers an action handler interceptor for a specific node or block class.
|
|
31
|
+
*
|
|
32
|
+
* @param {string} nodeOrBlockClassName - The name of the node or block class.
|
|
33
|
+
* @param {string} actionType - The type of the action.
|
|
34
|
+
* @param {ActionHandlerInterceptor<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The interceptor to register.
|
|
35
|
+
*/
|
|
36
|
+
static registerActionHandlerInterceptor(nodeOrBlockClassName, actionType, strategy) {
|
|
37
|
+
ActionHandlerInterceptorRegistry.register(actionType, nodeOrBlockClassName, strategy);
|
|
38
|
+
}
|
|
26
39
|
/**
|
|
27
40
|
* Initializes the RTE extension with the provided context.
|
|
28
41
|
*
|
|
@@ -31,6 +44,21 @@ export class VegaRTEExtension {
|
|
|
31
44
|
initialExtension(context) {
|
|
32
45
|
this.extensionContext = context;
|
|
33
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Collect custom styles for the extension renderers.
|
|
49
|
+
* If custom nodes have special styles, override this method to provide the styles.
|
|
50
|
+
*
|
|
51
|
+
* @returns {string} - The custom styles as a string.
|
|
52
|
+
*/
|
|
53
|
+
collectExtensionRendererStyles() {
|
|
54
|
+
let styles = '';
|
|
55
|
+
if (this.hasCustomStylesRenderers.size > 0) {
|
|
56
|
+
this.hasCustomStylesRenderers.forEach((renderer) => {
|
|
57
|
+
styles += `${renderer.injectRTEScopeStyles()}\n`;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return styles;
|
|
61
|
+
}
|
|
34
62
|
/**
|
|
35
63
|
* Register a node type with the extension.
|
|
36
64
|
*
|
|
@@ -48,6 +76,9 @@ export class VegaRTEExtension {
|
|
|
48
76
|
*/
|
|
49
77
|
registerRenderer(type, renderer) {
|
|
50
78
|
RTEDTORendererManager.registerRTEDTORenderer(type, renderer);
|
|
79
|
+
if (renderer instanceof VegaRTEExtensionRenderer && renderer.injectRTEScopeStyles()) {
|
|
80
|
+
this.hasCustomStylesRenderers.add(renderer);
|
|
81
|
+
}
|
|
51
82
|
}
|
|
52
83
|
/**
|
|
53
84
|
* Register a toolbar button renderer for the extension.
|
|
@@ -70,6 +101,25 @@ export class VegaRTEExtension {
|
|
|
70
101
|
registerBlockBasicStrategies(blockClassName) {
|
|
71
102
|
RTEDTOActionStrategyManager.registerBlockBasicStrategies(blockClassName);
|
|
72
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Unregister a strategy for a specific action type and block class if not need.
|
|
106
|
+
*
|
|
107
|
+
* @param {string} actionType - The special action type or the action class name.
|
|
108
|
+
* @param {string} blockClassName - The class name of the block to unregister the strategy for.
|
|
109
|
+
*/
|
|
110
|
+
unRegisterStrategy(actionType, blockClassName) {
|
|
111
|
+
ActionHandleStrategyRegistry.unregister(actionType, blockClassName);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Unregister a strategy for a specific action type and block class if not need.
|
|
115
|
+
*
|
|
116
|
+
* @param {string} actionType - The special action type or the action class name.
|
|
117
|
+
* @param {string} blockClassName - The class name of the block to unregister the strategy for.
|
|
118
|
+
* @param {ActionHandlerInterceptor<ModifyContentAction, RTENode | RTEBlock | VegaRTEContent>} strategy - The interceptor to unregister.
|
|
119
|
+
*/
|
|
120
|
+
unRegisterInterceptor(actionType, blockClassName, strategy) {
|
|
121
|
+
ActionHandlerInterceptorRegistry.unregister(actionType, blockClassName, strategy);
|
|
122
|
+
}
|
|
73
123
|
/**
|
|
74
124
|
* Register an element to block DTO class strategy.
|
|
75
125
|
*
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ActionHandlerInterceptor, } from '../../../dto/action-handle-strategies/action-handle-interceptor.abstract';
|
|
2
|
+
import { InsertNewParagraphAction } from '../../../dto/actions/insert-new-paragraph-action';
|
|
3
|
+
import { RTEFunctionBlock } from '../dto/function-block';
|
|
4
|
+
/**
|
|
5
|
+
* Prevent special type input in function block.
|
|
6
|
+
*/
|
|
7
|
+
export class PreventNewParagraphInterceptor extends ActionHandlerInterceptor {
|
|
8
|
+
/**
|
|
9
|
+
* Checks the target block parent whether is function block.
|
|
10
|
+
*
|
|
11
|
+
* @param {InsertNewParagraphAction} _action - the action to be intercepted
|
|
12
|
+
* @param {RTETextBlock} target - the target block
|
|
13
|
+
* @returns {boolean} - true if the target block parent is function block, false otherwise
|
|
14
|
+
*/
|
|
15
|
+
canIntercept(_action, target) {
|
|
16
|
+
return target.parent && target.parent instanceof RTEFunctionBlock;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Insert a new paragraph behind of the function block instead of the target block.
|
|
20
|
+
*
|
|
21
|
+
* @param {ActionHandlerExecution} _execution - the original execution function
|
|
22
|
+
* @param {ModifyContentAction} _action - the action to be intercepted
|
|
23
|
+
* @param {RTETextBlock} target - the target block
|
|
24
|
+
*/
|
|
25
|
+
intercept(_execution, _action, target) {
|
|
26
|
+
const insertParagraphAction = new InsertNewParagraphAction(target.children[0], 0);
|
|
27
|
+
insertParagraphAction.isFlushable = true;
|
|
28
|
+
target.parent.apply(insertParagraphAction);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PastePlainTextAction } from '../actions/paste-plain-text-action';
|
|
2
|
+
import { PreventNewParagraphInterceptor } from '../action-handler-interceptor/prevent-new-paragraph-interceptor';
|
|
3
|
+
/**
|
|
4
|
+
* Prevent special type input in function block.
|
|
5
|
+
*/
|
|
6
|
+
export class PreventPasteContentInterceptor extends PreventNewParagraphInterceptor {
|
|
7
|
+
/**
|
|
8
|
+
* Paste plain text into text block.
|
|
9
|
+
*
|
|
10
|
+
* @param {ActionHandlerExecution} _execution - the original execution function
|
|
11
|
+
* @param {ModifyContentAction} action - the action to be intercepted
|
|
12
|
+
* @param {RTETextBlock} target - the target block
|
|
13
|
+
*/
|
|
14
|
+
intercept(_execution, action, target) {
|
|
15
|
+
const { blocksToBeInserted, rteRange } = action;
|
|
16
|
+
let { startNode, startOffset } = action;
|
|
17
|
+
// Set the start offset from rteRange if available, this is to handle the paste issue https://gethired.atlassian.net/browse/VD-7779
|
|
18
|
+
if (rteRange) {
|
|
19
|
+
startNode = rteRange.startNode;
|
|
20
|
+
startOffset = rteRange.startOffset;
|
|
21
|
+
}
|
|
22
|
+
const pastePlainTextAction = new PastePlainTextAction(blocksToBeInserted, startNode, startOffset);
|
|
23
|
+
target.apply(pastePlainTextAction);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
|
|
2
|
+
import { InsertChildrenAfterAction } from '../../../dto/actions/insert-children-after-block';
|
|
3
|
+
import { UpdateCursorPositionAction } from '../../../dto/actions/update-cursor-position-action';
|
|
4
|
+
/**
|
|
5
|
+
* Insert a new paragraph behind of current function block strategy.
|
|
6
|
+
*/
|
|
7
|
+
export class FunctionBlockInsertParagraphStrategy extends ActionHandleStrategy {
|
|
8
|
+
/**
|
|
9
|
+
* @inheritDoc
|
|
10
|
+
*/
|
|
11
|
+
handleAction(action, target) {
|
|
12
|
+
const newParagraph = this.createNewParagraph('');
|
|
13
|
+
if (newParagraph) {
|
|
14
|
+
target.parent.apply(new InsertChildrenAfterAction(target, newParagraph));
|
|
15
|
+
action.newBlock = newParagraph;
|
|
16
|
+
this.focusToNextLine(newParagraph);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Focus to next paragraph.
|
|
21
|
+
*
|
|
22
|
+
* @param {RTETextBlock} block - The paragraph need to focus.
|
|
23
|
+
*/
|
|
24
|
+
focusToNextLine(block) {
|
|
25
|
+
const root = this.getRootContent(block);
|
|
26
|
+
if (root) {
|
|
27
|
+
root.apply(new UpdateCursorPositionAction(block.children[0], 1));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { VegaRTEContent } from '../../../dto/content-state';
|
|
2
|
+
import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
|
|
3
|
+
import { generateUUID } from '../../../../../utils/misc';
|
|
4
|
+
import { InsertChildrenAfterAction } from '../../../dto/actions/insert-children-after-block';
|
|
5
|
+
import { AppendChildrenAction } from '../../../dto/actions/append-child-nodes-action';
|
|
6
|
+
import { RTEFunctionBlock } from '../dto/function-block';
|
|
7
|
+
/**
|
|
8
|
+
* Strategy to handle the insertion of a function block into the rich text editor.
|
|
9
|
+
*/
|
|
10
|
+
export class InsertFunctionBlockStrategy extends ActionHandleStrategy {
|
|
11
|
+
/**
|
|
12
|
+
* @inheritDoc
|
|
13
|
+
*/
|
|
14
|
+
handleAction(action, target) {
|
|
15
|
+
const { functionType } = action;
|
|
16
|
+
const functionBlock = this.getFunctionBlock(functionType);
|
|
17
|
+
const emptyParagraph = this.createNewParagraph('');
|
|
18
|
+
const referenceBlock = this.getReferenceBlock(target);
|
|
19
|
+
if (referenceBlock) {
|
|
20
|
+
referenceBlock.parent.apply(new InsertChildrenAfterAction(referenceBlock, functionBlock, emptyParagraph));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
target.apply(new AppendChildrenAction([functionBlock, emptyParagraph]));
|
|
24
|
+
}
|
|
25
|
+
if (emptyParagraph) {
|
|
26
|
+
action.nextFocusNode = emptyParagraph.children[0];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get a function block based on the specified type.
|
|
31
|
+
*
|
|
32
|
+
* @param {string} type - The type of function block to create.
|
|
33
|
+
* @returns {RTEFunctionBlock} The function block instance.
|
|
34
|
+
*/
|
|
35
|
+
getFunctionBlock(type) {
|
|
36
|
+
const id = generateUUID();
|
|
37
|
+
return RTEFunctionBlock.from({
|
|
38
|
+
id: id,
|
|
39
|
+
type: 'function-block',
|
|
40
|
+
children: [
|
|
41
|
+
{
|
|
42
|
+
id: `${id}-1`,
|
|
43
|
+
type: 'logic-control-block',
|
|
44
|
+
statementText: type.toUpperCase(),
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: `${id}-2`,
|
|
48
|
+
annotations: {
|
|
49
|
+
customClass: ['statementelement'],
|
|
50
|
+
},
|
|
51
|
+
type: 'paragraph',
|
|
52
|
+
nodes: [
|
|
53
|
+
{
|
|
54
|
+
id: `${id}-2-1`,
|
|
55
|
+
type: 'text',
|
|
56
|
+
text: ' ',
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: `${id}-3`,
|
|
62
|
+
type: 'logic-control-block',
|
|
63
|
+
statementText: 'SHOW',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: `${id}-4`,
|
|
67
|
+
annotations: {
|
|
68
|
+
customClass: ['statementelement'],
|
|
69
|
+
},
|
|
70
|
+
type: 'paragraph',
|
|
71
|
+
nodes: [
|
|
72
|
+
{
|
|
73
|
+
id: `${id}-4-1`,
|
|
74
|
+
type: 'text',
|
|
75
|
+
text: ' ',
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* We need to get the correct block if the current target is a function block element to avoid nesting function blocks.
|
|
84
|
+
*
|
|
85
|
+
* @param {RTEBlock | VegaRTEContent} currentTarget - The current target block or content.
|
|
86
|
+
* @returns {Nullable<RTEBlock>} The reference block.
|
|
87
|
+
*/
|
|
88
|
+
getReferenceBlock(currentTarget) {
|
|
89
|
+
if (!(currentTarget instanceof VegaRTEContent)) {
|
|
90
|
+
const parentBlock = currentTarget.parent;
|
|
91
|
+
if (parentBlock instanceof RTEFunctionBlock) {
|
|
92
|
+
return parentBlock;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return currentTarget;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|