@globalpayments/vega 2.95.0 → 2.97.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{app-globals-76815382.js → app-globals-3f57f7b9.js} +10 -10
- package/dist/cjs/{code-block-493c7ce7.js → code-block-28a7732e.js} +1508 -56
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-ab21fcbf.js → component-value-history-controller-slimmer.abstract-50cdba6e.js} +3 -3
- package/dist/cjs/{content-state-fc34a814.js → content-state-e2ab0f06.js} +143 -581
- package/dist/cjs/{date-required-rule-4ab06a82.js → date-required-rule-5250f26d.js} +1 -1
- package/dist/cjs/{design-token-d3d12fa0.js → design-token-74674ee7.js} +3 -3
- package/dist/cjs/{element-appender-slimmer-1d6323c2.js → element-appender-slimmer-ccb2e3c2.js} +117 -2
- package/dist/cjs/{form-field-controller-slimmer-d638ba12.js → form-field-controller-slimmer-58621b5e.js} +5 -14
- package/dist/cjs/form-field-key-8d5edf75.js +25 -0
- package/dist/cjs/{image-annotation-action-7c4cd316.js → image-annotation-action-b54dc669.js} +2 -2
- package/dist/cjs/{image-extension-30a7c10f.js → image-extension-1e3eeaa3.js} +2 -2
- package/dist/cjs/index.cjs.js +19 -19
- package/dist/cjs/{inject-keyboard-manager-5a105612.js → inject-keyboard-manager-6a6f5c9f.js} +1 -1
- package/dist/cjs/{internal-calendar-period-factory-b76006f7.js → internal-calendar-period-factory-dfcdd3f6.js} +1 -1
- package/dist/cjs/{internal-translation-controller-eb02c3b1.js → internal-translation-controller-1dac2df8.js} +7 -0
- package/dist/cjs/{keyboard-manager-ca76d4dc.js → keyboard-manager-c56033b1.js} +1 -1
- package/dist/cjs/{keyboard-manager-slimmer-a1223714.js → keyboard-manager-slimmer-7043a106.js} +1 -1
- package/dist/cjs/{link-extension-92a63cb7.js → link-extension-71c27ff3.js} +3 -3
- package/dist/cjs/loader.cjs.js +12 -12
- package/dist/cjs/{month-view-generator-876c50d4.js → month-view-generator-7b704a80.js} +1 -1
- package/dist/cjs/{public-rules-9e1ea1d9.js → public-rules-55e34d2e.js} +7 -7
- package/dist/cjs/{range-30219330.js → range-eebe0e3c.js} +1 -1
- package/dist/cjs/{responsive-format-facade-25e9f30d.js → responsive-format-facade-493d1763.js} +1 -1
- package/dist/cjs/{rich-text-editor-required-rule-23bf7485.js → rich-text-editor-required-rule-4fdee376.js} +1 -1
- package/dist/cjs/{split-cell-operation-43752212.js → split-cell-operation-51097409.js} +3 -3
- package/dist/cjs/{state-border-formatter-f1ce0f3b.js → state-border-formatter-711c7aaa.js} +1 -1
- package/dist/cjs/{string-format-strategy.abstract-b22f7754.js → string-format-strategy.abstract-b61bdcbd.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-d2c248f7.js → string-input-formatter-slimmer-18d45942.js} +1 -1
- package/dist/cjs/{string-mask-strategy-fc01a500.js → string-mask-strategy-ad3fa0ac.js} +2 -2
- package/dist/cjs/{style-formatter-73205450.js → style-formatter-8f711cb0.js} +2 -2
- package/dist/cjs/{time-required-rule-12d2f394.js → time-required-rule-87417359.js} +1 -1
- package/dist/cjs/{token-extension-d123d9d0.js → token-extension-608bbf7b.js} +38 -14
- package/dist/cjs/{translation-slimmer-9099f56c.js → translation-slimmer-77c7f37d.js} +1 -1
- package/dist/cjs/{type-guard-f354af8b.js → type-guard-a57ef3ac.js} +1 -1
- package/dist/cjs/{valid-credit-card-number-rule-8d370163.js → valid-credit-card-number-rule-4c0a3040.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
- package/dist/cjs/vega-app-header-button.cjs.entry.js +5 -5
- package/dist/cjs/vega-backdrop.cjs.entry.js +63 -8
- package/dist/cjs/vega-box.cjs.entry.js +6 -6
- package/dist/cjs/vega-button-circle.cjs.entry.js +5 -5
- package/dist/cjs/vega-button.cjs.entry.js +3 -3
- package/dist/cjs/vega-calendar_5.cjs.entry.js +7 -7
- package/dist/cjs/vega-card.cjs.entry.js +5 -5
- package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +20 -3
- package/dist/cjs/vega-chip.cjs.entry.js +5 -5
- package/dist/cjs/vega-code-block.cjs.entry.js +8 -8
- package/dist/cjs/vega-color-picker.cjs.entry.js +11 -2
- package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +12 -3
- package/dist/cjs/vega-color-swatch.cjs.entry.js +2 -2
- package/dist/cjs/vega-combo-box.cjs.entry.js +17 -8
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +22 -13
- package/dist/cjs/vega-dialog_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-divider.cjs.entry.js +5 -5
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +33 -10
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-label.cjs.entry.js +2 -2
- package/dist/cjs/vega-file-uploader.cjs.entry.js +12 -3
- 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 +28 -25
- package/dist/cjs/vega-grid.cjs.entry.js +5 -5
- package/dist/cjs/vega-icon.cjs.entry.js +5 -5
- package/dist/cjs/vega-image-uploader.cjs.entry.js +14 -5
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +16 -7
- package/dist/cjs/vega-input-numeric.cjs.entry.js +14 -5
- package/dist/cjs/vega-input-passcode.cjs.entry.js +14 -5
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +13 -4
- package/dist/cjs/vega-input-range.cjs.entry.js +12 -3
- package/dist/cjs/vega-input-select.cjs.entry.js +14 -5
- package/dist/cjs/vega-input.cjs.entry.js +9 -7
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +71 -11
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
- 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 +8 -8
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-radio_2.cjs.entry.js +17 -5
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +86 -14
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +2122 -451
- package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +1 -1
- 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 +8 -8
- package/dist/cjs/vega-section-title.cjs.entry.js +896 -14
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +13 -4
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +11 -2
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-signature-capture.cjs.entry.js +16 -7
- package/dist/cjs/vega-stepper.cjs.entry.js +12 -3
- package/dist/cjs/vega-table_11.cjs.entry.js +4 -4
- package/dist/cjs/vega-textarea.cjs.entry.js +12 -3
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +18 -9
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +12 -3
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
- package/dist/cjs/vega.cjs.js +12 -12
- package/dist/collection/components/vega-backdrop/slimmers/controller/vega-backdrop-visible-controller.js +63 -8
- package/dist/collection/components/vega-checkbox/vega-checkbox-group/vega-checkbox-group.js +33 -1
- package/dist/collection/components/vega-checkbox/vega-checkbox.js +34 -2
- package/dist/collection/components/vega-color-picker/vega-color-picker.js +33 -1
- package/dist/collection/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.js +33 -1
- package/dist/collection/components/vega-combo-box/vega-combo-box.js +35 -3
- package/dist/collection/components/vega-date-picker/vega-date-picker.js +33 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +30 -7
- package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +33 -1
- package/dist/collection/components/vega-form/slimmers/controllers/vega-form-field-controller.js +9 -9
- package/dist/collection/components/vega-form/slimmers/controllers/vega-form-field-validation-state-controller.js +5 -5
- package/dist/collection/components/vega-form/slimmers/renderers/native-form-renderer.js +4 -1
- package/dist/collection/components/vega-form/vega-form.js +32 -0
- package/dist/collection/components/vega-image-uploader/vega-image-uploader.js +33 -1
- package/dist/collection/components/vega-input/vega-input.js +5 -4
- package/dist/collection/components/vega-input-credit-card/vega-input-credit-card.js +34 -2
- package/dist/collection/components/vega-input-numeric/vega-input-numeric.js +33 -1
- package/dist/collection/components/vega-input-passcode/vega-input-passcode.js +33 -1
- package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +33 -1
- package/dist/collection/components/vega-input-range/vega-input-range.js +33 -1
- package/dist/collection/components/vega-input-select/vega-input-select.js +35 -3
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.js +17 -1
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.js +48 -5
- package/dist/collection/components/vega-radio/vega-radio-group/vega-radio-group.js +18 -3
- package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.css +4 -0
- package/dist/collection/components/vega-rich-text-editor/constants/constant.js +3 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-node-content-strategy.js +29 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-delete-text-or-decorator-node-strategy.js +10 -1
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/block-transform-to-list-strategy.js +8 -3
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-annotation-strategy.abstract.js +60 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-replace-nest-list-strategy.js +36 -4
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-items-strategy.abstract.js +27 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-nest-items-strategy.js +74 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy.js +81 -1
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-selection.js +30 -0
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy.js +160 -9
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy.js +376 -10
- package/dist/collection/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-unnest-items-strategy.js +104 -0
- package/dist/collection/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.js +2 -0
- package/dist/collection/components/vega-rich-text-editor/dto/actions/nest-list-items-action.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/dto/actions/unnest-list-items-action.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/list-annotation.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +10 -1
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +11 -3
- package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +7 -1
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-block-filter-styles-strategy.js +8 -4
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/link-wrapper-renderer.js +26 -3
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js +34 -1
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.js +20 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/annotation-handler/table-annotation-handler-base.js +25 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/li-to-rte-list-item-block-strategy.js +2 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/abstract-delete-content-handler.js +29 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.js +1 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/keyboard-link-handler.js +297 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +13 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.js +30 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/abstract-list-keyboard-handler.js +204 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/list-shift-tab-outdent-handler.js +42 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/list-tab-indent-handler.js +34 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/list-keyboard-slimmer.js +180 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/link-toolbar-button-slimmer.js +8 -2
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +33 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.js +398 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-state-manager.js +111 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-type-config-controller.js +173 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/link-type-handler.js +49 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.js +114 -106
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/utils/link-url-normalizer.js +80 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.js +44 -1
- package/dist/collection/components/vega-section-title/slimmers/a11y-tree/build-section-title-a11y-tree.js +54 -0
- package/dist/collection/components/vega-section-title/slimmers/renderers/vega-section-title-renderer.js +4 -4
- package/dist/collection/components/vega-section-title/vega-section-title.js +18 -2
- package/dist/collection/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.js +33 -1
- package/dist/collection/components/vega-selection-tile/vega-selection-tile-group/vega-selection-tile-group.js +33 -1
- package/dist/collection/components/vega-signature-capture/vega-signature-capture.js +33 -1
- package/dist/collection/components/vega-stepper/vega-stepper.js +34 -2
- package/dist/collection/components/vega-textarea/vega-textarea.js +34 -2
- package/dist/collection/components/vega-time-picker/vega-time-picker.js +33 -1
- package/dist/collection/components/vega-toggle-switch/vega-toggle-switch.js +34 -2
- package/dist/collection/helpers/a11y-tree/a11y-node-dto.js +210 -0
- package/dist/collection/helpers/a11y-tree/a11y-tree-applier.js +189 -0
- package/dist/collection/helpers/a11y-tree/a11y-tree.types.js +48 -0
- package/dist/collection/helpers/a11y-tree/strategies/baseline-strategy.js +78 -0
- package/dist/collection/helpers/a11y-tree/strategies/firefox-nvda-strategy.js +56 -0
- package/dist/collection/helpers/a11y-tree/strategies/webkit-voiceover-strategy.js +140 -0
- package/dist/collection/helpers/a11y-tree/strategy-resolver.js +172 -0
- package/dist/collection/helpers/slimmers/a11y-tree-slimmer.js +54 -0
- package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +29 -0
- package/dist/collection/helpers/slimmers/element-appender/visibility-modifiers/clip-on-scroll-modifier.js +70 -0
- package/dist/collection/helpers/slimmers/element-appender/visibility-modifiers/visibility-modifier.interface.js +1 -0
- package/dist/collection/helpers/slimmers/{field-error-controller-silmmer.js → form/field-error-controller-silmmer.js} +3 -3
- package/dist/collection/helpers/slimmers/{field-error-ui-controller-slimmer.js → form/field-error-ui-controller-slimmer.js} +9 -9
- package/dist/collection/helpers/slimmers/{form-field-controller-slimmer.js → form/form-field-controller-slimmer.js} +9 -18
- package/dist/collection/helpers/slimmers/{form-field-message-translator.js → form/form-field-message-translator.js} +1 -1
- package/dist/collection/helpers/slimmers/{form-field-state-controller-slimmer.js → form/form-field-state-controller-slimmer.js} +1 -1
- package/dist/collection/helpers/slimmers/{form-field-valid-invoke-slimmer.js → form/form-field-valid-invoke-slimmer.js} +2 -2
- package/dist/collection/helpers/slimmers/form/utils/form-field-key.js +20 -0
- package/dist/collection/helpers/translation/locales/en.js +7 -0
- package/dist/collection/helpers/ui/element-appender.js +16 -0
- package/dist/collection/helpers/validator/form-field-controller.js +5 -4
- package/dist/esm/{app-globals-eafcc7a1.js → app-globals-d3991e53.js} +10 -10
- package/dist/esm/{code-block-e12588fe.js → code-block-8df86434.js} +1499 -52
- package/dist/esm/{component-value-history-controller-slimmer.abstract-4e8eb313.js → component-value-history-controller-slimmer.abstract-e4b95997.js} +3 -3
- package/dist/esm/{content-state-8032467a.js → content-state-c63fbeda.js} +106 -542
- package/dist/esm/{date-required-rule-b88e1650.js → date-required-rule-85334d0c.js} +1 -1
- package/dist/esm/{design-token-76bd217c.js → design-token-10ff79b5.js} +3 -3
- package/dist/esm/{element-appender-slimmer-7fcb944b.js → element-appender-slimmer-24be8e94.js} +117 -2
- package/dist/esm/{form-field-controller-slimmer-395c23e3.js → form-field-controller-slimmer-d8628837.js} +5 -14
- package/dist/esm/form-field-key-44ab39d0.js +22 -0
- package/dist/esm/{image-annotation-action-08a20d5e.js → image-annotation-action-fcceff95.js} +2 -2
- package/dist/esm/{image-extension-b6c7e4a7.js → image-extension-3280bdb0.js} +2 -2
- package/dist/esm/index.js +17 -17
- package/dist/esm/{inject-keyboard-manager-86126b5b.js → inject-keyboard-manager-ea1aad5b.js} +1 -1
- package/dist/esm/{internal-calendar-period-factory-3a07dba0.js → internal-calendar-period-factory-7b294fb6.js} +1 -1
- package/dist/esm/{internal-translation-controller-16709132.js → internal-translation-controller-fac22598.js} +7 -0
- package/dist/esm/{keyboard-manager-a0c3e1cf.js → keyboard-manager-50da85d7.js} +1 -1
- package/dist/esm/{keyboard-manager-slimmer-f3f66c15.js → keyboard-manager-slimmer-1f7c8bfb.js} +1 -1
- package/dist/esm/{link-extension-97fcb8fb.js → link-extension-f92c06ef.js} +3 -3
- package/dist/esm/loader.js +12 -12
- package/dist/esm/{month-view-generator-fd0e1856.js → month-view-generator-a1a9a4ec.js} +1 -1
- package/dist/esm/{public-rules-c06f0d2a.js → public-rules-3695aaf7.js} +7 -7
- package/dist/esm/{range-e999837f.js → range-717d552d.js} +1 -1
- package/dist/esm/{responsive-format-facade-ced96b0b.js → responsive-format-facade-f19b601c.js} +1 -1
- package/dist/esm/{rich-text-editor-required-rule-71f8ee98.js → rich-text-editor-required-rule-2e39264a.js} +1 -1
- package/dist/esm/{split-cell-operation-359f8082.js → split-cell-operation-6c26af91.js} +3 -3
- package/dist/esm/{state-border-formatter-b680e922.js → state-border-formatter-bfda33aa.js} +1 -1
- package/dist/esm/{string-format-strategy.abstract-23faab71.js → string-format-strategy.abstract-1f4ff1b3.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-4b4866a6.js → string-input-formatter-slimmer-68b2af39.js} +1 -1
- package/dist/esm/{string-mask-strategy-66586cd8.js → string-mask-strategy-bbbcdbef.js} +2 -2
- package/dist/esm/{style-formatter-f4e16af5.js → style-formatter-e9adc8f4.js} +2 -2
- package/dist/esm/{time-required-rule-6e80a9ab.js → time-required-rule-1ce2d0a0.js} +1 -1
- package/dist/esm/{token-extension-f5bf9c21.js → token-extension-5082a4d2.js} +33 -9
- package/dist/esm/{translation-slimmer-21748a0e.js → translation-slimmer-ee0f0e76.js} +1 -1
- package/dist/esm/{type-guard-ec5e8628.js → type-guard-f2624334.js} +1 -1
- package/dist/esm/{valid-credit-card-number-rule-ca5a47d6.js → valid-credit-card-number-rule-60212b1d.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +6 -6
- package/dist/esm/vega-app-header-button.entry.js +5 -5
- package/dist/esm/vega-backdrop.entry.js +63 -8
- package/dist/esm/vega-box.entry.js +6 -6
- package/dist/esm/vega-button-circle.entry.js +5 -5
- package/dist/esm/vega-button.entry.js +3 -3
- package/dist/esm/vega-calendar_5.entry.js +7 -7
- package/dist/esm/vega-card.entry.js +5 -5
- package/dist/esm/vega-carousel.entry.js +3 -3
- package/dist/esm/vega-checkbox_2.entry.js +20 -3
- package/dist/esm/vega-chip.entry.js +5 -5
- package/dist/esm/vega-code-block.entry.js +8 -8
- package/dist/esm/vega-color-picker.entry.js +11 -2
- package/dist/esm/vega-color-swatch-picker.entry.js +12 -3
- package/dist/esm/vega-color-swatch.entry.js +2 -2
- package/dist/esm/vega-combo-box.entry.js +17 -8
- package/dist/esm/vega-date-picker_2.entry.js +22 -13
- package/dist/esm/vega-dialog_2.entry.js +3 -3
- package/dist/esm/vega-divider.entry.js +5 -5
- package/dist/esm/vega-dropdown_5.entry.js +33 -10
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-label.entry.js +2 -2
- package/dist/esm/vega-file-uploader.entry.js +12 -3
- package/dist/esm/vega-flag-icon.entry.js +5 -5
- package/dist/esm/vega-flex.entry.js +6 -6
- package/dist/esm/vega-font.entry.js +5 -5
- package/dist/esm/vega-form.entry.js +28 -25
- package/dist/esm/vega-grid.entry.js +5 -5
- package/dist/esm/vega-icon.entry.js +5 -5
- package/dist/esm/vega-image-uploader.entry.js +14 -5
- package/dist/esm/vega-input-credit-card.entry.js +16 -7
- package/dist/esm/vega-input-numeric.entry.js +14 -5
- package/dist/esm/vega-input-passcode.entry.js +14 -5
- package/dist/esm/vega-input-phone-number.entry.js +13 -4
- package/dist/esm/vega-input-range.entry.js +12 -3
- package/dist/esm/vega-input-select.entry.js +14 -5
- package/dist/esm/vega-input.entry.js +9 -7
- package/dist/esm/vega-left-nav_5.entry.js +71 -11
- package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
- package/dist/esm/vega-pagination.entry.js +4 -4
- package/dist/esm/vega-popover_2.entry.js +8 -8
- package/dist/esm/vega-progress-tracker_2.entry.js +3 -3
- package/dist/esm/vega-radio_2.entry.js +17 -5
- package/dist/esm/vega-rich-text-content.entry.js +86 -14
- package/dist/esm/vega-rich-text-editor_4.entry.js +2118 -447
- package/dist/esm/vega-rich-text-find-replace-panel.entry.js +1 -1
- package/dist/esm/vega-rich-text-special-characters-panel.entry.js +5 -5
- package/dist/esm/vega-rich-text-table-properties_3.entry.js +8 -8
- package/dist/esm/vega-section-title.entry.js +897 -15
- package/dist/esm/vega-selection-chip_2.entry.js +13 -4
- package/dist/esm/vega-selection-tile_2.entry.js +11 -2
- package/dist/esm/vega-sidenav_3.entry.js +3 -3
- package/dist/esm/vega-signature-capture.entry.js +16 -7
- package/dist/esm/vega-stepper.entry.js +12 -3
- package/dist/esm/vega-table_11.entry.js +4 -4
- package/dist/esm/vega-textarea.entry.js +12 -3
- package/dist/esm/vega-time-picker_2.entry.js +18 -9
- package/dist/esm/vega-toggle-switch.entry.js +12 -3
- package/dist/esm/vega-tooltip_2.entry.js +6 -6
- package/dist/esm/vega.js +12 -12
- package/dist/sri/vega-sri-manifest.json +319 -315
- package/dist/types/components/vega-backdrop/slimmers/controller/vega-backdrop-visible-controller.d.ts +21 -0
- package/dist/types/components/vega-checkbox/vega-checkbox-group/vega-checkbox-group.d.ts +9 -1
- package/dist/types/components/vega-checkbox/vega-checkbox.d.ts +9 -1
- package/dist/types/components/vega-color-picker/vega-color-picker.d.ts +9 -1
- package/dist/types/components/vega-color-swatch/vega-color-swatch-picker/vega-color-swatch-picker.d.ts +9 -1
- package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +15 -7
- package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +9 -1
- package/dist/types/components/vega-dropdown/types.d.ts +2 -2
- package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +32 -9
- package/dist/types/components/vega-file-uploader/vega-file-uploader.d.ts +9 -1
- package/dist/types/components/vega-form/slimmers/controllers/vega-form-field-controller.d.ts +3 -2
- package/dist/types/components/vega-form/slimmers/renderers/native-form-renderer.d.ts +1 -0
- package/dist/types/components/vega-form/vega-form.d.ts +8 -0
- package/dist/types/components/vega-image-uploader/vega-image-uploader.d.ts +9 -1
- package/dist/types/components/vega-input/vega-input.d.ts +3 -2
- package/dist/types/components/vega-input-credit-card/vega-input-credit-card.d.ts +9 -1
- package/dist/types/components/vega-input-numeric/vega-input-numeric.d.ts +9 -1
- package/dist/types/components/vega-input-passcode/vega-input-passcode.d.ts +9 -1
- package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +9 -1
- package/dist/types/components/vega-input-range/vega-input-range.d.ts +9 -1
- package/dist/types/components/vega-input-select/vega-input-select.d.ts +15 -7
- package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-backdrop-manager.d.ts +7 -0
- package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.d.ts +17 -0
- package/dist/types/components/vega-radio/vega-radio-group/vega-radio-group.d.ts +5 -1
- package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +3 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-annotation-strategy.abstract.d.ts +36 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-item-replace-nest-list-strategy.d.ts +14 -2
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-items-strategy.abstract.d.ts +22 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-nest-items-strategy.d.ts +21 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-remove-list-item-strategy.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-selection.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-list-strategy.d.ts +30 -3
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-transform-to-paragraph-strategy.d.ts +99 -3
- package/dist/types/components/vega-rich-text-editor/dto/action-handle-strategies/modify-content-strategies/list-unnest-items-strategy.d.ts +22 -0
- package/dist/types/components/vega-rich-text-editor/dto/actions/modify-content-action.abstract.d.ts +2 -0
- package/dist/types/components/vega-rich-text-editor/dto/actions/nest-list-items-action.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/dto/actions/unnest-list-items-action.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/dto/annotations/list-annotation.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +6 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +5 -1
- package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.d.ts +2 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/extensions/link/type.d.ts +34 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/annotation-handler/table-annotation-handler-base.d.ts +18 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.d.ts +4 -4
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/keyboard-link-handler.d.ts +111 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/bullets-numbers-toolbar-button-slimmer.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/abstract-list-keyboard-handler.d.ts +99 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/list-shift-tab-outdent-handler.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/helper/list-tab-indent-handler.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/bullets-numbers/list-keyboard-slimmer.d.ts +73 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +9 -1
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-controller.d.ts +149 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-editor-state-manager.d.ts +84 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/controllers/link-type-config-controller.d.ts +82 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/link-type-handler.d.ts +33 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/renderers/vega-rich-text-link-editor-renderer.d.ts +24 -17
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/slimmers/utils/link-url-normalizer.d.ts +37 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/types.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-link-editor/vega-rich-text-link-editor.d.ts +12 -0
- package/dist/types/components/vega-section-title/slimmers/a11y-tree/build-section-title-a11y-tree.d.ts +41 -0
- package/dist/types/components/vega-section-title/vega-section-title.d.ts +9 -0
- package/dist/types/components/vega-selection-chip/vega-selection-chip-group/vega-selection-chip-group.d.ts +9 -1
- package/dist/types/components/vega-selection-tile/vega-selection-tile-group/vega-selection-tile-group.d.ts +9 -1
- package/dist/types/components/vega-signature-capture/vega-signature-capture.d.ts +9 -1
- package/dist/types/components/vega-stepper/vega-stepper.d.ts +9 -1
- package/dist/types/components/vega-textarea/vega-textarea.d.ts +9 -1
- package/dist/types/components/vega-time-picker/vega-time-picker.d.ts +9 -1
- package/dist/types/components/vega-toggle-switch/vega-toggle-switch.d.ts +9 -1
- package/dist/types/components.d.ts +297 -14
- package/dist/types/helpers/a11y-tree/a11y-node-dto.d.ts +173 -0
- package/dist/types/helpers/a11y-tree/a11y-tree-applier.d.ts +28 -0
- package/dist/types/helpers/a11y-tree/a11y-tree.types.d.ts +137 -0
- package/dist/types/helpers/a11y-tree/strategies/baseline-strategy.d.ts +18 -0
- package/dist/types/helpers/a11y-tree/strategies/firefox-nvda-strategy.d.ts +16 -0
- package/dist/types/helpers/a11y-tree/strategies/webkit-voiceover-strategy.d.ts +23 -0
- package/dist/types/helpers/a11y-tree/strategy-resolver.d.ts +59 -0
- package/dist/types/helpers/slimmers/a11y-tree-slimmer.d.ts +49 -0
- package/dist/types/helpers/slimmers/element-appender/element-appender-slimmer.d.ts +9 -0
- package/dist/types/helpers/slimmers/element-appender/visibility-modifiers/clip-on-scroll-modifier.d.ts +37 -0
- package/dist/types/helpers/slimmers/element-appender/visibility-modifiers/visibility-modifier.interface.d.ts +56 -0
- package/dist/types/helpers/slimmers/{field-error-controller-silmmer.d.ts → form/field-error-controller-silmmer.d.ts} +1 -1
- package/dist/types/helpers/slimmers/{field-error-ui-controller-slimmer.d.ts → form/field-error-ui-controller-slimmer.d.ts} +2 -2
- package/dist/types/helpers/slimmers/{form-field-controller-slimmer.d.ts → form/form-field-controller-slimmer.d.ts} +6 -14
- package/dist/types/helpers/slimmers/{form-field-message-translator.d.ts → form/form-field-message-translator.d.ts} +2 -2
- package/dist/types/helpers/slimmers/{form-field-state-controller-slimmer.d.ts → form/form-field-state-controller-slimmer.d.ts} +2 -2
- package/dist/types/helpers/slimmers/{form-field-valid-invoke-slimmer.d.ts → form/form-field-valid-invoke-slimmer.d.ts} +3 -3
- package/dist/types/helpers/slimmers/form/utils/form-field-key.d.ts +17 -0
- package/dist/types/helpers/translation/interface.d.ts +7 -0
- package/dist/types/helpers/ui/element-appender.d.ts +7 -0
- package/dist/types/helpers/validator/form-field-controller.d.ts +3 -3
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/p-040ea356.entry.js +1 -0
- package/dist/vega/p-046203cb.entry.js +1 -0
- package/dist/vega/p-0499e65a.entry.js +1 -0
- package/dist/vega/{p-0be4df0a.js → p-0809c651.js} +1 -1
- package/dist/vega/{p-02355de8.js → p-09524fec.js} +1 -1
- package/dist/vega/{p-74f86ff9.entry.js → p-0cf3b5c1.entry.js} +1 -1
- package/dist/vega/p-10d43a80.entry.js +1 -0
- package/dist/vega/{p-3d6f761a.entry.js → p-1132a74e.entry.js} +1 -1
- package/dist/vega/{p-ba662fe5.js → p-12e8a1b2.js} +1 -1
- package/dist/vega/p-1d5e05d9.js +3 -0
- package/dist/vega/{p-3dee1e55.js → p-1e0a8fd3.js} +1 -1
- package/dist/vega/{p-919cddc3.js → p-1ea9ad9a.js} +1 -1
- package/dist/vega/p-21626b93.entry.js +1 -0
- package/dist/vega/p-21f608e8.entry.js +1 -0
- package/dist/vega/p-2540fd1c.entry.js +1 -0
- package/dist/vega/{p-9f201152.entry.js → p-26760c66.entry.js} +1 -1
- package/dist/vega/{p-892edf88.entry.js → p-2acf9b42.entry.js} +1 -1
- package/dist/vega/p-2bb60f89.js +1 -0
- package/dist/vega/{p-b1eb9ff0.js → p-2c2e8615.js} +1 -1
- package/dist/vega/p-2d158cbd.js +1 -0
- package/dist/vega/p-2d7388c9.entry.js +1 -0
- package/dist/vega/{p-b3a2ce06.entry.js → p-2eb8e167.entry.js} +1 -1
- package/dist/vega/p-2ff4ae1c.js +1 -0
- package/dist/vega/p-3488a3f1.entry.js +1 -0
- package/dist/vega/p-363ee8a5.entry.js +1 -0
- package/dist/vega/p-36c89520.entry.js +1 -0
- package/dist/vega/{p-e1737c8e.entry.js → p-3980dfa8.entry.js} +1 -1
- package/dist/vega/{p-14baa886.js → p-39c5054b.js} +1 -1
- package/dist/vega/p-3af5e87b.entry.js +1 -0
- package/dist/vega/{p-8db904dc.js → p-456f678b.js} +1 -1
- package/dist/vega/{p-6c9c2f8c.entry.js → p-461100b8.entry.js} +1 -1
- package/dist/vega/p-4c3a08be.entry.js +1 -0
- package/dist/vega/p-53fd3c41.entry.js +1 -0
- package/dist/vega/{p-6fcec7c7.entry.js → p-56417ec5.entry.js} +1 -1
- package/dist/vega/{p-8a001caa.js → p-5e37b041.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-a0a58295.entry.js → p-5f96e741.entry.js} +1 -1
- package/dist/vega/p-65fee02f.entry.js +1 -0
- package/dist/vega/p-6b76b572.entry.js +1 -0
- package/dist/vega/{p-75e33859.js → p-6c95a6a3.js} +1 -1
- package/dist/vega/p-703ac992.entry.js +1 -0
- package/dist/vega/p-71909102.js +1 -0
- package/dist/vega/{p-e1b57e8f.entry.js → p-72ab5cd5.entry.js} +1 -1
- package/dist/vega/{p-8720816e.js → p-781b7a54.js} +1 -1
- package/dist/vega/{p-7950f3e2.entry.js → p-81d4dfcb.entry.js} +1 -1
- package/dist/vega/p-8611465f.entry.js +1 -0
- package/dist/vega/{p-0d18368b.js → p-874e5624.js} +1 -1
- package/dist/vega/{p-4fe40b76.js → p-8e7932bc.js} +1 -1
- package/dist/vega/p-8ed3b2b6.entry.js +1 -0
- package/dist/vega/{p-9c39f90b.entry.js → p-8ff92914.entry.js} +1 -1
- package/dist/vega/{p-9bdc6e11.entry.js → p-92528dc9.entry.js} +1 -1
- package/dist/vega/p-9664e914.entry.js +1 -0
- package/dist/vega/p-98fc5821.entry.js +1 -0
- package/dist/vega/{p-fe24b459.js → p-9be02fa5.js} +1 -1
- package/dist/vega/p-9c4c474e.entry.js +1 -0
- package/dist/vega/{p-8354cff0.entry.js → p-a034dfc0.entry.js} +1 -1
- package/dist/vega/{p-e48a870f.entry.js → p-a484e32d.entry.js} +1 -1
- package/dist/vega/{p-b9e72de2.entry.js → p-a8174ad8.entry.js} +1 -1
- package/dist/vega/{p-49e1cf4d.entry.js → p-a91927eb.entry.js} +1 -1
- package/dist/vega/{p-b187b82d.entry.js → p-abbceebf.entry.js} +1 -1
- package/dist/vega/{p-e4266b45.entry.js → p-ac94ba1b.entry.js} +1 -1
- package/dist/vega/{p-b775e51f.js → p-ae2abdfa.js} +1 -1
- package/dist/vega/{p-bb60e381.entry.js → p-aeb50cad.entry.js} +1 -1
- package/dist/vega/{p-a890d60b.entry.js → p-b00ec194.entry.js} +1 -1
- package/dist/vega/{p-f78944d7.entry.js → p-b3733762.entry.js} +1 -1
- package/dist/vega/p-b594a11c.entry.js +1 -0
- package/dist/vega/{p-b4e7c967.js → p-b622c455.js} +1 -1
- package/dist/vega/{p-1232b553.entry.js → p-b98ead05.entry.js} +1 -1
- package/dist/vega/{p-e5ff77f7.entry.js → p-c2277448.entry.js} +1 -1
- package/dist/vega/{p-9f7154d2.js → p-c29934ef.js} +1 -1
- package/dist/vega/p-c3646101.entry.js +1 -0
- package/dist/vega/p-ca270da3.entry.js +1 -0
- package/dist/vega/{p-b4c26035.entry.js → p-ccbe3f1b.entry.js} +1 -1
- package/dist/vega/{p-6cde45fc.js → p-cd69aeae.js} +1 -1
- package/dist/vega/{p-579cdeae.js → p-d25c1a48.js} +1 -1
- package/dist/vega/{p-5924adae.entry.js → p-d2cbcf5e.entry.js} +1 -1
- package/dist/vega/{p-df828d90.entry.js → p-d3413a78.entry.js} +1 -1
- package/dist/vega/{p-f1974321.js → p-d609c3fd.js} +1 -1
- package/dist/vega/{p-a7209700.js → p-dad7d2ac.js} +1 -1
- package/dist/vega/{p-61ce8029.js → p-dbb4b1d1.js} +1 -1
- package/dist/vega/p-dcd3e3a7.js +1 -0
- package/dist/vega/p-de8f0d98.js +1 -0
- package/dist/vega/{p-e235020b.entry.js → p-deaf037a.entry.js} +1 -1
- package/dist/vega/p-e1029acc.js +1 -0
- package/dist/vega/p-e18c0656.entry.js +1 -0
- package/dist/vega/p-e3fdb65c.entry.js +1 -0
- package/dist/vega/p-e7e963ba.entry.js +1 -0
- package/dist/vega/{p-f7e459cd.js → p-e9b005df.js} +1 -1
- package/dist/vega/{p-88be9ec5.js → p-e9d09211.js} +1 -1
- package/dist/vega/{p-3c309a38.js → p-f1078e63.js} +1 -1
- package/dist/vega/{p-595998d9.entry.js → p-f29ea345.entry.js} +1 -1
- package/dist/vega/p-f5095035.entry.js +1 -0
- package/dist/vega/{p-05d04c07.entry.js → p-f95d8d10.entry.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +3 -2
- package/dist/vega/p-0512308f.entry.js +0 -1
- package/dist/vega/p-1d8312d3.entry.js +0 -1
- package/dist/vega/p-2d77ae73.entry.js +0 -1
- package/dist/vega/p-2d8d4d5b.entry.js +0 -1
- package/dist/vega/p-320091b7.js +0 -1
- package/dist/vega/p-36949349.js +0 -1
- package/dist/vega/p-38c9d782.js +0 -1
- package/dist/vega/p-4151f53a.entry.js +0 -1
- package/dist/vega/p-4ff48b84.js +0 -1
- package/dist/vega/p-513bc0d9.js +0 -1
- package/dist/vega/p-5e4517eb.entry.js +0 -1
- package/dist/vega/p-6680ba17.entry.js +0 -1
- package/dist/vega/p-80b7945a.entry.js +0 -1
- package/dist/vega/p-841b3281.entry.js +0 -1
- package/dist/vega/p-87e5cb56.entry.js +0 -1
- package/dist/vega/p-8d4b85e7.entry.js +0 -1
- package/dist/vega/p-91303402.entry.js +0 -1
- package/dist/vega/p-97215133.js +0 -1
- package/dist/vega/p-9d96d83f.entry.js +0 -1
- package/dist/vega/p-a05a2f1e.entry.js +0 -1
- package/dist/vega/p-a775825e.entry.js +0 -1
- package/dist/vega/p-ae146458.entry.js +0 -1
- package/dist/vega/p-b8c13ac9.entry.js +0 -1
- package/dist/vega/p-ba2b9663.entry.js +0 -1
- package/dist/vega/p-bbad318e.entry.js +0 -1
- package/dist/vega/p-c079c935.entry.js +0 -1
- package/dist/vega/p-c0e42c03.entry.js +0 -1
- package/dist/vega/p-c41f5684.entry.js +0 -1
- package/dist/vega/p-c54b5a8f.entry.js +0 -1
- package/dist/vega/p-c5d3b008.entry.js +0 -1
- package/dist/vega/p-cd1e976c.entry.js +0 -1
- package/dist/vega/p-d25ca0c3.entry.js +0 -1
- package/dist/vega/p-ebe32b25.entry.js +0 -1
- package/dist/vega/p-ec162599.entry.js +0 -1
- package/dist/vega/p-f4da615a.js +0 -3
- package/dist/vega/p-fc7e4c8a.entry.js +0 -1
|
@@ -24,6 +24,7 @@ import { LogUtility } from '../../../utils/log';
|
|
|
24
24
|
import { HTMLContentCleaner } from '../slimmers/controllers/html-cleaner';
|
|
25
25
|
import { RTEFilterStylesStrategyRegistry } from './filter-styles-strategies/filter-styles-strategy-registry';
|
|
26
26
|
import { DeleteSelectedContentStrategy } from './action-handle-strategies/modify-content-strategies/delete-selected-content-strategy';
|
|
27
|
+
import { ReplaceNestListAction } from './actions/replace-nest-list-action';
|
|
27
28
|
/**
|
|
28
29
|
* Class representing the content state of the rich text editor.
|
|
29
30
|
*/
|
|
@@ -191,14 +192,19 @@ export class VegaRTEContent {
|
|
|
191
192
|
/**
|
|
192
193
|
* Convert text to list.
|
|
193
194
|
*
|
|
194
|
-
* @param {RTETextBlock} block -
|
|
195
|
+
* @param {RTETextBlock | RTEListItemBlock} block - Block to convert or rebuild.
|
|
195
196
|
* @returns {RTEListItemBlock} list item block dto.
|
|
196
197
|
*/
|
|
197
198
|
toListItem(block) {
|
|
199
|
+
var _a;
|
|
198
200
|
block.children.map((node) => node.apply(new SyncUpSelectionAction()));
|
|
199
201
|
const listItemBlock = new RTEListItemBlock(generateUUID());
|
|
200
202
|
listItemBlock.apply(new AppendChildrenAction(block['children']));
|
|
201
203
|
listItemBlock['annotationMap'] = block['annotationMap'];
|
|
204
|
+
if (block instanceof RTEListItemBlock && ((_a = block.nestList) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
205
|
+
listItemBlock.apply(new ReplaceNestListAction([...block.nestList]));
|
|
206
|
+
block.apply(new ReplaceNestListAction([]));
|
|
207
|
+
}
|
|
202
208
|
return listItemBlock;
|
|
203
209
|
}
|
|
204
210
|
/**
|
|
@@ -27,10 +27,14 @@ export class ListBlockFilterStylesStrategy extends RTEFilterStylesStrategy {
|
|
|
27
27
|
* @inheritDoc
|
|
28
28
|
*/
|
|
29
29
|
toCssText() {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
const containerClass = RTEFilterStylesStrategy.RTE_CONTENT_CONTAINER_CLASS_NAME;
|
|
31
|
+
const tags = this.elementTagName.split(',').map((tag) => tag.trim());
|
|
32
|
+
const baseSelector = tags.map((tag) => `.${containerClass} ${tag}`).join(', ');
|
|
33
|
+
const markerSelector = tags
|
|
34
|
+
.map((tag) => `.${containerClass} ${tag} > li::marker`)
|
|
33
35
|
.join(', ');
|
|
34
|
-
|
|
36
|
+
const markerStyles = this.convertStylesMapToCssText(ListAnnotation.getDefaultMarkerStyles());
|
|
37
|
+
return (`${baseSelector} { ${this.convertStylesMapToCssText(this.stylesToBeFiltered)} } ` +
|
|
38
|
+
`${markerSelector} { ${markerStyles} }`);
|
|
35
39
|
}
|
|
36
40
|
}
|
|
@@ -19,12 +19,33 @@ class RTELinkWrapperRenderer {
|
|
|
19
19
|
this.handleChange = ({ detail }, textFromNodes, linkNodes) => {
|
|
20
20
|
switch (detail.action) {
|
|
21
21
|
case 'link': {
|
|
22
|
-
const { url, text } = detail.payload;
|
|
22
|
+
const { url, text, linkType } = detail.payload;
|
|
23
23
|
const textChanged = text !== textFromNodes;
|
|
24
24
|
linkNodes.forEach((node) => {
|
|
25
|
-
const
|
|
25
|
+
const currentLinkAnnotation = node.getAnnotationByType(NodeAnnotationTypeEnum.LINK);
|
|
26
|
+
const groupKey = currentLinkAnnotation.link.groupKey;
|
|
27
|
+
const nextCustomAttribute = Object.assign({}, (currentLinkAnnotation.link.customAttribute || {}));
|
|
28
|
+
if (linkType) {
|
|
29
|
+
nextCustomAttribute['data-link-type'] = linkType;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
delete nextCustomAttribute['data-link-type'];
|
|
33
|
+
}
|
|
34
|
+
const nextLink = {
|
|
35
|
+
href: url,
|
|
36
|
+
groupKey: groupKey,
|
|
37
|
+
};
|
|
38
|
+
if (Object.keys(nextCustomAttribute).length > 0) {
|
|
39
|
+
nextLink.customAttribute = nextCustomAttribute;
|
|
40
|
+
}
|
|
41
|
+
if (currentLinkAnnotation.link.customClass) {
|
|
42
|
+
nextLink.customClass = currentLinkAnnotation.link.customClass;
|
|
43
|
+
}
|
|
44
|
+
if (currentLinkAnnotation.link.customStyle) {
|
|
45
|
+
nextLink.customStyle = currentLinkAnnotation.link.customStyle;
|
|
46
|
+
}
|
|
26
47
|
const linkAnnotationAction = new LinkAnnotationAction({
|
|
27
|
-
link:
|
|
48
|
+
link: nextLink,
|
|
28
49
|
newText: textChanged ? text : undefined,
|
|
29
50
|
needMergeNode: textChanged && linkNodes.length > 1,
|
|
30
51
|
doSplit: false,
|
|
@@ -106,6 +127,7 @@ class RTELinkWrapperRenderer {
|
|
|
106
127
|
return Array.isArray(item);
|
|
107
128
|
}
|
|
108
129
|
renderLinkEditorWrapper(linkNodes, linkAnnotation, linkGroupAnnotation) {
|
|
130
|
+
var _a;
|
|
109
131
|
const { href } = linkAnnotation.link;
|
|
110
132
|
const textFromNodes = linkNodes.map((node) => node.text).join('');
|
|
111
133
|
let linkWrapperRef;
|
|
@@ -117,6 +139,7 @@ class RTELinkWrapperRenderer {
|
|
|
117
139
|
} },
|
|
118
140
|
this.renderLink(linkNodes, linkAnnotation, linkGroupAnnotation),
|
|
119
141
|
h("vega-rich-text-link-editor", { record: {
|
|
142
|
+
linkType: (_a = linkAnnotation.link.customAttribute) === null || _a === void 0 ? void 0 : _a['data-link-type'],
|
|
120
143
|
text: textFromNodes,
|
|
121
144
|
url: href,
|
|
122
145
|
}, ref: (ref) => {
|
package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
import { h } from '@stencil/core';
|
|
2
|
+
import { RTEListItemBlock } from '../../blocks/list-item-block';
|
|
2
3
|
import { RTEBlockRenderer } from './block-renderer.abstract';
|
|
3
4
|
import RTEListItemBlockRenderer from './list-item-block-renderer';
|
|
5
|
+
const defaultOrderedListMarkerRule = ['decimal', 'lower-alpha', 'lower-roman'];
|
|
6
|
+
const defaultBulletListMarkerRule = ['disc', 'circle', 'square'];
|
|
4
7
|
class RTEListBlockRenderer extends RTEBlockRenderer {
|
|
5
8
|
render(block, renderContext) {
|
|
6
9
|
const BlockTag = block.getBlockTag();
|
|
7
|
-
|
|
10
|
+
const styles = block.getStyles(renderContext);
|
|
11
|
+
const resolvedListMarker = this.resolveListMarker(block, styles);
|
|
12
|
+
if (resolvedListMarker) {
|
|
13
|
+
styles.listStyleType = resolvedListMarker;
|
|
14
|
+
}
|
|
15
|
+
return (h(BlockTag, Object.assign({}, this.getCustomAttrs(block), { key: block.id, ref: (ref) => super.registerRef(ref, block), style: styles, class: block.getClasses() }), block.children.map((listItemBlock) => RTEListItemBlockRenderer.render(listItemBlock, renderContext))));
|
|
16
|
+
}
|
|
17
|
+
resolveListMarker(block, styles) {
|
|
18
|
+
if (styles.listStyleType || styles['list-style-type']) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
const depth = this.getListDepth(block, block.type);
|
|
22
|
+
if (block.type === 'number-list') {
|
|
23
|
+
return defaultOrderedListMarkerRule[depth % defaultOrderedListMarkerRule.length];
|
|
24
|
+
}
|
|
25
|
+
if (block.type === 'bullet-list') {
|
|
26
|
+
return defaultBulletListMarkerRule[depth % defaultBulletListMarkerRule.length];
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
getListDepth(block, targetType) {
|
|
31
|
+
let depth = 0;
|
|
32
|
+
let currentList = block;
|
|
33
|
+
while (currentList.parent instanceof RTEListItemBlock) {
|
|
34
|
+
const parentList = currentList.parent.parent;
|
|
35
|
+
if (parentList.type === targetType) {
|
|
36
|
+
depth++;
|
|
37
|
+
}
|
|
38
|
+
currentList = parentList;
|
|
39
|
+
}
|
|
40
|
+
return depth;
|
|
8
41
|
}
|
|
9
42
|
}
|
|
10
43
|
export default new RTEListBlockRenderer();
|
|
@@ -3,9 +3,26 @@ import RTEListBlockRenderer from './list-block-renderer';
|
|
|
3
3
|
import { RTEBlockTextNodesRenderer } from './block-text-nodes-renderer.abstract';
|
|
4
4
|
class RTEListItemBlockRenderer extends RTEBlockTextNodesRenderer {
|
|
5
5
|
render(block, renderContext) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
var _a;
|
|
7
|
+
const hasNestList = ((_a = block.nestList) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
8
|
+
return (h("li", Object.assign({}, this.getCustomAttrs(block), { key: this.getRenderKey(block), ref: (ref) => super.registerRef(ref, block), style: block.getStyles(), class: block.getClasses() }),
|
|
9
|
+
hasNestList ? (
|
|
10
|
+
// Keep text nodes wrapped as a block-level element when a nested list exists.
|
|
11
|
+
// This preserves stable marker/text flow and selection behavior before the child list.
|
|
12
|
+
h("span", { style: { display: 'block' } }, super.renderNodes(block, renderContext))) : (super.renderNodes(block, renderContext)),
|
|
13
|
+
hasNestList && this.renderChildren(block.nestList, renderContext)));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Include structural ownership and direct nested-list identity in the key so
|
|
17
|
+
* list mutations recreate the li when its rendered child shape changes.
|
|
18
|
+
*
|
|
19
|
+
* @param {RTEListItemBlock} block - List item being rendered.
|
|
20
|
+
* @returns {string} Structure-aware render key.
|
|
21
|
+
*/
|
|
22
|
+
getRenderKey(block) {
|
|
23
|
+
var _a;
|
|
24
|
+
const nestListIds = ((_a = block.nestList) !== null && _a !== void 0 ? _a : []).map((list) => list.id);
|
|
25
|
+
return JSON.stringify([block.parent.id, block.id, nestListIds]);
|
|
9
26
|
}
|
|
10
27
|
renderChildren(children, renderContext) {
|
|
11
28
|
return children === null || children === void 0 ? void 0 : children.map((block) => RTEListBlockRenderer.render(block, renderContext));
|
|
@@ -33,12 +33,29 @@ export class TableAnnotationHandlerBase extends AnnotationGeneratorStrategyAbstr
|
|
|
33
33
|
const updatedBorderColor = borderColor === 'initial' ? '' : borderColor;
|
|
34
34
|
return {
|
|
35
35
|
style: borderStyle === 'initial' ? '' : borderStyle,
|
|
36
|
-
width: borderWidth
|
|
36
|
+
width: this.normalizeBorderWidth(borderWidth),
|
|
37
37
|
color: RTETableColorManager.getColorKey(updatedBorderColor) || updatedBorderColor,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
return null;
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Normalize a border width read from the DOM, dropping the `initial` value and the
|
|
44
|
+
* CSS keyword widths (`thin`/`medium`/`thick`). Those only appear as serialization
|
|
45
|
+
* artifacts of shorthand borders (e.g. `border: none` → `border-width: medium`) and
|
|
46
|
+
* are not valid numeric dimensions, so leaving them in would populate the properties
|
|
47
|
+
* "Weight" field with an invalid value and block the whole form from saving.
|
|
48
|
+
*
|
|
49
|
+
* @param {string} borderWidth - The raw border width read from the element style.
|
|
50
|
+
* @returns {string} The normalized border width (empty string when it is a keyword).
|
|
51
|
+
*/
|
|
52
|
+
normalizeBorderWidth(borderWidth) {
|
|
53
|
+
if (borderWidth === 'initial' ||
|
|
54
|
+
TableAnnotationHandlerBase.BORDER_WIDTH_KEYWORDS.includes(borderWidth)) {
|
|
55
|
+
return '';
|
|
56
|
+
}
|
|
57
|
+
return borderWidth;
|
|
58
|
+
}
|
|
42
59
|
/**
|
|
43
60
|
* Extract width from element.
|
|
44
61
|
*
|
|
@@ -76,3 +93,10 @@ export class TableAnnotationHandlerBase extends AnnotationGeneratorStrategyAbstr
|
|
|
76
93
|
return null;
|
|
77
94
|
}
|
|
78
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* CSS border-width keywords. These are produced as serialization artifacts when a
|
|
98
|
+
* shorthand border without an explicit width is round-tripped (e.g. `border: none`
|
|
99
|
+
* expands to `border-width: medium`). They are not valid numeric dimensions for the
|
|
100
|
+
* table/cell properties "Weight" field, so they are normalized away on import.
|
|
101
|
+
*/
|
|
102
|
+
TableAnnotationHandlerBase.BORDER_WIDTH_KEYWORDS = ['thin', 'medium', 'thick'];
|
|
@@ -53,6 +53,8 @@ export class LiToRTEListItemBlockStrategy extends BlockToRTEBlockStrategyAbstrac
|
|
|
53
53
|
*/
|
|
54
54
|
appendChildBlocks(currentBlock, childBlocks) {
|
|
55
55
|
currentBlock.nestList = childBlocks.filter((block) => ['bullet-list', 'number-list'].includes(block.type));
|
|
56
|
+
// Maintain bidirectional parent link so that nested list blocks can traverse up to the list item.
|
|
57
|
+
currentBlock.nestList.forEach((block) => (block.parent = currentBlock));
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Should continue process to child elements.
|
|
@@ -61,11 +61,25 @@ export class AbstractDeleteContentHandler extends BaseHandler {
|
|
|
61
61
|
* @returns {Nullable<RTENode>} The next node, or null when the given node is the last node of the content.
|
|
62
62
|
*/
|
|
63
63
|
getNextNode(node) {
|
|
64
|
+
var _a;
|
|
64
65
|
const block = node.parent;
|
|
65
66
|
const nodeIndex = block.children.indexOf(node);
|
|
66
67
|
if (nodeIndex >= 0 && nodeIndex < block.children.length - 1) {
|
|
67
68
|
return block.children[nodeIndex + 1];
|
|
68
69
|
}
|
|
70
|
+
// When the caret is at the end of a list item that owns nested lists, the next
|
|
71
|
+
// caret position is the first node of the first non-empty nested list, not the following sibling
|
|
72
|
+
// block. Descend into the item's own nestList before ascending to siblings so that
|
|
73
|
+
// a forward delete merges the first nested item up instead of skipping the whole
|
|
74
|
+
// nested list and merging the following sibling into the deepest nested item.
|
|
75
|
+
if (block.isListItemBlock() && ((_a = block.nestList) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
76
|
+
for (const nestedList of block.nestList) {
|
|
77
|
+
const firstNestedNode = nestedList.getFirstNode();
|
|
78
|
+
if (firstNestedNode) {
|
|
79
|
+
return firstNestedNode;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
69
83
|
const nextBlock = this.getNextBlock(block);
|
|
70
84
|
return nextBlock ? nextBlock.getFirstNode() : null;
|
|
71
85
|
}
|
|
@@ -76,10 +90,25 @@ export class AbstractDeleteContentHandler extends BaseHandler {
|
|
|
76
90
|
* @returns {Nullable<RTEBlock>} The next block, or null when the given block is the last block of the content.
|
|
77
91
|
*/
|
|
78
92
|
getNextBlock(block) {
|
|
93
|
+
var _a, _b;
|
|
79
94
|
const parent = block.parent;
|
|
80
95
|
if (!parent || !parent.children) {
|
|
81
96
|
return null;
|
|
82
97
|
}
|
|
98
|
+
// Nested lists are owned through a list item's nestList collection rather than
|
|
99
|
+
// its children collection. Traverse the remaining nested-list branches before
|
|
100
|
+
// ascending to the owning item and its following siblings.
|
|
101
|
+
if (parent instanceof RTEBlock && parent.isListItemBlock()) {
|
|
102
|
+
const nestedListIndex = ((_a = parent.nestList) !== null && _a !== void 0 ? _a : []).indexOf(block);
|
|
103
|
+
if (nestedListIndex >= 0) {
|
|
104
|
+
for (const nestedList of ((_b = parent.nestList) !== null && _b !== void 0 ? _b : []).slice(nestedListIndex + 1)) {
|
|
105
|
+
if (nestedList.getFirstNode()) {
|
|
106
|
+
return nestedList;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return this.getNextBlock(parent);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
83
112
|
const siblings = parent.children;
|
|
84
113
|
const blockIndex = siblings.indexOf(block);
|
|
85
114
|
if (blockIndex >= 0 && siblings[blockIndex + 1]) {
|
|
@@ -14,7 +14,7 @@ export class BaseHandler {
|
|
|
14
14
|
* @param {VegaRTEContent} currentState - The current state of the VegaRTE content.
|
|
15
15
|
* @param {SelectionController} selectionController - Manages the selection of items in the user interface.
|
|
16
16
|
* @param {HTMLElement} richTextEditor - The current rich text editor component
|
|
17
|
-
* @param {
|
|
17
|
+
* @param {Event} [event] - It is used to pass an input event to the method for handling.
|
|
18
18
|
*/
|
|
19
19
|
execute(currentState, selectionController, richTextEditor, event) {
|
|
20
20
|
this.initCurrentStateAndSelection(currentState, selectionController);
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { BaseHandler } from './base-handler';
|
|
2
|
+
import { findParent } from '../../../../../../utils/ui';
|
|
3
|
+
import stateEntityRenderingRegistry from '../../../controllers/state-entity-rendering-registry';
|
|
4
|
+
import { RTETextNode } from '../../../../dto/nodes/text-node';
|
|
5
|
+
import { RTEBlock } from '../../../../dto/blocks/block.abstract';
|
|
6
|
+
/**
|
|
7
|
+
* Handles keyboard-based rich text link interactions (Escape close, Tab into the link popover, and
|
|
8
|
+
* the Command/Control+K open shortcut). Follows the input-event handler workflow so the keyboard
|
|
9
|
+
* link logic stays consistent with the other RTE handlers.
|
|
10
|
+
*/
|
|
11
|
+
export class KeyboardLinkHandler extends BaseHandler {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.activeLinkEditor = null;
|
|
15
|
+
this.activeLinkWrapper = null;
|
|
16
|
+
this.linkPopoverHideHandler = null;
|
|
17
|
+
this.linkPopoverHideOwner = null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Handles keyboard shortcuts for link popover open, close, and focus behavior.
|
|
21
|
+
*
|
|
22
|
+
* @param {KeyboardEvent} [event] - The keydown event fired from the editor.
|
|
23
|
+
*/
|
|
24
|
+
handleEvent(event) {
|
|
25
|
+
if (!event) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (event.key === 'Escape') {
|
|
29
|
+
if (this.activeLinkEditor) {
|
|
30
|
+
event.preventDefault();
|
|
31
|
+
event.stopPropagation();
|
|
32
|
+
void this.activeLinkEditor.hide();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const linkWrapper = this.getFocusedLinkWrapper(event.target);
|
|
36
|
+
const linkEditor = this.getLinkEditorFromWrapper(linkWrapper);
|
|
37
|
+
if (linkEditor) {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
event.stopPropagation();
|
|
40
|
+
void linkEditor.hide();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const linkWrapper = this.getFocusedLinkWrapper(event.target);
|
|
45
|
+
if (event.key === 'Tab' && !event.shiftKey && this.focusVisibleLinkPopoverAction(linkWrapper)) {
|
|
46
|
+
event.preventDefault();
|
|
47
|
+
event.stopPropagation();
|
|
48
|
+
const linkEditor = this.getLinkEditorFromWrapper(linkWrapper) || this.activeLinkEditor;
|
|
49
|
+
if (linkWrapper && linkEditor) {
|
|
50
|
+
this.registerLinkPopoverHideHandler(linkEditor, () => {
|
|
51
|
+
this.handleLinkPopoverHide(linkEditor, linkWrapper);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const isOpenLinkShortcut = (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'k';
|
|
57
|
+
if (!isOpenLinkShortcut || !linkWrapper) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
event.stopPropagation();
|
|
62
|
+
const linkEditor = linkWrapper.querySelector('vega-rich-text-link-editor');
|
|
63
|
+
if (!linkEditor) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
this.activeLinkEditor = linkEditor;
|
|
67
|
+
this.activeLinkWrapper = linkWrapper;
|
|
68
|
+
this.registerLinkPopoverHideHandler(linkEditor, () => {
|
|
69
|
+
this.handleLinkPopoverHide(linkEditor, linkWrapper);
|
|
70
|
+
});
|
|
71
|
+
void linkEditor.show();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Releases any registered popover-hide listener when the owning controller is torn down.
|
|
75
|
+
*/
|
|
76
|
+
dispose() {
|
|
77
|
+
this.unregisterLinkPopoverHideHandler();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Registers a one-time hide listener on the currently open link editor popover.
|
|
81
|
+
*
|
|
82
|
+
* @param {Nullable<HTMLElement>} linkEditor - Link editor that owns the popover.
|
|
83
|
+
* @param {EventListener} handler - Callback invoked when the popover hides.
|
|
84
|
+
*/
|
|
85
|
+
registerLinkPopoverHideHandler(linkEditor, handler) {
|
|
86
|
+
const linkPopoverHideOwner = this.getLinkEditorPopover(linkEditor);
|
|
87
|
+
if (!linkPopoverHideOwner) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this.unregisterLinkPopoverHideHandler();
|
|
91
|
+
this.linkPopoverHideHandler = this.onLinkPopoverHide.bind(this, handler);
|
|
92
|
+
this.linkPopoverHideOwner = linkPopoverHideOwner;
|
|
93
|
+
linkPopoverHideOwner.addEventListener('vegaPopoverHide', this.linkPopoverHideHandler, {
|
|
94
|
+
once: true,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Executes the registered popover-hide callback and clears hide-listener state.
|
|
99
|
+
*
|
|
100
|
+
* @param {EventListener} handler - Registered callback for popover hide.
|
|
101
|
+
* @param {Event} event - Hide event payload.
|
|
102
|
+
*/
|
|
103
|
+
onLinkPopoverHide(handler, event) {
|
|
104
|
+
handler(event);
|
|
105
|
+
this.linkPopoverHideHandler = null;
|
|
106
|
+
this.linkPopoverHideOwner = null;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Removes the currently registered popover hide listener if present.
|
|
110
|
+
*/
|
|
111
|
+
unregisterLinkPopoverHideHandler() {
|
|
112
|
+
if (this.linkPopoverHideOwner && this.linkPopoverHideHandler) {
|
|
113
|
+
this.linkPopoverHideOwner.removeEventListener('vegaPopoverHide', this.linkPopoverHideHandler);
|
|
114
|
+
}
|
|
115
|
+
this.linkPopoverHideHandler = null;
|
|
116
|
+
this.linkPopoverHideOwner = null;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Resolves the closest focused link wrapper from event target or current selection.
|
|
120
|
+
*
|
|
121
|
+
* @param {EventTarget | null} target - Event target from the keydown event.
|
|
122
|
+
* @returns {Nullable<HTMLElement>} Link wrapper element if found.
|
|
123
|
+
*/
|
|
124
|
+
getFocusedLinkWrapper(target) {
|
|
125
|
+
var _a;
|
|
126
|
+
const targetElement = target && target.nodeType === Node.ELEMENT_NODE ? target : null;
|
|
127
|
+
if (targetElement) {
|
|
128
|
+
const directWrapper = targetElement.classList.contains('link-editor-wrapper')
|
|
129
|
+
? targetElement
|
|
130
|
+
: findParent(targetElement, '.link-editor-wrapper');
|
|
131
|
+
if (directWrapper) {
|
|
132
|
+
return directWrapper;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const anchorNode = ((_a = this.selectionController.getSelection()) === null || _a === void 0 ? void 0 : _a.anchorNode) || null;
|
|
136
|
+
const anchorElement = (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) === Node.ELEMENT_NODE
|
|
137
|
+
? anchorNode
|
|
138
|
+
: (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.parentElement) || null;
|
|
139
|
+
if (!anchorElement) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
return anchorElement.classList.contains('link-editor-wrapper')
|
|
143
|
+
? anchorElement
|
|
144
|
+
: findParent(anchorElement, '.link-editor-wrapper');
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Finds the link editor element inside a link wrapper.
|
|
148
|
+
*
|
|
149
|
+
* @typedef HTMLVegaRichTextLinkEditorElement - The type of the link editor element.
|
|
150
|
+
* @param {Nullable<HTMLElement>} linkWrapper - Wrapper that may contain the link editor component.
|
|
151
|
+
* @returns {Nullable<HTMLVegaRichTextLinkEditorElement>} Link editor if present.
|
|
152
|
+
*/
|
|
153
|
+
getLinkEditorFromWrapper(linkWrapper) {
|
|
154
|
+
return ((linkWrapper === null || linkWrapper === void 0 ? void 0 : linkWrapper.querySelector('vega-rich-text-link-editor')) ||
|
|
155
|
+
null);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Gets the popover element rendered by a link editor.
|
|
159
|
+
*
|
|
160
|
+
* @param {Nullable<HTMLElement>} linkEditor - Link editor owning the popover.
|
|
161
|
+
* @returns {Nullable<LinkEditorPopoverElement>} Popover element when available.
|
|
162
|
+
*/
|
|
163
|
+
getLinkEditorPopover(linkEditor) {
|
|
164
|
+
var _a;
|
|
165
|
+
return ((_a = linkEditor === null || linkEditor === void 0 ? void 0 : linkEditor.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('vega-popover')) || null;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Returns the popover content box associated with a link editor.
|
|
169
|
+
*
|
|
170
|
+
* @param {Nullable<HTMLElement>} linkEditor - Link editor owning the popover.
|
|
171
|
+
* @returns {Nullable<HTMLElement>} Popover content box element.
|
|
172
|
+
*/
|
|
173
|
+
getLinkEditorPopoverContentBox(linkEditor) {
|
|
174
|
+
var _a, _b;
|
|
175
|
+
const popover = this.getLinkEditorPopover(linkEditor);
|
|
176
|
+
return ((_b = (_a = popover === null || popover === void 0 ? void 0 : popover.appenderRenderer) === null || _a === void 0 ? void 0 : _a.getPopoverContentBox) === null || _b === void 0 ? void 0 : _b.call(_a)) || null;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Clears active link editor state and restores focus to the provided wrapper.
|
|
180
|
+
*
|
|
181
|
+
* @param {Nullable<HTMLElement>} linkEditor - Link editor that has just hidden.
|
|
182
|
+
* @param {Nullable<HTMLElement>} [focusTarget] - Optional element to receive focus.
|
|
183
|
+
*/
|
|
184
|
+
handleLinkPopoverHide(linkEditor, focusTarget) {
|
|
185
|
+
const resolvedFocusTarget = focusTarget || this.activeLinkWrapper;
|
|
186
|
+
if (!linkEditor || this.activeLinkEditor === linkEditor) {
|
|
187
|
+
this.activeLinkEditor = null;
|
|
188
|
+
this.activeLinkWrapper = null;
|
|
189
|
+
}
|
|
190
|
+
if (resolvedFocusTarget) {
|
|
191
|
+
this.placeLinkCaretAtEnd(resolvedFocusTarget);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Focuses the first visible link action in the current link popover.
|
|
196
|
+
*
|
|
197
|
+
* @param {Nullable<HTMLElement>} [linkWrapper] - Optional focused link wrapper context.
|
|
198
|
+
* @returns {boolean} True when focus moved to an action button.
|
|
199
|
+
*/
|
|
200
|
+
focusVisibleLinkPopoverAction(linkWrapper) {
|
|
201
|
+
var _a;
|
|
202
|
+
const ownerDocument = ((_a = this.richTextEditorRef) === null || _a === void 0 ? void 0 : _a.ownerDocument) || null;
|
|
203
|
+
if (!ownerDocument) {
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
const linkEditor = this.getLinkEditorFromWrapper(linkWrapper || null) || this.activeLinkEditor;
|
|
207
|
+
const popoverContentBox = this.getPreferredLinkActionPopover(ownerDocument, linkEditor);
|
|
208
|
+
if (!popoverContentBox) {
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
const focusableActionButton = this.getFirstFocusableLinkActionButton(popoverContentBox);
|
|
212
|
+
if (!focusableActionButton) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
focusableActionButton.focus();
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Prefers a scoped link-action popover and falls back to globally visible ones.
|
|
220
|
+
*
|
|
221
|
+
* @param {Document} ownerDocument - Document owning editor popovers.
|
|
222
|
+
* @param {Nullable<HTMLElement>} [linkEditor] - Optional scoped link editor.
|
|
223
|
+
* @returns {Nullable<HTMLElement>} Best popover content box to target.
|
|
224
|
+
*/
|
|
225
|
+
getPreferredLinkActionPopover(ownerDocument, linkEditor) {
|
|
226
|
+
const scopedPopoverContentBox = this.getLinkEditorPopoverContentBox(linkEditor || null);
|
|
227
|
+
if (scopedPopoverContentBox &&
|
|
228
|
+
!scopedPopoverContentBox.classList.contains('vega-force-hidden') &&
|
|
229
|
+
this.isLinkActionPopover(scopedPopoverContentBox)) {
|
|
230
|
+
return scopedPopoverContentBox;
|
|
231
|
+
}
|
|
232
|
+
const popoverContentBoxes = Array.from(ownerDocument.querySelectorAll('vega-popover-content-box'));
|
|
233
|
+
const linkActionPopovers = popoverContentBoxes.filter((box) => this.isLinkActionPopover(box));
|
|
234
|
+
const visibleLinkActionPopovers = linkActionPopovers.filter((box) => !box.classList.contains('vega-force-hidden'));
|
|
235
|
+
return visibleLinkActionPopovers[visibleLinkActionPopovers.length - 1] || null;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Checks whether a popover represents the link action menu.
|
|
239
|
+
*
|
|
240
|
+
* @param {HTMLElement} popoverContentBox - Popover content box to inspect.
|
|
241
|
+
* @returns {boolean} True when both edit and unlink actions exist.
|
|
242
|
+
*/
|
|
243
|
+
isLinkActionPopover(popoverContentBox) {
|
|
244
|
+
const items = Array.from(popoverContentBox.querySelectorAll('vega-button-group-item'));
|
|
245
|
+
const hasEditAction = items.some((item) => item.itemKey === 'edit');
|
|
246
|
+
const hasUnlinkAction = items.some((item) => item.itemKey === 'unlink');
|
|
247
|
+
return hasEditAction && hasUnlinkAction;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Gets the preferred focusable element from the first link action item.
|
|
251
|
+
*
|
|
252
|
+
* @param {HTMLElement} popoverContentBox - Link action popover content box.
|
|
253
|
+
* @returns {Nullable<HTMLElement>} Focusable anchor or button element.
|
|
254
|
+
*/
|
|
255
|
+
getFirstFocusableLinkActionButton(popoverContentBox) {
|
|
256
|
+
var _a, _b, _c, _d;
|
|
257
|
+
const allItems = Array.from(popoverContentBox.querySelectorAll('vega-button-group-item'));
|
|
258
|
+
const firstActionItem = allItems.find((item) => item.itemKey === 'edit') ||
|
|
259
|
+
allItems[0] ||
|
|
260
|
+
null;
|
|
261
|
+
if (!firstActionItem) {
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
264
|
+
const firstActionLinkWrapper = ((_a = firstActionItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('vega-button-link')) || null;
|
|
265
|
+
const firstActionButtonWrapper = ((_b = firstActionItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('vega-button')) || null;
|
|
266
|
+
return (((_c = firstActionLinkWrapper === null || firstActionLinkWrapper === void 0 ? void 0 : firstActionLinkWrapper.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('a')) ||
|
|
267
|
+
((_d = firstActionButtonWrapper === null || firstActionButtonWrapper === void 0 ? void 0 : firstActionButtonWrapper.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('button')) ||
|
|
268
|
+
null);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Places the editor caret at the end of the link when the popover closes.
|
|
272
|
+
*
|
|
273
|
+
* @param {Nullable<HTMLElement>} linkWrapper - The link wrapper element containing link text nodes.
|
|
274
|
+
*/
|
|
275
|
+
placeLinkCaretAtEnd(linkWrapper) {
|
|
276
|
+
var _a;
|
|
277
|
+
if (!linkWrapper) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
const allTextSpans = Array.from(linkWrapper.querySelectorAll('span'));
|
|
281
|
+
if (allTextSpans.length === 0) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const lastTextSpan = allTextSpans[allTextSpans.length - 1];
|
|
285
|
+
const lastNodeEntity = stateEntityRenderingRegistry.getEntityByDOM(lastTextSpan);
|
|
286
|
+
if (!lastNodeEntity || lastNodeEntity instanceof RTEBlock) {
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
if (!(lastNodeEntity instanceof RTETextNode)) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
const lastNode = lastNodeEntity;
|
|
293
|
+
const endOffset = ((_a = lastNode.text) === null || _a === void 0 ? void 0 : _a.length) || 0;
|
|
294
|
+
// Place caret at the end of the link when popover closes
|
|
295
|
+
this.selectionController.enqueueSelectionRangeFutureState(lastNode, endOffset, lastNode, endOffset, true);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
@@ -12,6 +12,7 @@ import { ForwardDeleteContentHandler } from './helper/input-event-handler/forwar
|
|
|
12
12
|
import { BackwardDeleteContentHandler } from './helper/input-event-handler/backward-delete-content-handler';
|
|
13
13
|
import { VegaRTEContent } from '../../dto/content-state';
|
|
14
14
|
import { InsertPasteHandler } from './helper/input-event-handler/insert-paste-handler';
|
|
15
|
+
import { KeyboardLinkHandler } from './helper/input-event-handler/keyboard-link-handler';
|
|
15
16
|
import { generateUUID } from '../../../../utils/misc';
|
|
16
17
|
import { RTECodeBlock } from '../../dto/blocks/code-block';
|
|
17
18
|
/** Used to monitoring the user input actions by event listener */
|
|
@@ -24,6 +25,15 @@ export class UserInputController extends VegaSlimmer {
|
|
|
24
25
|
this.forwardDeleteContentHandler = new ForwardDeleteContentHandler();
|
|
25
26
|
this.backwardDeleteContentHandler = new BackwardDeleteContentHandler();
|
|
26
27
|
this.insertPasteHandler = new InsertPasteHandler();
|
|
28
|
+
this.keyboardLinkHandler = new KeyboardLinkHandler();
|
|
29
|
+
/**
|
|
30
|
+
* Dispatches editor keydown events to the keyboard link handler using the shared handler workflow.
|
|
31
|
+
*
|
|
32
|
+
* @param {KeyboardEvent} event - The keydown event fired from the editor.
|
|
33
|
+
*/
|
|
34
|
+
this.handleKeyboardAction = (event) => {
|
|
35
|
+
this.keyboardLinkHandler.execute(this.value, this.selectionController, this.host, event);
|
|
36
|
+
};
|
|
27
37
|
/**
|
|
28
38
|
* When a user performs an input action within the editable element, this function is triggered.
|
|
29
39
|
*
|
|
@@ -78,6 +88,7 @@ export class UserInputController extends VegaSlimmer {
|
|
|
78
88
|
const editableElement = this.getEditableElementRef();
|
|
79
89
|
if (editableElement) {
|
|
80
90
|
editableElement.addEventListener('beforeinput', this.handleUserInputAction);
|
|
91
|
+
editableElement.addEventListener('keydown', this.handleKeyboardAction);
|
|
81
92
|
editableElement.addEventListener('drop', this.preventDropEvent);
|
|
82
93
|
}
|
|
83
94
|
}
|
|
@@ -88,8 +99,10 @@ export class UserInputController extends VegaSlimmer {
|
|
|
88
99
|
const editableElement = this.getEditableElementRef();
|
|
89
100
|
if (editableElement) {
|
|
90
101
|
editableElement.removeEventListener('beforeinput', this.handleUserInputAction);
|
|
102
|
+
editableElement.removeEventListener('keydown', this.handleKeyboardAction);
|
|
91
103
|
editableElement.removeEventListener('drop', this.preventDropEvent);
|
|
92
104
|
}
|
|
105
|
+
this.keyboardLinkHandler.dispose();
|
|
93
106
|
}
|
|
94
107
|
/**
|
|
95
108
|
* The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
|