@globalpayments/vega 2.92.0 → 2.93.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-2f326662.js → app-globals-f7ad9275.js} +13 -9
- package/dist/cjs/{child-nodes-event-prevent-slimmer-b9a5b3e2.js → child-nodes-event-prevent-slimmer-e67ee84c.js} +1 -1
- package/dist/cjs/{code-block-6435d641.js → code-block-2f3d0f38.js} +41 -11
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-e4c9a5ba.js → component-value-history-controller-slimmer.abstract-31d2c7aa.js} +72 -39
- package/dist/cjs/{content-state-96ec9114.js → content-state-13daf87a.js} +61 -7
- package/dist/cjs/{date-required-rule-8c9e312b.js → date-required-rule-e65ddd7d.js} +1 -1
- package/dist/cjs/{design-token-3548af29.js → design-token-47393cbb.js} +3 -3
- package/dist/cjs/{element-appender-slimmer-3bf69990.js → element-appender-slimmer-29c4ac60.js} +17 -8
- package/dist/cjs/{event-emit-slimmer-5bab10c2.js → event-emit-slimmer-d234a619.js} +1 -1
- package/dist/cjs/{form-field-controller-slimmer-e0efac05.js → form-field-controller-slimmer-3bfcf88c.js} +1 -1
- package/dist/cjs/{image-annotation-action-853f72c8.js → image-annotation-action-c2b163bb.js} +3 -3
- package/dist/cjs/image-extension-4e99b620.js +39 -0
- package/dist/cjs/index.cjs.js +22 -19
- package/dist/cjs/{inject-keyboard-manager-0dccff1a.js → inject-keyboard-manager-4b2ebbe4.js} +1 -1
- package/dist/cjs/{internal-calendar-period-factory-6187ec4c.js → internal-calendar-period-factory-7a0ecdb1.js} +1 -1
- package/dist/cjs/{internal-translation-controller-48ebfd0f.js → internal-translation-controller-31f2b057.js} +4 -0
- package/dist/cjs/{internal-vega-event-manager-7196a847.js → internal-vega-event-manager-13c4012b.js} +2 -1
- package/dist/cjs/{keyboard-manager-dfe8d924.js → keyboard-manager-c78b46bd.js} +1 -1
- package/dist/cjs/{keyboard-manager-slimmer-4a2560a1.js → keyboard-manager-slimmer-d350c931.js} +1 -1
- package/dist/cjs/{link-extension-28d95849.js → link-extension-455c02b3.js} +3 -3
- package/dist/cjs/loader.cjs.js +15 -14
- package/dist/cjs/{month-view-generator-2e59b188.js → month-view-generator-006562dc.js} +1 -1
- package/dist/cjs/{public-rules-8727c42c.js → public-rules-c59eba88.js} +7 -7
- package/dist/cjs/{range-5cb3d1e4.js → range-bf80fa40.js} +1 -1
- package/dist/cjs/{replace-selected-text-action-a31563ed.js → replace-selected-text-action-a80f5a6a.js} +1 -1
- package/dist/cjs/{responsive-format-facade-98b89142.js → responsive-format-facade-1af54330.js} +1 -1
- package/dist/cjs/{rich-text-editor-required-rule-8e4d577d.js → rich-text-editor-required-rule-1085c71a.js} +1 -1
- package/dist/cjs/{split-cell-operation-9e3ab88d.js → split-cell-operation-2fa5c9e4.js} +3 -3
- package/dist/cjs/{state-border-formatter-626b0a14.js → state-border-formatter-501f6645.js} +1 -1
- package/dist/cjs/{string-format-strategy.abstract-981f43e1.js → string-format-strategy.abstract-a02bf002.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-fc4a0ba5.js → string-input-formatter-slimmer-9cca6151.js} +1 -1
- package/dist/cjs/{string-mask-strategy-b47fa159.js → string-mask-strategy-4c174ebf.js} +2 -2
- package/dist/cjs/{style-formatter-baf18624.js → style-formatter-2c749500.js} +2 -2
- package/dist/cjs/{time-required-rule-e77d174f.js → time-required-rule-04994a5e.js} +1 -1
- package/dist/cjs/{token-extension-3aec039f.js → token-extension-d217914d.js} +1300 -14
- package/dist/cjs/{translation-slimmer-1e05769e.js → translation-slimmer-7fb6e94c.js} +1 -1
- package/dist/cjs/{type-guard-7ab48d6c.js → type-guard-1c3770d4.js} +1 -1
- package/dist/cjs/{valid-credit-card-number-rule-52ba9c67.js → valid-credit-card-number-rule-f719a8c6.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +9 -9
- package/dist/cjs/vega-app-footer.cjs.entry.js +3 -3
- package/dist/cjs/vega-app-header-button.cjs.entry.js +9 -9
- package/dist/cjs/vega-banner.cjs.entry.js +3 -3
- package/dist/cjs/vega-box.cjs.entry.js +6 -6
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-circle.cjs.entry.js +9 -9
- package/dist/cjs/vega-button-group_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
- package/dist/cjs/vega-button.cjs.entry.js +7 -7
- package/dist/cjs/vega-calendar_5.cjs.entry.js +11 -11
- package/dist/cjs/vega-card.cjs.entry.js +5 -5
- package/dist/cjs/vega-carousel.cjs.entry.js +6 -6
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-chip.cjs.entry.js +9 -9
- package/dist/cjs/vega-code-block.cjs.entry.js +12 -12
- package/dist/cjs/vega-color-picker.cjs.entry.js +5 -5
- package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +7 -7
- package/dist/cjs/vega-color-swatch.cjs.entry.js +5 -5
- package/dist/cjs/vega-combo-box.cjs.entry.js +19 -13
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +17 -17
- package/dist/cjs/vega-dialog_2.cjs.entry.js +20 -9
- package/dist/cjs/vega-divider.cjs.entry.js +5 -5
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +693 -195
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/{vega-event-id-df22d80e.js → vega-event-id-58afed7a.js} +2 -0
- package/dist/cjs/vega-field-label.cjs.entry.js +5 -5
- package/dist/cjs/vega-file-uploader.cjs.entry.js +6 -6
- package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
- package/dist/cjs/vega-flex.cjs.entry.js +6 -6
- package/dist/cjs/vega-font.cjs.entry.js +5 -5
- package/dist/cjs/vega-form.cjs.entry.js +7 -7
- package/dist/cjs/vega-grid.cjs.entry.js +5 -5
- package/dist/cjs/vega-icon.cjs.entry.js +5 -5
- package/dist/cjs/vega-image-uploader.cjs.entry.js +9 -9
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +10 -10
- package/dist/cjs/vega-input-numeric.cjs.entry.js +9 -9
- package/dist/cjs/vega-input-passcode.cjs.entry.js +9 -9
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +8 -8
- package/dist/cjs/vega-input-range.cjs.entry.js +7 -7
- package/dist/cjs/vega-input-select.cjs.entry.js +9 -9
- package/dist/cjs/vega-input.cjs.entry.js +9 -9
- package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +10 -10
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +3 -3
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +3 -3
- package/dist/cjs/vega-pagination.cjs.entry.js +8 -8
- package/dist/cjs/vega-popover_2.cjs.entry.js +11 -11
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-radio_2.cjs.entry.js +9 -9
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +7 -7
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +472 -62
- package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +4 -4
- package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +8 -8
- package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +11 -11
- package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +8 -8
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +6 -6
- package/dist/cjs/vega-signature-capture.cjs.entry.js +10 -10
- package/dist/cjs/vega-stepper.cjs.entry.js +6 -6
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-table_11.cjs.entry.js +911 -428
- package/dist/cjs/vega-textarea.cjs.entry.js +7 -9
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +34 -14
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +5 -5
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
- package/dist/cjs/vega.cjs.js +15 -14
- package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +4 -1
- package/dist/collection/components/vega-combo-box/vega-combo-box.js +7 -1
- package/dist/collection/components/vega-dialog/vega-dialog.js +1 -1
- package/dist/collection/components/vega-dropdown/constants.js +1 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +9 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.js +97 -4
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-select-all-controller.js +219 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-selected-controller.js +78 -13
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.js +13 -1
- package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.js +7 -0
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.js +52 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +4 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.js +5 -0
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +126 -1
- package/dist/collection/components/vega-field-label/vega-field-label.js +1 -1
- package/dist/collection/components/vega-hint/vega-hint.js +1 -1
- package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +4 -1
- package/dist/collection/components/vega-modal/vega-modal.css +0 -1
- package/dist/collection/components/vega-modal/vega-modal.js +38 -0
- package/dist/collection/components/vega-rich-text-editor/assets/redo.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/assets/undo.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-insert-line-break-strategy.js +11 -5
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-split-with-text-node-strategy.js +9 -4
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.js +61 -5
- package/dist/collection/components/vega-rich-text-editor/dto/actions/paste-content-action.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-interceptors/blockquote-exit-on-enter-interceptor.js +61 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/block-transform-to-blockquote-strategy.js +40 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/remove-blockquote-strategy.js +20 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/actions/remove-blockquote-action.js +17 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/actions/transform-to-blockquote-action.js +19 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/assets/quote-left.js +4 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/blockquote-extension.js +47 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/dto/blockquote-annotation.js +76 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/dto/rte-blockquote-block.js +70 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/element-to-dto-strategies/blockquote-to-blockquote-block-strategy.js +53 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/filter-styles-strategies/blockquote-block/blockquote-filter-styles-strategy.js +41 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-block-renderer.js +21 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.js +260 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/image/image-extension.js +34 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/image/type.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/assets/paste.js +3 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +144 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-constants.js +6 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-extension.js +442 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +4 -3
- package/dist/collection/components/vega-rich-text-editor/helpers/utils.js +14 -0
- package/dist/collection/components/vega-rich-text-editor/public-api.js +3 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-line-break-handler.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +385 -25
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +69 -36
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +59 -14
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/slimmers/renderers/vega-rich-text-editor-toolbar-button-renderer.js +6 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.js +28 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-image-editor/vega-rich-text-image-editor.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.js +1 -1
- package/dist/collection/components/vega-table/slimmers/controllers/dto/column-render-input-model.js +32 -0
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.js +77 -0
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.js +121 -0
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-cell-renderer.js +39 -14
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +207 -7
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-row-renderer.js +16 -3
- package/dist/collection/components/vega-table/vega-table-cell/vega-table-cell.js +24 -4
- package/dist/collection/components/vega-table/vega-table-expand-row/slimmers/controllers/vega-table-expand-row-col-span-controller.js +11 -2
- package/dist/collection/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.js +5 -1
- package/dist/collection/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.js +22 -1
- package/dist/collection/components/vega-table/vega-table.css +5 -0
- package/dist/collection/components/vega-table/vega-table.js +5 -0
- package/dist/collection/components/vega-text/vega-text.js +1 -1
- package/dist/collection/components/vega-textarea/vega-textarea.js +1 -3
- package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.js +4 -0
- package/dist/collection/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.js +4 -0
- package/dist/collection/components/vega-time-picker/vega-time-picker.js +39 -0
- package/dist/collection/constants/ui.js +1 -0
- package/dist/collection/global/scripts/before-vega-load.js +6 -0
- package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +2 -1
- package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
- package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +11 -4
- package/dist/collection/helpers/translation/locales/en.js +4 -0
- package/dist/collection/helpers/ui/element-appender.js +5 -2
- package/dist/esm/{app-globals-5e0d319a.js → app-globals-9950d055.js} +13 -9
- package/dist/esm/{child-nodes-event-prevent-slimmer-f24618c5.js → child-nodes-event-prevent-slimmer-96c14f5a.js} +1 -1
- package/dist/esm/{code-block-b71b2aa4.js → code-block-ae2337c2.js} +41 -12
- package/dist/esm/{component-value-history-controller-slimmer.abstract-282df6e5.js → component-value-history-controller-slimmer.abstract-b1ee1b8e.js} +72 -39
- package/dist/esm/{content-state-909099f8.js → content-state-c3b85ae6.js} +61 -7
- package/dist/esm/{date-required-rule-15edb04a.js → date-required-rule-e06115f8.js} +1 -1
- package/dist/esm/{design-token-cb5ed6b9.js → design-token-4e682056.js} +3 -3
- package/dist/esm/{element-appender-slimmer-e41120ee.js → element-appender-slimmer-a4485ef6.js} +17 -8
- package/dist/esm/{event-emit-slimmer-03deba18.js → event-emit-slimmer-db4a82e0.js} +1 -1
- package/dist/esm/{form-field-controller-slimmer-cfe1d8a7.js → form-field-controller-slimmer-a1c7b28c.js} +1 -1
- package/dist/esm/{image-annotation-action-98232dc4.js → image-annotation-action-4c77d314.js} +3 -3
- package/dist/esm/image-extension-7108c27d.js +37 -0
- package/dist/esm/index.js +19 -19
- package/dist/esm/{inject-keyboard-manager-13cc77ab.js → inject-keyboard-manager-e8ddb78d.js} +1 -1
- package/dist/esm/{internal-calendar-period-factory-c3d70f3b.js → internal-calendar-period-factory-6f19d767.js} +1 -1
- package/dist/esm/{internal-translation-controller-8e8a514a.js → internal-translation-controller-09b8bd13.js} +4 -0
- package/dist/esm/{internal-vega-event-manager-75e5e3bb.js → internal-vega-event-manager-48690e5b.js} +2 -1
- package/dist/esm/{keyboard-manager-fe885db1.js → keyboard-manager-ec18721b.js} +1 -1
- package/dist/esm/{keyboard-manager-slimmer-61d4c79b.js → keyboard-manager-slimmer-531ddb0e.js} +1 -1
- package/dist/esm/{link-extension-f1a3bea7.js → link-extension-74eaa826.js} +3 -3
- package/dist/esm/loader.js +15 -14
- package/dist/esm/{month-view-generator-85eecb95.js → month-view-generator-afd78ff8.js} +1 -1
- package/dist/esm/{public-rules-323bea4b.js → public-rules-5fce32a5.js} +7 -7
- package/dist/esm/{range-e63068d1.js → range-8f877dbf.js} +1 -1
- package/dist/esm/{replace-selected-text-action-c0817b2b.js → replace-selected-text-action-c9278a0f.js} +1 -1
- package/dist/esm/{responsive-format-facade-fb424f5b.js → responsive-format-facade-299e6304.js} +1 -1
- package/dist/esm/{rich-text-editor-required-rule-0edb8ba7.js → rich-text-editor-required-rule-3047bab0.js} +1 -1
- package/dist/esm/{split-cell-operation-93b4d775.js → split-cell-operation-98d58410.js} +3 -3
- package/dist/esm/{state-border-formatter-1a528ca4.js → state-border-formatter-da52b626.js} +1 -1
- package/dist/esm/{string-format-strategy.abstract-72fc98aa.js → string-format-strategy.abstract-a45b5ff7.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-b0c480d8.js → string-input-formatter-slimmer-4a032fed.js} +1 -1
- package/dist/esm/{string-mask-strategy-4e00c173.js → string-mask-strategy-37e53e48.js} +2 -2
- package/dist/esm/{style-formatter-5c1bea8d.js → style-formatter-3d5ddfb1.js} +2 -2
- package/dist/esm/{time-required-rule-df500b14.js → time-required-rule-355b73d2.js} +1 -1
- package/dist/esm/{token-extension-32d1fa56.js → token-extension-ecfafe94.js} +1298 -15
- package/dist/esm/{translation-slimmer-60408f13.js → translation-slimmer-3ea56354.js} +1 -1
- package/dist/esm/{type-guard-91087018.js → type-guard-2bfb2c7b.js} +1 -1
- package/dist/esm/{valid-credit-card-number-rule-681ecb75.js → valid-credit-card-number-rule-52c6b029.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +9 -9
- package/dist/esm/vega-app-footer.entry.js +3 -3
- package/dist/esm/vega-app-header-button.entry.js +9 -9
- package/dist/esm/vega-banner.entry.js +3 -3
- package/dist/esm/vega-box.entry.js +6 -6
- package/dist/esm/vega-breadcrumb.entry.js +4 -4
- package/dist/esm/vega-button-circle.entry.js +9 -9
- package/dist/esm/vega-button-group_2.entry.js +4 -4
- package/dist/esm/vega-button-link.entry.js +4 -4
- package/dist/esm/vega-button.entry.js +7 -7
- package/dist/esm/vega-calendar_5.entry.js +11 -11
- package/dist/esm/vega-card.entry.js +5 -5
- package/dist/esm/vega-carousel.entry.js +6 -6
- package/dist/esm/vega-checkbox_2.entry.js +6 -6
- package/dist/esm/vega-chip.entry.js +9 -9
- package/dist/esm/vega-code-block.entry.js +12 -12
- package/dist/esm/vega-color-picker.entry.js +5 -5
- package/dist/esm/vega-color-swatch-picker.entry.js +7 -7
- package/dist/esm/vega-color-swatch.entry.js +5 -5
- package/dist/esm/vega-combo-box.entry.js +19 -13
- package/dist/esm/vega-date-picker_2.entry.js +17 -17
- package/dist/esm/vega-dialog_2.entry.js +20 -9
- package/dist/esm/vega-divider.entry.js +5 -5
- package/dist/esm/vega-dropdown_5.entry.js +695 -197
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/{vega-event-id-d3017041.js → vega-event-id-270fe47e.js} +2 -1
- package/dist/esm/vega-field-label.entry.js +5 -5
- package/dist/esm/vega-file-uploader.entry.js +6 -6
- package/dist/esm/vega-flag-icon.entry.js +5 -5
- package/dist/esm/vega-flex.entry.js +6 -6
- package/dist/esm/vega-font.entry.js +5 -5
- package/dist/esm/vega-form.entry.js +7 -7
- package/dist/esm/vega-grid.entry.js +5 -5
- package/dist/esm/vega-icon.entry.js +5 -5
- package/dist/esm/vega-image-uploader.entry.js +9 -9
- package/dist/esm/vega-input-credit-card.entry.js +10 -10
- package/dist/esm/vega-input-numeric.entry.js +9 -9
- package/dist/esm/vega-input-passcode.entry.js +9 -9
- package/dist/esm/vega-input-phone-number.entry.js +8 -8
- package/dist/esm/vega-input-range.entry.js +7 -7
- package/dist/esm/vega-input-select.entry.js +9 -9
- package/dist/esm/vega-input.entry.js +9 -9
- package/dist/esm/vega-item-toggle.entry.js +3 -3
- package/dist/esm/vega-left-nav_5.entry.js +10 -10
- package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
- package/dist/esm/vega-page-notification_2.entry.js +1 -1
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +3 -3
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +3 -3
- package/dist/esm/vega-pagination.entry.js +8 -8
- package/dist/esm/vega-popover_2.entry.js +11 -11
- package/dist/esm/vega-progress-tracker_2.entry.js +6 -6
- package/dist/esm/vega-radio_2.entry.js +9 -9
- package/dist/esm/vega-rich-text-content.entry.js +7 -7
- package/dist/esm/vega-rich-text-editor_4.entry.js +472 -62
- package/dist/esm/vega-rich-text-find-replace-panel.entry.js +4 -4
- package/dist/esm/vega-rich-text-special-characters-panel.entry.js +8 -8
- package/dist/esm/vega-rich-text-table-properties_3.entry.js +11 -11
- package/dist/esm/vega-segment-control.entry.js +3 -3
- package/dist/esm/vega-selection-chip_2.entry.js +8 -8
- package/dist/esm/vega-selection-tile_2.entry.js +6 -6
- package/dist/esm/vega-sidenav_3.entry.js +6 -6
- package/dist/esm/vega-signature-capture.entry.js +10 -10
- package/dist/esm/vega-stepper.entry.js +6 -6
- package/dist/esm/vega-tab-group_2.entry.js +4 -4
- package/dist/esm/vega-table_11.entry.js +911 -428
- package/dist/esm/vega-textarea.entry.js +7 -9
- package/dist/esm/vega-time-picker_2.entry.js +34 -14
- package/dist/esm/vega-toggle-switch.entry.js +5 -5
- package/dist/esm/vega-tooltip_2.entry.js +6 -6
- package/dist/esm/vega.js +15 -14
- package/dist/sri/vega-sri-manifest.json +362 -358
- package/dist/types/components/vega-combo-box/types.d.ts +6 -1
- package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +1 -0
- package/dist/types/components/vega-dropdown/constants.d.ts +1 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +2 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-children-controller.d.ts +36 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-select-all-controller.d.ts +107 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-selected-controller.d.ts +17 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-source-controller.d.ts +5 -0
- package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-list-renderer.d.ts +2 -0
- package/dist/types/components/vega-dropdown/types.d.ts +8 -0
- package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.d.ts +25 -0
- package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.d.ts +1 -0
- package/dist/types/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.d.ts +4 -0
- package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +48 -0
- package/dist/types/components/vega-modal/slimmers/renderers/vega-modal-renderer.d.ts +2 -1
- package/dist/types/components/vega-modal/vega-modal.d.ts +9 -1
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/paste-content-strategy.d.ts +14 -4
- package/dist/types/components/vega-rich-text-editor/dto/actions/paste-content-action.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-interceptors/blockquote-exit-on-enter-interceptor.d.ts +34 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/block-transform-to-blockquote-strategy.d.ts +13 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/action-handler-strategies/remove-blockquote-strategy.d.ts +13 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/actions/remove-blockquote-action.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/actions/transform-to-blockquote-action.d.ts +18 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/assets/quote-left.d.ts +3 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/blockquote-extension.d.ts +9 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/dto/blockquote-annotation.d.ts +48 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/dto/rte-blockquote-block.d.ts +56 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/element-to-dto-strategies/blockquote-to-blockquote-block-strategy.d.ts +35 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/filter-styles-strategies/blockquote-block/blockquote-filter-styles-strategy.d.ts +31 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-block-renderer.d.ts +18 -0
- package/dist/types/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.d.ts +113 -0
- package/dist/types/components/vega-rich-text-editor/extensions/image/image-extension.d.ts +27 -0
- package/dist/types/components/vega-rich-text-editor/extensions/image/type.d.ts +13 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/assets/paste.d.ts +3 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.d.ts +58 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-constants.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-extension.d.ts +150 -0
- package/dist/types/components/vega-rich-text-editor/helpers/utils.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/public-api.d.ts +3 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.d.ts +114 -3
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/selection-controller.d.ts +22 -13
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.d.ts +10 -2
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/slimmers/renderers/vega-rich-text-editor-toolbar-button-renderer.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +4 -4
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-image-editor/vega-rich-text-image-editor.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.d.ts +1 -1
- package/dist/types/components/vega-table/interface.d.ts +18 -0
- package/dist/types/components/vega-table/slimmers/controllers/dto/column-render-input-model.d.ts +13 -0
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.d.ts +43 -0
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.d.ts +38 -0
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-cell-renderer.d.ts +11 -2
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.d.ts +4 -0
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-row-renderer.d.ts +1 -0
- package/dist/types/components/vega-table/vega-table-cell/slimmers/controllers/vega-table-row-state-subscriber.d.ts +1 -1
- package/dist/types/components/vega-table/vega-table-cell/vega-table-cell.d.ts +9 -0
- package/dist/types/components/vega-table/vega-table-foot-cell/slimmers/renderers/vega-table-foot-cell-renderer.d.ts +1 -0
- package/dist/types/components/vega-table/vega-table-foot-cell/vega-table-foot-cell.d.ts +9 -0
- package/dist/types/components/vega-table/vega-table.d.ts +2 -0
- package/dist/types/components/vega-time-picker/slimmers/controllers/vega-time-picker-range-dropdown-controller.d.ts +1 -0
- package/dist/types/components/vega-time-picker/slimmers/controllers/vega-time-picker-single-dropdown-controller.d.ts +1 -0
- package/dist/types/components/vega-time-picker/types.d.ts +7 -0
- package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +11 -1
- package/dist/types/components.d.ts +80 -3
- package/dist/types/constants/ui.d.ts +1 -1
- package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
- package/dist/types/helpers/translation/interface.d.ts +5 -0
- package/dist/types/helpers/ui/element-appender.d.ts +4 -1
- package/dist/types/types/components.type.d.ts +5 -1
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-481601c0.entry.js → p-05f937c5.entry.js} +1 -1
- package/dist/vega/{p-970115d6.js → p-07562b9c.js} +1 -1
- package/dist/vega/{p-d0ce752f.entry.js → p-09d50f59.entry.js} +1 -1
- package/dist/vega/{p-22f73e6e.entry.js → p-0cb78838.entry.js} +1 -1
- package/dist/vega/p-0e607b44.js +1 -0
- package/dist/vega/{p-c8eaf91c.entry.js → p-0f1d6ceb.entry.js} +1 -1
- package/dist/vega/{p-70817cf5.js → p-140616fe.js} +1 -1
- package/dist/vega/{p-f70f7ad8.entry.js → p-1818f399.entry.js} +1 -1
- package/dist/vega/{p-802bf369.js → p-18a5e8bc.js} +1 -1
- package/dist/vega/{p-4d9061fb.js → p-19c42e30.js} +1 -1
- package/dist/vega/{p-d7369441.js → p-1efab41b.js} +1 -1
- package/dist/vega/{p-92823583.js → p-21e21f51.js} +1 -1
- package/dist/vega/{p-c0629528.entry.js → p-26c7fe8b.entry.js} +1 -1
- package/dist/vega/p-282b37cb.js +1 -0
- package/dist/vega/{p-c78aeaf3.entry.js → p-2dc5edd0.entry.js} +1 -1
- package/dist/vega/{p-228c5de8.js → p-2de61f1b.js} +1 -1
- package/dist/vega/{p-82279b03.entry.js → p-2de88b4a.entry.js} +1 -1
- package/dist/vega/{p-438b7404.entry.js → p-2fcc604c.entry.js} +1 -1
- package/dist/vega/{p-aa32f2f3.js → p-32a67ba1.js} +1 -1
- package/dist/vega/p-392e049c.entry.js +1 -0
- package/dist/vega/{p-a268a4fb.entry.js → p-3932f964.entry.js} +1 -1
- package/dist/vega/{p-f515d189.entry.js → p-3c9da3cd.entry.js} +1 -1
- package/dist/vega/{p-5829a66d.entry.js → p-3f7b10b9.entry.js} +1 -1
- package/dist/vega/{p-5545a235.entry.js → p-422d88ae.entry.js} +1 -1
- package/dist/vega/p-4256252c.js +3 -0
- package/dist/vega/{p-8f078d0d.entry.js → p-44439ecc.entry.js} +1 -1
- package/dist/vega/{p-68e16c70.entry.js → p-45e8424a.entry.js} +1 -1
- package/dist/vega/p-4c49b2e3.js +1 -0
- package/dist/vega/{p-71e2a3ec.js → p-4d9562bc.js} +1 -1
- package/dist/vega/p-4e1aa86f.js +1 -0
- package/dist/vega/p-4ef5c4a7.entry.js +1 -0
- package/dist/vega/{p-9440a8a5.entry.js → p-4f327808.entry.js} +1 -1
- package/dist/vega/{p-2def8e3e.js → p-5139e516.js} +1 -1
- package/dist/vega/{p-2e58d99e.entry.js → p-56c4e349.entry.js} +1 -1
- package/dist/vega/{p-b730bf6e.js → p-5dbfffcd.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-916dfa7e.entry.js → p-615a2b8c.entry.js} +1 -1
- package/dist/vega/{p-625351a3.entry.js → p-63101cb4.entry.js} +1 -1
- package/dist/vega/{p-7798254d.entry.js → p-653a6dd8.entry.js} +1 -1
- package/dist/vega/{p-d20587b4.entry.js → p-66b7d1c7.entry.js} +1 -1
- package/dist/vega/{p-9219201a.entry.js → p-6712a9c7.entry.js} +1 -1
- package/dist/vega/p-698fbd73.js +1 -0
- package/dist/vega/p-6ad7144a.entry.js +1 -0
- package/dist/vega/{p-9fafc956.entry.js → p-6b1893f6.entry.js} +1 -1
- package/dist/vega/{p-93dfab05.js → p-6d40635e.js} +1 -1
- package/dist/vega/{p-b799fc1f.entry.js → p-73fd18d9.entry.js} +1 -1
- package/dist/vega/p-751a5cd6.entry.js +1 -0
- package/dist/vega/{p-f7739cbb.entry.js → p-7b93a756.entry.js} +1 -1
- package/dist/vega/{p-2314494a.entry.js → p-7c8e579e.entry.js} +1 -1
- package/dist/vega/{p-4953bb1a.js → p-7d54e9c1.js} +1 -1
- package/dist/vega/{p-590c8720.entry.js → p-832d1a72.entry.js} +1 -1
- package/dist/vega/p-846b1ab9.entry.js +1 -0
- package/dist/vega/p-88863658.js +1 -0
- package/dist/vega/{p-c2e0f8b7.entry.js → p-8c1a5fa4.entry.js} +1 -1
- package/dist/vega/{p-f0bc2bbb.js → p-8d27b9cc.js} +1 -1
- package/dist/vega/{p-f365601c.entry.js → p-944b43ce.entry.js} +1 -1
- package/dist/vega/{p-8d69b201.js → p-95d6c85f.js} +1 -1
- package/dist/vega/{p-9b1d718c.entry.js → p-99b699be.entry.js} +1 -1
- package/dist/vega/p-9a01be93.js +1 -0
- package/dist/vega/{p-53c76d9d.entry.js → p-9a472a04.entry.js} +1 -1
- package/dist/vega/{p-18413b62.entry.js → p-9cafbc26.entry.js} +1 -1
- package/dist/vega/p-a359e53c.js +1 -0
- package/dist/vega/p-a9a87b9a.js +1 -0
- package/dist/vega/p-acbba6da.entry.js +1 -0
- package/dist/vega/{p-56cf1a65.entry.js → p-ad35dea4.entry.js} +1 -1
- package/dist/vega/{p-06c2ce2c.entry.js → p-af98539f.entry.js} +1 -1
- package/dist/vega/{p-136226f8.js → p-afb96938.js} +1 -1
- package/dist/vega/{p-e160a727.entry.js → p-b042e3b4.entry.js} +1 -1
- package/dist/vega/{p-5beec481.js → p-b1ff70bf.js} +1 -1
- package/dist/vega/{p-9cdedcfb.entry.js → p-b39d4a88.entry.js} +1 -1
- package/dist/vega/{p-c78e8081.entry.js → p-b5bee669.entry.js} +1 -1
- package/dist/vega/p-b5f308ee.entry.js +1 -0
- package/dist/vega/{p-43c3848f.entry.js → p-bbabb1c8.entry.js} +1 -1
- package/dist/vega/p-bbf1f988.entry.js +1 -0
- package/dist/vega/{p-e9cee498.entry.js → p-c2d28797.entry.js} +1 -1
- package/dist/vega/{p-40501057.entry.js → p-c3c0e415.entry.js} +1 -1
- package/dist/vega/{p-5946fadf.js → p-c553d37e.js} +1 -1
- package/dist/vega/{p-f6bccb06.entry.js → p-c5ecbc53.entry.js} +1 -1
- package/dist/vega/{p-2353b64f.entry.js → p-c9c6daa6.entry.js} +1 -1
- package/dist/vega/p-cb81fc2a.entry.js +1 -0
- package/dist/vega/p-ccb9bf86.js +1 -0
- package/dist/vega/{p-e371738b.js → p-ccf7518b.js} +1 -1
- package/dist/vega/{p-8b9a8603.entry.js → p-cf8d5b3f.entry.js} +1 -1
- package/dist/vega/{p-30561e1d.entry.js → p-d3a36d19.entry.js} +1 -1
- package/dist/vega/{p-cd1844ad.entry.js → p-d44943e2.entry.js} +1 -1
- package/dist/vega/{p-d3c8b871.entry.js → p-d4bb6f93.entry.js} +1 -1
- package/dist/vega/p-d62b85ff.entry.js +1 -0
- package/dist/vega/{p-ce7e9515.entry.js → p-d7f32ccf.entry.js} +1 -1
- package/dist/vega/p-dca3278f.js +1 -0
- package/dist/vega/{p-37dffdf6.entry.js → p-ddd28a8e.entry.js} +1 -1
- package/dist/vega/{p-2da12975.entry.js → p-ddf03de1.entry.js} +1 -1
- package/dist/vega/p-e0ecafca.js +1 -0
- package/dist/vega/p-e33e1e90.js +1 -0
- package/dist/vega/{p-5038b6d7.entry.js → p-e410c4ad.entry.js} +1 -1
- package/dist/vega/{p-a361456d.js → p-e4309574.js} +1 -1
- package/dist/vega/p-e5187a86.entry.js +1 -0
- package/dist/vega/{p-fc5dfb52.entry.js → p-e86c6802.entry.js} +1 -1
- package/dist/vega/{p-e3803943.js → p-ef605271.js} +1 -1
- package/dist/vega/{p-45ab490c.js → p-f0d4c78c.js} +1 -1
- package/dist/vega/{p-e41d9d0e.entry.js → p-f2f22b5d.entry.js} +1 -1
- package/dist/vega/{p-b6ebfd5c.entry.js → p-f8a29127.entry.js} +1 -1
- package/dist/vega/{p-cd9fb2ca.entry.js → p-fbd3be00.entry.js} +1 -1
- package/dist/vega/{p-450bf94d.entry.js → p-fda6e2cc.entry.js} +1 -1
- package/dist/vega/p-ff8dd200.js +1 -0
- package/dist/vega/{p-c67ce78c.entry.js → p-ffdacaf9.entry.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +2 -16
- package/readme.md +0 -5
- package/dist/vega/p-0179f55d.js +0 -1
- package/dist/vega/p-07b56f2b.entry.js +0 -1
- package/dist/vega/p-209e0166.js +0 -1
- package/dist/vega/p-35df0f0a.entry.js +0 -1
- package/dist/vega/p-3cf4339a.entry.js +0 -1
- package/dist/vega/p-4e39adf5.entry.js +0 -1
- package/dist/vega/p-5319da71.entry.js +0 -1
- package/dist/vega/p-5de1acdb.js +0 -1
- package/dist/vega/p-5df9047c.js +0 -1
- package/dist/vega/p-683cfe24.js +0 -1
- package/dist/vega/p-7be548a7.js +0 -1
- package/dist/vega/p-8509c140.entry.js +0 -1
- package/dist/vega/p-8aa07ed0.js +0 -1
- package/dist/vega/p-8da860f6.js +0 -1
- package/dist/vega/p-ca9852bb.js +0 -1
- package/dist/vega/p-de885ef2.js +0 -1
- package/dist/vega/p-dee38163.entry.js +0 -1
- package/dist/vega/p-e5502873.entry.js +0 -1
- package/dist/vega/p-ea22cba0.js +0 -1
- package/dist/vega/p-ea54ce0a.js +0 -3
- package/dist/vega/p-ee3155bd.js +0 -1
- package/dist/vega/p-eee01ba7.entry.js +0 -1
- package/dist/vega/p-ef2b9846.entry.js +0 -1
- package/dist/vega/p-f4a01959.js +0 -1
- package/dist/vega/p-f5aefb2f.entry.js +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import RTEDTOClassManager from '../../../../../helpers/rte-manager/dto-class-manager';
|
|
2
|
+
import { generateUUID } from '../../../../../utils/misc';
|
|
3
|
+
import { ActionHandlerInterceptor, } from '../../../dto/action-handle-strategies/action-handle-interceptor.abstract';
|
|
4
|
+
import { InsertChildrenAfterAction } from '../../../dto/actions/insert-children-after-block';
|
|
5
|
+
import { RemoveChildrenAction } from '../../../dto/actions/remove-child-action';
|
|
6
|
+
import { RTEBlockquoteBlock } from '../dto/rte-blockquote-block';
|
|
7
|
+
/**
|
|
8
|
+
* Lets the caret exit the blockquote via the keyboard. Pressing Enter on an empty
|
|
9
|
+
* trailing paragraph inside a blockquote (i.e. the second Enter press at the end of
|
|
10
|
+
* the quote) moves that empty paragraph out to a new paragraph after the blockquote,
|
|
11
|
+
* instead of stacking another empty line inside the quote.
|
|
12
|
+
*/
|
|
13
|
+
export class BlockquoteExitOnEnterInterceptor extends ActionHandlerInterceptor {
|
|
14
|
+
/**
|
|
15
|
+
* Intercept only when the caret sits in an empty paragraph that is the last child of a blockquote.
|
|
16
|
+
*
|
|
17
|
+
* @param {InsertNewParagraphAction} _action - the action to be intercepted
|
|
18
|
+
* @param {RTETextBlock} target - the paragraph block receiving the Enter key press
|
|
19
|
+
* @returns {boolean} - whether the action should be intercepted
|
|
20
|
+
*/
|
|
21
|
+
canIntercept(_action, target) {
|
|
22
|
+
const parent = target.parent;
|
|
23
|
+
return (parent instanceof RTEBlockquoteBlock &&
|
|
24
|
+
!target.isNotEmpty() &&
|
|
25
|
+
parent.children[parent.children.length - 1] === target);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Move the empty paragraph out of the blockquote and place a new paragraph after it.
|
|
29
|
+
*
|
|
30
|
+
* @param {ActionHandlerExecution} _execution - the original execution function
|
|
31
|
+
* @param {InsertNewParagraphAction} action - the action containing insert metadata
|
|
32
|
+
* @param {RTETextBlock} target - the empty paragraph block to move out of the blockquote
|
|
33
|
+
*/
|
|
34
|
+
intercept(_execution, action, target) {
|
|
35
|
+
const blockquote = target.parent;
|
|
36
|
+
const newParagraph = this.createNewParagraph('');
|
|
37
|
+
if (newParagraph) {
|
|
38
|
+
// Insert the replacement paragraph after the blockquote before removing the
|
|
39
|
+
// empty one so the blockquote is still present as an anchor for the insert.
|
|
40
|
+
blockquote.parent.apply(new InsertChildrenAfterAction(blockquote, newParagraph));
|
|
41
|
+
blockquote.apply(new RemoveChildrenAction(target));
|
|
42
|
+
action.newBlock = newParagraph;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Create a new empty paragraph block.
|
|
47
|
+
*
|
|
48
|
+
* @param {string} text - paragraph text
|
|
49
|
+
* @returns {Nullable<RTETextBlock>} - paragraph block when paragraph dto class is available
|
|
50
|
+
*/
|
|
51
|
+
createNewParagraph(text) {
|
|
52
|
+
const dtoClass = RTEDTOClassManager.getRTEBlockClass('paragraph');
|
|
53
|
+
if (dtoClass) {
|
|
54
|
+
return dtoClass.from({
|
|
55
|
+
id: generateUUID(),
|
|
56
|
+
type: 'paragraph',
|
|
57
|
+
nodes: [{ id: generateUUID(), type: 'text', text }],
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { generateUUID } from '../../../../../utils/misc';
|
|
2
|
+
import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
|
|
3
|
+
import { RTEBlockquoteBlock } from '../dto/rte-blockquote-block';
|
|
4
|
+
/**
|
|
5
|
+
* Wrap the selected blocks into a new `<blockquote>` block while preserving
|
|
6
|
+
* their order.
|
|
7
|
+
*/
|
|
8
|
+
export class BlockTransformToBlockquoteStrategy extends ActionHandleStrategy {
|
|
9
|
+
/**
|
|
10
|
+
* @inheritDoc
|
|
11
|
+
*/
|
|
12
|
+
handleAction(action, target) {
|
|
13
|
+
const selectedBlocks = action.selectedBlocks;
|
|
14
|
+
const children = target.children;
|
|
15
|
+
const selectedSet = new Set(selectedBlocks);
|
|
16
|
+
const firstIndex = children.indexOf(selectedBlocks[0]);
|
|
17
|
+
// The selected blocks may not be contiguous in `children` (e.g. a table
|
|
18
|
+
// sitting between two selected paragraphs must stay untouched), so the
|
|
19
|
+
// insert position is the first selected block's index, adjusted for any
|
|
20
|
+
// non-selected siblings that come before it.
|
|
21
|
+
const insertIndex = children
|
|
22
|
+
.slice(0, firstIndex)
|
|
23
|
+
.filter((block) => !selectedSet.has(block)).length;
|
|
24
|
+
const blockquote = new RTEBlockquoteBlock(generateUUID());
|
|
25
|
+
blockquote.parent = target;
|
|
26
|
+
blockquote.children = selectedBlocks;
|
|
27
|
+
selectedBlocks.forEach((block) => {
|
|
28
|
+
block.parent = blockquote;
|
|
29
|
+
});
|
|
30
|
+
// Remove selected blocks individually rather than assuming a single
|
|
31
|
+
// contiguous run, so non-selected siblings interleaved with the
|
|
32
|
+
// selection (e.g. a table) are preserved instead of being spliced away.
|
|
33
|
+
for (let i = children.length - 1; i >= 0; i--) {
|
|
34
|
+
if (selectedSet.has(children[i])) {
|
|
35
|
+
children.splice(i, 1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
children.splice(insertIndex, 0, blockquote);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { InsertChildrenBeforeAction } from '../../../dto/actions/insert-children-before-block';
|
|
2
|
+
import { RemoveChildrenAction } from '../../../dto/actions/remove-child-action';
|
|
3
|
+
import { ActionHandleStrategy } from '../../../dto/action-handle-strategies/action-handle-strategy.abstract';
|
|
4
|
+
/**
|
|
5
|
+
* Unwrap a `<blockquote>` — lift its children to the parent in their original
|
|
6
|
+
* order and remove the blockquote.
|
|
7
|
+
*/
|
|
8
|
+
export class RemoveBlockquoteStrategy extends ActionHandleStrategy {
|
|
9
|
+
/**
|
|
10
|
+
* @inheritDoc
|
|
11
|
+
*/
|
|
12
|
+
handleAction(_action, target) {
|
|
13
|
+
const parent = target.parent;
|
|
14
|
+
const childrenToLift = [...target.children];
|
|
15
|
+
if (childrenToLift.length > 0) {
|
|
16
|
+
parent.apply(new InsertChildrenBeforeAction(target, ...childrenToLift));
|
|
17
|
+
}
|
|
18
|
+
parent.apply(new RemoveChildrenAction(target));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ModifyContentAction } from '../../../dto/actions/modify-content-action.abstract';
|
|
2
|
+
/**
|
|
3
|
+
* Action type discriminator. Plain string constant — intentionally NOT added
|
|
4
|
+
* to {@link ModifyContentActionType} enum to keep the extension self-contained.
|
|
5
|
+
*/
|
|
6
|
+
export const REMOVE_BLOCKQUOTE = 'REMOVE_BLOCKQUOTE';
|
|
7
|
+
/**
|
|
8
|
+
* Unwrap a `<blockquote>` block — lift its children into the parent in place
|
|
9
|
+
* and remove the blockquote wrapper. Targets the blockquote block itself.
|
|
10
|
+
*/
|
|
11
|
+
export class RemoveBlockquoteAction extends ModifyContentAction {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.isFlushable = true;
|
|
15
|
+
this.type = REMOVE_BLOCKQUOTE;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ModifyContentAction } from '../../../dto/actions/modify-content-action.abstract';
|
|
2
|
+
/**
|
|
3
|
+
* Action type discriminator. Plain string constant — intentionally NOT added
|
|
4
|
+
* to {@link ModifyContentActionType} enum to keep the extension self-contained.
|
|
5
|
+
*/
|
|
6
|
+
export const TRANSFORM_TO_BLOCKQUOTE = 'TRANSFORM_TO_BLOCKQUOTE';
|
|
7
|
+
/**
|
|
8
|
+
* Wrap the supplied blocks into a new `<blockquote>` block while preserving
|
|
9
|
+
* their order. Strategy reads `selectedBlocks` and replaces them in-place
|
|
10
|
+
* with a single `RTEBlockquoteBlock` that adopts them as children.
|
|
11
|
+
*/
|
|
12
|
+
export class TransformToBlockquoteAction extends ModifyContentAction {
|
|
13
|
+
constructor(selectedBlocks) {
|
|
14
|
+
super();
|
|
15
|
+
this.isFlushable = true;
|
|
16
|
+
this.type = TRANSFORM_TO_BLOCKQUOTE;
|
|
17
|
+
this.selectedBlocks = selectedBlocks;
|
|
18
|
+
}
|
|
19
|
+
}
|
package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/assets/quote-left.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// FontAwesome 7.2.0 — `quote-left` (solid).
|
|
2
|
+
export default {
|
|
3
|
+
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z"/></svg>`,
|
|
4
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { VegaRTEExtension } from '../extension.abstract';
|
|
2
|
+
import { VegaRTEContent } from '../../dto/content-state';
|
|
3
|
+
import { RTETableCellBlock } from '../table/dto/table-cell-block';
|
|
4
|
+
import { RTETableHeadCellBlock } from '../table/dto/table-head-cell-block';
|
|
5
|
+
import { ModifyContentActionType } from '../../dto/actions/modify-content-action.abstract';
|
|
6
|
+
import { RTETextBlock } from '../../dto/blocks/text-block';
|
|
7
|
+
import { BlockTransformToBlockquoteStrategy } from './action-handler-strategies/block-transform-to-blockquote-strategy';
|
|
8
|
+
import { RemoveBlockquoteStrategy } from './action-handler-strategies/remove-blockquote-strategy';
|
|
9
|
+
import { BlockquoteExitOnEnterInterceptor } from './action-handler-interceptors/blockquote-exit-on-enter-interceptor';
|
|
10
|
+
import { TRANSFORM_TO_BLOCKQUOTE } from './actions/transform-to-blockquote-action';
|
|
11
|
+
import { REMOVE_BLOCKQUOTE } from './actions/remove-blockquote-action';
|
|
12
|
+
import { RTEBlockquoteBlock } from './dto/rte-blockquote-block';
|
|
13
|
+
import { BlockquoteToBlockquoteBlockStrategy } from './element-to-dto-strategies/blockquote-to-blockquote-block-strategy';
|
|
14
|
+
import RTEBlockquoteBlockRenderer from './renderers/blockquote-block-renderer';
|
|
15
|
+
import { RTEBlockquoteToolbarButtonRenderer } from './renderers/blockquote-toolbar-button-renderer';
|
|
16
|
+
import { BlockquoteFilterStylesStrategy } from './filter-styles-strategies/blockquote-block/blockquote-filter-styles-strategy';
|
|
17
|
+
/**
|
|
18
|
+
* Adds `<blockquote>` support to the Vega Rich Text Editor.
|
|
19
|
+
*/
|
|
20
|
+
export class VegaRTEBlockquoteExtension extends VegaRTEExtension {
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
this.toolbarButtonRenderer = new RTEBlockquoteToolbarButtonRenderer();
|
|
24
|
+
this.registerBlockBasicStrategies(RTEBlockquoteBlock.name);
|
|
25
|
+
this.registerNode('blockquote', RTEBlockquoteBlock);
|
|
26
|
+
this.registerRenderer('blockquote', RTEBlockquoteBlockRenderer);
|
|
27
|
+
this.registerToolbarButtonRenderer(VegaRTEBlockquoteExtension.TOOLBAR_BUTTON_KEY, this.toolbarButtonRenderer);
|
|
28
|
+
this.registerElementToBlockDTOClassStrategy(new BlockquoteToBlockquoteBlockStrategy());
|
|
29
|
+
// Register filter styles strategy for source edit round-trip.
|
|
30
|
+
VegaRTEExtension.registerFilterStylesStrategy(RTEBlockquoteBlock.dtoName, new BlockquoteFilterStylesStrategy());
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
(() => {
|
|
34
|
+
const wrapStrategy = new BlockTransformToBlockquoteStrategy();
|
|
35
|
+
// Root container — wrap top-level blocks.
|
|
36
|
+
VegaRTEExtension.registerActionHandleStrategy(VegaRTEContent.name, TRANSFORM_TO_BLOCKQUOTE, wrapStrategy);
|
|
37
|
+
// Table cells (body + header) — wrap is scoped to the closest cell.
|
|
38
|
+
// Other container blocks (code, list item, function) are intentionally
|
|
39
|
+
// not registered, so the toolbar stays disabled inside them.
|
|
40
|
+
VegaRTEExtension.registerActionHandleStrategy(RTETableCellBlock.name, TRANSFORM_TO_BLOCKQUOTE, wrapStrategy);
|
|
41
|
+
VegaRTEExtension.registerActionHandleStrategy(RTETableHeadCellBlock.name, TRANSFORM_TO_BLOCKQUOTE, wrapStrategy);
|
|
42
|
+
VegaRTEExtension.registerActionHandleStrategy(RTEBlockquoteBlock.name, REMOVE_BLOCKQUOTE, new RemoveBlockquoteStrategy());
|
|
43
|
+
// Enables exiting the blockquote via the keyboard: pressing Enter on an empty
|
|
44
|
+
// trailing paragraph breaks out to a new paragraph after the blockquote.
|
|
45
|
+
VegaRTEExtension.registerActionHandlerInterceptor(RTETextBlock.name, ModifyContentActionType.INSERT_NEW_PARAGRAPH, new BlockquoteExitOnEnterInterceptor());
|
|
46
|
+
})();
|
|
47
|
+
VegaRTEBlockquoteExtension.TOOLBAR_BUTTON_KEY = 'blockquote';
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { BlockAnnotation } from '../../../dto/annotations/block-annotation.abstract';
|
|
2
|
+
import { camelToDashCase } from '../../../../../utils/string';
|
|
3
|
+
export var RTEBlockquoteExtensionAnnotationTypeEnum;
|
|
4
|
+
(function (RTEBlockquoteExtensionAnnotationTypeEnum) {
|
|
5
|
+
RTEBlockquoteExtensionAnnotationTypeEnum["BLOCKQUOTE"] = "BLOCKQUOTE";
|
|
6
|
+
})(RTEBlockquoteExtensionAnnotationTypeEnum || (RTEBlockquoteExtensionAnnotationTypeEnum = {}));
|
|
7
|
+
/**
|
|
8
|
+
* CSS class applied to `<blockquote>` elements rendered inside the editor.
|
|
9
|
+
*/
|
|
10
|
+
export const BLOCKQUOTE_CLASS_NAME = 'v-rte-blockquote';
|
|
11
|
+
/**
|
|
12
|
+
* Default visual styles for the `<blockquote>` element in the RTE.
|
|
13
|
+
*/
|
|
14
|
+
export const BLOCKQUOTE_DEFAULT_STYLES = {
|
|
15
|
+
overflow: 'hidden',
|
|
16
|
+
marginInline: '0',
|
|
17
|
+
paddingInline: '24px',
|
|
18
|
+
borderInlineStart: 'solid 5px hsl(0, 0%, 80%)',
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Blockquote annotation.
|
|
22
|
+
*/
|
|
23
|
+
export class BlockquoteAnnotation extends BlockAnnotation {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
this.type = RTEBlockquoteExtensionAnnotationTypeEnum.BLOCKQUOTE;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generate the map item for the annotation.
|
|
30
|
+
*
|
|
31
|
+
* @returns {[RTEBlockquoteExtensionAnnotationTypeEnum.BLOCKQUOTE, BlockquoteAnnotation]} Map item.
|
|
32
|
+
*/
|
|
33
|
+
static from() {
|
|
34
|
+
return [RTEBlockquoteExtensionAnnotationTypeEnum.BLOCKQUOTE, new BlockquoteAnnotation()];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the default CSS rule for the blockquote element.
|
|
38
|
+
*
|
|
39
|
+
* @returns {string} The default CSS rule.
|
|
40
|
+
*/
|
|
41
|
+
static getDefaultCssText() {
|
|
42
|
+
const declarations = Object.entries(BLOCKQUOTE_DEFAULT_STYLES)
|
|
43
|
+
.map(([key, value]) => `\t${camelToDashCase(key)}: ${value};`)
|
|
44
|
+
.join('\n');
|
|
45
|
+
return `.${BLOCKQUOTE_CLASS_NAME} {\n${declarations}\n}`;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @inheritDoc
|
|
49
|
+
*/
|
|
50
|
+
toJSON() {
|
|
51
|
+
// Blockquote identity is captured by the block type; nothing to serialize.
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @inheritDoc
|
|
56
|
+
*/
|
|
57
|
+
clone() {
|
|
58
|
+
return new BlockquoteAnnotation();
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @inheritDoc
|
|
62
|
+
*/
|
|
63
|
+
renderClass(options) {
|
|
64
|
+
if (options === null || options === void 0 ? void 0 : options.standalone)
|
|
65
|
+
return null;
|
|
66
|
+
return BLOCKQUOTE_CLASS_NAME;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @inheritDoc
|
|
70
|
+
*/
|
|
71
|
+
renderStyle(options) {
|
|
72
|
+
if (!(options === null || options === void 0 ? void 0 : options.standalone))
|
|
73
|
+
return null;
|
|
74
|
+
return BLOCKQUOTE_DEFAULT_STYLES;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { RTEBlock } from '../../../dto/blocks/block.abstract';
|
|
2
|
+
import { BlockquoteAnnotation } from './blockquote-annotation';
|
|
3
|
+
/**
|
|
4
|
+
* DTO representing a `<blockquote>` block.
|
|
5
|
+
*/
|
|
6
|
+
export class RTEBlockquoteBlock extends RTEBlock {
|
|
7
|
+
constructor(id, options) {
|
|
8
|
+
super(id);
|
|
9
|
+
this.dtoName = RTEBlockquoteBlock.dtoName;
|
|
10
|
+
this.type = 'blockquote';
|
|
11
|
+
this.children = [];
|
|
12
|
+
const { autoMatchFormat = true } = options !== null && options !== void 0 ? options : {};
|
|
13
|
+
if (autoMatchFormat) {
|
|
14
|
+
this.annotationMap = new Map([BlockquoteAnnotation.from()]);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Convert a JSON block payload into an `RTEBlockquoteBlock` instance.
|
|
19
|
+
*
|
|
20
|
+
* @param {VegaRTEBlockquoteBlock} block - JSON payload.
|
|
21
|
+
* @param {VegaRTETransformOptions} [options] - Transform options.
|
|
22
|
+
* @returns {RTEBlockquoteBlock} The created blockquote block.
|
|
23
|
+
*/
|
|
24
|
+
static from(block, options) {
|
|
25
|
+
const blockquote = new RTEBlockquoteBlock(block.id, options);
|
|
26
|
+
if (block.annotations) {
|
|
27
|
+
RTEBlock.convertAnnotationsToMap(blockquote.annotationMap, block.annotations);
|
|
28
|
+
}
|
|
29
|
+
blockquote.children = RTEBlock.generateBlockChildren(block.children, options, blockquote);
|
|
30
|
+
return blockquote;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @inheritDoc
|
|
34
|
+
*/
|
|
35
|
+
clone(parent) {
|
|
36
|
+
const cloned = new RTEBlockquoteBlock(this.id);
|
|
37
|
+
const clonedAsChildParent = cloned;
|
|
38
|
+
cloned.children = this.children.map((child) => child.clone(clonedAsChildParent));
|
|
39
|
+
cloned.annotationMap = this.cloneAnnotations();
|
|
40
|
+
cloned.parent = parent;
|
|
41
|
+
return cloned;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @inheritDoc
|
|
45
|
+
*/
|
|
46
|
+
getLastNode() {
|
|
47
|
+
return this.children[this.children.length - 1].getLastNode();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @inheritDoc
|
|
51
|
+
*/
|
|
52
|
+
isNotEmpty() {
|
|
53
|
+
return this.children.length > 0;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @inheritDoc
|
|
57
|
+
*/
|
|
58
|
+
toHtml(options) {
|
|
59
|
+
const attrStr = this.generateAttributeString(options);
|
|
60
|
+
const inner = this.children.map((child) => child.toHtml(options)).join('');
|
|
61
|
+
return `<blockquote${attrStr}>${inner}</blockquote>`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @inheritDoc
|
|
65
|
+
*/
|
|
66
|
+
toJSON() {
|
|
67
|
+
return Object.assign(Object.assign({}, super.toJSON()), { id: this.id, type: 'blockquote', children: this.children.map((child) => child.toJSON()) });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
RTEBlockquoteBlock.dtoName = 'RTEBlockquoteBlock';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { generateUUID } from '../../../../../utils/misc';
|
|
2
|
+
import { ElementToDTOStrategy } from '../../../slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract';
|
|
3
|
+
import htmlElementToAnnotationGenerator from '../../../slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator';
|
|
4
|
+
import { RTEBlockquoteBlock } from '../dto/rte-blockquote-block';
|
|
5
|
+
/**
|
|
6
|
+
* Claim every `<blockquote>` element encountered during HTML → DTO conversion
|
|
7
|
+
* and produce an {@link RTEBlockquoteBlock}.
|
|
8
|
+
*
|
|
9
|
+
* Nested `<blockquote>` elements are flattened to a single level in
|
|
10
|
+
* {@link appendChildBlocks}: any direct child that arrives as another
|
|
11
|
+
* `<blockquote>` is replaced by its own children, lifting them one level up.
|
|
12
|
+
*/
|
|
13
|
+
export class BlockquoteToBlockquoteBlockStrategy extends ElementToDTOStrategy {
|
|
14
|
+
/**
|
|
15
|
+
* @inheritDoc
|
|
16
|
+
*/
|
|
17
|
+
canHandle(elementsArray, currentIndex) {
|
|
18
|
+
return elementsArray[currentIndex].tagName === 'BLOCKQUOTE' ? 1 : 0;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @inheritDoc
|
|
22
|
+
*/
|
|
23
|
+
handle(elementsArray, options) {
|
|
24
|
+
const element = elementsArray[0];
|
|
25
|
+
const annotations = htmlElementToAnnotationGenerator.generate(RTEBlockquoteBlock, element, options);
|
|
26
|
+
return RTEBlockquoteBlock.from({
|
|
27
|
+
id: generateUUID(),
|
|
28
|
+
type: 'blockquote',
|
|
29
|
+
annotations,
|
|
30
|
+
children: [],
|
|
31
|
+
}, options);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Flatten nested `<blockquote>` elements: any direct child that is itself
|
|
35
|
+
* an {@link RTEBlockquoteBlock} is replaced by its own children, lifting
|
|
36
|
+
* them one level up.
|
|
37
|
+
*
|
|
38
|
+
* @inheritDoc
|
|
39
|
+
*/
|
|
40
|
+
appendChildBlocks(currentBlock, childBlocks) {
|
|
41
|
+
const flattened = childBlocks.flatMap((child) => child instanceof RTEBlockquoteBlock ? child.children : [child]);
|
|
42
|
+
currentBlock.children = flattened.map((block) => {
|
|
43
|
+
block.parent = currentBlock;
|
|
44
|
+
return block;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @inheritDoc
|
|
49
|
+
*/
|
|
50
|
+
shouldProceedToElementChildren() {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { RTEFilterStylesStrategy, } from '../../../../dto/filter-styles-strategies/filter-styles-strategy.abstract';
|
|
2
|
+
import { BLOCKQUOTE_DEFAULT_STYLES } from '../../dto/blockquote-annotation';
|
|
3
|
+
/**
|
|
4
|
+
* Filter styles strategy for blockquote blocks.
|
|
5
|
+
* Strips default blockquote visual styles during output and refills them during input,
|
|
6
|
+
* ensuring source edit round-trips do not lose information.
|
|
7
|
+
*/
|
|
8
|
+
export class BlockquoteFilterStylesStrategy extends RTEFilterStylesStrategy {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.stylesToBeFiltered = BLOCKQUOTE_DEFAULT_STYLES;
|
|
12
|
+
this.elementTagName = 'blockquote';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Checks if the given block dto class name corresponds to a blockquote block.
|
|
16
|
+
*
|
|
17
|
+
* @param {string} className The class name to check.
|
|
18
|
+
* @returns {boolean} True if the class name corresponds to a blockquote block, false otherwise.
|
|
19
|
+
*/
|
|
20
|
+
static isBlockquoteBlock(className) {
|
|
21
|
+
return className === 'RTEBlockquoteBlock';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @inheritDoc
|
|
25
|
+
*/
|
|
26
|
+
canFilter(blockOrNodeInstance) {
|
|
27
|
+
return BlockquoteFilterStylesStrategy.isBlockquoteBlock(blockOrNodeInstance.dtoName);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @inheritDoc
|
|
31
|
+
*/
|
|
32
|
+
canRefill(_blockOrNodeClassName, element) {
|
|
33
|
+
return element.tagName.toLowerCase() === this.elementTagName;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @inheritDoc
|
|
37
|
+
*/
|
|
38
|
+
toCssText() {
|
|
39
|
+
return this.buildCssTextForStyles(this.elementTagName, this.classNameToBeAdded);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { VegaRTEExtensionRenderer } from '../../base-extension-renderer';
|
|
2
|
+
import { BlockquoteAnnotation } from '../dto/blockquote-annotation';
|
|
3
|
+
/**
|
|
4
|
+
* Renderer for blockquote blocks in the rich text editor.
|
|
5
|
+
*/
|
|
6
|
+
export class RTEBlockquoteBlockRenderer extends VegaRTEExtensionRenderer {
|
|
7
|
+
/**
|
|
8
|
+
* @inheritDoc
|
|
9
|
+
*/
|
|
10
|
+
doRender(createElement, block, rteContext) {
|
|
11
|
+
var _a;
|
|
12
|
+
return createElement('blockquote', Object.assign({ key: block.id, class: block.getClasses(rteContext), style: block.getStyles(rteContext), ref: this.useRef(block) }, (_a = block.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.render()));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @inheritDoc
|
|
16
|
+
*/
|
|
17
|
+
injectRTEScopeStyles() {
|
|
18
|
+
return BlockquoteAnnotation.getDefaultCssText();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export default new RTEBlockquoteBlockRenderer();
|