@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
|
@@ -40,6 +40,7 @@ export class VegaRichTextTableSetting {
|
|
|
40
40
|
this.cellPropertiesButtonSlimmer = new CellPropertiesButtonSlimmer();
|
|
41
41
|
this.mergeCellsButtonSlimmer = new MergeCellsButtonSlimmer();
|
|
42
42
|
this.isColumnDropdownOpen = false;
|
|
43
|
+
this.isRowDropdownOpen = false;
|
|
43
44
|
this.isMergeCellsDropdownOpen = false;
|
|
44
45
|
/**
|
|
45
46
|
* Indicates whether the current table already has a caption.
|
|
@@ -154,6 +155,7 @@ export class VegaRichTextTableSetting {
|
|
|
154
155
|
}; }
|
|
155
156
|
static get states() { return {
|
|
156
157
|
"isColumnDropdownOpen": {},
|
|
158
|
+
"isRowDropdownOpen": {},
|
|
157
159
|
"isMergeCellsDropdownOpen": {}
|
|
158
160
|
}; }
|
|
159
161
|
static get events() { return [{
|
|
@@ -33,7 +33,7 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
|
|
|
33
33
|
/**
|
|
34
34
|
* @inheritDoc
|
|
35
35
|
*/
|
|
36
|
-
handle(elementsArray) {
|
|
36
|
+
handle(elementsArray, _options, parentTextAnnotations) {
|
|
37
37
|
const element = elementsArray[0];
|
|
38
38
|
const tokenKey = element.getAttribute('token-key');
|
|
39
39
|
const text = element.textContent;
|
|
@@ -46,7 +46,9 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
|
|
|
46
46
|
type: 'token',
|
|
47
47
|
token: tokenKey,
|
|
48
48
|
text,
|
|
49
|
-
annotations: Object.assign(Object.assign({}, restAnnotations),
|
|
49
|
+
annotations: Object.assign(Object.assign(Object.assign({}, restAnnotations), ((parentTextAnnotations === null || parentTextAnnotations === void 0 ? void 0 : parentTextAnnotations.inlineHtml)
|
|
50
|
+
? { inlineHtml: parentTextAnnotations.inlineHtml }
|
|
51
|
+
: {})), { customAttribute: this.createCustomAttrs(customAttribute) }),
|
|
50
52
|
};
|
|
51
53
|
}
|
|
52
54
|
/**
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { RTETextNode } from '../../dto/nodes/text-node';
|
|
2
|
+
import { HTML_VOID_TAGS } from '../../constants/constant';
|
|
3
|
+
import { isNonNullable } from '../../../../types/type-guard';
|
|
2
4
|
/**
|
|
3
5
|
* Token node for the Vega Rich Text Editor.
|
|
4
6
|
*/
|
|
@@ -54,5 +56,47 @@ export class RTETokenNode extends RTETextNode {
|
|
|
54
56
|
toHtml() {
|
|
55
57
|
return `<span class="token" contenteditable="false" template-token-key="${this.token}" token-key="${this.token}"${super.generateAttributeString()}>${this.text}</span>`;
|
|
56
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* @inheritDoc
|
|
61
|
+
*/
|
|
62
|
+
renderHtmlFromDepth(depth, options) {
|
|
63
|
+
void options;
|
|
64
|
+
const annotation = this.getInlineHtmlAnnotationAtDepth(depth);
|
|
65
|
+
if (!annotation)
|
|
66
|
+
return this.toHtml();
|
|
67
|
+
return this.renderTokenWithWrapperStr(annotation);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Render token markup wrapped by inline HTML annotations, preserving token attributes.
|
|
71
|
+
*
|
|
72
|
+
* @param {InlineHtmlAnnotation} inlineHtmlNode - Current wrapper annotation.
|
|
73
|
+
* @returns {string} Token HTML wrapped by inline HTML annotations.
|
|
74
|
+
*/
|
|
75
|
+
renderTokenWithWrapperStr(inlineHtmlNode) {
|
|
76
|
+
const { htmlTag, child } = inlineHtmlNode;
|
|
77
|
+
const attrStr = this.inlineHtmlAnnotationAttrStr(inlineHtmlNode);
|
|
78
|
+
if (!child) {
|
|
79
|
+
if (HTML_VOID_TAGS.has(htmlTag)) {
|
|
80
|
+
return `<${htmlTag}${attrStr}>`;
|
|
81
|
+
}
|
|
82
|
+
return `<${htmlTag}${attrStr}>${this.toHtml()}</${htmlTag}>`;
|
|
83
|
+
}
|
|
84
|
+
return `<${htmlTag}${attrStr}>${this.renderTokenWithWrapperStr(child)}</${htmlTag}>`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Build inline HTML wrapper attributes string.
|
|
88
|
+
*
|
|
89
|
+
* @param {InlineHtmlAnnotation} annotation - Inline HTML annotation.
|
|
90
|
+
* @returns {string} Serialized attribute string.
|
|
91
|
+
*/
|
|
92
|
+
inlineHtmlAnnotationAttrStr(annotation) {
|
|
93
|
+
const { customAttribute, customClass, customStyle } = annotation;
|
|
94
|
+
const attrs = [
|
|
95
|
+
...((customAttribute === null || customAttribute === void 0 ? void 0 : customAttribute.toString()) || []),
|
|
96
|
+
customClass === null || customClass === void 0 ? void 0 : customClass.toString(),
|
|
97
|
+
customStyle === null || customStyle === void 0 ? void 0 : customStyle.toString(),
|
|
98
|
+
].filter(isNonNullable);
|
|
99
|
+
return attrs.length > 0 ? ` ${attrs.join(' ')}` : '';
|
|
100
|
+
}
|
|
57
101
|
}
|
|
58
102
|
RTETokenNode.dtoName = 'RTETokenNode';
|
|
@@ -22,6 +22,7 @@ export class RTETokenToolbarButtonRenderer extends VegaRTEToolbarButtonRenderer
|
|
|
22
22
|
return this.renderDropdown(createElement, editorContext, {}, [
|
|
23
23
|
this.renderButton(createElement, editorContext, {
|
|
24
24
|
label: 'Tokens',
|
|
25
|
+
ariaLabel: 'Tokens',
|
|
25
26
|
showArrowIcon: true,
|
|
26
27
|
tooltip: { text: 'Insert token' },
|
|
27
28
|
}),
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { isNonNullable } from '../../../../../types/type-guard';
|
|
2
|
+
import { ActionHandlerInterceptor } from '../../../dto/action-handle-strategies/action-handle-interceptor.abstract';
|
|
3
|
+
import { methodPlaceholder } from 'vega-slimmer/core';
|
|
4
|
+
import { RTE_WORD_COUNT_KEY } from '../../../constants/constant';
|
|
5
|
+
/**
|
|
6
|
+
* Vetoes a commit that would push the character count past the hard limit, while
|
|
7
|
+
* still allowing deletions and formatting that keep or reduce the count.
|
|
8
|
+
*/
|
|
9
|
+
export class PreventHardLimitExceedInterceptor extends ActionHandlerInterceptor {
|
|
10
|
+
/**
|
|
11
|
+
* Intercept when the candidate exceeds the configured maximum. Hard-limit
|
|
12
|
+
* commits are vetoed only when they increase the count.
|
|
13
|
+
*
|
|
14
|
+
* @param {CommitValueAction} action - the commit action carrying the candidate and previous values
|
|
15
|
+
* @returns {boolean} - whether the commit should be vetoed
|
|
16
|
+
*/
|
|
17
|
+
canIntercept(action) {
|
|
18
|
+
var _a;
|
|
19
|
+
const extension = (_a = action.host.extensions) === null || _a === void 0 ? void 0 : _a.find((item) => this.isWordCountExtension(item));
|
|
20
|
+
if (!extension) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
const { hardLimit, maxChars } = extension.getConfig();
|
|
24
|
+
const nextContent = action.candidate.getPlainText();
|
|
25
|
+
const nextCount = extension.calculateTextCount(nextContent);
|
|
26
|
+
if (!isNonNullable(maxChars) || nextCount <= maxChars) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
let result = false;
|
|
30
|
+
let prevContent = '';
|
|
31
|
+
if (hardLimit && action.previous) {
|
|
32
|
+
prevContent = action.previous.getPlainText();
|
|
33
|
+
result = nextCount > extension.calculateTextCount(prevContent);
|
|
34
|
+
}
|
|
35
|
+
this.notifyCharsLimitExceeded(nextContent, prevContent, extension, action);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Not invoke the origin action handle to veto the commit that would push the character count past the hard limit.
|
|
40
|
+
*/
|
|
41
|
+
intercept() {
|
|
42
|
+
methodPlaceholder();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Notify the consumer when the candidate exceeds the configured character limit.
|
|
46
|
+
* The previous content is empty when hard limit is not enabled for the performance optimization.
|
|
47
|
+
*
|
|
48
|
+
* @param {string} nextContent - the candidate content string
|
|
49
|
+
* @param {string} prevContent - the previous content string
|
|
50
|
+
* @param {VegaRTEWordCountExtension} extension - the configured word count extension
|
|
51
|
+
* @param {CommitValueAction} action - the commit action carrying the candidate value
|
|
52
|
+
*/
|
|
53
|
+
notifyCharsLimitExceeded(nextContent, prevContent, extension, action) {
|
|
54
|
+
const { maxChars, hardLimit, onCharsLimitExceeded } = extension.getConfig();
|
|
55
|
+
if (typeof onCharsLimitExceeded === 'function') {
|
|
56
|
+
if (!hardLimit || prevContent !== nextContent) {
|
|
57
|
+
onCharsLimitExceeded(action.host, maxChars);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if the given extension is a word count extension.
|
|
63
|
+
*
|
|
64
|
+
* @param {VegaRTEExtension} extension - the extension to check
|
|
65
|
+
* @returns {boolean} - whether the extension is a word count extension
|
|
66
|
+
*/
|
|
67
|
+
isWordCountExtension(extension) {
|
|
68
|
+
return extension['type'] === RTE_WORD_COUNT_KEY;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { RTE_WORD_COUNT_KEY } from '../../constants/constant';
|
|
2
|
+
import { VegaRTEExtension } from '../extension.abstract';
|
|
3
|
+
import { VegaRTEContent } from '../../dto/content-state';
|
|
4
|
+
import { COMMIT_VALUE } from '../../dto/actions/commit-value-action';
|
|
5
|
+
import { PreventHardLimitExceedInterceptor } from './action-handler-interceptors/prevent-hard-limit-exceed-interceptor';
|
|
6
|
+
/**
|
|
7
|
+
* Default configuration applied when a word count option is not provided.
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_WORD_COUNT_CONFIG = {
|
|
10
|
+
showCharCount: true,
|
|
11
|
+
countInlineBreak: false,
|
|
12
|
+
hardLimit: false,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Rich Text Editor extension that provides character counting.
|
|
16
|
+
*/
|
|
17
|
+
export class VegaRTEWordCountExtension extends VegaRTEExtension {
|
|
18
|
+
constructor(config = {}) {
|
|
19
|
+
super();
|
|
20
|
+
/**
|
|
21
|
+
* Runtime discriminator used by the core to identify this extension.
|
|
22
|
+
*/
|
|
23
|
+
this.type = RTE_WORD_COUNT_KEY;
|
|
24
|
+
this.config = Object.assign(Object.assign({}, DEFAULT_WORD_COUNT_CONFIG), config);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the extension configuration.
|
|
28
|
+
*
|
|
29
|
+
* @returns {ResolvedRTEWordCountConfig} The word count configuration.
|
|
30
|
+
*/
|
|
31
|
+
getConfig() {
|
|
32
|
+
return this.config;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Compute the character count data for the given editor content.
|
|
36
|
+
*
|
|
37
|
+
* @param {VegaRTEContent} value - The editor content.
|
|
38
|
+
* @returns {VegaRTEWordCountData} The computed character count data.
|
|
39
|
+
*/
|
|
40
|
+
getData(value) {
|
|
41
|
+
const plainText = value.getPlainText();
|
|
42
|
+
const { maxChars, hardLimit } = this.config;
|
|
43
|
+
const count = this.calculateTextCount(plainText);
|
|
44
|
+
return { count, maxChars, hardLimit };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get the character count for the given content string.
|
|
48
|
+
*
|
|
49
|
+
* @param {string} content - The content string.
|
|
50
|
+
* @returns {number} The character count.
|
|
51
|
+
*/
|
|
52
|
+
calculateTextCount(content) {
|
|
53
|
+
const { countInlineBreak } = this.config;
|
|
54
|
+
const text = countInlineBreak ? content : content.replace(/\n/g, '');
|
|
55
|
+
// Use the spread operator so that surrogate pairs (e.g. emoji) count as a single character.
|
|
56
|
+
return [...text].length;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
(() => {
|
|
60
|
+
// Gate over-limit commits through the shared action-interceptor pipeline.
|
|
61
|
+
VegaRTEExtension.registerActionHandlerInterceptor(VegaRTEContent.name, COMMIT_VALUE, new PreventHardLimitExceedInterceptor());
|
|
62
|
+
})();
|
|
@@ -32,6 +32,7 @@ export { VegaRTEPasteExtension } from './extensions/paste/paste-extension';
|
|
|
32
32
|
export { VegaRTECopyExtension } from './extensions/copy/copy-extension';
|
|
33
33
|
export { VegaRTECutExtension } from './extensions/cut/cut-extension';
|
|
34
34
|
export { VegaRTEImageExtension } from './extensions/image/image-extension';
|
|
35
|
+
export { VegaRTEWordCountExtension } from './extensions/word-count/word-count-extension';
|
|
35
36
|
// actions
|
|
36
37
|
export { ModifyContentAction, ModifyContentActionType } from './dto/actions/modify-content-action.abstract';
|
|
37
38
|
export { AppendChildrenAction } from './dto/actions/append-child-nodes-action';
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
8
|
import { isArrayEqual } from '../../../../utils/array';
|
|
9
9
|
import { forceUpdate } from '@stencil/core';
|
|
10
|
+
import { BlockBoundaryRegistry } from '../../extensions/block-boundary-registry';
|
|
10
11
|
/**
|
|
11
12
|
* Inject the editor context to the extensions.
|
|
12
13
|
*/
|
|
@@ -113,6 +114,7 @@ export class RTEExtensionController extends VegaSlimmer {
|
|
|
113
114
|
getSelectedNodes: this.getSelectedNodes,
|
|
114
115
|
setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
|
|
115
116
|
getSelection: this.selectionController.getSelection.bind(this.selectionController),
|
|
117
|
+
blockBoundaryRegistry: new BlockBoundaryRegistry(),
|
|
116
118
|
};
|
|
117
119
|
}
|
|
118
120
|
}
|
|
@@ -23,7 +23,10 @@ export class TextStyleAnnotationHandler extends AnnotationGeneratorStrategyAbstr
|
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Get the node type of element. The element type is determined in the following
|
|
26
|
-
* order: "data-type" attribute, node name, font size
|
|
26
|
+
* order: "data-type" attribute, class name, node name, font size.
|
|
27
|
+
* Class name is checked before node name so that an explicit
|
|
28
|
+
* `v-rte--text-style-*` marker (e.g. applied by the Word paste transformer)
|
|
29
|
+
* takes precedence over the element's default tag-based role.
|
|
27
30
|
*
|
|
28
31
|
* @param {HTMLElement} element - element.
|
|
29
32
|
* @returns {Nullable<VegaRTETextStyleType>} - node type.
|
|
@@ -32,15 +35,15 @@ export class TextStyleAnnotationHandler extends AnnotationGeneratorStrategyAbstr
|
|
|
32
35
|
const byDataType = this.getElementTypeByDataType(element);
|
|
33
36
|
if (byDataType)
|
|
34
37
|
return byDataType;
|
|
38
|
+
const byClassName = this.getElementTypeByClassName(element);
|
|
39
|
+
if (byClassName)
|
|
40
|
+
return byClassName;
|
|
35
41
|
const byNodeName = this.getElementTypeByNodeName(element);
|
|
36
42
|
if (byNodeName)
|
|
37
43
|
return byNodeName;
|
|
38
44
|
const byFontSize = this.getElementTypeByFontSize(element);
|
|
39
45
|
if (byFontSize)
|
|
40
46
|
return byFontSize;
|
|
41
|
-
const byClassName = this.getElementTypeByClassName(element);
|
|
42
|
-
if (byClassName)
|
|
43
|
-
return byClassName;
|
|
44
47
|
return null;
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { generateUUID } from '../../../../../../utils/misc';
|
|
2
2
|
import { RTETextBlock } from '../../../../dto/blocks/text-block';
|
|
3
3
|
import { RTETextNode } from '../../../../dto/nodes/text-node';
|
|
4
|
+
import { RTE_BLOCK_BOUNDARY_ATTRIBUTE } from '../../../../constants/constant';
|
|
4
5
|
import htmlElementToAnnotationGenerator from './annotation-handler/html-element-to-annotation-generator';
|
|
5
6
|
import { BlockToRTEBlockStrategyAbstract } from './block-to-rte-block-strategy.abstract';
|
|
6
7
|
import { ALWAYS_INLINE_TAGS, DEDICATED_STRATEGY_TAGS, PHRASING_CONTENT_TAGS, isInBlockTextContext, } from './strategy-tags';
|
|
@@ -83,6 +84,8 @@ export class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrateg
|
|
|
83
84
|
isInlineCandidate(element, options) {
|
|
84
85
|
if (element.nodeType === Node.TEXT_NODE)
|
|
85
86
|
return true;
|
|
87
|
+
if (this.isBlockBoundaryElement(element, options))
|
|
88
|
+
return false;
|
|
86
89
|
if (ALWAYS_INLINE_TAGS.has(element.nodeName))
|
|
87
90
|
return true;
|
|
88
91
|
if (this.isDedicatedBlockTag(element.nodeName))
|
|
@@ -91,6 +94,20 @@ export class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrateg
|
|
|
91
94
|
return true;
|
|
92
95
|
return this.isInlineLeafOrWrapper(element);
|
|
93
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Check whether an element marks a block boundary.
|
|
99
|
+
*
|
|
100
|
+
* @param {HTMLElement} element - Element to inspect.
|
|
101
|
+
* @param {VegaRTETransformOptions} options - Transformation options.
|
|
102
|
+
* @returns {boolean} Whether the element is a boundary.
|
|
103
|
+
*/
|
|
104
|
+
isBlockBoundaryElement(element, options) {
|
|
105
|
+
var _a;
|
|
106
|
+
if (element.hasAttribute(RTE_BLOCK_BOUNDARY_ATTRIBUTE)) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
return !!((_a = options.blockBoundaryRegistry) === null || _a === void 0 ? void 0 : _a.isBoundary(element));
|
|
110
|
+
}
|
|
94
111
|
/**
|
|
95
112
|
* Returns true when the tag has a dedicated block strategy (excludes inline annotation tags CODE and A).
|
|
96
113
|
*
|
|
@@ -8,6 +8,7 @@ import { RTETextNode } from '../../../../dto/nodes/text-node';
|
|
|
8
8
|
import { generateUUID } from '../../../../../../utils/misc';
|
|
9
9
|
import { escapeHtml } from '../../../../helpers/utils';
|
|
10
10
|
import { ReplaceSelectedTextAction } from '../../../../dto/actions/replace-selected-text-action';
|
|
11
|
+
import { RTE_PASTE_MODE_DATA_TYPE, RTE_PASTE_MODE_WORD } from '../../../../constants/constant';
|
|
11
12
|
/**
|
|
12
13
|
* Handle user paste
|
|
13
14
|
*/
|
|
@@ -110,8 +111,11 @@ export class InsertPasteHandler extends BaseHandler {
|
|
|
110
111
|
const body = parsedDoc.body;
|
|
111
112
|
// Extract plain text from the parsed document
|
|
112
113
|
const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
|
|
113
|
-
// Check for rich inline formatting
|
|
114
|
-
|
|
114
|
+
// Check for rich inline formatting. Code blocks (`pre` carrying
|
|
115
|
+
// `data-language`, the marker the code-block strategy recognizes) count as
|
|
116
|
+
// formatting so they are never flattened to inline plain text, which would
|
|
117
|
+
// drop the code block on single-line pastes whose text equals the HTML text.
|
|
118
|
+
let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark,code,pre[data-language]'));
|
|
115
119
|
if (!hasFormatting) {
|
|
116
120
|
hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
|
|
117
121
|
const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
|
|
@@ -202,9 +206,18 @@ export class InsertPasteHandler extends BaseHandler {
|
|
|
202
206
|
context.restore(rootElements);
|
|
203
207
|
this.normalizeImportedHtmlArtifacts(parsedDoc.body);
|
|
204
208
|
const htmlElements = Array.from(parsedDoc.body.childNodes);
|
|
205
|
-
|
|
209
|
+
// Word paste enables custom-annotation processing (skipCustomAnnotations: false)
|
|
210
|
+
// so that inline styles produced by WordPasteStrategy (colors, font-weight, etc.)
|
|
211
|
+
// are mapped to RTE annotations. Regular rich paste skips them (undefined → default).
|
|
212
|
+
const transformOptions = payload.type === RTE_PASTE_MODE_WORD
|
|
213
|
+
? {
|
|
214
|
+
autoMatchFormat: true,
|
|
215
|
+
skipCustomAnnotations: false,
|
|
216
|
+
}
|
|
217
|
+
: undefined;
|
|
218
|
+
const resultBlocks = ElementToDtoStrategyProcessor.process(htmlElements, transformOptions)
|
|
206
219
|
.filter(Boolean)
|
|
207
|
-
.map((output) => output.toDto())
|
|
220
|
+
.map((output) => output.toDto(transformOptions))
|
|
208
221
|
.filter(Boolean);
|
|
209
222
|
// Fallback for synthetic payloads: if strategy conversion yields no blocks
|
|
210
223
|
// but we still have plain text, create paragraph/text blocks directly.
|
|
@@ -475,6 +488,7 @@ export class InsertPasteHandler extends BaseHandler {
|
|
|
475
488
|
return {
|
|
476
489
|
html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
|
|
477
490
|
text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
|
|
491
|
+
type: event.dataTransfer.getData(RTE_PASTE_MODE_DATA_TYPE) || '',
|
|
478
492
|
};
|
|
479
493
|
}
|
|
480
494
|
}
|
|
@@ -8,7 +8,7 @@ import { VegaSlimmer, MapToComponentField, MapToComponentMethod } from 'vega-sli
|
|
|
8
8
|
import { RTETextBlock } from '../../dto/blocks/text-block';
|
|
9
9
|
import { RTETextNode } from '../../dto/nodes/text-node';
|
|
10
10
|
import stateEntityRenderingRegistry from './state-entity-rendering-registry';
|
|
11
|
-
import { ZERO_WIDTH_SPACE } from '../../constants/constant';
|
|
11
|
+
import { RTE_UPDATE_SOURCE_KEY, RTEUpdateSource, ZERO_WIDTH_SPACE } from '../../constants/constant';
|
|
12
12
|
import { UpdateTextAction } from '../../dto/actions/update-text-action';
|
|
13
13
|
import changeManager from '../../../../helpers/change-manager/change-manager';
|
|
14
14
|
import domNodeSubjectFactory from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-factory';
|
|
@@ -215,6 +215,7 @@ export class InsertCompositionTextController extends VegaSlimmer {
|
|
|
215
215
|
const inputEvent = new CustomEvent('beforeinput');
|
|
216
216
|
inputEvent['data'] = text;
|
|
217
217
|
inputEvent['inputType'] = 'insertText';
|
|
218
|
+
inputEvent[RTE_UPDATE_SOURCE_KEY] = RTEUpdateSource.Composition;
|
|
218
219
|
this.editableElementRef.dispatchEvent(inputEvent);
|
|
219
220
|
}
|
|
220
221
|
}
|
|
@@ -475,21 +475,40 @@ export class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
|
|
|
475
475
|
* @returns {Nullable<FocusNodeRangeState>} - The detected element's range state or null if not found.
|
|
476
476
|
*/
|
|
477
477
|
detectNearestElement(block, offset) {
|
|
478
|
+
// Atomic blocks (e.g. table) opt out of descent so the caret stays anchored to the
|
|
479
|
+
// block boundary — resolving into a cell would break paragraph insertion before/after.
|
|
480
|
+
if (!block.allowsCaretDescend()) {
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
478
483
|
if (block.children) {
|
|
479
484
|
const currentNode = block.children[offset];
|
|
480
485
|
const prevNode = block.children[offset - 1];
|
|
481
|
-
|
|
486
|
+
// A nested block (e.g. an html-block's inner paragraph rendered with
|
|
487
|
+
// `display: contents`) can receive the caret at its own boundary, so descend
|
|
488
|
+
// into it to reach the real node — the start of the next block or the end of
|
|
489
|
+
// the previous one.
|
|
490
|
+
if (currentNode instanceof RTENode) {
|
|
482
491
|
return {
|
|
483
492
|
startNode: currentNode,
|
|
484
493
|
startOffset: 0,
|
|
485
494
|
};
|
|
486
495
|
}
|
|
487
|
-
else if (
|
|
496
|
+
else if (currentNode instanceof RTEBlock) {
|
|
497
|
+
// Fall through to the previous node if descending yields nothing (e.g. an empty block).
|
|
498
|
+
const nested = this.detectNearestElement(currentNode, 0);
|
|
499
|
+
if (nested) {
|
|
500
|
+
return nested;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
if (prevNode instanceof RTENode) {
|
|
488
504
|
return {
|
|
489
505
|
startNode: prevNode,
|
|
490
506
|
startOffset: prevNode.getRangeEndOffset(),
|
|
491
507
|
};
|
|
492
508
|
}
|
|
509
|
+
else if (prevNode instanceof RTEBlock) {
|
|
510
|
+
return this.detectNearestElement(prevNode, prevNode.children.length);
|
|
511
|
+
}
|
|
493
512
|
}
|
|
494
513
|
}
|
|
495
514
|
}
|
|
@@ -15,6 +15,7 @@ import { InsertPasteHandler } from './helper/input-event-handler/insert-paste-ha
|
|
|
15
15
|
import { KeyboardLinkHandler } from './helper/input-event-handler/keyboard-link-handler';
|
|
16
16
|
import { generateUUID } from '../../../../utils/misc';
|
|
17
17
|
import { RTECodeBlock } from '../../dto/blocks/code-block';
|
|
18
|
+
import { RTE_UPDATE_SOURCE_KEY, RTEUpdateSource } from '../../constants/constant';
|
|
18
19
|
/** Used to monitoring the user input actions by event listener */
|
|
19
20
|
export class UserInputController extends VegaSlimmer {
|
|
20
21
|
constructor() {
|
|
@@ -50,6 +51,7 @@ export class UserInputController extends VegaSlimmer {
|
|
|
50
51
|
}
|
|
51
52
|
this.insertCompositionTextController.removeObserver();
|
|
52
53
|
let updateFlag = false;
|
|
54
|
+
let updateSource = RTEUpdateSource.Default;
|
|
53
55
|
switch (inputType) {
|
|
54
56
|
case 'insertParagraph':
|
|
55
57
|
updateFlag = true;
|
|
@@ -57,6 +59,10 @@ export class UserInputController extends VegaSlimmer {
|
|
|
57
59
|
break;
|
|
58
60
|
case 'insertText':
|
|
59
61
|
updateFlag = true;
|
|
62
|
+
updateSource =
|
|
63
|
+
e[RTE_UPDATE_SOURCE_KEY] === RTEUpdateSource.Composition
|
|
64
|
+
? RTEUpdateSource.Composition
|
|
65
|
+
: RTEUpdateSource.Default;
|
|
60
66
|
this.insertTextHandler.execute(this.value, this.selectionController, this.host, e);
|
|
61
67
|
break;
|
|
62
68
|
case 'insertLineBreak':
|
|
@@ -77,7 +83,7 @@ export class UserInputController extends VegaSlimmer {
|
|
|
77
83
|
break;
|
|
78
84
|
}
|
|
79
85
|
if (updateFlag) {
|
|
80
|
-
void this.valueController.flushChanges(this.value);
|
|
86
|
+
void this.valueController.flushChanges(this.value, true, updateSource);
|
|
81
87
|
}
|
|
82
88
|
};
|
|
83
89
|
}
|
package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js
CHANGED
|
@@ -17,10 +17,18 @@ import { waitForComponentDidRender } from '../../../../helpers/common/wait-for-c
|
|
|
17
17
|
import { RTEEditorState } from '../../dto/editor-state';
|
|
18
18
|
import { RTESelectionState } from '../../dto/selection-state';
|
|
19
19
|
import stateEntityRenderingRegistry from './state-entity-rendering-registry';
|
|
20
|
+
import { ActionHandleStrategyRegistry } from '../../dto/action-handle-strategies/action-handle-strategy-registry';
|
|
21
|
+
import { CommitValueAction } from '../../dto/actions/commit-value-action';
|
|
22
|
+
import { RTEUpdateSource } from '../../constants/constant';
|
|
20
23
|
/**
|
|
21
24
|
* The value controller is responsible for updating the value of the rich text editor.
|
|
22
25
|
*/
|
|
23
26
|
export class ValueController extends VegaSlimmer {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
// Deep clone of the last committed value, kept only while a commit validator is active, used to roll back rejected changes.
|
|
30
|
+
this.committedSnapshot = null;
|
|
31
|
+
}
|
|
24
32
|
/**
|
|
25
33
|
* Component lifecycle - [connectedCallback]{@link VegaRichTextEditor.connectedCallback}
|
|
26
34
|
*/
|
|
@@ -65,15 +73,47 @@ export class ValueController extends VegaSlimmer {
|
|
|
65
73
|
});
|
|
66
74
|
}
|
|
67
75
|
this.registerEditorRefAndContent();
|
|
76
|
+
this.seedCommittedSnapshot();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Seeds the rollback snapshot from the current value while a commit interceptor is active.
|
|
80
|
+
* Runs on load and on extension changes so runtime re-registration stays protected.
|
|
81
|
+
*/
|
|
82
|
+
seedCommittedSnapshot() {
|
|
83
|
+
if (this.wordCountController.hasWordCountHardLimit()) {
|
|
84
|
+
this.committedSnapshot = this.value ? this.value.clone(true) : null;
|
|
85
|
+
}
|
|
68
86
|
}
|
|
69
87
|
/**
|
|
70
88
|
* Updates the value of the editor and restore the selection.
|
|
71
89
|
*
|
|
72
90
|
* @param {VegaRTEContent} newValue The new value to set.
|
|
73
91
|
* @param {boolean} recordHistory - Whether to record the change in history.
|
|
92
|
+
* @param {RTEUpdateSource} updateSource - The source of the update, defaulting to 'default'.
|
|
74
93
|
*/
|
|
75
|
-
async flushChanges(newValue, recordHistory = true) {
|
|
76
|
-
|
|
94
|
+
async flushChanges(newValue, recordHistory = true, updateSource = RTEUpdateSource.Default) {
|
|
95
|
+
const previous = this.committedSnapshot;
|
|
96
|
+
const action = new CommitValueAction(newValue, previous, this.host);
|
|
97
|
+
const committed = ActionHandleStrategyRegistry.executeTheStrategy(action, newValue);
|
|
98
|
+
if (!committed) {
|
|
99
|
+
if (updateSource === RTEUpdateSource.Composition) {
|
|
100
|
+
// The composition input characters cannot be deleted, so we force a repaint to restore the content from the model.
|
|
101
|
+
this.vegaRichTextEditorRenderer.forceContentRepaint();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// The commit was vetoed, so restore the placeholder the framework skipped repainting and roll back.
|
|
105
|
+
this.vegaRichTextEditorRenderer.restoreEmptyTextPlaceholders();
|
|
106
|
+
}
|
|
107
|
+
// Deep clone so the rolled-back value never shares nodes with the snapshot, which in-place edits would otherwise corrupt.
|
|
108
|
+
this.value = (previous !== null && previous !== void 0 ? previous : newValue).clone(true);
|
|
109
|
+
if (previous) {
|
|
110
|
+
// Seed the snapshot again so the next commit attempt has a valid rollback point.
|
|
111
|
+
this.seedCommittedSnapshot();
|
|
112
|
+
}
|
|
113
|
+
await waitForComponentDidRender(this.host);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
this.value = committed.clone();
|
|
77
117
|
if (recordHistory) {
|
|
78
118
|
this.historyController.registerHistory(new RTEEditorState(this.value, new RTESelectionState(this.selectionController.getCurrentRange())));
|
|
79
119
|
}
|
|
@@ -115,6 +155,12 @@ __decorate([
|
|
|
115
155
|
__decorate([
|
|
116
156
|
MapToComponentField()
|
|
117
157
|
], ValueController.prototype, "selectionController", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
MapToComponentField()
|
|
160
|
+
], ValueController.prototype, "wordCountController", void 0);
|
|
161
|
+
__decorate([
|
|
162
|
+
MapToComponentField()
|
|
163
|
+
], ValueController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
118
164
|
__decorate([
|
|
119
165
|
MapToComponentField()
|
|
120
166
|
], ValueController.prototype, "sourceEditConfig", void 0);
|
|
@@ -130,3 +176,7 @@ __decorate([
|
|
|
130
176
|
__decorate([
|
|
131
177
|
MapToComponentMethod('watchValueUpdate')
|
|
132
178
|
], ValueController.prototype, "watchValueUpdate", null);
|
|
179
|
+
__decorate([
|
|
180
|
+
MapToComponentMethod('componentDidLoad'),
|
|
181
|
+
MapToComponentMethod('watchExtensions')
|
|
182
|
+
], ValueController.prototype, "seedCommittedSnapshot", null);
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
|
+
import { RTE_WORD_COUNT_KEY } from '../../constants/constant';
|
|
9
|
+
import { deepEqual } from '../../../../utils/object';
|
|
10
|
+
import { isNonNullable } from '../../../../types/type-guard';
|
|
11
|
+
/**
|
|
12
|
+
* Bridges the word count extension to the editor component so the footer UI can
|
|
13
|
+
* read whether the character count should be shown and its current value.
|
|
14
|
+
*/
|
|
15
|
+
export class WordCountController extends VegaSlimmer {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.cachedValue = null;
|
|
19
|
+
this.cachedConfig = null;
|
|
20
|
+
this.cachedData = null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether the character count UI should be rendered.
|
|
24
|
+
*
|
|
25
|
+
* @returns {boolean} True when a word count extension requests the UI.
|
|
26
|
+
*/
|
|
27
|
+
shouldShowUI() {
|
|
28
|
+
var _a;
|
|
29
|
+
return !!((_a = this.findWordCountExtension()) === null || _a === void 0 ? void 0 : _a.getConfig().showCharCount);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Compute the current character count data from the editor content.
|
|
33
|
+
*
|
|
34
|
+
* @returns {Nullable<VegaRTEWordCountData>} The count data or null when no word count extension is registered.
|
|
35
|
+
*/
|
|
36
|
+
getData() {
|
|
37
|
+
const extension = this.findWordCountExtension();
|
|
38
|
+
if (!extension) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const value = this.host.value;
|
|
42
|
+
const config = extension.getConfig();
|
|
43
|
+
// VegaRTEContent is immutable, so a matching value/config reference means the data is unchanged.
|
|
44
|
+
if (this.cachedData && value === this.cachedValue && deepEqual(config, this.cachedConfig)) {
|
|
45
|
+
return this.cachedData;
|
|
46
|
+
}
|
|
47
|
+
this.cachedData = extension.getData(value);
|
|
48
|
+
this.cachedValue = value;
|
|
49
|
+
this.cachedConfig = config;
|
|
50
|
+
return this.cachedData;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Whether the word count extension gates commits with a hard character limit.
|
|
54
|
+
*
|
|
55
|
+
* @returns {boolean} True when a hard limit with a max character count is configured for this host.
|
|
56
|
+
*/
|
|
57
|
+
hasWordCountHardLimit() {
|
|
58
|
+
var _a;
|
|
59
|
+
const config = (_a = this.findWordCountExtension()) === null || _a === void 0 ? void 0 : _a.getConfig();
|
|
60
|
+
return !!config && Boolean(config.hardLimit) && isNonNullable(config.maxChars);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Locate the word count extension by its runtime `type` discriminator.
|
|
64
|
+
* Use this way instead of instanceof to avoid direct dependency on the extension class.
|
|
65
|
+
*
|
|
66
|
+
* @returns {Nullable<VegaRTEWordCountExtension>} The word count extension or null.
|
|
67
|
+
*/
|
|
68
|
+
findWordCountExtension() {
|
|
69
|
+
var _a;
|
|
70
|
+
const extension = ((_a = this.extensions) !== null && _a !== void 0 ? _a : []).find((ext) => 'type' in ext && ext['type'] === RTE_WORD_COUNT_KEY);
|
|
71
|
+
return extension !== null && extension !== void 0 ? extension : null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
__decorate([
|
|
75
|
+
MapToComponentField()
|
|
76
|
+
], WordCountController.prototype, "extensions", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
MapToComponentField()
|
|
79
|
+
], WordCountController.prototype, "host", void 0);
|