@globalpayments/vega 2.67.0 → 2.68.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{app-globals-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-58ea899e.js +2 -2
- 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 +313 -273
- 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 +15 -15
- 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 → vega-table_11.cjs.entry.js} +750 -323
- 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/collection-manifest.json +6 -0
- 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 +3 -1
- package/dist/collection/components/vega-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-day-event-layout-renderer.js +4 -4
- 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-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/slimmers/controllers/vega-table-children-controller.js +25 -1
- package/dist/collection/components/vega-table/vega-table-foot/slimmers/controllers/vega-table-foot-state-controller.js +67 -0
- package/dist/collection/components/vega-table/vega-table-foot/vega-table-foot.css +34 -0
- package/dist/collection/components/vega-table/vega-table-foot/vega-table-foot.js +65 -0
- package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/controllers/vega-table-foot-cell-state-controller.js +43 -0
- package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +32 -0
- package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.css +116 -0
- package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.js +130 -0
- package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.js +77 -0
- package/dist/collection/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.js +41 -0
- package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.css +52 -0
- package/dist/collection/components/vega-table/vega-table-foot-row/vega-table-foot-row.js +71 -0
- package/dist/collection/components/vega-table/vega-table.css +12 -1
- package/dist/collection/components/vega-table/vega-table.js +1 -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-090d31ca.js +2 -2
- 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 +313 -273
- 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 +9 -9
- 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 → vega-table_11.entry.js} +745 -321
- 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-calendar/slimmers/day-view/renderers/timed-event/vega-calendar-day-event-layout-renderer.d.ts +1 -1
- 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-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-table/interface.d.ts +4 -0
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-children-controller.d.ts +9 -1
- package/dist/types/components/vega-table/vega-table-foot/slimmers/controllers/vega-table-foot-state-controller.d.ts +22 -0
- package/dist/types/components/vega-table/vega-table-foot/types.d.ts +4 -0
- package/dist/types/components/vega-table/vega-table-foot/vega-table-foot.d.ts +23 -0
- package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/controllers/vega-table-foot-cell-state-controller.d.ts +10 -0
- package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.d.ts +8 -0
- package/dist/types/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.d.ts +45 -0
- package/dist/types/components/vega-table/vega-table-foot-row/slimmers/controllers/vega-table-foot-row-state-controller.d.ts +20 -0
- package/dist/types/components/vega-table/vega-table-foot-row/slimmers/renderers/vega-table-foot-row-renderer.d.ts +11 -0
- package/dist/types/components/vega-table/vega-table-foot-row/types.d.ts +4 -0
- package/dist/types/components/vega-table/vega-table-foot-row/vega-table-foot-row.d.ts +41 -0
- package/dist/types/components/vega-textarea/vega-textarea.d.ts +26 -0
- package/dist/types/components.d.ts +134 -3
- 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-a73dc4b3.entry.js → p-30a8d9d6.entry.js} +1 -1
- 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-5a555092.entry.js +1 -0
- 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-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-82ef2de0.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-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
- package/dist/vega/p-ff3bb4e2.entry.js +0 -1
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
|
|
2
|
+
import { InsertChildrenAfterAction } from '../../../dto/actions/insert-children-after-block';
|
|
3
|
+
import { InsertChildrenBeforeAction } from '../../../dto/actions/insert-children-before-block';
|
|
4
|
+
import { UpdateCursorPositionAction } from '../../../dto/actions/update-cursor-position-action';
|
|
5
|
+
import { InternalAnnotationTypeEnum } from '../../../dto/annotations/annotation.abstract';
|
|
6
|
+
import { RTETextBlock } from '../../../dto/blocks/text-block';
|
|
7
|
+
import { RTETextNode } from '../../../dto/nodes/text-node';
|
|
8
|
+
/**
|
|
9
|
+
* Strategy to handle the paste content into function block.
|
|
10
|
+
*/
|
|
11
|
+
export class PastePlainTextStrategy extends ActionHandleStrategy {
|
|
12
|
+
/**
|
|
13
|
+
* @inheritDoc
|
|
14
|
+
*/
|
|
15
|
+
handleAction(action, target) {
|
|
16
|
+
const { blocksToBeInserted, startNode, startOffset } = action;
|
|
17
|
+
if (startNode instanceof RTETextNode) {
|
|
18
|
+
const textNodes = blocksToBeInserted.flatMap((block) => {
|
|
19
|
+
if (block instanceof RTETextBlock) {
|
|
20
|
+
this.copyLinkGroupAnnotations(target.annotationMap, block.annotationMap);
|
|
21
|
+
return block.children;
|
|
22
|
+
}
|
|
23
|
+
return [];
|
|
24
|
+
});
|
|
25
|
+
if (textNodes.length > 0) {
|
|
26
|
+
if (startOffset > 0) {
|
|
27
|
+
target.apply(new InsertChildrenAfterAction(startNode, ...textNodes));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
target.apply(new InsertChildrenBeforeAction(startNode, ...textNodes));
|
|
31
|
+
}
|
|
32
|
+
this.focusToNextLine(textNodes[textNodes.length - 1], textNodes[textNodes.length - 1].getRangeEndOffset());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Focus to next paragraph.
|
|
38
|
+
*
|
|
39
|
+
* @param {RTETextNode} node - The text node need to focus.
|
|
40
|
+
* @param {number} startOffset - The offset need to focus.
|
|
41
|
+
*/
|
|
42
|
+
focusToNextLine(node, startOffset) {
|
|
43
|
+
const root = this.getRootContent(node);
|
|
44
|
+
if (root) {
|
|
45
|
+
root.apply(new UpdateCursorPositionAction(node, startOffset));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Copy link group annotations from copied block to target block.
|
|
50
|
+
*
|
|
51
|
+
* @param {BlockAnnotations} blockAnnotationMap - The target block annotation map.
|
|
52
|
+
* @param {BlockAnnotations} copiedAnnotationMap - The copied block annotation map.
|
|
53
|
+
*/
|
|
54
|
+
copyLinkGroupAnnotations(blockAnnotationMap, copiedAnnotationMap) {
|
|
55
|
+
if (copiedAnnotationMap && copiedAnnotationMap.has(InternalAnnotationTypeEnum.LINK_GROUP)) {
|
|
56
|
+
const copiedLinkGroupAnnotation = copiedAnnotationMap.get(InternalAnnotationTypeEnum.LINK_GROUP);
|
|
57
|
+
if (!blockAnnotationMap.has(InternalAnnotationTypeEnum.LINK_GROUP)) {
|
|
58
|
+
blockAnnotationMap.set(InternalAnnotationTypeEnum.LINK_GROUP, copiedAnnotationMap.get(InternalAnnotationTypeEnum.LINK_GROUP));
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
copiedLinkGroupAnnotation.linkGroups.forEach((nodes, groupKey) => {
|
|
62
|
+
const existingAnnotation = blockAnnotationMap.get(InternalAnnotationTypeEnum.LINK_GROUP);
|
|
63
|
+
existingAnnotation.linkGroups.set(groupKey, nodes);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ModifyContentAction } from '../../../dto/actions/modify-content-action.abstract';
|
|
2
|
+
export const INSERT_FUNCTION_BLOCK = 'INSERT_FUNCTION_BLOCK';
|
|
3
|
+
/**
|
|
4
|
+
* Action to insert a function block into the rich text editor.
|
|
5
|
+
*
|
|
6
|
+
* @example focusedBlock.apply(new InsertFunctionBlockAction('IF'))
|
|
7
|
+
* @example host.value.apply(new InsertFunctionBlockAction('IF'))
|
|
8
|
+
*/
|
|
9
|
+
export class InsertFunctionBlockAction extends ModifyContentAction {
|
|
10
|
+
constructor(functionType) {
|
|
11
|
+
super();
|
|
12
|
+
this.type = INSERT_FUNCTION_BLOCK;
|
|
13
|
+
this.functionType = functionType;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ModifyContentAction } from '../../../dto/actions/modify-content-action.abstract';
|
|
2
|
+
export const PASTE_PLAIN_TEXT = 'PASTE_PLAIN_TEXT';
|
|
3
|
+
/**
|
|
4
|
+
* Action to paste plain text content into function block.
|
|
5
|
+
*
|
|
6
|
+
* @example functionBlock.apply(new PastePlainTextAction('content', range))
|
|
7
|
+
* @example host.value.apply(new PastePlainTextAction('content', range))
|
|
8
|
+
*/
|
|
9
|
+
export class PastePlainTextAction extends ModifyContentAction {
|
|
10
|
+
constructor(blocksToBeInserted, startNode, startOffset) {
|
|
11
|
+
super();
|
|
12
|
+
this.type = PASTE_PLAIN_TEXT;
|
|
13
|
+
this.blocksToBeInserted = blocksToBeInserted;
|
|
14
|
+
this.startNode = startNode;
|
|
15
|
+
this.startOffset = startOffset;
|
|
16
|
+
}
|
|
17
|
+
}
|
package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { generateUUID } from '../../../../../utils/misc';
|
|
2
|
+
import { RTEAnnotationStyle } from '../../../dto/annotations/annotation-style';
|
|
3
|
+
import { RTEBlock } from '../../../dto/blocks/block.abstract';
|
|
4
|
+
import { RTETextBlock } from '../../../dto/blocks/text-block';
|
|
5
|
+
/**
|
|
6
|
+
* RTE Function Block
|
|
7
|
+
*/
|
|
8
|
+
export class RTEFunctionBlock extends RTEBlock {
|
|
9
|
+
constructor(id) {
|
|
10
|
+
super(id);
|
|
11
|
+
this.type = 'function-block';
|
|
12
|
+
this.children = [];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates an RTEFunctionBlock from a VegaFunctionBlock.
|
|
16
|
+
*
|
|
17
|
+
* @param {VegaFunctionBlock} block - The custom block to convert.
|
|
18
|
+
* @param {VegaRTETransformOptions} [options] - Optional transformation options.
|
|
19
|
+
* @returns {RTEFunctionBlock} The resulting RTEFunctionBlock.
|
|
20
|
+
*/
|
|
21
|
+
static from(block, options) {
|
|
22
|
+
const functionBlock = new RTEFunctionBlock(block.id);
|
|
23
|
+
const defaultAnnotation = { customClass: ['statement'] };
|
|
24
|
+
let { annotations } = block;
|
|
25
|
+
annotations = annotations
|
|
26
|
+
? Object.assign(Object.assign({}, annotations), defaultAnnotation) : defaultAnnotation;
|
|
27
|
+
super.convertAnnotationsToMap(functionBlock.annotationMap, annotations);
|
|
28
|
+
functionBlock.children = this.generateBlockChildren(block.children, options, functionBlock);
|
|
29
|
+
return functionBlock;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Converts the RTEFunctionBlock and its children to an HTML string.
|
|
33
|
+
*
|
|
34
|
+
* @returns {string} The HTML string representation of the function block.
|
|
35
|
+
*/
|
|
36
|
+
toHtml() {
|
|
37
|
+
const childrenHtml = this.children
|
|
38
|
+
.map((child) => {
|
|
39
|
+
if (child instanceof RTETextBlock) {
|
|
40
|
+
const attrStr = this.getFunctionContentStyle(child);
|
|
41
|
+
return `<div class="statementelement"${attrStr}>${child.getChildrenHtml()}</div>`;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return child.toHtml();
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
.join('');
|
|
48
|
+
return `<div class="statement">${childrenHtml}</div>`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @inheritDoc
|
|
52
|
+
*/
|
|
53
|
+
clone(parent) {
|
|
54
|
+
const clonedBlock = new RTEFunctionBlock(generateUUID());
|
|
55
|
+
clonedBlock.parent = parent;
|
|
56
|
+
clonedBlock.children = this.children.map((child) => {
|
|
57
|
+
const clonedChild = child.clone(clonedBlock);
|
|
58
|
+
return clonedChild;
|
|
59
|
+
});
|
|
60
|
+
clonedBlock.annotationMap = super.cloneAnnotations();
|
|
61
|
+
return clonedBlock;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @inheritDoc
|
|
65
|
+
*/
|
|
66
|
+
getLastNode() {
|
|
67
|
+
return this.children[this.children.length - 1].getLastNode();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @inheritDoc
|
|
71
|
+
*/
|
|
72
|
+
isNotEmpty() {
|
|
73
|
+
return this.children.length > 0;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @inheritDoc
|
|
77
|
+
*/
|
|
78
|
+
toJSON() {
|
|
79
|
+
return Object.assign(Object.assign({}, super.toJSON()), { id: this.id, type: this.type, children: this.children.map((child) => child.toJSON()) });
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get the style string for function content block, excluding default paragraph styles.
|
|
83
|
+
*
|
|
84
|
+
* @param {RTETextBlock} block - The text block to extract styles from
|
|
85
|
+
* @returns {string} - The style attribute string
|
|
86
|
+
*/
|
|
87
|
+
getFunctionContentStyle(block) {
|
|
88
|
+
const blockAnnotationStyle = new RTEAnnotationStyle(block);
|
|
89
|
+
let styles = blockAnnotationStyle.toCssText({ standalone: true });
|
|
90
|
+
const textStyleAnnotation = block.getAnnotationByType('TEXT_STYLE');
|
|
91
|
+
if (textStyleAnnotation && textStyleAnnotation.textStyle === 'paragraph') {
|
|
92
|
+
const defaultParagraphStyles = blockAnnotationStyle.toCssText(undefined, undefined, textStyleAnnotation.renderStyle({ standalone: true }));
|
|
93
|
+
styles = styles.replace(defaultParagraphStyles, '').trim();
|
|
94
|
+
}
|
|
95
|
+
return styles ? ` style="${styles}"` : '';
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { RTEBlock } from '../../../dto/blocks/block.abstract';
|
|
2
|
+
import { RTELogicControlNode } from '../dto/logic-control-node';
|
|
3
|
+
/**
|
|
4
|
+
* Class representing a logic control block in the rich text editor.
|
|
5
|
+
*/
|
|
6
|
+
export class RTELogicControlBlock extends RTEBlock {
|
|
7
|
+
constructor(id, statementText, parent) {
|
|
8
|
+
super(id);
|
|
9
|
+
this.type = 'logic-control-block';
|
|
10
|
+
this.children = [];
|
|
11
|
+
this.statementText = '';
|
|
12
|
+
this.statementText = statementText;
|
|
13
|
+
this.children = [new RTELogicControlNode(`${id}-node-1`, statementText, this)];
|
|
14
|
+
if (parent) {
|
|
15
|
+
this.parent = parent;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a logic control block from a JSON representation.
|
|
20
|
+
*
|
|
21
|
+
* @param {VegaRTELogicControlBlock} json - The JSON object representing the logic control block.
|
|
22
|
+
* @returns {RTELogicControlBlock} - The created logic control block.
|
|
23
|
+
*/
|
|
24
|
+
static from(json) {
|
|
25
|
+
const block = new RTELogicControlBlock(json.id, json.statementText);
|
|
26
|
+
return block;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check the block is not empty.
|
|
30
|
+
*
|
|
31
|
+
* @returns {boolean} - Always true for logic control block.
|
|
32
|
+
*/
|
|
33
|
+
isNotEmpty() {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the last node of the block.
|
|
38
|
+
*
|
|
39
|
+
* @returns {RTELogicControlNode} - The last node in the block.
|
|
40
|
+
*/
|
|
41
|
+
getLastNode() {
|
|
42
|
+
return this.children[this.children.length - 1];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Convert the block to its HTML representation.
|
|
46
|
+
*
|
|
47
|
+
* @returns {string} - The HTML string of the logic control block.
|
|
48
|
+
*/
|
|
49
|
+
toHtml() {
|
|
50
|
+
return `<div class='statementsyntax' contenteditable='false'>${this.statementText}</div>`;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Clone the current block instance.
|
|
54
|
+
*
|
|
55
|
+
* @param { RTEFunctionBlock } parent - The parent function block for the cloned instance.
|
|
56
|
+
* @returns {RTELogicControlBlock} - A new instance of RTEStatementSyntaxBlock.
|
|
57
|
+
*/
|
|
58
|
+
clone(parent) {
|
|
59
|
+
return new RTELogicControlBlock(this.id, this.statementText, parent);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the JSON representation of the block.
|
|
63
|
+
*
|
|
64
|
+
* @returns {VegaRTELogicControlBlock} - The JSON object of the logic control block.
|
|
65
|
+
*/
|
|
66
|
+
toJSON() {
|
|
67
|
+
return {
|
|
68
|
+
id: this.id,
|
|
69
|
+
type: this.type,
|
|
70
|
+
statementText: this.statementText,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { RTENode } from '../../../dto/nodes/node.abstract';
|
|
2
|
+
import stateEntityRenderingRegistry from '../../../slimmers/controllers/state-entity-rendering-registry';
|
|
3
|
+
/**
|
|
4
|
+
* Class representing a logic control node in the rich text editor.
|
|
5
|
+
*/
|
|
6
|
+
export class RTELogicControlNode extends RTENode {
|
|
7
|
+
constructor(id, text, parent) {
|
|
8
|
+
super(id);
|
|
9
|
+
this.type = 'logic-control-node';
|
|
10
|
+
this.text = '';
|
|
11
|
+
this.text = text;
|
|
12
|
+
this.parent = parent;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Clone the current node instance.
|
|
16
|
+
*
|
|
17
|
+
* @returns {RTELogicControlNode} - A new instance of RTELogicControlNode.
|
|
18
|
+
*/
|
|
19
|
+
clone() {
|
|
20
|
+
return new RTELogicControlNode(this.id, this.text, this.parent);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Convert the node to its HTML representation.
|
|
24
|
+
*
|
|
25
|
+
* @returns {string} - The HTML string of the logic control node.
|
|
26
|
+
*/
|
|
27
|
+
toHtml() {
|
|
28
|
+
return this.text;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Convert the node to a JSON representation.
|
|
32
|
+
*
|
|
33
|
+
* @returns {unknown} - The JSON object of the statement syntax node.
|
|
34
|
+
*/
|
|
35
|
+
toJSON() {
|
|
36
|
+
return {
|
|
37
|
+
id: this.id,
|
|
38
|
+
type: this.type,
|
|
39
|
+
text: this.text,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get the end offset of the node's range.
|
|
44
|
+
*
|
|
45
|
+
* @returns {number} - The end offset of the node's range.
|
|
46
|
+
*/
|
|
47
|
+
getRangeEndOffset() {
|
|
48
|
+
return 1;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the container element for the node's range.
|
|
52
|
+
*
|
|
53
|
+
* @returns {Nullable<Node>} - The container node for the range.
|
|
54
|
+
*/
|
|
55
|
+
getRangeContainer() {
|
|
56
|
+
const element = stateEntityRenderingRegistry.getDOMByEntity(this);
|
|
57
|
+
if (element) {
|
|
58
|
+
return element.parentElement;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the content editable state of the node.
|
|
63
|
+
*
|
|
64
|
+
* @returns {boolean} - The content editable state of the node.
|
|
65
|
+
*/
|
|
66
|
+
isContentEditable() {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { generateUUID } from '../../../../../utils/misc';
|
|
2
|
+
import { ElementToDTOStrategy } from '../../../slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract';
|
|
3
|
+
import { RTEFunctionBlock } from '../dto/function-block';
|
|
4
|
+
/**
|
|
5
|
+
* Strategy to convert a div with class 'statement' into an function block.
|
|
6
|
+
*/
|
|
7
|
+
export class DivToFunctionBlockStrategy extends ElementToDTOStrategy {
|
|
8
|
+
/**
|
|
9
|
+
* @inheritDoc
|
|
10
|
+
*/
|
|
11
|
+
canHandle(elementsArray, currentIndex) {
|
|
12
|
+
const element = elementsArray[currentIndex];
|
|
13
|
+
return element &&
|
|
14
|
+
element.tagName === 'DIV' &&
|
|
15
|
+
element.classList.contains('statement') &&
|
|
16
|
+
element.childNodes.length &&
|
|
17
|
+
element.querySelector('.statementsyntax')
|
|
18
|
+
? 1
|
|
19
|
+
: 0;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
handle() {
|
|
25
|
+
return RTEFunctionBlock.from({
|
|
26
|
+
id: generateUUID(),
|
|
27
|
+
type: 'function-block',
|
|
28
|
+
annotations: {
|
|
29
|
+
customClass: ['statement'],
|
|
30
|
+
},
|
|
31
|
+
children: [],
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
37
|
+
appendChildBlocks(currentBlock, childBlocks) {
|
|
38
|
+
currentBlock.children = childBlocks.map((block) => {
|
|
39
|
+
block.parent = currentBlock;
|
|
40
|
+
return block;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @inheritDoc
|
|
45
|
+
*/
|
|
46
|
+
shouldProceedToElementChildren() {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|