@globalpayments/vega 2.92.0 → 2.94.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-d05c3410.js} +14 -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-493c7ce7.js} +117 -31
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-e4c9a5ba.js → component-value-history-controller-slimmer.abstract-ab21fcbf.js} +72 -39
- package/dist/cjs/{content-state-96ec9114.js → content-state-fc34a814.js} +61 -7
- package/dist/cjs/{date-required-rule-8c9e312b.js → date-required-rule-4ab06a82.js} +1 -1
- package/dist/cjs/{design-token-3548af29.js → design-token-d3d12fa0.js} +3 -3
- package/dist/cjs/{element-appender-slimmer-3bf69990.js → element-appender-slimmer-1d6323c2.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-d638ba12.js} +1 -1
- package/dist/cjs/{image-annotation-action-853f72c8.js → image-annotation-action-7c4cd316.js} +4 -4
- package/dist/cjs/image-extension-30a7c10f.js +56 -0
- package/dist/cjs/index.cjs.js +24 -19
- package/dist/cjs/{inject-keyboard-manager-0dccff1a.js → inject-keyboard-manager-5a105612.js} +1 -1
- package/dist/cjs/{internal-calendar-period-factory-6187ec4c.js → internal-calendar-period-factory-b76006f7.js} +1 -1
- package/dist/cjs/{internal-translation-controller-48ebfd0f.js → internal-translation-controller-eb02c3b1.js} +6 -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-ca76d4dc.js} +1 -1
- package/dist/cjs/{keyboard-manager-slimmer-4a2560a1.js → keyboard-manager-slimmer-a1223714.js} +1 -1
- package/dist/cjs/{link-extension-28d95849.js → link-extension-92a63cb7.js} +3 -3
- package/dist/cjs/loader.cjs.js +14 -14
- package/dist/cjs/{month-view-generator-2e59b188.js → month-view-generator-876c50d4.js} +1 -1
- package/dist/cjs/{public-rules-8727c42c.js → public-rules-9e1ea1d9.js} +7 -7
- package/dist/cjs/{range-5cb3d1e4.js → range-30219330.js} +1 -1
- package/dist/cjs/{responsive-format-facade-98b89142.js → responsive-format-facade-25e9f30d.js} +1 -1
- package/dist/cjs/{rich-text-editor-required-rule-8e4d577d.js → rich-text-editor-required-rule-23bf7485.js} +1 -1
- package/dist/cjs/{split-cell-operation-9e3ab88d.js → split-cell-operation-43752212.js} +3 -3
- package/dist/cjs/{state-border-formatter-626b0a14.js → state-border-formatter-f1ce0f3b.js} +1 -1
- package/dist/cjs/{string-format-strategy.abstract-981f43e1.js → string-format-strategy.abstract-b22f7754.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-fc4a0ba5.js → string-input-formatter-slimmer-d2c248f7.js} +1 -1
- package/dist/cjs/{string-mask-strategy-b47fa159.js → string-mask-strategy-fc01a500.js} +2 -2
- package/dist/cjs/{style-formatter-baf18624.js → style-formatter-73205450.js} +2 -2
- package/dist/cjs/{time-required-rule-e77d174f.js → time-required-rule-12d2f394.js} +1 -1
- package/dist/cjs/{token-extension-3aec039f.js → token-extension-ea891d54.js} +3318 -1742
- package/dist/cjs/{translation-slimmer-1e05769e.js → translation-slimmer-9099f56c.js} +1 -1
- package/dist/cjs/{type-guard-7ab48d6c.js → type-guard-f354af8b.js} +1 -1
- package/dist/cjs/{valid-credit-card-number-rule-52ba9c67.js → valid-credit-card-number-rule-8d370163.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 +12 -9
- 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 +316 -111
- 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 +510 -73
- 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 +15 -15
- 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 +968 -425
- 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 +14 -14
- package/dist/collection/components/vega-button/vega-button.css +4 -0
- package/dist/collection/components/vega-button/vega-button.js +4 -1
- 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-nav/vega-left-nav/slimmers/controllers/vega-left-nav-auto-collapse-controller.js +4 -6
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.js +23 -68
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.js +74 -0
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.js +16 -2
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-zindex-controller.js +2 -2
- package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.js +7 -2
- 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/annotations/custom-style-annotation.js +3 -2
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-node-filter-styles-strategy.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +1 -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/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.js +21 -7
- package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-enter.js +3 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-exit.js +3 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/controller/fullscreen-controller.js +156 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-extension.js +31 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.js +73 -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 +145 -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/renderers/table-toolbar-popover-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +4 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/merge-cells-button-slimmer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/helpers/utils.js +85 -15
- package/dist/collection/components/vega-rich-text-editor/public-api.js +5 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +2 -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/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +1 -1
- 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/slimmers/renderers/tools/text-color-toolbar-button-slimmer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/text-styles-toolbar-button-slimmer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +11 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +19 -1
- 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/slimmers/renderers/vega-rich-text-link-editor-renderer.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 +41 -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 +113 -11
- 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 +8 -0
- package/dist/collection/helpers/backdrop/index.js +1 -0
- package/dist/collection/helpers/backdrop/shared-backdrop-manager.js +163 -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 +6 -0
- package/dist/collection/helpers/ui/element-appender.js +5 -2
- package/dist/esm/{app-globals-5e0d319a.js → app-globals-f2336686.js} +14 -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-e12588fe.js} +117 -32
- package/dist/esm/{component-value-history-controller-slimmer.abstract-282df6e5.js → component-value-history-controller-slimmer.abstract-4e8eb313.js} +72 -39
- package/dist/esm/{content-state-909099f8.js → content-state-8032467a.js} +61 -7
- package/dist/esm/{date-required-rule-15edb04a.js → date-required-rule-b88e1650.js} +1 -1
- package/dist/esm/{design-token-cb5ed6b9.js → design-token-76bd217c.js} +3 -3
- package/dist/esm/{element-appender-slimmer-e41120ee.js → element-appender-slimmer-7fcb944b.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-395c23e3.js} +1 -1
- package/dist/esm/{image-annotation-action-98232dc4.js → image-annotation-action-b3b6c308.js} +4 -4
- package/dist/esm/image-extension-b6c7e4a7.js +53 -0
- package/dist/esm/index.js +19 -19
- package/dist/esm/{inject-keyboard-manager-13cc77ab.js → inject-keyboard-manager-86126b5b.js} +1 -1
- package/dist/esm/{internal-calendar-period-factory-c3d70f3b.js → internal-calendar-period-factory-3a07dba0.js} +1 -1
- package/dist/esm/{internal-translation-controller-8e8a514a.js → internal-translation-controller-16709132.js} +6 -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-a0c3e1cf.js} +1 -1
- package/dist/esm/{keyboard-manager-slimmer-61d4c79b.js → keyboard-manager-slimmer-f3f66c15.js} +1 -1
- package/dist/esm/{link-extension-f1a3bea7.js → link-extension-97fcb8fb.js} +3 -3
- package/dist/esm/loader.js +14 -14
- package/dist/esm/{month-view-generator-85eecb95.js → month-view-generator-fd0e1856.js} +1 -1
- package/dist/esm/{public-rules-323bea4b.js → public-rules-c06f0d2a.js} +7 -7
- package/dist/esm/{range-e63068d1.js → range-e999837f.js} +1 -1
- package/dist/esm/{responsive-format-facade-fb424f5b.js → responsive-format-facade-ced96b0b.js} +1 -1
- package/dist/esm/{rich-text-editor-required-rule-0edb8ba7.js → rich-text-editor-required-rule-71f8ee98.js} +1 -1
- package/dist/esm/{split-cell-operation-93b4d775.js → split-cell-operation-359f8082.js} +3 -3
- package/dist/esm/{state-border-formatter-1a528ca4.js → state-border-formatter-b680e922.js} +1 -1
- package/dist/esm/{string-format-strategy.abstract-72fc98aa.js → string-format-strategy.abstract-23faab71.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-b0c480d8.js → string-input-formatter-slimmer-4b4866a6.js} +1 -1
- package/dist/esm/{string-mask-strategy-4e00c173.js → string-mask-strategy-66586cd8.js} +2 -2
- package/dist/esm/{style-formatter-5c1bea8d.js → style-formatter-f4e16af5.js} +2 -2
- package/dist/esm/{time-required-rule-df500b14.js → time-required-rule-6e80a9ab.js} +1 -1
- package/dist/esm/{token-extension-32d1fa56.js → token-extension-9896879b.js} +3314 -1742
- package/dist/esm/{translation-slimmer-60408f13.js → translation-slimmer-21748a0e.js} +1 -1
- package/dist/esm/{type-guard-91087018.js → type-guard-ec5e8628.js} +1 -1
- package/dist/esm/{valid-credit-card-number-rule-681ecb75.js → valid-credit-card-number-rule-ca5a47d6.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 +12 -9
- 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 +316 -111
- 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 +507 -70
- 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 +15 -15
- 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 +968 -425
- 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 +14 -14
- package/dist/sri/vega-sri-manifest.json +356 -356
- 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-nav/vega-left-nav/slimmers/controllers/vega-left-nav-auto-collapse-controller.d.ts +0 -1
- package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-controller.d.ts +12 -19
- package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.d.ts +41 -0
- package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.d.ts +4 -1
- package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-zindex-controller.d.ts +1 -1
- package/dist/types/components/vega-nav/vega-left-nav/vega-left-nav.d.ts +2 -0
- 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/find-replace/slimmer/controllers/helper/find-replace-highlight-manager.d.ts +15 -4
- package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-enter.d.ts +3 -0
- package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/assets/fullscreen-exit.d.ts +3 -0
- package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/controller/fullscreen-controller.d.ts +63 -0
- package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-extension.d.ts +20 -0
- package/dist/types/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.d.ts +40 -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 +26 -0
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +20 -0
- package/dist/types/components/vega-rich-text-editor/public-api.d.ts +5 -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/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +5 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.d.ts +8 -0
- 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 +31 -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 +23 -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 +90 -3
- package/dist/types/constants/ui.d.ts +1 -1
- package/dist/types/helpers/backdrop/index.d.ts +1 -0
- package/dist/types/helpers/backdrop/shared-backdrop-manager.d.ts +67 -0
- package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
- package/dist/types/helpers/translation/interface.d.ts +7 -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-92823583.js → p-02355de8.js} +1 -1
- package/dist/vega/{p-481601c0.entry.js → p-0af32f31.entry.js} +1 -1
- package/dist/vega/{p-438b7404.entry.js → p-0b311599.entry.js} +1 -1
- package/dist/vega/{p-56cf1a65.entry.js → p-0b9c7c79.entry.js} +1 -1
- package/dist/vega/p-0be4df0a.js +1 -0
- package/dist/vega/p-0d18368b.js +1 -0
- package/dist/vega/{p-9fafc956.entry.js → p-1232b553.entry.js} +1 -1
- package/dist/vega/{p-70817cf5.js → p-140616fe.js} +1 -1
- package/dist/vega/{p-f365601c.entry.js → p-14559974.entry.js} +1 -1
- package/dist/vega/{p-aa32f2f3.js → p-14baa886.js} +1 -1
- package/dist/vega/p-2364be92.entry.js +1 -0
- package/dist/vega/{p-c0629528.entry.js → p-26c7fe8b.entry.js} +1 -1
- package/dist/vega/p-270697c0.entry.js +1 -0
- package/dist/vega/p-282b37cb.js +1 -0
- package/dist/vega/{p-06c2ce2c.entry.js → p-288d65ad.entry.js} +1 -1
- package/dist/vega/p-2bf17505.entry.js +1 -0
- package/dist/vega/{p-c78aeaf3.entry.js → p-2dc5edd0.entry.js} +1 -1
- package/dist/vega/{p-136226f8.js → p-320091b7.js} +1 -1
- package/dist/vega/{p-b799fc1f.entry.js → p-341a6b32.entry.js} +1 -1
- package/dist/vega/p-36949349.js +1 -0
- package/dist/vega/p-38c9d782.js +1 -0
- package/dist/vega/{p-a361456d.js → p-3c309a38.js} +1 -1
- package/dist/vega/{p-71e2a3ec.js → p-3dee1e55.js} +1 -1
- package/dist/vega/{p-ef2b9846.entry.js → p-3e8baeac.entry.js} +1 -1
- 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-ce7e9515.entry.js → p-46fe3154.entry.js} +1 -1
- package/dist/vega/{p-c2e0f8b7.entry.js → p-48ee3e24.entry.js} +1 -1
- package/dist/vega/{p-e371738b.js → p-4fe40b76.js} +1 -1
- package/dist/vega/p-4ff48b84.js +1 -0
- package/dist/vega/{p-2e58d99e.entry.js → p-5107277d.entry.js} +1 -1
- package/dist/vega/{p-2def8e3e.js → p-51b68d25.js} +1 -1
- package/dist/vega/p-52c6a399.entry.js +1 -0
- package/dist/vega/p-579cdeae.js +1 -0
- package/dist/vega/{p-e9cee498.entry.js → p-595998d9.entry.js} +1 -1
- package/dist/vega/{p-7798254d.entry.js → p-5db61a12.entry.js} +1 -1
- package/dist/vega/{p-e41d9d0e.entry.js → p-5df2d6a1.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-d7369441.js → p-61ce8029.js} +1 -1
- package/dist/vega/{p-2da12975.entry.js → p-62d6e063.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-f70f7ad8.entry.js → p-6c9c2f8c.entry.js} +1 -1
- package/dist/vega/{p-b730bf6e.js → p-6cde45fc.js} +1 -1
- package/dist/vega/p-6dfe2407.js +1 -0
- package/dist/vega/{p-d3c8b871.entry.js → p-6f01a71a.entry.js} +1 -1
- package/dist/vega/p-6f70a10f.entry.js +1 -0
- package/dist/vega/p-73f2c3c0.entry.js +1 -0
- package/dist/vega/{p-de885ef2.js → p-75e33859.js} +1 -1
- package/dist/vega/p-762ea523.entry.js +1 -0
- package/dist/vega/{p-f6bccb06.entry.js → p-782eb312.entry.js} +1 -1
- package/dist/vega/p-7a88a3d3.entry.js +1 -0
- package/dist/vega/{p-5038b6d7.entry.js → p-7b57a845.entry.js} +1 -1
- package/dist/vega/p-83a16285.entry.js +1 -0
- package/dist/vega/{p-8da860f6.js → p-8720816e.js} +1 -1
- package/dist/vega/{p-9219201a.entry.js → p-892edf88.entry.js} +1 -1
- package/dist/vega/{p-625351a3.entry.js → p-8c083255.entry.js} +1 -1
- package/dist/vega/{p-4d9061fb.js → p-8db904dc.js} +1 -1
- package/dist/vega/{p-22f73e6e.entry.js → p-91287214.entry.js} +1 -1
- package/dist/vega/{p-5946fadf.js → p-919cddc3.js} +1 -1
- package/dist/vega/{p-fc5dfb52.entry.js → p-95913e3c.entry.js} +1 -1
- package/dist/vega/p-97215133.js +1 -0
- package/dist/vega/{p-5829a66d.entry.js → p-9bdc6e11.entry.js} +1 -1
- package/dist/vega/{p-8b9a8603.entry.js → p-9d18ba7f.entry.js} +1 -1
- package/dist/vega/{p-f7739cbb.entry.js → p-9dca874d.entry.js} +1 -1
- package/dist/vega/{p-c67ce78c.entry.js → p-9f38448c.entry.js} +1 -1
- package/dist/vega/{p-e3803943.js → p-9f7154d2.js} +1 -1
- package/dist/vega/{p-2314494a.entry.js → p-a057285e.entry.js} +1 -1
- package/dist/vega/{p-f515d189.entry.js → p-a0a58295.entry.js} +1 -1
- package/dist/vega/p-a7209700.js +1 -0
- package/dist/vega/{p-40501057.entry.js → p-a890d60b.entry.js} +1 -1
- package/dist/vega/{p-450bf94d.entry.js → p-addbca58.entry.js} +1 -1
- package/dist/vega/{p-45ab490c.js → p-b1eb9ff0.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-ea22cba0.js → p-b4e7c967.js} +1 -1
- package/dist/vega/{p-228c5de8.js → p-b775e51f.js} +1 -1
- package/dist/vega/{p-43c3848f.entry.js → p-b8f8e480.entry.js} +1 -1
- package/dist/vega/{p-8d69b201.js → p-ba662fe5.js} +1 -1
- package/dist/vega/p-c66d2a1e.js +1 -0
- package/dist/vega/{p-a268a4fb.entry.js → p-c67b9aba.entry.js} +1 -1
- package/dist/vega/{p-2353b64f.entry.js → p-c9c6daa6.entry.js} +1 -1
- package/dist/vega/p-c9daabe1.entry.js +1 -0
- package/dist/vega/{p-37dffdf6.entry.js → p-cad5222a.entry.js} +1 -1
- package/dist/vega/{p-e160a727.entry.js → p-cb90163a.entry.js} +1 -1
- package/dist/vega/{p-5545a235.entry.js → p-d08ffdf1.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-e235020b.entry.js} +1 -1
- package/dist/vega/{p-9440a8a5.entry.js → p-e4266b45.entry.js} +1 -1
- package/dist/vega/{p-18413b62.entry.js → p-e48a870f.entry.js} +1 -1
- package/dist/vega/{p-590c8720.entry.js → p-e8ee70c5.entry.js} +1 -1
- package/dist/vega/p-ed103a1a.entry.js +1 -0
- package/dist/vega/p-f05a193e.entry.js +1 -0
- package/dist/vega/{p-7be548a7.js → p-f1974321.js} +1 -1
- package/dist/vega/{p-916dfa7e.entry.js → p-f246f125.entry.js} +1 -1
- package/dist/vega/p-f4da615a.js +3 -0
- package/dist/vega/{p-d0ce752f.entry.js → p-f5d7b89f.entry.js} +1 -1
- package/dist/vega/{p-c8eaf91c.entry.js → p-f651df3b.entry.js} +1 -1
- package/dist/vega/{p-93dfab05.js → p-f7e459cd.js} +1 -1
- package/dist/vega/{p-b6ebfd5c.entry.js → p-f8a29127.entry.js} +1 -1
- package/dist/vega/p-f906a7bc.entry.js +1 -0
- package/dist/vega/{p-d20587b4.entry.js → p-f96d0503.entry.js} +1 -1
- package/dist/vega/{p-cd9fb2ca.entry.js → p-fbd3be00.entry.js} +1 -1
- package/dist/vega/{p-f0bc2bbb.js → p-fe24b459.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +2 -16
- package/readme.md +0 -5
- package/dist/cjs/replace-selected-text-action-a31563ed.js +0 -20
- package/dist/esm/replace-selected-text-action-c0817b2b.js +0 -18
- 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-4953bb1a.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-53c76d9d.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-802bf369.js +0 -1
- package/dist/vega/p-82279b03.entry.js +0 -1
- package/dist/vega/p-8509c140.entry.js +0 -1
- package/dist/vega/p-8aa07ed0.js +0 -1
- package/dist/vega/p-970115d6.js +0 -1
- package/dist/vega/p-9b1d718c.entry.js +0 -1
- package/dist/vega/p-c78e8081.entry.js +0 -1
- package/dist/vega/p-ca9852bb.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-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-f4a01959.js +0 -1
- package/dist/vega/p-f5aefb2f.entry.js +0 -1
|
@@ -10,32 +10,33 @@ const accessibility = require('./accessibility-88f8af84.js');
|
|
|
10
10
|
const changeManager = require('./change-manager-a297e4d2.js');
|
|
11
11
|
const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-c82df135.js');
|
|
12
12
|
const vegaInternalEventId = require('./vega-internal-event-id-ecc5b87a.js');
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
13
|
+
const staticSubjectTitle = require('./static-subject-title-70c73b16.js');
|
|
14
|
+
const codeBlock = require('./code-block-493c7ce7.js');
|
|
15
|
+
const linkExtension = require('./link-extension-92a63cb7.js');
|
|
16
|
+
const typeGuard = require('./type-guard-f354af8b.js');
|
|
16
17
|
const internalIconManager = require('./internal-icon-manager-40bcac72.js');
|
|
17
|
-
const imageAnnotationAction = require('./image-annotation-action-
|
|
18
|
-
const vegaEventId = require('./vega-event-id-
|
|
18
|
+
const imageAnnotationAction = require('./image-annotation-action-7c4cd316.js');
|
|
19
|
+
const vegaEventId = require('./vega-event-id-58afed7a.js');
|
|
19
20
|
const misc = require('./misc-3d30df91.js');
|
|
20
21
|
const waitForComponentDidRender = require('./wait-for-component-did-render-02ca4bee.js');
|
|
21
|
-
const
|
|
22
|
-
const
|
|
22
|
+
const imageExtension = require('./image-extension-30a7c10f.js');
|
|
23
|
+
const formFieldControllerSlimmer = require('./form-field-controller-slimmer-d638ba12.js');
|
|
24
|
+
const eventEmitSlimmer = require('./event-emit-slimmer-d234a619.js');
|
|
23
25
|
const subStateNotifySlimmer = require('./sub-state-notify-slimmer-18891389.js');
|
|
24
|
-
const contentState = require('./content-state-
|
|
26
|
+
const contentState = require('./content-state-fc34a814.js');
|
|
25
27
|
const alignLeft = require('./align-left-4a76df69.js');
|
|
26
|
-
const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-
|
|
27
|
-
const staticSubjectTitle = require('./static-subject-title-70c73b16.js');
|
|
28
|
+
const componentValueHistoryControllerSlimmer_abstract = require('./component-value-history-controller-slimmer.abstract-ab21fcbf.js');
|
|
28
29
|
const observer = require('./observer-f49483e8.js');
|
|
29
30
|
const timer = require('./timer-5f33058b.js');
|
|
30
31
|
const darkModeStateControllerSlimmer = require('./dark-mode-state-controller-slimmer-b454645a.js');
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const translationSlimmer = require('./translation-slimmer-1e05769e.js');
|
|
32
|
+
const richTextEditorRequiredRule = require('./rich-text-editor-required-rule-23bf7485.js');
|
|
33
|
+
const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-e67ee84c.js');
|
|
34
|
+
const translationSlimmer = require('./translation-slimmer-9099f56c.js');
|
|
35
35
|
const darkModeStyleController = require('./dark-mode-style-controller-32d4054a.js');
|
|
36
36
|
const autoRunWhenReRenderTaskQueueSlimmer_abstract = require('./auto-run-when-re-render-task-queue-slimmer.abstract-5734634d.js');
|
|
37
37
|
const array = require('./array-249289f2.js');
|
|
38
38
|
const chevronDown = require('./chevron-down-9847bf78.js');
|
|
39
|
+
const chevronUp = require('./chevron-up-21465cf7.js');
|
|
39
40
|
const trashCan = require('./trash-can-46a5e19a.js');
|
|
40
41
|
const ui = require('./ui-c91c37a7.js');
|
|
41
42
|
const remoteInvocationRegistry = require('./remote-invocation-registry-fc22fdd0.js');
|
|
@@ -44,7 +45,7 @@ require('./typography-3ea4fe41.js');
|
|
|
44
45
|
require('./object-b53e9416.js');
|
|
45
46
|
require('./breakpoints-ebde4837.js');
|
|
46
47
|
require('./ui-32120990.js');
|
|
47
|
-
require('./internal-translation-controller-
|
|
48
|
+
require('./internal-translation-controller-eb02c3b1.js');
|
|
48
49
|
require('./icon-manager-be358b32.js');
|
|
49
50
|
require('./create-public-api-runtime-metrics-slimmer-91b0cbfb.js');
|
|
50
51
|
require('./dynamic-slimmer-f31fdfd7.js');
|
|
@@ -56,10 +57,10 @@ require('./internal-form-field-validation-rule.abstract-07cdff46.js');
|
|
|
56
57
|
require('./mutation-observer-slimmer-749d5020.js');
|
|
57
58
|
require('./mutation-observer-filters-38cebc6d.js');
|
|
58
59
|
require('./sub-state-observer-slimmer-eee2f0ae.js');
|
|
59
|
-
require('./internal-vega-event-manager-
|
|
60
|
-
require('./range-
|
|
61
|
-
require('./keyboard-manager-slimmer-
|
|
62
|
-
require('./keyboard-manager-
|
|
60
|
+
require('./internal-vega-event-manager-13c4012b.js');
|
|
61
|
+
require('./range-30219330.js');
|
|
62
|
+
require('./keyboard-manager-slimmer-a1223714.js');
|
|
63
|
+
require('./keyboard-manager-ca76d4dc.js');
|
|
63
64
|
require('./vega-env-manager-23b8b23c.js');
|
|
64
65
|
require('./feature-flag-controller-c19d0b58.js');
|
|
65
66
|
require('./index-3ca118c4.js');
|
|
@@ -94,9 +95,18 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
94
95
|
'disabled': this.disabled,
|
|
95
96
|
'vega-hidden': this.sourceView,
|
|
96
97
|
}, style: containerStyle, onClick: this.richTextContentFocus, role: "textbox", tabIndex: !this.disabled ? -1 : 0, onKeyDown: accessibility.createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
|
|
97
|
-
index.h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions }),
|
|
98
|
+
index.h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions, onScroll: this.notifyContentScrolling }),
|
|
98
99
|
this.renderCharacterCounter()));
|
|
99
100
|
};
|
|
101
|
+
/**
|
|
102
|
+
* Propagates rich-text content scrolling inside shadow root so open appender
|
|
103
|
+
* can force position recalculation via ElementAppenderSlimmer.
|
|
104
|
+
*/
|
|
105
|
+
this.notifyContentScrolling = () => {
|
|
106
|
+
changeManager.ChangeManager.notify(staticSubjectTitle.SHADOW_ROOT_ELEMENT_SCROLLING, {
|
|
107
|
+
host: this.host,
|
|
108
|
+
});
|
|
109
|
+
};
|
|
100
110
|
this.renderCharacterCounter = () => {
|
|
101
111
|
return (index.h("div", { class: {
|
|
102
112
|
'text-editor-counter': true,
|
|
@@ -590,7 +600,7 @@ class TextStylesToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToo
|
|
|
590
600
|
};
|
|
591
601
|
}
|
|
592
602
|
renderBtnWrapper(renderBtn) {
|
|
593
|
-
return (index.h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
|
|
603
|
+
return (index.h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
|
|
594
604
|
this.addDropdownObserver(ref);
|
|
595
605
|
} },
|
|
596
606
|
renderBtn({ showArrowIcon: true }),
|
|
@@ -1037,6 +1047,7 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
|
|
|
1037
1047
|
super({
|
|
1038
1048
|
icon: 'image',
|
|
1039
1049
|
tooltip: { text: 'Image' },
|
|
1050
|
+
autoFocusOnClick: false,
|
|
1040
1051
|
});
|
|
1041
1052
|
this.insertURLImage = async () => {
|
|
1042
1053
|
const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
|
|
@@ -1049,18 +1060,21 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
|
|
|
1049
1060
|
this.uploadInputRef.click();
|
|
1050
1061
|
break;
|
|
1051
1062
|
case 'url':
|
|
1052
|
-
|
|
1053
|
-
this.currentSelectedNodes = this.selectionController.getSelectedNodes();
|
|
1054
|
-
this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
|
|
1055
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1056
|
-
this.host.parentElement.append(this.insertURLModalRef);
|
|
1057
|
-
this.insertURLInputRef.value = '';
|
|
1058
|
-
await this.insertURLModalRef.modal('show');
|
|
1059
|
-
await this.insertURLInputRef.doFocus();
|
|
1063
|
+
await this.openInsertURLModal();
|
|
1060
1064
|
break;
|
|
1061
1065
|
}
|
|
1062
1066
|
await this.dropdownRef.hide();
|
|
1063
1067
|
};
|
|
1068
|
+
this.openInsertURLModal = async () => {
|
|
1069
|
+
this.currentRange = this.selectionController.getCurrentRange();
|
|
1070
|
+
this.currentSelectedNodes = this.selectionController.getSelectedNodes();
|
|
1071
|
+
this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
|
|
1072
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1073
|
+
this.host.parentElement.append(this.insertURLModalRef);
|
|
1074
|
+
this.insertURLInputRef.value = '';
|
|
1075
|
+
await this.insertURLModalRef.modal('show');
|
|
1076
|
+
await this.insertURLInputRef.doFocus();
|
|
1077
|
+
};
|
|
1064
1078
|
/**
|
|
1065
1079
|
* The below method is e2e-test covered in
|
|
1066
1080
|
* @see{module:should-update-url-properly-when-upload-images}
|
|
@@ -1082,15 +1096,33 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
|
|
|
1082
1096
|
};
|
|
1083
1097
|
}
|
|
1084
1098
|
renderBtnWrapper(renderBtn) {
|
|
1099
|
+
const shouldRenderDropdown = this.shouldRenderDropdown();
|
|
1100
|
+
const shouldRenderUpload = this.isImageUploadEnabled();
|
|
1101
|
+
const shouldRenderUrlInsertion = this.isImageURLInsertionEnabled();
|
|
1102
|
+
if (!shouldRenderUpload && !shouldRenderUrlInsertion) {
|
|
1103
|
+
return null;
|
|
1104
|
+
}
|
|
1085
1105
|
return (index.h("vega-box", null,
|
|
1086
|
-
index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
|
|
1106
|
+
shouldRenderDropdown ? (index.h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, ref: (ref) => {
|
|
1087
1107
|
this.dropdownRef = ref;
|
|
1088
1108
|
this.addDropdownObserver(ref);
|
|
1089
1109
|
} },
|
|
1090
1110
|
renderBtn({ showArrowIcon: true }),
|
|
1091
|
-
index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())),
|
|
1092
|
-
this.renderUploadInput(),
|
|
1093
|
-
this.renderInsertURLModal()));
|
|
1111
|
+
index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent()))) : (renderBtn({})),
|
|
1112
|
+
shouldRenderUpload ? this.renderUploadInput() : null,
|
|
1113
|
+
shouldRenderUrlInsertion ? this.renderInsertURLModal() : null));
|
|
1114
|
+
}
|
|
1115
|
+
onClick() {
|
|
1116
|
+
if (this.shouldRenderDropdown()) {
|
|
1117
|
+
return;
|
|
1118
|
+
}
|
|
1119
|
+
if (this.isImageURLInsertionEnabled()) {
|
|
1120
|
+
void this.openInsertURLModal();
|
|
1121
|
+
return;
|
|
1122
|
+
}
|
|
1123
|
+
if (this.isImageUploadEnabled()) {
|
|
1124
|
+
this.uploadInputRef.click();
|
|
1125
|
+
}
|
|
1094
1126
|
}
|
|
1095
1127
|
isSelected() {
|
|
1096
1128
|
return false;
|
|
@@ -1103,10 +1135,20 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
|
|
|
1103
1135
|
this.shouldDisabledToolbar(selectedBlock, codeBlock.ModifyContentActionType.INSERT_IMAGE_TO_BLOCK));
|
|
1104
1136
|
}
|
|
1105
1137
|
renderDropdownContent() {
|
|
1106
|
-
return (index.h(index.Fragment, null,
|
|
1138
|
+
return (index.h(index.Fragment, null, this.getItems().map((item) => {
|
|
1107
1139
|
return (index.h("vega-dropdown-item", { key: item.key, itemKey: item.key }, this.translationSlimmer.t(item.label)));
|
|
1108
1140
|
})));
|
|
1109
1141
|
}
|
|
1142
|
+
getItems() {
|
|
1143
|
+
return ImageToolbarButtonSlimmer.allItems.filter((item) => {
|
|
1144
|
+
if (item.key === 'upload') {
|
|
1145
|
+
return this.isImageUploadEnabled();
|
|
1146
|
+
}
|
|
1147
|
+
else {
|
|
1148
|
+
return this.isImageURLInsertionEnabled();
|
|
1149
|
+
}
|
|
1150
|
+
});
|
|
1151
|
+
}
|
|
1110
1152
|
renderUploadInput() {
|
|
1111
1153
|
return (index.h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.uploadInputRef = node), accept: "image/*", onChange: this.fileInputChange }));
|
|
1112
1154
|
}
|
|
@@ -1139,6 +1181,18 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
|
|
|
1139
1181
|
addModalInsertObserver(buttonRef) {
|
|
1140
1182
|
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, vegaEventId.VegaClick, this.insertURLImage);
|
|
1141
1183
|
}
|
|
1184
|
+
getImageExtensionConfig() {
|
|
1185
|
+
return imageExtension.VegaRTEImageExtension.configStore.get(this.host) || {};
|
|
1186
|
+
}
|
|
1187
|
+
isImageUploadEnabled() {
|
|
1188
|
+
return this.getImageExtensionConfig().enableImageUpload !== false;
|
|
1189
|
+
}
|
|
1190
|
+
isImageURLInsertionEnabled() {
|
|
1191
|
+
return this.getImageExtensionConfig().enableImageURLInsertion !== false;
|
|
1192
|
+
}
|
|
1193
|
+
shouldRenderDropdown() {
|
|
1194
|
+
return this.getItems().length > 1;
|
|
1195
|
+
}
|
|
1142
1196
|
/**
|
|
1143
1197
|
* The below method is e2e-test covered in
|
|
1144
1198
|
* @see{module:should-update-url-properly-when-upload-images}
|
|
@@ -1171,7 +1225,7 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.VisualModeToolbarB
|
|
|
1171
1225
|
(() => {
|
|
1172
1226
|
internalIconManager.VegaInternalIconManager.register({ image: image });
|
|
1173
1227
|
})();
|
|
1174
|
-
ImageToolbarButtonSlimmer.
|
|
1228
|
+
ImageToolbarButtonSlimmer.allItems = [
|
|
1175
1229
|
{
|
|
1176
1230
|
key: 'upload',
|
|
1177
1231
|
label: 'Upload from computer',
|
|
@@ -1383,7 +1437,7 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.VisualMod
|
|
|
1383
1437
|
}
|
|
1384
1438
|
}
|
|
1385
1439
|
renderBtnWrapper(renderBtn) {
|
|
1386
|
-
return (index.h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", ref: (ref) => (this.popoverRef = ref) },
|
|
1440
|
+
return (index.h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
|
|
1387
1441
|
index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
|
|
1388
1442
|
index.h("div", { slot: "popover" }, this.renderContent())));
|
|
1389
1443
|
}
|
|
@@ -1650,7 +1704,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.Visu
|
|
|
1650
1704
|
}
|
|
1651
1705
|
}
|
|
1652
1706
|
renderBtnWrapper(renderBtn) {
|
|
1653
|
-
return (index.h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", ref: (ref) => (this.popoverRef = ref) },
|
|
1707
|
+
return (index.h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
|
|
1654
1708
|
index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
|
|
1655
1709
|
index.h("div", { slot: "popover" }, this.renderContent())));
|
|
1656
1710
|
}
|
|
@@ -1897,7 +1951,7 @@ class BaseHandler {
|
|
|
1897
1951
|
* @returns {boolean} boolean result
|
|
1898
1952
|
*/
|
|
1899
1953
|
isEmptyParagraph(node) {
|
|
1900
|
-
return node && node.childNodes && node.childNodes.length === 0;
|
|
1954
|
+
return node && node.nodeType === Node.ELEMENT_NODE && node.childNodes && node.childNodes.length === 0;
|
|
1901
1955
|
}
|
|
1902
1956
|
/**
|
|
1903
1957
|
* Removes selected nodes within a range in a rich text editor content.
|
|
@@ -1995,7 +2049,7 @@ class InsertTextHandler extends BaseHandler {
|
|
|
1995
2049
|
}
|
|
1996
2050
|
if (cursorNode instanceof codeBlock.RTETextNode) {
|
|
1997
2051
|
updateFlag = true;
|
|
1998
|
-
cursorNode.apply(new
|
|
2052
|
+
cursorNode.apply(new imageExtension.ReplaceSelectedTextAction(text, currentRange));
|
|
1999
2053
|
}
|
|
2000
2054
|
}
|
|
2001
2055
|
updateFlag &&
|
|
@@ -2010,7 +2064,7 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2010
2064
|
// The selected nodes is multiple nodes
|
|
2011
2065
|
const cursorNode = this.removeSelectionRange(true);
|
|
2012
2066
|
if (cursorNode instanceof codeBlock.RTETextNode) {
|
|
2013
|
-
cursorNode.apply(new
|
|
2067
|
+
cursorNode.apply(new imageExtension.ReplaceSelectedTextAction(text, currentRange));
|
|
2014
2068
|
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, Math.min(startOffset + text.length, cursorNode.text.length));
|
|
2015
2069
|
}
|
|
2016
2070
|
}
|
|
@@ -2258,7 +2312,7 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2258
2312
|
getNextRTENode(lineBreakNode) {
|
|
2259
2313
|
const index = lineBreakNode.parent.children.indexOf(lineBreakNode);
|
|
2260
2314
|
const nextNode = lineBreakNode.parent.children[index + 1];
|
|
2261
|
-
return nextNode
|
|
2315
|
+
return nextNode && nextNode.isContentEditable() ? nextNode : lineBreakNode;
|
|
2262
2316
|
}
|
|
2263
2317
|
}
|
|
2264
2318
|
|
|
@@ -2538,6 +2592,7 @@ class PasteContentAction extends codeBlock.ModifyContentAction {
|
|
|
2538
2592
|
constructor(blocksToBeInserted, startNode, startOffset, rteRange) {
|
|
2539
2593
|
super();
|
|
2540
2594
|
this.type = codeBlock.ModifyContentActionType.PASTE_CONTENT;
|
|
2595
|
+
this.futureFocusAtEnd = false;
|
|
2541
2596
|
this.blocksToBeInserted = blocksToBeInserted;
|
|
2542
2597
|
this.startNode = startNode;
|
|
2543
2598
|
this.startOffset = startOffset;
|
|
@@ -2555,19 +2610,108 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
2555
2610
|
* @param {InputEvent} event - Paste event.
|
|
2556
2611
|
*/
|
|
2557
2612
|
handleEvent(event) {
|
|
2613
|
+
const currentRange = this.selectionController.getCurrentRange();
|
|
2614
|
+
const payload = this.getPastePayload(event);
|
|
2615
|
+
if (this.insertPlainTextInline(payload, currentRange)) {
|
|
2616
|
+
return;
|
|
2617
|
+
}
|
|
2558
2618
|
const blocks = this.parsePastedElements(event);
|
|
2559
|
-
const
|
|
2560
|
-
if (
|
|
2619
|
+
const startContainer = (currentRange === null || currentRange === void 0 ? void 0 : currentRange.startContainer) || undefined;
|
|
2620
|
+
if (!startContainer) {
|
|
2621
|
+
// When the selection/range is unavailable (e.g. the caret was lost while
|
|
2622
|
+
// the paste-mode chooser had focus), still append the pasted content to
|
|
2623
|
+
// the root so the paste is never silently dropped.
|
|
2624
|
+
this.insertBlocksToRoot(blocks);
|
|
2625
|
+
}
|
|
2626
|
+
else if (this.isRootContainer(startContainer)) {
|
|
2561
2627
|
this.insertBlocksToRoot(blocks);
|
|
2562
2628
|
// TODO: Need to check below logic, it seems not correct https://gethired.atlassian.net/browse/VD-7779
|
|
2563
2629
|
}
|
|
2564
2630
|
else if (this.isEmptyParagraph(startContainer)) {
|
|
2565
|
-
this.insertBlocksBeforeEmptyBlock(blocks);
|
|
2631
|
+
this.insertBlocksBeforeEmptyBlock(blocks, currentRange);
|
|
2566
2632
|
}
|
|
2567
2633
|
else {
|
|
2568
|
-
this.insertBlocksToContent(blocks);
|
|
2634
|
+
this.insertBlocksToContent(blocks, currentRange);
|
|
2569
2635
|
}
|
|
2570
2636
|
}
|
|
2637
|
+
/**
|
|
2638
|
+
* Inserts plain-text paste content into the current text node at caret position.
|
|
2639
|
+
*
|
|
2640
|
+
* @param {RTEPastePayload} payload - Clipboard payload.
|
|
2641
|
+
* @param {RTERange} currentRange - Current selection range.
|
|
2642
|
+
* @returns {boolean} True when inline insertion is handled.
|
|
2643
|
+
*/
|
|
2644
|
+
insertPlainTextInline(payload, currentRange) {
|
|
2645
|
+
var _a, _b;
|
|
2646
|
+
const selectedNodes = ((_b = (_a = this.selectionController).getSelectedNodes) === null || _b === void 0 ? void 0 : _b.call(_a)) || [];
|
|
2647
|
+
if (!this.shouldPasteAsInlinePlainText(payload, currentRange, selectedNodes)) {
|
|
2648
|
+
return false;
|
|
2649
|
+
}
|
|
2650
|
+
const text = payload.text.replace(/\r\n?/g, '\n');
|
|
2651
|
+
const cursorNode = selectedNodes.find((node) => node instanceof codeBlock.RTETextNode) || currentRange.startNode;
|
|
2652
|
+
if (!(cursorNode instanceof codeBlock.RTETextNode)) {
|
|
2653
|
+
return false;
|
|
2654
|
+
}
|
|
2655
|
+
cursorNode.apply(new imageExtension.ReplaceSelectedTextAction(text, currentRange));
|
|
2656
|
+
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, currentRange.startOffset + text.length);
|
|
2657
|
+
return true;
|
|
2658
|
+
}
|
|
2659
|
+
/**
|
|
2660
|
+
* Determines whether the payload should be inserted as inline plain text.
|
|
2661
|
+
*
|
|
2662
|
+
* @param {RTEPastePayload} payload - Clipboard payload.
|
|
2663
|
+
* @param {RTERange} currentRange - Current selection range.
|
|
2664
|
+
* @param {RTENode[]} selectedNodes - Currently selected nodes.
|
|
2665
|
+
* @returns {boolean} True when inline plain-text insertion should be used.
|
|
2666
|
+
*/
|
|
2667
|
+
shouldPasteAsInlinePlainText(payload, currentRange, selectedNodes = []) {
|
|
2668
|
+
if (!currentRange || !currentRange.startContainer) {
|
|
2669
|
+
return false;
|
|
2670
|
+
}
|
|
2671
|
+
if (this.isRootContainer(currentRange.startContainer)) {
|
|
2672
|
+
return false;
|
|
2673
|
+
}
|
|
2674
|
+
const text = (payload.text || '').replace(/\r\n?/g, '\n');
|
|
2675
|
+
if (!text) {
|
|
2676
|
+
return false;
|
|
2677
|
+
}
|
|
2678
|
+
const html = payload.html || '';
|
|
2679
|
+
if (!html) {
|
|
2680
|
+
return true;
|
|
2681
|
+
}
|
|
2682
|
+
const hasTextNodeSelection = selectedNodes.some((node) => node instanceof codeBlock.RTETextNode) ||
|
|
2683
|
+
currentRange.startNode instanceof codeBlock.RTETextNode;
|
|
2684
|
+
if (!hasTextNodeSelection) {
|
|
2685
|
+
return false;
|
|
2686
|
+
}
|
|
2687
|
+
// Use the inline plain‑text path only when HTML and plain text match exactly and no formatting exists;
|
|
2688
|
+
// otherwise route through the block path to preserve styles.
|
|
2689
|
+
const analysis = this.analyzeHtmlContent(html);
|
|
2690
|
+
return analysis.plainText === text && !analysis.hasFormatting;
|
|
2691
|
+
}
|
|
2692
|
+
/**
|
|
2693
|
+
* Analyzes HTML content to extract plain text and detect inline formatting,
|
|
2694
|
+
* parsing the HTML once to avoid redundant StylePreservation and DOMParser calls.
|
|
2695
|
+
*
|
|
2696
|
+
* @param {string} html - Clipboard text/html payload.
|
|
2697
|
+
* @returns {HtmlAnalysisResult} Analysis result with plainText and hasFormatting properties.
|
|
2698
|
+
*/
|
|
2699
|
+
analyzeHtmlContent(html) {
|
|
2700
|
+
const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
|
|
2701
|
+
const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
|
|
2702
|
+
const body = parsedDoc.body;
|
|
2703
|
+
// Extract plain text from the parsed document
|
|
2704
|
+
const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
|
|
2705
|
+
// Check for rich inline formatting
|
|
2706
|
+
let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark'));
|
|
2707
|
+
if (!hasFormatting) {
|
|
2708
|
+
hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
|
|
2709
|
+
const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
|
|
2710
|
+
return this.styleContainsRichFormatting(style);
|
|
2711
|
+
});
|
|
2712
|
+
}
|
|
2713
|
+
return { plainText, hasFormatting };
|
|
2714
|
+
}
|
|
2571
2715
|
/**
|
|
2572
2716
|
* Insert the blocks to root
|
|
2573
2717
|
*
|
|
@@ -2577,37 +2721,54 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
2577
2721
|
this.currentState.apply(new codeBlock.AppendChildrenAction(blocks));
|
|
2578
2722
|
}
|
|
2579
2723
|
/**
|
|
2580
|
-
* Insert the blocks
|
|
2724
|
+
* Insert the blocks into the current content block at the specified range.
|
|
2581
2725
|
*
|
|
2582
2726
|
* @param { RTEContentBlock[]} blocks - blocks
|
|
2727
|
+
* @param { RTERange } rteRange - rteRange
|
|
2583
2728
|
*/
|
|
2584
|
-
insertBlocksToContent(blocks) {
|
|
2585
|
-
|
|
2729
|
+
insertBlocksToContent(blocks, rteRange) {
|
|
2730
|
+
var _a;
|
|
2731
|
+
const isCollapsedRange = rteRange.startNode === rteRange.endNode && rteRange.startOffset === rteRange.endOffset;
|
|
2732
|
+
const cursorNode = isCollapsedRange
|
|
2733
|
+
? rteRange.startNode
|
|
2734
|
+
: this.removeSelectionRange();
|
|
2586
2735
|
if (cursorNode && cursorNode.parent) {
|
|
2587
|
-
const
|
|
2588
|
-
const pasteAction = new PasteContentAction(blocks, cursorNode, startOffset);
|
|
2736
|
+
const pasteAction = new PasteContentAction(blocks, cursorNode, rteRange.startOffset, rteRange);
|
|
2589
2737
|
cursorNode.parent.apply(pasteAction);
|
|
2590
|
-
if (pasteAction.
|
|
2591
|
-
this.
|
|
2738
|
+
if (pasteAction.futureFocusNode) {
|
|
2739
|
+
this.selectionController.enqueueSelectionRangeFutureState(pasteAction.futureFocusNode, (_a = pasteAction.futureFocusNodeOffset) !== null && _a !== void 0 ? _a : 0);
|
|
2740
|
+
}
|
|
2741
|
+
else if (pasteAction.futureFocusBlock) {
|
|
2742
|
+
this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock, pasteAction.futureFocusAtEnd);
|
|
2592
2743
|
}
|
|
2593
2744
|
}
|
|
2745
|
+
else {
|
|
2746
|
+
// No resolvable cursor position: fall back to appending at the root so
|
|
2747
|
+
// the pasted content is preserved instead of being discarded.
|
|
2748
|
+
this.insertBlocksToRoot(blocks);
|
|
2749
|
+
}
|
|
2594
2750
|
}
|
|
2595
2751
|
/**
|
|
2596
2752
|
* Insert the blocks before to current block
|
|
2597
2753
|
*
|
|
2598
2754
|
* @param { RTEContentBlock[]} blocks - blocks
|
|
2755
|
+
* @param { RTERange } rteRange - rteRange
|
|
2599
2756
|
*/
|
|
2600
|
-
insertBlocksBeforeEmptyBlock(blocks) {
|
|
2757
|
+
insertBlocksBeforeEmptyBlock(blocks, rteRange) {
|
|
2601
2758
|
const cursorNode = this.removeSelectionRange();
|
|
2602
|
-
/* istanbul ignore next */
|
|
2603
2759
|
const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parent;
|
|
2604
2760
|
if (currentBlock) {
|
|
2605
|
-
const pasteAction = new PasteContentAction(blocks,
|
|
2761
|
+
const pasteAction = new PasteContentAction(blocks, cursorNode, 0, rteRange);
|
|
2606
2762
|
currentBlock.apply(pasteAction);
|
|
2607
2763
|
if (pasteAction.futureFocusBlock) {
|
|
2608
|
-
this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock);
|
|
2764
|
+
this.switchCaretPositionToNextElement(pasteAction.futureFocusBlock, pasteAction.futureFocusAtEnd);
|
|
2609
2765
|
}
|
|
2610
2766
|
}
|
|
2767
|
+
else {
|
|
2768
|
+
// No resolvable empty block: fall back to appending at the root so the
|
|
2769
|
+
// pasted content is preserved instead of being discarded.
|
|
2770
|
+
this.insertBlocksToRoot(blocks);
|
|
2771
|
+
}
|
|
2611
2772
|
}
|
|
2612
2773
|
/**
|
|
2613
2774
|
* Format and parse elements from user paste with simple style preservation.
|
|
@@ -2616,30 +2777,76 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
2616
2777
|
* @returns {RTEContentBlock[]} - RTEContentBlock.
|
|
2617
2778
|
*/
|
|
2618
2779
|
parsePastedElements(event) {
|
|
2619
|
-
|
|
2780
|
+
const payload = this.getPastePayload(event);
|
|
2781
|
+
let pastedHTML = payload.html || '';
|
|
2620
2782
|
if (!pastedHTML) {
|
|
2621
|
-
|
|
2622
|
-
|
|
2783
|
+
pastedHTML = this.parsePlainText(payload.text || '');
|
|
2784
|
+
}
|
|
2785
|
+
else if (this.shouldTreatAsPlainTextPayload(pastedHTML)) {
|
|
2786
|
+
const plainSource = payload.text || this.extractPlainTextFromHtml(pastedHTML);
|
|
2787
|
+
pastedHTML = this.parsePlainText(plainSource);
|
|
2623
2788
|
}
|
|
2624
2789
|
const context = contentState.StylePreservator.preserve(pastedHTML);
|
|
2625
2790
|
const safeHtml = context.getProcessedHtml();
|
|
2626
2791
|
const parser = new DOMParser();
|
|
2627
2792
|
const parsedDoc = parser.parseFromString(safeHtml, 'text/html');
|
|
2793
|
+
const rootElements = Array.from(parsedDoc.body.childNodes);
|
|
2794
|
+
context.restore(rootElements);
|
|
2795
|
+
this.normalizeImportedHtmlArtifacts(parsedDoc.body);
|
|
2628
2796
|
const htmlElements = Array.from(parsedDoc.body.childNodes);
|
|
2629
|
-
|
|
2630
|
-
return contentState.ElementToDtoStrategyProcessor.process(htmlElements)
|
|
2797
|
+
const resultBlocks = contentState.ElementToDtoStrategyProcessor.process(htmlElements)
|
|
2631
2798
|
.filter(Boolean)
|
|
2632
2799
|
.map((output) => output.toDto())
|
|
2633
2800
|
.filter(Boolean);
|
|
2801
|
+
// Fallback for synthetic payloads: if strategy conversion yields no blocks
|
|
2802
|
+
// but we still have plain text, create paragraph/text blocks directly.
|
|
2803
|
+
if (resultBlocks.length === 0 && (payload.text || '').trim() !== '') {
|
|
2804
|
+
return this.buildPlainTextFallbackBlocks(payload.text);
|
|
2805
|
+
}
|
|
2806
|
+
return resultBlocks;
|
|
2634
2807
|
}
|
|
2635
2808
|
/**
|
|
2636
|
-
*
|
|
2809
|
+
* Extracts readable plain text from clipboard HTML.
|
|
2637
2810
|
*
|
|
2638
|
-
* @param {
|
|
2811
|
+
* @param {string} html - Clipboard text/html payload.
|
|
2812
|
+
* @returns {string} - Plain text extracted from HTML.
|
|
2639
2813
|
*/
|
|
2640
|
-
|
|
2814
|
+
extractPlainTextFromHtml(html) {
|
|
2815
|
+
// Preserve inline styles before parsing to avoid style-src-attr CSP violations.
|
|
2816
|
+
const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
|
|
2817
|
+
const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
|
|
2818
|
+
return (parsedDoc.body.textContent || '').replace(/\r\n?/g, '\n');
|
|
2819
|
+
}
|
|
2820
|
+
/**
|
|
2821
|
+
* Builds plain-text paragraph blocks when element strategy parsing returns no output.
|
|
2822
|
+
*
|
|
2823
|
+
* @param {string} text - Plain text clipboard content.
|
|
2824
|
+
* @returns {RTEContentBlock[]} Fallback text blocks.
|
|
2825
|
+
*/
|
|
2826
|
+
buildPlainTextFallbackBlocks(text) {
|
|
2827
|
+
return text.split('\n').map((line) => {
|
|
2828
|
+
const paragraph = new codeBlock.RTETextBlock(misc.generateUUID(), 'paragraph');
|
|
2829
|
+
const textNode = new codeBlock.RTETextNode(`${paragraph.id}1`, line, paragraph);
|
|
2830
|
+
paragraph.apply(new codeBlock.AppendChildrenAction([textNode]));
|
|
2831
|
+
return paragraph;
|
|
2832
|
+
});
|
|
2833
|
+
}
|
|
2834
|
+
/**
|
|
2835
|
+
* Moves the caret to a block element in a rich text editor after paste.
|
|
2836
|
+
*
|
|
2837
|
+
* @param {RTEBlock} newBlock - Block element to move the caret to.
|
|
2838
|
+
* @param {boolean} atEnd - When true, places the caret after the last character of the block's last node; otherwise at offset 0 of the first node.
|
|
2839
|
+
*/
|
|
2840
|
+
switchCaretPositionToNextElement(newBlock, atEnd = false) {
|
|
2841
|
+
var _a, _b;
|
|
2641
2842
|
if (newBlock && newBlock.children) {
|
|
2642
|
-
|
|
2843
|
+
if (atEnd) {
|
|
2844
|
+
const lastNode = newBlock.children[newBlock.children.length - 1];
|
|
2845
|
+
this.selectionController.enqueueSelectionRangeFutureState(lastNode, (_b = (_a = lastNode.text) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
|
|
2846
|
+
}
|
|
2847
|
+
else {
|
|
2848
|
+
this.selectionController.enqueueSelectionRangeFutureState(newBlock.children[0], 0);
|
|
2849
|
+
}
|
|
2643
2850
|
}
|
|
2644
2851
|
}
|
|
2645
2852
|
/**
|
|
@@ -2649,16 +2856,217 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
2649
2856
|
* @returns {string} - The formatted HTML string.
|
|
2650
2857
|
*/
|
|
2651
2858
|
parsePlainText(content) {
|
|
2859
|
+
if (this.shouldRenderAsCodeBlock(content)) {
|
|
2860
|
+
return `<pre><code>${codeBlock.escapeHtml(content)}</code></pre>`;
|
|
2861
|
+
}
|
|
2652
2862
|
const lines = content.split('\n');
|
|
2653
2863
|
return lines
|
|
2654
2864
|
.map((line) => {
|
|
2655
2865
|
if (line === '') {
|
|
2656
2866
|
return '<p>\n</p>';
|
|
2657
2867
|
}
|
|
2658
|
-
return `<p>${line}</p>`;
|
|
2868
|
+
return `<p>${codeBlock.escapeHtml(line)}</p>`;
|
|
2659
2869
|
})
|
|
2660
2870
|
.join('');
|
|
2661
2871
|
}
|
|
2872
|
+
/**
|
|
2873
|
+
* Detects whether plain text likely represents source code.
|
|
2874
|
+
*
|
|
2875
|
+
* @param {string} content - Clipboard plain text content.
|
|
2876
|
+
* @returns {boolean} True when the content should render as a code block.
|
|
2877
|
+
*/
|
|
2878
|
+
shouldRenderAsCodeBlock(content) {
|
|
2879
|
+
const normalized = content.replace(/\r\n?/g, '\n').trim();
|
|
2880
|
+
if (!normalized) {
|
|
2881
|
+
return false;
|
|
2882
|
+
}
|
|
2883
|
+
const hasMultipleLines = normalized.includes('\n');
|
|
2884
|
+
const hasHtmlLikeTag = /<\/?[a-z][\w:-]*[^>]*>/i.test(normalized);
|
|
2885
|
+
const hasCodeFence = normalized.startsWith('```') && normalized.endsWith('```');
|
|
2886
|
+
const hasProgrammingTokens = /[{};]|=>|\b(function|const|let|var|class|import|export|return)\b/.test(normalized);
|
|
2887
|
+
if (hasCodeFence) {
|
|
2888
|
+
return true;
|
|
2889
|
+
}
|
|
2890
|
+
return hasHtmlLikeTag || (hasMultipleLines && hasProgrammingTokens);
|
|
2891
|
+
}
|
|
2892
|
+
/**
|
|
2893
|
+
* Removes pasted website artifacts that can cause visual regressions in the editor,
|
|
2894
|
+
* such as heading anchor tooltips and empty wrappers.
|
|
2895
|
+
*
|
|
2896
|
+
* @param {HTMLElement} body - Parsed clipboard html body.
|
|
2897
|
+
*/
|
|
2898
|
+
normalizeImportedHtmlArtifacts(body) {
|
|
2899
|
+
this.removeHeadingArtifacts(body);
|
|
2900
|
+
this.removeEmptyBlocks(body);
|
|
2901
|
+
}
|
|
2902
|
+
/**
|
|
2903
|
+
* Removes heading copy-link/tooltip artifacts copied from documentation pages.
|
|
2904
|
+
*
|
|
2905
|
+
* @param {HTMLElement} body - Parsed clipboard html body.
|
|
2906
|
+
*/
|
|
2907
|
+
removeHeadingArtifacts(body) {
|
|
2908
|
+
const selectors = [
|
|
2909
|
+
'a.js-heading-link',
|
|
2910
|
+
'a.c-heading-link',
|
|
2911
|
+
'.js-tooltip-popover',
|
|
2912
|
+
'.c-tooltip-popover',
|
|
2913
|
+
'[role="tooltip"]',
|
|
2914
|
+
];
|
|
2915
|
+
body.querySelectorAll(selectors.join(',')).forEach((element) => element.remove());
|
|
2916
|
+
}
|
|
2917
|
+
/**
|
|
2918
|
+
* Removes empty block wrappers introduced by web copy/paste.
|
|
2919
|
+
*
|
|
2920
|
+
* @param {HTMLElement} body - Parsed clipboard html body.
|
|
2921
|
+
*/
|
|
2922
|
+
removeEmptyBlocks(body) {
|
|
2923
|
+
const blockSelectors = ['p', 'div', 'section', 'article'];
|
|
2924
|
+
body.querySelectorAll(blockSelectors.join(',')).forEach((element) => {
|
|
2925
|
+
if (this.isEmptyVisualBlock(element)) {
|
|
2926
|
+
element.remove();
|
|
2927
|
+
}
|
|
2928
|
+
});
|
|
2929
|
+
}
|
|
2930
|
+
/**
|
|
2931
|
+
* Checks whether a block is visually empty and safe to remove.
|
|
2932
|
+
*
|
|
2933
|
+
* @param {HTMLElement} element - Block element to inspect.
|
|
2934
|
+
* @returns {boolean} True when the block has no visible content.
|
|
2935
|
+
*/
|
|
2936
|
+
isEmptyVisualBlock(element) {
|
|
2937
|
+
if (element.tagName === 'DIV' && element.classList.contains('doc')) {
|
|
2938
|
+
return false;
|
|
2939
|
+
}
|
|
2940
|
+
const hasVisualChild = Boolean(element.querySelector('img,video,audio,iframe,canvas,svg,table,hr,pre,code,blockquote'));
|
|
2941
|
+
if (hasVisualChild) {
|
|
2942
|
+
return false;
|
|
2943
|
+
}
|
|
2944
|
+
return (element.textContent || '').trim() === '';
|
|
2945
|
+
}
|
|
2946
|
+
/**
|
|
2947
|
+
* Checks whether a text/html payload is effectively plain text.
|
|
2948
|
+
*
|
|
2949
|
+
* Some sources (e.g. terminals, code editors) place the copied text inside an
|
|
2950
|
+
* off-screen / visually hidden wrapper such as
|
|
2951
|
+
* `<pre><div style="position: absolute; left: -9999px;">text</div></pre>`.
|
|
2952
|
+
* Preserving that markup as rich content would render the pasted text
|
|
2953
|
+
* off-screen (appearing empty), so such payloads are treated as plain text.
|
|
2954
|
+
*
|
|
2955
|
+
* @param {string} html - Clipboard text/html payload.
|
|
2956
|
+
* @returns {boolean} True when the payload has no visible rich content.
|
|
2957
|
+
*/
|
|
2958
|
+
shouldTreatAsPlainTextPayload(html) {
|
|
2959
|
+
// Preserve inline styles before parsing to avoid style-src-attr CSP violations
|
|
2960
|
+
// triggered by DOMParser processing HTML with style= attributes.
|
|
2961
|
+
const safeHtml = contentState.StylePreservator.preserve(html).getProcessedHtml();
|
|
2962
|
+
const parsedDoc = new DOMParser().parseFromString(safeHtml, 'text/html');
|
|
2963
|
+
const body = parsedDoc.body;
|
|
2964
|
+
if (body.children.length === 0) {
|
|
2965
|
+
return true;
|
|
2966
|
+
}
|
|
2967
|
+
const visibleClone = body.cloneNode(true);
|
|
2968
|
+
visibleClone.querySelectorAll('[style],[data-style]').forEach((element) => {
|
|
2969
|
+
if (this.isVisuallyHiddenElement(element)) {
|
|
2970
|
+
element.remove();
|
|
2971
|
+
}
|
|
2972
|
+
});
|
|
2973
|
+
if ((visibleClone.textContent || '').trim() !== '') {
|
|
2974
|
+
return false;
|
|
2975
|
+
}
|
|
2976
|
+
const hasVisibleMedia = Boolean(visibleClone.querySelector('img,video,audio,iframe,table,svg,canvas,math,object,embed'));
|
|
2977
|
+
if (hasVisibleMedia) {
|
|
2978
|
+
return false;
|
|
2979
|
+
}
|
|
2980
|
+
// If no visible text/media remains but original HTML contained text, it was
|
|
2981
|
+
// likely wrapped in hidden/off-screen containers and should be treated as plain text.
|
|
2982
|
+
return (body.textContent || '').trim() !== '';
|
|
2983
|
+
}
|
|
2984
|
+
/**
|
|
2985
|
+
* Returns true when a CSS style string contains bold, italic, underline,
|
|
2986
|
+
* strikethrough, or color declarations.
|
|
2987
|
+
*
|
|
2988
|
+
* @param {string} style - Inline CSS style string.
|
|
2989
|
+
* @returns {boolean} True when the style contains rich formatting.
|
|
2990
|
+
*/
|
|
2991
|
+
styleContainsRichFormatting(style) {
|
|
2992
|
+
if (!style.trim()) {
|
|
2993
|
+
return false;
|
|
2994
|
+
}
|
|
2995
|
+
for (const declaration of style.split(';')) {
|
|
2996
|
+
const colonIndex = declaration.indexOf(':');
|
|
2997
|
+
if (colonIndex === -1) {
|
|
2998
|
+
continue;
|
|
2999
|
+
}
|
|
3000
|
+
const prop = declaration.slice(0, colonIndex).trim().toLowerCase();
|
|
3001
|
+
const value = declaration
|
|
3002
|
+
.slice(colonIndex + 1)
|
|
3003
|
+
.trim()
|
|
3004
|
+
.toLowerCase();
|
|
3005
|
+
switch (prop) {
|
|
3006
|
+
case 'font-weight':
|
|
3007
|
+
if (/bold|[5-9]\d{2}|1000/.test(value)) {
|
|
3008
|
+
return true;
|
|
3009
|
+
}
|
|
3010
|
+
break;
|
|
3011
|
+
case 'font-style':
|
|
3012
|
+
if (/italic|oblique/.test(value)) {
|
|
3013
|
+
return true;
|
|
3014
|
+
}
|
|
3015
|
+
break;
|
|
3016
|
+
case 'text-decoration':
|
|
3017
|
+
case 'text-decoration-line':
|
|
3018
|
+
if (/underline|line-through/.test(value)) {
|
|
3019
|
+
return true;
|
|
3020
|
+
}
|
|
3021
|
+
break;
|
|
3022
|
+
case 'color':
|
|
3023
|
+
case 'background-color':
|
|
3024
|
+
return true;
|
|
3025
|
+
}
|
|
3026
|
+
}
|
|
3027
|
+
return false;
|
|
3028
|
+
}
|
|
3029
|
+
/**
|
|
3030
|
+
* Determines whether an element is visually hidden or rendered off-screen
|
|
3031
|
+
* via its inline style, indicating a clipboard plain-text wrapper.
|
|
3032
|
+
*
|
|
3033
|
+
* @param {HTMLElement} element - Element to inspect.
|
|
3034
|
+
* @returns {boolean} True when the element is hidden or off-screen.
|
|
3035
|
+
*/
|
|
3036
|
+
isVisuallyHiddenElement(element) {
|
|
3037
|
+
const style = (element.getAttribute('style') ||
|
|
3038
|
+
element.getAttribute('data-style') ||
|
|
3039
|
+
'').toLowerCase();
|
|
3040
|
+
if (!style) {
|
|
3041
|
+
return false;
|
|
3042
|
+
}
|
|
3043
|
+
if (/display\s*:\s*none/.test(style) || /visibility\s*:\s*hidden/.test(style)) {
|
|
3044
|
+
return true;
|
|
3045
|
+
}
|
|
3046
|
+
if (/clip\s*:\s*rect\(\s*0/.test(style) || style.includes('clip-path')) {
|
|
3047
|
+
return true;
|
|
3048
|
+
}
|
|
3049
|
+
const isPositioned = /position\s*:\s*(absolute|fixed)/.test(style);
|
|
3050
|
+
const isOffScreen = /(left|top|right|bottom)\s*:\s*-\d{3,}px/.test(style);
|
|
3051
|
+
return isPositioned && isOffScreen;
|
|
3052
|
+
}
|
|
3053
|
+
/**
|
|
3054
|
+
* Resolves paste payload from DataTransfer and synthetic-event fallback payload.
|
|
3055
|
+
*
|
|
3056
|
+
* @param {InputEvent} event - Paste event.
|
|
3057
|
+
* @returns {RTEPastePayload} - Paste payload.
|
|
3058
|
+
*/
|
|
3059
|
+
getPastePayload(event) {
|
|
3060
|
+
const eventPayload = event
|
|
3061
|
+
.rtePastePayload || { html: '', text: '' };
|
|
3062
|
+
if (!event.dataTransfer) {
|
|
3063
|
+
return eventPayload;
|
|
3064
|
+
}
|
|
3065
|
+
return {
|
|
3066
|
+
html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
|
|
3067
|
+
text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
|
|
3068
|
+
};
|
|
3069
|
+
}
|
|
2662
3070
|
}
|
|
2663
3071
|
|
|
2664
3072
|
var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -3369,11 +3777,11 @@ class DeleteSelectedNodesController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3369
3777
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
3370
3778
|
const currentRange = this.selectionController.getCurrentRange();
|
|
3371
3779
|
if (selectedNodes[0] instanceof codeBlock.RTETextNode && selectedNodes[0].isContentEditable()) {
|
|
3372
|
-
selectedNodes[0].apply(new
|
|
3780
|
+
selectedNodes[0].apply(new imageExtension.ReplaceSelectedTextAction('', currentRange));
|
|
3373
3781
|
}
|
|
3374
3782
|
const endNode = selectedNodes[selectedNodes.length - 1];
|
|
3375
3783
|
if (selectedNodes.length > 1 && endNode instanceof codeBlock.RTETextNode && endNode.isContentEditable()) {
|
|
3376
|
-
selectedNodes[selectedNodes.length - 1].apply(new
|
|
3784
|
+
selectedNodes[selectedNodes.length - 1].apply(new imageExtension.ReplaceSelectedTextAction('', currentRange));
|
|
3377
3785
|
}
|
|
3378
3786
|
}
|
|
3379
3787
|
/**
|
|
@@ -3667,7 +4075,7 @@ __decorate$c([
|
|
|
3667
4075
|
], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
|
|
3668
4076
|
|
|
3669
4077
|
const undoIcon = {
|
|
3670
|
-
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright
|
|
4078
|
+
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. --><path fill="currentColor" d="M464 424c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-53-43-96-96-96l-334.1 0 95-95c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239c-4.5 4.5-7 10.6-7 17s2.5 12.5 7 17L143 409c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-95-95 334.1 0c26.5 0 48 21.5 48 48l0 96z"/></svg>`,
|
|
3671
4079
|
};
|
|
3672
4080
|
|
|
3673
4081
|
var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -3704,7 +4112,7 @@ __decorate$b([
|
|
|
3704
4112
|
], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
|
|
3705
4113
|
|
|
3706
4114
|
const redoIcon = {
|
|
3707
|
-
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright
|
|
4115
|
+
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. --><path fill="currentColor" d="M48 424c0 13.3-10.7 24-24 24S0 437.3 0 424l0-96c0-53 43-96 96-96l334.1 0-95-95c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L505 239c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17L369 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l95-95-334.1 0c-26.5 0-48 21.5-48 48l0 96z"/></svg>`,
|
|
3708
4116
|
};
|
|
3709
4117
|
|
|
3710
4118
|
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -3981,6 +4389,7 @@ class RTEExtensionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3981
4389
|
return {
|
|
3982
4390
|
host: this.host,
|
|
3983
4391
|
flushValue: this.flushValue,
|
|
4392
|
+
forceUpdate: index.forceUpdate,
|
|
3984
4393
|
isSourceEditMode: this.isSourceEditMode,
|
|
3985
4394
|
getSelectedNodes: this.getSelectedNodes,
|
|
3986
4395
|
setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
|
|
@@ -4243,7 +4652,7 @@ class VegaRichTextEditorSourceViewRenderer extends globalSlimmerRegistry.VegaSli
|
|
|
4243
4652
|
render() {
|
|
4244
4653
|
if (!this.allowSourceEdit)
|
|
4245
4654
|
return;
|
|
4246
|
-
const sourceCode = this.getSourceTemplate();
|
|
4655
|
+
const sourceCode = this.normalizeSourceCodeForEditing(this.getSourceTemplate());
|
|
4247
4656
|
const sourceViewValue = this.sourceView ? CodeFormatter$1.format(sourceCode) : '';
|
|
4248
4657
|
// Record the source view value when rendering, which will be used to compare with the current source view value when blurring the code block to determine whether to emit the source code change event.
|
|
4249
4658
|
this.prevRecord = sourceCode;
|
|
@@ -4264,6 +4673,24 @@ class VegaRichTextEditorSourceViewRenderer extends globalSlimmerRegistry.VegaSli
|
|
|
4264
4673
|
getSourceTemplate() {
|
|
4265
4674
|
return this.value.toHtml({ filterInlineStyles: this.sourceEditConfig.filterInlineStyles });
|
|
4266
4675
|
}
|
|
4676
|
+
/**
|
|
4677
|
+
* Normalize source HTML for source-mode editing.
|
|
4678
|
+
*
|
|
4679
|
+
* `vega-code-block` renders code as HTML and will decode quote entities, so
|
|
4680
|
+
* convert quote entities inside style attributes to single quotes before entering
|
|
4681
|
+
* source mode. This preserves valid HTML when switching back to normal mode.
|
|
4682
|
+
*/
|
|
4683
|
+
normalizeSourceCodeForEditing(html) {
|
|
4684
|
+
return html.replace(/style="([\s\S]*?)"/gi, (_match, styleValue) => {
|
|
4685
|
+
const normalizedStyleValue = styleValue
|
|
4686
|
+
.replace(/&|&|&/gi, '&')
|
|
4687
|
+
.replace(/<|<|</gi, '<')
|
|
4688
|
+
.replace(/>|>|>/gi, '>')
|
|
4689
|
+
.replace(/"|"|"/gi, "'")
|
|
4690
|
+
.replace(/'|'|'/gi, "'");
|
|
4691
|
+
return `style="${normalizedStyleValue}"`;
|
|
4692
|
+
});
|
|
4693
|
+
}
|
|
4267
4694
|
}
|
|
4268
4695
|
__decorate$7([
|
|
4269
4696
|
globalSlimmerRegistry.MapToComponentField()
|
|
@@ -4709,13 +5136,14 @@ class VegaRichTextEditorToolbarButtonRenderer extends globalSlimmerRegistry.Vega
|
|
|
4709
5136
|
}, onClick: this.handleClick, disabled: this.disabled, hidden: this.hidden },
|
|
4710
5137
|
index.h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
|
|
4711
5138
|
this.icon && (index.h("vega-icon", { size: "size-16", color: this.iconColor, icon: internalIconManager.VegaInternalIconManager.getIconKey(this.icon) })),
|
|
4712
|
-
this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey('chevron-down') }))),
|
|
5139
|
+
this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey(this.arrowIcon || 'chevron-down') }))),
|
|
4713
5140
|
index.h("slot", null)));
|
|
4714
5141
|
}
|
|
4715
5142
|
}
|
|
4716
5143
|
(() => {
|
|
4717
5144
|
internalIconManager.VegaInternalIconManager.register({
|
|
4718
5145
|
'chevron-down': chevronDown.chevronDown,
|
|
5146
|
+
'chevron-up': chevronUp.chevronUp,
|
|
4719
5147
|
});
|
|
4720
5148
|
})();
|
|
4721
5149
|
__decorate$5([
|
|
@@ -4730,6 +5158,9 @@ __decorate$5([
|
|
|
4730
5158
|
__decorate$5([
|
|
4731
5159
|
globalSlimmerRegistry.MapToComponentField()
|
|
4732
5160
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "showArrowIcon", void 0);
|
|
5161
|
+
__decorate$5([
|
|
5162
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
5163
|
+
], VegaRichTextEditorToolbarButtonRenderer.prototype, "arrowIcon", void 0);
|
|
4733
5164
|
__decorate$5([
|
|
4734
5165
|
globalSlimmerRegistry.MapToComponentField()
|
|
4735
5166
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "icon", void 0);
|
|
@@ -4793,6 +5224,12 @@ const VegaRichTextEditorToolbarButton = class {
|
|
|
4793
5224
|
* @vegaVersion 2.34.0
|
|
4794
5225
|
*/
|
|
4795
5226
|
this.showArrowIcon = false;
|
|
5227
|
+
/**
|
|
5228
|
+
* Specifies the arrow icon name when `showArrowIcon` is enabled.
|
|
5229
|
+
*
|
|
5230
|
+
* @vegaVersion 2.93.0
|
|
5231
|
+
*/
|
|
5232
|
+
this.arrowIcon = 'chevron-down';
|
|
4796
5233
|
/**
|
|
4797
5234
|
* Specifies whether the toolbar button in the rich text editor is represented by an icon.
|
|
4798
5235
|
*
|
|
@@ -5071,7 +5508,7 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
5071
5508
|
return this.popoverRef;
|
|
5072
5509
|
}
|
|
5073
5510
|
render() {
|
|
5074
|
-
return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
|
|
5511
|
+
return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: (ref) => {
|
|
5075
5512
|
this.popoverRef = ref;
|
|
5076
5513
|
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, vegaEventId.VegaPopoverShow, () => {
|
|
5077
5514
|
var _a, _b, _c;
|