@globalpayments/vega 2.98.0 → 2.100.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/{accessibility-88f8af84.js → accessibility-6ca2a237.js} +21 -0
- package/dist/cjs/{action-color-accessibility-validator-24498816.js → action-color-accessibility-validator-b8a9ef0f.js} +2 -2
- package/dist/cjs/{app-globals-b3f05631.js → app-globals-48d067a7.js} +11 -10
- package/dist/cjs/{aria-attributes-value-mapper-9a41b9cf.js → aria-attributes-value-mapper-e8c6b0e0.js} +1 -1
- package/dist/cjs/{code-block-d78c2b2c.js → code-block-3b42c364.js} +95 -6
- package/dist/cjs/{component-global-style-slimmer-93c5fb50.js → component-global-style-slimmer-ba588eb4.js} +1 -1
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-beb00fea.js → component-value-history-controller-slimmer.abstract-bbe3bcaf.js} +24 -5
- package/dist/cjs/{content-state-78a620a9.js → content-state-87a06c1a.js} +104 -8
- package/dist/cjs/{dark-mode-style-controller-32d4054a.js → dark-mode-style-controller-f3da3342.js} +2 -2
- package/dist/cjs/{date-required-rule-5250f26d.js → date-required-rule-45c802d3.js} +1 -1
- package/dist/cjs/{design-token-74674ee7.js → design-token-9d762da0.js} +3 -3
- package/dist/cjs/{element-appender-slimmer-597e9e48.js → element-appender-slimmer-f7ba5d9a.js} +2 -2
- package/dist/cjs/{form-field-controller-slimmer-a743be34.js → form-field-controller-slimmer-fbaddc91.js} +2 -2
- package/dist/cjs/{image-annotation-action-85c4bd83.js → image-annotation-action-03d3e01a.js} +7 -6
- package/dist/cjs/{image-extension-260fa69c.js → image-extension-ccda26d3.js} +2 -2
- package/dist/cjs/{index-592b4052.js → index-5d1adcd1.js} +86 -0
- package/dist/cjs/index.cjs.js +20 -19
- package/dist/cjs/{inject-keyboard-manager-6a6f5c9f.js → inject-keyboard-manager-540f0876.js} +1 -1
- package/dist/cjs/{internal-calendar-period-factory-dfcdd3f6.js → internal-calendar-period-factory-b11918ee.js} +1 -1
- package/dist/cjs/{internal-translation-controller-1dac2df8.js → internal-translation-controller-27bfc8c7.js} +17 -0
- package/dist/cjs/{keyboard-manager-c56033b1.js → keyboard-manager-16e96b62.js} +12 -5
- package/dist/cjs/{keyboard-manager-slimmer-7043a106.js → keyboard-manager-slimmer-0a4e556d.js} +1 -1
- package/dist/cjs/{link-extension-220ff6a9.js → link-extension-71eeaa9f.js} +26 -7
- package/dist/cjs/loader.cjs.js +14 -14
- package/dist/cjs/{month-view-generator-7b704a80.js → month-view-generator-0a3e04de.js} +1 -1
- package/dist/cjs/overlay-escape-coordination-901d8942.js +38 -0
- package/dist/cjs/{public-rules-5657bce4.js → public-rules-3dc5d02d.js} +9 -9
- package/dist/cjs/{range-c5afd53a.js → range-d29751e3.js} +1 -1
- package/dist/cjs/{responsive-format-facade-493d1763.js → responsive-format-facade-c6d7f0a1.js} +1 -1
- package/dist/cjs/{rich-text-editor-required-rule-385c1b61.js → rich-text-editor-required-rule-05de7f0c.js} +1 -1
- package/dist/cjs/{split-cell-operation-873d5db7.js → split-cell-operation-ef783850.js} +14 -4
- package/dist/cjs/{state-border-formatter-711c7aaa.js → state-border-formatter-dda9109a.js} +1 -1
- package/dist/cjs/{string-format-strategy.abstract-b61bdcbd.js → string-format-strategy.abstract-3a968a59.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-ef65cca7.js → string-input-formatter-slimmer-9747039f.js} +1 -1
- package/dist/cjs/{string-mask-strategy-ad3fa0ac.js → string-mask-strategy-d9f85c21.js} +2 -2
- package/dist/cjs/{style-formatter-8f711cb0.js → style-formatter-d21a9784.js} +2 -2
- package/dist/cjs/{time-required-rule-87417359.js → time-required-rule-580cbd3d.js} +1 -1
- package/dist/cjs/{token-extension-78b5a026.js → token-extension-8d7bd451.js} +3773 -252
- package/dist/cjs/{translation-slimmer-77c7f37d.js → translation-slimmer-31cd5a57.js} +1 -1
- package/dist/cjs/{type-guard-a57ef3ac.js → type-guard-00b8efc0.js} +1 -1
- package/dist/cjs/{valid-credit-card-number-rule-4c0a3040.js → valid-credit-card-number-rule-70885128.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
- package/dist/cjs/vega-app-footer.cjs.entry.js +2 -2
- package/dist/cjs/vega-app-header-button.cjs.entry.js +6 -6
- package/dist/cjs/vega-banner.cjs.entry.js +1 -1
- package/dist/cjs/vega-box.cjs.entry.js +7 -7
- package/dist/cjs/vega-brand-logo.cjs.entry.js +2 -2
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/vega-button-circle.cjs.entry.js +7 -7
- package/dist/cjs/vega-button-group_2.cjs.entry.js +13 -6
- package/dist/cjs/vega-button-link.cjs.entry.js +4 -4
- package/dist/cjs/vega-button.cjs.entry.js +22 -6
- package/dist/cjs/vega-calendar_5.cjs.entry.js +22 -11
- package/dist/cjs/vega-card.cjs.entry.js +5 -5
- package/dist/cjs/vega-carousel.cjs.entry.js +4 -4
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-chip.cjs.entry.js +6 -6
- package/dist/cjs/vega-code-block.cjs.entry.js +12 -12
- package/dist/cjs/vega-color-picker.cjs.entry.js +4 -4
- package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +4 -4
- package/dist/cjs/vega-color-swatch.cjs.entry.js +3 -3
- package/dist/cjs/vega-combo-box.cjs.entry.js +10 -10
- package/dist/cjs/vega-counter-badge.cjs.entry.js +2 -2
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +15 -15
- package/dist/cjs/vega-dialog_2.cjs.entry.js +72 -6
- package/dist/cjs/vega-divider.cjs.entry.js +5 -5
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +116 -24
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-label.cjs.entry.js +27 -34
- package/dist/cjs/vega-file-uploader.cjs.entry.js +5 -5
- 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 +2 -2
- package/dist/cjs/vega-grid.cjs.entry.js +5 -5
- package/dist/cjs/vega-icon.cjs.entry.js +6 -6
- package/dist/cjs/vega-image-uploader.cjs.entry.js +8 -8
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +7 -7
- package/dist/cjs/vega-input-numeric.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-passcode.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +42 -8
- package/dist/cjs/vega-input-range.cjs.entry.js +5 -5
- package/dist/cjs/vega-input-select.cjs.entry.js +25 -8
- package/dist/cjs/vega-input.cjs.entry.js +9 -9
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +10 -10
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
- package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
- package/dist/cjs/vega-popover_2.cjs.entry.js +58 -9
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-radio_2.cjs.entry.js +7 -7
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +44 -13
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +767 -248
- package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +3 -3
- package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +5 -5
- package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +158 -105
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +4 -4
- package/dist/cjs/vega-signature-capture.cjs.entry.js +8 -8
- package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +22 -9
- package/dist/cjs/vega-table_11.cjs.entry.js +82 -46
- package/dist/cjs/vega-textarea.cjs.entry.js +3 -3
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +11 -11
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +4 -4
- 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.js +17 -2
- package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.js +13 -6
- package/dist/collection/components/vega-button-link/vega-button-link.js +2 -2
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +5 -2
- package/dist/collection/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.js +9 -1
- package/dist/collection/components/vega-code-block/vega-code-block.css +4 -4
- package/dist/collection/components/vega-counter-badge/vega-counter-badge.js +2 -2
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-keyboard-controller.js +148 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-scrollable-controller.js +5 -2
- package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.js +17 -0
- package/dist/collection/components/vega-dropdown/vega-dropdown-group/slimmers/renderers/vega-dropdown-group-renderer.js +6 -4
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +12 -4
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.css +2 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +1 -1
- package/dist/collection/components/vega-field-label/slimmers/renderers/vega-field-label-label-announcement-renderer.js +21 -30
- package/dist/collection/components/vega-field-label/vega-field-label.css +1 -0
- package/dist/collection/components/vega-field-label/vega-field-label.js +7 -5
- package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +19 -2
- package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.js +66 -0
- package/dist/collection/components/vega-popover/slimmers/renderers/vega-popover-appender-renderer.js +17 -0
- package/dist/collection/components/vega-popover/vega-popover.js +33 -1
- package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +4 -1
- package/dist/collection/components/vega-rich-text-editor/constants/constant.js +25 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/commit-value-strategy.js +13 -0
- package/dist/collection/components/vega-rich-text-editor/dto/actions/commit-value-action.js +20 -0
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +22 -0
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +10 -0
- package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +11 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.js +5 -2
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.js +36 -2
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/code-block-node.js +6 -0
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +8 -0
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +6 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +20 -3
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +30 -18
- package/dist/collection/components/vega-rich-text-editor/extensions/block-boundary-registry.js +34 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/blockquote/renderers/blockquote-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/copy/copy-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/cut/cut-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +20 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.js +51 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/find-replace/vega-rich-text-find-replace-panel/slimmers/renderers/find-replace-panel-renderer.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/fullscreen/fullscreen-toolbar-button-renderer.js +3 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.js +3 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/constants.js +8 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js +14 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.js +6 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.js +19 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.js +9 -5
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.js +4 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +18 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.js +5 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/utils.js +36 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/horizontal-line/renderers/horizontal-line-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-toolbar-button-renderer.js +5 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/line-height/line-height-toolbar-button-renderer.js +16 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.js +21 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.js +13 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.js +295 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.js +116 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +13 -4
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-extension.js +70 -7
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.js +38 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.js +55 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.js +59 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.js +416 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.js +106 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.js +198 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.js +591 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.js +112 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.js +551 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.js +7 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/special-characters/special-characters-toolbar-button-renderer.js +2 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +10 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.js +3 -9
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-cell-renderer.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.js +81 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-popover-base-renderer.js +148 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.js +151 -5
- package/dist/collection/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.js +144 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/table/table-selection.js +26 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/table-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-cell-properties-form-field-renderer.js +11 -2
- 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 +5 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-form-field-renderer.js +5 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.css +5 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.js +16 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/caption-button-slimmer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/cell-properties-button-slimmer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/column-button-slimmer.js +10 -9
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/merge-cells-button-slimmer.js +9 -8
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.js +25 -10
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-properties-button-slimmer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.js +5 -4
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/vega-rich-text-table-setting-renderer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.css +10 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.js +2 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +4 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +44 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/word-count/action-handler-interceptors/prevent-hard-limit-exceed-interceptor.js +70 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/word-count/type.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/word-count/word-count-extension.js +62 -0
- package/dist/collection/components/vega-rich-text-editor/public-api.js +1 -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/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.js +7 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +17 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +18 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/insert-composition-text-controller.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +21 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +7 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +52 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/word-count-controller.js +79 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/toolbar-renderer.js +6 -3
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/horizontal-alignment/horizontal-alignment-toolbar-button-slimmer.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +3 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +111 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +24 -6
- 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/tools/toolbar-button-slimmer.abstract.js +3 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.js +59 -8
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +5 -2
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/slimmers/renderers/vega-rich-text-editor-toolbar-button-renderer.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.js +13 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +16 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.js +124 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.js +9 -1
- package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.js +14 -7
- package/dist/collection/components/vega-tab-group/vega-tab-group.css +6 -0
- package/dist/collection/components/vega-tab-group/vega-tab-group.js +5 -0
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.js +31 -1
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.js +18 -11
- package/dist/collection/global/scripts/before-vega-load.js +2 -0
- package/dist/collection/helpers/keyboard/keyboard-manager.js +11 -4
- package/dist/collection/helpers/keyboard/overlay-escape-coordination.js +33 -0
- package/dist/collection/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.js +1 -1
- package/dist/collection/helpers/translation/locales/en.js +17 -0
- package/dist/collection/polyfill/libphonenumber/as-you-type.js +21 -3
- package/dist/collection/polyfill/libphonenumber/metadata.js +16 -0
- package/dist/collection/utils/accessibility.js +20 -0
- package/dist/collection/utils/sanitize/index.js +3 -2
- package/dist/collection/utils/sanitize/strategies/index.js +1 -0
- package/dist/collection/utils/sanitize/strategies/label-sanitize-strategy.js +14 -0
- package/dist/collection/utils/sanitize/strategies/plain-text-sanitize-strategy.js +70 -0
- package/dist/esm/{accessibility-6af5cf2e.js → accessibility-c899a968.js} +21 -1
- package/dist/esm/{action-color-accessibility-validator-ce55cb07.js → action-color-accessibility-validator-08877515.js} +2 -2
- package/dist/esm/{app-globals-95c7110a.js → app-globals-1e1371d5.js} +11 -10
- package/dist/esm/{aria-attributes-value-mapper-2c632641.js → aria-attributes-value-mapper-a5c7478e.js} +1 -1
- package/dist/esm/{aria-dialog-focusable-trap-slimmer-f069f54d.js → aria-dialog-focusable-trap-slimmer-b2a24a45.js} +2 -2
- package/dist/esm/{child-nodes-notify-observer-slimmer-499a3aa7.js → child-nodes-notify-observer-slimmer-034bc78c.js} +1 -1
- package/dist/esm/{code-block-9c513169.js → code-block-741d6b8e.js} +91 -9
- package/dist/esm/{component-global-style-slimmer-ac703085.js → component-global-style-slimmer-7d60a04a.js} +1 -1
- package/dist/esm/{component-value-history-controller-slimmer.abstract-9cef2a2a.js → component-value-history-controller-slimmer.abstract-2bcd749e.js} +26 -7
- package/dist/esm/{content-state-25c81c08.js → content-state-2f6f4204.js} +104 -11
- package/dist/esm/{dark-mode-style-controller-ca5afd2d.js → dark-mode-style-controller-352f15ff.js} +2 -2
- package/dist/esm/{date-required-rule-85334d0c.js → date-required-rule-2ea3aec8.js} +1 -1
- package/dist/esm/{design-token-10ff79b5.js → design-token-82a4e107.js} +3 -3
- package/dist/esm/{dom-node-subject-observer-factory-ddff8662.js → dom-node-subject-observer-factory-bb7e68a0.js} +1 -1
- package/dist/esm/{element-appender-slimmer-8a06ecdd.js → element-appender-slimmer-c820c0bf.js} +4 -4
- package/dist/esm/{event-emit-slimmer-2452278f.js → event-emit-slimmer-e8bb2292.js} +1 -1
- package/dist/esm/{form-field-controller-slimmer-68fc5380.js → form-field-controller-slimmer-02165dbe.js} +5 -5
- package/dist/esm/{image-annotation-action-d7f2aecc.js → image-annotation-action-972c1074.js} +8 -7
- package/dist/esm/{image-extension-fbd1ed6e.js → image-extension-59484e9a.js} +2 -2
- package/dist/esm/{index-3b327f29.js → index-35451d12.js} +86 -1
- package/dist/esm/index.js +21 -21
- package/dist/esm/{inject-keyboard-manager-ea1aad5b.js → inject-keyboard-manager-6a10c9b7.js} +1 -1
- package/dist/esm/{internal-calendar-period-factory-7b294fb6.js → internal-calendar-period-factory-d1a60f81.js} +1 -1
- package/dist/esm/{internal-translation-controller-fac22598.js → internal-translation-controller-fff376d2.js} +17 -0
- package/dist/esm/{keyboard-manager-50da85d7.js → keyboard-manager-a58288df.js} +13 -6
- package/dist/esm/{keyboard-manager-slimmer-1f7c8bfb.js → keyboard-manager-slimmer-133b86cd.js} +1 -1
- package/dist/esm/{link-extension-e8ee103e.js → link-extension-e89acb5c.js} +26 -7
- package/dist/esm/loader.js +16 -16
- package/dist/esm/{month-view-generator-a1a9a4ec.js → month-view-generator-20e32b22.js} +1 -1
- package/dist/esm/overlay-escape-coordination-439f7d6f.js +35 -0
- package/dist/esm/{public-rules-49de79c7.js → public-rules-c154201b.js} +11 -11
- package/dist/esm/{range-b678c693.js → range-c818a1eb.js} +2 -2
- package/dist/esm/{responsive-format-facade-f19b601c.js → responsive-format-facade-07843ec3.js} +1 -1
- package/dist/esm/{rich-text-editor-required-rule-578e0958.js → rich-text-editor-required-rule-878e91c6.js} +1 -1
- package/dist/esm/{split-cell-operation-1c8e7585.js → split-cell-operation-cc0cdf90.js} +15 -5
- package/dist/esm/{state-border-formatter-bfda33aa.js → state-border-formatter-3b3dcfe8.js} +1 -1
- package/dist/esm/{string-format-strategy.abstract-1f4ff1b3.js → string-format-strategy.abstract-44381dcb.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-0006a107.js → string-input-formatter-slimmer-76fe52d3.js} +3 -3
- package/dist/esm/{string-mask-strategy-bbbcdbef.js → string-mask-strategy-999fba4b.js} +2 -2
- package/dist/esm/{style-formatter-e9adc8f4.js → style-formatter-c4192c99.js} +2 -2
- package/dist/esm/{sub-state-notify-slimmer-23b7d0e8.js → sub-state-notify-slimmer-e306c849.js} +1 -1
- package/dist/esm/{sub-state-observer-slimmer-722f6b92.js → sub-state-observer-slimmer-bd85f381.js} +2 -2
- package/dist/esm/{time-required-rule-1ce2d0a0.js → time-required-rule-0554b114.js} +1 -1
- package/dist/esm/{token-extension-f2d009e3.js → token-extension-35c66684.js} +3773 -253
- package/dist/esm/{translation-slimmer-ee0f0e76.js → translation-slimmer-77022f2e.js} +1 -1
- package/dist/esm/{type-guard-f2624334.js → type-guard-26d83e7e.js} +1 -1
- package/dist/esm/{ui-d73f756a.js → ui-80e610f4.js} +1 -1
- package/dist/esm/{valid-credit-card-number-rule-60212b1d.js → valid-credit-card-number-rule-f60b6904.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +9 -9
- package/dist/esm/vega-app-footer.entry.js +5 -5
- package/dist/esm/vega-app-header-button.entry.js +9 -9
- package/dist/esm/vega-backdrop.entry.js +1 -1
- package/dist/esm/vega-banner.entry.js +4 -4
- package/dist/esm/vega-box.entry.js +8 -8
- package/dist/esm/vega-brand-logo.entry.js +2 -2
- package/dist/esm/vega-breadcrumb.entry.js +5 -5
- package/dist/esm/vega-button-circle.entry.js +10 -10
- package/dist/esm/vega-button-group_2.entry.js +18 -11
- package/dist/esm/vega-button-link.entry.js +7 -7
- package/dist/esm/vega-button.entry.js +25 -9
- package/dist/esm/vega-calendar_5.entry.js +27 -16
- package/dist/esm/vega-card.entry.js +6 -6
- package/dist/esm/vega-carousel.entry.js +7 -7
- package/dist/esm/vega-checkbox_2.entry.js +9 -9
- package/dist/esm/vega-chip.entry.js +9 -9
- package/dist/esm/vega-code-block.entry.js +15 -15
- package/dist/esm/vega-color-picker.entry.js +8 -8
- package/dist/esm/vega-color-swatch-picker.entry.js +8 -8
- package/dist/esm/vega-color-swatch.entry.js +6 -6
- package/dist/esm/vega-combo-box.entry.js +14 -14
- package/dist/esm/vega-counter-badge.entry.js +2 -2
- package/dist/esm/vega-date-picker_2.entry.js +21 -21
- package/dist/esm/vega-dialog_2.entry.js +76 -10
- package/dist/esm/vega-divider.entry.js +5 -5
- package/dist/esm/vega-dropdown_5.entry.js +123 -31
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-label.entry.js +30 -37
- package/dist/esm/vega-file-uploader.entry.js +9 -9
- package/dist/esm/vega-flag-icon.entry.js +5 -5
- package/dist/esm/vega-flex.entry.js +7 -7
- package/dist/esm/vega-font.entry.js +6 -6
- package/dist/esm/vega-form.entry.js +8 -8
- package/dist/esm/vega-grid.entry.js +6 -6
- package/dist/esm/vega-icon.entry.js +7 -7
- package/dist/esm/vega-image-uploader.entry.js +12 -12
- package/dist/esm/vega-input-credit-card.entry.js +11 -11
- package/dist/esm/vega-input-numeric.entry.js +11 -11
- package/dist/esm/vega-input-passcode.entry.js +10 -10
- package/dist/esm/vega-input-phone-number.entry.js +46 -12
- package/dist/esm/vega-input-range.entry.js +9 -9
- package/dist/esm/vega-input-select.entry.js +29 -12
- package/dist/esm/vega-input.entry.js +14 -14
- package/dist/esm/vega-item-toggle.entry.js +3 -3
- package/dist/esm/vega-left-nav_5.entry.js +15 -15
- package/dist/esm/vega-loader-wrapper_2.entry.js +4 -4
- package/dist/esm/vega-page-notification_2.entry.js +3 -3
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +2 -2
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +4 -4
- package/dist/esm/vega-pagination.entry.js +7 -7
- package/dist/esm/vega-popover_2.entry.js +62 -13
- package/dist/esm/vega-progress-tracker_2.entry.js +9 -9
- package/dist/esm/vega-radio_2.entry.js +12 -12
- package/dist/esm/vega-rich-text-content.entry.js +48 -17
- package/dist/esm/vega-rich-text-editor_4.entry.js +774 -255
- package/dist/esm/vega-rich-text-find-replace-panel.entry.js +6 -6
- package/dist/esm/vega-rich-text-special-characters-panel.entry.js +8 -8
- package/dist/esm/vega-rich-text-table-properties_3.entry.js +160 -107
- package/dist/esm/vega-segment-control.entry.js +3 -3
- package/dist/esm/vega-selection-chip_2.entry.js +11 -11
- package/dist/esm/vega-selection-tile_2.entry.js +9 -9
- package/dist/esm/vega-sidenav_3.entry.js +9 -9
- package/dist/esm/vega-signature-capture.entry.js +12 -12
- package/dist/esm/vega-stepper.entry.js +7 -7
- package/dist/esm/vega-tab-group_2.entry.js +25 -12
- package/dist/esm/vega-table_11.entry.js +59 -23
- package/dist/esm/vega-textarea.entry.js +7 -7
- package/dist/esm/vega-time-picker_2.entry.js +15 -15
- package/dist/esm/vega-toggle-switch.entry.js +8 -8
- package/dist/esm/vega-tooltip_2.entry.js +8 -8
- package/dist/esm/vega.js +16 -16
- package/dist/esm/{wait-for-component-did-render-ff7062aa.js → wait-for-component-did-render-9b91a826.js} +1 -1
- package/dist/sri/vega-sri-manifest.json +399 -395
- package/dist/types/components/vega-button/vega-button.d.ts +2 -0
- package/dist/types/components/vega-button-group/types.d.ts +12 -6
- package/dist/types/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.d.ts +2 -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.d.ts +1 -1
- package/dist/types/components/vega-field-label/slimmers/renderers/vega-field-label-label-announcement-renderer.d.ts +3 -10
- package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +8 -0
- package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.d.ts +33 -0
- package/dist/types/components/vega-modal/types.d.ts +2 -1
- package/dist/types/components/vega-popover/slimmers/renderers/vega-popover-appender-renderer.d.ts +9 -0
- package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +22 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/commit-value-strategy.d.ts +13 -0
- package/dist/types/components/vega-rich-text-editor/dto/actions/commit-value-action.d.ts +20 -0
- package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.d.ts +3 -2
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.d.ts +25 -3
- package/dist/types/components/vega-rich-text-editor/dto/nodes/code-block-node.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +5 -0
- package/dist/types/components/vega-rich-text-editor/extensions/block-boundary-registry.d.ts +21 -0
- package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/extensions/find-replace/slimmer/renderers/find-replace-toolbar-button-renderer.d.ts +19 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/constants.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/function-block.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/logic-control-node.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/utils.d.ts +29 -0
- package/dist/types/components/vega-rich-text-editor/extensions/line-height/line-height-toolbar-button-renderer.d.ts +14 -1
- package/dist/types/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.d.ts +12 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.d.ts +136 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.d.ts +68 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.d.ts +9 -4
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-extension.d.ts +39 -2
- package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.d.ts +29 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.d.ts +61 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.d.ts +45 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.d.ts +186 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.d.ts +51 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.d.ts +86 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.d.ts +271 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.d.ts +25 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.d.ts +240 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.d.ts +36 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-caption-renderer.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-dynamic-popover-renderer.d.ts +31 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-popover-base-renderer.d.ts +91 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-renderer.d.ts +46 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/renderers/table-setting-popover-renderer.d.ts +58 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/table-selection.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/slimmers/renderers/vega-rich-text-table-properties-basic-form-field-renderer.abstract.d.ts +2 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-properties/vega-rich-text-table-properties.d.ts +2 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/row-button-slimmer.d.ts +3 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/slimmers/renderers/table-setting-button-slimmer.abstract.d.ts +3 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/vega-rich-text-table-setting/vega-rich-text-table-setting.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +19 -1
- package/dist/types/components/vega-rich-text-editor/extensions/word-count/action-handler-interceptors/prevent-hard-limit-exceed-interceptor.d.ts +38 -0
- package/dist/types/components/vega-rich-text-editor/extensions/word-count/type.d.ts +46 -0
- package/dist/types/components/vega-rich-text-editor/extensions/word-count/word-count-extension.d.ts +38 -0
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +22 -0
- package/dist/types/components/vega-rich-text-editor/public-api.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.d.ts +4 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +11 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/word-count-controller.d.ts +40 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +4 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/toolbar-button-slimmer.abstract.d.ts +3 -2
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-renderer.d.ts +12 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor-toolbar-button/vega-rich-text-editor-toolbar-button.d.ts +2 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.d.ts +68 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.d.ts +3 -0
- package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.d.ts +1 -0
- package/dist/types/components/vega-tab-group/types.d.ts +3 -1
- package/dist/types/components/vega-tab-group/vega-tab-group.d.ts +2 -0
- package/dist/types/components/vega-table/interface.d.ts +4 -4
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.d.ts +16 -0
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.d.ts +8 -10
- package/dist/types/helpers/keyboard/keyboard-manager.d.ts +9 -0
- package/dist/types/helpers/keyboard/overlay-escape-coordination.d.ts +28 -0
- package/dist/types/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.d.ts +1 -1
- package/dist/types/helpers/translation/interface.d.ts +18 -1
- package/dist/types/polyfill/libphonenumber/as-you-type.d.ts +1 -0
- package/dist/types/polyfill/libphonenumber/metadata.d.ts +10 -0
- package/dist/types/types/public-api.d.ts +2 -0
- package/dist/types/utils/accessibility.d.ts +9 -0
- package/dist/types/utils/sanitize/index.d.ts +3 -2
- package/dist/types/utils/sanitize/strategies/index.d.ts +1 -0
- package/dist/types/utils/sanitize/strategies/label-sanitize-strategy.d.ts +9 -0
- package/dist/types/utils/sanitize/strategies/plain-text-sanitize-strategy.d.ts +36 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-6f537797.entry.js → p-01ca92e6.entry.js} +1 -1
- package/dist/vega/{p-02d3ce79.entry.js → p-02b5d4ac.entry.js} +1 -1
- package/dist/vega/p-06a42a9f.entry.js +1 -0
- package/dist/vega/{p-fd23c365.entry.js → p-0cd362f3.entry.js} +1 -1
- package/dist/vega/p-0e10798b.entry.js +1 -0
- package/dist/vega/{p-2c2e8615.js → p-0eea1ca8.js} +1 -1
- package/dist/vega/{p-c98c2f5f.entry.js → p-0f344e02.entry.js} +1 -1
- package/dist/vega/{p-4cbfc01e.entry.js → p-23db0a92.entry.js} +1 -1
- package/dist/vega/{p-ccbe3f1b.entry.js → p-284a8828.entry.js} +1 -1
- package/dist/vega/{p-ac94ba1b.entry.js → p-2b26e182.entry.js} +1 -1
- package/dist/vega/{p-56598858.entry.js → p-2c8dc0d2.entry.js} +1 -1
- package/dist/vega/{p-2bb5a232.js → p-3091b105.js} +1 -1
- package/dist/vega/{p-9abf7d0a.entry.js → p-35d37477.entry.js} +1 -1
- package/dist/vega/{p-526e3634.js → p-36a57431.js} +1 -1
- package/dist/vega/{p-810c9c29.js → p-379736e2.js} +1 -1
- package/dist/vega/p-3abb793c.entry.js +1 -0
- package/dist/vega/{p-f29ea345.entry.js → p-3d6a43df.entry.js} +1 -1
- package/dist/vega/{p-c2277448.entry.js → p-3f2a4b34.entry.js} +1 -1
- package/dist/vega/p-401c6764.js +1 -0
- package/dist/vega/{p-da867019.entry.js → p-411cadbc.entry.js} +1 -1
- package/dist/vega/{p-ec64cc59.entry.js → p-46f22f6c.entry.js} +1 -1
- package/dist/vega/{p-8d2501b2.js → p-493108d5.js} +1 -1
- package/dist/vega/{p-085d1647.entry.js → p-49de5559.entry.js} +1 -1
- package/dist/vega/{p-781b7a54.js → p-4b35c748.js} +1 -1
- package/dist/vega/{p-a8174ad8.entry.js → p-4d1896e0.entry.js} +1 -1
- package/dist/vega/{p-b00ec194.entry.js → p-4e23e56c.entry.js} +1 -1
- package/dist/vega/{p-1cff027b.entry.js → p-5006404e.entry.js} +1 -1
- package/dist/vega/{p-56417ec5.entry.js → p-5789690b.entry.js} +1 -1
- package/dist/vega/{p-461100b8.entry.js → p-594cb986.entry.js} +1 -1
- package/dist/vega/p-5a086e93.js +1 -0
- package/dist/vega/{p-3e09aeed.js → p-5b3c8a56.js} +1 -1
- package/dist/vega/p-5b9b1631.entry.js +1 -0
- package/dist/vega/{p-c41a2d4a.js → p-5c3649f9.js} +1 -1
- package/dist/vega/{p-fb9475ab.entry.js → p-5d9be870.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-d609c3fd.js → p-60a74fb7.js} +1 -1
- package/dist/vega/{p-2acf9b42.entry.js → p-61ed7268.entry.js} +1 -1
- package/dist/vega/p-6336d446.entry.js +1 -0
- package/dist/vega/{p-dbb4b1d1.js → p-638b6a7d.js} +1 -1
- package/dist/vega/{p-bdb5180c.js → p-68744e7e.js} +1 -1
- package/dist/vega/p-6e9e7131.js +1 -0
- package/dist/vega/{p-014cd411.js → p-6eedbc4f.js} +1 -1
- package/dist/vega/{p-a090b2be.js → p-6fd8f14b.js} +1 -1
- package/dist/vega/{p-0cf3b5c1.entry.js → p-7469d0d1.entry.js} +1 -1
- package/dist/vega/p-74b20563.entry.js +1 -0
- package/dist/vega/{p-17c69503.entry.js → p-76999ea1.entry.js} +1 -1
- package/dist/vega/p-77bcdd35.js +1 -0
- package/dist/vega/{p-035e2f05.entry.js → p-79b49e8d.entry.js} +1 -1
- package/dist/vega/{p-8d96f0e8.entry.js → p-7a03ef96.entry.js} +1 -1
- package/dist/vega/{p-c5fb8a69.entry.js → p-7ae4cf82.entry.js} +1 -1
- package/dist/vega/{p-f9bfee81.entry.js → p-7cc8855d.entry.js} +1 -1
- package/dist/vega/{p-d470fce2.entry.js → p-7ddc0bec.entry.js} +1 -1
- package/dist/vega/{p-ca3c1317.entry.js → p-7e22610b.entry.js} +1 -1
- package/dist/vega/p-7f395622.entry.js +1 -0
- package/dist/vega/{p-3737b9e2.entry.js → p-816b5fd2.entry.js} +1 -1
- package/dist/vega/p-8387896e.js +1 -0
- package/dist/vega/p-844ad6aa.entry.js +1 -0
- package/dist/vega/p-853a05eb.js +1 -0
- package/dist/vega/p-85de755f.js +1 -0
- package/dist/vega/p-8663314e.js +1 -0
- package/dist/vega/{p-95c18f79.entry.js → p-86fb46d2.entry.js} +1 -1
- package/dist/vega/p-8cfdd0e8.entry.js +1 -0
- package/dist/vega/p-8ebe30a8.js +1 -0
- package/dist/vega/p-8f00dfe6.js +1 -0
- package/dist/vega/{p-66647244.js → p-8fc0a820.js} +1 -1
- package/dist/vega/{p-4fd0cf01.js → p-9034f709.js} +1 -1
- package/dist/vega/{p-456f678b.js → p-941a83db.js} +1 -1
- package/dist/vega/{p-ae2abdfa.js → p-96c090c4.js} +1 -1
- package/dist/vega/p-9ba2fdff.js +1 -0
- package/dist/vega/{p-d319ebb5.js → p-9e9f49f4.js} +1 -1
- package/dist/vega/p-9efa5d76.js +1 -0
- package/dist/vega/{p-a81ad3bd.js → p-a306bb39.js} +1 -1
- package/dist/vega/{p-db11134b.entry.js → p-a48468b5.entry.js} +1 -1
- package/dist/vega/{p-56db3323.js → p-a488447f.js} +1 -1
- package/dist/vega/p-a647c856.entry.js +1 -0
- package/dist/vega/{p-a484e32d.entry.js → p-a6a89f09.entry.js} +1 -1
- package/dist/vega/p-a92cd703.js +1 -0
- package/dist/vega/p-a93b3aed.js +1 -0
- package/dist/vega/{p-528748fa.js → p-aa135628.js} +1 -1
- package/dist/vega/{p-4bfe3258.entry.js → p-aaaf21eb.entry.js} +1 -1
- package/dist/vega/{p-36d9e782.entry.js → p-ab253867.entry.js} +1 -1
- package/dist/vega/{p-dcd3e3a7.js → p-ab9d53e9.js} +1 -1
- package/dist/vega/p-ad367b48.entry.js +1 -0
- package/dist/vega/{p-e18c0656.entry.js → p-af0cfea0.entry.js} +1 -1
- package/dist/vega/p-b07f587a.entry.js +1 -0
- package/dist/vega/p-b21cc390.entry.js +1 -0
- package/dist/vega/{p-12e8a1b2.js → p-b2a4314a.js} +1 -1
- package/dist/vega/p-b52d7724.js +3 -0
- package/dist/vega/{p-5f96e741.entry.js → p-b97ed9f7.entry.js} +1 -1
- package/dist/vega/{p-7dcd2850.entry.js → p-bc0e5598.entry.js} +1 -1
- package/dist/vega/p-bc119e75.entry.js +1 -0
- package/dist/vega/{p-0cbf09f7.entry.js → p-bedb575c.entry.js} +1 -1
- package/dist/vega/{p-cb81126a.entry.js → p-bfe5dff7.entry.js} +1 -1
- package/dist/vega/{p-52c69f9e.entry.js → p-c032f626.entry.js} +1 -1
- package/dist/vega/{p-1ea9ad9a.js → p-c34f4cbc.js} +1 -1
- package/dist/vega/{p-72ab5cd5.entry.js → p-c422ee02.entry.js} +1 -1
- package/dist/vega/{p-39c5054b.js → p-c576e846.js} +1 -1
- package/dist/vega/{p-c70748f7.entry.js → p-c7d46740.entry.js} +1 -1
- package/dist/vega/p-cc569b54.js +1 -0
- package/dist/vega/{p-4e065ef7.entry.js → p-cd04b149.entry.js} +1 -1
- package/dist/vega/{p-2a245138.entry.js → p-cd0a108b.entry.js} +1 -1
- package/dist/vega/{p-8c56d74d.entry.js → p-d1bb6e7a.entry.js} +1 -1
- package/dist/vega/{p-200c8914.entry.js → p-d340ee3d.entry.js} +1 -1
- package/dist/vega/p-d897acd5.js +1 -0
- package/dist/vega/p-debf9e06.entry.js +1 -0
- package/dist/vega/p-e0a51e49.js +1 -0
- package/dist/vega/{p-1aedbfd2.entry.js → p-e11c6ec4.entry.js} +1 -1
- package/dist/vega/{p-1e0a8fd3.js → p-e14323f3.js} +1 -1
- package/dist/vega/{p-6d4518d7.entry.js → p-e5abc288.entry.js} +1 -1
- package/dist/vega/{p-544ce391.entry.js → p-ea1a0046.entry.js} +1 -1
- package/dist/vega/{p-72fd17a1.entry.js → p-edd7aa92.entry.js} +1 -1
- package/dist/vega/p-ef1bbf14.js +1 -0
- package/dist/vega/{p-9834d5d4.entry.js → p-efc08027.entry.js} +1 -1
- package/dist/vega/{p-874e5624.js → p-f485448a.js} +1 -1
- package/dist/vega/{p-92528dc9.entry.js → p-f8b2dbb9.entry.js} +1 -1
- package/dist/vega/{p-cf4b3d40.entry.js → p-f8bf379c.entry.js} +1 -1
- package/dist/vega/{p-b98ead05.entry.js → p-f902305d.entry.js} +1 -1
- package/dist/vega/p-fe985b52.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-keyboard-conttroller.js +0 -85
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-constants.js +0 -6
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-constants.d.ts +0 -6
- package/dist/vega/p-03eeadc1.entry.js +0 -1
- package/dist/vega/p-0eb29065.js +0 -3
- package/dist/vega/p-10d30c03.js +0 -1
- package/dist/vega/p-1250b1ab.entry.js +0 -1
- package/dist/vega/p-1abd3c17.js +0 -1
- package/dist/vega/p-2d158cbd.js +0 -1
- package/dist/vega/p-2f07d719.entry.js +0 -1
- package/dist/vega/p-36d2df7a.entry.js +0 -1
- package/dist/vega/p-373541fa.js +0 -1
- package/dist/vega/p-3a620268.js +0 -1
- package/dist/vega/p-3d0b4074.js +0 -1
- package/dist/vega/p-56493601.js +0 -1
- package/dist/vega/p-571ec00b.js +0 -1
- package/dist/vega/p-585e4f1c.entry.js +0 -1
- package/dist/vega/p-5b1f5e4a.entry.js +0 -1
- package/dist/vega/p-6234852e.entry.js +0 -1
- package/dist/vega/p-67eaf77e.js +0 -1
- package/dist/vega/p-6c95a6a3.js +0 -1
- package/dist/vega/p-6fd4f2c6.js +0 -1
- package/dist/vega/p-7e8fdac4.js +0 -1
- package/dist/vega/p-83ad8988.js +0 -1
- package/dist/vega/p-94975537.entry.js +0 -1
- package/dist/vega/p-a91927eb.entry.js +0 -1
- package/dist/vega/p-b3733762.entry.js +0 -1
- package/dist/vega/p-b622c455.js +0 -1
- package/dist/vega/p-c6d775b8.entry.js +0 -1
- package/dist/vega/p-cd69aeae.js +0 -1
- package/dist/vega/p-cfe268a8.entry.js +0 -1
- package/dist/vega/p-daba4af1.js +0 -1
- package/dist/vega/p-de8f0d98.js +0 -1
- package/dist/vega/p-f0e828d8.js +0 -1
- package/dist/vega/p-f62c5a20.entry.js +0 -1
- package/dist/vega/p-f6c0e9e7.entry.js +0 -1
- package/dist/vega/p-fa65956c.entry.js +0 -1
- /package/dist/types/components/vega-dropdown/slimmers/controllers/{vega-dropdown-keyboard-conttroller.d.ts → vega-dropdown-keyboard-controller.d.ts} +0 -0
package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js
CHANGED
|
@@ -44,6 +44,16 @@ export class RTETableBlock extends RTEBlock {
|
|
|
44
44
|
getLastNode() {
|
|
45
45
|
return this.children[this.children.length - 1].getLastNode();
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* The table is an atomic caret boundary: resolving a caret on its boundary must keep
|
|
49
|
+
* it anchored to the table block (so paragraph-insertion before/after works) rather
|
|
50
|
+
* than descending into a cell.
|
|
51
|
+
*
|
|
52
|
+
* @inheritDoc
|
|
53
|
+
*/
|
|
54
|
+
allowsCaretDescend() {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
47
57
|
/**
|
|
48
58
|
* Get the first node of the table block.
|
|
49
59
|
*
|
|
@@ -8,15 +8,9 @@ export class RTETableCaptionRenderer extends VegaRTEExtensionRenderer {
|
|
|
8
8
|
/**
|
|
9
9
|
* @inheritDoc
|
|
10
10
|
*/
|
|
11
|
-
doRender(h, renderData) {
|
|
12
|
-
return h('caption', {
|
|
13
|
-
'key': renderData.id,
|
|
14
|
-
'ref': this.useRef(renderData),
|
|
15
|
-
'style': renderData.getStyles(),
|
|
16
|
-
'class': [renderData.getClasses(), renderData.isNotEmpty() ? null : 'showPlaceholder']
|
|
11
|
+
doRender(h, renderData, rteContext) {
|
|
12
|
+
return h('caption', Object.assign(Object.assign({ 'key': renderData.id, 'ref': this.useRef(renderData) }, (rteContext.editable ? { contentEditable: true } : undefined)), { 'style': renderData.getStyles(), 'class': [renderData.getClasses(), renderData.isNotEmpty() ? null : 'showPlaceholder']
|
|
17
13
|
.filter(isNonNullable)
|
|
18
|
-
.join(' '),
|
|
19
|
-
'data-placeholder': TABLE_CAPTION_PLACEHOLDER_TEXT,
|
|
20
|
-
});
|
|
14
|
+
.join(' '), 'data-placeholder': TABLE_CAPTION_PLACEHOLDER_TEXT }));
|
|
21
15
|
}
|
|
22
16
|
}
|
|
@@ -21,9 +21,9 @@ export class RTETableCellRenderer extends VegaRTEExtensionRenderer {
|
|
|
21
21
|
*/
|
|
22
22
|
renderByCellType(h, renderData, rteContext, elementType) {
|
|
23
23
|
var _a;
|
|
24
|
-
return h(elementType, Object.assign(Object.assign(Object.assign({ key: `${renderData.id}-${elementType}`,
|
|
24
|
+
return h(elementType, Object.assign(Object.assign(Object.assign(Object.assign({ key: `${renderData.id}-${elementType}`,
|
|
25
25
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
26
|
-
ref: this.useRef(renderData) }, (_a = renderData.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.render()), { style: renderData.getStyles(rteContext), class: renderData.getClasses() }), (rteContext.editable ? this.onSelectionListeners(renderData, rteContext) : undefined)));
|
|
26
|
+
ref: this.useRef(renderData) }, (rteContext.editable ? { contentEditable: true, tabindex: -1 } : undefined)), (_a = renderData.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.render()), { style: renderData.getStyles(rteContext), class: renderData.getClasses() }), (rteContext.editable ? this.onSelectionListeners(renderData, rteContext) : undefined)));
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Returns the mouse event listeners for selection handling.
|
|
@@ -83,6 +83,8 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
83
83
|
* and clears the internal reference.
|
|
84
84
|
*/
|
|
85
85
|
destroy() {
|
|
86
|
+
this.setEditorContentInert(false);
|
|
87
|
+
this.detachEscapeTracker();
|
|
86
88
|
if (this.selectionAnchorRef && this.selectionAnchorRef.parentNode) {
|
|
87
89
|
DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(this.selectionAnchorRef, VegaInternalRTEExtensionTableCellsSelectionAnchor);
|
|
88
90
|
this.selectionAnchorRef.parentNode.removeChild(this.selectionAnchorRef);
|
|
@@ -95,8 +97,13 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
95
97
|
*
|
|
96
98
|
* @param {string} type - The table setting type determining which
|
|
97
99
|
* content variant to display (for example, table properties or cell properties).
|
|
100
|
+
* @param {Nullable<HTMLElement>} returnCell - The cell to move focus into the dialog for and
|
|
101
|
+
* return focus to if the dialog is dismissed with Escape (set for keyboard/screen-reader users).
|
|
98
102
|
*/
|
|
99
|
-
async show(type) {
|
|
103
|
+
async show(type, returnCell) {
|
|
104
|
+
// Remember the cell to return focus to if the dialog is dismissed with Escape, and clear any
|
|
105
|
+
// stale Escape recorded before the dialog was opened.
|
|
106
|
+
this.beginReturnFocusTracking(returnCell);
|
|
100
107
|
let target = this.getTableRef();
|
|
101
108
|
const extensionContext = this.getTableExtensionContext();
|
|
102
109
|
let cells = [];
|
|
@@ -116,6 +123,11 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
116
123
|
this.storeCurrentFocusNode();
|
|
117
124
|
remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.popoverRef, VegaInternalPopoverUpdateTarget), target);
|
|
118
125
|
await this.popoverRef.show();
|
|
126
|
+
// When opened for keyboard/screen-reader users (a return cell is known), move focus into the
|
|
127
|
+
// dialog so it lands on the first focusable field (the Border Style control).
|
|
128
|
+
if (returnCell) {
|
|
129
|
+
this.focusFirstFormField(type);
|
|
130
|
+
}
|
|
119
131
|
}
|
|
120
132
|
/**
|
|
121
133
|
* hide the popover.
|
|
@@ -150,7 +162,11 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
150
162
|
if (this.popoverCloseType === 'change' && extensionContext) {
|
|
151
163
|
extensionContext.flushValue(extensionContext.host.value);
|
|
152
164
|
}
|
|
165
|
+
this.handleDialogHide();
|
|
153
166
|
});
|
|
167
|
+
// Escape inside the dialog (rendered in a portal) does not bubble back to the table, so
|
|
168
|
+
// observe it on the document (capture phase) to know when to return focus to the cell.
|
|
169
|
+
this.attachEscapeTracker(safeDocument);
|
|
154
170
|
const slotDiv = safeDocument.createElement('div');
|
|
155
171
|
slotDiv.setAttribute('slot', 'popover');
|
|
156
172
|
slotDiv.className = 'rte-table-dynamic-popover-content';
|
|
@@ -177,6 +193,28 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
177
193
|
return popover;
|
|
178
194
|
}
|
|
179
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Whether the given event originated inside the properties dialog subtree (either the table or the
|
|
198
|
+
* cell properties form).
|
|
199
|
+
*
|
|
200
|
+
* @param {Event} event - The event to test.
|
|
201
|
+
* @returns {boolean} `true` when an active form is rendered and the event's composed path includes it.
|
|
202
|
+
*/
|
|
203
|
+
isEventWithinPopover(event) {
|
|
204
|
+
const path = event.composedPath();
|
|
205
|
+
return ((!!this.tablePropertiesFormRef && path.includes(this.tablePropertiesFormRef)) ||
|
|
206
|
+
(!!this.cellPropertiesFormRef && path.includes(this.cellPropertiesFormRef)));
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Resolves the `.rich-text-content` editor root from the current table ref so the content can be
|
|
210
|
+
* made inert while the properties dialog holds keyboard/VoiceOver focus.
|
|
211
|
+
*
|
|
212
|
+
* @returns {Nullable<HTMLElement>} The editor content element, or `null` when it cannot be resolved.
|
|
213
|
+
*/
|
|
214
|
+
getInertContentTarget() {
|
|
215
|
+
var _a, _b, _c;
|
|
216
|
+
return (_c = (_b = (_a = this.getTableRef) === null || _a === void 0 ? void 0 : _a.call(this)) === null || _b === void 0 ? void 0 : _b.closest('.rich-text-content')) !== null && _c !== void 0 ? _c : null;
|
|
217
|
+
}
|
|
180
218
|
/**
|
|
181
219
|
* Updates the visibility of the pre-rendered content blocks based on type.
|
|
182
220
|
*
|
|
@@ -214,6 +252,48 @@ export class TableDynamicPopoverRenderer extends TablePopoverBaseRenderer {
|
|
|
214
252
|
const extensionContext = this.getTableExtensionContext();
|
|
215
253
|
extensionContext && (this.currentFocusNode = extensionContext.getSelectedNodes()[0]);
|
|
216
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Moves focus to the first focusable control in the active properties form so keyboard and
|
|
257
|
+
* screen-reader users land inside the dialog when it opens. The first form field is the Border
|
|
258
|
+
* Style select; its focusable trigger is the `.vega-input-select-container` element.
|
|
259
|
+
*
|
|
260
|
+
* @param {string} type - The table setting type that determines which form is visible.
|
|
261
|
+
*/
|
|
262
|
+
focusFirstFormField(type) {
|
|
263
|
+
const formRef = type === TableSettingType.TABLE ? this.tablePropertiesFormRef : this.cellPropertiesFormRef;
|
|
264
|
+
if (!formRef) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
// Make the editor content inert up front so the table/cell cannot steal focus while the dialog
|
|
268
|
+
// lays out. The cell form applies the selected cell's styles on open, whose async reset fires a
|
|
269
|
+
// selectionchange that would otherwise re-focus the cell before we reach Border Style. Inert also
|
|
270
|
+
// gives VoiceOver no cell-caret text context, so its cursor follows the focus. Lifted on hide.
|
|
271
|
+
this.setEditorContentInert(true);
|
|
272
|
+
// The CELL form applies the selected cell's styles on open (it sets both `styleMap` and
|
|
273
|
+
// `defaultValue`), a heavier re-render than TABLE, so on the first open its Border Style control is
|
|
274
|
+
// present but 0×0 for a frame. WebKit's VoiceOver cursor does not follow `.focus()` onto a
|
|
275
|
+
// zero-area element, so defer through a double animation frame: the first schedules past the
|
|
276
|
+
// popover's async reveal, the second runs after the browser has committed the layout pass that
|
|
277
|
+
// sizes the control.
|
|
278
|
+
requestAnimationFrame(() => {
|
|
279
|
+
requestAnimationFrame(() => {
|
|
280
|
+
var _a, _b, _c, _d, _e;
|
|
281
|
+
const firstField = (_b = (_a = formRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('[data-vega-form]')) !== null && _b !== void 0 ? _b : null;
|
|
282
|
+
const container = (_d = (_c = firstField === null || firstField === void 0 ? void 0 : firstField.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.vega-input-select-container')) !== null && _d !== void 0 ? _d : null;
|
|
283
|
+
(_e = (container !== null && container !== void 0 ? container : firstField)) === null || _e === void 0 ? void 0 : _e.focus();
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* When the properties dialog hides after an Escape press, returns focus (and the caret) to the
|
|
289
|
+
* table cell that had focus before the dialog was opened via the setting toolbar.
|
|
290
|
+
*/
|
|
291
|
+
handleDialogHide() {
|
|
292
|
+
// Lift the inert guard on the editor content synchronously, before any focus restore runs, so the
|
|
293
|
+
// cell can receive focus and the editor is interactive again.
|
|
294
|
+
this.setEditorContentInert(false);
|
|
295
|
+
this.restoreFocusOnEscapeHide();
|
|
296
|
+
}
|
|
217
297
|
/**
|
|
218
298
|
* Create and position an invisible anchor element whose position and size are identical to the geometry of the current multi-cell selection.
|
|
219
299
|
* This anchor element will then be used as the target of the popup, so that the popup appears near the entire selection area.
|
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
import RTEExtensionContextManager from '../../../helpers/extension-context-manager';
|
|
2
2
|
/**
|
|
3
3
|
* Base renderer for table-related popovers, providing common functionalities such as accessing the table extension context.
|
|
4
|
+
*
|
|
5
|
+
* Popovers that move keyboard/VoiceOver focus into themselves (the setting toolbar and the
|
|
6
|
+
* properties dialog) share the same focus-restoration machinery: they make the editor content
|
|
7
|
+
* `inert` while open, track Escape presses at the document level, and return focus (and the caret)
|
|
8
|
+
* to the originating cell when an Escape dismisses the popover. That behavior lives here so the two
|
|
9
|
+
* renderers do not each carry a copy; subclasses only supply the two pieces that differ — how to
|
|
10
|
+
* resolve the editor content root ({@link getInertContentTarget}) and how to tell whether an event
|
|
11
|
+
* originated inside their own popover subtree ({@link isEventWithinPopover}).
|
|
4
12
|
*/
|
|
5
13
|
export class TablePopoverBaseRenderer {
|
|
6
14
|
constructor(renderContext) {
|
|
15
|
+
/** The editor content element made inert while the popover holds focus, cached so it can be restored. */
|
|
16
|
+
this.inertedContentEl = null;
|
|
17
|
+
/** The table cell to return focus to when the popover is dismissed via Escape. */
|
|
18
|
+
this.returnFocusCell = null;
|
|
19
|
+
/** Tracks whether Escape was pressed while the popover was open. */
|
|
20
|
+
this.escapePressed = false;
|
|
21
|
+
/** Document the Escape tracker keydown listener is bound to, for later removal. */
|
|
22
|
+
this.keydownListenerDocument = null;
|
|
23
|
+
/**
|
|
24
|
+
* Tracks Escape key presses that originate inside the popover so focus can be returned to the
|
|
25
|
+
* originating cell when that Escape dismisses the popover. vega-popover's own Escape handler hides
|
|
26
|
+
* the popover without restoring focus, so the restore is coordinated here.
|
|
27
|
+
*
|
|
28
|
+
* The listener is bound at the document level (the popover renders in a portal, so its Escape does
|
|
29
|
+
* not bubble back to the table), so scope it to the popover subtree via {@link isEventWithinPopover}:
|
|
30
|
+
* a stray Escape elsewhere must not arm the restore and hijack focus on a later non-Escape dismissal
|
|
31
|
+
* (e.g. click-outside).
|
|
32
|
+
*
|
|
33
|
+
* @param {KeyboardEvent} event - The keydown event.
|
|
34
|
+
*/
|
|
35
|
+
this.handleDocumentKeydown = (event) => {
|
|
36
|
+
if (event.code === 'Escape' && this.isEventWithinPopover(event)) {
|
|
37
|
+
this.escapePressed = true;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
7
40
|
this.renderContext = renderContext;
|
|
8
41
|
}
|
|
9
42
|
/**
|
|
@@ -16,4 +49,119 @@ export class TablePopoverBaseRenderer {
|
|
|
16
49
|
? RTEExtensionContextManager.getExtensionContext(this.renderContext.host)
|
|
17
50
|
: null;
|
|
18
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Begins tracking so a later Escape can return focus to `returnCell`. Records the cell and clears
|
|
54
|
+
* any stale Escape observed before the popover was opened.
|
|
55
|
+
*
|
|
56
|
+
* @param {Nullable<HTMLElement>} returnCell - The cell to return focus to if the popover is dismissed with Escape.
|
|
57
|
+
*/
|
|
58
|
+
beginReturnFocusTracking(returnCell) {
|
|
59
|
+
this.returnFocusCell = returnCell !== null && returnCell !== void 0 ? returnCell : null;
|
|
60
|
+
this.escapePressed = false;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Registers the document-level (capture phase) Escape tracker. The popover renders in a portal, so
|
|
64
|
+
* its Escape does not bubble back to the table; observing on the document lets us know when to
|
|
65
|
+
* return focus to the cell.
|
|
66
|
+
*
|
|
67
|
+
* @param {Document} doc - The document to bind the keydown listener to.
|
|
68
|
+
*/
|
|
69
|
+
attachEscapeTracker(doc) {
|
|
70
|
+
doc.addEventListener('keydown', this.handleDocumentKeydown, { capture: true });
|
|
71
|
+
this.keydownListenerDocument = doc;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Removes the document-level Escape tracker if one was registered.
|
|
75
|
+
*/
|
|
76
|
+
detachEscapeTracker() {
|
|
77
|
+
if (this.keydownListenerDocument) {
|
|
78
|
+
this.keydownListenerDocument.removeEventListener('keydown', this.handleDocumentKeydown, {
|
|
79
|
+
capture: true,
|
|
80
|
+
});
|
|
81
|
+
this.keydownListenerDocument = null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Whether the given event originated inside this popover's subtree. Subclasses override this to
|
|
86
|
+
* match their own portal-rendered content; the base returns `false` so renderers that do not move
|
|
87
|
+
* focus never arm the restore.
|
|
88
|
+
*
|
|
89
|
+
* @param {Event} _event - The event to test.
|
|
90
|
+
* @returns {boolean} `true` when the event originated inside the popover subtree.
|
|
91
|
+
*/
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
93
|
+
isEventWithinPopover(_event) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* When the popover hides after an Escape press, returns focus (and the caret) to the table cell
|
|
98
|
+
* that had focus before the popover was opened.
|
|
99
|
+
*
|
|
100
|
+
* vegaPopoverHide fires synchronously from the popover's own Escape handler, before the
|
|
101
|
+
* document-capture keydown observes the key and before the popover settles focus on `<body>`.
|
|
102
|
+
* Defer past that so the flag is set and this focus restore wins.
|
|
103
|
+
*/
|
|
104
|
+
restoreFocusOnEscapeHide() {
|
|
105
|
+
// eslint-disable-next-line no-restricted-globals
|
|
106
|
+
setTimeout(() => {
|
|
107
|
+
const shouldRestore = this.escapePressed;
|
|
108
|
+
const cell = this.returnFocusCell;
|
|
109
|
+
this.escapePressed = false;
|
|
110
|
+
this.returnFocusCell = null;
|
|
111
|
+
if (shouldRestore && cell && cell.isConnected) {
|
|
112
|
+
this.restoreFocusToCell(cell);
|
|
113
|
+
}
|
|
114
|
+
}, 0);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Focuses the given table cell and collapses the caret at its start.
|
|
118
|
+
*
|
|
119
|
+
* @param {HTMLElement} cell - The table cell to focus.
|
|
120
|
+
*/
|
|
121
|
+
restoreFocusToCell(cell) {
|
|
122
|
+
var _a, _b, _c;
|
|
123
|
+
cell.focus();
|
|
124
|
+
const extensionContext = this.getTableExtensionContext();
|
|
125
|
+
const selection = (_c = (_a = extensionContext === null || extensionContext === void 0 ? void 0 : extensionContext.getSelection()) !== null && _a !== void 0 ? _a : (_b = cell.ownerDocument) === null || _b === void 0 ? void 0 : _b.getSelection()) !== null && _c !== void 0 ? _c : null;
|
|
126
|
+
if (selection) {
|
|
127
|
+
const range = new Range();
|
|
128
|
+
range.setStart(cell, 0);
|
|
129
|
+
range.setEnd(cell, 0);
|
|
130
|
+
selection.removeAllRanges();
|
|
131
|
+
selection.addRange(range);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Resolves the `.rich-text-content` editor root to toggle `inert` on while the popover holds focus.
|
|
136
|
+
* Subclasses override this because they reach the content from different anchors (the toolbar's
|
|
137
|
+
* target vs. the current table ref); the base returns `null` so renderers that do not use inert are
|
|
138
|
+
* unaffected.
|
|
139
|
+
*
|
|
140
|
+
* @returns {Nullable<HTMLElement>} The editor content element, or `null` when it cannot be resolved.
|
|
141
|
+
*/
|
|
142
|
+
getInertContentTarget() {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Toggles `inert` on the editor content region while the popover holds keyboard/VoiceOver focus.
|
|
147
|
+
* Safari VoiceOver keeps its reading cursor anchored to the cell caret and does not follow the
|
|
148
|
+
* programmatic focus moved into the popover; making the editor content inert removes that text
|
|
149
|
+
* context so the VoiceOver cursor lands inside the popover. The popover is a body-level portal, so it
|
|
150
|
+
* is not a descendant of the inert content and stays interactive.
|
|
151
|
+
*
|
|
152
|
+
* @param {boolean} inert - Whether the editor content should be inert.
|
|
153
|
+
*/
|
|
154
|
+
setEditorContentInert(inert) {
|
|
155
|
+
if (inert) {
|
|
156
|
+
const content = this.getInertContentTarget();
|
|
157
|
+
if (content) {
|
|
158
|
+
content.setAttribute('inert', '');
|
|
159
|
+
this.inertedContentEl = content;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else if (this.inertedContentEl) {
|
|
163
|
+
this.inertedContentEl.removeAttribute('inert');
|
|
164
|
+
this.inertedContentEl = null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
19
167
|
}
|
|
@@ -15,7 +15,7 @@ export class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
|
|
|
15
15
|
*/
|
|
16
16
|
doRender(h, renderData, rteContext) {
|
|
17
17
|
let tableRef;
|
|
18
|
-
const table = this.renderTable(h, renderData, (ref) => (tableRef = ref));
|
|
18
|
+
const table = this.renderTable(h, renderData, (ref) => (tableRef = ref), rteContext);
|
|
19
19
|
this.renderTableToolbar(rteContext);
|
|
20
20
|
const tableAnnotation = renderData.getAnnotationByType(RTETableExtensionAnnotationTypeEnum.TABLE);
|
|
21
21
|
const children = rteContext.editable
|
|
@@ -39,9 +39,16 @@ export class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
|
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
}, [
|
|
42
|
-
//
|
|
42
|
+
// The table is a fully non-editable "widget" wrapped by a
|
|
43
|
+
// `<div contenteditable="false">`: there is NO editable element wrapping the
|
|
44
|
+
// table, so Chrome/VoiceOver exposes it as a real table ("table, N columns, M
|
|
45
|
+
// rows") instead of flattening it into the surrounding text entry area. The
|
|
46
|
+
// <table> stays a plain, semantically clean table and each cell re-enables editing
|
|
47
|
+
// via contentEditable=true. The cursor moves to before/after the table via the
|
|
48
|
+
// adjacent paragraphs in the editor content, treating the table as an atomic widget.
|
|
43
49
|
h('div', {
|
|
44
|
-
|
|
50
|
+
class: 'v-rte--extension-table-widget',
|
|
51
|
+
contentEditable: false,
|
|
45
52
|
ref: this.useRef(renderData),
|
|
46
53
|
}, [table]),
|
|
47
54
|
]),
|
|
@@ -55,6 +62,11 @@ export class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
|
|
|
55
62
|
}
|
|
56
63
|
const result = h('div', {
|
|
57
64
|
class: 'v-rte--extension-table-container',
|
|
65
|
+
// The container is `display: table` (for shrink-to-fit centering), which WebKit maps to an
|
|
66
|
+
// AXTable. Without this, Safari VoiceOver lands its cursor on the container (or groups up to
|
|
67
|
+
// the widget host) instead of the real `<table>`. `role="presentation"` strips the container's
|
|
68
|
+
// implicit table semantics so VO descends to `table.v-rte--extension-table` like Chrome does.
|
|
69
|
+
role: 'presentation',
|
|
58
70
|
style: Object.assign({}, containerStyle),
|
|
59
71
|
}, children);
|
|
60
72
|
/**
|
|
@@ -83,17 +95,151 @@ export class RTETableBlockRenderer extends VegaRTEExtensionRenderer {
|
|
|
83
95
|
* @param {VegaRTECreateElementFunction} h - The create element function.
|
|
84
96
|
* @param {RTETableBlock} renderData - The table block to render.
|
|
85
97
|
* @param {(ref: HTMLElement) => HTMLElement} setTableRef - Set table ref to tableRef
|
|
98
|
+
* @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
|
|
86
99
|
* @returns {VegaRTERenderResult} - The rendered table element.
|
|
87
100
|
*/
|
|
88
|
-
renderTable(h, renderData, setTableRef) {
|
|
101
|
+
renderTable(h, renderData, setTableRef, rteContext) {
|
|
89
102
|
var _a;
|
|
90
|
-
|
|
103
|
+
const editable = !!rteContext.editable;
|
|
104
|
+
return h('table', Object.assign(Object.assign(Object.assign(Object.assign({ key: renderData.id }, (_a = renderData.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.render()), { style: renderData.getStyles(), class: renderData.getClasses() }), (editable
|
|
105
|
+
? {
|
|
106
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
107
|
+
onClick: (event) => this.handleTableActivate(event, rteContext),
|
|
108
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
109
|
+
onKeyDown: (event) => this.handleTableKeyDown(event, rteContext, renderData),
|
|
110
|
+
}
|
|
111
|
+
: undefined)), {
|
|
91
112
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
92
113
|
ref: (ref) => {
|
|
93
114
|
this.useRef(renderData)(ref);
|
|
94
115
|
setTableRef(ref);
|
|
95
116
|
} }));
|
|
96
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Handles activation of the table itself (e.g. VoiceOver Ctrl+Option+Space, which dispatches a
|
|
120
|
+
* click on the focused table) by moving focus into the first cell so the user can start editing.
|
|
121
|
+
*
|
|
122
|
+
* @param {MouseEvent} event - The click event dispatched on the table.
|
|
123
|
+
* @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
|
|
124
|
+
*/
|
|
125
|
+
handleTableActivate(event, rteContext) {
|
|
126
|
+
const tableRef = event.currentTarget;
|
|
127
|
+
// Only treat this as "activate the table" when the click truly targets the table element
|
|
128
|
+
// itself — i.e. VoiceOver Ctrl+Option+Space (which dispatches a click on the focused table)
|
|
129
|
+
// or a click on the table's own padding/border. Clicks that bubble up from editable
|
|
130
|
+
// descendants (cells, or the supported <caption>) keep their native contentEditable caret
|
|
131
|
+
// placement, so we must not force focus into the first cell and break that interaction.
|
|
132
|
+
if (event.target !== event.currentTarget) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
this.focusFirstCell(tableRef, rteContext);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Handles table-scoped keyboard shortcuts while focus is inside the table:
|
|
139
|
+
* - Alt+F10 opens the table setting toolbar (re-targeting and showing it when needed) and moves
|
|
140
|
+
* focus to it (the common "focus the contextual toolbar" shortcut), so keyboard/screen-reader
|
|
141
|
+
* users can reach the toolbar buttons even when it is currently closed.
|
|
142
|
+
* - Escape moves focus back onto the table, so the caret leaves the cell (its focus highlight
|
|
143
|
+
* is cleared), the contextual setting toolbar is dismissed, and screen readers announce the
|
|
144
|
+
* table again.
|
|
145
|
+
*
|
|
146
|
+
* @param {KeyboardEvent} event - The keydown event.
|
|
147
|
+
* @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
|
|
148
|
+
* @param {RTETableBlock} renderData - The table block being rendered.
|
|
149
|
+
*/
|
|
150
|
+
handleTableKeyDown(event, rteContext, renderData) {
|
|
151
|
+
var _a, _b;
|
|
152
|
+
if (event.altKey && event.key === 'F10') {
|
|
153
|
+
event.preventDefault();
|
|
154
|
+
event.stopPropagation();
|
|
155
|
+
const tableRef = event.currentTarget;
|
|
156
|
+
const f10Target = event.target;
|
|
157
|
+
const f10Cell = f10Target
|
|
158
|
+
? f10Target.closest('td, th')
|
|
159
|
+
: null;
|
|
160
|
+
(_a = this.tableToolbar) === null || _a === void 0 ? void 0 : _a.openSettingToolbarForKeyboard(renderData, () => tableRef, f10Cell);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (event.key !== 'Escape') {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const tableRef = event.currentTarget;
|
|
167
|
+
const target = event.target;
|
|
168
|
+
const cell = target
|
|
169
|
+
? target.closest('td, th')
|
|
170
|
+
: null;
|
|
171
|
+
if (!cell || !tableRef.contains(cell)) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
event.preventDefault();
|
|
175
|
+
event.stopPropagation();
|
|
176
|
+
this.focusTable(tableRef, rteContext);
|
|
177
|
+
// Focus moved from the cell back onto the table, so dismiss the contextual setting toolbar
|
|
178
|
+
// that may have been opened (e.g. by activating the table) — otherwise it lingers with no
|
|
179
|
+
// focused cell to act on.
|
|
180
|
+
(_b = this.tableToolbar) === null || _b === void 0 ? void 0 : _b.hide();
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Moves focus (and the caret) into the first cell of the table.
|
|
184
|
+
*
|
|
185
|
+
* @param {HTMLElement} tableRef - The table element.
|
|
186
|
+
* @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
|
|
187
|
+
*/
|
|
188
|
+
focusFirstCell(tableRef, rteContext) {
|
|
189
|
+
const firstCell = tableRef.querySelector('td, th');
|
|
190
|
+
if (!firstCell) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
firstCell.focus();
|
|
194
|
+
const selection = this.getSelection(rteContext, tableRef);
|
|
195
|
+
if (selection) {
|
|
196
|
+
// Collapse the caret at the start of the cell content so the user can start typing.
|
|
197
|
+
const range = new Range();
|
|
198
|
+
range.setStart(firstCell, 0);
|
|
199
|
+
range.setEnd(firstCell, 0);
|
|
200
|
+
selection.removeAllRanges();
|
|
201
|
+
selection.addRange(range);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Moves focus onto the table element and clears any cell caret and selection highlight.
|
|
206
|
+
*
|
|
207
|
+
* @param {HTMLElement} tableRef - The table element.
|
|
208
|
+
* @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
|
|
209
|
+
*/
|
|
210
|
+
focusTable(tableRef, rteContext) {
|
|
211
|
+
var _a;
|
|
212
|
+
const selection = this.getSelection(rteContext, tableRef);
|
|
213
|
+
selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();
|
|
214
|
+
const extensionContext = this.getExtensionContext(rteContext.host);
|
|
215
|
+
(_a = extensionContext === null || extensionContext === void 0 ? void 0 : extensionContext.tableSelection) === null || _a === void 0 ? void 0 : _a.setSelectedCells([]);
|
|
216
|
+
// The table is contentEditable=false, so it is not focusable by default. Add tabindex ONLY
|
|
217
|
+
// while moving focus onto it, and remove it again on blur, so that during normal navigation
|
|
218
|
+
// VoiceOver still announces it as "table, N columns, M rows" rather than a focusable widget.
|
|
219
|
+
tableRef.setAttribute('tabindex', '-1');
|
|
220
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
221
|
+
const removeTabindex = () => {
|
|
222
|
+
tableRef.removeAttribute('tabindex');
|
|
223
|
+
tableRef.removeEventListener('blur', removeTabindex);
|
|
224
|
+
};
|
|
225
|
+
tableRef.addEventListener('blur', removeTabindex);
|
|
226
|
+
tableRef.focus();
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Resolves the editor selection, preferring the shadow-aware selection from the extension
|
|
230
|
+
* context and falling back to the table's owning document.
|
|
231
|
+
*
|
|
232
|
+
* @param {RTERenderContext} rteContext - The rendering context of the rich text editor.
|
|
233
|
+
* @param {HTMLElement} tableRef - The table element.
|
|
234
|
+
* @returns {Nullable<Selection>} - The resolved selection, or null when unavailable.
|
|
235
|
+
*/
|
|
236
|
+
getSelection(rteContext, tableRef) {
|
|
237
|
+
const extensionContext = this.getExtensionContext(rteContext.host);
|
|
238
|
+
if (extensionContext) {
|
|
239
|
+
return extensionContext.getSelection();
|
|
240
|
+
}
|
|
241
|
+
return tableRef.ownerDocument ? tableRef.ownerDocument.getSelection() : null;
|
|
242
|
+
}
|
|
97
243
|
/**
|
|
98
244
|
* Handles the removal of the table block.
|
|
99
245
|
*
|