@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
|
@@ -1,51 +1,52 @@
|
|
|
1
|
-
import { h,
|
|
1
|
+
import { h, f as forceUpdate, H as Host, F as Fragment, r as registerInstance, c as createEvent, g as getElement } from './index-090d31ca.js';
|
|
2
2
|
import { c as MapToComponentField, M as MapToComponentMethod, V as VegaSlimmer, I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
|
|
3
3
|
import { V as VegaComponentUsageRuntimeMetricsSlimmer, I as InjectVegaGlobalSlimmer } from './component-usage-runtime-metrics-4b1afd04.js';
|
|
4
4
|
import { s as sanitizeVegaComponent } from './component-7d906393.js';
|
|
5
|
-
import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-
|
|
5
|
+
import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-c899a968.js';
|
|
6
6
|
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
7
|
-
import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-
|
|
7
|
+
import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-bb7e68a0.js';
|
|
8
8
|
import { t as VegaInternalComponentDidRender, e as VegaInternalRichTextEditorFlushChanges, d as VegaInternalRichTextEditDeleteSelectedNodes, H as VegaInternalRichTextImageClick, I as VegaInternalRichTextImageDeleteButtonClicked, z as VegaInternalCodeBlockBlur, a as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-86fce049.js';
|
|
9
9
|
import { S as SHADOW_ROOT_ELEMENT_SCROLLING, F as FORM_ELEMENT_VALUE_CHANGE } from './static-subject-title-1c86e974.js';
|
|
10
|
-
import { ah as VegaRTEOneRowHeightPx, R as RTETextNode,
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
10
|
+
import { ah as ZERO_WIDTH_SPACE, am as VegaRTEOneRowHeightPx, R as RTETextNode, an as BoldAnnotationAction, N as NodeAnnotationTypeEnum, ao as ItalicAnnotationAction, ap as UnderlineAnnotationAction, b as RTETextBlock, aq as TextStyleAnnotationAction, a2 as TextStyleAnnotation, ar as BoldAnnotation, as as BlockAnnotationTypeEnum, at as ClearFormattingAnnotationAction, au as CodeAnnotationAction, av as StrikethroughAnnotationAction, ak as SelectionChangeAction, ai as LinkAnnotationAction, aw as IndentAnnotationAction, M as ModifyContentAction, j as ModifyContentActionType, r as RTEListItemBlock, a3 as RTEHtmlBlock, ax as TransformParagraphAction, t as RTECodeBlockNode, A as ActionHandleStrategyRegistry, J as HorizontalAlignmentAnnotationAction, ay as RTEUpdateSource, s as stateEntityRenderingRegistry, f as AppendChildrenAction, U as UpdateTextAction, h as InsertChildrenBeforeAction, S as SplitBlockWithNodeAction, g as RTENode, a as RTEBlock, l as RemoveChildrenAction, E as ReplaceChildNodesAction, az as escapeHtml, w as RTE_PASTE_MODE_DATA_TYPE, aA as RTE_PASTE_MODE_WORD, q as RTECodeBlock, aB as RTE_UPDATE_SOURCE_KEY, I as InsertChildrenAfterAction, x as RTE_WORD_COUNT_KEY, V as VegaRTEPresetToolbarItems, ag as VegaRTEDefaultTextStyleItems, aC as RTE_EMAIL_LINK_TYPE_KEY, aD as RTE_DEFAULT_LINK_TYPE_KEY, aE as RTE_SUPPORTED_LINK_TYPE_KEYS } from './code-block-741d6b8e.js';
|
|
11
|
+
import { i as isNonNullable } from './type-guard-26d83e7e.js';
|
|
12
|
+
import { R as RTEDTORendererManager, e as extensionContextManager, V as VegaRTELinkExtension } from './link-extension-e89acb5c.js';
|
|
13
13
|
import { V as VegaInternalIconManager } from './internal-icon-manager-e7c57096.js';
|
|
14
|
-
import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as ToolbarButtonSlimmer, T as TextColorToolbarButtonSlimmer, n as normalizeUrlByDefaultProtocol } from './image-annotation-action-
|
|
14
|
+
import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as ToolbarButtonSlimmer, T as TextColorToolbarButtonSlimmer, n as normalizeUrlByDefaultProtocol } from './image-annotation-action-972c1074.js';
|
|
15
15
|
import { V as VegaDropdownClick, d as VegaChange, a as VegaClick, a0 as VegaImageInserted, a1 as VegaSourceCodeChange, c as VegaPopoverShow, b as VegaPopoverHide } from './vega-event-id-f55f6977.js';
|
|
16
16
|
import { g as generateUUID } from './misc-9fdbcfbb.js';
|
|
17
|
-
import { w as waitForComponentDidRender } from './wait-for-component-did-render-
|
|
18
|
-
import { V as VegaRTEImageExtension, R as ReplaceSelectedTextAction } from './image-extension-
|
|
19
|
-
import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-
|
|
20
|
-
import { c as createEventEmitSlimmer } from './event-emit-slimmer-
|
|
21
|
-
import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-
|
|
22
|
-
import { V as VegaRTEContent,
|
|
17
|
+
import { w as waitForComponentDidRender } from './wait-for-component-did-render-9b91a826.js';
|
|
18
|
+
import { V as VegaRTEImageExtension, R as ReplaceSelectedTextAction } from './image-extension-59484e9a.js';
|
|
19
|
+
import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-02165dbe.js';
|
|
20
|
+
import { c as createEventEmitSlimmer } from './event-emit-slimmer-e8bb2292.js';
|
|
21
|
+
import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-e306c849.js';
|
|
22
|
+
import { V as VegaRTEContent, b as RTEImageNode, f as CommitValueAction, M as MergeTwoBlocksNodesAction, I as InsertNewParagraphAction, S as StylePreservator, g as ElementToDtoStrategyProcessor, R as RTEImageBlock } from './content-state-2f6f4204.js';
|
|
23
23
|
import { b as AlignLeft, A as AlignCenter, c as AlignRight, a as AlignJustify } from './align-left-7f959adf.js';
|
|
24
|
-
import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-
|
|
24
|
+
import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-2bcd749e.js';
|
|
25
25
|
import { O as Observer } from './observer-3959f9dd.js';
|
|
26
26
|
import { d as debounce } from './timer-9321173b.js';
|
|
27
27
|
import { D as DarkModeStateControllerSlimmer } from './dark-mode-state-controller-slimmer-778dd929.js';
|
|
28
|
-
import { f as findParent } from './ui-
|
|
29
|
-
import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-
|
|
28
|
+
import { f as findParent, b as getDeepActiveElementInShadow, j as checkIsVoiceOverClick, k as getFirstFocusableElement } from './ui-80e610f4.js';
|
|
29
|
+
import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-878e91c6.js';
|
|
30
30
|
import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-82626871.js';
|
|
31
|
-
import { T as TranslationSlimmer } from './translation-slimmer-
|
|
32
|
-
import { V as VegaInternalThemeManager } from './dark-mode-style-controller-
|
|
31
|
+
import { T as TranslationSlimmer } from './translation-slimmer-77022f2e.js';
|
|
32
|
+
import { V as VegaInternalThemeManager } from './dark-mode-style-controller-352f15ff.js';
|
|
33
33
|
import { A as AutoRunWhenReRenderTaskQueueSlimmer } from './auto-run-when-re-render-task-queue-slimmer.abstract-27820d4c.js';
|
|
34
34
|
import { i as isArrayEqual } from './array-7888f339.js';
|
|
35
|
+
import { d as deepEqual } from './object-0c277f57.js';
|
|
36
|
+
import { A as AriaAttributesValueMapper } from './aria-attributes-value-mapper-a5c7478e.js';
|
|
35
37
|
import { c as chevronDown } from './chevron-down-4a75d28e.js';
|
|
36
38
|
import { c as chevronUp } from './chevron-up-b1989751.js';
|
|
37
39
|
import { t as trashCan } from './trash-can-8819a939.js';
|
|
38
40
|
import { r as remoteInvocationRegistry } from './remote-invocation-registry-d69245c2.js';
|
|
39
41
|
import './string-a953eafc.js';
|
|
40
42
|
import './typography-19c3b9be.js';
|
|
41
|
-
import './object-0c277f57.js';
|
|
42
43
|
import './breakpoints-d9faf11c.js';
|
|
43
44
|
import './ui-93922c59.js';
|
|
44
|
-
import './internal-translation-controller-
|
|
45
|
+
import './internal-translation-controller-fff376d2.js';
|
|
45
46
|
import './icon-manager-4ef3f6dd.js';
|
|
46
47
|
import './create-public-api-runtime-metrics-slimmer-48f85199.js';
|
|
47
48
|
import './dynamic-slimmer-90b8af32.js';
|
|
48
|
-
import './index-
|
|
49
|
+
import './index-35451d12.js';
|
|
49
50
|
import './try-get-document-bef0f526.js';
|
|
50
51
|
import './page-resize-observer-slimmer-e24d36c5.js';
|
|
51
52
|
import './breakpoints-332702ed.js';
|
|
@@ -53,11 +54,11 @@ import './internal-form-field-validation-rule.abstract-f5b6bdbf.js';
|
|
|
53
54
|
import './form-field-key-44ab39d0.js';
|
|
54
55
|
import './mutation-observer-slimmer-58ebc13c.js';
|
|
55
56
|
import './mutation-observer-filters-1a054fb0.js';
|
|
56
|
-
import './sub-state-observer-slimmer-
|
|
57
|
+
import './sub-state-observer-slimmer-bd85f381.js';
|
|
57
58
|
import './internal-vega-event-manager-2ecc9186.js';
|
|
58
|
-
import './range-
|
|
59
|
-
import './keyboard-manager-slimmer-
|
|
60
|
-
import './keyboard-manager-
|
|
59
|
+
import './range-c818a1eb.js';
|
|
60
|
+
import './keyboard-manager-slimmer-133b86cd.js';
|
|
61
|
+
import './keyboard-manager-a58288df.js';
|
|
61
62
|
import './vega-env-manager-8f8dc473.js';
|
|
62
63
|
import './feature-flag-controller-3fd04ea9.js';
|
|
63
64
|
import './index-9c9865c0.js';
|
|
@@ -66,7 +67,7 @@ import './vega-nonce-manager-497e5eb5.js';
|
|
|
66
67
|
import './synchronize-task-queue-ac8acc3b.js';
|
|
67
68
|
import './number-4398f2e1.js';
|
|
68
69
|
|
|
69
|
-
var __decorate$
|
|
70
|
+
var __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
70
71
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
71
72
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
72
73
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -87,11 +88,21 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
|
|
|
87
88
|
const containerStyle = this.rows !== undefined
|
|
88
89
|
? { height: this.rows >= 2 ? `${this.rows * VegaRTEOneRowHeightPx}px` : defaultHeight }
|
|
89
90
|
: { minHeight: defaultHeight };
|
|
90
|
-
return (
|
|
91
|
+
return (
|
|
92
|
+
// This container delegates focus to the inner <vega-rich-text-content> editor when
|
|
93
|
+
// clicking anywhere in the editing area. It is a layout wrapper, not an interactive
|
|
94
|
+
// widget, so giving it a widget role (e.g. `textbox`) would expose a second,
|
|
95
|
+
// non-editable textbox that traps VoiceOver focus and prevents typing.
|
|
96
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
97
|
+
h("div", { class: {
|
|
91
98
|
'rich-text-editor-container': true,
|
|
92
99
|
'disabled': this.disabled,
|
|
93
100
|
'vega-hidden': this.sourceView,
|
|
94
|
-
}, style: containerStyle, onClick: this.richTextContentFocus,
|
|
101
|
+
}, style: containerStyle, onClick: this.richTextContentFocus,
|
|
102
|
+
// Keep this wrapper out of the tab order so AT lands directly on the inner text
|
|
103
|
+
// region (focusable via contenteditable when enabled, via tabindex when disabled)
|
|
104
|
+
// rather than announcing this generic wrapper as a group.
|
|
105
|
+
tabIndex: -1, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
|
|
95
106
|
h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value, extensions: this.extensions, onScroll: this.notifyContentScrolling }),
|
|
96
107
|
this.renderCharacterCounter()));
|
|
97
108
|
};
|
|
@@ -105,12 +116,20 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
|
|
|
105
116
|
});
|
|
106
117
|
};
|
|
107
118
|
this.renderCharacterCounter = () => {
|
|
119
|
+
if (!this.wordCountController.shouldShowUI()) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
// The word count extension is registered, so the data is guaranteed to be non-null.
|
|
123
|
+
const data = this.wordCountController.getData();
|
|
124
|
+
const isSetMaxChars = isNonNullable(data.maxChars);
|
|
108
125
|
return (h("div", { class: {
|
|
109
126
|
'text-editor-counter': true,
|
|
110
|
-
'counter-exceed-max-length':
|
|
111
|
-
}
|
|
112
|
-
h("span", null,
|
|
113
|
-
h("span", null,
|
|
127
|
+
'counter-exceed-max-length': isSetMaxChars && data.count > data.maxChars,
|
|
128
|
+
} },
|
|
129
|
+
h("span", null, data.count),
|
|
130
|
+
isSetMaxChars && h("span", null,
|
|
131
|
+
"/",
|
|
132
|
+
data.maxChars)));
|
|
114
133
|
};
|
|
115
134
|
this.renderErrorMessage = () => {
|
|
116
135
|
return h("div", { class: "vega-error vega-hidden" });
|
|
@@ -159,6 +178,35 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
|
|
|
159
178
|
return this.richTextContentRef.shadowRoot.querySelector('.rich-text-content');
|
|
160
179
|
}
|
|
161
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Re-injects the zero-width space placeholder into empty text spans.
|
|
183
|
+
* When a commit is rejected and the model rolls back unchanged, the framework
|
|
184
|
+
* short-circuits the text diff and leaves the span empty, collapsing the line
|
|
185
|
+
* height, so the placeholder is restored here.
|
|
186
|
+
*/
|
|
187
|
+
restoreEmptyTextPlaceholders() {
|
|
188
|
+
const editableElement = this.getRTEEditableElementRef();
|
|
189
|
+
if (!editableElement) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
// The text node will only be rendered as a span and a code.
|
|
193
|
+
editableElement.querySelectorAll('span:empty, code:empty').forEach((element) => {
|
|
194
|
+
const textNode = element.firstChild;
|
|
195
|
+
if (textNode && textNode.nodeType === Node.TEXT_NODE) {
|
|
196
|
+
// Reuse the existing text node, `textContent` would swap in a new one and leave the framework patching a detached node.
|
|
197
|
+
textNode.nodeValue = ZERO_WIDTH_SPACE;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
element.textContent = ZERO_WIDTH_SPACE;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Forces a re-render of the rich text content component, which is useful when the content has changed but the framework has not detected it.
|
|
206
|
+
*/
|
|
207
|
+
forceContentRepaint() {
|
|
208
|
+
forceUpdate(this.richTextContentRef);
|
|
209
|
+
}
|
|
162
210
|
render() {
|
|
163
211
|
return h(Host, null, this.renderRichTextEditor());
|
|
164
212
|
}
|
|
@@ -179,59 +227,62 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
|
|
|
179
227
|
this.richTextEditorSourceViewRenderer.render()));
|
|
180
228
|
}
|
|
181
229
|
}
|
|
182
|
-
__decorate$
|
|
230
|
+
__decorate$I([
|
|
183
231
|
MapToComponentField()
|
|
184
232
|
], VegaRichTextEditorRenderer.prototype, "host", void 0);
|
|
185
|
-
__decorate$
|
|
233
|
+
__decorate$I([
|
|
186
234
|
MapToComponentField()
|
|
187
235
|
], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
|
|
188
|
-
__decorate$
|
|
236
|
+
__decorate$I([
|
|
189
237
|
MapToComponentField()
|
|
190
238
|
], VegaRichTextEditorRenderer.prototype, "label", void 0);
|
|
191
|
-
__decorate$
|
|
239
|
+
__decorate$I([
|
|
192
240
|
MapToComponentField()
|
|
193
241
|
], VegaRichTextEditorRenderer.prototype, "required", void 0);
|
|
194
|
-
__decorate$
|
|
242
|
+
__decorate$I([
|
|
195
243
|
MapToComponentField()
|
|
196
244
|
], VegaRichTextEditorRenderer.prototype, "optional", void 0);
|
|
197
|
-
__decorate$
|
|
245
|
+
__decorate$I([
|
|
198
246
|
MapToComponentField()
|
|
199
247
|
], VegaRichTextEditorRenderer.prototype, "hint", void 0);
|
|
200
|
-
__decorate$
|
|
248
|
+
__decorate$I([
|
|
201
249
|
MapToComponentField()
|
|
202
250
|
], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
|
|
203
|
-
__decorate$
|
|
251
|
+
__decorate$I([
|
|
204
252
|
MapToComponentField()
|
|
205
253
|
], VegaRichTextEditorRenderer.prototype, "rows", void 0);
|
|
206
|
-
__decorate$
|
|
254
|
+
__decorate$I([
|
|
207
255
|
MapToComponentField()
|
|
208
256
|
], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
|
|
209
|
-
__decorate$
|
|
257
|
+
__decorate$I([
|
|
210
258
|
MapToComponentField()
|
|
211
259
|
], VegaRichTextEditorRenderer.prototype, "value", void 0);
|
|
212
|
-
__decorate$
|
|
260
|
+
__decorate$I([
|
|
213
261
|
MapToComponentField()
|
|
214
262
|
], VegaRichTextEditorRenderer.prototype, "sourceView", void 0);
|
|
215
|
-
__decorate$
|
|
263
|
+
__decorate$I([
|
|
216
264
|
MapToComponentField()
|
|
217
265
|
], VegaRichTextEditorRenderer.prototype, "toolbarItems", void 0);
|
|
218
|
-
__decorate$
|
|
266
|
+
__decorate$I([
|
|
219
267
|
MapToComponentField()
|
|
220
268
|
], VegaRichTextEditorRenderer.prototype, "sourceEditConfig", void 0);
|
|
221
|
-
__decorate$
|
|
269
|
+
__decorate$I([
|
|
222
270
|
MapToComponentField()
|
|
223
271
|
], VegaRichTextEditorRenderer.prototype, "allowSourceEdit", void 0);
|
|
224
|
-
__decorate$
|
|
272
|
+
__decorate$I([
|
|
225
273
|
MapToComponentField()
|
|
226
274
|
], VegaRichTextEditorRenderer.prototype, "extensions", void 0);
|
|
227
|
-
__decorate$
|
|
275
|
+
__decorate$I([
|
|
276
|
+
MapToComponentField()
|
|
277
|
+
], VegaRichTextEditorRenderer.prototype, "wordCountController", void 0);
|
|
278
|
+
__decorate$I([
|
|
228
279
|
MapToComponentField()
|
|
229
280
|
], VegaRichTextEditorRenderer.prototype, "richTextEditorSourceViewRenderer", void 0);
|
|
230
|
-
__decorate$
|
|
281
|
+
__decorate$I([
|
|
231
282
|
MapToComponentMethod('componentDidRender')
|
|
232
283
|
], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
|
|
233
284
|
|
|
234
|
-
var __decorate$
|
|
285
|
+
var __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
235
286
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
236
287
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
237
288
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -283,14 +334,17 @@ class ToolbarRenderer extends VegaSlimmer {
|
|
|
283
334
|
const [renderedItems, totalVisibleCount] = this.renderToolbarItems();
|
|
284
335
|
return (h("vega-flex", { gap: "size-8", alignItems: "center", flexWrap: "wrap" },
|
|
285
336
|
this.allowSourceEdit && (h(Fragment, null,
|
|
286
|
-
h("div", { class: "toolbar-btn-group" }, this.sourceEditToolbarButtonSlimmer.render()),
|
|
337
|
+
h("div", { class: "toolbar-btn-group", role: "presentation" }, this.sourceEditToolbarButtonSlimmer.render()),
|
|
287
338
|
this.uniqueToolbarItems.length > 0 &&
|
|
288
339
|
totalVisibleCount > 0 &&
|
|
289
340
|
this.renderVegaDivider())),
|
|
290
341
|
renderedItems));
|
|
291
342
|
}
|
|
292
343
|
renderVegaDivider() {
|
|
293
|
-
|
|
344
|
+
// Mark the divider as decorative so screen readers (e.g. VoiceOver
|
|
345
|
+
// on Firefox) skip it when navigating from the Edit Source button
|
|
346
|
+
// to the next toolbar item.
|
|
347
|
+
return (h("vega-box", { height: "size-32", "aria-hidden": "true", role: "presentation" },
|
|
294
348
|
h("vega-divider", { direction: "vertical" })));
|
|
295
349
|
}
|
|
296
350
|
/**
|
|
@@ -329,81 +383,81 @@ class ToolbarRenderer extends VegaSlimmer {
|
|
|
329
383
|
return null;
|
|
330
384
|
})
|
|
331
385
|
.filter(isNonNullable);
|
|
332
|
-
return (h("div", { class: { 'toolbar-btn-group': true, 'vega-hidden': visibleCountPerGroup < 1 } }, groupElement));
|
|
386
|
+
return (h("div", { class: { 'toolbar-btn-group': true, 'vega-hidden': visibleCountPerGroup < 1 }, role: "presentation" }, groupElement));
|
|
333
387
|
});
|
|
334
388
|
return [renderedItems, totalVisibleCount];
|
|
335
389
|
}
|
|
336
390
|
}
|
|
337
|
-
__decorate$
|
|
391
|
+
__decorate$H([
|
|
338
392
|
MapToComponentField()
|
|
339
393
|
], ToolbarRenderer.prototype, "uniqueToolbarItems", void 0);
|
|
340
|
-
__decorate$
|
|
394
|
+
__decorate$H([
|
|
341
395
|
MapToComponentField()
|
|
342
396
|
], ToolbarRenderer.prototype, "allowSourceEdit", void 0);
|
|
343
|
-
__decorate$
|
|
397
|
+
__decorate$H([
|
|
344
398
|
MapToComponentField()
|
|
345
399
|
], ToolbarRenderer.prototype, "host", void 0);
|
|
346
|
-
__decorate$
|
|
400
|
+
__decorate$H([
|
|
347
401
|
MapToComponentField()
|
|
348
402
|
], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
|
|
349
|
-
__decorate$
|
|
403
|
+
__decorate$H([
|
|
350
404
|
MapToComponentField()
|
|
351
405
|
], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
|
|
352
|
-
__decorate$
|
|
406
|
+
__decorate$H([
|
|
353
407
|
MapToComponentField()
|
|
354
408
|
], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
|
|
355
|
-
__decorate$
|
|
409
|
+
__decorate$H([
|
|
356
410
|
MapToComponentField()
|
|
357
411
|
], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
|
|
358
|
-
__decorate$
|
|
412
|
+
__decorate$H([
|
|
359
413
|
MapToComponentField()
|
|
360
414
|
], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
|
|
361
|
-
__decorate$
|
|
415
|
+
__decorate$H([
|
|
362
416
|
MapToComponentField()
|
|
363
417
|
], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
|
|
364
|
-
__decorate$
|
|
418
|
+
__decorate$H([
|
|
365
419
|
MapToComponentField()
|
|
366
420
|
], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
|
|
367
|
-
__decorate$
|
|
421
|
+
__decorate$H([
|
|
368
422
|
MapToComponentField()
|
|
369
423
|
], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
|
|
370
|
-
__decorate$
|
|
424
|
+
__decorate$H([
|
|
371
425
|
MapToComponentField()
|
|
372
426
|
], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
|
|
373
|
-
__decorate$
|
|
427
|
+
__decorate$H([
|
|
374
428
|
MapToComponentField()
|
|
375
429
|
], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
|
|
376
|
-
__decorate$
|
|
430
|
+
__decorate$H([
|
|
377
431
|
MapToComponentField()
|
|
378
432
|
], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
|
|
379
|
-
__decorate$
|
|
433
|
+
__decorate$H([
|
|
380
434
|
MapToComponentField()
|
|
381
435
|
], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
|
|
382
|
-
__decorate$
|
|
436
|
+
__decorate$H([
|
|
383
437
|
MapToComponentField()
|
|
384
438
|
], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
|
|
385
|
-
__decorate$
|
|
439
|
+
__decorate$H([
|
|
386
440
|
MapToComponentField()
|
|
387
441
|
], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
|
|
388
|
-
__decorate$
|
|
442
|
+
__decorate$H([
|
|
389
443
|
MapToComponentField()
|
|
390
444
|
], ToolbarRenderer.prototype, "codeBlockToolbarButtonSlimmer", void 0);
|
|
391
|
-
__decorate$
|
|
445
|
+
__decorate$H([
|
|
392
446
|
MapToComponentField()
|
|
393
447
|
], ToolbarRenderer.prototype, "undoToolbarButtonSlimmer", void 0);
|
|
394
|
-
__decorate$
|
|
448
|
+
__decorate$H([
|
|
395
449
|
MapToComponentField()
|
|
396
450
|
], ToolbarRenderer.prototype, "redoToolbarButtonSlimmer", void 0);
|
|
397
|
-
__decorate$
|
|
451
|
+
__decorate$H([
|
|
398
452
|
MapToComponentField()
|
|
399
453
|
], ToolbarRenderer.prototype, "sourceEditToolbarButtonSlimmer", void 0);
|
|
400
|
-
__decorate$
|
|
454
|
+
__decorate$H([
|
|
401
455
|
MapToComponentField()
|
|
402
456
|
], ToolbarRenderer.prototype, "selectionController", void 0);
|
|
403
|
-
__decorate$
|
|
457
|
+
__decorate$H([
|
|
404
458
|
MapToComponentField()
|
|
405
459
|
], ToolbarRenderer.prototype, "translationSlimmer", void 0);
|
|
406
|
-
__decorate$
|
|
460
|
+
__decorate$H([
|
|
407
461
|
MapToComponentField()
|
|
408
462
|
], ToolbarRenderer.prototype, "sourceView", void 0);
|
|
409
463
|
|
|
@@ -411,7 +465,7 @@ const bold = {
|
|
|
411
465
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"/></svg>`,
|
|
412
466
|
};
|
|
413
467
|
|
|
414
|
-
var __decorate$
|
|
468
|
+
var __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
415
469
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
416
470
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
417
471
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -453,7 +507,7 @@ class BoldToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
453
507
|
(() => {
|
|
454
508
|
VegaInternalIconManager.register({ bold });
|
|
455
509
|
})();
|
|
456
|
-
__decorate$
|
|
510
|
+
__decorate$G([
|
|
457
511
|
MapToComponentField()
|
|
458
512
|
], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
459
513
|
|
|
@@ -461,7 +515,7 @@ const italic = {
|
|
|
461
515
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"/></svg>`,
|
|
462
516
|
};
|
|
463
517
|
|
|
464
|
-
var __decorate$
|
|
518
|
+
var __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
465
519
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
466
520
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
467
521
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -501,7 +555,7 @@ class ItalicToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
501
555
|
(() => {
|
|
502
556
|
VegaInternalIconManager.register({ italic });
|
|
503
557
|
})();
|
|
504
|
-
__decorate$
|
|
558
|
+
__decorate$F([
|
|
505
559
|
MapToComponentField()
|
|
506
560
|
], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
507
561
|
|
|
@@ -509,7 +563,7 @@ const underline = {
|
|
|
509
563
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"/></svg>`,
|
|
510
564
|
};
|
|
511
565
|
|
|
512
|
-
var __decorate$
|
|
566
|
+
var __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
513
567
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
514
568
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
515
569
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -552,7 +606,7 @@ class UnderlineToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
552
606
|
(() => {
|
|
553
607
|
VegaInternalIconManager.register({ underline });
|
|
554
608
|
})();
|
|
555
|
-
__decorate$
|
|
609
|
+
__decorate$E([
|
|
556
610
|
MapToComponentField()
|
|
557
611
|
], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
558
612
|
|
|
@@ -560,7 +614,7 @@ const textSize = {
|
|
|
560
614
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M64 128V96h96l0 320H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H224l0-320h96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H192 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM384 304V288h64l0 128H432c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H512l0-128h64v16c0 17.7 14.3 32 32 32s32-14.3 32-32V272c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v32c0 17.7 14.3 32 32 32s32-14.3 32-32z"/></svg>`,
|
|
561
615
|
};
|
|
562
616
|
|
|
563
|
-
var __decorate$
|
|
617
|
+
var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
564
618
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
565
619
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
566
620
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -597,7 +651,7 @@ class TextStylesToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
597
651
|
};
|
|
598
652
|
}
|
|
599
653
|
renderBtnWrapper(renderBtn) {
|
|
600
|
-
return (h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
|
|
654
|
+
return (h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", isScreenPosition: true, role: "presentation", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
|
|
601
655
|
this.addDropdownObserver(ref);
|
|
602
656
|
} },
|
|
603
657
|
renderBtn({ showArrowIcon: true }),
|
|
@@ -688,13 +742,13 @@ TextStylesToolbarButtonSlimmer.allItems = [
|
|
|
688
742
|
label: 'Paragraph',
|
|
689
743
|
},
|
|
690
744
|
];
|
|
691
|
-
__decorate$
|
|
745
|
+
__decorate$D([
|
|
692
746
|
MapToComponentField()
|
|
693
747
|
], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
694
|
-
__decorate$
|
|
748
|
+
__decorate$D([
|
|
695
749
|
MapToComponentField()
|
|
696
750
|
], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
|
|
697
|
-
__decorate$
|
|
751
|
+
__decorate$D([
|
|
698
752
|
MapToComponentField()
|
|
699
753
|
], TextStylesToolbarButtonSlimmer.prototype, "textStyleItems", void 0);
|
|
700
754
|
|
|
@@ -702,7 +756,7 @@ const TextSlash = {
|
|
|
702
756
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"/></svg>`,
|
|
703
757
|
};
|
|
704
758
|
|
|
705
|
-
var __decorate$
|
|
759
|
+
var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
706
760
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
707
761
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
708
762
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -739,7 +793,7 @@ class ClearStyleToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
739
793
|
'text-slash': TextSlash,
|
|
740
794
|
});
|
|
741
795
|
})();
|
|
742
|
-
__decorate$
|
|
796
|
+
__decorate$C([
|
|
743
797
|
MapToComponentField()
|
|
744
798
|
], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
745
799
|
|
|
@@ -747,7 +801,7 @@ const codeSimple = {
|
|
|
747
801
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6zm146.7 0L498.7 256 361.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3z"/></svg>`,
|
|
748
802
|
};
|
|
749
803
|
|
|
750
|
-
var __decorate$
|
|
804
|
+
var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
751
805
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
752
806
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
753
807
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -785,7 +839,7 @@ class CodeToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
785
839
|
(() => {
|
|
786
840
|
VegaInternalIconManager.register({ 'code-simple': codeSimple });
|
|
787
841
|
})();
|
|
788
|
-
__decorate$
|
|
842
|
+
__decorate$B([
|
|
789
843
|
MapToComponentField()
|
|
790
844
|
], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
791
845
|
|
|
@@ -793,7 +847,7 @@ const strikethrough = {
|
|
|
793
847
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path fill="currentColor" d="M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21c-3.031 17.59-10.88 29.34-24.72 36.99c-35.44 19.75-108.5 11.96-186-19.68c-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37c29.62 0 58.81-5.156 83.72-18.96c30.81-17.09 50.44-45.46 56.72-82.11c3.998-23.27 2.168-42.58-3.488-59.05H332.2zM488 239.9l-176.5-.0309c-15.85-5.613-31.83-10.34-46.7-14.62c-85.47-24.62-110.9-39.05-103.7-81.33c2.5-14.53 10.16-25.96 22.72-34.03c20.47-13.15 64.06-23.84 155.4 .3438c17.09 4.531 34.59-5.654 39.13-22.74c4.531-17.09-5.656-34.59-22.75-39.12c-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1C89.26 184.5 107.9 217.3 137.2 239.9L24 239.9c-13.25 0-24 10.75-24 23.1c0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1C512 250.7 501.3 239.9 488 239.9z"/></svg>`,
|
|
794
848
|
};
|
|
795
849
|
|
|
796
|
-
var __decorate$
|
|
850
|
+
var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
797
851
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
798
852
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
799
853
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -836,7 +890,7 @@ class StrikethroughToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
836
890
|
(() => {
|
|
837
891
|
VegaInternalIconManager.register({ strikethrough });
|
|
838
892
|
})();
|
|
839
|
-
__decorate$
|
|
893
|
+
__decorate$A([
|
|
840
894
|
MapToComponentField()
|
|
841
895
|
], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
842
896
|
|
|
@@ -844,12 +898,16 @@ const link = {
|
|
|
844
898
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M562.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L405.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C189.5 251.2 196 330 246 380c56.5 56.5 148 56.5 204.5 0L562.8 267.7zM43.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C57 372 57 321 88.5 289.5L200.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C416.5 260.8 410 182 360 132c-56.5-56.5-148-56.5-204.5 0L43.2 244.3z"/></svg>`,
|
|
845
899
|
};
|
|
846
900
|
|
|
847
|
-
var __decorate$
|
|
901
|
+
var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
848
902
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
849
903
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
850
904
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
851
905
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
852
906
|
};
|
|
907
|
+
// One rAF is ~16 ms; 50 ms gives roughly two frames of buffer for the popover's
|
|
908
|
+
// internal focus trap to settle (and for screen readers such as VoiceOver to
|
|
909
|
+
// observe focus on <body>) before we restore focus to the trigger button.
|
|
910
|
+
const FOCUS_RESTORE_DELAY_MS = 50;
|
|
853
911
|
class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
854
912
|
constructor() {
|
|
855
913
|
super({
|
|
@@ -857,7 +915,21 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
857
915
|
tooltip: {
|
|
858
916
|
text: 'Link',
|
|
859
917
|
},
|
|
918
|
+
ariaLabel: 'Insert Link',
|
|
860
919
|
});
|
|
920
|
+
// Restoring focus to the link button on Escape: the popover lives in
|
|
921
|
+
// vega-rich-text-link-editor's shadow root and is portalled to <body>, so
|
|
922
|
+
// the popover's built-in focus trap can't put focus back on our trigger.
|
|
923
|
+
// We track an Escape press during the popover lifetime and restore focus
|
|
924
|
+
// on hide; submit / outside-click flows leave the flag false. Stale
|
|
925
|
+
// Escape presses (pressed while the popover was closed) are cleared by
|
|
926
|
+
// `handleWrapperClickCapture` on the next open.
|
|
927
|
+
this.escapePressedDuringPopover = false;
|
|
928
|
+
// Tracks whether the document-level keydown listener has been registered
|
|
929
|
+
// so it can be removed in disconnectedCallback. Without removal, document
|
|
930
|
+
// keeps a strong reference to this slimmer instance after the rich-text
|
|
931
|
+
// editor is destroyed, leaking memory.
|
|
932
|
+
this.documentKeydownRegistered = false;
|
|
861
933
|
this.handleLinkEditorChange = ({ detail, }) => {
|
|
862
934
|
switch (detail.action) {
|
|
863
935
|
case 'link': {
|
|
@@ -882,9 +954,97 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
882
954
|
}
|
|
883
955
|
}
|
|
884
956
|
};
|
|
957
|
+
this.handleWrapperClickCapture = () => {
|
|
958
|
+
// Reset the Escape flag for each new open; only an Escape during this
|
|
959
|
+
// popover's lifetime should trigger focus restoration. Activating the
|
|
960
|
+
// trigger via keyboard (Enter / Space on the inner native <button>) also
|
|
961
|
+
// dispatches a synthetic click in the capture phase, so this handler
|
|
962
|
+
// runs in both pointer and keyboard activation paths. Also clears any
|
|
963
|
+
// stale Escape press recorded while the popover was closed. The
|
|
964
|
+
// `vegaPopoverShow` listener provides the same guarantee for
|
|
965
|
+
// programmatic-open paths that don't go through a wrapper click.
|
|
966
|
+
this.escapePressedDuringPopover = false;
|
|
967
|
+
};
|
|
968
|
+
this.handlePopoverShow = () => {
|
|
969
|
+
// Belt-and-suspenders reset for programmatic opens (e.g. an external
|
|
970
|
+
// caller invoking `linkEditorRef.show()`): without this, an Escape press
|
|
971
|
+
// recorded while the popover was previously closed could survive into
|
|
972
|
+
// the new open and trigger a spurious focus restore on the next hide.
|
|
973
|
+
this.escapePressedDuringPopover = false;
|
|
974
|
+
};
|
|
975
|
+
this.handleDocumentKeydown = (event) => {
|
|
976
|
+
// We cannot guard on a local `isPopoverOpen` flag here: vega-popover's
|
|
977
|
+
// own KeyboardManager registers its capture-phase keydown listener on
|
|
978
|
+
// document before this slimmer's listener, so it runs first, calls
|
|
979
|
+
// hidePopover(), and synchronously fires `vegaPopoverHide` — which
|
|
980
|
+
// would flip our flag to closed before this handler ever observes the
|
|
981
|
+
// Escape key. Instead, always record the Escape press; stale presses
|
|
982
|
+
// (made while the popover was closed) are cleared by
|
|
983
|
+
// `handleWrapperClickCapture` on the next open.
|
|
984
|
+
// Use `event.code` for consistency with vega-modal's Escape handling
|
|
985
|
+
// (vega-modal-open-state-controller.ts).
|
|
986
|
+
if (event.code === 'Escape') {
|
|
987
|
+
this.escapePressedDuringPopover = true;
|
|
988
|
+
}
|
|
989
|
+
};
|
|
990
|
+
this.handlePopoverHide = () => {
|
|
991
|
+
// vegaPopoverHide fires synchronously from the popover's own Escape
|
|
992
|
+
// handler — before our document-capture keydown observes the key, and
|
|
993
|
+
// before the popover's internal focus trap settles focus on <body>.
|
|
994
|
+
// Defer the decision/restore past that internal restore.
|
|
995
|
+
// eslint-disable-next-line no-restricted-globals
|
|
996
|
+
setTimeout(() => {
|
|
997
|
+
var _a, _b, _c, _d;
|
|
998
|
+
const shouldRestore = this.escapePressedDuringPopover;
|
|
999
|
+
this.escapePressedDuringPopover = false;
|
|
1000
|
+
if (shouldRestore) {
|
|
1001
|
+
// The toolbar button uses shadow DOM without delegatesFocus,
|
|
1002
|
+
// so focusing the host is a no-op — focus the inner <button>.
|
|
1003
|
+
// The toolbar button may have been removed from the DOM during
|
|
1004
|
+
// the timeout window (e.g. editor destroyed), so guard each step.
|
|
1005
|
+
/* istanbul ignore next */
|
|
1006
|
+
(_d = (_c = (_b = (_a = this.linkBtnWrapperRef) === null || _a === void 0 ? void 0 : _a.querySelector('vega-rich-text-editor-toolbar-button')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('button')) === null || _d === void 0 ? void 0 : _d.focus();
|
|
1007
|
+
}
|
|
1008
|
+
}, FOCUS_RESTORE_DELAY_MS);
|
|
1009
|
+
};
|
|
1010
|
+
}
|
|
1011
|
+
/**
|
|
1012
|
+
* Component lifecycle - [disconnectedCallback]
|
|
1013
|
+
*
|
|
1014
|
+
* Removes the document-level Escape listener registered in the wrapper
|
|
1015
|
+
* ref callback so the slimmer instance is not retained by document after
|
|
1016
|
+
* the rich-text editor is destroyed.
|
|
1017
|
+
*/
|
|
1018
|
+
disconnectedCallback() {
|
|
1019
|
+
if (this.documentKeydownRegistered) {
|
|
1020
|
+
// eslint-disable-next-line no-restricted-globals
|
|
1021
|
+
document.removeEventListener('keydown', this.handleDocumentKeydown, { capture: true });
|
|
1022
|
+
this.documentKeydownRegistered = false;
|
|
1023
|
+
}
|
|
1024
|
+
this.linkBtnWrapperRef = undefined;
|
|
885
1025
|
}
|
|
886
1026
|
renderBtnWrapper(renderBtn) {
|
|
887
|
-
return (h("div", { class: "toolbar-btn-link-wrapper", ref: (ref) =>
|
|
1027
|
+
return (h("div", { class: "toolbar-btn-link-wrapper", role: "presentation", ref: (ref) => {
|
|
1028
|
+
if (ref && ref !== this.linkBtnWrapperRef) {
|
|
1029
|
+
this.linkBtnWrapperRef = ref;
|
|
1030
|
+
ref.addEventListener('click', this.handleWrapperClickCapture, { capture: true });
|
|
1031
|
+
// `vegaPopoverShow` clears any stale Escape recorded while the
|
|
1032
|
+
// popover was closed, covering programmatic-open paths
|
|
1033
|
+
// (e.g. linkEditorRef.show()) where no wrapper click fires.
|
|
1034
|
+
ref.addEventListener('vegaPopoverShow', this.handlePopoverShow);
|
|
1035
|
+
ref.addEventListener('vegaPopoverHide', this.handlePopoverHide);
|
|
1036
|
+
// Esc inside the portalled popover doesn't bubble to the wrapper,
|
|
1037
|
+
// so observe it on document capture. Tracked so it can be removed
|
|
1038
|
+
// in disconnectedCallback to avoid leaking this slimmer instance.
|
|
1039
|
+
if (!this.documentKeydownRegistered) {
|
|
1040
|
+
// eslint-disable-next-line no-restricted-globals
|
|
1041
|
+
document.addEventListener('keydown', this.handleDocumentKeydown, {
|
|
1042
|
+
capture: true,
|
|
1043
|
+
});
|
|
1044
|
+
this.documentKeydownRegistered = true;
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
} },
|
|
888
1048
|
renderBtn(),
|
|
889
1049
|
h("vega-rich-text-link-editor", { resetStatusAfterHide: false, status: "linkEdit", ref: (ref) => {
|
|
890
1050
|
if (ref) {
|
|
@@ -933,15 +1093,18 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
933
1093
|
(() => {
|
|
934
1094
|
VegaInternalIconManager.register({ link: link });
|
|
935
1095
|
})();
|
|
936
|
-
__decorate$
|
|
1096
|
+
__decorate$z([
|
|
937
1097
|
MapToComponentField()
|
|
938
1098
|
], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1099
|
+
__decorate$z([
|
|
1100
|
+
MapToComponentMethod('disconnectedCallback')
|
|
1101
|
+
], LinkToolbarButtonSlimmer.prototype, "disconnectedCallback", null);
|
|
939
1102
|
|
|
940
1103
|
const indent = {
|
|
941
1104
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/></svg>`,
|
|
942
1105
|
};
|
|
943
1106
|
|
|
944
|
-
var __decorate$
|
|
1107
|
+
var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
945
1108
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
946
1109
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
947
1110
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -975,7 +1138,7 @@ class MoreIndentToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
975
1138
|
(() => {
|
|
976
1139
|
VegaInternalIconManager.register({ indent: indent });
|
|
977
1140
|
})();
|
|
978
|
-
__decorate$
|
|
1141
|
+
__decorate$y([
|
|
979
1142
|
MapToComponentField()
|
|
980
1143
|
], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
981
1144
|
|
|
@@ -983,7 +1146,7 @@ const outdent = {
|
|
|
983
1146
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M6 64C6 46.3 20.3 32 38 32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38C20.3 96 6 81.7 6 64zM198 192c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32zm32 96H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32s14.3-32 32-32zM6 448c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L6.2 268.6z"/></svg>`,
|
|
984
1147
|
};
|
|
985
1148
|
|
|
986
|
-
var __decorate$
|
|
1149
|
+
var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
987
1150
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
988
1151
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
989
1152
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -1018,7 +1181,7 @@ class LessIndentToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1018
1181
|
(() => {
|
|
1019
1182
|
VegaInternalIconManager.register({ outdent: outdent });
|
|
1020
1183
|
})();
|
|
1021
|
-
__decorate$
|
|
1184
|
+
__decorate$x([
|
|
1022
1185
|
MapToComponentField()
|
|
1023
1186
|
], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1024
1187
|
|
|
@@ -1039,7 +1202,7 @@ class ImageUpdateUrlAction extends ModifyContentAction {
|
|
|
1039
1202
|
}
|
|
1040
1203
|
}
|
|
1041
1204
|
|
|
1042
|
-
var __decorate$
|
|
1205
|
+
var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1043
1206
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1044
1207
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1045
1208
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -1051,6 +1214,7 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1051
1214
|
icon: 'image',
|
|
1052
1215
|
tooltip: { text: 'Image' },
|
|
1053
1216
|
autoFocusOnClick: false,
|
|
1217
|
+
ariaLabel: 'Insert Image',
|
|
1054
1218
|
});
|
|
1055
1219
|
this.insertURLImage = async () => {
|
|
1056
1220
|
const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
|
|
@@ -1105,8 +1269,8 @@ class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1105
1269
|
if (!shouldRenderUpload && !shouldRenderUrlInsertion) {
|
|
1106
1270
|
return null;
|
|
1107
1271
|
}
|
|
1108
|
-
return (h("vega-box",
|
|
1109
|
-
shouldRenderDropdown ? (h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, ref: (ref) => {
|
|
1272
|
+
return (h("vega-box", { role: "presentation" },
|
|
1273
|
+
shouldRenderDropdown ? (h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", isScreenPosition: true, role: "presentation", ref: (ref) => {
|
|
1110
1274
|
this.dropdownRef = ref;
|
|
1111
1275
|
this.addDropdownObserver(ref);
|
|
1112
1276
|
} },
|
|
@@ -1238,16 +1402,16 @@ ImageToolbarButtonSlimmer.allItems = [
|
|
|
1238
1402
|
label: 'Insert via URL',
|
|
1239
1403
|
},
|
|
1240
1404
|
];
|
|
1241
|
-
__decorate$
|
|
1405
|
+
__decorate$w([
|
|
1242
1406
|
MapToComponentField()
|
|
1243
1407
|
], ImageToolbarButtonSlimmer.prototype, "host", void 0);
|
|
1244
|
-
__decorate$
|
|
1408
|
+
__decorate$w([
|
|
1245
1409
|
MapToComponentField()
|
|
1246
1410
|
], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
|
|
1247
|
-
__decorate$
|
|
1411
|
+
__decorate$w([
|
|
1248
1412
|
MapToComponentField()
|
|
1249
1413
|
], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
|
|
1250
|
-
__decorate$
|
|
1414
|
+
__decorate$w([
|
|
1251
1415
|
MapToComponentField()
|
|
1252
1416
|
], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1253
1417
|
|
|
@@ -1557,7 +1721,7 @@ class ListShiftTabOutdentHandler extends AbstractListKeyboardHandler {
|
|
|
1557
1721
|
}
|
|
1558
1722
|
}
|
|
1559
1723
|
|
|
1560
|
-
var __decorate$
|
|
1724
|
+
var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1561
1725
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1562
1726
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1563
1727
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -1709,28 +1873,28 @@ class ListKeyboardSlimmer extends VegaSlimmer {
|
|
|
1709
1873
|
this.selectionController.enqueueSelectionRangeFutureState(firstNode, Math.min(startOffset, firstNode.getRangeEndOffset()), lastNode, Math.min(endOffset, lastNode.getRangeEndOffset()), true);
|
|
1710
1874
|
}
|
|
1711
1875
|
}
|
|
1712
|
-
__decorate$
|
|
1876
|
+
__decorate$v([
|
|
1713
1877
|
MapToComponentField()
|
|
1714
1878
|
], ListKeyboardSlimmer.prototype, "selectionController", void 0);
|
|
1715
|
-
__decorate$
|
|
1879
|
+
__decorate$v([
|
|
1716
1880
|
MapToComponentField()
|
|
1717
1881
|
], ListKeyboardSlimmer.prototype, "valueController", void 0);
|
|
1718
|
-
__decorate$
|
|
1882
|
+
__decorate$v([
|
|
1719
1883
|
MapToComponentField()
|
|
1720
1884
|
], ListKeyboardSlimmer.prototype, "value", void 0);
|
|
1721
|
-
__decorate$
|
|
1885
|
+
__decorate$v([
|
|
1722
1886
|
MapToComponentField()
|
|
1723
1887
|
], ListKeyboardSlimmer.prototype, "toolbarItems", void 0);
|
|
1724
|
-
__decorate$
|
|
1888
|
+
__decorate$v([
|
|
1725
1889
|
MapToComponentField()
|
|
1726
1890
|
], ListKeyboardSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
1727
|
-
__decorate$
|
|
1891
|
+
__decorate$v([
|
|
1728
1892
|
MapToComponentMethod('disconnectedCallback')
|
|
1729
1893
|
], ListKeyboardSlimmer.prototype, "disconnectedCallback", null);
|
|
1730
|
-
__decorate$
|
|
1894
|
+
__decorate$v([
|
|
1731
1895
|
MapToComponentMethod('componentDidLoad')
|
|
1732
1896
|
], ListKeyboardSlimmer.prototype, "componentDidLoad", null);
|
|
1733
|
-
__decorate$
|
|
1897
|
+
__decorate$v([
|
|
1734
1898
|
MapToComponentMethod('watchToolbarItems')
|
|
1735
1899
|
], ListKeyboardSlimmer.prototype, "watchToolbarItems", null);
|
|
1736
1900
|
|
|
@@ -1747,7 +1911,7 @@ class TransformListAction extends ModifyContentAction {
|
|
|
1747
1911
|
}
|
|
1748
1912
|
}
|
|
1749
1913
|
|
|
1750
|
-
var __decorate$
|
|
1914
|
+
var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1751
1915
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1752
1916
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1753
1917
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -1806,14 +1970,14 @@ class BulletsToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1806
1970
|
}
|
|
1807
1971
|
}
|
|
1808
1972
|
}
|
|
1809
|
-
__decorate$
|
|
1973
|
+
__decorate$u([
|
|
1810
1974
|
MapToComponentField()
|
|
1811
1975
|
], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1812
|
-
__decorate$
|
|
1976
|
+
__decorate$u([
|
|
1813
1977
|
MapToComponentField()
|
|
1814
1978
|
], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1815
1979
|
|
|
1816
|
-
var __decorate$
|
|
1980
|
+
var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1817
1981
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1818
1982
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1819
1983
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -1870,14 +2034,14 @@ class NumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1870
2034
|
}
|
|
1871
2035
|
}
|
|
1872
2036
|
}
|
|
1873
|
-
__decorate$
|
|
2037
|
+
__decorate$t([
|
|
1874
2038
|
MapToComponentField()
|
|
1875
2039
|
], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1876
|
-
__decorate$
|
|
2040
|
+
__decorate$t([
|
|
1877
2041
|
MapToComponentField()
|
|
1878
2042
|
], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1879
2043
|
|
|
1880
|
-
var __decorate$
|
|
2044
|
+
var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1881
2045
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1882
2046
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1883
2047
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -1890,6 +2054,7 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
|
|
|
1890
2054
|
tooltip: {
|
|
1891
2055
|
text: 'Bullets',
|
|
1892
2056
|
},
|
|
2057
|
+
ariaLabel: 'Bullets and Numbers',
|
|
1893
2058
|
});
|
|
1894
2059
|
this.bulletsToolbarButtonSlimmer = new BulletsToolbarButtonSlimmer();
|
|
1895
2060
|
this.numbersToolbarButtonSlimmer = new NumbersToolbarButtonSlimmer();
|
|
@@ -1908,7 +2073,7 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
|
|
|
1908
2073
|
}
|
|
1909
2074
|
}
|
|
1910
2075
|
renderBtnWrapper(renderBtn) {
|
|
1911
|
-
return (h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
|
|
2076
|
+
return (h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", isScreenPosition: true, role: "presentation", ref: (ref) => (this.popoverRef = ref) },
|
|
1912
2077
|
h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
|
|
1913
2078
|
h("div", { slot: "popover" }, this.renderContent())));
|
|
1914
2079
|
}
|
|
@@ -1957,41 +2122,41 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
|
|
|
1957
2122
|
'list-ol': ListOL,
|
|
1958
2123
|
});
|
|
1959
2124
|
})();
|
|
1960
|
-
__decorate$
|
|
2125
|
+
__decorate$s([
|
|
1961
2126
|
MapToComponentField()
|
|
1962
2127
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1963
|
-
__decorate$
|
|
2128
|
+
__decorate$s([
|
|
1964
2129
|
MapToComponentField()
|
|
1965
2130
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "valueController", void 0);
|
|
1966
|
-
__decorate$
|
|
2131
|
+
__decorate$s([
|
|
1967
2132
|
MapToComponentField()
|
|
1968
2133
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "value", void 0);
|
|
1969
|
-
__decorate$
|
|
2134
|
+
__decorate$s([
|
|
1970
2135
|
MapToComponentField()
|
|
1971
2136
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "toolbarItems", void 0);
|
|
1972
|
-
__decorate$
|
|
2137
|
+
__decorate$s([
|
|
1973
2138
|
MapToComponentField()
|
|
1974
2139
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
1975
|
-
__decorate$
|
|
2140
|
+
__decorate$s([
|
|
1976
2141
|
InjectVegaSlimmer()
|
|
1977
2142
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
|
|
1978
|
-
__decorate$
|
|
2143
|
+
__decorate$s([
|
|
1979
2144
|
InjectVegaSlimmer()
|
|
1980
2145
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
|
|
1981
|
-
__decorate$
|
|
2146
|
+
__decorate$s([
|
|
1982
2147
|
InjectVegaSlimmer()
|
|
1983
2148
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "listKeyboardSlimmer", void 0);
|
|
1984
|
-
__decorate$
|
|
2149
|
+
__decorate$s([
|
|
1985
2150
|
MapToComponentMethod('disconnectedCallback')
|
|
1986
2151
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "disconnectedCallback", null);
|
|
1987
|
-
__decorate$
|
|
2152
|
+
__decorate$s([
|
|
1988
2153
|
MapToComponentMethod('componentDidLoad')
|
|
1989
2154
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "componentDidLoad", null);
|
|
1990
|
-
__decorate$
|
|
2155
|
+
__decorate$s([
|
|
1991
2156
|
MapToComponentMethod('componentWillRender')
|
|
1992
2157
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
|
|
1993
2158
|
|
|
1994
|
-
var __decorate$
|
|
2159
|
+
var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1995
2160
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1996
2161
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1997
2162
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -2026,14 +2191,14 @@ class LeftAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
2026
2191
|
'align-left': AlignLeft,
|
|
2027
2192
|
});
|
|
2028
2193
|
})();
|
|
2029
|
-
__decorate$
|
|
2194
|
+
__decorate$r([
|
|
2030
2195
|
MapToComponentField()
|
|
2031
2196
|
], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
2032
|
-
__decorate$
|
|
2197
|
+
__decorate$r([
|
|
2033
2198
|
MapToComponentField()
|
|
2034
2199
|
], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
2035
2200
|
|
|
2036
|
-
var __decorate$
|
|
2201
|
+
var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2037
2202
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2038
2203
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2039
2204
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -2068,14 +2233,14 @@ class CenterAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
2068
2233
|
'align-center': AlignCenter,
|
|
2069
2234
|
});
|
|
2070
2235
|
})();
|
|
2071
|
-
__decorate$
|
|
2236
|
+
__decorate$q([
|
|
2072
2237
|
MapToComponentField()
|
|
2073
2238
|
], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
2074
|
-
__decorate$
|
|
2239
|
+
__decorate$q([
|
|
2075
2240
|
MapToComponentField()
|
|
2076
2241
|
], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
2077
2242
|
|
|
2078
|
-
var __decorate$
|
|
2243
|
+
var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2079
2244
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2080
2245
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2081
2246
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -2110,14 +2275,14 @@ class RightAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
2110
2275
|
'align-right': AlignRight,
|
|
2111
2276
|
});
|
|
2112
2277
|
})();
|
|
2113
|
-
__decorate$
|
|
2278
|
+
__decorate$p([
|
|
2114
2279
|
MapToComponentField()
|
|
2115
2280
|
], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
2116
|
-
__decorate$
|
|
2281
|
+
__decorate$p([
|
|
2117
2282
|
MapToComponentField()
|
|
2118
2283
|
], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
2119
2284
|
|
|
2120
|
-
var __decorate$
|
|
2285
|
+
var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2121
2286
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2122
2287
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2123
2288
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -2152,14 +2317,14 @@ class JustifyAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
2152
2317
|
'align-justify': AlignJustify,
|
|
2153
2318
|
});
|
|
2154
2319
|
})();
|
|
2155
|
-
__decorate$
|
|
2320
|
+
__decorate$o([
|
|
2156
2321
|
MapToComponentField()
|
|
2157
2322
|
], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
2158
|
-
__decorate$
|
|
2323
|
+
__decorate$o([
|
|
2159
2324
|
MapToComponentField()
|
|
2160
2325
|
], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
2161
2326
|
|
|
2162
|
-
var __decorate$
|
|
2327
|
+
var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2163
2328
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2164
2329
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2165
2330
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -2172,6 +2337,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
|
|
|
2172
2337
|
tooltip: {
|
|
2173
2338
|
text: 'Left Align',
|
|
2174
2339
|
},
|
|
2340
|
+
ariaLabel: 'Horizontal Alignment',
|
|
2175
2341
|
});
|
|
2176
2342
|
this.leftAlignToolbarButtonSlimmer = new LeftAlignToolbarButtonSlimmer();
|
|
2177
2343
|
this.centerAlignToolbarButtonSlimmer = new CenterAlignToolbarButtonSlimmer();
|
|
@@ -2196,7 +2362,7 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
|
|
|
2196
2362
|
}
|
|
2197
2363
|
}
|
|
2198
2364
|
renderBtnWrapper(renderBtn) {
|
|
2199
|
-
return (h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, ref: (ref) => (this.popoverRef = ref) },
|
|
2365
|
+
return (h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", isScreenPosition: true, role: "presentation", ref: (ref) => (this.popoverRef = ref) },
|
|
2200
2366
|
h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
|
|
2201
2367
|
h("div", { slot: "popover" }, this.renderContent())));
|
|
2202
2368
|
}
|
|
@@ -2217,22 +2383,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
|
|
|
2217
2383
|
.some((block) => this.shouldDisabledToolbar(block, HorizontalAlignmentAnnotationAction.name)));
|
|
2218
2384
|
}
|
|
2219
2385
|
}
|
|
2220
|
-
__decorate$
|
|
2386
|
+
__decorate$n([
|
|
2221
2387
|
MapToComponentField()
|
|
2222
2388
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
2223
|
-
__decorate$
|
|
2389
|
+
__decorate$n([
|
|
2224
2390
|
InjectVegaSlimmer()
|
|
2225
2391
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
|
|
2226
|
-
__decorate$
|
|
2392
|
+
__decorate$n([
|
|
2227
2393
|
InjectVegaSlimmer()
|
|
2228
2394
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
|
|
2229
|
-
__decorate$
|
|
2395
|
+
__decorate$n([
|
|
2230
2396
|
InjectVegaSlimmer()
|
|
2231
2397
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
|
|
2232
|
-
__decorate$
|
|
2398
|
+
__decorate$n([
|
|
2233
2399
|
InjectVegaSlimmer()
|
|
2234
2400
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
|
|
2235
|
-
__decorate$
|
|
2401
|
+
__decorate$n([
|
|
2236
2402
|
MapToComponentMethod('componentWillRender')
|
|
2237
2403
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
|
|
2238
2404
|
|
|
@@ -2273,7 +2439,7 @@ class RTEEditorState {
|
|
|
2273
2439
|
}
|
|
2274
2440
|
}
|
|
2275
2441
|
|
|
2276
|
-
var __decorate$
|
|
2442
|
+
var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2277
2443
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2278
2444
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2279
2445
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -2283,6 +2449,11 @@ var __decorate$l = (undefined && undefined.__decorate) || function (decorators,
|
|
|
2283
2449
|
* The value controller is responsible for updating the value of the rich text editor.
|
|
2284
2450
|
*/
|
|
2285
2451
|
class ValueController extends VegaSlimmer {
|
|
2452
|
+
constructor() {
|
|
2453
|
+
super(...arguments);
|
|
2454
|
+
// Deep clone of the last committed value, kept only while a commit validator is active, used to roll back rejected changes.
|
|
2455
|
+
this.committedSnapshot = null;
|
|
2456
|
+
}
|
|
2286
2457
|
/**
|
|
2287
2458
|
* Component lifecycle - [connectedCallback]{@link VegaRichTextEditor.connectedCallback}
|
|
2288
2459
|
*/
|
|
@@ -2327,15 +2498,47 @@ class ValueController extends VegaSlimmer {
|
|
|
2327
2498
|
});
|
|
2328
2499
|
}
|
|
2329
2500
|
this.registerEditorRefAndContent();
|
|
2501
|
+
this.seedCommittedSnapshot();
|
|
2502
|
+
}
|
|
2503
|
+
/**
|
|
2504
|
+
* Seeds the rollback snapshot from the current value while a commit interceptor is active.
|
|
2505
|
+
* Runs on load and on extension changes so runtime re-registration stays protected.
|
|
2506
|
+
*/
|
|
2507
|
+
seedCommittedSnapshot() {
|
|
2508
|
+
if (this.wordCountController.hasWordCountHardLimit()) {
|
|
2509
|
+
this.committedSnapshot = this.value ? this.value.clone(true) : null;
|
|
2510
|
+
}
|
|
2330
2511
|
}
|
|
2331
2512
|
/**
|
|
2332
2513
|
* Updates the value of the editor and restore the selection.
|
|
2333
2514
|
*
|
|
2334
2515
|
* @param {VegaRTEContent} newValue The new value to set.
|
|
2335
2516
|
* @param {boolean} recordHistory - Whether to record the change in history.
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2517
|
+
* @param {RTEUpdateSource} updateSource - The source of the update, defaulting to 'default'.
|
|
2518
|
+
*/
|
|
2519
|
+
async flushChanges(newValue, recordHistory = true, updateSource = RTEUpdateSource.Default) {
|
|
2520
|
+
const previous = this.committedSnapshot;
|
|
2521
|
+
const action = new CommitValueAction(newValue, previous, this.host);
|
|
2522
|
+
const committed = ActionHandleStrategyRegistry.executeTheStrategy(action, newValue);
|
|
2523
|
+
if (!committed) {
|
|
2524
|
+
if (updateSource === RTEUpdateSource.Composition) {
|
|
2525
|
+
// The composition input characters cannot be deleted, so we force a repaint to restore the content from the model.
|
|
2526
|
+
this.vegaRichTextEditorRenderer.forceContentRepaint();
|
|
2527
|
+
}
|
|
2528
|
+
else {
|
|
2529
|
+
// The commit was vetoed, so restore the placeholder the framework skipped repainting and roll back.
|
|
2530
|
+
this.vegaRichTextEditorRenderer.restoreEmptyTextPlaceholders();
|
|
2531
|
+
}
|
|
2532
|
+
// Deep clone so the rolled-back value never shares nodes with the snapshot, which in-place edits would otherwise corrupt.
|
|
2533
|
+
this.value = (previous !== null && previous !== void 0 ? previous : newValue).clone(true);
|
|
2534
|
+
if (previous) {
|
|
2535
|
+
// Seed the snapshot again so the next commit attempt has a valid rollback point.
|
|
2536
|
+
this.seedCommittedSnapshot();
|
|
2537
|
+
}
|
|
2538
|
+
await waitForComponentDidRender(this.host);
|
|
2539
|
+
return;
|
|
2540
|
+
}
|
|
2541
|
+
this.value = committed.clone();
|
|
2339
2542
|
if (recordHistory) {
|
|
2340
2543
|
this.historyController.registerHistory(new RTEEditorState(this.value, new RTESelectionState(this.selectionController.getCurrentRange())));
|
|
2341
2544
|
}
|
|
@@ -2359,39 +2562,49 @@ class ValueController extends VegaSlimmer {
|
|
|
2359
2562
|
}
|
|
2360
2563
|
}
|
|
2361
2564
|
ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
|
|
2362
|
-
__decorate$
|
|
2565
|
+
__decorate$m([
|
|
2363
2566
|
MapToComponentField()
|
|
2364
2567
|
], ValueController.prototype, "host", void 0);
|
|
2365
|
-
__decorate$
|
|
2568
|
+
__decorate$m([
|
|
2366
2569
|
MapToComponentField({ writable: true })
|
|
2367
2570
|
], ValueController.prototype, "value", void 0);
|
|
2368
|
-
__decorate$
|
|
2571
|
+
__decorate$m([
|
|
2369
2572
|
MapToComponentField()
|
|
2370
2573
|
], ValueController.prototype, "changeEventEmitter", void 0);
|
|
2371
|
-
__decorate$
|
|
2574
|
+
__decorate$m([
|
|
2372
2575
|
MapToComponentField()
|
|
2373
2576
|
], ValueController.prototype, "valueController", void 0);
|
|
2374
|
-
__decorate$
|
|
2577
|
+
__decorate$m([
|
|
2375
2578
|
MapToComponentField()
|
|
2376
2579
|
], ValueController.prototype, "historyController", void 0);
|
|
2377
|
-
__decorate$
|
|
2580
|
+
__decorate$m([
|
|
2378
2581
|
MapToComponentField()
|
|
2379
2582
|
], ValueController.prototype, "selectionController", void 0);
|
|
2380
|
-
__decorate$
|
|
2583
|
+
__decorate$m([
|
|
2584
|
+
MapToComponentField()
|
|
2585
|
+
], ValueController.prototype, "wordCountController", void 0);
|
|
2586
|
+
__decorate$m([
|
|
2587
|
+
MapToComponentField()
|
|
2588
|
+
], ValueController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
2589
|
+
__decorate$m([
|
|
2381
2590
|
MapToComponentField()
|
|
2382
2591
|
], ValueController.prototype, "sourceEditConfig", void 0);
|
|
2383
|
-
__decorate$
|
|
2592
|
+
__decorate$m([
|
|
2384
2593
|
MapToComponentMethod('connectedCallback')
|
|
2385
2594
|
], ValueController.prototype, "connectedCallback", null);
|
|
2386
|
-
__decorate$
|
|
2595
|
+
__decorate$m([
|
|
2387
2596
|
MapToComponentMethod('disconnectedCallback')
|
|
2388
2597
|
], ValueController.prototype, "disconnectedCallback", null);
|
|
2389
|
-
__decorate$
|
|
2598
|
+
__decorate$m([
|
|
2390
2599
|
MapToComponentMethod('componentWillLoad')
|
|
2391
2600
|
], ValueController.prototype, "componentWillLoad", null);
|
|
2392
|
-
__decorate$
|
|
2601
|
+
__decorate$m([
|
|
2393
2602
|
MapToComponentMethod('watchValueUpdate')
|
|
2394
2603
|
], ValueController.prototype, "watchValueUpdate", null);
|
|
2604
|
+
__decorate$m([
|
|
2605
|
+
MapToComponentMethod('componentDidLoad'),
|
|
2606
|
+
MapToComponentMethod('watchExtensions')
|
|
2607
|
+
], ValueController.prototype, "seedCommittedSnapshot", null);
|
|
2395
2608
|
|
|
2396
2609
|
/**
|
|
2397
2610
|
* The rich text content controller
|
|
@@ -3223,8 +3436,11 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3223
3436
|
const body = parsedDoc.body;
|
|
3224
3437
|
// Extract plain text from the parsed document
|
|
3225
3438
|
const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
|
|
3226
|
-
// Check for rich inline formatting
|
|
3227
|
-
|
|
3439
|
+
// Check for rich inline formatting. Code blocks (`pre` carrying
|
|
3440
|
+
// `data-language`, the marker the code-block strategy recognizes) count as
|
|
3441
|
+
// formatting so they are never flattened to inline plain text, which would
|
|
3442
|
+
// drop the code block on single-line pastes whose text equals the HTML text.
|
|
3443
|
+
let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark,code,pre[data-language]'));
|
|
3228
3444
|
if (!hasFormatting) {
|
|
3229
3445
|
hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
|
|
3230
3446
|
const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
|
|
@@ -3315,9 +3531,18 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3315
3531
|
context.restore(rootElements);
|
|
3316
3532
|
this.normalizeImportedHtmlArtifacts(parsedDoc.body);
|
|
3317
3533
|
const htmlElements = Array.from(parsedDoc.body.childNodes);
|
|
3318
|
-
|
|
3534
|
+
// Word paste enables custom-annotation processing (skipCustomAnnotations: false)
|
|
3535
|
+
// so that inline styles produced by WordPasteStrategy (colors, font-weight, etc.)
|
|
3536
|
+
// are mapped to RTE annotations. Regular rich paste skips them (undefined → default).
|
|
3537
|
+
const transformOptions = payload.type === RTE_PASTE_MODE_WORD
|
|
3538
|
+
? {
|
|
3539
|
+
autoMatchFormat: true,
|
|
3540
|
+
skipCustomAnnotations: false,
|
|
3541
|
+
}
|
|
3542
|
+
: undefined;
|
|
3543
|
+
const resultBlocks = ElementToDtoStrategyProcessor.process(htmlElements, transformOptions)
|
|
3319
3544
|
.filter(Boolean)
|
|
3320
|
-
.map((output) => output.toDto())
|
|
3545
|
+
.map((output) => output.toDto(transformOptions))
|
|
3321
3546
|
.filter(Boolean);
|
|
3322
3547
|
// Fallback for synthetic payloads: if strategy conversion yields no blocks
|
|
3323
3548
|
// but we still have plain text, create paragraph/text blocks directly.
|
|
@@ -3586,6 +3811,7 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3586
3811
|
return {
|
|
3587
3812
|
html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
|
|
3588
3813
|
text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
|
|
3814
|
+
type: event.dataTransfer.getData(RTE_PASTE_MODE_DATA_TYPE) || '',
|
|
3589
3815
|
};
|
|
3590
3816
|
}
|
|
3591
3817
|
}
|
|
@@ -3883,7 +4109,7 @@ class KeyboardLinkHandler extends BaseHandler {
|
|
|
3883
4109
|
}
|
|
3884
4110
|
}
|
|
3885
4111
|
|
|
3886
|
-
var __decorate$
|
|
4112
|
+
var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3887
4113
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3888
4114
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3889
4115
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -3924,6 +4150,7 @@ class UserInputController extends VegaSlimmer {
|
|
|
3924
4150
|
}
|
|
3925
4151
|
this.insertCompositionTextController.removeObserver();
|
|
3926
4152
|
let updateFlag = false;
|
|
4153
|
+
let updateSource = RTEUpdateSource.Default;
|
|
3927
4154
|
switch (inputType) {
|
|
3928
4155
|
case 'insertParagraph':
|
|
3929
4156
|
updateFlag = true;
|
|
@@ -3931,6 +4158,10 @@ class UserInputController extends VegaSlimmer {
|
|
|
3931
4158
|
break;
|
|
3932
4159
|
case 'insertText':
|
|
3933
4160
|
updateFlag = true;
|
|
4161
|
+
updateSource =
|
|
4162
|
+
e[RTE_UPDATE_SOURCE_KEY] === RTEUpdateSource.Composition
|
|
4163
|
+
? RTEUpdateSource.Composition
|
|
4164
|
+
: RTEUpdateSource.Default;
|
|
3934
4165
|
this.insertTextHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3935
4166
|
break;
|
|
3936
4167
|
case 'insertLineBreak':
|
|
@@ -3951,7 +4182,7 @@ class UserInputController extends VegaSlimmer {
|
|
|
3951
4182
|
break;
|
|
3952
4183
|
}
|
|
3953
4184
|
if (updateFlag) {
|
|
3954
|
-
void this.valueController.flushChanges(this.value);
|
|
4185
|
+
void this.valueController.flushChanges(this.value, true, updateSource);
|
|
3955
4186
|
}
|
|
3956
4187
|
};
|
|
3957
4188
|
}
|
|
@@ -4027,28 +4258,28 @@ class UserInputController extends VegaSlimmer {
|
|
|
4027
4258
|
return false;
|
|
4028
4259
|
}
|
|
4029
4260
|
}
|
|
4030
|
-
__decorate$
|
|
4261
|
+
__decorate$l([
|
|
4031
4262
|
MapToComponentField()
|
|
4032
4263
|
], UserInputController.prototype, "host", void 0);
|
|
4033
|
-
__decorate$
|
|
4264
|
+
__decorate$l([
|
|
4034
4265
|
MapToComponentField()
|
|
4035
4266
|
], UserInputController.prototype, "value", void 0);
|
|
4036
|
-
__decorate$
|
|
4267
|
+
__decorate$l([
|
|
4037
4268
|
MapToComponentField()
|
|
4038
4269
|
], UserInputController.prototype, "valueController", void 0);
|
|
4039
|
-
__decorate$
|
|
4270
|
+
__decorate$l([
|
|
4040
4271
|
MapToComponentField()
|
|
4041
4272
|
], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4042
|
-
__decorate$
|
|
4273
|
+
__decorate$l([
|
|
4043
4274
|
MapToComponentField()
|
|
4044
4275
|
], UserInputController.prototype, "selectionController", void 0);
|
|
4045
|
-
__decorate$
|
|
4276
|
+
__decorate$l([
|
|
4046
4277
|
MapToComponentField()
|
|
4047
4278
|
], UserInputController.prototype, "insertCompositionTextController", void 0);
|
|
4048
|
-
__decorate$
|
|
4279
|
+
__decorate$l([
|
|
4049
4280
|
MapToComponentMethod('componentDidLoad')
|
|
4050
4281
|
], UserInputController.prototype, "addActionListener", null);
|
|
4051
|
-
__decorate$
|
|
4282
|
+
__decorate$l([
|
|
4052
4283
|
MapToComponentMethod('disconnectedCallback')
|
|
4053
4284
|
], UserInputController.prototype, "removeActionListener", null);
|
|
4054
4285
|
|
|
@@ -4068,7 +4299,7 @@ class InsertImageToBlockAction extends ModifyContentAction {
|
|
|
4068
4299
|
}
|
|
4069
4300
|
}
|
|
4070
4301
|
|
|
4071
|
-
var __decorate$
|
|
4302
|
+
var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4072
4303
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4073
4304
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4074
4305
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -4160,26 +4391,26 @@ class InsertImageController extends VegaSlimmer {
|
|
|
4160
4391
|
}
|
|
4161
4392
|
}
|
|
4162
4393
|
}
|
|
4163
|
-
__decorate$
|
|
4394
|
+
__decorate$k([
|
|
4164
4395
|
MapToComponentField()
|
|
4165
4396
|
], InsertImageController.prototype, "selectionController", void 0);
|
|
4166
|
-
__decorate$
|
|
4397
|
+
__decorate$k([
|
|
4167
4398
|
MapToComponentField()
|
|
4168
4399
|
], InsertImageController.prototype, "value", void 0);
|
|
4169
|
-
__decorate$
|
|
4400
|
+
__decorate$k([
|
|
4170
4401
|
MapToComponentField()
|
|
4171
4402
|
], InsertImageController.prototype, "valueController", void 0);
|
|
4172
|
-
__decorate$
|
|
4403
|
+
__decorate$k([
|
|
4173
4404
|
MapToComponentField()
|
|
4174
4405
|
], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4175
|
-
__decorate$
|
|
4406
|
+
__decorate$k([
|
|
4176
4407
|
MapToComponentMethod('componentDidLoad')
|
|
4177
4408
|
], InsertImageController.prototype, "registerObserver", null);
|
|
4178
|
-
__decorate$
|
|
4409
|
+
__decorate$k([
|
|
4179
4410
|
MapToComponentMethod('disconnectedCallback')
|
|
4180
4411
|
], InsertImageController.prototype, "unRegisterObserver", null);
|
|
4181
4412
|
|
|
4182
|
-
var __decorate$
|
|
4413
|
+
var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4183
4414
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4184
4415
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4185
4416
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -4245,20 +4476,20 @@ class FocusController extends VegaSlimmer {
|
|
|
4245
4476
|
this.selectionController.setSelectionRange(range);
|
|
4246
4477
|
}
|
|
4247
4478
|
}
|
|
4248
|
-
__decorate$
|
|
4479
|
+
__decorate$j([
|
|
4249
4480
|
MapToComponentField()
|
|
4250
4481
|
], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4251
|
-
__decorate$
|
|
4482
|
+
__decorate$j([
|
|
4252
4483
|
MapToComponentField()
|
|
4253
4484
|
], FocusController.prototype, "selectionController", void 0);
|
|
4254
|
-
__decorate$
|
|
4485
|
+
__decorate$j([
|
|
4255
4486
|
MapToComponentField()
|
|
4256
4487
|
], FocusController.prototype, "valueController", void 0);
|
|
4257
|
-
__decorate$
|
|
4488
|
+
__decorate$j([
|
|
4258
4489
|
MapToComponentField()
|
|
4259
4490
|
], FocusController.prototype, "value", void 0);
|
|
4260
4491
|
|
|
4261
|
-
var __decorate$
|
|
4492
|
+
var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4262
4493
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4263
4494
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4264
4495
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -4465,38 +4696,39 @@ class InsertCompositionTextController extends VegaSlimmer {
|
|
|
4465
4696
|
const inputEvent = new CustomEvent('beforeinput');
|
|
4466
4697
|
inputEvent['data'] = text;
|
|
4467
4698
|
inputEvent['inputType'] = 'insertText';
|
|
4699
|
+
inputEvent[RTE_UPDATE_SOURCE_KEY] = RTEUpdateSource.Composition;
|
|
4468
4700
|
this.editableElementRef.dispatchEvent(inputEvent);
|
|
4469
4701
|
}
|
|
4470
4702
|
}
|
|
4471
|
-
__decorate$
|
|
4703
|
+
__decorate$i([
|
|
4472
4704
|
MapToComponentField()
|
|
4473
4705
|
], InsertCompositionTextController.prototype, "selectionController", void 0);
|
|
4474
|
-
__decorate$
|
|
4706
|
+
__decorate$i([
|
|
4475
4707
|
MapToComponentField()
|
|
4476
4708
|
], InsertCompositionTextController.prototype, "host", void 0);
|
|
4477
|
-
__decorate$
|
|
4709
|
+
__decorate$i([
|
|
4478
4710
|
MapToComponentField()
|
|
4479
4711
|
], InsertCompositionTextController.prototype, "value", void 0);
|
|
4480
|
-
__decorate$
|
|
4712
|
+
__decorate$i([
|
|
4481
4713
|
MapToComponentField()
|
|
4482
4714
|
], InsertCompositionTextController.prototype, "valueController", void 0);
|
|
4483
|
-
__decorate$
|
|
4715
|
+
__decorate$i([
|
|
4484
4716
|
MapToComponentField()
|
|
4485
4717
|
], InsertCompositionTextController.prototype, "userInputController", void 0);
|
|
4486
|
-
__decorate$
|
|
4718
|
+
__decorate$i([
|
|
4487
4719
|
MapToComponentField()
|
|
4488
4720
|
], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4489
|
-
__decorate$
|
|
4721
|
+
__decorate$i([
|
|
4490
4722
|
MapToComponentMethod('componentDidLoad')
|
|
4491
4723
|
], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
|
|
4492
|
-
__decorate$
|
|
4724
|
+
__decorate$i([
|
|
4493
4725
|
MapToComponentMethod('disconnectedCallback')
|
|
4494
4726
|
], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
|
|
4495
|
-
__decorate$
|
|
4727
|
+
__decorate$i([
|
|
4496
4728
|
MapToComponentMethod('componentDidRender')
|
|
4497
4729
|
], InsertCompositionTextController.prototype, "reConnectObserver", null);
|
|
4498
4730
|
|
|
4499
|
-
var __decorate$
|
|
4731
|
+
var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4500
4732
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4501
4733
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4502
4734
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -4705,23 +4937,23 @@ class DeleteSelectedNodesController extends VegaSlimmer {
|
|
|
4705
4937
|
}
|
|
4706
4938
|
}
|
|
4707
4939
|
}
|
|
4708
|
-
__decorate$
|
|
4940
|
+
__decorate$h([
|
|
4709
4941
|
MapToComponentField()
|
|
4710
4942
|
], DeleteSelectedNodesController.prototype, "host", void 0);
|
|
4711
|
-
__decorate$
|
|
4943
|
+
__decorate$h([
|
|
4712
4944
|
MapToComponentField()
|
|
4713
4945
|
], DeleteSelectedNodesController.prototype, "selectionController", void 0);
|
|
4714
|
-
__decorate$
|
|
4946
|
+
__decorate$h([
|
|
4715
4947
|
MapToComponentField()
|
|
4716
4948
|
], DeleteSelectedNodesController.prototype, "value", void 0);
|
|
4717
|
-
__decorate$
|
|
4949
|
+
__decorate$h([
|
|
4718
4950
|
MapToComponentMethod('connectedCallback')
|
|
4719
4951
|
], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
|
|
4720
|
-
__decorate$
|
|
4952
|
+
__decorate$h([
|
|
4721
4953
|
MapToComponentMethod('disconnectedCallback')
|
|
4722
4954
|
], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
|
|
4723
4955
|
|
|
4724
|
-
var __decorate$
|
|
4956
|
+
var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4725
4957
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4726
4958
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4727
4959
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -4798,22 +5030,22 @@ class HistoryController extends ComponentValueHistoryControllerSlimmer {
|
|
|
4798
5030
|
await this.valueController.flushChanges(content, false);
|
|
4799
5031
|
}
|
|
4800
5032
|
}
|
|
4801
|
-
__decorate$
|
|
5033
|
+
__decorate$g([
|
|
4802
5034
|
MapToComponentField()
|
|
4803
5035
|
], HistoryController.prototype, "host", void 0);
|
|
4804
|
-
__decorate$
|
|
5036
|
+
__decorate$g([
|
|
4805
5037
|
MapToComponentField()
|
|
4806
5038
|
], HistoryController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4807
|
-
__decorate$
|
|
5039
|
+
__decorate$g([
|
|
4808
5040
|
MapToComponentField()
|
|
4809
5041
|
], HistoryController.prototype, "valueController", void 0);
|
|
4810
|
-
__decorate$
|
|
5042
|
+
__decorate$g([
|
|
4811
5043
|
MapToComponentField()
|
|
4812
5044
|
], HistoryController.prototype, "value", void 0);
|
|
4813
|
-
__decorate$
|
|
5045
|
+
__decorate$g([
|
|
4814
5046
|
MapToComponentField()
|
|
4815
5047
|
], HistoryController.prototype, "selectionController", void 0);
|
|
4816
|
-
__decorate$
|
|
5048
|
+
__decorate$g([
|
|
4817
5049
|
MapToComponentMethod('componentDidLoad')
|
|
4818
5050
|
], HistoryController.prototype, "registerInitState", null);
|
|
4819
5051
|
|
|
@@ -4834,7 +5066,7 @@ class TransformToCodeBlockAction extends ModifyContentAction {
|
|
|
4834
5066
|
}
|
|
4835
5067
|
}
|
|
4836
5068
|
|
|
4837
|
-
var __decorate$
|
|
5069
|
+
var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4838
5070
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4839
5071
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4840
5072
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -4890,13 +5122,13 @@ class CodeBlockToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
4890
5122
|
(() => {
|
|
4891
5123
|
VegaInternalIconManager.register({ 'rectangle-code': rectangleCode });
|
|
4892
5124
|
})();
|
|
4893
|
-
__decorate$
|
|
5125
|
+
__decorate$f([
|
|
4894
5126
|
MapToComponentField()
|
|
4895
5127
|
], CodeBlockToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
4896
|
-
__decorate$
|
|
5128
|
+
__decorate$f([
|
|
4897
5129
|
MapToComponentField()
|
|
4898
5130
|
], CodeBlockToolbarButtonSlimmer.prototype, "valueController", void 0);
|
|
4899
|
-
__decorate$
|
|
5131
|
+
__decorate$f([
|
|
4900
5132
|
MapToComponentField()
|
|
4901
5133
|
], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
|
|
4902
5134
|
|
|
@@ -4904,7 +5136,7 @@ const undoIcon = {
|
|
|
4904
5136
|
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>`,
|
|
4905
5137
|
};
|
|
4906
5138
|
|
|
4907
|
-
var __decorate$
|
|
5139
|
+
var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4908
5140
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4909
5141
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4910
5142
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -4933,7 +5165,7 @@ class UndoToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
4933
5165
|
(() => {
|
|
4934
5166
|
VegaInternalIconManager.register({ 'arrow-turn-left': undoIcon });
|
|
4935
5167
|
})();
|
|
4936
|
-
__decorate$
|
|
5168
|
+
__decorate$e([
|
|
4937
5169
|
MapToComponentField()
|
|
4938
5170
|
], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
|
|
4939
5171
|
|
|
@@ -4941,7 +5173,7 @@ const redoIcon = {
|
|
|
4941
5173
|
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>`,
|
|
4942
5174
|
};
|
|
4943
5175
|
|
|
4944
|
-
var __decorate$
|
|
5176
|
+
var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4945
5177
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4946
5178
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4947
5179
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -4970,7 +5202,7 @@ class RedoToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
4970
5202
|
(() => {
|
|
4971
5203
|
VegaInternalIconManager.register({ 'arrow-turn-right': redoIcon });
|
|
4972
5204
|
})();
|
|
4973
|
-
__decorate$
|
|
5205
|
+
__decorate$d([
|
|
4974
5206
|
MapToComponentField()
|
|
4975
5207
|
], RedoToolbarButtonSlimmer.prototype, "historyController", void 0);
|
|
4976
5208
|
|
|
@@ -5041,7 +5273,7 @@ const displayCode = {
|
|
|
5041
5273
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M512 48c8.8 0 16 7.2 16 16V352c0 8.8-7.2 16-16 16H336.5c-.3 0-.6 0-.8 0H240.4c-.3 0-.6 0-.8 0H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H512zM64 416H211.7l-8 48H152c-13.3 0-24 10.7-24 24s10.7 24 24 24h72H352h72c13.3 0 24-10.7 24-24s-10.7-24-24-24H372.3l-8-48H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64zm188.3 48l8-48h55.3l8 48H252.3zM249 177c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-48 48c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM361 143c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"/></svg>`,
|
|
5042
5274
|
};
|
|
5043
5275
|
|
|
5044
|
-
var __decorate$
|
|
5276
|
+
var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5045
5277
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5046
5278
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5047
5279
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -5062,11 +5294,25 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
5062
5294
|
if (isSelected) {
|
|
5063
5295
|
await this.saveSourceCode();
|
|
5064
5296
|
}
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5297
|
+
// VD-8789 (keyboard a11y): the previous implementation cleared the editor
|
|
5298
|
+
// selection here via `selectionController.setSelectionRange(new Range())`
|
|
5299
|
+
// when entering source view. That call is intentionally removed so the
|
|
5300
|
+
// caret position is preserved when toggling back to visual mode, and so
|
|
5301
|
+
// the source-edit button can be re-activated from the keyboard without
|
|
5302
|
+
// the selection being reset out from under the user.
|
|
5068
5303
|
this.sourceView = !isSelected;
|
|
5069
5304
|
}
|
|
5305
|
+
// VD-8789 (keyboard a11y): the default `preventLostFocus` calls
|
|
5306
|
+
// `e.preventDefault()` on mousedown so the button never receives focus and
|
|
5307
|
+
// the rich-text editor selection is preserved. The source-edit toggle is
|
|
5308
|
+
// different — activating it switches the editor to source-view mode, where
|
|
5309
|
+
// the visual-mode selection is no longer relevant. We override with a no-op
|
|
5310
|
+
// so the button is allowed to take focus on click, matching its keyboard
|
|
5311
|
+
// activation path and giving keyboard / screen-reader users a stable focus
|
|
5312
|
+
// target to toggle back out of source view.
|
|
5313
|
+
preventLostFocus() {
|
|
5314
|
+
return {};
|
|
5315
|
+
}
|
|
5070
5316
|
isSelected() {
|
|
5071
5317
|
return this.sourceView;
|
|
5072
5318
|
}
|
|
@@ -5074,7 +5320,9 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
5074
5320
|
return super.isDisabled();
|
|
5075
5321
|
}
|
|
5076
5322
|
async saveSourceCode() {
|
|
5323
|
+
var _a;
|
|
5077
5324
|
const sourceViewValue = this.richTextEditorSourceViewRenderer.getSourceCode();
|
|
5325
|
+
const blockBoundaryRegistry = (_a = extensionContextManager.getExtensionContext(this.host)) === null || _a === void 0 ? void 0 : _a.blockBoundaryRegistry;
|
|
5078
5326
|
if (!sourceViewValue && this.value.isEmpty()) {
|
|
5079
5327
|
return;
|
|
5080
5328
|
}
|
|
@@ -5082,6 +5330,7 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
5082
5330
|
await this.valueController.flushChanges(VegaRTEContent.fromHtml(sourceViewValue, {
|
|
5083
5331
|
autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
|
|
5084
5332
|
filterInlineStyles: this.sourceEditConfig.filterInlineStyles,
|
|
5333
|
+
blockBoundaryRegistry,
|
|
5085
5334
|
}));
|
|
5086
5335
|
}
|
|
5087
5336
|
}
|
|
@@ -5089,26 +5338,61 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
5089
5338
|
(() => {
|
|
5090
5339
|
VegaInternalIconManager.register({ 'display-code': displayCode });
|
|
5091
5340
|
})();
|
|
5092
|
-
__decorate$
|
|
5341
|
+
__decorate$c([
|
|
5093
5342
|
MapToComponentField({ writable: true })
|
|
5094
5343
|
], SourceEditToolbarButtonSlimmer.prototype, "sourceView", void 0);
|
|
5095
|
-
__decorate$
|
|
5096
|
-
MapToComponentField()
|
|
5097
|
-
], SourceEditToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
5098
|
-
__decorate$b([
|
|
5344
|
+
__decorate$c([
|
|
5099
5345
|
MapToComponentField()
|
|
5100
5346
|
], SourceEditToolbarButtonSlimmer.prototype, "valueController", void 0);
|
|
5101
|
-
__decorate$
|
|
5347
|
+
__decorate$c([
|
|
5102
5348
|
MapToComponentField()
|
|
5103
5349
|
], SourceEditToolbarButtonSlimmer.prototype, "richTextEditorSourceViewRenderer", void 0);
|
|
5104
|
-
__decorate$
|
|
5350
|
+
__decorate$c([
|
|
5105
5351
|
MapToComponentField()
|
|
5106
5352
|
], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
|
|
5107
|
-
__decorate$
|
|
5353
|
+
__decorate$c([
|
|
5354
|
+
MapToComponentField()
|
|
5355
|
+
], SourceEditToolbarButtonSlimmer.prototype, "host", void 0);
|
|
5356
|
+
__decorate$c([
|
|
5108
5357
|
MapToComponentField()
|
|
5109
5358
|
], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
|
|
5110
5359
|
|
|
5111
|
-
|
|
5360
|
+
/**
|
|
5361
|
+
* Per-editor registry for block-boundary predicates contributed by extensions.
|
|
5362
|
+
*/
|
|
5363
|
+
class BlockBoundaryRegistry {
|
|
5364
|
+
constructor() {
|
|
5365
|
+
this.predicates = new Set();
|
|
5366
|
+
}
|
|
5367
|
+
/**
|
|
5368
|
+
* Register a block-boundary predicate.
|
|
5369
|
+
*
|
|
5370
|
+
* @param {BlockBoundaryPredicate} predicate - Predicate to register.
|
|
5371
|
+
* @returns {() => void} Unregister callback.
|
|
5372
|
+
*/
|
|
5373
|
+
register(predicate) {
|
|
5374
|
+
this.predicates.add(predicate);
|
|
5375
|
+
return () => {
|
|
5376
|
+
this.predicates.delete(predicate);
|
|
5377
|
+
};
|
|
5378
|
+
}
|
|
5379
|
+
/**
|
|
5380
|
+
* Returns true when any registered predicate marks the element as a boundary.
|
|
5381
|
+
*
|
|
5382
|
+
* @param {HTMLElement} element - Element to inspect.
|
|
5383
|
+
* @returns {boolean} Whether the element is a boundary.
|
|
5384
|
+
*/
|
|
5385
|
+
isBoundary(element) {
|
|
5386
|
+
for (const predicate of this.predicates) {
|
|
5387
|
+
if (predicate(element)) {
|
|
5388
|
+
return true;
|
|
5389
|
+
}
|
|
5390
|
+
}
|
|
5391
|
+
return false;
|
|
5392
|
+
}
|
|
5393
|
+
}
|
|
5394
|
+
|
|
5395
|
+
var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5112
5396
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5113
5397
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5114
5398
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
@@ -5220,37 +5504,114 @@ class RTEExtensionController extends VegaSlimmer {
|
|
|
5220
5504
|
getSelectedNodes: this.getSelectedNodes,
|
|
5221
5505
|
setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
|
|
5222
5506
|
getSelection: this.selectionController.getSelection.bind(this.selectionController),
|
|
5507
|
+
blockBoundaryRegistry: new BlockBoundaryRegistry(),
|
|
5223
5508
|
};
|
|
5224
5509
|
}
|
|
5225
5510
|
}
|
|
5226
|
-
__decorate$
|
|
5511
|
+
__decorate$b([
|
|
5227
5512
|
MapToComponentField()
|
|
5228
5513
|
], RTEExtensionController.prototype, "extensions", void 0);
|
|
5229
|
-
__decorate$
|
|
5514
|
+
__decorate$b([
|
|
5230
5515
|
MapToComponentField()
|
|
5231
5516
|
], RTEExtensionController.prototype, "host", void 0);
|
|
5232
|
-
__decorate$
|
|
5517
|
+
__decorate$b([
|
|
5233
5518
|
MapToComponentField()
|
|
5234
5519
|
], RTEExtensionController.prototype, "sourceView", void 0);
|
|
5235
|
-
__decorate$
|
|
5520
|
+
__decorate$b([
|
|
5236
5521
|
MapToComponentField()
|
|
5237
5522
|
], RTEExtensionController.prototype, "valueController", void 0);
|
|
5238
|
-
__decorate$
|
|
5523
|
+
__decorate$b([
|
|
5239
5524
|
MapToComponentField()
|
|
5240
5525
|
], RTEExtensionController.prototype, "selectionController", void 0);
|
|
5241
|
-
__decorate$
|
|
5526
|
+
__decorate$b([
|
|
5242
5527
|
MapToComponentMethod('componentWillLoad')
|
|
5243
5528
|
], RTEExtensionController.prototype, "prepareExtensionsBeforeLoad", null);
|
|
5244
|
-
__decorate$
|
|
5529
|
+
__decorate$b([
|
|
5245
5530
|
MapToComponentMethod('componentDidLoad')
|
|
5246
5531
|
], RTEExtensionController.prototype, "initialExtensionContext", null);
|
|
5247
|
-
__decorate$
|
|
5532
|
+
__decorate$b([
|
|
5248
5533
|
MapToComponentMethod('disconnectedCallback')
|
|
5249
5534
|
], RTEExtensionController.prototype, "destroyExtension", null);
|
|
5250
|
-
__decorate$
|
|
5535
|
+
__decorate$b([
|
|
5251
5536
|
MapToComponentMethod('watchExtensions')
|
|
5252
5537
|
], RTEExtensionController.prototype, "handleExtensionsChange", null);
|
|
5253
5538
|
|
|
5539
|
+
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5540
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5541
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5542
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5543
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5544
|
+
};
|
|
5545
|
+
/**
|
|
5546
|
+
* Bridges the word count extension to the editor component so the footer UI can
|
|
5547
|
+
* read whether the character count should be shown and its current value.
|
|
5548
|
+
*/
|
|
5549
|
+
class WordCountController extends VegaSlimmer {
|
|
5550
|
+
constructor() {
|
|
5551
|
+
super(...arguments);
|
|
5552
|
+
this.cachedValue = null;
|
|
5553
|
+
this.cachedConfig = null;
|
|
5554
|
+
this.cachedData = null;
|
|
5555
|
+
}
|
|
5556
|
+
/**
|
|
5557
|
+
* Whether the character count UI should be rendered.
|
|
5558
|
+
*
|
|
5559
|
+
* @returns {boolean} True when a word count extension requests the UI.
|
|
5560
|
+
*/
|
|
5561
|
+
shouldShowUI() {
|
|
5562
|
+
var _a;
|
|
5563
|
+
return !!((_a = this.findWordCountExtension()) === null || _a === void 0 ? void 0 : _a.getConfig().showCharCount);
|
|
5564
|
+
}
|
|
5565
|
+
/**
|
|
5566
|
+
* Compute the current character count data from the editor content.
|
|
5567
|
+
*
|
|
5568
|
+
* @returns {Nullable<VegaRTEWordCountData>} The count data or null when no word count extension is registered.
|
|
5569
|
+
*/
|
|
5570
|
+
getData() {
|
|
5571
|
+
const extension = this.findWordCountExtension();
|
|
5572
|
+
if (!extension) {
|
|
5573
|
+
return null;
|
|
5574
|
+
}
|
|
5575
|
+
const value = this.host.value;
|
|
5576
|
+
const config = extension.getConfig();
|
|
5577
|
+
// VegaRTEContent is immutable, so a matching value/config reference means the data is unchanged.
|
|
5578
|
+
if (this.cachedData && value === this.cachedValue && deepEqual(config, this.cachedConfig)) {
|
|
5579
|
+
return this.cachedData;
|
|
5580
|
+
}
|
|
5581
|
+
this.cachedData = extension.getData(value);
|
|
5582
|
+
this.cachedValue = value;
|
|
5583
|
+
this.cachedConfig = config;
|
|
5584
|
+
return this.cachedData;
|
|
5585
|
+
}
|
|
5586
|
+
/**
|
|
5587
|
+
* Whether the word count extension gates commits with a hard character limit.
|
|
5588
|
+
*
|
|
5589
|
+
* @returns {boolean} True when a hard limit with a max character count is configured for this host.
|
|
5590
|
+
*/
|
|
5591
|
+
hasWordCountHardLimit() {
|
|
5592
|
+
var _a;
|
|
5593
|
+
const config = (_a = this.findWordCountExtension()) === null || _a === void 0 ? void 0 : _a.getConfig();
|
|
5594
|
+
return !!config && Boolean(config.hardLimit) && isNonNullable(config.maxChars);
|
|
5595
|
+
}
|
|
5596
|
+
/**
|
|
5597
|
+
* Locate the word count extension by its runtime `type` discriminator.
|
|
5598
|
+
* Use this way instead of instanceof to avoid direct dependency on the extension class.
|
|
5599
|
+
*
|
|
5600
|
+
* @returns {Nullable<VegaRTEWordCountExtension>} The word count extension or null.
|
|
5601
|
+
*/
|
|
5602
|
+
findWordCountExtension() {
|
|
5603
|
+
var _a;
|
|
5604
|
+
const extension = ((_a = this.extensions) !== null && _a !== void 0 ? _a : []).find((ext) => 'type' in ext && ext['type'] === RTE_WORD_COUNT_KEY);
|
|
5605
|
+
return extension !== null && extension !== void 0 ? extension : null;
|
|
5606
|
+
}
|
|
5607
|
+
}
|
|
5608
|
+
__decorate$a([
|
|
5609
|
+
MapToComponentField()
|
|
5610
|
+
], WordCountController.prototype, "extensions", void 0);
|
|
5611
|
+
__decorate$a([
|
|
5612
|
+
MapToComponentField()
|
|
5613
|
+
], WordCountController.prototype, "host", void 0);
|
|
5614
|
+
|
|
5254
5615
|
/**
|
|
5255
5616
|
* Class to format HTML code with proper indentation and style cleanup.
|
|
5256
5617
|
*/
|
|
@@ -5435,14 +5796,16 @@ class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
|
|
|
5435
5796
|
* Handle the blur event of the code block. When the code block loses focus, emit the source code change event with the current source code.
|
|
5436
5797
|
*/
|
|
5437
5798
|
this.handleCodeBlockBlur = () => {
|
|
5438
|
-
var _a;
|
|
5799
|
+
var _a, _b;
|
|
5439
5800
|
// If source view is closed while blurring, it means the user switch back to normal mode, so we can skip emitting the change event.
|
|
5440
5801
|
if (this.sourceView) {
|
|
5441
5802
|
const filterInlineStyles = Boolean(this.sourceEditConfig.filterInlineStyles);
|
|
5442
5803
|
const sourceCode = this.getSourceCode();
|
|
5804
|
+
const blockBoundaryRegistry = (_a = extensionContextManager.getExtensionContext(this.host)) === null || _a === void 0 ? void 0 : _a.blockBoundaryRegistry;
|
|
5443
5805
|
const newValue = VegaRTEContent.fromHtml(sourceCode, {
|
|
5444
|
-
autoMatchFormat: (
|
|
5806
|
+
autoMatchFormat: (_b = this.sourceEditConfig.autoMatchFormat) !== null && _b !== void 0 ? _b : true,
|
|
5445
5807
|
filterInlineStyles,
|
|
5808
|
+
blockBoundaryRegistry,
|
|
5446
5809
|
});
|
|
5447
5810
|
const newSourceCode = newValue.toHtml({ filterInlineStyles });
|
|
5448
5811
|
if (newSourceCode !== this.prevRecord) {
|
|
@@ -5565,6 +5928,13 @@ const VegaRichTextEditor = class {
|
|
|
5565
5928
|
this.vegaSourceCodeChange = createEvent(this, "vegaSourceCodeChange", 7);
|
|
5566
5929
|
this.sourceCodeChange = createEvent(this, "sourceCodeChange", 7);
|
|
5567
5930
|
this.globalSlimmers = {};
|
|
5931
|
+
this.ariaAttributesValueMapper = new AriaAttributesValueMapper(() => this.vegaRichTextEditorRenderer.getRTEEditableElementRef(), {
|
|
5932
|
+
'aria-label': {
|
|
5933
|
+
dependency: ['data-aria-label', 'label'],
|
|
5934
|
+
// When no label is provided, announce a meaningful role name
|
|
5935
|
+
defaultValue: () => this.translationSlimmer.t('Rich Text Editor. Editing area: main. '),
|
|
5936
|
+
},
|
|
5937
|
+
});
|
|
5568
5938
|
this.translationSlimmer = new TranslationSlimmer();
|
|
5569
5939
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
|
|
5570
5940
|
this.formFieldController = new FormFieldControllerSlimmer({
|
|
@@ -5617,6 +5987,7 @@ const VegaRichTextEditor = class {
|
|
|
5617
5987
|
this.historyController = new HistoryController();
|
|
5618
5988
|
this.internalCodeBlockSelectionController = new InternalCodeBlockSelectionController();
|
|
5619
5989
|
this.rteExtensionController = new RTEExtensionController();
|
|
5990
|
+
this.wordCountController = new WordCountController();
|
|
5620
5991
|
this.sourceCodeChangeEventEmitter = createEventEmitSlimmer(VegaRichTextEditor, VegaSourceCodeChange);
|
|
5621
5992
|
this.richTextEditorSourceViewRenderer = new VegaRichTextEditorSourceViewRenderer();
|
|
5622
5993
|
this.richTextContentEditable = true;
|
|
@@ -5815,6 +6186,9 @@ const VegaRichTextEditor = class {
|
|
|
5815
6186
|
__decorate$8([
|
|
5816
6187
|
InjectVegaGlobalSlimmer()
|
|
5817
6188
|
], VegaRichTextEditor.prototype, "globalSlimmers", void 0);
|
|
6189
|
+
__decorate$8([
|
|
6190
|
+
InjectVegaSlimmer()
|
|
6191
|
+
], VegaRichTextEditor.prototype, "ariaAttributesValueMapper", void 0);
|
|
5818
6192
|
__decorate$8([
|
|
5819
6193
|
InjectVegaSlimmer()
|
|
5820
6194
|
], VegaRichTextEditor.prototype, "translationSlimmer", void 0);
|
|
@@ -5935,6 +6309,9 @@ __decorate$8([
|
|
|
5935
6309
|
__decorate$8([
|
|
5936
6310
|
InjectVegaSlimmer()
|
|
5937
6311
|
], VegaRichTextEditor.prototype, "rteExtensionController", void 0);
|
|
6312
|
+
__decorate$8([
|
|
6313
|
+
InjectVegaSlimmer()
|
|
6314
|
+
], VegaRichTextEditor.prototype, "wordCountController", void 0);
|
|
5938
6315
|
__decorate$8([
|
|
5939
6316
|
InjectVegaSlimmer()
|
|
5940
6317
|
], VegaRichTextEditor.prototype, "sourceCodeChangeEventEmitter", void 0);
|
|
@@ -5968,7 +6345,7 @@ class VegaRichTextEditorToolbarButtonRenderer extends VegaSlimmer {
|
|
|
5968
6345
|
'rich-text-editor-toolbar-button-hidden': this.hidden,
|
|
5969
6346
|
'rich-text-editor-toolbar-button-selected': this.selected,
|
|
5970
6347
|
}, onClick: this.handleClick, disabled: this.disabled, hidden: this.hidden },
|
|
5971
|
-
h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
|
|
6348
|
+
h("vega-flex", { "aria-hidden": "true", gap: "size-8", justifyContent: "center", alignItems: "center" },
|
|
5972
6349
|
this.icon && (h("vega-icon", { size: "size-16", color: this.iconColor, icon: VegaInternalIconManager.getIconKey(this.icon) })),
|
|
5973
6350
|
this.showArrowIcon && (h("vega-icon", { size: "size-8", color: "text-secondary", icon: VegaInternalIconManager.getIconKey(this.arrowIcon || 'chevron-down') }))),
|
|
5974
6351
|
h("slot", null)));
|
|
@@ -6034,6 +6411,12 @@ const VegaRichTextEditorToolbarButton = class {
|
|
|
6034
6411
|
},
|
|
6035
6412
|
});
|
|
6036
6413
|
this.renderer = new VegaRichTextEditorToolbarButtonRenderer();
|
|
6414
|
+
this.ariaAttributesValueMapper = new AriaAttributesValueMapper(() => this.host.shadowRoot.querySelector('button'), {
|
|
6415
|
+
'aria-label': {
|
|
6416
|
+
dependency: ['data-aria-label'],
|
|
6417
|
+
defaultValue: 'No label defined',
|
|
6418
|
+
},
|
|
6419
|
+
});
|
|
6037
6420
|
/**
|
|
6038
6421
|
* Specifies whether the rich text editor toolbar button element is disabled.
|
|
6039
6422
|
*
|
|
@@ -6078,7 +6461,9 @@ const VegaRichTextEditorToolbarButton = class {
|
|
|
6078
6461
|
this.iconColor = 'text-primary';
|
|
6079
6462
|
}
|
|
6080
6463
|
render() {
|
|
6081
|
-
|
|
6464
|
+
// The host is a decorative wrapper around the shadow <button>; keep it out of the
|
|
6465
|
+
// a11y tree so VoiceOver doesn't announce it as a "group" when entering the button.
|
|
6466
|
+
return sanitizeVegaComponent(h(Host, { role: "presentation" }, this.renderer.render()), this.host);
|
|
6082
6467
|
}
|
|
6083
6468
|
get host() { return getElement(this); }
|
|
6084
6469
|
};
|
|
@@ -6097,6 +6482,9 @@ __decorate$6([
|
|
|
6097
6482
|
__decorate$6([
|
|
6098
6483
|
InjectVegaSlimmer()
|
|
6099
6484
|
], VegaRichTextEditorToolbarButton.prototype, "renderer", void 0);
|
|
6485
|
+
__decorate$6([
|
|
6486
|
+
InjectVegaSlimmer()
|
|
6487
|
+
], VegaRichTextEditorToolbarButton.prototype, "ariaAttributesValueMapper", void 0);
|
|
6100
6488
|
VegaRichTextEditorToolbarButton.style = vegaRichTextEditorToolbarButtonCss;
|
|
6101
6489
|
|
|
6102
6490
|
var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -6324,6 +6712,11 @@ class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
|
|
|
6324
6712
|
this.handleFormRef = (ref) => {
|
|
6325
6713
|
this.formRef = ref;
|
|
6326
6714
|
};
|
|
6715
|
+
this.handlePopoverContentRef = (ref) => {
|
|
6716
|
+
if (ref) {
|
|
6717
|
+
this.popoverContentRef = ref;
|
|
6718
|
+
}
|
|
6719
|
+
};
|
|
6327
6720
|
this.handleUrlInputRef = (ref) => {
|
|
6328
6721
|
if (ref) {
|
|
6329
6722
|
this.urlInputRef = ref;
|
|
@@ -6357,6 +6750,9 @@ class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
|
|
|
6357
6750
|
getPopoverRef() {
|
|
6358
6751
|
return this.popoverRef;
|
|
6359
6752
|
}
|
|
6753
|
+
getPopoverContentRef() {
|
|
6754
|
+
return this.popoverContentRef;
|
|
6755
|
+
}
|
|
6360
6756
|
getFormRef() {
|
|
6361
6757
|
return this.formRef;
|
|
6362
6758
|
}
|
|
@@ -6370,7 +6766,7 @@ class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
|
|
|
6370
6766
|
return (h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: this.handlePopoverRef },
|
|
6371
6767
|
h("span", { slot: "popover-content" },
|
|
6372
6768
|
h("slot", null)),
|
|
6373
|
-
h("div", { slot: "popover" },
|
|
6769
|
+
h("div", { slot: "popover", ref: this.handlePopoverContentRef },
|
|
6374
6770
|
this.renderLinkUnlinkContent(),
|
|
6375
6771
|
this.renderLinkEditContent())));
|
|
6376
6772
|
}
|
|
@@ -6596,10 +6992,41 @@ class LinkEditorController extends VegaSlimmer {
|
|
|
6596
6992
|
super(...arguments);
|
|
6597
6993
|
this.linkUrlNormalizer = new LinkUrlNormalizer();
|
|
6598
6994
|
this.linkTypeHandlers = LINK_TYPE_HANDLER_MAP;
|
|
6995
|
+
/**
|
|
6996
|
+
* The element the trigger click listener is currently attached to (the link
|
|
6997
|
+
* wrapper acting as the popover target).
|
|
6998
|
+
*/
|
|
6999
|
+
this.triggerListenerEl = null;
|
|
7000
|
+
/**
|
|
7001
|
+
* Whether the popover was opened via a keyboard or screen-reader (VoiceOver)
|
|
7002
|
+
* activation. When true, focus is moved into the popover so screen reader
|
|
7003
|
+
* users land on the Edit button.
|
|
7004
|
+
*/
|
|
7005
|
+
this.isVoiceOverTrigger = false;
|
|
7006
|
+
/**
|
|
7007
|
+
* The element that had focus when the VoiceOver activation happened, so focus
|
|
7008
|
+
* can be restored to the link once the popover is hidden.
|
|
7009
|
+
*/
|
|
7010
|
+
this.focusReturnEl = null;
|
|
7011
|
+
/**
|
|
7012
|
+
* Records whether the popover was opened via a keyboard/VoiceOver activation
|
|
7013
|
+
* and, if so, the element to restore focus to when the popover closes.
|
|
7014
|
+
*
|
|
7015
|
+
* @param {MouseEvent} e - The click event on the link wrapper.
|
|
7016
|
+
* @returns {void} No return value.
|
|
7017
|
+
*/
|
|
7018
|
+
this.handleTriggerClick = (e) => {
|
|
7019
|
+
this.isVoiceOverTrigger = this.isKeyboardOrScreenReaderActivation(e);
|
|
7020
|
+
this.focusReturnEl = this.isVoiceOverTrigger
|
|
7021
|
+
? // eslint-disable-next-line no-restricted-globals
|
|
7022
|
+
getDeepActiveElementInShadow(document, true)
|
|
7023
|
+
: null;
|
|
7024
|
+
};
|
|
6599
7025
|
}
|
|
6600
7026
|
/** Initializes the popover target after the component loads. */
|
|
6601
7027
|
componentDidLoad() {
|
|
6602
7028
|
this.updatePopoverTarget();
|
|
7029
|
+
this.attachTriggerListener();
|
|
6603
7030
|
}
|
|
6604
7031
|
/** Notifies observers after each render cycle. */
|
|
6605
7032
|
componentDidRender() {
|
|
@@ -6618,6 +7045,7 @@ class LinkEditorController extends VegaSlimmer {
|
|
|
6618
7045
|
watchTargetChange() {
|
|
6619
7046
|
this.linkTypeConfigController.invalidateConfiguredLinkTypesCache();
|
|
6620
7047
|
this.updatePopoverTarget();
|
|
7048
|
+
this.attachTriggerListener();
|
|
6621
7049
|
}
|
|
6622
7050
|
/**
|
|
6623
7051
|
* Prepares the editor state before the popover is shown.
|
|
@@ -6648,6 +7076,9 @@ class LinkEditorController extends VegaSlimmer {
|
|
|
6648
7076
|
}
|
|
6649
7077
|
await this.populateEditForm();
|
|
6650
7078
|
}
|
|
7079
|
+
if (this.status !== 'linkEdit' && this.isVoiceOverTrigger) {
|
|
7080
|
+
this.focusPopoverContentForVoiceOver();
|
|
7081
|
+
}
|
|
6651
7082
|
}
|
|
6652
7083
|
/**
|
|
6653
7084
|
* Clears form state after the popover hides.
|
|
@@ -6664,6 +7095,7 @@ class LinkEditorController extends VegaSlimmer {
|
|
|
6664
7095
|
if (this.resetStatusAfterHide) {
|
|
6665
7096
|
this.linkEditorStateManager.setShouldResetStatusOnNextShow(true);
|
|
6666
7097
|
}
|
|
7098
|
+
this.restoreFocusAfterVoiceOver();
|
|
6667
7099
|
}
|
|
6668
7100
|
/**
|
|
6669
7101
|
* Switches the editor into link edit mode.
|
|
@@ -6825,6 +7257,93 @@ class LinkEditorController extends VegaSlimmer {
|
|
|
6825
7257
|
updatePopoverTarget() {
|
|
6826
7258
|
remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.renderer.getPopoverRef(), VegaInternalPopoverUpdateTarget), this.target);
|
|
6827
7259
|
}
|
|
7260
|
+
/**
|
|
7261
|
+
* Attaches a capture-phase click listener to the link wrapper (the popover
|
|
7262
|
+
* target) so a keyboard/VoiceOver activation can be distinguished from a real
|
|
7263
|
+
* pointer click before the popover opens. Re-attaches when the target changes.
|
|
7264
|
+
*
|
|
7265
|
+
* @returns {void} No return value.
|
|
7266
|
+
*/
|
|
7267
|
+
attachTriggerListener() {
|
|
7268
|
+
if (this.triggerListenerEl === this.target) {
|
|
7269
|
+
return;
|
|
7270
|
+
}
|
|
7271
|
+
this.detachTriggerListener();
|
|
7272
|
+
if (this.target) {
|
|
7273
|
+
this.triggerListenerEl = this.target;
|
|
7274
|
+
this.target.addEventListener('click', this.handleTriggerClick, { capture: true });
|
|
7275
|
+
}
|
|
7276
|
+
}
|
|
7277
|
+
/**
|
|
7278
|
+
* Removes the trigger listener from the previously observed element.
|
|
7279
|
+
*
|
|
7280
|
+
* @returns {void} No return value.
|
|
7281
|
+
*/
|
|
7282
|
+
detachTriggerListener() {
|
|
7283
|
+
if (this.triggerListenerEl) {
|
|
7284
|
+
this.triggerListenerEl.removeEventListener('click', this.handleTriggerClick, { capture: true });
|
|
7285
|
+
this.triggerListenerEl = null;
|
|
7286
|
+
}
|
|
7287
|
+
}
|
|
7288
|
+
/**
|
|
7289
|
+
* Determines whether a click on the link wrapper came from a keyboard or
|
|
7290
|
+
* screen reader (VoiceOver) rather than a real pointer.
|
|
7291
|
+
*
|
|
7292
|
+
* A genuine pointer click lands inside the activated element. Keyboard (Enter,
|
|
7293
|
+
* `detail === 0`) and VoiceOver activations dispatch a click with coordinates
|
|
7294
|
+
* that are not on the element, so we treat any click whose point falls outside
|
|
7295
|
+
* the wrapper as an assistive-technology activation.
|
|
7296
|
+
*
|
|
7297
|
+
* @param {MouseEvent} e - The click event on the link wrapper.
|
|
7298
|
+
* @returns {boolean} True when the activation is keyboard/screen-reader driven.
|
|
7299
|
+
*/
|
|
7300
|
+
isKeyboardOrScreenReaderActivation(e) {
|
|
7301
|
+
if (checkIsVoiceOverClick(e)) {
|
|
7302
|
+
return true;
|
|
7303
|
+
}
|
|
7304
|
+
const rect = this.target ? this.target.getBoundingClientRect() : null;
|
|
7305
|
+
if (!rect || (rect.width === 0 && rect.height === 0)) {
|
|
7306
|
+
return false;
|
|
7307
|
+
}
|
|
7308
|
+
const isInsideTarget = e.clientX >= rect.left &&
|
|
7309
|
+
e.clientX <= rect.right &&
|
|
7310
|
+
e.clientY >= rect.top &&
|
|
7311
|
+
e.clientY <= rect.bottom;
|
|
7312
|
+
return !isInsideTarget;
|
|
7313
|
+
}
|
|
7314
|
+
/**
|
|
7315
|
+
* Moves focus to the first focusable element within the popover content (the
|
|
7316
|
+
* Edit button) so VoiceOver users land inside the opened toolbar.
|
|
7317
|
+
*
|
|
7318
|
+
* Deferred to the next macrotask so it runs after the editor has finished
|
|
7319
|
+
* placing the caret/focus into the content area on the activating click.
|
|
7320
|
+
*
|
|
7321
|
+
* @returns {void} No return value.
|
|
7322
|
+
*/
|
|
7323
|
+
focusPopoverContentForVoiceOver() {
|
|
7324
|
+
setTimeout(() => {
|
|
7325
|
+
const contentRef = this.renderer.getPopoverContentRef();
|
|
7326
|
+
if (!contentRef) {
|
|
7327
|
+
return;
|
|
7328
|
+
}
|
|
7329
|
+
const focusable = getFirstFocusableElement(contentRef);
|
|
7330
|
+
(focusable !== null && focusable !== void 0 ? focusable : contentRef).focus();
|
|
7331
|
+
});
|
|
7332
|
+
}
|
|
7333
|
+
/**
|
|
7334
|
+
* Restores focus to the link wrapper after the popover is hidden following a
|
|
7335
|
+
* VoiceOver activation.
|
|
7336
|
+
*
|
|
7337
|
+
* @returns {void} No return value.
|
|
7338
|
+
*/
|
|
7339
|
+
restoreFocusAfterVoiceOver() {
|
|
7340
|
+
if (this.isVoiceOverTrigger && this.focusReturnEl) {
|
|
7341
|
+
const returnEl = this.focusReturnEl;
|
|
7342
|
+
setTimeout(() => returnEl.focus());
|
|
7343
|
+
}
|
|
7344
|
+
this.isVoiceOverTrigger = false;
|
|
7345
|
+
this.focusReturnEl = null;
|
|
7346
|
+
}
|
|
6828
7347
|
/**
|
|
6829
7348
|
* Preserves an unchanged mailto URL when the form edits are equivalent.
|
|
6830
7349
|
*
|