@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
|
@@ -7,41 +7,41 @@ import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
|
7
7
|
import { d as domNodeSubjectFactory, D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-ddff8662.js';
|
|
8
8
|
import { t as VegaInternalComponentDidRender, e as VegaInternalRichTextEditorFlushChanges, d as VegaInternalRichTextEditDeleteSelectedNodes, H as VegaInternalRichTextImageClick, I as VegaInternalRichTextImageDeleteButtonClicked, z as VegaInternalCodeBlockBlur, a as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-827eb1ce.js';
|
|
9
9
|
import { S as SHADOW_ROOT_ELEMENT_SCROLLING, F as FORM_ELEMENT_VALUE_CHANGE } from './static-subject-title-1c86e974.js';
|
|
10
|
-
import {
|
|
11
|
-
import { d as RTEDTORendererManager, V as VegaRTELinkExtension } from './link-extension-
|
|
12
|
-
import { i as isNonNullable } from './type-guard-
|
|
10
|
+
import { ah as VegaRTEOneRowHeightPx, R as RTETextNode, ai as BoldAnnotationAction, N as NodeAnnotationTypeEnum, aj as ItalicAnnotationAction, ak as UnderlineAnnotationAction, b as RTETextBlock, al as TextStyleAnnotationAction, _ as TextStyleAnnotation, am as BoldAnnotation, an as BlockAnnotationTypeEnum, ao as ClearFormattingAnnotationAction, ap as CodeAnnotationAction, aq as StrikethroughAnnotationAction, af as SelectionChangeAction, ad as LinkAnnotationAction, ar as IndentAnnotationAction, M as ModifyContentAction, i as ModifyContentActionType, q as RTEListItemBlock, $ as RTEHtmlBlock, as as TransformParagraphAction, r as RTECodeBlockNode, A as ActionHandleStrategyRegistry, H as HorizontalAlignmentAnnotationAction, s as stateEntityRenderingRegistry, e as AppendChildrenAction, ac as ZERO_WIDTH_SPACE, U as UpdateTextAction, g as InsertChildrenBeforeAction, S as SplitBlockWithNodeAction, f as RTENode, a as RTEBlock, k as RemoveChildrenAction, y as ReplaceChildNodesAction, at as escapeHtml, p as RTECodeBlock, I as InsertChildrenAfterAction, V as VegaRTEPresetToolbarItems, ab as VegaRTEDefaultTextStyleItems, au as RTE_EMAIL_LINK_TYPE_KEY, av as RTE_DEFAULT_LINK_TYPE_KEY, aw as RTE_SUPPORTED_LINK_TYPE_KEYS } from './code-block-8df86434.js';
|
|
11
|
+
import { d as RTEDTORendererManager, V as VegaRTELinkExtension } from './link-extension-f92c06ef.js';
|
|
12
|
+
import { i as isNonNullable } from './type-guard-f2624334.js';
|
|
13
13
|
import { V as VegaInternalIconManager } from './internal-icon-manager-e7c57096.js';
|
|
14
|
-
import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as ToolbarButtonSlimmer, T as TextColorToolbarButtonSlimmer, n as normalizeUrlByDefaultProtocol } from './image-annotation-action-
|
|
14
|
+
import { V as VisualModeToolbarButtonSlimmer, I as ImageAnnotationAction, a as ToolbarButtonSlimmer, T as TextColorToolbarButtonSlimmer, n as normalizeUrlByDefaultProtocol } from './image-annotation-action-fcceff95.js';
|
|
15
15
|
import { V as VegaDropdownClick, d as VegaChange, a as VegaClick, a0 as VegaImageInserted, a1 as VegaSourceCodeChange, c as VegaPopoverShow, b as VegaPopoverHide } from './vega-event-id-f55f6977.js';
|
|
16
16
|
import { g as generateUUID } from './misc-9fdbcfbb.js';
|
|
17
17
|
import { w as waitForComponentDidRender } from './wait-for-component-did-render-0c237cb8.js';
|
|
18
|
-
import { V as VegaRTEImageExtension, R as ReplaceSelectedTextAction } from './image-extension-
|
|
19
|
-
import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-
|
|
18
|
+
import { V as VegaRTEImageExtension, R as ReplaceSelectedTextAction } from './image-extension-3280bdb0.js';
|
|
19
|
+
import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-d8628837.js';
|
|
20
20
|
import { c as createEventEmitSlimmer } from './event-emit-slimmer-2452278f.js';
|
|
21
21
|
import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-0f72ce74.js';
|
|
22
|
-
import {
|
|
22
|
+
import { V as VegaRTEContent, d as RTEImageNode, M as MergeTwoBlocksNodesAction, I as InsertNewParagraphAction, S as StylePreservator, f as ElementToDtoStrategyProcessor, R as RTEImageBlock } from './content-state-c63fbeda.js';
|
|
23
23
|
import { b as AlignLeft, A as AlignCenter, c as AlignRight, a as AlignJustify } from './align-left-7f959adf.js';
|
|
24
|
-
import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-
|
|
24
|
+
import { R as RTESelectionState, C as ComponentValueHistoryControllerSlimmer, a as SelectionController } from './component-value-history-controller-slimmer.abstract-e4b95997.js';
|
|
25
25
|
import { O as Observer } from './observer-3959f9dd.js';
|
|
26
26
|
import { d as debounce } from './timer-9321173b.js';
|
|
27
27
|
import { D as DarkModeStateControllerSlimmer } from './dark-mode-state-controller-slimmer-778dd929.js';
|
|
28
|
-
import {
|
|
28
|
+
import { f as findParent } from './ui-d73f756a.js';
|
|
29
|
+
import { R as RichTextEditorRequiredRule } from './rich-text-editor-required-rule-2e39264a.js';
|
|
29
30
|
import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-82626871.js';
|
|
30
|
-
import { T as TranslationSlimmer } from './translation-slimmer-
|
|
31
|
+
import { T as TranslationSlimmer } from './translation-slimmer-ee0f0e76.js';
|
|
31
32
|
import { V as VegaInternalThemeManager } from './dark-mode-style-controller-ca5afd2d.js';
|
|
32
33
|
import { A as AutoRunWhenReRenderTaskQueueSlimmer } from './auto-run-when-re-render-task-queue-slimmer.abstract-27820d4c.js';
|
|
33
34
|
import { i as isArrayEqual } from './array-7888f339.js';
|
|
34
35
|
import { c as chevronDown } from './chevron-down-4a75d28e.js';
|
|
35
36
|
import { c as chevronUp } from './chevron-up-b1989751.js';
|
|
36
37
|
import { t as trashCan } from './trash-can-8819a939.js';
|
|
37
|
-
import { f as findParent } from './ui-d73f756a.js';
|
|
38
38
|
import { r as remoteInvocationRegistry } from './remote-invocation-registry-d69245c2.js';
|
|
39
39
|
import './string-a953eafc.js';
|
|
40
40
|
import './typography-19c3b9be.js';
|
|
41
41
|
import './object-0c277f57.js';
|
|
42
42
|
import './breakpoints-d9faf11c.js';
|
|
43
43
|
import './ui-93922c59.js';
|
|
44
|
-
import './internal-translation-controller-
|
|
44
|
+
import './internal-translation-controller-fac22598.js';
|
|
45
45
|
import './icon-manager-4ef3f6dd.js';
|
|
46
46
|
import './create-public-api-runtime-metrics-slimmer-48f85199.js';
|
|
47
47
|
import './dynamic-slimmer-90b8af32.js';
|
|
@@ -50,13 +50,14 @@ import './try-get-document-bef0f526.js';
|
|
|
50
50
|
import './page-resize-observer-slimmer-e24d36c5.js';
|
|
51
51
|
import './breakpoints-332702ed.js';
|
|
52
52
|
import './internal-form-field-validation-rule.abstract-f5b6bdbf.js';
|
|
53
|
+
import './form-field-key-44ab39d0.js';
|
|
53
54
|
import './mutation-observer-slimmer-58ebc13c.js';
|
|
54
55
|
import './mutation-observer-filters-1a054fb0.js';
|
|
55
56
|
import './sub-state-observer-slimmer-64532d94.js';
|
|
56
57
|
import './internal-vega-event-manager-2ecc9186.js';
|
|
57
|
-
import './range-
|
|
58
|
-
import './keyboard-manager-slimmer-
|
|
59
|
-
import './keyboard-manager-
|
|
58
|
+
import './range-717d552d.js';
|
|
59
|
+
import './keyboard-manager-slimmer-1f7c8bfb.js';
|
|
60
|
+
import './keyboard-manager-50da85d7.js';
|
|
60
61
|
import './vega-env-manager-8f8dc473.js';
|
|
61
62
|
import './feature-flag-controller-3fd04ea9.js';
|
|
62
63
|
import './index-9c9865c0.js';
|
|
@@ -65,7 +66,7 @@ import './vega-nonce-manager-497e5eb5.js';
|
|
|
65
66
|
import './synchronize-task-queue-ac8acc3b.js';
|
|
66
67
|
import './number-4398f2e1.js';
|
|
67
68
|
|
|
68
|
-
var __decorate$
|
|
69
|
+
var __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
69
70
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
70
71
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
71
72
|
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;
|
|
@@ -178,59 +179,59 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
|
|
|
178
179
|
this.richTextEditorSourceViewRenderer.render()));
|
|
179
180
|
}
|
|
180
181
|
}
|
|
181
|
-
__decorate$
|
|
182
|
+
__decorate$H([
|
|
182
183
|
MapToComponentField()
|
|
183
184
|
], VegaRichTextEditorRenderer.prototype, "host", void 0);
|
|
184
|
-
__decorate$
|
|
185
|
+
__decorate$H([
|
|
185
186
|
MapToComponentField()
|
|
186
187
|
], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
|
|
187
|
-
__decorate$
|
|
188
|
+
__decorate$H([
|
|
188
189
|
MapToComponentField()
|
|
189
190
|
], VegaRichTextEditorRenderer.prototype, "label", void 0);
|
|
190
|
-
__decorate$
|
|
191
|
+
__decorate$H([
|
|
191
192
|
MapToComponentField()
|
|
192
193
|
], VegaRichTextEditorRenderer.prototype, "required", void 0);
|
|
193
|
-
__decorate$
|
|
194
|
+
__decorate$H([
|
|
194
195
|
MapToComponentField()
|
|
195
196
|
], VegaRichTextEditorRenderer.prototype, "optional", void 0);
|
|
196
|
-
__decorate$
|
|
197
|
+
__decorate$H([
|
|
197
198
|
MapToComponentField()
|
|
198
199
|
], VegaRichTextEditorRenderer.prototype, "hint", void 0);
|
|
199
|
-
__decorate$
|
|
200
|
+
__decorate$H([
|
|
200
201
|
MapToComponentField()
|
|
201
202
|
], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
|
|
202
|
-
__decorate$
|
|
203
|
+
__decorate$H([
|
|
203
204
|
MapToComponentField()
|
|
204
205
|
], VegaRichTextEditorRenderer.prototype, "rows", void 0);
|
|
205
|
-
__decorate$
|
|
206
|
+
__decorate$H([
|
|
206
207
|
MapToComponentField()
|
|
207
208
|
], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
|
|
208
|
-
__decorate$
|
|
209
|
+
__decorate$H([
|
|
209
210
|
MapToComponentField()
|
|
210
211
|
], VegaRichTextEditorRenderer.prototype, "value", void 0);
|
|
211
|
-
__decorate$
|
|
212
|
+
__decorate$H([
|
|
212
213
|
MapToComponentField()
|
|
213
214
|
], VegaRichTextEditorRenderer.prototype, "sourceView", void 0);
|
|
214
|
-
__decorate$
|
|
215
|
+
__decorate$H([
|
|
215
216
|
MapToComponentField()
|
|
216
217
|
], VegaRichTextEditorRenderer.prototype, "toolbarItems", void 0);
|
|
217
|
-
__decorate$
|
|
218
|
+
__decorate$H([
|
|
218
219
|
MapToComponentField()
|
|
219
220
|
], VegaRichTextEditorRenderer.prototype, "sourceEditConfig", void 0);
|
|
220
|
-
__decorate$
|
|
221
|
+
__decorate$H([
|
|
221
222
|
MapToComponentField()
|
|
222
223
|
], VegaRichTextEditorRenderer.prototype, "allowSourceEdit", void 0);
|
|
223
|
-
__decorate$
|
|
224
|
+
__decorate$H([
|
|
224
225
|
MapToComponentField()
|
|
225
226
|
], VegaRichTextEditorRenderer.prototype, "extensions", void 0);
|
|
226
|
-
__decorate$
|
|
227
|
+
__decorate$H([
|
|
227
228
|
MapToComponentField()
|
|
228
229
|
], VegaRichTextEditorRenderer.prototype, "richTextEditorSourceViewRenderer", void 0);
|
|
229
|
-
__decorate$
|
|
230
|
+
__decorate$H([
|
|
230
231
|
MapToComponentMethod('componentDidRender')
|
|
231
232
|
], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
|
|
232
233
|
|
|
233
|
-
var __decorate$
|
|
234
|
+
var __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
234
235
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
235
236
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
236
237
|
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;
|
|
@@ -333,76 +334,76 @@ class ToolbarRenderer extends VegaSlimmer {
|
|
|
333
334
|
return [renderedItems, totalVisibleCount];
|
|
334
335
|
}
|
|
335
336
|
}
|
|
336
|
-
__decorate$
|
|
337
|
+
__decorate$G([
|
|
337
338
|
MapToComponentField()
|
|
338
339
|
], ToolbarRenderer.prototype, "uniqueToolbarItems", void 0);
|
|
339
|
-
__decorate$
|
|
340
|
+
__decorate$G([
|
|
340
341
|
MapToComponentField()
|
|
341
342
|
], ToolbarRenderer.prototype, "allowSourceEdit", void 0);
|
|
342
|
-
__decorate$
|
|
343
|
+
__decorate$G([
|
|
343
344
|
MapToComponentField()
|
|
344
345
|
], ToolbarRenderer.prototype, "host", void 0);
|
|
345
|
-
__decorate$
|
|
346
|
+
__decorate$G([
|
|
346
347
|
MapToComponentField()
|
|
347
348
|
], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
|
|
348
|
-
__decorate$
|
|
349
|
+
__decorate$G([
|
|
349
350
|
MapToComponentField()
|
|
350
351
|
], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
|
|
351
|
-
__decorate$
|
|
352
|
+
__decorate$G([
|
|
352
353
|
MapToComponentField()
|
|
353
354
|
], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
|
|
354
|
-
__decorate$
|
|
355
|
+
__decorate$G([
|
|
355
356
|
MapToComponentField()
|
|
356
357
|
], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
|
|
357
|
-
__decorate$
|
|
358
|
+
__decorate$G([
|
|
358
359
|
MapToComponentField()
|
|
359
360
|
], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
|
|
360
|
-
__decorate$
|
|
361
|
+
__decorate$G([
|
|
361
362
|
MapToComponentField()
|
|
362
363
|
], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
|
|
363
|
-
__decorate$
|
|
364
|
+
__decorate$G([
|
|
364
365
|
MapToComponentField()
|
|
365
366
|
], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
|
|
366
|
-
__decorate$
|
|
367
|
+
__decorate$G([
|
|
367
368
|
MapToComponentField()
|
|
368
369
|
], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
|
|
369
|
-
__decorate$
|
|
370
|
+
__decorate$G([
|
|
370
371
|
MapToComponentField()
|
|
371
372
|
], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
|
|
372
|
-
__decorate$
|
|
373
|
+
__decorate$G([
|
|
373
374
|
MapToComponentField()
|
|
374
375
|
], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
|
|
375
|
-
__decorate$
|
|
376
|
+
__decorate$G([
|
|
376
377
|
MapToComponentField()
|
|
377
378
|
], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
|
|
378
|
-
__decorate$
|
|
379
|
+
__decorate$G([
|
|
379
380
|
MapToComponentField()
|
|
380
381
|
], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
|
|
381
|
-
__decorate$
|
|
382
|
+
__decorate$G([
|
|
382
383
|
MapToComponentField()
|
|
383
384
|
], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
|
|
384
|
-
__decorate$
|
|
385
|
+
__decorate$G([
|
|
385
386
|
MapToComponentField()
|
|
386
387
|
], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
|
|
387
|
-
__decorate$
|
|
388
|
+
__decorate$G([
|
|
388
389
|
MapToComponentField()
|
|
389
390
|
], ToolbarRenderer.prototype, "codeBlockToolbarButtonSlimmer", void 0);
|
|
390
|
-
__decorate$
|
|
391
|
+
__decorate$G([
|
|
391
392
|
MapToComponentField()
|
|
392
393
|
], ToolbarRenderer.prototype, "undoToolbarButtonSlimmer", void 0);
|
|
393
|
-
__decorate$
|
|
394
|
+
__decorate$G([
|
|
394
395
|
MapToComponentField()
|
|
395
396
|
], ToolbarRenderer.prototype, "redoToolbarButtonSlimmer", void 0);
|
|
396
|
-
__decorate$
|
|
397
|
+
__decorate$G([
|
|
397
398
|
MapToComponentField()
|
|
398
399
|
], ToolbarRenderer.prototype, "sourceEditToolbarButtonSlimmer", void 0);
|
|
399
|
-
__decorate$
|
|
400
|
+
__decorate$G([
|
|
400
401
|
MapToComponentField()
|
|
401
402
|
], ToolbarRenderer.prototype, "selectionController", void 0);
|
|
402
|
-
__decorate$
|
|
403
|
+
__decorate$G([
|
|
403
404
|
MapToComponentField()
|
|
404
405
|
], ToolbarRenderer.prototype, "translationSlimmer", void 0);
|
|
405
|
-
__decorate$
|
|
406
|
+
__decorate$G([
|
|
406
407
|
MapToComponentField()
|
|
407
408
|
], ToolbarRenderer.prototype, "sourceView", void 0);
|
|
408
409
|
|
|
@@ -410,7 +411,7 @@ const bold = {
|
|
|
410
411
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"/></svg>`,
|
|
411
412
|
};
|
|
412
413
|
|
|
413
|
-
var __decorate$
|
|
414
|
+
var __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
414
415
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
415
416
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
416
417
|
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;
|
|
@@ -452,7 +453,7 @@ class BoldToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
452
453
|
(() => {
|
|
453
454
|
VegaInternalIconManager.register({ bold });
|
|
454
455
|
})();
|
|
455
|
-
__decorate$
|
|
456
|
+
__decorate$F([
|
|
456
457
|
MapToComponentField()
|
|
457
458
|
], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
458
459
|
|
|
@@ -460,7 +461,7 @@ const italic = {
|
|
|
460
461
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z"/></svg>`,
|
|
461
462
|
};
|
|
462
463
|
|
|
463
|
-
var __decorate$
|
|
464
|
+
var __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
464
465
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
465
466
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
466
467
|
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;
|
|
@@ -500,7 +501,7 @@ class ItalicToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
500
501
|
(() => {
|
|
501
502
|
VegaInternalIconManager.register({ italic });
|
|
502
503
|
})();
|
|
503
|
-
__decorate$
|
|
504
|
+
__decorate$E([
|
|
504
505
|
MapToComponentField()
|
|
505
506
|
], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
506
507
|
|
|
@@ -508,7 +509,7 @@ const underline = {
|
|
|
508
509
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z"/></svg>`,
|
|
509
510
|
};
|
|
510
511
|
|
|
511
|
-
var __decorate$
|
|
512
|
+
var __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
512
513
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
513
514
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
514
515
|
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;
|
|
@@ -551,7 +552,7 @@ class UnderlineToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
551
552
|
(() => {
|
|
552
553
|
VegaInternalIconManager.register({ underline });
|
|
553
554
|
})();
|
|
554
|
-
__decorate$
|
|
555
|
+
__decorate$D([
|
|
555
556
|
MapToComponentField()
|
|
556
557
|
], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
557
558
|
|
|
@@ -559,7 +560,7 @@ const textSize = {
|
|
|
559
560
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M64 128V96h96l0 320H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H224l0-320h96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H192 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM384 304V288h64l0 128H432c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H512l0-128h64v16c0 17.7 14.3 32 32 32s32-14.3 32-32V272c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v32c0 17.7 14.3 32 32 32s32-14.3 32-32z"/></svg>`,
|
|
560
561
|
};
|
|
561
562
|
|
|
562
|
-
var __decorate$
|
|
563
|
+
var __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
563
564
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
564
565
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
565
566
|
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;
|
|
@@ -687,13 +688,13 @@ TextStylesToolbarButtonSlimmer.allItems = [
|
|
|
687
688
|
label: 'Paragraph',
|
|
688
689
|
},
|
|
689
690
|
];
|
|
690
|
-
__decorate$
|
|
691
|
+
__decorate$C([
|
|
691
692
|
MapToComponentField()
|
|
692
693
|
], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
693
|
-
__decorate$
|
|
694
|
+
__decorate$C([
|
|
694
695
|
MapToComponentField()
|
|
695
696
|
], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
|
|
696
|
-
__decorate$
|
|
697
|
+
__decorate$C([
|
|
697
698
|
MapToComponentField()
|
|
698
699
|
], TextStylesToolbarButtonSlimmer.prototype, "textStyleItems", void 0);
|
|
699
700
|
|
|
@@ -701,7 +702,7 @@ const TextSlash = {
|
|
|
701
702
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"/></svg>`,
|
|
702
703
|
};
|
|
703
704
|
|
|
704
|
-
var __decorate$
|
|
705
|
+
var __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
705
706
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
706
707
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
707
708
|
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;
|
|
@@ -738,7 +739,7 @@ class ClearStyleToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
738
739
|
'text-slash': TextSlash,
|
|
739
740
|
});
|
|
740
741
|
})();
|
|
741
|
-
__decorate$
|
|
742
|
+
__decorate$B([
|
|
742
743
|
MapToComponentField()
|
|
743
744
|
], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
744
745
|
|
|
@@ -746,7 +747,7 @@ const codeSimple = {
|
|
|
746
747
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6zm146.7 0L498.7 256 361.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3z"/></svg>`,
|
|
747
748
|
};
|
|
748
749
|
|
|
749
|
-
var __decorate$
|
|
750
|
+
var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
750
751
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
751
752
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
752
753
|
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;
|
|
@@ -784,7 +785,7 @@ class CodeToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
784
785
|
(() => {
|
|
785
786
|
VegaInternalIconManager.register({ 'code-simple': codeSimple });
|
|
786
787
|
})();
|
|
787
|
-
__decorate$
|
|
788
|
+
__decorate$A([
|
|
788
789
|
MapToComponentField()
|
|
789
790
|
], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
790
791
|
|
|
@@ -792,7 +793,7 @@ const strikethrough = {
|
|
|
792
793
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path fill="currentColor" d="M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21c-3.031 17.59-10.88 29.34-24.72 36.99c-35.44 19.75-108.5 11.96-186-19.68c-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37c29.62 0 58.81-5.156 83.72-18.96c30.81-17.09 50.44-45.46 56.72-82.11c3.998-23.27 2.168-42.58-3.488-59.05H332.2zM488 239.9l-176.5-.0309c-15.85-5.613-31.83-10.34-46.7-14.62c-85.47-24.62-110.9-39.05-103.7-81.33c2.5-14.53 10.16-25.96 22.72-34.03c20.47-13.15 64.06-23.84 155.4 .3438c17.09 4.531 34.59-5.654 39.13-22.74c4.531-17.09-5.656-34.59-22.75-39.12c-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1C89.26 184.5 107.9 217.3 137.2 239.9L24 239.9c-13.25 0-24 10.75-24 23.1c0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1C512 250.7 501.3 239.9 488 239.9z"/></svg>`,
|
|
793
794
|
};
|
|
794
795
|
|
|
795
|
-
var __decorate$
|
|
796
|
+
var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
796
797
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
797
798
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
798
799
|
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;
|
|
@@ -835,7 +836,7 @@ class StrikethroughToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
835
836
|
(() => {
|
|
836
837
|
VegaInternalIconManager.register({ strikethrough });
|
|
837
838
|
})();
|
|
838
|
-
__decorate$
|
|
839
|
+
__decorate$z([
|
|
839
840
|
MapToComponentField()
|
|
840
841
|
], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
841
842
|
|
|
@@ -843,7 +844,7 @@ const link = {
|
|
|
843
844
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M562.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L405.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C189.5 251.2 196 330 246 380c56.5 56.5 148 56.5 204.5 0L562.8 267.7zM43.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C57 372 57 321 88.5 289.5L200.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C416.5 260.8 410 182 360 132c-56.5-56.5-148-56.5-204.5 0L43.2 244.3z"/></svg>`,
|
|
844
845
|
};
|
|
845
846
|
|
|
846
|
-
var __decorate$
|
|
847
|
+
var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
847
848
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
848
849
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
849
850
|
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;
|
|
@@ -860,12 +861,18 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
860
861
|
this.handleLinkEditorChange = ({ detail, }) => {
|
|
861
862
|
switch (detail.action) {
|
|
862
863
|
case 'link': {
|
|
863
|
-
const { url, text } = detail.payload;
|
|
864
|
+
const { url, text, linkType } = detail.payload;
|
|
864
865
|
const textChanged = text !== this.currentSelectedText;
|
|
865
866
|
const groupKey = generateUUID();
|
|
866
867
|
this.currentSelectedNodes.forEach((node) => {
|
|
867
868
|
node.apply(new SelectionChangeAction(this.currentRange)).apply(new LinkAnnotationAction({
|
|
868
|
-
link: { href: url, groupKey: groupKey },
|
|
869
|
+
link: Object.assign({ href: url, groupKey: groupKey }, (linkType
|
|
870
|
+
? {
|
|
871
|
+
customAttribute: {
|
|
872
|
+
'data-link-type': linkType,
|
|
873
|
+
},
|
|
874
|
+
}
|
|
875
|
+
: {})),
|
|
869
876
|
newText: textChanged ? text : undefined,
|
|
870
877
|
needMergeNode: textChanged && this.currentSelectedNodes.length > 1,
|
|
871
878
|
type: 'link',
|
|
@@ -926,7 +933,7 @@ class LinkToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
926
933
|
(() => {
|
|
927
934
|
VegaInternalIconManager.register({ link: link });
|
|
928
935
|
})();
|
|
929
|
-
__decorate$
|
|
936
|
+
__decorate$y([
|
|
930
937
|
MapToComponentField()
|
|
931
938
|
], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
932
939
|
|
|
@@ -934,7 +941,7 @@ const indent = {
|
|
|
934
941
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/></svg>`,
|
|
935
942
|
};
|
|
936
943
|
|
|
937
|
-
var __decorate$
|
|
944
|
+
var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
938
945
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
939
946
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
940
947
|
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;
|
|
@@ -968,7 +975,7 @@ class MoreIndentToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
968
975
|
(() => {
|
|
969
976
|
VegaInternalIconManager.register({ indent: indent });
|
|
970
977
|
})();
|
|
971
|
-
__decorate$
|
|
978
|
+
__decorate$x([
|
|
972
979
|
MapToComponentField()
|
|
973
980
|
], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
974
981
|
|
|
@@ -976,7 +983,7 @@ const outdent = {
|
|
|
976
983
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M6 64C6 46.3 20.3 32 38 32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38C20.3 96 6 81.7 6 64zM198 192c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32zm32 96H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32s14.3-32 32-32zM6 448c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L6.2 268.6z"/></svg>`,
|
|
977
984
|
};
|
|
978
985
|
|
|
979
|
-
var __decorate$
|
|
986
|
+
var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
980
987
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
981
988
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
982
989
|
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;
|
|
@@ -1011,7 +1018,7 @@ class LessIndentToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1011
1018
|
(() => {
|
|
1012
1019
|
VegaInternalIconManager.register({ outdent: outdent });
|
|
1013
1020
|
})();
|
|
1014
|
-
__decorate$
|
|
1021
|
+
__decorate$w([
|
|
1015
1022
|
MapToComponentField()
|
|
1016
1023
|
], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1017
1024
|
|
|
@@ -1032,7 +1039,7 @@ class ImageUpdateUrlAction extends ModifyContentAction {
|
|
|
1032
1039
|
}
|
|
1033
1040
|
}
|
|
1034
1041
|
|
|
1035
|
-
var __decorate$
|
|
1042
|
+
var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1036
1043
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1037
1044
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1038
1045
|
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;
|
|
@@ -1231,16 +1238,16 @@ ImageToolbarButtonSlimmer.allItems = [
|
|
|
1231
1238
|
label: 'Insert via URL',
|
|
1232
1239
|
},
|
|
1233
1240
|
];
|
|
1234
|
-
__decorate$
|
|
1241
|
+
__decorate$v([
|
|
1235
1242
|
MapToComponentField()
|
|
1236
1243
|
], ImageToolbarButtonSlimmer.prototype, "host", void 0);
|
|
1237
|
-
__decorate$
|
|
1244
|
+
__decorate$v([
|
|
1238
1245
|
MapToComponentField()
|
|
1239
1246
|
], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
|
|
1240
|
-
__decorate$
|
|
1247
|
+
__decorate$v([
|
|
1241
1248
|
MapToComponentField()
|
|
1242
1249
|
], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
|
|
1243
|
-
__decorate$
|
|
1250
|
+
__decorate$v([
|
|
1244
1251
|
MapToComponentField()
|
|
1245
1252
|
], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1246
1253
|
|
|
@@ -1253,109 +1260,572 @@ const ListOL = {
|
|
|
1253
1260
|
};
|
|
1254
1261
|
|
|
1255
1262
|
/**
|
|
1256
|
-
* Action to
|
|
1263
|
+
* Action to nest the selected list items under the previous sibling.
|
|
1257
1264
|
*/
|
|
1258
|
-
class
|
|
1259
|
-
constructor(
|
|
1265
|
+
class NestListItemsAction extends ModifyContentAction {
|
|
1266
|
+
constructor(selectedBlocks) {
|
|
1260
1267
|
super();
|
|
1261
|
-
this.type = ModifyContentActionType.
|
|
1268
|
+
this.type = ModifyContentActionType.NEST_LIST_ITEMS;
|
|
1262
1269
|
this.isFlushable = true;
|
|
1263
|
-
this.listType = listType;
|
|
1264
1270
|
this.selectedBlocks = selectedBlocks;
|
|
1265
1271
|
}
|
|
1266
1272
|
}
|
|
1267
1273
|
|
|
1268
1274
|
/**
|
|
1269
|
-
*
|
|
1275
|
+
* Abstract base for list keyboard (Tab / Shift+Tab) handlers.
|
|
1276
|
+
* Provides shared selection-normalization utilities used by both the indent
|
|
1277
|
+
* and outdent concrete handlers.
|
|
1270
1278
|
*/
|
|
1271
|
-
class
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1279
|
+
class AbstractListKeyboardHandler {
|
|
1280
|
+
/**
|
|
1281
|
+
* Filter the ordered selection down to only the "root" items —
|
|
1282
|
+
* items whose ancestor is not also present in the selection.
|
|
1283
|
+
*
|
|
1284
|
+
* @param {RTEListItemBlock[]} selection - Ordered selected list items.
|
|
1285
|
+
* @returns {RTEListItemBlock[]} Root items that do not have selected ancestors.
|
|
1286
|
+
*/
|
|
1287
|
+
getOutdentRoots(selection) {
|
|
1288
|
+
const selectedItems = new Set(selection);
|
|
1289
|
+
return selection.filter((item) => !this.hasSelectedAncestor(item, selectedItems));
|
|
1277
1290
|
}
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1291
|
+
/**
|
|
1292
|
+
* Check whether a list item has an ancestor that is also selected.
|
|
1293
|
+
*
|
|
1294
|
+
* @param {RTEListItemBlock} item - Item to inspect.
|
|
1295
|
+
* @param {Set<RTEListItemBlock>} selectedItems - Selected items lookup set.
|
|
1296
|
+
* @returns {boolean} True when an ancestor item is selected.
|
|
1297
|
+
*/
|
|
1298
|
+
hasSelectedAncestor(item, selectedItems) {
|
|
1299
|
+
var _a, _b;
|
|
1300
|
+
let currentParent = (_a = item.parent) === null || _a === void 0 ? void 0 : _a.parent;
|
|
1301
|
+
while (currentParent instanceof RTEListItemBlock) {
|
|
1302
|
+
if (selectedItems.has(currentParent)) {
|
|
1303
|
+
return true;
|
|
1304
|
+
}
|
|
1305
|
+
currentParent = (_b = currentParent.parent) === null || _b === void 0 ? void 0 : _b.parent;
|
|
1306
|
+
}
|
|
1307
|
+
return false;
|
|
1308
|
+
}
|
|
1309
|
+
/**
|
|
1310
|
+
* Split an ordered flat list of items into groups that share the same
|
|
1311
|
+
* parent list and are contiguous siblings.
|
|
1312
|
+
*
|
|
1313
|
+
* @param {RTEListItemBlock[]} selection - Ordered list-item selection.
|
|
1314
|
+
* @returns {RTEListItemBlock[][]} Contiguous parent-based segments.
|
|
1315
|
+
*/
|
|
1316
|
+
splitSelectionIntoParentSegments(selection) {
|
|
1317
|
+
const segments = [];
|
|
1318
|
+
let currentSegment = [];
|
|
1319
|
+
selection.forEach((item) => {
|
|
1320
|
+
if (currentSegment.length === 0) {
|
|
1321
|
+
currentSegment.push(item);
|
|
1322
|
+
return;
|
|
1323
|
+
}
|
|
1324
|
+
const previousItem = currentSegment[currentSegment.length - 1];
|
|
1325
|
+
const isSameParent = previousItem.parent === item.parent;
|
|
1326
|
+
const isContiguousSibling = isSameParent &&
|
|
1327
|
+
item.parent.children.indexOf(item) - item.parent.children.indexOf(previousItem) === 1;
|
|
1328
|
+
if (isContiguousSibling) {
|
|
1329
|
+
currentSegment.push(item);
|
|
1330
|
+
return;
|
|
1331
|
+
}
|
|
1332
|
+
segments.push(currentSegment);
|
|
1333
|
+
currentSegment = [item];
|
|
1293
1334
|
});
|
|
1335
|
+
if (currentSegment.length > 0) {
|
|
1336
|
+
segments.push(currentSegment);
|
|
1337
|
+
}
|
|
1338
|
+
return segments;
|
|
1294
1339
|
}
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1340
|
+
/**
|
|
1341
|
+
* Normalize the selection and split into parent-based contiguous segments.
|
|
1342
|
+
* Returns null when the result is empty.
|
|
1343
|
+
*
|
|
1344
|
+
* @param {RTEBlock[]} selectedBlocks - Raw selected blocks.
|
|
1345
|
+
* @returns {RTEListItemBlock[][] | null} Contiguous segments or null when invalid.
|
|
1346
|
+
*/
|
|
1347
|
+
normalizeToSegments(selectedBlocks) {
|
|
1348
|
+
const normalizedSelection = this.getOrderedListItems(selectedBlocks);
|
|
1349
|
+
if (!normalizedSelection) {
|
|
1350
|
+
return null;
|
|
1351
|
+
}
|
|
1352
|
+
const roots = this.getOutdentRoots(normalizedSelection);
|
|
1353
|
+
const segments = this.splitSelectionIntoParentSegments(roots);
|
|
1354
|
+
return segments.length ? segments : null;
|
|
1298
1355
|
}
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1356
|
+
/**
|
|
1357
|
+
* Return the first and last RTETextNode spanning the provided blocks,
|
|
1358
|
+
* or null when either boundary cannot be resolved.
|
|
1359
|
+
*
|
|
1360
|
+
* @param {RTEBlock[]} blocks - Blocks defining the range boundary.
|
|
1361
|
+
* @returns {Nullable<[RTETextNode, RTETextNode]>} First and last boundary nodes.
|
|
1362
|
+
*/
|
|
1363
|
+
getSelectionBoundary(blocks) {
|
|
1364
|
+
var _a, _b, _c, _d;
|
|
1365
|
+
const firstNode = (_b = (_a = blocks[0]) === null || _a === void 0 ? void 0 : _a.getFirstNode()) !== null && _b !== void 0 ? _b : null;
|
|
1366
|
+
const lastNode = (_d = (_c = blocks[blocks.length - 1]) === null || _c === void 0 ? void 0 : _c.getLastNode()) !== null && _d !== void 0 ? _d : null;
|
|
1367
|
+
if (!firstNode || !lastNode) {
|
|
1368
|
+
return null;
|
|
1302
1369
|
}
|
|
1303
|
-
|
|
1304
|
-
|
|
1370
|
+
return [firstNode, lastNode];
|
|
1371
|
+
}
|
|
1372
|
+
/**
|
|
1373
|
+
* Normalize the raw selectedBlocks into an ordered list of RTEListItemBlocks,
|
|
1374
|
+
* truncating at the first non-list block. Returns null when no list items
|
|
1375
|
+
* are present.
|
|
1376
|
+
*
|
|
1377
|
+
* @param {RTEBlock[]} selectedBlocks - Raw selected blocks.
|
|
1378
|
+
* @returns {RTEListItemBlock[] | null} Ordered list items or null.
|
|
1379
|
+
*/
|
|
1380
|
+
getOrderedListItems(selectedBlocks) {
|
|
1381
|
+
const selectedListItems = this.getSelectedListItemsUntilFirstNonList(selectedBlocks);
|
|
1382
|
+
if (!selectedListItems.length) {
|
|
1383
|
+
return null;
|
|
1305
1384
|
}
|
|
1306
|
-
|
|
1385
|
+
return [...selectedListItems].sort((a, b) => this.compareTreePath(this.getTreePath(a), this.getTreePath(b)));
|
|
1307
1386
|
}
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1387
|
+
/**
|
|
1388
|
+
* Collect contiguous selected list items until a non-list block is found.
|
|
1389
|
+
*
|
|
1390
|
+
* @param {RTEBlock[]} selectedBlocks - Raw selected blocks.
|
|
1391
|
+
* @returns {RTEListItemBlock[]} Selected list items up to first non-list block.
|
|
1392
|
+
*/
|
|
1393
|
+
getSelectedListItemsUntilFirstNonList(selectedBlocks) {
|
|
1394
|
+
const selectedListItems = [];
|
|
1395
|
+
for (const block of selectedBlocks) {
|
|
1396
|
+
if (!(block instanceof RTEListItemBlock)) {
|
|
1397
|
+
if (selectedListItems.length > 0) {
|
|
1398
|
+
break;
|
|
1399
|
+
}
|
|
1400
|
+
return [];
|
|
1401
|
+
}
|
|
1402
|
+
selectedListItems.push(block);
|
|
1403
|
+
}
|
|
1404
|
+
return selectedListItems;
|
|
1312
1405
|
}
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1406
|
+
/**
|
|
1407
|
+
* Build a hierarchical index path for a list item in the list tree.
|
|
1408
|
+
*
|
|
1409
|
+
* @param {RTEListItemBlock} item - Item whose tree path is being resolved.
|
|
1410
|
+
* @returns {number[]} Tree index path from root to the item.
|
|
1411
|
+
*/
|
|
1412
|
+
getTreePath(item) {
|
|
1413
|
+
var _a;
|
|
1414
|
+
const path = [];
|
|
1415
|
+
const visitedLists = new Set();
|
|
1416
|
+
let currentItem = item;
|
|
1417
|
+
let currentList = item.parent;
|
|
1418
|
+
while (currentList && this.hasChildren(currentList) && !visitedLists.has(currentList)) {
|
|
1419
|
+
visitedLists.add(currentList);
|
|
1420
|
+
const itemIndex = currentList.children.indexOf(currentItem);
|
|
1421
|
+
if (itemIndex < 0) {
|
|
1422
|
+
break;
|
|
1423
|
+
}
|
|
1424
|
+
path.unshift(itemIndex);
|
|
1425
|
+
const listParent = currentList.parent;
|
|
1426
|
+
if (listParent instanceof RTEListItemBlock) {
|
|
1427
|
+
const nestListIndex = ((_a = listParent.nestList) !== null && _a !== void 0 ? _a : []).indexOf(currentList);
|
|
1428
|
+
if (nestListIndex < 0) {
|
|
1429
|
+
break;
|
|
1430
|
+
}
|
|
1431
|
+
path.unshift(nestListIndex);
|
|
1432
|
+
currentItem = listParent;
|
|
1433
|
+
currentList = listParent.parent;
|
|
1434
|
+
continue;
|
|
1435
|
+
}
|
|
1436
|
+
let child = currentList;
|
|
1437
|
+
let container = listParent;
|
|
1438
|
+
while (container && this.hasChildren(container)) {
|
|
1439
|
+
const childIndex = container.children.indexOf(child);
|
|
1440
|
+
if (childIndex < 0) {
|
|
1441
|
+
return path;
|
|
1442
|
+
}
|
|
1443
|
+
path.unshift(childIndex);
|
|
1444
|
+
child = container;
|
|
1445
|
+
container = container.parent;
|
|
1446
|
+
}
|
|
1447
|
+
break;
|
|
1448
|
+
}
|
|
1449
|
+
return path;
|
|
1316
1450
|
}
|
|
1317
1451
|
/**
|
|
1318
|
-
*
|
|
1452
|
+
* Compare two list-item tree paths.
|
|
1453
|
+
*
|
|
1454
|
+
* @param {number[]} a - First tree path.
|
|
1455
|
+
* @param {number[]} b - Second tree path.
|
|
1456
|
+
* @returns {number} Negative when a < b, positive when a > b, otherwise 0.
|
|
1457
|
+
*/
|
|
1458
|
+
compareTreePath(a, b) {
|
|
1459
|
+
const length = Math.min(a.length, b.length);
|
|
1460
|
+
for (let i = 0; i < length; i++) {
|
|
1461
|
+
if (a[i] !== b[i]) {
|
|
1462
|
+
return a[i] - b[i];
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1465
|
+
return a.length - b.length;
|
|
1466
|
+
}
|
|
1467
|
+
/**
|
|
1468
|
+
* Check whether a value exposes a children array.
|
|
1469
|
+
*
|
|
1470
|
+
* @param {unknown} entity - Candidate value.
|
|
1471
|
+
* @returns {boolean} True when entity has children array.
|
|
1319
1472
|
*/
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1473
|
+
hasChildren(entity) {
|
|
1474
|
+
return !!entity && Array.isArray(entity.children);
|
|
1475
|
+
}
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
/**
|
|
1479
|
+
* Handles Tab key list indentation.
|
|
1480
|
+
* Normalizes the selection, applies a command-style gate on the first
|
|
1481
|
+
* eligible segment, then nests each qualifying segment.
|
|
1482
|
+
*/
|
|
1483
|
+
class ListTabIndentHandler extends AbstractListKeyboardHandler {
|
|
1484
|
+
/**
|
|
1485
|
+
* @inheritDoc
|
|
1486
|
+
*/
|
|
1487
|
+
execute(selectedBlocks) {
|
|
1488
|
+
const segments = this.normalizeToSegments(selectedBlocks);
|
|
1489
|
+
if (!segments) {
|
|
1490
|
+
return null;
|
|
1491
|
+
}
|
|
1492
|
+
const firstSegment = segments[0];
|
|
1493
|
+
const firstParentList = firstSegment[0].parent;
|
|
1494
|
+
if (firstParentList.children.indexOf(firstSegment[0]) <= 0) {
|
|
1495
|
+
return null;
|
|
1496
|
+
}
|
|
1497
|
+
const segmentSelectionBoundaries = new Array(segments.length).fill(null);
|
|
1498
|
+
for (let i = segments.length - 1; i >= 0; i--) {
|
|
1499
|
+
const segment = segments[i];
|
|
1500
|
+
const parentList = segment[0].parent;
|
|
1501
|
+
if (parentList.children.indexOf(segment[0]) <= 0) {
|
|
1502
|
+
continue;
|
|
1503
|
+
}
|
|
1504
|
+
parentList.apply(new NestListItemsAction(segment));
|
|
1505
|
+
segmentSelectionBoundaries[i] = this.getSelectionBoundary(segment);
|
|
1324
1506
|
}
|
|
1507
|
+
return segmentSelectionBoundaries.some(Boolean) ? segmentSelectionBoundaries : null;
|
|
1508
|
+
}
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
/**
|
|
1512
|
+
* Action to promote the selected nested list items one level up.
|
|
1513
|
+
*/
|
|
1514
|
+
class UnnestListItemsAction extends ModifyContentAction {
|
|
1515
|
+
constructor(selectedBlocks) {
|
|
1516
|
+
super();
|
|
1517
|
+
this.type = ModifyContentActionType.UNNEST_LIST_ITEMS;
|
|
1518
|
+
this.isFlushable = true;
|
|
1519
|
+
this.selectedBlocks = selectedBlocks;
|
|
1325
1520
|
}
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1523
|
+
/**
|
|
1524
|
+
* Handles Shift+Tab key list outdent.
|
|
1525
|
+
* Normalizes the selection, then promotes each segment, either moving nested
|
|
1526
|
+
* items or promoting top-level items to paragraphs.
|
|
1527
|
+
*/
|
|
1528
|
+
class ListShiftTabOutdentHandler extends AbstractListKeyboardHandler {
|
|
1326
1529
|
/**
|
|
1327
|
-
*
|
|
1530
|
+
* @inheritDoc
|
|
1328
1531
|
*/
|
|
1329
|
-
|
|
1330
|
-
const
|
|
1331
|
-
if (
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1532
|
+
execute(selectedBlocks) {
|
|
1533
|
+
const segments = this.normalizeToSegments(selectedBlocks);
|
|
1534
|
+
if (!segments) {
|
|
1535
|
+
return null;
|
|
1536
|
+
}
|
|
1537
|
+
const segmentSelectionBoundaries = new Array(segments.length).fill(null);
|
|
1538
|
+
for (let i = segments.length - 1; i >= 0; i--) {
|
|
1539
|
+
const segment = segments[i];
|
|
1540
|
+
const parentList = segment[0].parent;
|
|
1541
|
+
if (parentList.parent instanceof VegaRTEContent || parentList.parent instanceof RTEHtmlBlock) {
|
|
1542
|
+
// Capture boundary before action moves text nodes into new paragraphs
|
|
1543
|
+
const boundary = this.getSelectionBoundary(segment);
|
|
1544
|
+
parentList.apply(new TransformParagraphAction(segment));
|
|
1545
|
+
segmentSelectionBoundaries[i] = boundary;
|
|
1546
|
+
continue;
|
|
1547
|
+
}
|
|
1548
|
+
if (parentList.parent instanceof RTEListItemBlock) {
|
|
1549
|
+
parentList.apply(new UnnestListItemsAction(segment));
|
|
1550
|
+
segmentSelectionBoundaries[i] = this.getSelectionBoundary(segment);
|
|
1551
|
+
}
|
|
1336
1552
|
}
|
|
1553
|
+
if (segmentSelectionBoundaries.some(Boolean)) {
|
|
1554
|
+
return segmentSelectionBoundaries;
|
|
1555
|
+
}
|
|
1556
|
+
return null;
|
|
1337
1557
|
}
|
|
1338
1558
|
}
|
|
1339
|
-
__decorate$r([
|
|
1340
|
-
MapToComponentField()
|
|
1341
|
-
], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1342
|
-
__decorate$r([
|
|
1343
|
-
MapToComponentField()
|
|
1344
|
-
], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1345
1559
|
|
|
1346
|
-
var __decorate$
|
|
1560
|
+
var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1347
1561
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1348
1562
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1349
1563
|
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;
|
|
1350
1564
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1351
1565
|
};
|
|
1352
|
-
|
|
1566
|
+
const LIST_TOOLBAR_ITEMS = ['bullets', 'numbers', 'bulletsNumbers'];
|
|
1567
|
+
/**
|
|
1568
|
+
* Handles list keyboard shortcuts (Tab/Shift+Tab) for list tooling.
|
|
1569
|
+
*/
|
|
1570
|
+
class ListKeyboardSlimmer extends VegaSlimmer {
|
|
1353
1571
|
constructor() {
|
|
1354
|
-
super(
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1572
|
+
super(...arguments);
|
|
1573
|
+
this.isKeyboardListenerBound = false;
|
|
1574
|
+
this.listTabIndentHandler = new ListTabIndentHandler();
|
|
1575
|
+
this.listShiftTabOutdentHandler = new ListShiftTabOutdentHandler();
|
|
1576
|
+
// Keyboard action execution
|
|
1577
|
+
/**
|
|
1578
|
+
* Handle Tab and Shift+Tab list keyboard interactions.
|
|
1579
|
+
*
|
|
1580
|
+
* @param {KeyboardEvent} e - Keyboard event to process.
|
|
1581
|
+
* @returns {void}
|
|
1582
|
+
*/
|
|
1583
|
+
this.handleListKeyboardAction = (e) => {
|
|
1584
|
+
if (e.key !== 'Tab') {
|
|
1585
|
+
return;
|
|
1586
|
+
}
|
|
1587
|
+
if (this.hasNonShiftModifierForTab(e)) {
|
|
1588
|
+
return;
|
|
1589
|
+
}
|
|
1590
|
+
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
1591
|
+
const currentRange = this.selectionController.getCurrentRange().clone();
|
|
1592
|
+
if (e.shiftKey) {
|
|
1593
|
+
const selectionBoundaries = this.listShiftTabOutdentHandler.execute(selectedBlocks);
|
|
1594
|
+
if (selectionBoundaries) {
|
|
1595
|
+
e.preventDefault();
|
|
1596
|
+
void this.valueController.flushChanges(this.value).then(() => {
|
|
1597
|
+
this.restoreListSelection(selectionBoundaries, currentRange.startNode instanceof RTETextNode ? currentRange.startNode : null, currentRange.endNode instanceof RTETextNode ? currentRange.endNode : null, currentRange.startOffset, currentRange.endOffset);
|
|
1598
|
+
});
|
|
1599
|
+
}
|
|
1600
|
+
return;
|
|
1601
|
+
}
|
|
1602
|
+
const selectionBoundaries = this.listTabIndentHandler.execute(selectedBlocks);
|
|
1603
|
+
if (!selectionBoundaries) {
|
|
1604
|
+
return;
|
|
1605
|
+
}
|
|
1606
|
+
e.preventDefault();
|
|
1607
|
+
void this.valueController.flushChanges(this.value).then(() => {
|
|
1608
|
+
this.restoreListSelection(selectionBoundaries, currentRange.startNode instanceof RTETextNode ? currentRange.startNode : null, currentRange.endNode instanceof RTETextNode ? currentRange.endNode : null, currentRange.startOffset, currentRange.endOffset);
|
|
1609
|
+
});
|
|
1610
|
+
};
|
|
1611
|
+
}
|
|
1612
|
+
// Listener lifecycle and gating
|
|
1613
|
+
/**
|
|
1614
|
+
* @inheritDoc
|
|
1615
|
+
*/
|
|
1616
|
+
disconnectedCallback() {
|
|
1617
|
+
this.removeListKeyboardListener();
|
|
1618
|
+
}
|
|
1619
|
+
/**
|
|
1620
|
+
* @inheritDoc
|
|
1621
|
+
*/
|
|
1622
|
+
componentDidLoad() {
|
|
1623
|
+
this.syncListKeyboardListener();
|
|
1624
|
+
}
|
|
1625
|
+
/**
|
|
1626
|
+
* Re-sync keyboard listener when toolbarItems prop changes at runtime,
|
|
1627
|
+
* ensuring list shortcuts are bound/unbound as tools are added/removed.
|
|
1628
|
+
*/
|
|
1629
|
+
watchToolbarItems() {
|
|
1630
|
+
this.syncListKeyboardListener();
|
|
1631
|
+
}
|
|
1632
|
+
/**
|
|
1633
|
+
* Synchronize the DOM keydown listener with the configured toolbar items.
|
|
1634
|
+
*/
|
|
1635
|
+
syncListKeyboardListener() {
|
|
1636
|
+
if (this.hasListToolbarConfigured()) {
|
|
1637
|
+
this.addListKeyboardListener();
|
|
1638
|
+
return;
|
|
1639
|
+
}
|
|
1640
|
+
this.removeListKeyboardListener();
|
|
1641
|
+
}
|
|
1642
|
+
/**
|
|
1643
|
+
* Determine whether any list keyboard controls are enabled in the toolbar.
|
|
1644
|
+
*
|
|
1645
|
+
* @returns {boolean} True when any list toolbar item is configured.
|
|
1646
|
+
*/
|
|
1647
|
+
hasListToolbarConfigured() {
|
|
1648
|
+
const flatToolbarItems = this.toolbarItems.flat();
|
|
1649
|
+
return flatToolbarItems.some((item) => LIST_TOOLBAR_ITEMS.includes(item));
|
|
1650
|
+
}
|
|
1651
|
+
/**
|
|
1652
|
+
* Attach the keydown listener to the current editable element when available.
|
|
1653
|
+
* Handles element ref changes by rebinding when the target element differs.
|
|
1654
|
+
*/
|
|
1655
|
+
addListKeyboardListener() {
|
|
1656
|
+
const editableElement = this.vegaRichTextEditorRenderer.getRTEEditableElementRef();
|
|
1657
|
+
if (this.isKeyboardListenerBound && this.boundEditableElement === editableElement) {
|
|
1658
|
+
return;
|
|
1659
|
+
}
|
|
1660
|
+
if (this.isKeyboardListenerBound) {
|
|
1661
|
+
this.removeListKeyboardListener();
|
|
1662
|
+
}
|
|
1663
|
+
if (!editableElement) {
|
|
1664
|
+
return;
|
|
1665
|
+
}
|
|
1666
|
+
editableElement.addEventListener('keydown', this.handleListKeyboardAction);
|
|
1667
|
+
this.boundEditableElement = editableElement;
|
|
1668
|
+
this.isKeyboardListenerBound = true;
|
|
1669
|
+
}
|
|
1670
|
+
/**
|
|
1671
|
+
* Detach the keydown listener from the previously bound editable element.
|
|
1672
|
+
*/
|
|
1673
|
+
removeListKeyboardListener() {
|
|
1674
|
+
if (!this.isKeyboardListenerBound || !this.boundEditableElement) {
|
|
1675
|
+
return;
|
|
1676
|
+
}
|
|
1677
|
+
this.boundEditableElement.removeEventListener('keydown', this.handleListKeyboardAction);
|
|
1678
|
+
this.boundEditableElement = null;
|
|
1679
|
+
this.isKeyboardListenerBound = false;
|
|
1680
|
+
}
|
|
1681
|
+
/**
|
|
1682
|
+
* Check whether the Tab event includes modifiers other than Shift.
|
|
1683
|
+
*
|
|
1684
|
+
* @param {KeyboardEvent} e - Keyboard event to inspect.
|
|
1685
|
+
* @returns {boolean} True when non-shift modifier keys are pressed.
|
|
1686
|
+
*/
|
|
1687
|
+
hasNonShiftModifierForTab(e) {
|
|
1688
|
+
return e.altKey || e.ctrlKey || e.metaKey || e.getModifierState('AltGraph');
|
|
1689
|
+
}
|
|
1690
|
+
/**
|
|
1691
|
+
* Restore the logical selection after a list keyboard action completes.
|
|
1692
|
+
*
|
|
1693
|
+
* @param {Array<Nullable<[RTETextNode, RTETextNode]>>} selectionBoundaries - Boundaries produced by the handler.
|
|
1694
|
+
* @param {Nullable<RTETextNode>} preferredStartNode - Preferred start node from prior selection.
|
|
1695
|
+
* @param {Nullable<RTETextNode>} preferredEndNode - Preferred end node from prior selection.
|
|
1696
|
+
* @param {number} startOffset - Preferred start offset.
|
|
1697
|
+
* @param {number} endOffset - Preferred end offset.
|
|
1698
|
+
* @returns {void}
|
|
1699
|
+
*/
|
|
1700
|
+
restoreListSelection(selectionBoundaries, preferredStartNode, preferredEndNode, startOffset, endOffset) {
|
|
1701
|
+
var _a, _b, _c, _d;
|
|
1702
|
+
const firstBoundary = (_a = selectionBoundaries.find(Boolean)) !== null && _a !== void 0 ? _a : null;
|
|
1703
|
+
const lastBoundary = (_b = [...selectionBoundaries].reverse().find(Boolean)) !== null && _b !== void 0 ? _b : null;
|
|
1704
|
+
const firstNode = (_c = preferredStartNode !== null && preferredStartNode !== void 0 ? preferredStartNode : firstBoundary === null || firstBoundary === void 0 ? void 0 : firstBoundary[0]) !== null && _c !== void 0 ? _c : null;
|
|
1705
|
+
const lastNode = (_d = preferredEndNode !== null && preferredEndNode !== void 0 ? preferredEndNode : lastBoundary === null || lastBoundary === void 0 ? void 0 : lastBoundary[1]) !== null && _d !== void 0 ? _d : null;
|
|
1706
|
+
if (!firstNode || !lastNode) {
|
|
1707
|
+
return;
|
|
1708
|
+
}
|
|
1709
|
+
this.selectionController.enqueueSelectionRangeFutureState(firstNode, Math.min(startOffset, firstNode.getRangeEndOffset()), lastNode, Math.min(endOffset, lastNode.getRangeEndOffset()), true);
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
__decorate$u([
|
|
1713
|
+
MapToComponentField()
|
|
1714
|
+
], ListKeyboardSlimmer.prototype, "selectionController", void 0);
|
|
1715
|
+
__decorate$u([
|
|
1716
|
+
MapToComponentField()
|
|
1717
|
+
], ListKeyboardSlimmer.prototype, "valueController", void 0);
|
|
1718
|
+
__decorate$u([
|
|
1719
|
+
MapToComponentField()
|
|
1720
|
+
], ListKeyboardSlimmer.prototype, "value", void 0);
|
|
1721
|
+
__decorate$u([
|
|
1722
|
+
MapToComponentField()
|
|
1723
|
+
], ListKeyboardSlimmer.prototype, "toolbarItems", void 0);
|
|
1724
|
+
__decorate$u([
|
|
1725
|
+
MapToComponentField()
|
|
1726
|
+
], ListKeyboardSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
1727
|
+
__decorate$u([
|
|
1728
|
+
MapToComponentMethod('disconnectedCallback')
|
|
1729
|
+
], ListKeyboardSlimmer.prototype, "disconnectedCallback", null);
|
|
1730
|
+
__decorate$u([
|
|
1731
|
+
MapToComponentMethod('componentDidLoad')
|
|
1732
|
+
], ListKeyboardSlimmer.prototype, "componentDidLoad", null);
|
|
1733
|
+
__decorate$u([
|
|
1734
|
+
MapToComponentMethod('watchToolbarItems')
|
|
1735
|
+
], ListKeyboardSlimmer.prototype, "watchToolbarItems", null);
|
|
1736
|
+
|
|
1737
|
+
/**
|
|
1738
|
+
* Action to toggle bullet annotation
|
|
1739
|
+
*/
|
|
1740
|
+
class TransformListAction extends ModifyContentAction {
|
|
1741
|
+
constructor(listType, selectedBlocks) {
|
|
1742
|
+
super();
|
|
1743
|
+
this.type = ModifyContentActionType.TRANSFORM_LIST_BLOCK;
|
|
1744
|
+
this.isFlushable = true;
|
|
1745
|
+
this.listType = listType;
|
|
1746
|
+
this.selectedBlocks = selectedBlocks;
|
|
1747
|
+
}
|
|
1748
|
+
}
|
|
1749
|
+
|
|
1750
|
+
var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1751
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1752
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1753
|
+
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;
|
|
1754
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1755
|
+
};
|
|
1756
|
+
class BulletsToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
1757
|
+
constructor() {
|
|
1758
|
+
super({
|
|
1759
|
+
icon: 'list-ul',
|
|
1760
|
+
tooltip: {
|
|
1761
|
+
text: 'Bullets',
|
|
1762
|
+
},
|
|
1763
|
+
});
|
|
1764
|
+
}
|
|
1765
|
+
isSelected() {
|
|
1766
|
+
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
1767
|
+
return this.isListType(selectedBlocks);
|
|
1768
|
+
}
|
|
1769
|
+
onClick() {
|
|
1770
|
+
if (this.isSelected()) {
|
|
1771
|
+
this.deselectBulletList();
|
|
1772
|
+
}
|
|
1773
|
+
else {
|
|
1774
|
+
this.selectBulletList();
|
|
1775
|
+
}
|
|
1776
|
+
void this.popoverRef.hide();
|
|
1777
|
+
}
|
|
1778
|
+
isDisabled() {
|
|
1779
|
+
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
1780
|
+
return (super.isDisabled() ||
|
|
1781
|
+
selectedNodes.some((node) => node instanceof RTEImageNode || node instanceof RTECodeBlockNode));
|
|
1782
|
+
}
|
|
1783
|
+
isListType(selectedBlocks, type = 'bullet-list') {
|
|
1784
|
+
return (selectedBlocks.length > 0 &&
|
|
1785
|
+
selectedBlocks.every((block) => block instanceof RTEListItemBlock && block.parent.type === type));
|
|
1786
|
+
}
|
|
1787
|
+
/**
|
|
1788
|
+
* Deselect bullet list item to convert it to default paragraph
|
|
1789
|
+
*/
|
|
1790
|
+
deselectBulletList() {
|
|
1791
|
+
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
1792
|
+
if (selectedBlocks[0]) {
|
|
1793
|
+
selectedBlocks[0].parent.apply(new TransformParagraphAction(selectedBlocks));
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1796
|
+
/**
|
|
1797
|
+
* Select texts or list items or texts and list items to convert it to bullet list
|
|
1798
|
+
*/
|
|
1799
|
+
selectBulletList() {
|
|
1800
|
+
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
1801
|
+
if (selectedBlocks[0]) {
|
|
1802
|
+
const selectedFirstBlock = selectedBlocks[0].type === 'list-item'
|
|
1803
|
+
? selectedBlocks[0].parent
|
|
1804
|
+
: selectedBlocks[0];
|
|
1805
|
+
selectedFirstBlock.apply(new TransformListAction('bullet-list', selectedBlocks));
|
|
1806
|
+
}
|
|
1807
|
+
}
|
|
1808
|
+
}
|
|
1809
|
+
__decorate$t([
|
|
1810
|
+
MapToComponentField()
|
|
1811
|
+
], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1812
|
+
__decorate$t([
|
|
1813
|
+
MapToComponentField()
|
|
1814
|
+
], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1815
|
+
|
|
1816
|
+
var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1817
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1818
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1819
|
+
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;
|
|
1820
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1821
|
+
};
|
|
1822
|
+
class NumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
1823
|
+
constructor() {
|
|
1824
|
+
super({
|
|
1825
|
+
icon: 'list-ol',
|
|
1826
|
+
tooltip: { text: 'Numbers' },
|
|
1827
|
+
});
|
|
1828
|
+
}
|
|
1359
1829
|
isSelected() {
|
|
1360
1830
|
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
1361
1831
|
return this.isListType(selectedBlocks);
|
|
@@ -1400,14 +1870,14 @@ class NumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1400
1870
|
}
|
|
1401
1871
|
}
|
|
1402
1872
|
}
|
|
1403
|
-
__decorate$
|
|
1873
|
+
__decorate$s([
|
|
1404
1874
|
MapToComponentField()
|
|
1405
1875
|
], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1406
|
-
__decorate$
|
|
1876
|
+
__decorate$s([
|
|
1407
1877
|
MapToComponentField()
|
|
1408
1878
|
], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1409
1879
|
|
|
1410
|
-
var __decorate$
|
|
1880
|
+
var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1411
1881
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1412
1882
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1413
1883
|
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;
|
|
@@ -1423,6 +1893,11 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
|
|
|
1423
1893
|
});
|
|
1424
1894
|
this.bulletsToolbarButtonSlimmer = new BulletsToolbarButtonSlimmer();
|
|
1425
1895
|
this.numbersToolbarButtonSlimmer = new NumbersToolbarButtonSlimmer();
|
|
1896
|
+
this.listKeyboardSlimmer = new ListKeyboardSlimmer();
|
|
1897
|
+
}
|
|
1898
|
+
disconnectedCallback() {
|
|
1899
|
+
}
|
|
1900
|
+
componentDidLoad() {
|
|
1426
1901
|
}
|
|
1427
1902
|
componentWillRender() {
|
|
1428
1903
|
if (this.numbersToolbarButtonSlimmer.isSelected()) {
|
|
@@ -1482,20 +1957,41 @@ class BulletsNumbersToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer
|
|
|
1482
1957
|
'list-ol': ListOL,
|
|
1483
1958
|
});
|
|
1484
1959
|
})();
|
|
1485
|
-
__decorate$
|
|
1960
|
+
__decorate$r([
|
|
1486
1961
|
MapToComponentField()
|
|
1487
1962
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1488
|
-
__decorate$
|
|
1963
|
+
__decorate$r([
|
|
1964
|
+
MapToComponentField()
|
|
1965
|
+
], BulletsNumbersToolbarButtonSlimmer.prototype, "valueController", void 0);
|
|
1966
|
+
__decorate$r([
|
|
1967
|
+
MapToComponentField()
|
|
1968
|
+
], BulletsNumbersToolbarButtonSlimmer.prototype, "value", void 0);
|
|
1969
|
+
__decorate$r([
|
|
1970
|
+
MapToComponentField()
|
|
1971
|
+
], BulletsNumbersToolbarButtonSlimmer.prototype, "toolbarItems", void 0);
|
|
1972
|
+
__decorate$r([
|
|
1973
|
+
MapToComponentField()
|
|
1974
|
+
], BulletsNumbersToolbarButtonSlimmer.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
1975
|
+
__decorate$r([
|
|
1489
1976
|
InjectVegaSlimmer()
|
|
1490
1977
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
|
|
1491
|
-
__decorate$
|
|
1978
|
+
__decorate$r([
|
|
1492
1979
|
InjectVegaSlimmer()
|
|
1493
1980
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
|
|
1494
|
-
__decorate$
|
|
1981
|
+
__decorate$r([
|
|
1982
|
+
InjectVegaSlimmer()
|
|
1983
|
+
], BulletsNumbersToolbarButtonSlimmer.prototype, "listKeyboardSlimmer", void 0);
|
|
1984
|
+
__decorate$r([
|
|
1985
|
+
MapToComponentMethod('disconnectedCallback')
|
|
1986
|
+
], BulletsNumbersToolbarButtonSlimmer.prototype, "disconnectedCallback", null);
|
|
1987
|
+
__decorate$r([
|
|
1988
|
+
MapToComponentMethod('componentDidLoad')
|
|
1989
|
+
], BulletsNumbersToolbarButtonSlimmer.prototype, "componentDidLoad", null);
|
|
1990
|
+
__decorate$r([
|
|
1495
1991
|
MapToComponentMethod('componentWillRender')
|
|
1496
1992
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
|
|
1497
1993
|
|
|
1498
|
-
var __decorate$
|
|
1994
|
+
var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1499
1995
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1500
1996
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1501
1997
|
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;
|
|
@@ -1530,14 +2026,14 @@ class LeftAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1530
2026
|
'align-left': AlignLeft,
|
|
1531
2027
|
});
|
|
1532
2028
|
})();
|
|
1533
|
-
__decorate$
|
|
2029
|
+
__decorate$q([
|
|
1534
2030
|
MapToComponentField()
|
|
1535
2031
|
], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1536
|
-
__decorate$
|
|
2032
|
+
__decorate$q([
|
|
1537
2033
|
MapToComponentField()
|
|
1538
2034
|
], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1539
2035
|
|
|
1540
|
-
var __decorate$
|
|
2036
|
+
var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1541
2037
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1542
2038
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1543
2039
|
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;
|
|
@@ -1572,14 +2068,14 @@ class CenterAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1572
2068
|
'align-center': AlignCenter,
|
|
1573
2069
|
});
|
|
1574
2070
|
})();
|
|
1575
|
-
__decorate$
|
|
2071
|
+
__decorate$p([
|
|
1576
2072
|
MapToComponentField()
|
|
1577
2073
|
], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1578
|
-
__decorate$
|
|
2074
|
+
__decorate$p([
|
|
1579
2075
|
MapToComponentField()
|
|
1580
2076
|
], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1581
2077
|
|
|
1582
|
-
var __decorate$
|
|
2078
|
+
var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1583
2079
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1584
2080
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1585
2081
|
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;
|
|
@@ -1614,14 +2110,14 @@ class RightAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1614
2110
|
'align-right': AlignRight,
|
|
1615
2111
|
});
|
|
1616
2112
|
})();
|
|
1617
|
-
__decorate$
|
|
2113
|
+
__decorate$o([
|
|
1618
2114
|
MapToComponentField()
|
|
1619
2115
|
], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1620
|
-
__decorate$
|
|
2116
|
+
__decorate$o([
|
|
1621
2117
|
MapToComponentField()
|
|
1622
2118
|
], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1623
2119
|
|
|
1624
|
-
var __decorate$
|
|
2120
|
+
var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1625
2121
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1626
2122
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1627
2123
|
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;
|
|
@@ -1656,14 +2152,14 @@ class JustifyAlignToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
1656
2152
|
'align-justify': AlignJustify,
|
|
1657
2153
|
});
|
|
1658
2154
|
})();
|
|
1659
|
-
__decorate$
|
|
2155
|
+
__decorate$n([
|
|
1660
2156
|
MapToComponentField()
|
|
1661
2157
|
], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1662
|
-
__decorate$
|
|
2158
|
+
__decorate$n([
|
|
1663
2159
|
MapToComponentField()
|
|
1664
2160
|
], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1665
2161
|
|
|
1666
|
-
var __decorate$
|
|
2162
|
+
var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1667
2163
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1668
2164
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1669
2165
|
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;
|
|
@@ -1721,22 +2217,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends VisualModeToolbarButtonSli
|
|
|
1721
2217
|
.some((block) => this.shouldDisabledToolbar(block, HorizontalAlignmentAnnotationAction.name)));
|
|
1722
2218
|
}
|
|
1723
2219
|
}
|
|
1724
|
-
__decorate$
|
|
2220
|
+
__decorate$m([
|
|
1725
2221
|
MapToComponentField()
|
|
1726
2222
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1727
|
-
__decorate$
|
|
2223
|
+
__decorate$m([
|
|
1728
2224
|
InjectVegaSlimmer()
|
|
1729
2225
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
|
|
1730
|
-
__decorate$
|
|
2226
|
+
__decorate$m([
|
|
1731
2227
|
InjectVegaSlimmer()
|
|
1732
2228
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
|
|
1733
|
-
__decorate$
|
|
2229
|
+
__decorate$m([
|
|
1734
2230
|
InjectVegaSlimmer()
|
|
1735
2231
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
|
|
1736
|
-
__decorate$
|
|
2232
|
+
__decorate$m([
|
|
1737
2233
|
InjectVegaSlimmer()
|
|
1738
2234
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
|
|
1739
|
-
__decorate$
|
|
2235
|
+
__decorate$m([
|
|
1740
2236
|
MapToComponentMethod('componentWillRender')
|
|
1741
2237
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
|
|
1742
2238
|
|
|
@@ -1777,7 +2273,7 @@ class RTEEditorState {
|
|
|
1777
2273
|
}
|
|
1778
2274
|
}
|
|
1779
2275
|
|
|
1780
|
-
var __decorate$
|
|
2276
|
+
var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1781
2277
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1782
2278
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1783
2279
|
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;
|
|
@@ -1863,37 +2359,37 @@ class ValueController extends VegaSlimmer {
|
|
|
1863
2359
|
}
|
|
1864
2360
|
}
|
|
1865
2361
|
ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
|
|
1866
|
-
__decorate$
|
|
2362
|
+
__decorate$l([
|
|
1867
2363
|
MapToComponentField()
|
|
1868
2364
|
], ValueController.prototype, "host", void 0);
|
|
1869
|
-
__decorate$
|
|
2365
|
+
__decorate$l([
|
|
1870
2366
|
MapToComponentField({ writable: true })
|
|
1871
2367
|
], ValueController.prototype, "value", void 0);
|
|
1872
|
-
__decorate$
|
|
2368
|
+
__decorate$l([
|
|
1873
2369
|
MapToComponentField()
|
|
1874
2370
|
], ValueController.prototype, "changeEventEmitter", void 0);
|
|
1875
|
-
__decorate$
|
|
2371
|
+
__decorate$l([
|
|
1876
2372
|
MapToComponentField()
|
|
1877
2373
|
], ValueController.prototype, "valueController", void 0);
|
|
1878
|
-
__decorate$
|
|
2374
|
+
__decorate$l([
|
|
1879
2375
|
MapToComponentField()
|
|
1880
2376
|
], ValueController.prototype, "historyController", void 0);
|
|
1881
|
-
__decorate$
|
|
2377
|
+
__decorate$l([
|
|
1882
2378
|
MapToComponentField()
|
|
1883
2379
|
], ValueController.prototype, "selectionController", void 0);
|
|
1884
|
-
__decorate$
|
|
2380
|
+
__decorate$l([
|
|
1885
2381
|
MapToComponentField()
|
|
1886
2382
|
], ValueController.prototype, "sourceEditConfig", void 0);
|
|
1887
|
-
__decorate$
|
|
2383
|
+
__decorate$l([
|
|
1888
2384
|
MapToComponentMethod('connectedCallback')
|
|
1889
2385
|
], ValueController.prototype, "connectedCallback", null);
|
|
1890
|
-
__decorate$
|
|
2386
|
+
__decorate$l([
|
|
1891
2387
|
MapToComponentMethod('disconnectedCallback')
|
|
1892
2388
|
], ValueController.prototype, "disconnectedCallback", null);
|
|
1893
|
-
__decorate$
|
|
2389
|
+
__decorate$l([
|
|
1894
2390
|
MapToComponentMethod('componentWillLoad')
|
|
1895
2391
|
], ValueController.prototype, "componentWillLoad", null);
|
|
1896
|
-
__decorate$
|
|
2392
|
+
__decorate$l([
|
|
1897
2393
|
MapToComponentMethod('watchValueUpdate')
|
|
1898
2394
|
], ValueController.prototype, "watchValueUpdate", null);
|
|
1899
2395
|
|
|
@@ -1922,7 +2418,7 @@ class BaseHandler {
|
|
|
1922
2418
|
* @param {VegaRTEContent} currentState - The current state of the VegaRTE content.
|
|
1923
2419
|
* @param {SelectionController} selectionController - Manages the selection of items in the user interface.
|
|
1924
2420
|
* @param {HTMLElement} richTextEditor - The current rich text editor component
|
|
1925
|
-
* @param {
|
|
2421
|
+
* @param {Event} [event] - It is used to pass an input event to the method for handling.
|
|
1926
2422
|
*/
|
|
1927
2423
|
execute(currentState, selectionController, richTextEditor, event) {
|
|
1928
2424
|
this.initCurrentStateAndSelection(currentState, selectionController);
|
|
@@ -2381,11 +2877,25 @@ class AbstractDeleteContentHandler extends BaseHandler {
|
|
|
2381
2877
|
* @returns {Nullable<RTENode>} The next node, or null when the given node is the last node of the content.
|
|
2382
2878
|
*/
|
|
2383
2879
|
getNextNode(node) {
|
|
2880
|
+
var _a;
|
|
2384
2881
|
const block = node.parent;
|
|
2385
2882
|
const nodeIndex = block.children.indexOf(node);
|
|
2386
2883
|
if (nodeIndex >= 0 && nodeIndex < block.children.length - 1) {
|
|
2387
2884
|
return block.children[nodeIndex + 1];
|
|
2388
2885
|
}
|
|
2886
|
+
// When the caret is at the end of a list item that owns nested lists, the next
|
|
2887
|
+
// caret position is the first node of the first non-empty nested list, not the following sibling
|
|
2888
|
+
// block. Descend into the item's own nestList before ascending to siblings so that
|
|
2889
|
+
// a forward delete merges the first nested item up instead of skipping the whole
|
|
2890
|
+
// nested list and merging the following sibling into the deepest nested item.
|
|
2891
|
+
if (block.isListItemBlock() && ((_a = block.nestList) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
2892
|
+
for (const nestedList of block.nestList) {
|
|
2893
|
+
const firstNestedNode = nestedList.getFirstNode();
|
|
2894
|
+
if (firstNestedNode) {
|
|
2895
|
+
return firstNestedNode;
|
|
2896
|
+
}
|
|
2897
|
+
}
|
|
2898
|
+
}
|
|
2389
2899
|
const nextBlock = this.getNextBlock(block);
|
|
2390
2900
|
return nextBlock ? nextBlock.getFirstNode() : null;
|
|
2391
2901
|
}
|
|
@@ -2396,10 +2906,25 @@ class AbstractDeleteContentHandler extends BaseHandler {
|
|
|
2396
2906
|
* @returns {Nullable<RTEBlock>} The next block, or null when the given block is the last block of the content.
|
|
2397
2907
|
*/
|
|
2398
2908
|
getNextBlock(block) {
|
|
2909
|
+
var _a, _b;
|
|
2399
2910
|
const parent = block.parent;
|
|
2400
2911
|
if (!parent || !parent.children) {
|
|
2401
2912
|
return null;
|
|
2402
2913
|
}
|
|
2914
|
+
// Nested lists are owned through a list item's nestList collection rather than
|
|
2915
|
+
// its children collection. Traverse the remaining nested-list branches before
|
|
2916
|
+
// ascending to the owning item and its following siblings.
|
|
2917
|
+
if (parent instanceof RTEBlock && parent.isListItemBlock()) {
|
|
2918
|
+
const nestedListIndex = ((_a = parent.nestList) !== null && _a !== void 0 ? _a : []).indexOf(block);
|
|
2919
|
+
if (nestedListIndex >= 0) {
|
|
2920
|
+
for (const nestedList of ((_b = parent.nestList) !== null && _b !== void 0 ? _b : []).slice(nestedListIndex + 1)) {
|
|
2921
|
+
if (nestedList.getFirstNode()) {
|
|
2922
|
+
return nestedList;
|
|
2923
|
+
}
|
|
2924
|
+
}
|
|
2925
|
+
return this.getNextBlock(parent);
|
|
2926
|
+
}
|
|
2927
|
+
}
|
|
2403
2928
|
const siblings = parent.children;
|
|
2404
2929
|
const blockIndex = siblings.indexOf(block);
|
|
2405
2930
|
if (blockIndex >= 0 && siblings[blockIndex + 1]) {
|
|
@@ -3065,7 +3590,300 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3065
3590
|
}
|
|
3066
3591
|
}
|
|
3067
3592
|
|
|
3068
|
-
|
|
3593
|
+
/**
|
|
3594
|
+
* Handles keyboard-based rich text link interactions (Escape close, Tab into the link popover, and
|
|
3595
|
+
* the Command/Control+K open shortcut). Follows the input-event handler workflow so the keyboard
|
|
3596
|
+
* link logic stays consistent with the other RTE handlers.
|
|
3597
|
+
*/
|
|
3598
|
+
class KeyboardLinkHandler extends BaseHandler {
|
|
3599
|
+
constructor() {
|
|
3600
|
+
super(...arguments);
|
|
3601
|
+
this.activeLinkEditor = null;
|
|
3602
|
+
this.activeLinkWrapper = null;
|
|
3603
|
+
this.linkPopoverHideHandler = null;
|
|
3604
|
+
this.linkPopoverHideOwner = null;
|
|
3605
|
+
}
|
|
3606
|
+
/**
|
|
3607
|
+
* Handles keyboard shortcuts for link popover open, close, and focus behavior.
|
|
3608
|
+
*
|
|
3609
|
+
* @param {KeyboardEvent} [event] - The keydown event fired from the editor.
|
|
3610
|
+
*/
|
|
3611
|
+
handleEvent(event) {
|
|
3612
|
+
if (!event) {
|
|
3613
|
+
return;
|
|
3614
|
+
}
|
|
3615
|
+
if (event.key === 'Escape') {
|
|
3616
|
+
if (this.activeLinkEditor) {
|
|
3617
|
+
event.preventDefault();
|
|
3618
|
+
event.stopPropagation();
|
|
3619
|
+
void this.activeLinkEditor.hide();
|
|
3620
|
+
return;
|
|
3621
|
+
}
|
|
3622
|
+
const linkWrapper = this.getFocusedLinkWrapper(event.target);
|
|
3623
|
+
const linkEditor = this.getLinkEditorFromWrapper(linkWrapper);
|
|
3624
|
+
if (linkEditor) {
|
|
3625
|
+
event.preventDefault();
|
|
3626
|
+
event.stopPropagation();
|
|
3627
|
+
void linkEditor.hide();
|
|
3628
|
+
return;
|
|
3629
|
+
}
|
|
3630
|
+
}
|
|
3631
|
+
const linkWrapper = this.getFocusedLinkWrapper(event.target);
|
|
3632
|
+
if (event.key === 'Tab' && !event.shiftKey && this.focusVisibleLinkPopoverAction(linkWrapper)) {
|
|
3633
|
+
event.preventDefault();
|
|
3634
|
+
event.stopPropagation();
|
|
3635
|
+
const linkEditor = this.getLinkEditorFromWrapper(linkWrapper) || this.activeLinkEditor;
|
|
3636
|
+
if (linkWrapper && linkEditor) {
|
|
3637
|
+
this.registerLinkPopoverHideHandler(linkEditor, () => {
|
|
3638
|
+
this.handleLinkPopoverHide(linkEditor, linkWrapper);
|
|
3639
|
+
});
|
|
3640
|
+
}
|
|
3641
|
+
return;
|
|
3642
|
+
}
|
|
3643
|
+
const isOpenLinkShortcut = (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'k';
|
|
3644
|
+
if (!isOpenLinkShortcut || !linkWrapper) {
|
|
3645
|
+
return;
|
|
3646
|
+
}
|
|
3647
|
+
event.preventDefault();
|
|
3648
|
+
event.stopPropagation();
|
|
3649
|
+
const linkEditor = linkWrapper.querySelector('vega-rich-text-link-editor');
|
|
3650
|
+
if (!linkEditor) {
|
|
3651
|
+
return;
|
|
3652
|
+
}
|
|
3653
|
+
this.activeLinkEditor = linkEditor;
|
|
3654
|
+
this.activeLinkWrapper = linkWrapper;
|
|
3655
|
+
this.registerLinkPopoverHideHandler(linkEditor, () => {
|
|
3656
|
+
this.handleLinkPopoverHide(linkEditor, linkWrapper);
|
|
3657
|
+
});
|
|
3658
|
+
void linkEditor.show();
|
|
3659
|
+
}
|
|
3660
|
+
/**
|
|
3661
|
+
* Releases any registered popover-hide listener when the owning controller is torn down.
|
|
3662
|
+
*/
|
|
3663
|
+
dispose() {
|
|
3664
|
+
this.unregisterLinkPopoverHideHandler();
|
|
3665
|
+
}
|
|
3666
|
+
/**
|
|
3667
|
+
* Registers a one-time hide listener on the currently open link editor popover.
|
|
3668
|
+
*
|
|
3669
|
+
* @param {Nullable<HTMLElement>} linkEditor - Link editor that owns the popover.
|
|
3670
|
+
* @param {EventListener} handler - Callback invoked when the popover hides.
|
|
3671
|
+
*/
|
|
3672
|
+
registerLinkPopoverHideHandler(linkEditor, handler) {
|
|
3673
|
+
const linkPopoverHideOwner = this.getLinkEditorPopover(linkEditor);
|
|
3674
|
+
if (!linkPopoverHideOwner) {
|
|
3675
|
+
return;
|
|
3676
|
+
}
|
|
3677
|
+
this.unregisterLinkPopoverHideHandler();
|
|
3678
|
+
this.linkPopoverHideHandler = this.onLinkPopoverHide.bind(this, handler);
|
|
3679
|
+
this.linkPopoverHideOwner = linkPopoverHideOwner;
|
|
3680
|
+
linkPopoverHideOwner.addEventListener('vegaPopoverHide', this.linkPopoverHideHandler, {
|
|
3681
|
+
once: true,
|
|
3682
|
+
});
|
|
3683
|
+
}
|
|
3684
|
+
/**
|
|
3685
|
+
* Executes the registered popover-hide callback and clears hide-listener state.
|
|
3686
|
+
*
|
|
3687
|
+
* @param {EventListener} handler - Registered callback for popover hide.
|
|
3688
|
+
* @param {Event} event - Hide event payload.
|
|
3689
|
+
*/
|
|
3690
|
+
onLinkPopoverHide(handler, event) {
|
|
3691
|
+
handler(event);
|
|
3692
|
+
this.linkPopoverHideHandler = null;
|
|
3693
|
+
this.linkPopoverHideOwner = null;
|
|
3694
|
+
}
|
|
3695
|
+
/**
|
|
3696
|
+
* Removes the currently registered popover hide listener if present.
|
|
3697
|
+
*/
|
|
3698
|
+
unregisterLinkPopoverHideHandler() {
|
|
3699
|
+
if (this.linkPopoverHideOwner && this.linkPopoverHideHandler) {
|
|
3700
|
+
this.linkPopoverHideOwner.removeEventListener('vegaPopoverHide', this.linkPopoverHideHandler);
|
|
3701
|
+
}
|
|
3702
|
+
this.linkPopoverHideHandler = null;
|
|
3703
|
+
this.linkPopoverHideOwner = null;
|
|
3704
|
+
}
|
|
3705
|
+
/**
|
|
3706
|
+
* Resolves the closest focused link wrapper from event target or current selection.
|
|
3707
|
+
*
|
|
3708
|
+
* @param {EventTarget | null} target - Event target from the keydown event.
|
|
3709
|
+
* @returns {Nullable<HTMLElement>} Link wrapper element if found.
|
|
3710
|
+
*/
|
|
3711
|
+
getFocusedLinkWrapper(target) {
|
|
3712
|
+
var _a;
|
|
3713
|
+
const targetElement = target && target.nodeType === Node.ELEMENT_NODE ? target : null;
|
|
3714
|
+
if (targetElement) {
|
|
3715
|
+
const directWrapper = targetElement.classList.contains('link-editor-wrapper')
|
|
3716
|
+
? targetElement
|
|
3717
|
+
: findParent(targetElement, '.link-editor-wrapper');
|
|
3718
|
+
if (directWrapper) {
|
|
3719
|
+
return directWrapper;
|
|
3720
|
+
}
|
|
3721
|
+
}
|
|
3722
|
+
const anchorNode = ((_a = this.selectionController.getSelection()) === null || _a === void 0 ? void 0 : _a.anchorNode) || null;
|
|
3723
|
+
const anchorElement = (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) === Node.ELEMENT_NODE
|
|
3724
|
+
? anchorNode
|
|
3725
|
+
: (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.parentElement) || null;
|
|
3726
|
+
if (!anchorElement) {
|
|
3727
|
+
return null;
|
|
3728
|
+
}
|
|
3729
|
+
return anchorElement.classList.contains('link-editor-wrapper')
|
|
3730
|
+
? anchorElement
|
|
3731
|
+
: findParent(anchorElement, '.link-editor-wrapper');
|
|
3732
|
+
}
|
|
3733
|
+
/**
|
|
3734
|
+
* Finds the link editor element inside a link wrapper.
|
|
3735
|
+
*
|
|
3736
|
+
* @typedef HTMLVegaRichTextLinkEditorElement - The type of the link editor element.
|
|
3737
|
+
* @param {Nullable<HTMLElement>} linkWrapper - Wrapper that may contain the link editor component.
|
|
3738
|
+
* @returns {Nullable<HTMLVegaRichTextLinkEditorElement>} Link editor if present.
|
|
3739
|
+
*/
|
|
3740
|
+
getLinkEditorFromWrapper(linkWrapper) {
|
|
3741
|
+
return ((linkWrapper === null || linkWrapper === void 0 ? void 0 : linkWrapper.querySelector('vega-rich-text-link-editor')) ||
|
|
3742
|
+
null);
|
|
3743
|
+
}
|
|
3744
|
+
/**
|
|
3745
|
+
* Gets the popover element rendered by a link editor.
|
|
3746
|
+
*
|
|
3747
|
+
* @param {Nullable<HTMLElement>} linkEditor - Link editor owning the popover.
|
|
3748
|
+
* @returns {Nullable<LinkEditorPopoverElement>} Popover element when available.
|
|
3749
|
+
*/
|
|
3750
|
+
getLinkEditorPopover(linkEditor) {
|
|
3751
|
+
var _a;
|
|
3752
|
+
return ((_a = linkEditor === null || linkEditor === void 0 ? void 0 : linkEditor.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('vega-popover')) || null;
|
|
3753
|
+
}
|
|
3754
|
+
/**
|
|
3755
|
+
* Returns the popover content box associated with a link editor.
|
|
3756
|
+
*
|
|
3757
|
+
* @param {Nullable<HTMLElement>} linkEditor - Link editor owning the popover.
|
|
3758
|
+
* @returns {Nullable<HTMLElement>} Popover content box element.
|
|
3759
|
+
*/
|
|
3760
|
+
getLinkEditorPopoverContentBox(linkEditor) {
|
|
3761
|
+
var _a, _b;
|
|
3762
|
+
const popover = this.getLinkEditorPopover(linkEditor);
|
|
3763
|
+
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;
|
|
3764
|
+
}
|
|
3765
|
+
/**
|
|
3766
|
+
* Clears active link editor state and restores focus to the provided wrapper.
|
|
3767
|
+
*
|
|
3768
|
+
* @param {Nullable<HTMLElement>} linkEditor - Link editor that has just hidden.
|
|
3769
|
+
* @param {Nullable<HTMLElement>} [focusTarget] - Optional element to receive focus.
|
|
3770
|
+
*/
|
|
3771
|
+
handleLinkPopoverHide(linkEditor, focusTarget) {
|
|
3772
|
+
const resolvedFocusTarget = focusTarget || this.activeLinkWrapper;
|
|
3773
|
+
if (!linkEditor || this.activeLinkEditor === linkEditor) {
|
|
3774
|
+
this.activeLinkEditor = null;
|
|
3775
|
+
this.activeLinkWrapper = null;
|
|
3776
|
+
}
|
|
3777
|
+
if (resolvedFocusTarget) {
|
|
3778
|
+
this.placeLinkCaretAtEnd(resolvedFocusTarget);
|
|
3779
|
+
}
|
|
3780
|
+
}
|
|
3781
|
+
/**
|
|
3782
|
+
* Focuses the first visible link action in the current link popover.
|
|
3783
|
+
*
|
|
3784
|
+
* @param {Nullable<HTMLElement>} [linkWrapper] - Optional focused link wrapper context.
|
|
3785
|
+
* @returns {boolean} True when focus moved to an action button.
|
|
3786
|
+
*/
|
|
3787
|
+
focusVisibleLinkPopoverAction(linkWrapper) {
|
|
3788
|
+
var _a;
|
|
3789
|
+
const ownerDocument = ((_a = this.richTextEditorRef) === null || _a === void 0 ? void 0 : _a.ownerDocument) || null;
|
|
3790
|
+
if (!ownerDocument) {
|
|
3791
|
+
return false;
|
|
3792
|
+
}
|
|
3793
|
+
const linkEditor = this.getLinkEditorFromWrapper(linkWrapper || null) || this.activeLinkEditor;
|
|
3794
|
+
const popoverContentBox = this.getPreferredLinkActionPopover(ownerDocument, linkEditor);
|
|
3795
|
+
if (!popoverContentBox) {
|
|
3796
|
+
return false;
|
|
3797
|
+
}
|
|
3798
|
+
const focusableActionButton = this.getFirstFocusableLinkActionButton(popoverContentBox);
|
|
3799
|
+
if (!focusableActionButton) {
|
|
3800
|
+
return false;
|
|
3801
|
+
}
|
|
3802
|
+
focusableActionButton.focus();
|
|
3803
|
+
return true;
|
|
3804
|
+
}
|
|
3805
|
+
/**
|
|
3806
|
+
* Prefers a scoped link-action popover and falls back to globally visible ones.
|
|
3807
|
+
*
|
|
3808
|
+
* @param {Document} ownerDocument - Document owning editor popovers.
|
|
3809
|
+
* @param {Nullable<HTMLElement>} [linkEditor] - Optional scoped link editor.
|
|
3810
|
+
* @returns {Nullable<HTMLElement>} Best popover content box to target.
|
|
3811
|
+
*/
|
|
3812
|
+
getPreferredLinkActionPopover(ownerDocument, linkEditor) {
|
|
3813
|
+
const scopedPopoverContentBox = this.getLinkEditorPopoverContentBox(linkEditor || null);
|
|
3814
|
+
if (scopedPopoverContentBox &&
|
|
3815
|
+
!scopedPopoverContentBox.classList.contains('vega-force-hidden') &&
|
|
3816
|
+
this.isLinkActionPopover(scopedPopoverContentBox)) {
|
|
3817
|
+
return scopedPopoverContentBox;
|
|
3818
|
+
}
|
|
3819
|
+
const popoverContentBoxes = Array.from(ownerDocument.querySelectorAll('vega-popover-content-box'));
|
|
3820
|
+
const linkActionPopovers = popoverContentBoxes.filter((box) => this.isLinkActionPopover(box));
|
|
3821
|
+
const visibleLinkActionPopovers = linkActionPopovers.filter((box) => !box.classList.contains('vega-force-hidden'));
|
|
3822
|
+
return visibleLinkActionPopovers[visibleLinkActionPopovers.length - 1] || null;
|
|
3823
|
+
}
|
|
3824
|
+
/**
|
|
3825
|
+
* Checks whether a popover represents the link action menu.
|
|
3826
|
+
*
|
|
3827
|
+
* @param {HTMLElement} popoverContentBox - Popover content box to inspect.
|
|
3828
|
+
* @returns {boolean} True when both edit and unlink actions exist.
|
|
3829
|
+
*/
|
|
3830
|
+
isLinkActionPopover(popoverContentBox) {
|
|
3831
|
+
const items = Array.from(popoverContentBox.querySelectorAll('vega-button-group-item'));
|
|
3832
|
+
const hasEditAction = items.some((item) => item.itemKey === 'edit');
|
|
3833
|
+
const hasUnlinkAction = items.some((item) => item.itemKey === 'unlink');
|
|
3834
|
+
return hasEditAction && hasUnlinkAction;
|
|
3835
|
+
}
|
|
3836
|
+
/**
|
|
3837
|
+
* Gets the preferred focusable element from the first link action item.
|
|
3838
|
+
*
|
|
3839
|
+
* @param {HTMLElement} popoverContentBox - Link action popover content box.
|
|
3840
|
+
* @returns {Nullable<HTMLElement>} Focusable anchor or button element.
|
|
3841
|
+
*/
|
|
3842
|
+
getFirstFocusableLinkActionButton(popoverContentBox) {
|
|
3843
|
+
var _a, _b, _c, _d;
|
|
3844
|
+
const allItems = Array.from(popoverContentBox.querySelectorAll('vega-button-group-item'));
|
|
3845
|
+
const firstActionItem = allItems.find((item) => item.itemKey === 'edit') ||
|
|
3846
|
+
allItems[0] ||
|
|
3847
|
+
null;
|
|
3848
|
+
if (!firstActionItem) {
|
|
3849
|
+
return null;
|
|
3850
|
+
}
|
|
3851
|
+
const firstActionLinkWrapper = ((_a = firstActionItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('vega-button-link')) || null;
|
|
3852
|
+
const firstActionButtonWrapper = ((_b = firstActionItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('vega-button')) || null;
|
|
3853
|
+
return (((_c = firstActionLinkWrapper === null || firstActionLinkWrapper === void 0 ? void 0 : firstActionLinkWrapper.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('a')) ||
|
|
3854
|
+
((_d = firstActionButtonWrapper === null || firstActionButtonWrapper === void 0 ? void 0 : firstActionButtonWrapper.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('button')) ||
|
|
3855
|
+
null);
|
|
3856
|
+
}
|
|
3857
|
+
/**
|
|
3858
|
+
* Places the editor caret at the end of the link when the popover closes.
|
|
3859
|
+
*
|
|
3860
|
+
* @param {Nullable<HTMLElement>} linkWrapper - The link wrapper element containing link text nodes.
|
|
3861
|
+
*/
|
|
3862
|
+
placeLinkCaretAtEnd(linkWrapper) {
|
|
3863
|
+
var _a;
|
|
3864
|
+
if (!linkWrapper) {
|
|
3865
|
+
return;
|
|
3866
|
+
}
|
|
3867
|
+
const allTextSpans = Array.from(linkWrapper.querySelectorAll('span'));
|
|
3868
|
+
if (allTextSpans.length === 0) {
|
|
3869
|
+
return;
|
|
3870
|
+
}
|
|
3871
|
+
const lastTextSpan = allTextSpans[allTextSpans.length - 1];
|
|
3872
|
+
const lastNodeEntity = stateEntityRenderingRegistry.getEntityByDOM(lastTextSpan);
|
|
3873
|
+
if (!lastNodeEntity || lastNodeEntity instanceof RTEBlock) {
|
|
3874
|
+
return;
|
|
3875
|
+
}
|
|
3876
|
+
if (!(lastNodeEntity instanceof RTETextNode)) {
|
|
3877
|
+
return;
|
|
3878
|
+
}
|
|
3879
|
+
const lastNode = lastNodeEntity;
|
|
3880
|
+
const endOffset = ((_a = lastNode.text) === null || _a === void 0 ? void 0 : _a.length) || 0;
|
|
3881
|
+
// Place caret at the end of the link when popover closes
|
|
3882
|
+
this.selectionController.enqueueSelectionRangeFutureState(lastNode, endOffset, lastNode, endOffset, true);
|
|
3883
|
+
}
|
|
3884
|
+
}
|
|
3885
|
+
|
|
3886
|
+
var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3069
3887
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3070
3888
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3071
3889
|
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;
|
|
@@ -3081,6 +3899,15 @@ class UserInputController extends VegaSlimmer {
|
|
|
3081
3899
|
this.forwardDeleteContentHandler = new ForwardDeleteContentHandler();
|
|
3082
3900
|
this.backwardDeleteContentHandler = new BackwardDeleteContentHandler();
|
|
3083
3901
|
this.insertPasteHandler = new InsertPasteHandler();
|
|
3902
|
+
this.keyboardLinkHandler = new KeyboardLinkHandler();
|
|
3903
|
+
/**
|
|
3904
|
+
* Dispatches editor keydown events to the keyboard link handler using the shared handler workflow.
|
|
3905
|
+
*
|
|
3906
|
+
* @param {KeyboardEvent} event - The keydown event fired from the editor.
|
|
3907
|
+
*/
|
|
3908
|
+
this.handleKeyboardAction = (event) => {
|
|
3909
|
+
this.keyboardLinkHandler.execute(this.value, this.selectionController, this.host, event);
|
|
3910
|
+
};
|
|
3084
3911
|
/**
|
|
3085
3912
|
* When a user performs an input action within the editable element, this function is triggered.
|
|
3086
3913
|
*
|
|
@@ -3135,6 +3962,7 @@ class UserInputController extends VegaSlimmer {
|
|
|
3135
3962
|
const editableElement = this.getEditableElementRef();
|
|
3136
3963
|
if (editableElement) {
|
|
3137
3964
|
editableElement.addEventListener('beforeinput', this.handleUserInputAction);
|
|
3965
|
+
editableElement.addEventListener('keydown', this.handleKeyboardAction);
|
|
3138
3966
|
editableElement.addEventListener('drop', this.preventDropEvent);
|
|
3139
3967
|
}
|
|
3140
3968
|
}
|
|
@@ -3145,8 +3973,10 @@ class UserInputController extends VegaSlimmer {
|
|
|
3145
3973
|
const editableElement = this.getEditableElementRef();
|
|
3146
3974
|
if (editableElement) {
|
|
3147
3975
|
editableElement.removeEventListener('beforeinput', this.handleUserInputAction);
|
|
3976
|
+
editableElement.removeEventListener('keydown', this.handleKeyboardAction);
|
|
3148
3977
|
editableElement.removeEventListener('drop', this.preventDropEvent);
|
|
3149
3978
|
}
|
|
3979
|
+
this.keyboardLinkHandler.dispose();
|
|
3150
3980
|
}
|
|
3151
3981
|
/**
|
|
3152
3982
|
* The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
|
|
@@ -3197,28 +4027,28 @@ class UserInputController extends VegaSlimmer {
|
|
|
3197
4027
|
return false;
|
|
3198
4028
|
}
|
|
3199
4029
|
}
|
|
3200
|
-
__decorate$
|
|
4030
|
+
__decorate$k([
|
|
3201
4031
|
MapToComponentField()
|
|
3202
4032
|
], UserInputController.prototype, "host", void 0);
|
|
3203
|
-
__decorate$
|
|
4033
|
+
__decorate$k([
|
|
3204
4034
|
MapToComponentField()
|
|
3205
4035
|
], UserInputController.prototype, "value", void 0);
|
|
3206
|
-
__decorate$
|
|
4036
|
+
__decorate$k([
|
|
3207
4037
|
MapToComponentField()
|
|
3208
4038
|
], UserInputController.prototype, "valueController", void 0);
|
|
3209
|
-
__decorate$
|
|
4039
|
+
__decorate$k([
|
|
3210
4040
|
MapToComponentField()
|
|
3211
4041
|
], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
3212
|
-
__decorate$
|
|
4042
|
+
__decorate$k([
|
|
3213
4043
|
MapToComponentField()
|
|
3214
4044
|
], UserInputController.prototype, "selectionController", void 0);
|
|
3215
|
-
__decorate$
|
|
4045
|
+
__decorate$k([
|
|
3216
4046
|
MapToComponentField()
|
|
3217
4047
|
], UserInputController.prototype, "insertCompositionTextController", void 0);
|
|
3218
|
-
__decorate$
|
|
4048
|
+
__decorate$k([
|
|
3219
4049
|
MapToComponentMethod('componentDidLoad')
|
|
3220
4050
|
], UserInputController.prototype, "addActionListener", null);
|
|
3221
|
-
__decorate$
|
|
4051
|
+
__decorate$k([
|
|
3222
4052
|
MapToComponentMethod('disconnectedCallback')
|
|
3223
4053
|
], UserInputController.prototype, "removeActionListener", null);
|
|
3224
4054
|
|
|
@@ -3238,7 +4068,7 @@ class InsertImageToBlockAction extends ModifyContentAction {
|
|
|
3238
4068
|
}
|
|
3239
4069
|
}
|
|
3240
4070
|
|
|
3241
|
-
var __decorate$
|
|
4071
|
+
var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3242
4072
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3243
4073
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3244
4074
|
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;
|
|
@@ -3330,26 +4160,26 @@ class InsertImageController extends VegaSlimmer {
|
|
|
3330
4160
|
}
|
|
3331
4161
|
}
|
|
3332
4162
|
}
|
|
3333
|
-
__decorate$
|
|
4163
|
+
__decorate$j([
|
|
3334
4164
|
MapToComponentField()
|
|
3335
4165
|
], InsertImageController.prototype, "selectionController", void 0);
|
|
3336
|
-
__decorate$
|
|
4166
|
+
__decorate$j([
|
|
3337
4167
|
MapToComponentField()
|
|
3338
4168
|
], InsertImageController.prototype, "value", void 0);
|
|
3339
|
-
__decorate$
|
|
4169
|
+
__decorate$j([
|
|
3340
4170
|
MapToComponentField()
|
|
3341
4171
|
], InsertImageController.prototype, "valueController", void 0);
|
|
3342
|
-
__decorate$
|
|
4172
|
+
__decorate$j([
|
|
3343
4173
|
MapToComponentField()
|
|
3344
4174
|
], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
3345
|
-
__decorate$
|
|
4175
|
+
__decorate$j([
|
|
3346
4176
|
MapToComponentMethod('componentDidLoad')
|
|
3347
4177
|
], InsertImageController.prototype, "registerObserver", null);
|
|
3348
|
-
__decorate$
|
|
4178
|
+
__decorate$j([
|
|
3349
4179
|
MapToComponentMethod('disconnectedCallback')
|
|
3350
4180
|
], InsertImageController.prototype, "unRegisterObserver", null);
|
|
3351
4181
|
|
|
3352
|
-
var __decorate$
|
|
4182
|
+
var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3353
4183
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3354
4184
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3355
4185
|
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;
|
|
@@ -3415,20 +4245,20 @@ class FocusController extends VegaSlimmer {
|
|
|
3415
4245
|
this.selectionController.setSelectionRange(range);
|
|
3416
4246
|
}
|
|
3417
4247
|
}
|
|
3418
|
-
__decorate$
|
|
4248
|
+
__decorate$i([
|
|
3419
4249
|
MapToComponentField()
|
|
3420
4250
|
], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
3421
|
-
__decorate$
|
|
4251
|
+
__decorate$i([
|
|
3422
4252
|
MapToComponentField()
|
|
3423
4253
|
], FocusController.prototype, "selectionController", void 0);
|
|
3424
|
-
__decorate$
|
|
4254
|
+
__decorate$i([
|
|
3425
4255
|
MapToComponentField()
|
|
3426
4256
|
], FocusController.prototype, "valueController", void 0);
|
|
3427
|
-
__decorate$
|
|
4257
|
+
__decorate$i([
|
|
3428
4258
|
MapToComponentField()
|
|
3429
4259
|
], FocusController.prototype, "value", void 0);
|
|
3430
4260
|
|
|
3431
|
-
var __decorate$
|
|
4261
|
+
var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3432
4262
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3433
4263
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3434
4264
|
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;
|
|
@@ -3638,35 +4468,35 @@ class InsertCompositionTextController extends VegaSlimmer {
|
|
|
3638
4468
|
this.editableElementRef.dispatchEvent(inputEvent);
|
|
3639
4469
|
}
|
|
3640
4470
|
}
|
|
3641
|
-
__decorate$
|
|
4471
|
+
__decorate$h([
|
|
3642
4472
|
MapToComponentField()
|
|
3643
4473
|
], InsertCompositionTextController.prototype, "selectionController", void 0);
|
|
3644
|
-
__decorate$
|
|
4474
|
+
__decorate$h([
|
|
3645
4475
|
MapToComponentField()
|
|
3646
4476
|
], InsertCompositionTextController.prototype, "host", void 0);
|
|
3647
|
-
__decorate$
|
|
4477
|
+
__decorate$h([
|
|
3648
4478
|
MapToComponentField()
|
|
3649
4479
|
], InsertCompositionTextController.prototype, "value", void 0);
|
|
3650
|
-
__decorate$
|
|
4480
|
+
__decorate$h([
|
|
3651
4481
|
MapToComponentField()
|
|
3652
4482
|
], InsertCompositionTextController.prototype, "valueController", void 0);
|
|
3653
|
-
__decorate$
|
|
4483
|
+
__decorate$h([
|
|
3654
4484
|
MapToComponentField()
|
|
3655
4485
|
], InsertCompositionTextController.prototype, "userInputController", void 0);
|
|
3656
|
-
__decorate$
|
|
4486
|
+
__decorate$h([
|
|
3657
4487
|
MapToComponentField()
|
|
3658
4488
|
], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
3659
|
-
__decorate$
|
|
4489
|
+
__decorate$h([
|
|
3660
4490
|
MapToComponentMethod('componentDidLoad')
|
|
3661
4491
|
], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
|
|
3662
|
-
__decorate$
|
|
4492
|
+
__decorate$h([
|
|
3663
4493
|
MapToComponentMethod('disconnectedCallback')
|
|
3664
4494
|
], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
|
|
3665
|
-
__decorate$
|
|
4495
|
+
__decorate$h([
|
|
3666
4496
|
MapToComponentMethod('componentDidRender')
|
|
3667
4497
|
], InsertCompositionTextController.prototype, "reConnectObserver", null);
|
|
3668
4498
|
|
|
3669
|
-
var __decorate$
|
|
4499
|
+
var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3670
4500
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3671
4501
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3672
4502
|
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;
|
|
@@ -3875,23 +4705,23 @@ class DeleteSelectedNodesController extends VegaSlimmer {
|
|
|
3875
4705
|
}
|
|
3876
4706
|
}
|
|
3877
4707
|
}
|
|
3878
|
-
__decorate$
|
|
4708
|
+
__decorate$g([
|
|
3879
4709
|
MapToComponentField()
|
|
3880
4710
|
], DeleteSelectedNodesController.prototype, "host", void 0);
|
|
3881
|
-
__decorate$
|
|
4711
|
+
__decorate$g([
|
|
3882
4712
|
MapToComponentField()
|
|
3883
4713
|
], DeleteSelectedNodesController.prototype, "selectionController", void 0);
|
|
3884
|
-
__decorate$
|
|
4714
|
+
__decorate$g([
|
|
3885
4715
|
MapToComponentField()
|
|
3886
4716
|
], DeleteSelectedNodesController.prototype, "value", void 0);
|
|
3887
|
-
__decorate$
|
|
4717
|
+
__decorate$g([
|
|
3888
4718
|
MapToComponentMethod('connectedCallback')
|
|
3889
4719
|
], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
|
|
3890
|
-
__decorate$
|
|
4720
|
+
__decorate$g([
|
|
3891
4721
|
MapToComponentMethod('disconnectedCallback')
|
|
3892
4722
|
], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
|
|
3893
4723
|
|
|
3894
|
-
var __decorate$
|
|
4724
|
+
var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3895
4725
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3896
4726
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3897
4727
|
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;
|
|
@@ -3968,22 +4798,22 @@ class HistoryController extends ComponentValueHistoryControllerSlimmer {
|
|
|
3968
4798
|
await this.valueController.flushChanges(content, false);
|
|
3969
4799
|
}
|
|
3970
4800
|
}
|
|
3971
|
-
__decorate$
|
|
4801
|
+
__decorate$f([
|
|
3972
4802
|
MapToComponentField()
|
|
3973
4803
|
], HistoryController.prototype, "host", void 0);
|
|
3974
|
-
__decorate$
|
|
4804
|
+
__decorate$f([
|
|
3975
4805
|
MapToComponentField()
|
|
3976
4806
|
], HistoryController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
3977
|
-
__decorate$
|
|
4807
|
+
__decorate$f([
|
|
3978
4808
|
MapToComponentField()
|
|
3979
4809
|
], HistoryController.prototype, "valueController", void 0);
|
|
3980
|
-
__decorate$
|
|
4810
|
+
__decorate$f([
|
|
3981
4811
|
MapToComponentField()
|
|
3982
4812
|
], HistoryController.prototype, "value", void 0);
|
|
3983
|
-
__decorate$
|
|
4813
|
+
__decorate$f([
|
|
3984
4814
|
MapToComponentField()
|
|
3985
4815
|
], HistoryController.prototype, "selectionController", void 0);
|
|
3986
|
-
__decorate$
|
|
4816
|
+
__decorate$f([
|
|
3987
4817
|
MapToComponentMethod('componentDidLoad')
|
|
3988
4818
|
], HistoryController.prototype, "registerInitState", null);
|
|
3989
4819
|
|
|
@@ -4004,7 +4834,7 @@ class TransformToCodeBlockAction extends ModifyContentAction {
|
|
|
4004
4834
|
}
|
|
4005
4835
|
}
|
|
4006
4836
|
|
|
4007
|
-
var __decorate$
|
|
4837
|
+
var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4008
4838
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4009
4839
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4010
4840
|
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;
|
|
@@ -4060,13 +4890,13 @@ class CodeBlockToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
4060
4890
|
(() => {
|
|
4061
4891
|
VegaInternalIconManager.register({ 'rectangle-code': rectangleCode });
|
|
4062
4892
|
})();
|
|
4063
|
-
__decorate$
|
|
4893
|
+
__decorate$e([
|
|
4064
4894
|
MapToComponentField()
|
|
4065
4895
|
], CodeBlockToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
4066
|
-
__decorate$
|
|
4896
|
+
__decorate$e([
|
|
4067
4897
|
MapToComponentField()
|
|
4068
4898
|
], CodeBlockToolbarButtonSlimmer.prototype, "valueController", void 0);
|
|
4069
|
-
__decorate$
|
|
4899
|
+
__decorate$e([
|
|
4070
4900
|
MapToComponentField()
|
|
4071
4901
|
], CodeBlockToolbarButtonSlimmer.prototype, "value", void 0);
|
|
4072
4902
|
|
|
@@ -4074,7 +4904,7 @@ const undoIcon = {
|
|
|
4074
4904
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. --><path fill="currentColor" d="M464 424c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-53-43-96-96-96l-334.1 0 95-95c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239c-4.5 4.5-7 10.6-7 17s2.5 12.5 7 17L143 409c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-95-95 334.1 0c26.5 0 48 21.5 48 48l0 96z"/></svg>`,
|
|
4075
4905
|
};
|
|
4076
4906
|
|
|
4077
|
-
var __decorate$
|
|
4907
|
+
var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4078
4908
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4079
4909
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4080
4910
|
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;
|
|
@@ -4103,7 +4933,7 @@ class UndoToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
4103
4933
|
(() => {
|
|
4104
4934
|
VegaInternalIconManager.register({ 'arrow-turn-left': undoIcon });
|
|
4105
4935
|
})();
|
|
4106
|
-
__decorate$
|
|
4936
|
+
__decorate$d([
|
|
4107
4937
|
MapToComponentField()
|
|
4108
4938
|
], UndoToolbarButtonSlimmer.prototype, "historyController", void 0);
|
|
4109
4939
|
|
|
@@ -4111,7 +4941,7 @@ const redoIcon = {
|
|
|
4111
4941
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc. --><path fill="currentColor" d="M48 424c0 13.3-10.7 24-24 24S0 437.3 0 424l0-96c0-53 43-96 96-96l334.1 0-95-95c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L505 239c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17L369 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l95-95-334.1 0c-26.5 0-48 21.5-48 48l0 96z"/></svg>`,
|
|
4112
4942
|
};
|
|
4113
4943
|
|
|
4114
|
-
var __decorate$
|
|
4944
|
+
var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4115
4945
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4116
4946
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4117
4947
|
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;
|
|
@@ -4140,7 +4970,7 @@ class RedoToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
4140
4970
|
(() => {
|
|
4141
4971
|
VegaInternalIconManager.register({ 'arrow-turn-right': redoIcon });
|
|
4142
4972
|
})();
|
|
4143
|
-
__decorate$
|
|
4973
|
+
__decorate$c([
|
|
4144
4974
|
MapToComponentField()
|
|
4145
4975
|
], RedoToolbarButtonSlimmer.prototype, "historyController", void 0);
|
|
4146
4976
|
|
|
@@ -4211,7 +5041,7 @@ const displayCode = {
|
|
|
4211
5041
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M512 48c8.8 0 16 7.2 16 16V352c0 8.8-7.2 16-16 16H336.5c-.3 0-.6 0-.8 0H240.4c-.3 0-.6 0-.8 0H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H512zM64 416H211.7l-8 48H152c-13.3 0-24 10.7-24 24s10.7 24 24 24h72H352h72c13.3 0 24-10.7 24-24s-10.7-24-24-24H372.3l-8-48H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64zm188.3 48l8-48h55.3l8 48H252.3zM249 177c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-48 48c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM361 143c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z"/></svg>`,
|
|
4212
5042
|
};
|
|
4213
5043
|
|
|
4214
|
-
var __decorate$
|
|
5044
|
+
var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4215
5045
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4216
5046
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4217
5047
|
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;
|
|
@@ -4259,26 +5089,26 @@ class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
4259
5089
|
(() => {
|
|
4260
5090
|
VegaInternalIconManager.register({ 'display-code': displayCode });
|
|
4261
5091
|
})();
|
|
4262
|
-
__decorate$
|
|
5092
|
+
__decorate$b([
|
|
4263
5093
|
MapToComponentField({ writable: true })
|
|
4264
5094
|
], SourceEditToolbarButtonSlimmer.prototype, "sourceView", void 0);
|
|
4265
|
-
__decorate$
|
|
5095
|
+
__decorate$b([
|
|
4266
5096
|
MapToComponentField()
|
|
4267
5097
|
], SourceEditToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
4268
|
-
__decorate$
|
|
5098
|
+
__decorate$b([
|
|
4269
5099
|
MapToComponentField()
|
|
4270
5100
|
], SourceEditToolbarButtonSlimmer.prototype, "valueController", void 0);
|
|
4271
|
-
__decorate$
|
|
5101
|
+
__decorate$b([
|
|
4272
5102
|
MapToComponentField()
|
|
4273
5103
|
], SourceEditToolbarButtonSlimmer.prototype, "richTextEditorSourceViewRenderer", void 0);
|
|
4274
|
-
__decorate$
|
|
5104
|
+
__decorate$b([
|
|
4275
5105
|
MapToComponentField()
|
|
4276
5106
|
], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
|
|
4277
|
-
__decorate$
|
|
5107
|
+
__decorate$b([
|
|
4278
5108
|
MapToComponentField()
|
|
4279
5109
|
], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
|
|
4280
5110
|
|
|
4281
|
-
var __decorate$
|
|
5111
|
+
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4282
5112
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4283
5113
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4284
5114
|
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;
|
|
@@ -4393,31 +5223,31 @@ class RTEExtensionController extends VegaSlimmer {
|
|
|
4393
5223
|
};
|
|
4394
5224
|
}
|
|
4395
5225
|
}
|
|
4396
|
-
__decorate$
|
|
5226
|
+
__decorate$a([
|
|
4397
5227
|
MapToComponentField()
|
|
4398
5228
|
], RTEExtensionController.prototype, "extensions", void 0);
|
|
4399
|
-
__decorate$
|
|
5229
|
+
__decorate$a([
|
|
4400
5230
|
MapToComponentField()
|
|
4401
5231
|
], RTEExtensionController.prototype, "host", void 0);
|
|
4402
|
-
__decorate$
|
|
5232
|
+
__decorate$a([
|
|
4403
5233
|
MapToComponentField()
|
|
4404
5234
|
], RTEExtensionController.prototype, "sourceView", void 0);
|
|
4405
|
-
__decorate$
|
|
5235
|
+
__decorate$a([
|
|
4406
5236
|
MapToComponentField()
|
|
4407
5237
|
], RTEExtensionController.prototype, "valueController", void 0);
|
|
4408
|
-
__decorate$
|
|
5238
|
+
__decorate$a([
|
|
4409
5239
|
MapToComponentField()
|
|
4410
5240
|
], RTEExtensionController.prototype, "selectionController", void 0);
|
|
4411
|
-
__decorate$
|
|
5241
|
+
__decorate$a([
|
|
4412
5242
|
MapToComponentMethod('componentWillLoad')
|
|
4413
5243
|
], RTEExtensionController.prototype, "prepareExtensionsBeforeLoad", null);
|
|
4414
|
-
__decorate$
|
|
5244
|
+
__decorate$a([
|
|
4415
5245
|
MapToComponentMethod('componentDidLoad')
|
|
4416
5246
|
], RTEExtensionController.prototype, "initialExtensionContext", null);
|
|
4417
|
-
__decorate$
|
|
5247
|
+
__decorate$a([
|
|
4418
5248
|
MapToComponentMethod('disconnectedCallback')
|
|
4419
5249
|
], RTEExtensionController.prototype, "destroyExtension", null);
|
|
4420
|
-
__decorate$
|
|
5250
|
+
__decorate$a([
|
|
4421
5251
|
MapToComponentMethod('watchExtensions')
|
|
4422
5252
|
], RTEExtensionController.prototype, "handleExtensionsChange", null);
|
|
4423
5253
|
|
|
@@ -4588,7 +5418,7 @@ CodeFormatter.VOID_TAGS = new Set([
|
|
|
4588
5418
|
CodeFormatter.PRESERVE_CONTENT_TAGS = new Set(['pre']);
|
|
4589
5419
|
const CodeFormatter$1 = new CodeFormatter();
|
|
4590
5420
|
|
|
4591
|
-
var __decorate$
|
|
5421
|
+
var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4592
5422
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4593
5423
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4594
5424
|
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;
|
|
@@ -4688,34 +5518,34 @@ class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
|
|
|
4688
5518
|
});
|
|
4689
5519
|
}
|
|
4690
5520
|
}
|
|
4691
|
-
__decorate$
|
|
5521
|
+
__decorate$9([
|
|
4692
5522
|
MapToComponentField()
|
|
4693
5523
|
], VegaRichTextEditorSourceViewRenderer.prototype, "host", void 0);
|
|
4694
|
-
__decorate$
|
|
5524
|
+
__decorate$9([
|
|
4695
5525
|
MapToComponentField()
|
|
4696
5526
|
], VegaRichTextEditorSourceViewRenderer.prototype, "allowSourceEdit", void 0);
|
|
4697
|
-
__decorate$
|
|
5527
|
+
__decorate$9([
|
|
4698
5528
|
MapToComponentField()
|
|
4699
5529
|
], VegaRichTextEditorSourceViewRenderer.prototype, "sourceView", void 0);
|
|
4700
|
-
__decorate$
|
|
5530
|
+
__decorate$9([
|
|
4701
5531
|
MapToComponentField()
|
|
4702
5532
|
], VegaRichTextEditorSourceViewRenderer.prototype, "value", void 0);
|
|
4703
|
-
__decorate$
|
|
5533
|
+
__decorate$9([
|
|
4704
5534
|
MapToComponentField()
|
|
4705
5535
|
], VegaRichTextEditorSourceViewRenderer.prototype, "disabled", void 0);
|
|
4706
|
-
__decorate$
|
|
5536
|
+
__decorate$9([
|
|
4707
5537
|
MapToComponentField()
|
|
4708
5538
|
], VegaRichTextEditorSourceViewRenderer.prototype, "sourceEditConfig", void 0);
|
|
4709
|
-
__decorate$
|
|
5539
|
+
__decorate$9([
|
|
4710
5540
|
MapToComponentField()
|
|
4711
5541
|
], VegaRichTextEditorSourceViewRenderer.prototype, "sourceCodeChangeEventEmitter", void 0);
|
|
4712
|
-
__decorate$
|
|
5542
|
+
__decorate$9([
|
|
4713
5543
|
MapToComponentMethod('disconnectedCallback')
|
|
4714
5544
|
], VegaRichTextEditorSourceViewRenderer.prototype, "clearCodeBlockBlurObserver", null);
|
|
4715
5545
|
|
|
4716
5546
|
const vegaRichTextEditorCss = ":host{display:block}:host vega-field-label{margin-bottom:8px}:host vega-text{margin-bottom:16px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .rich-text-editor-container{display:flex;box-sizing:content-box;position:relative;box-sizing:content-box;background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));border-radius:8px;color:rgba(var(--v-text-primary, 32, 54, 69, 1));margin-top:12px;overflow:hidden;resize:vertical;padding-top:12px;padding-right:16px;padding-bottom:12px;padding-left:16px}:host .rich-text-editor-container:hover{border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1))}:host .rich-text-editor-container:focus-within{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:3px;border:1px solid rgba(var(--v-border-color-input-field-focus, 19, 98, 226, 1))}:host .rich-text-editor-container.disabled{background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1));border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1));cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host .rich-text-editor-container.disabled:hover,:host .rich-text-editor-container.disabled:focus-within{border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1))}:host .rich-text-editor-container.disabled:focus-within{outline:none}:host .rich-text-editor-container.disabled vega-rich-text-content{pointer-events:none;opacity:0.35}:host .rich-text-editor-container.error{border:1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1))}:host .rich-text-editor-container.error:hover{border:1px solid rgba(var(--v-border-input-field-danger-hover, 255, 87, 114, 1))}:host .rich-text-editor-container.error:focus-within{outline:2px solid rgba(var(--v-border-color-danger, 230, 50, 87, 1));outline-offset:3px;border:1px solid rgba(var(--v-border-color-input-field-danger-focus, 233, 71, 104, 1))}:host .rich-text-editor-container .text-editor-counter{position:absolute;bottom:8px;right:8px;display:flex;padding-left:4px;padding-right:4px;padding-top:2px;padding-bottom:2px;border-radius:4px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-inverted-primary, 252, 252, 252, 1));background-color:rgba(var(--v-bg-textarea-count, 4, 4, 28, 0.6))}@media screen and (min-width: 768px) and (max-width: 1023px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .rich-text-editor-container .text-editor-counter.counter-exceed-max-length{background-color:rgba(var(--v-bg-textarea-counter-exceed-max-length, 214, 46, 81))}.toolbar-btn-group{display:flex;justify-content:center;align-items:center}.toolbar-btn-group>*:not(:first-child):not(:last-child) ::part(rich-text-editor-toolbar-button){border-radius:0px}.toolbar-btn-group>*:first-child:not(:last-child) ::part(rich-text-editor-toolbar-button){border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0px;border-bottom-right-radius:0px}.toolbar-btn-group>*:last-child:not(:first-child) ::part(rich-text-editor-toolbar-button){border-top-left-radius:0px;border-bottom-left-radius:0px;border-top-right-radius:4px;border-bottom-right-radius:4px}.toolbar-btn-group>*:not(:first-child) ::part(rich-text-editor-toolbar-button){margin-left:-1px}.toolbar-btn-group .toolbar-btn-color-preview-box{display:flex;border:1px solid rgba(var(--v-border-chip, 205, 209, 211, 1));box-sizing:border-box;border-radius:4px;width:16px;height:16px;justify-content:center;align-items:center;margin-left:6px}.toolbar-btn-group .toolbar-btn-color-preview-box.disabled{opacity:0.35}.toolbar-btn-group .toolbar-btn-link-wrapper{position:relative}.toolbar-btn-group .toolbar-btn-link-wrapper vega-rich-text-link-editor{position:absolute;bottom:0;left:0;right:0}.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-error, 189, 41, 71, 1));display:block;margin-top:12px}@media screen and (min-width: 768px) and (max-width: 1023px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}.vega-hidden{display:none !important}.source-view-container{margin-top:12px}.source-view-container vega-code-block::part(editor-toolbar){display:none}";
|
|
4717
5547
|
|
|
4718
|
-
var __decorate$
|
|
5548
|
+
var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4719
5549
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4720
5550
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
4721
5551
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -4831,6 +5661,14 @@ const VegaRichTextEditor = class {
|
|
|
4831
5661
|
* @vegaVersion 2.88.0
|
|
4832
5662
|
*/
|
|
4833
5663
|
this.optional = false;
|
|
5664
|
+
/**
|
|
5665
|
+
* Specifies the name attribute used to identify the form field during data submission.
|
|
5666
|
+
* It functions identically to the `data-vega-form` attribute but operates at a lower priority.
|
|
5667
|
+
*
|
|
5668
|
+
* @default ''
|
|
5669
|
+
* @vegaVersion 2.97.0
|
|
5670
|
+
*/
|
|
5671
|
+
this.name = '';
|
|
4834
5672
|
/**
|
|
4835
5673
|
* Specifies a placeholder string that displays as a
|
|
4836
5674
|
* temporary hint or example within the rich text editor.
|
|
@@ -4974,138 +5812,138 @@ const VegaRichTextEditor = class {
|
|
|
4974
5812
|
"extensions": ["watchExtensions"]
|
|
4975
5813
|
}; }
|
|
4976
5814
|
};
|
|
4977
|
-
__decorate$
|
|
5815
|
+
__decorate$8([
|
|
4978
5816
|
InjectVegaGlobalSlimmer()
|
|
4979
5817
|
], VegaRichTextEditor.prototype, "globalSlimmers", void 0);
|
|
4980
|
-
__decorate$
|
|
5818
|
+
__decorate$8([
|
|
4981
5819
|
InjectVegaSlimmer()
|
|
4982
5820
|
], VegaRichTextEditor.prototype, "translationSlimmer", void 0);
|
|
4983
|
-
__decorate$
|
|
5821
|
+
__decorate$8([
|
|
4984
5822
|
InjectVegaSlimmer()
|
|
4985
5823
|
], VegaRichTextEditor.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
|
|
4986
|
-
__decorate$
|
|
5824
|
+
__decorate$8([
|
|
4987
5825
|
InjectVegaSlimmer()
|
|
4988
5826
|
], VegaRichTextEditor.prototype, "formFieldController", void 0);
|
|
4989
|
-
__decorate$
|
|
5827
|
+
__decorate$8([
|
|
4990
5828
|
InjectVegaSlimmer()
|
|
4991
5829
|
], VegaRichTextEditor.prototype, "changeEventEmitter", void 0);
|
|
4992
|
-
__decorate$
|
|
5830
|
+
__decorate$8([
|
|
4993
5831
|
InjectVegaSlimmer()
|
|
4994
5832
|
], VegaRichTextEditor.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4995
|
-
__decorate$
|
|
5833
|
+
__decorate$8([
|
|
4996
5834
|
InjectVegaSlimmer()
|
|
4997
5835
|
], VegaRichTextEditor.prototype, "valueController", void 0);
|
|
4998
|
-
__decorate$
|
|
5836
|
+
__decorate$8([
|
|
4999
5837
|
InjectVegaSlimmer()
|
|
5000
5838
|
], VegaRichTextEditor.prototype, "selectionController", void 0);
|
|
5001
|
-
__decorate$
|
|
5839
|
+
__decorate$8([
|
|
5002
5840
|
InjectVegaSlimmer()
|
|
5003
5841
|
], VegaRichTextEditor.prototype, "focusController", void 0);
|
|
5004
|
-
__decorate$
|
|
5842
|
+
__decorate$8([
|
|
5005
5843
|
InjectVegaSlimmer()
|
|
5006
5844
|
], VegaRichTextEditor.prototype, "darkModeStateControllerSlimmer", void 0);
|
|
5007
|
-
__decorate$
|
|
5845
|
+
__decorate$8([
|
|
5008
5846
|
InjectVegaSlimmer()
|
|
5009
5847
|
], VegaRichTextEditor.prototype, "toolbarRenderer", void 0);
|
|
5010
|
-
__decorate$
|
|
5848
|
+
__decorate$8([
|
|
5011
5849
|
InjectVegaSlimmer()
|
|
5012
5850
|
], VegaRichTextEditor.prototype, "clearStyleToolbarButtonSlimmer", void 0);
|
|
5013
|
-
__decorate$
|
|
5851
|
+
__decorate$8([
|
|
5014
5852
|
InjectVegaSlimmer()
|
|
5015
5853
|
], VegaRichTextEditor.prototype, "boldToolbarButtonSlimmer", void 0);
|
|
5016
|
-
__decorate$
|
|
5854
|
+
__decorate$8([
|
|
5017
5855
|
InjectVegaSlimmer()
|
|
5018
5856
|
], VegaRichTextEditor.prototype, "italicToolbarButtonSlimmer", void 0);
|
|
5019
|
-
__decorate$
|
|
5857
|
+
__decorate$8([
|
|
5020
5858
|
InjectVegaSlimmer()
|
|
5021
5859
|
], VegaRichTextEditor.prototype, "underlineToolbarButtonSlimmer", void 0);
|
|
5022
|
-
__decorate$
|
|
5860
|
+
__decorate$8([
|
|
5023
5861
|
InjectVegaSlimmer()
|
|
5024
5862
|
], VegaRichTextEditor.prototype, "textColorToolbarButtonSlimmer", void 0);
|
|
5025
|
-
__decorate$
|
|
5863
|
+
__decorate$8([
|
|
5026
5864
|
InjectVegaSlimmer()
|
|
5027
5865
|
], VegaRichTextEditor.prototype, "textStylesToolbarButtonSlimmer", void 0);
|
|
5028
|
-
__decorate$
|
|
5866
|
+
__decorate$8([
|
|
5029
5867
|
InjectVegaSlimmer()
|
|
5030
5868
|
], VegaRichTextEditor.prototype, "codeToolbarButtonSlimmer", void 0);
|
|
5031
|
-
__decorate$
|
|
5869
|
+
__decorate$8([
|
|
5032
5870
|
InjectVegaSlimmer()
|
|
5033
5871
|
], VegaRichTextEditor.prototype, "strikethroughToolbarButtonSlimmer", void 0);
|
|
5034
|
-
__decorate$
|
|
5872
|
+
__decorate$8([
|
|
5035
5873
|
InjectVegaSlimmer()
|
|
5036
5874
|
], VegaRichTextEditor.prototype, "imageToolbarButtonSlimmer", void 0);
|
|
5037
|
-
__decorate$
|
|
5875
|
+
__decorate$8([
|
|
5038
5876
|
InjectVegaSlimmer()
|
|
5039
5877
|
], VegaRichTextEditor.prototype, "linkToolbarButtonSlimmer", void 0);
|
|
5040
|
-
__decorate$
|
|
5878
|
+
__decorate$8([
|
|
5041
5879
|
InjectVegaSlimmer()
|
|
5042
5880
|
], VegaRichTextEditor.prototype, "moreIndentToolbarButtonSlimmer", void 0);
|
|
5043
|
-
__decorate$
|
|
5881
|
+
__decorate$8([
|
|
5044
5882
|
InjectVegaSlimmer()
|
|
5045
5883
|
], VegaRichTextEditor.prototype, "lessIndentToolbarButtonSlimmer", void 0);
|
|
5046
|
-
__decorate$
|
|
5884
|
+
__decorate$8([
|
|
5047
5885
|
InjectVegaSlimmer()
|
|
5048
5886
|
], VegaRichTextEditor.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
|
|
5049
|
-
__decorate$
|
|
5887
|
+
__decorate$8([
|
|
5050
5888
|
InjectVegaSlimmer()
|
|
5051
5889
|
], VegaRichTextEditor.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
|
|
5052
|
-
__decorate$
|
|
5890
|
+
__decorate$8([
|
|
5053
5891
|
InjectVegaSlimmer()
|
|
5054
5892
|
], VegaRichTextEditor.prototype, "codeBlockToolbarButtonSlimmer", void 0);
|
|
5055
|
-
__decorate$
|
|
5893
|
+
__decorate$8([
|
|
5056
5894
|
InjectVegaSlimmer()
|
|
5057
5895
|
], VegaRichTextEditor.prototype, "undoToolbarButtonSlimmer", void 0);
|
|
5058
|
-
__decorate$
|
|
5896
|
+
__decorate$8([
|
|
5059
5897
|
InjectVegaSlimmer()
|
|
5060
5898
|
], VegaRichTextEditor.prototype, "redoToolbarButtonSlimmer", void 0);
|
|
5061
|
-
__decorate$
|
|
5899
|
+
__decorate$8([
|
|
5062
5900
|
InjectVegaSlimmer()
|
|
5063
5901
|
], VegaRichTextEditor.prototype, "sourceEditToolbarButtonSlimmer", void 0);
|
|
5064
|
-
__decorate$
|
|
5902
|
+
__decorate$8([
|
|
5065
5903
|
InjectVegaSlimmer()
|
|
5066
5904
|
], VegaRichTextEditor.prototype, "placeholderNotifySlimmer", void 0);
|
|
5067
|
-
__decorate$
|
|
5905
|
+
__decorate$8([
|
|
5068
5906
|
InjectVegaSlimmer()
|
|
5069
5907
|
], VegaRichTextEditor.prototype, "disabledNotifySlimmer", void 0);
|
|
5070
|
-
__decorate$
|
|
5908
|
+
__decorate$8([
|
|
5071
5909
|
InjectVegaSlimmer()
|
|
5072
5910
|
], VegaRichTextEditor.prototype, "richTextContentController", void 0);
|
|
5073
|
-
__decorate$
|
|
5911
|
+
__decorate$8([
|
|
5074
5912
|
InjectVegaSlimmer()
|
|
5075
5913
|
], VegaRichTextEditor.prototype, "userInputController", void 0);
|
|
5076
|
-
__decorate$
|
|
5914
|
+
__decorate$8([
|
|
5077
5915
|
InjectVegaSlimmer()
|
|
5078
5916
|
], VegaRichTextEditor.prototype, "insertImageController", void 0);
|
|
5079
|
-
__decorate$
|
|
5917
|
+
__decorate$8([
|
|
5080
5918
|
InjectVegaSlimmer()
|
|
5081
5919
|
], VegaRichTextEditor.prototype, "insertCompositionTextController", void 0);
|
|
5082
|
-
__decorate$
|
|
5920
|
+
__decorate$8([
|
|
5083
5921
|
InjectVegaSlimmer()
|
|
5084
5922
|
], VegaRichTextEditor.prototype, "imageInsertedEventEmitter", void 0);
|
|
5085
|
-
__decorate$
|
|
5923
|
+
__decorate$8([
|
|
5086
5924
|
InjectVegaSlimmer()
|
|
5087
5925
|
], VegaRichTextEditor.prototype, "changeEventPreventSlimmer", void 0);
|
|
5088
|
-
__decorate$
|
|
5926
|
+
__decorate$8([
|
|
5089
5927
|
InjectVegaSlimmer()
|
|
5090
5928
|
], VegaRichTextEditor.prototype, "deleteSelectedNodesController", void 0);
|
|
5091
|
-
__decorate$
|
|
5929
|
+
__decorate$8([
|
|
5092
5930
|
InjectVegaSlimmer()
|
|
5093
5931
|
], VegaRichTextEditor.prototype, "historyController", void 0);
|
|
5094
|
-
__decorate$
|
|
5932
|
+
__decorate$8([
|
|
5095
5933
|
InjectVegaSlimmer()
|
|
5096
5934
|
], VegaRichTextEditor.prototype, "internalCodeBlockSelectionController", void 0);
|
|
5097
|
-
__decorate$
|
|
5935
|
+
__decorate$8([
|
|
5098
5936
|
InjectVegaSlimmer()
|
|
5099
5937
|
], VegaRichTextEditor.prototype, "rteExtensionController", void 0);
|
|
5100
|
-
__decorate$
|
|
5938
|
+
__decorate$8([
|
|
5101
5939
|
InjectVegaSlimmer()
|
|
5102
5940
|
], VegaRichTextEditor.prototype, "sourceCodeChangeEventEmitter", void 0);
|
|
5103
|
-
__decorate$
|
|
5941
|
+
__decorate$8([
|
|
5104
5942
|
InjectVegaSlimmer()
|
|
5105
5943
|
], VegaRichTextEditor.prototype, "richTextEditorSourceViewRenderer", void 0);
|
|
5106
5944
|
VegaRichTextEditor.style = vegaRichTextEditorCss;
|
|
5107
5945
|
|
|
5108
|
-
var __decorate$
|
|
5946
|
+
var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5109
5947
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5110
5948
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5111
5949
|
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;
|
|
@@ -5142,34 +5980,34 @@ class VegaRichTextEditorToolbarButtonRenderer extends VegaSlimmer {
|
|
|
5142
5980
|
'chevron-up': chevronUp,
|
|
5143
5981
|
});
|
|
5144
5982
|
})();
|
|
5145
|
-
__decorate$
|
|
5983
|
+
__decorate$7([
|
|
5146
5984
|
MapToComponentField()
|
|
5147
5985
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "disabled", void 0);
|
|
5148
|
-
__decorate$
|
|
5986
|
+
__decorate$7([
|
|
5149
5987
|
MapToComponentField()
|
|
5150
5988
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "hidden", void 0);
|
|
5151
|
-
__decorate$
|
|
5989
|
+
__decorate$7([
|
|
5152
5990
|
MapToComponentField()
|
|
5153
5991
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "selected", void 0);
|
|
5154
|
-
__decorate$
|
|
5992
|
+
__decorate$7([
|
|
5155
5993
|
MapToComponentField()
|
|
5156
5994
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "showArrowIcon", void 0);
|
|
5157
|
-
__decorate$
|
|
5995
|
+
__decorate$7([
|
|
5158
5996
|
MapToComponentField()
|
|
5159
5997
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "arrowIcon", void 0);
|
|
5160
|
-
__decorate$
|
|
5998
|
+
__decorate$7([
|
|
5161
5999
|
MapToComponentField()
|
|
5162
6000
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "icon", void 0);
|
|
5163
|
-
__decorate$
|
|
6001
|
+
__decorate$7([
|
|
5164
6002
|
MapToComponentField()
|
|
5165
6003
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "iconColor", void 0);
|
|
5166
|
-
__decorate$
|
|
6004
|
+
__decorate$7([
|
|
5167
6005
|
MapToComponentField()
|
|
5168
6006
|
], VegaRichTextEditorToolbarButtonRenderer.prototype, "clickEventEmitter", void 0);
|
|
5169
6007
|
|
|
5170
6008
|
const vegaRichTextEditorToolbarButtonCss = ":host{display:inline-block}:host ::slotted(vega-font.v-font-field-label-sm){line-height:16px}.rich-text-editor-toolbar-btn{display:flex;justify-content:center;align-items:center;border-radius:4px;border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));padding-top:8px;padding-bottom:8px;padding-left:12px;padding-right:12px;cursor:pointer;position:relative;background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1))}.rich-text-editor-toolbar-btn:hover{background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1));z-index:1}.rich-text-editor-toolbar-btn:active{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));z-index:1}.rich-text-editor-toolbar-btn:focus-visible{outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:-1px;z-index:2}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-selected{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));background-color:rgba(var(--v-bg-quaternary, 241, 248, 251, 1));z-index:1}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-disabled{background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1));border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1));cursor:not-allowed}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-disabled vega-icon{color:rgba(var(--v-text-disabled, 176, 180, 181, 1))}.rich-text-editor-toolbar-btn.rich-text-editor-toolbar-button-hidden{display:none}";
|
|
5171
6009
|
|
|
5172
|
-
var __decorate$
|
|
6010
|
+
var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5173
6011
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5174
6012
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
5175
6013
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -5244,24 +6082,24 @@ const VegaRichTextEditorToolbarButton = class {
|
|
|
5244
6082
|
}
|
|
5245
6083
|
get host() { return getElement(this); }
|
|
5246
6084
|
};
|
|
5247
|
-
__decorate$
|
|
6085
|
+
__decorate$6([
|
|
5248
6086
|
InjectVegaGlobalSlimmer()
|
|
5249
6087
|
], VegaRichTextEditorToolbarButton.prototype, "globalSlimmers", void 0);
|
|
5250
|
-
__decorate$
|
|
6088
|
+
__decorate$6([
|
|
5251
6089
|
InjectVegaSlimmer()
|
|
5252
6090
|
], VegaRichTextEditorToolbarButton.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
|
|
5253
|
-
__decorate$
|
|
6091
|
+
__decorate$6([
|
|
5254
6092
|
InjectVegaSlimmer()
|
|
5255
6093
|
], VegaRichTextEditorToolbarButton.prototype, "clickEventEmitter", void 0);
|
|
5256
|
-
__decorate$
|
|
6094
|
+
__decorate$6([
|
|
5257
6095
|
InjectVegaSlimmer()
|
|
5258
6096
|
], VegaRichTextEditorToolbarButton.prototype, "eventPrevent", void 0);
|
|
5259
|
-
__decorate$
|
|
6097
|
+
__decorate$6([
|
|
5260
6098
|
InjectVegaSlimmer()
|
|
5261
6099
|
], VegaRichTextEditorToolbarButton.prototype, "renderer", void 0);
|
|
5262
6100
|
VegaRichTextEditorToolbarButton.style = vegaRichTextEditorToolbarButtonCss;
|
|
5263
6101
|
|
|
5264
|
-
var __decorate$
|
|
6102
|
+
var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5265
6103
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5266
6104
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5267
6105
|
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;
|
|
@@ -5369,34 +6207,34 @@ class VegaRichTextImageEditorRenderer extends VegaSlimmer {
|
|
|
5369
6207
|
(() => {
|
|
5370
6208
|
VegaInternalIconManager.register({ 'trash-can': trashCan });
|
|
5371
6209
|
})();
|
|
5372
|
-
__decorate$
|
|
6210
|
+
__decorate$5([
|
|
5373
6211
|
MapToComponentField({ writable: true })
|
|
5374
6212
|
], VegaRichTextImageEditorRenderer.prototype, "currentPage", void 0);
|
|
5375
|
-
__decorate$
|
|
6213
|
+
__decorate$5([
|
|
5376
6214
|
MapToComponentField({ writable: true })
|
|
5377
6215
|
], VegaRichTextImageEditorRenderer.prototype, "selected", void 0);
|
|
5378
|
-
__decorate$
|
|
6216
|
+
__decorate$5([
|
|
5379
6217
|
MapToComponentField()
|
|
5380
6218
|
], VegaRichTextImageEditorRenderer.prototype, "host", void 0);
|
|
5381
|
-
__decorate$
|
|
6219
|
+
__decorate$5([
|
|
5382
6220
|
MapToComponentField()
|
|
5383
6221
|
], VegaRichTextImageEditorRenderer.prototype, "alt", void 0);
|
|
5384
|
-
__decorate$
|
|
6222
|
+
__decorate$5([
|
|
5385
6223
|
MapToComponentField({ writable: true })
|
|
5386
6224
|
], VegaRichTextImageEditorRenderer.prototype, "size", void 0);
|
|
5387
|
-
__decorate$
|
|
6225
|
+
__decorate$5([
|
|
5388
6226
|
MapToComponentField()
|
|
5389
6227
|
], VegaRichTextImageEditorRenderer.prototype, "changeEventEmitter", void 0);
|
|
5390
|
-
__decorate$
|
|
6228
|
+
__decorate$5([
|
|
5391
6229
|
MapToComponentField()
|
|
5392
6230
|
], VegaRichTextImageEditorRenderer.prototype, "translationSlimmer", void 0);
|
|
5393
|
-
__decorate$
|
|
6231
|
+
__decorate$5([
|
|
5394
6232
|
MapToComponentMethod('componentDidLoad')
|
|
5395
6233
|
], VegaRichTextImageEditorRenderer.prototype, "findParentContainerRef", null);
|
|
5396
6234
|
|
|
5397
6235
|
const vegaRichTextImageEditorCss = ":host{display:inline-block}:host(.rte-image-selected){outline:2px solid rgba(var(--v-border-color-tile-selected, 19, 98, 226, 1));outline-offset:-2px}";
|
|
5398
6236
|
|
|
5399
|
-
var __decorate$
|
|
6237
|
+
var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5400
6238
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5401
6239
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
5402
6240
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -5437,24 +6275,24 @@ const VegaRichTextImageEditor = class {
|
|
|
5437
6275
|
}
|
|
5438
6276
|
get host() { return getElement(this); }
|
|
5439
6277
|
};
|
|
5440
|
-
__decorate$
|
|
6278
|
+
__decorate$4([
|
|
5441
6279
|
InjectVegaGlobalSlimmer()
|
|
5442
6280
|
], VegaRichTextImageEditor.prototype, "globalSlimmers", void 0);
|
|
5443
|
-
__decorate$
|
|
6281
|
+
__decorate$4([
|
|
5444
6282
|
InjectVegaSlimmer()
|
|
5445
6283
|
], VegaRichTextImageEditor.prototype, "translationSlimmer", void 0);
|
|
5446
|
-
__decorate$
|
|
6284
|
+
__decorate$4([
|
|
5447
6285
|
InjectVegaSlimmer()
|
|
5448
6286
|
], VegaRichTextImageEditor.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
|
|
5449
|
-
__decorate$
|
|
6287
|
+
__decorate$4([
|
|
5450
6288
|
InjectVegaSlimmer()
|
|
5451
6289
|
], VegaRichTextImageEditor.prototype, "renderer", void 0);
|
|
5452
|
-
__decorate$
|
|
6290
|
+
__decorate$4([
|
|
5453
6291
|
InjectVegaSlimmer()
|
|
5454
6292
|
], VegaRichTextImageEditor.prototype, "changeEventEmitter", void 0);
|
|
5455
6293
|
VegaRichTextImageEditor.style = vegaRichTextImageEditorCss;
|
|
5456
6294
|
|
|
5457
|
-
var __decorate$
|
|
6295
|
+
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5458
6296
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5459
6297
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5460
6298
|
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;
|
|
@@ -5463,66 +6301,73 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
5463
6301
|
class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
|
|
5464
6302
|
constructor() {
|
|
5465
6303
|
super(...arguments);
|
|
5466
|
-
this.
|
|
5467
|
-
|
|
5468
|
-
|
|
5469
|
-
|
|
5470
|
-
|
|
5471
|
-
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
6304
|
+
this.handlePopoverRef = (ref) => {
|
|
6305
|
+
this.popoverRef = ref;
|
|
6306
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, () => this.linkEditorController.handlePopoverShow());
|
|
6307
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverHide, () => {
|
|
6308
|
+
this.linkEditorController.handlePopoverHide();
|
|
6309
|
+
});
|
|
6310
|
+
};
|
|
6311
|
+
this.handleButtonGroupRef = (node) => {
|
|
6312
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, VegaClick, ({ detail }) => {
|
|
6313
|
+
switch (detail) {
|
|
6314
|
+
case 'edit': {
|
|
6315
|
+
this.linkEditorController.handleEditAction();
|
|
6316
|
+
return;
|
|
5476
6317
|
}
|
|
5477
|
-
|
|
6318
|
+
case 'unlink': {
|
|
6319
|
+
void this.linkEditorController.handleUnlinkAction();
|
|
6320
|
+
}
|
|
6321
|
+
}
|
|
6322
|
+
});
|
|
6323
|
+
};
|
|
6324
|
+
this.handleFormRef = (ref) => {
|
|
6325
|
+
this.formRef = ref;
|
|
6326
|
+
};
|
|
6327
|
+
this.handleUrlInputRef = (ref) => {
|
|
6328
|
+
if (ref) {
|
|
6329
|
+
this.urlInputRef = ref;
|
|
5478
6330
|
}
|
|
5479
6331
|
};
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
}
|
|
5493
|
-
watchStatusChange() {
|
|
5494
|
-
if (this.status === 'linkEdit') {
|
|
5495
|
-
setTimeout(() => {
|
|
5496
|
-
void this.urlInputRef.doFocus();
|
|
6332
|
+
this.handleTextInputRef = (ref) => {
|
|
6333
|
+
this.textInputRef = ref;
|
|
6334
|
+
};
|
|
6335
|
+
this.handleLinkFieldKeyDown = (e) => {
|
|
6336
|
+
this.linkEditorController.handleKeyDown(e);
|
|
6337
|
+
};
|
|
6338
|
+
this.handleUrlVegaChange = (e) => {
|
|
6339
|
+
this.linkEditorController.handleUrlVegaChange(e);
|
|
6340
|
+
};
|
|
6341
|
+
this.handleLinkTypeSelectRef = (ref) => {
|
|
6342
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, (payload) => {
|
|
6343
|
+
void this.linkEditorController.handleLinkTypeChange(payload);
|
|
5497
6344
|
});
|
|
5498
|
-
}
|
|
5499
|
-
|
|
5500
|
-
|
|
5501
|
-
|
|
6345
|
+
};
|
|
6346
|
+
this.handleCancelButtonRef = (ref) => {
|
|
6347
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaClick, () => {
|
|
6348
|
+
void this.getPopoverRef().hide();
|
|
6349
|
+
});
|
|
6350
|
+
};
|
|
6351
|
+
this.handleSubmitButtonRef = (ref) => {
|
|
6352
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaClick, () => {
|
|
6353
|
+
void this.linkEditorController.submitLink();
|
|
6354
|
+
});
|
|
6355
|
+
};
|
|
5502
6356
|
}
|
|
5503
6357
|
getPopoverRef() {
|
|
5504
6358
|
return this.popoverRef;
|
|
5505
6359
|
}
|
|
6360
|
+
getFormRef() {
|
|
6361
|
+
return this.formRef;
|
|
6362
|
+
}
|
|
6363
|
+
getUrlInputRef() {
|
|
6364
|
+
return this.urlInputRef;
|
|
6365
|
+
}
|
|
6366
|
+
getTextInputRef() {
|
|
6367
|
+
return this.textInputRef;
|
|
6368
|
+
}
|
|
5506
6369
|
render() {
|
|
5507
|
-
return (h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref:
|
|
5508
|
-
this.popoverRef = ref;
|
|
5509
|
-
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, () => {
|
|
5510
|
-
var _a, _b, _c;
|
|
5511
|
-
if (this.status === 'linkEdit') {
|
|
5512
|
-
void this.urlInputRef.doFocus();
|
|
5513
|
-
}
|
|
5514
|
-
void this.formRef.setValue({
|
|
5515
|
-
text: (_a = this.record) === null || _a === void 0 ? void 0 : _a.text,
|
|
5516
|
-
url: this.normalizeUrlByDefaultProtocol((_c = (_b = this.record) === null || _b === void 0 ? void 0 : _b.url) !== null && _c !== void 0 ? _c : ''),
|
|
5517
|
-
});
|
|
5518
|
-
});
|
|
5519
|
-
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverHide, () => {
|
|
5520
|
-
void this.formRef.reset();
|
|
5521
|
-
if (this.resetStatusAfterHide) {
|
|
5522
|
-
this.status = 'editOrUnlinkSelection';
|
|
5523
|
-
}
|
|
5524
|
-
});
|
|
5525
|
-
} },
|
|
6370
|
+
return (h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: this.handlePopoverRef },
|
|
5526
6371
|
h("span", { slot: "popover-content" },
|
|
5527
6372
|
h("slot", null)),
|
|
5528
6373
|
h("div", { slot: "popover" },
|
|
@@ -5531,74 +6376,879 @@ class VegaRichTextLinkEditorRenderer extends VegaSlimmer {
|
|
|
5531
6376
|
}
|
|
5532
6377
|
renderLinkUnlinkContent() {
|
|
5533
6378
|
return (h("vega-box", { display: this.status === 'editOrUnlinkSelection' ? 'block' : 'none' },
|
|
5534
|
-
h("vega-button-group", { size: "small", variant: "tertiary", ref:
|
|
5535
|
-
DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, VegaClick, ({ detail }) => {
|
|
5536
|
-
switch (detail) {
|
|
5537
|
-
case 'edit': {
|
|
5538
|
-
this.status = 'linkEdit';
|
|
5539
|
-
return;
|
|
5540
|
-
}
|
|
5541
|
-
case 'unlink': {
|
|
5542
|
-
this.changeEventEmitter.emit({ action: 'unlink' });
|
|
5543
|
-
void this.popoverRef.hide();
|
|
5544
|
-
}
|
|
5545
|
-
}
|
|
5546
|
-
});
|
|
5547
|
-
} },
|
|
6379
|
+
h("vega-button-group", { size: "small", variant: "tertiary", ref: this.handleButtonGroupRef, onKeyDown: this.handleLinkFieldKeyDown },
|
|
5548
6380
|
h("vega-button-group-item", { label: this.translationSlimmer.t('Edit'), itemKey: "edit" }),
|
|
5549
6381
|
h("vega-button-group-item", { label: this.translationSlimmer.t('Unlink'), itemKey: "unlink" }))));
|
|
5550
6382
|
}
|
|
5551
6383
|
renderLinkEditContent() {
|
|
5552
6384
|
return (h("vega-box", { display: this.status === 'linkEdit' ? 'block' : 'none' },
|
|
5553
|
-
h("vega-
|
|
5554
|
-
|
|
5555
|
-
|
|
5556
|
-
|
|
5557
|
-
|
|
5558
|
-
|
|
6385
|
+
h("vega-flex", { style: { width: '419px' }, direction: "col", gap: "size-16" },
|
|
6386
|
+
this.renderLinkTypeSelector(),
|
|
6387
|
+
h("vega-form", { ref: this.handleFormRef },
|
|
6388
|
+
h("vega-flex", { direction: "col", gap: "size-16" },
|
|
6389
|
+
this.renderTextInput(),
|
|
6390
|
+
this.renderCurrentLinkTypeEditFields())),
|
|
6391
|
+
this.renderActionButtons())));
|
|
6392
|
+
}
|
|
6393
|
+
renderCurrentLinkTypeEditFields() {
|
|
6394
|
+
switch (this.linkEditorStateManager.getSelectedLinkTypeKey()) {
|
|
6395
|
+
case RTE_EMAIL_LINK_TYPE_KEY:
|
|
6396
|
+
return this.renderEmailLinkEditFields();
|
|
6397
|
+
default:
|
|
6398
|
+
return this.renderUrlLinkEditFields();
|
|
6399
|
+
}
|
|
6400
|
+
}
|
|
6401
|
+
renderTextInput() {
|
|
6402
|
+
return (h("vega-input", { size: "small", label: this.translationSlimmer.t('Text'), "data-vega-form": "text", ref: this.handleTextInputRef, onKeyDown: this.handleLinkFieldKeyDown }));
|
|
6403
|
+
}
|
|
6404
|
+
renderEmailLinkEditFields() {
|
|
6405
|
+
return [
|
|
6406
|
+
h("vega-input", { key: "emailAddress", "data-vega-form": "emailAddress", required: true, ref: this.handleUrlInputRef, size: "small", label: this.translationSlimmer.t('E-Mail Address'), onVegaChange: this.handleUrlVegaChange, onKeyDown: this.handleLinkFieldKeyDown }),
|
|
6407
|
+
h("vega-input", { key: "messageSubject", size: "small", label: this.translationSlimmer.t('Message Subject'), "data-vega-form": "messageSubject", onKeyDown: this.handleLinkFieldKeyDown }),
|
|
6408
|
+
h("vega-textarea", { key: "messageBody", label: this.translationSlimmer.t('Message Body'), "data-vega-form": "messageBody", rows: 4, resizable: false }),
|
|
6409
|
+
];
|
|
5559
6410
|
}
|
|
5560
|
-
|
|
5561
|
-
|
|
6411
|
+
renderUrlLinkEditFields() {
|
|
6412
|
+
return [
|
|
6413
|
+
h("vega-input", { key: "url", "data-vega-form": "url", ref: this.handleUrlInputRef, size: "small", label: this.translationSlimmer.t('URL'), required: this.linkTypeConfigController.hasConfiguredLinkTypes(), onVegaChange: this.handleUrlVegaChange, onKeyDown: this.handleLinkFieldKeyDown }),
|
|
6414
|
+
];
|
|
5562
6415
|
}
|
|
5563
|
-
|
|
5564
|
-
|
|
5565
|
-
|
|
5566
|
-
|
|
6416
|
+
renderLinkTypeSelector() {
|
|
6417
|
+
if (!this.linkTypeConfigController.hasConfiguredLinkTypes()) {
|
|
6418
|
+
return null;
|
|
6419
|
+
}
|
|
6420
|
+
return (h("vega-input-select", { label: this.translationSlimmer.t('Link Type'), size: "small", source: this.linkTypeConfigController
|
|
6421
|
+
.getConfiguredLinkTypes()
|
|
6422
|
+
.map((item) => ({
|
|
6423
|
+
id: item.key,
|
|
6424
|
+
displayName: this.translationSlimmer.t(item.label),
|
|
6425
|
+
})), vegaDropdownProps: { searchable: false }, value: this.linkEditorStateManager.getSelectedLinkTypeKey(), ref: this.handleLinkTypeSelectRef }));
|
|
5567
6426
|
}
|
|
5568
|
-
|
|
5569
|
-
|
|
6427
|
+
renderActionButtons() {
|
|
6428
|
+
if (!this.linkTypeConfigController.hasConfiguredLinkTypes()) {
|
|
6429
|
+
return null;
|
|
6430
|
+
}
|
|
6431
|
+
return (h("vega-flex", { style: { width: '100%' }, gap: "size-8", alignItems: "center", justifyContent: "end" },
|
|
6432
|
+
h("vega-button", { variant: "secondary", label: this.translationSlimmer.t('Cancel'), ref: this.handleCancelButtonRef }),
|
|
6433
|
+
h("vega-button", { label: this.translationSlimmer.t('Submit'), disabled: this.linkEditorStateManager.getIsSubmitDisabled(), ref: this.handleSubmitButtonRef })));
|
|
6434
|
+
}
|
|
6435
|
+
}
|
|
6436
|
+
__decorate$3([
|
|
5570
6437
|
MapToComponentField()
|
|
5571
6438
|
], VegaRichTextLinkEditorRenderer.prototype, "host", void 0);
|
|
5572
|
-
__decorate$
|
|
5573
|
-
MapToComponentField(
|
|
6439
|
+
__decorate$3([
|
|
6440
|
+
MapToComponentField()
|
|
5574
6441
|
], VegaRichTextLinkEditorRenderer.prototype, "status", void 0);
|
|
5575
|
-
__decorate$
|
|
6442
|
+
__decorate$3([
|
|
6443
|
+
MapToComponentField()
|
|
6444
|
+
], VegaRichTextLinkEditorRenderer.prototype, "translationSlimmer", void 0);
|
|
6445
|
+
__decorate$3([
|
|
6446
|
+
MapToComponentField()
|
|
6447
|
+
], VegaRichTextLinkEditorRenderer.prototype, "linkEditorController", void 0);
|
|
6448
|
+
__decorate$3([
|
|
6449
|
+
MapToComponentField()
|
|
6450
|
+
], VegaRichTextLinkEditorRenderer.prototype, "linkTypeConfigController", void 0);
|
|
6451
|
+
__decorate$3([
|
|
6452
|
+
MapToComponentField()
|
|
6453
|
+
], VegaRichTextLinkEditorRenderer.prototype, "linkEditorStateManager", void 0);
|
|
6454
|
+
|
|
6455
|
+
const urlLinkTypeHandler = {
|
|
6456
|
+
key: 'url',
|
|
6457
|
+
defaultFallbackProtocol: undefined,
|
|
6458
|
+
/** @inheritDoc */
|
|
6459
|
+
getRequiredValue: (record) => { var _a; return (_a = record === null || record === void 0 ? void 0 : record.url) !== null && _a !== void 0 ? _a : ''; },
|
|
6460
|
+
/** @inheritDoc */
|
|
6461
|
+
getTextValue: (formValues) => formValues.text || '',
|
|
6462
|
+
/** @inheritDoc */
|
|
6463
|
+
getFallbackText: () => '',
|
|
6464
|
+
/** @inheritDoc */
|
|
6465
|
+
buildFinalUrl: (formValues, { normalizeUrl }) => normalizeUrl(formValues.url || ''),
|
|
6466
|
+
/** @inheritDoc */
|
|
6467
|
+
getInitialFormValues: (record, { normalizeUrl }) => {
|
|
6468
|
+
var _a, _b;
|
|
6469
|
+
return ({
|
|
6470
|
+
text: (_a = record === null || record === void 0 ? void 0 : record.text) !== null && _a !== void 0 ? _a : '',
|
|
6471
|
+
url: normalizeUrl((_b = record === null || record === void 0 ? void 0 : record.url) !== null && _b !== void 0 ? _b : ''),
|
|
6472
|
+
});
|
|
6473
|
+
},
|
|
6474
|
+
};
|
|
6475
|
+
const emailLinkTypeHandler = {
|
|
6476
|
+
key: 'email',
|
|
6477
|
+
defaultFallbackProtocol: 'mailto:',
|
|
6478
|
+
/** @inheritDoc */
|
|
6479
|
+
getRequiredValue: (record, { parseMailtoUrl }) => {
|
|
6480
|
+
var _a;
|
|
6481
|
+
const { emailAddress } = parseMailtoUrl((_a = record === null || record === void 0 ? void 0 : record.url) !== null && _a !== void 0 ? _a : '');
|
|
6482
|
+
return emailAddress;
|
|
6483
|
+
},
|
|
6484
|
+
/** @inheritDoc */
|
|
6485
|
+
getTextValue: (formValues) => formValues.text || '',
|
|
6486
|
+
/** @inheritDoc */
|
|
6487
|
+
getFallbackText: (formValues) => formValues.emailAddress || '',
|
|
6488
|
+
/** @inheritDoc */
|
|
6489
|
+
buildFinalUrl: (formValues, { buildEmailUrl }) => buildEmailUrl(formValues.emailAddress || '', formValues.messageSubject || '', formValues.messageBody || ''),
|
|
6490
|
+
/** @inheritDoc */
|
|
6491
|
+
getInitialFormValues: (record, { parseMailtoUrl }) => {
|
|
6492
|
+
var _a, _b;
|
|
6493
|
+
const { emailAddress, subject, body } = parseMailtoUrl((_a = record === null || record === void 0 ? void 0 : record.url) !== null && _a !== void 0 ? _a : '');
|
|
6494
|
+
return {
|
|
6495
|
+
text: (_b = record === null || record === void 0 ? void 0 : record.text) !== null && _b !== void 0 ? _b : '',
|
|
6496
|
+
emailAddress,
|
|
6497
|
+
messageSubject: subject,
|
|
6498
|
+
messageBody: body,
|
|
6499
|
+
};
|
|
6500
|
+
},
|
|
6501
|
+
};
|
|
6502
|
+
const LINK_TYPE_HANDLERS = [urlLinkTypeHandler, emailLinkTypeHandler];
|
|
6503
|
+
const LINK_TYPE_HANDLER_MAP = new Map(LINK_TYPE_HANDLERS.map((handler) => [handler.key, handler]));
|
|
6504
|
+
|
|
6505
|
+
/**
|
|
6506
|
+
* Normalizes link URLs and mailto values for the link editor.
|
|
6507
|
+
*/
|
|
6508
|
+
class LinkUrlNormalizer {
|
|
6509
|
+
/**
|
|
6510
|
+
* Normalizes a URL with the provided default protocol.
|
|
6511
|
+
*
|
|
6512
|
+
* @param {string} url - URL to normalize.
|
|
6513
|
+
* @param {string} defaultProtocol - Default protocol to apply.
|
|
6514
|
+
* @returns {string} The normalized URL.
|
|
6515
|
+
*/
|
|
6516
|
+
normalizeUrlByDefaultProtocol(url, defaultProtocol) {
|
|
6517
|
+
return normalizeUrlByDefaultProtocol(url, defaultProtocol);
|
|
6518
|
+
}
|
|
6519
|
+
/**
|
|
6520
|
+
* Parses a mailto URL into its structured parts.
|
|
6521
|
+
*
|
|
6522
|
+
* @param {string} url - Mailto URL to parse.
|
|
6523
|
+
* @returns {MailtoUrlParts} The parsed mailto parts.
|
|
6524
|
+
*/
|
|
6525
|
+
parseMailtoUrl(url) {
|
|
6526
|
+
var _a, _b;
|
|
6527
|
+
if (!url) {
|
|
6528
|
+
return { emailAddress: '', subject: '', body: '' };
|
|
6529
|
+
}
|
|
6530
|
+
const withoutProtocol = url.startsWith('mailto:') ? url.slice('mailto:'.length) : url;
|
|
6531
|
+
const questionIndex = withoutProtocol.indexOf('?');
|
|
6532
|
+
if (questionIndex === -1) {
|
|
6533
|
+
return {
|
|
6534
|
+
emailAddress: this.decodeURIComponentSafely(withoutProtocol),
|
|
6535
|
+
subject: '',
|
|
6536
|
+
body: '',
|
|
6537
|
+
};
|
|
6538
|
+
}
|
|
6539
|
+
const emailAddress = this.decodeURIComponentSafely(withoutProtocol.slice(0, questionIndex));
|
|
6540
|
+
const params = new URLSearchParams(withoutProtocol.slice(questionIndex + 1));
|
|
6541
|
+
return {
|
|
6542
|
+
emailAddress,
|
|
6543
|
+
subject: (_a = params.get('subject')) !== null && _a !== void 0 ? _a : '',
|
|
6544
|
+
body: (_b = params.get('body')) !== null && _b !== void 0 ? _b : '',
|
|
6545
|
+
};
|
|
6546
|
+
}
|
|
6547
|
+
/**
|
|
6548
|
+
* Builds a mailto URL from the provided fields.
|
|
6549
|
+
*
|
|
6550
|
+
* @param {string} emailAddress - Email address value.
|
|
6551
|
+
* @param {string} subject - Subject value.
|
|
6552
|
+
* @param {string} body - Body value.
|
|
6553
|
+
* @returns {string} The generated mailto URL.
|
|
6554
|
+
*/
|
|
6555
|
+
buildEmailLinkUrl(emailAddress, subject, body) {
|
|
6556
|
+
const normalizedEmailAddress = (emailAddress || '').trim().replace(/^(mailto:)+/i, '');
|
|
6557
|
+
if (normalizedEmailAddress.length === 0) {
|
|
6558
|
+
return '';
|
|
6559
|
+
}
|
|
6560
|
+
const queryParams = [];
|
|
6561
|
+
if ((subject || '').trim().length > 0) {
|
|
6562
|
+
queryParams.push(`subject=${encodeURIComponent(subject.trim())}`);
|
|
6563
|
+
}
|
|
6564
|
+
if ((body || '').trim().length > 0) {
|
|
6565
|
+
queryParams.push(`body=${encodeURIComponent(body.trim())}`);
|
|
6566
|
+
}
|
|
6567
|
+
return `mailto:${normalizedEmailAddress}${queryParams.length > 0 ? `?${queryParams.join('&')}` : ''}`;
|
|
6568
|
+
}
|
|
6569
|
+
/**
|
|
6570
|
+
* Decodes a URI component without throwing on malformed input.
|
|
6571
|
+
*
|
|
6572
|
+
* @param {string} value - Encoded value.
|
|
6573
|
+
* @returns {string} The decoded value.
|
|
6574
|
+
*/
|
|
6575
|
+
decodeURIComponentSafely(value) {
|
|
6576
|
+
try {
|
|
6577
|
+
return decodeURIComponent(value);
|
|
6578
|
+
}
|
|
6579
|
+
catch (_a) {
|
|
6580
|
+
return value;
|
|
6581
|
+
}
|
|
6582
|
+
}
|
|
6583
|
+
}
|
|
6584
|
+
|
|
6585
|
+
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
6586
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6587
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
6588
|
+
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;
|
|
6589
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6590
|
+
};
|
|
6591
|
+
/**
|
|
6592
|
+
* Coordinates link editor state, popover behavior, and submit actions.
|
|
6593
|
+
*/
|
|
6594
|
+
class LinkEditorController extends VegaSlimmer {
|
|
6595
|
+
constructor() {
|
|
6596
|
+
super(...arguments);
|
|
6597
|
+
this.linkUrlNormalizer = new LinkUrlNormalizer();
|
|
6598
|
+
this.linkTypeHandlers = LINK_TYPE_HANDLER_MAP;
|
|
6599
|
+
}
|
|
6600
|
+
/** Initializes the popover target after the component loads. */
|
|
6601
|
+
componentDidLoad() {
|
|
6602
|
+
this.updatePopoverTarget();
|
|
6603
|
+
}
|
|
6604
|
+
/** Notifies observers after each render cycle. */
|
|
6605
|
+
componentDidRender() {
|
|
6606
|
+
ChangeManager.notify(domNodeSubjectFactory.getSubject(this.host, VegaInternalComponentDidRender), {});
|
|
6607
|
+
}
|
|
6608
|
+
/** Focuses the URL input when the status changes to linkEdit. */
|
|
6609
|
+
watchStatusChange() {
|
|
6610
|
+
if (this.status === 'linkEdit') {
|
|
6611
|
+
setTimeout(() => {
|
|
6612
|
+
var _a;
|
|
6613
|
+
void ((_a = this.renderer.getUrlInputRef()) === null || _a === void 0 ? void 0 : _a.doFocus());
|
|
6614
|
+
});
|
|
6615
|
+
}
|
|
6616
|
+
}
|
|
6617
|
+
/** Invalidates link type cache and updates the popover target when the target changes. */
|
|
6618
|
+
watchTargetChange() {
|
|
6619
|
+
this.linkTypeConfigController.invalidateConfiguredLinkTypesCache();
|
|
6620
|
+
this.updatePopoverTarget();
|
|
6621
|
+
}
|
|
6622
|
+
/**
|
|
6623
|
+
* Prepares the editor state before the popover is shown.
|
|
6624
|
+
*
|
|
6625
|
+
* @returns {Promise<void>} Resolves when the popover show work completes.
|
|
6626
|
+
* Resolves when the popover show work completes.
|
|
6627
|
+
*/
|
|
6628
|
+
async handlePopoverShow() {
|
|
6629
|
+
var _a, _b, _c, _d;
|
|
6630
|
+
this.linkTypeConfigController.invalidateConfiguredLinkTypesCache();
|
|
6631
|
+
this.linkEditorStateManager.clearFormValues();
|
|
6632
|
+
if (this.linkEditorStateManager.getShouldResetStatusOnNextShow()) {
|
|
6633
|
+
this.linkEditorStateManager.setShouldResetStatusOnNextShow(false);
|
|
6634
|
+
if (this.status !== 'editOrUnlinkSelection') {
|
|
6635
|
+
this.status = 'editOrUnlinkSelection';
|
|
6636
|
+
forceUpdate(this.host);
|
|
6637
|
+
await this.waitForRender();
|
|
6638
|
+
}
|
|
6639
|
+
}
|
|
6640
|
+
if (this.status === 'linkEdit') {
|
|
6641
|
+
const resolvedKey = this.linkTypeConfigController.resolveInitialLinkTypeKey((_a = this.record) === null || _a === void 0 ? void 0 : _a.linkType, (_b = this.record) === null || _b === void 0 ? void 0 : _b.url);
|
|
6642
|
+
if (resolvedKey !== this.linkEditorStateManager.getSelectedLinkTypeKey()) {
|
|
6643
|
+
this.linkEditorStateManager.setSelectedLinkTypeKey(resolvedKey);
|
|
6644
|
+
this.linkEditorStateManager.setSubmitDisabled(true);
|
|
6645
|
+
await ((_d = (_c = this.renderer.getFormRef()) === null || _c === void 0 ? void 0 : _c.reset) === null || _d === void 0 ? void 0 : _d.call(_c));
|
|
6646
|
+
forceUpdate(this.host);
|
|
6647
|
+
await this.waitForRender();
|
|
6648
|
+
}
|
|
6649
|
+
await this.populateEditForm();
|
|
6650
|
+
}
|
|
6651
|
+
}
|
|
6652
|
+
/**
|
|
6653
|
+
* Clears form state after the popover hides.
|
|
6654
|
+
*
|
|
6655
|
+
* @returns {void} No return value.
|
|
6656
|
+
*/
|
|
6657
|
+
handlePopoverHide() {
|
|
6658
|
+
var _a, _b;
|
|
6659
|
+
void ((_b = (_a = this.renderer.getFormRef()) === null || _a === void 0 ? void 0 : _a.reset) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
6660
|
+
this.linkEditorStateManager.clearFormValues();
|
|
6661
|
+
if (this.linkTypeConfigController.hasConfiguredLinkTypes()) {
|
|
6662
|
+
this.updateSubmitDisabledState('');
|
|
6663
|
+
}
|
|
6664
|
+
if (this.resetStatusAfterHide) {
|
|
6665
|
+
this.linkEditorStateManager.setShouldResetStatusOnNextShow(true);
|
|
6666
|
+
}
|
|
6667
|
+
}
|
|
6668
|
+
/**
|
|
6669
|
+
* Switches the editor into link edit mode.
|
|
6670
|
+
*
|
|
6671
|
+
* @returns {void} No return value.
|
|
6672
|
+
*/
|
|
6673
|
+
handleEditAction() {
|
|
6674
|
+
var _a, _b;
|
|
6675
|
+
this.linkEditorStateManager.setSelectedLinkTypeKey(this.linkTypeConfigController.resolveInitialLinkTypeKey((_a = this.record) === null || _a === void 0 ? void 0 : _a.linkType, (_b = this.record) === null || _b === void 0 ? void 0 : _b.url));
|
|
6676
|
+
this.status = 'linkEdit';
|
|
6677
|
+
forceUpdate(this.host);
|
|
6678
|
+
void this.waitForRender().then(() => this.populateEditForm());
|
|
6679
|
+
}
|
|
6680
|
+
/**
|
|
6681
|
+
* Removes the current selection link and closes the popover.
|
|
6682
|
+
*
|
|
6683
|
+
* @returns {Promise<void>} Resolves when unlinking finishes.
|
|
6684
|
+
*/
|
|
6685
|
+
async handleUnlinkAction() {
|
|
6686
|
+
this.changeEventEmitter.emit({ action: 'unlink' });
|
|
6687
|
+
await this.renderer.getPopoverRef().hide();
|
|
6688
|
+
}
|
|
6689
|
+
/**
|
|
6690
|
+
* Updates submit state from URL input changes.
|
|
6691
|
+
*
|
|
6692
|
+
* @param {CustomEvent<string>} e - URL input change event.
|
|
6693
|
+
* @returns {void} No return value.
|
|
6694
|
+
*/
|
|
6695
|
+
handleUrlVegaChange(e) {
|
|
6696
|
+
if (this.linkTypeConfigController.hasConfiguredLinkTypes()) {
|
|
6697
|
+
this.updateSubmitDisabledState(e.detail);
|
|
6698
|
+
}
|
|
6699
|
+
}
|
|
6700
|
+
/**
|
|
6701
|
+
* Submits the current link when Enter is pressed or hides the popover when Escape is pressed.
|
|
6702
|
+
*
|
|
6703
|
+
* @param {KeyboardEvent} e - Key down event.
|
|
6704
|
+
* @returns {void} No return value.
|
|
6705
|
+
*/
|
|
6706
|
+
handleKeyDown(e) {
|
|
6707
|
+
if (e.key === 'Escape') {
|
|
6708
|
+
void this.renderer.getPopoverRef().hide();
|
|
6709
|
+
return;
|
|
6710
|
+
}
|
|
6711
|
+
if (e.key === 'Enter') {
|
|
6712
|
+
if (this.linkTypeConfigController.hasConfiguredLinkTypes() &&
|
|
6713
|
+
this.linkEditorStateManager.getIsSubmitDisabled()) {
|
|
6714
|
+
return;
|
|
6715
|
+
}
|
|
6716
|
+
void this.submitLink();
|
|
6717
|
+
}
|
|
6718
|
+
}
|
|
6719
|
+
/**
|
|
6720
|
+
* Switches the active form when the link type changes.
|
|
6721
|
+
*
|
|
6722
|
+
* @param {NotifyObserverPayload<string>} payload - Selected link type change payload.
|
|
6723
|
+
* @returns {Promise<void>} Resolves when the link type switch completes.
|
|
6724
|
+
*/
|
|
6725
|
+
async handleLinkTypeChange(payload) {
|
|
6726
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
6727
|
+
const previousLinkTypeKey = this.linkEditorStateManager.getSelectedLinkTypeKey();
|
|
6728
|
+
const nextLinkTypeKey = payload.detail ||
|
|
6729
|
+
((_a = this.linkTypeConfigController.getConfiguredLinkTypes()[0]) === null || _a === void 0 ? void 0 : _a.key) ||
|
|
6730
|
+
RTE_DEFAULT_LINK_TYPE_KEY;
|
|
6731
|
+
if (previousLinkTypeKey === nextLinkTypeKey) {
|
|
6732
|
+
return;
|
|
6733
|
+
}
|
|
6734
|
+
const currentFormValues = (_d = (await ((_c = (_b = this.renderer.getFormRef()) === null || _b === void 0 ? void 0 : _b.getValue) === null || _c === void 0 ? void 0 : _c.call(_b)))) !== null && _d !== void 0 ? _d : {};
|
|
6735
|
+
const currentSharedTextValue = (_e = currentFormValues.text) !== null && _e !== void 0 ? _e : this.linkEditorStateManager.getSharedTextValue();
|
|
6736
|
+
this.linkEditorStateManager.setSharedTextValue(currentSharedTextValue);
|
|
6737
|
+
const currentTypeValues = Object.assign({}, currentFormValues);
|
|
6738
|
+
delete currentTypeValues.text;
|
|
6739
|
+
const hasAnyValue = Object.values(currentTypeValues).some((value) => value);
|
|
6740
|
+
if (hasAnyValue) {
|
|
6741
|
+
this.linkEditorStateManager.cacheFormValues(previousLinkTypeKey, currentTypeValues);
|
|
6742
|
+
}
|
|
6743
|
+
const savedValues = this.linkEditorStateManager.getCachedFormValues(nextLinkTypeKey);
|
|
6744
|
+
this.linkEditorStateManager.setSelectedLinkTypeKey(nextLinkTypeKey);
|
|
6745
|
+
this.linkEditorStateManager.setSubmitDisabled(true);
|
|
6746
|
+
forceUpdate(this.host);
|
|
6747
|
+
if (savedValues && ((_f = this.renderer.getFormRef()) === null || _f === void 0 ? void 0 : _f.setValue)) {
|
|
6748
|
+
void this.waitForRender().then(() => this.performFormRestore(Object.assign(Object.assign({}, savedValues), { text: this.linkEditorStateManager.getSharedTextValue() })));
|
|
6749
|
+
return;
|
|
6750
|
+
}
|
|
6751
|
+
await ((_h = (_g = this.renderer.getFormRef()) === null || _g === void 0 ? void 0 : _g.reset) === null || _h === void 0 ? void 0 : _h.call(_g));
|
|
6752
|
+
void this.waitForRender().then(() => { var _a; return (_a = this.renderer.getUrlInputRef()) === null || _a === void 0 ? void 0 : _a.doFocus(); });
|
|
6753
|
+
const sharedTextValue = this.linkEditorStateManager.getSharedTextValue();
|
|
6754
|
+
await ((_k = (_j = this.renderer.getFormRef()) === null || _j === void 0 ? void 0 : _j.setValue) === null || _k === void 0 ? void 0 : _k.call(_j, { text: sharedTextValue }));
|
|
6755
|
+
this.syncTextInputValue(sharedTextValue);
|
|
6756
|
+
}
|
|
6757
|
+
/**
|
|
6758
|
+
* Builds and emits the final link payload.
|
|
6759
|
+
*
|
|
6760
|
+
* @returns {Promise<void>} Resolves when the link submit flow completes.
|
|
6761
|
+
*/
|
|
6762
|
+
async submitLink() {
|
|
6763
|
+
var _a, _b, _c, _d;
|
|
6764
|
+
const formValues = (_c = (await ((_b = (_a = this.renderer.getFormRef()) === null || _a === void 0 ? void 0 : _a.getValue) === null || _b === void 0 ? void 0 : _b.call(_a)))) !== null && _c !== void 0 ? _c : {};
|
|
6765
|
+
const selectedLinkTypeKey = this.linkEditorStateManager.getSelectedLinkTypeKey();
|
|
6766
|
+
const handler = this.linkTypeHandlers.get(selectedLinkTypeKey);
|
|
6767
|
+
if (!handler) {
|
|
6768
|
+
return;
|
|
6769
|
+
}
|
|
6770
|
+
const deps = {
|
|
6771
|
+
normalizeUrl: this.normalizeUrlByDefaultProtocol.bind(this),
|
|
6772
|
+
buildEmailUrl: this.buildEmailLinkUrl.bind(this),
|
|
6773
|
+
};
|
|
6774
|
+
const text = handler.getTextValue(formValues);
|
|
6775
|
+
let normalizedUrl = handler.buildFinalUrl(formValues, deps);
|
|
6776
|
+
normalizedUrl = this.preserveExistingMailtoUrlIfUnchanged(formValues, normalizedUrl);
|
|
6777
|
+
if (normalizedUrl.length === 0) {
|
|
6778
|
+
if ((_d = this.record) === null || _d === void 0 ? void 0 : _d.url) {
|
|
6779
|
+
this.changeEventEmitter.emit({ action: 'unlink' });
|
|
6780
|
+
await this.renderer.getPopoverRef().hide();
|
|
6781
|
+
}
|
|
6782
|
+
return;
|
|
6783
|
+
}
|
|
6784
|
+
if (normalizedUrl.length > 0) {
|
|
6785
|
+
this.changeEventEmitter.emit({
|
|
6786
|
+
action: 'link',
|
|
6787
|
+
payload: Object.assign({ text: text || handler.getFallbackText(formValues) || normalizedUrl, url: normalizedUrl }, (this.linkTypeConfigController.hasConfiguredLinkTypes()
|
|
6788
|
+
? { linkType: selectedLinkTypeKey }
|
|
6789
|
+
: {})),
|
|
6790
|
+
});
|
|
6791
|
+
await this.renderer.getPopoverRef().hide();
|
|
6792
|
+
}
|
|
6793
|
+
}
|
|
6794
|
+
/**
|
|
6795
|
+
* Populates the edit form from the active record.
|
|
6796
|
+
*
|
|
6797
|
+
* @returns {Promise<void>} Resolves when the edit form is populated.
|
|
6798
|
+
*/
|
|
6799
|
+
async populateEditForm() {
|
|
6800
|
+
var _a, _b, _c, _d, _e;
|
|
6801
|
+
const handler = this.linkTypeHandlers.get(this.linkEditorStateManager.getSelectedLinkTypeKey());
|
|
6802
|
+
if (!handler) {
|
|
6803
|
+
return;
|
|
6804
|
+
}
|
|
6805
|
+
const deps = {
|
|
6806
|
+
parseMailtoUrl: this.parseMailtoUrl.bind(this),
|
|
6807
|
+
normalizeUrl: this.normalizeUrlByDefaultProtocol.bind(this),
|
|
6808
|
+
};
|
|
6809
|
+
const requiredValue = this.linkTypeConfigController.hasConfiguredLinkTypes()
|
|
6810
|
+
? handler.getRequiredValue(this.record, deps)
|
|
6811
|
+
: '';
|
|
6812
|
+
const initialFormValues = handler.getInitialFormValues(this.record, deps);
|
|
6813
|
+
this.linkEditorStateManager.setSharedTextValue(initialFormValues.text || '');
|
|
6814
|
+
await ((_b = (_a = this.renderer.getFormRef()) === null || _a === void 0 ? void 0 : _a.setValue) === null || _b === void 0 ? void 0 : _b.call(_a, initialFormValues));
|
|
6815
|
+
this.syncTextInputValue(initialFormValues.text || '');
|
|
6816
|
+
this.updateSubmitDisabledState(requiredValue);
|
|
6817
|
+
await ((_d = (_c = this.renderer.getFormRef()) === null || _c === void 0 ? void 0 : _c.setValue) === null || _d === void 0 ? void 0 : _d.call(_c, handler.getInitialFormValues(this.record, deps)));
|
|
6818
|
+
await ((_e = this.renderer.getUrlInputRef()) === null || _e === void 0 ? void 0 : _e.doFocus());
|
|
6819
|
+
}
|
|
6820
|
+
/**
|
|
6821
|
+
* Updates the popover target via the remote invocation registry.
|
|
6822
|
+
*
|
|
6823
|
+
* @returns {void} No return value.
|
|
6824
|
+
*/
|
|
6825
|
+
updatePopoverTarget() {
|
|
6826
|
+
remoteInvocationRegistry.call(domNodeSubjectFactory.getSubject(this.renderer.getPopoverRef(), VegaInternalPopoverUpdateTarget), this.target);
|
|
6827
|
+
}
|
|
6828
|
+
/**
|
|
6829
|
+
* Preserves an unchanged mailto URL when the form edits are equivalent.
|
|
6830
|
+
*
|
|
6831
|
+
* @param {Record<string, string>} formValues - Current form values.
|
|
6832
|
+
* @param {string} normalizedUrl - Normalized URL candidate.
|
|
6833
|
+
* @returns {string} The preserved or normalized URL.
|
|
6834
|
+
*/
|
|
6835
|
+
preserveExistingMailtoUrlIfUnchanged(formValues, normalizedUrl) {
|
|
6836
|
+
var _a;
|
|
6837
|
+
if (this.linkEditorStateManager.getSelectedLinkTypeKey() !== RTE_EMAIL_LINK_TYPE_KEY ||
|
|
6838
|
+
!((_a = this.record) === null || _a === void 0 ? void 0 : _a.url)) {
|
|
6839
|
+
return normalizedUrl;
|
|
6840
|
+
}
|
|
6841
|
+
const existingUrl = this.record.url;
|
|
6842
|
+
if (!existingUrl.startsWith('mailto:')) {
|
|
6843
|
+
return normalizedUrl;
|
|
6844
|
+
}
|
|
6845
|
+
const existingMailto = this.parseMailtoUrl(existingUrl);
|
|
6846
|
+
const nextEmailAddress = (formValues.emailAddress || '').trim();
|
|
6847
|
+
const nextSubject = (formValues.messageSubject || '').trim();
|
|
6848
|
+
const nextBody = (formValues.messageBody || '').trim();
|
|
6849
|
+
if (nextEmailAddress === existingMailto.emailAddress &&
|
|
6850
|
+
nextSubject === existingMailto.subject &&
|
|
6851
|
+
nextBody === existingMailto.body) {
|
|
6852
|
+
return existingUrl;
|
|
6853
|
+
}
|
|
6854
|
+
return normalizedUrl;
|
|
6855
|
+
}
|
|
6856
|
+
/**
|
|
6857
|
+
* Normalizes a URL using the currently selected link type protocol.
|
|
6858
|
+
*
|
|
6859
|
+
* @param {string} url - URL to normalize.
|
|
6860
|
+
* @returns {string} The normalized URL.
|
|
6861
|
+
*/
|
|
6862
|
+
normalizeUrlByDefaultProtocol(url) {
|
|
6863
|
+
return this.linkUrlNormalizer.normalizeUrlByDefaultProtocol(url, this.linkTypeConfigController.getDefaultProtocolForLinkType(this.linkEditorStateManager.getSelectedLinkTypeKey()));
|
|
6864
|
+
}
|
|
6865
|
+
/**
|
|
6866
|
+
* Parses a mailto URL into structured parts.
|
|
6867
|
+
*
|
|
6868
|
+
* @param {string} url - Mailto URL to parse.
|
|
6869
|
+
* @returns {MailtoUrlParts} The parsed mailto parts.
|
|
6870
|
+
*/
|
|
6871
|
+
parseMailtoUrl(url) {
|
|
6872
|
+
return this.linkUrlNormalizer.parseMailtoUrl(url);
|
|
6873
|
+
}
|
|
6874
|
+
/**
|
|
6875
|
+
* Builds a mailto URL from the email form fields.
|
|
6876
|
+
*
|
|
6877
|
+
* @param {string} emailAddress - Email address value.
|
|
6878
|
+
* @param {string} subject - Subject value.
|
|
6879
|
+
* @param {string} body - Body value.
|
|
6880
|
+
* @returns {string} The generated mailto URL.
|
|
6881
|
+
*/
|
|
6882
|
+
buildEmailLinkUrl(emailAddress, subject, body) {
|
|
6883
|
+
return this.linkUrlNormalizer.buildEmailLinkUrl(emailAddress, subject, body);
|
|
6884
|
+
}
|
|
6885
|
+
/**
|
|
6886
|
+
* Enables or disables submit based on the normalized URL value.
|
|
6887
|
+
*
|
|
6888
|
+
* @param {string} url - URL value to evaluate.
|
|
6889
|
+
* @returns {void} No return value.
|
|
6890
|
+
*/
|
|
6891
|
+
updateSubmitDisabledState(url) {
|
|
6892
|
+
const nextDisabled = this.normalizeUrlByDefaultProtocol(url).length === 0;
|
|
6893
|
+
if (this.linkEditorStateManager.getIsSubmitDisabled() !== nextDisabled) {
|
|
6894
|
+
this.linkEditorStateManager.setSubmitDisabled(nextDisabled);
|
|
6895
|
+
forceUpdate(this.host);
|
|
6896
|
+
}
|
|
6897
|
+
}
|
|
6898
|
+
/**
|
|
6899
|
+
* Restores cached form values after the next render.
|
|
6900
|
+
*
|
|
6901
|
+
* @param {Record<string, string>} savedValues - Link type-specific values to restore.
|
|
6902
|
+
* @returns {Promise<void>} Resolves after restoring cached values.
|
|
6903
|
+
*/
|
|
6904
|
+
async performFormRestore(savedValues) {
|
|
6905
|
+
var _a, _b, _c, _d, _e;
|
|
6906
|
+
await ((_b = (_a = this.renderer.getFormRef()) === null || _a === void 0 ? void 0 : _a.reset) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
6907
|
+
await ((_d = (_c = this.renderer.getFormRef()) === null || _c === void 0 ? void 0 : _c.setValue) === null || _d === void 0 ? void 0 : _d.call(_c, savedValues));
|
|
6908
|
+
this.syncTextInputValue(savedValues.text || '');
|
|
6909
|
+
const restoredRequiredValue = savedValues.url || savedValues.emailAddress || '';
|
|
6910
|
+
this.updateSubmitDisabledState(restoredRequiredValue);
|
|
6911
|
+
await ((_e = this.renderer.getUrlInputRef()) === null || _e === void 0 ? void 0 : _e.doFocus());
|
|
6912
|
+
}
|
|
6913
|
+
/**
|
|
6914
|
+
* Keeps text input UI in sync as a fallback when form setValue timing misses visual update.
|
|
6915
|
+
*
|
|
6916
|
+
* @param {string} textValue - Text value to display.
|
|
6917
|
+
* @returns {void} No return value.
|
|
6918
|
+
*/
|
|
6919
|
+
syncTextInputValue(textValue) {
|
|
6920
|
+
const textInput = this.renderer.getTextInputRef();
|
|
6921
|
+
if (textInput) {
|
|
6922
|
+
textInput.value = textValue;
|
|
6923
|
+
}
|
|
6924
|
+
}
|
|
6925
|
+
/**
|
|
6926
|
+
* Waits for the host to finish rendering.
|
|
6927
|
+
*
|
|
6928
|
+
* @returns {Promise<unknown>} A promise that resolves after the host renders.
|
|
6929
|
+
*/
|
|
6930
|
+
waitForRender() {
|
|
6931
|
+
return waitForComponentDidRender(this.host);
|
|
6932
|
+
}
|
|
6933
|
+
}
|
|
6934
|
+
__decorate$2([
|
|
6935
|
+
MapToComponentField()
|
|
6936
|
+
], LinkEditorController.prototype, "host", void 0);
|
|
6937
|
+
__decorate$2([
|
|
5576
6938
|
MapToComponentField({ writable: true })
|
|
5577
|
-
],
|
|
5578
|
-
__decorate$
|
|
6939
|
+
], LinkEditorController.prototype, "status", void 0);
|
|
6940
|
+
__decorate$2([
|
|
5579
6941
|
MapToComponentField()
|
|
5580
|
-
],
|
|
5581
|
-
__decorate$
|
|
6942
|
+
], LinkEditorController.prototype, "record", void 0);
|
|
6943
|
+
__decorate$2([
|
|
5582
6944
|
MapToComponentField()
|
|
5583
|
-
],
|
|
5584
|
-
__decorate$
|
|
6945
|
+
], LinkEditorController.prototype, "changeEventEmitter", void 0);
|
|
6946
|
+
__decorate$2([
|
|
5585
6947
|
MapToComponentField()
|
|
5586
|
-
],
|
|
5587
|
-
__decorate$
|
|
6948
|
+
], LinkEditorController.prototype, "resetStatusAfterHide", void 0);
|
|
6949
|
+
__decorate$2([
|
|
5588
6950
|
MapToComponentField()
|
|
5589
|
-
],
|
|
5590
|
-
__decorate$
|
|
6951
|
+
], LinkEditorController.prototype, "target", void 0);
|
|
6952
|
+
__decorate$2([
|
|
6953
|
+
MapToComponentField()
|
|
6954
|
+
], LinkEditorController.prototype, "renderer", void 0);
|
|
6955
|
+
__decorate$2([
|
|
6956
|
+
MapToComponentField()
|
|
6957
|
+
], LinkEditorController.prototype, "linkTypeConfigController", void 0);
|
|
6958
|
+
__decorate$2([
|
|
6959
|
+
MapToComponentField()
|
|
6960
|
+
], LinkEditorController.prototype, "linkEditorStateManager", void 0);
|
|
6961
|
+
__decorate$2([
|
|
5591
6962
|
MapToComponentMethod('componentDidLoad')
|
|
5592
|
-
],
|
|
5593
|
-
__decorate$
|
|
6963
|
+
], LinkEditorController.prototype, "componentDidLoad", null);
|
|
6964
|
+
__decorate$2([
|
|
5594
6965
|
MapToComponentMethod('componentDidRender')
|
|
5595
|
-
],
|
|
5596
|
-
__decorate$
|
|
6966
|
+
], LinkEditorController.prototype, "componentDidRender", null);
|
|
6967
|
+
__decorate$2([
|
|
5597
6968
|
MapToComponentMethod('watchStatusChange')
|
|
5598
|
-
],
|
|
5599
|
-
__decorate$
|
|
6969
|
+
], LinkEditorController.prototype, "watchStatusChange", null);
|
|
6970
|
+
__decorate$2([
|
|
5600
6971
|
MapToComponentMethod('watchTargetChange')
|
|
5601
|
-
],
|
|
6972
|
+
], LinkEditorController.prototype, "watchTargetChange", null);
|
|
6973
|
+
|
|
6974
|
+
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
6975
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6976
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
6977
|
+
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;
|
|
6978
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6979
|
+
};
|
|
6980
|
+
/**
|
|
6981
|
+
* Resolves configured link types and their defaults.
|
|
6982
|
+
*/
|
|
6983
|
+
class LinkTypeConfigController extends VegaSlimmer {
|
|
6984
|
+
constructor() {
|
|
6985
|
+
super(...arguments);
|
|
6986
|
+
this.configuredLinkTypesCache = null;
|
|
6987
|
+
this.linkTypeHandlers = LINK_TYPE_HANDLER_MAP;
|
|
6988
|
+
}
|
|
6989
|
+
/**
|
|
6990
|
+
* Returns the configured link types, using a cache when available.
|
|
6991
|
+
*
|
|
6992
|
+
* @returns {VegaRTELinkType[]} The configured link types.
|
|
6993
|
+
*/
|
|
6994
|
+
getConfiguredLinkTypes() {
|
|
6995
|
+
if (this.configuredLinkTypesCache) {
|
|
6996
|
+
return this.configuredLinkTypesCache;
|
|
6997
|
+
}
|
|
6998
|
+
const configuredLinkTypes = this.resolveConfiguredLinkTypes();
|
|
6999
|
+
this.configuredLinkTypesCache = configuredLinkTypes;
|
|
7000
|
+
return configuredLinkTypes;
|
|
7001
|
+
}
|
|
7002
|
+
/**
|
|
7003
|
+
* Clears the cached configured link types.
|
|
7004
|
+
*
|
|
7005
|
+
* @returns {void} No return value.
|
|
7006
|
+
*/
|
|
7007
|
+
invalidateConfiguredLinkTypesCache() {
|
|
7008
|
+
this.configuredLinkTypesCache = null;
|
|
7009
|
+
}
|
|
7010
|
+
/**
|
|
7011
|
+
* Resolves the initial link type key for the current record.
|
|
7012
|
+
*
|
|
7013
|
+
* @param {string} recordLinkType - Link type from the active record.
|
|
7014
|
+
* @param {string} recordUrl - URL from the active record.
|
|
7015
|
+
* @returns {string} The resolved initial link type key.
|
|
7016
|
+
*/
|
|
7017
|
+
resolveInitialLinkTypeKey(recordLinkType, recordUrl) {
|
|
7018
|
+
var _a;
|
|
7019
|
+
const configuredLinkTypes = this.getConfiguredLinkTypes();
|
|
7020
|
+
if (recordLinkType &&
|
|
7021
|
+
configuredLinkTypes.some((item) => item.key === recordLinkType)) {
|
|
7022
|
+
return recordLinkType;
|
|
7023
|
+
}
|
|
7024
|
+
const normalizedRecordUrl = (recordUrl || '').trim().toLowerCase();
|
|
7025
|
+
if (normalizedRecordUrl.startsWith('mailto:') &&
|
|
7026
|
+
configuredLinkTypes.some((item) => item.key === RTE_EMAIL_LINK_TYPE_KEY)) {
|
|
7027
|
+
return RTE_EMAIL_LINK_TYPE_KEY;
|
|
7028
|
+
}
|
|
7029
|
+
return ((_a = configuredLinkTypes[0]) === null || _a === void 0 ? void 0 : _a.key) || RTE_DEFAULT_LINK_TYPE_KEY;
|
|
7030
|
+
}
|
|
7031
|
+
/**
|
|
7032
|
+
* Returns whether any configured link types are available.
|
|
7033
|
+
*
|
|
7034
|
+
* @returns {boolean} True when configured link types exist.
|
|
7035
|
+
*/
|
|
7036
|
+
hasConfiguredLinkTypes() {
|
|
7037
|
+
return this.getConfiguredLinkTypes().length > 0;
|
|
7038
|
+
}
|
|
7039
|
+
/**
|
|
7040
|
+
* Returns the default protocol for a given link type key.
|
|
7041
|
+
*
|
|
7042
|
+
* @param {string} selectedLinkTypeKey - Selected link type key.
|
|
7043
|
+
* @returns {string | undefined} The default protocol, if configured.
|
|
7044
|
+
*/
|
|
7045
|
+
getDefaultProtocolForLinkType(selectedLinkTypeKey) {
|
|
7046
|
+
var _a;
|
|
7047
|
+
const linkConfig = this.getLinkConfig();
|
|
7048
|
+
const selectedLinkType = this.getConfiguredLinkTypes().find((item) => item.key === selectedLinkTypeKey);
|
|
7049
|
+
return (_a = selectedLinkType === null || selectedLinkType === void 0 ? void 0 : selectedLinkType.defaultProtocol) !== null && _a !== void 0 ? _a : linkConfig.defaultProtocol;
|
|
7050
|
+
}
|
|
7051
|
+
/**
|
|
7052
|
+
* Returns the active link configuration for the current editor host.
|
|
7053
|
+
*
|
|
7054
|
+
* @returns {VegaRTELinkExtensionConfig} The active link configuration.
|
|
7055
|
+
*/
|
|
7056
|
+
getLinkConfig() {
|
|
7057
|
+
const rteHost = findParent(this.host, 'vega-rich-text-editor');
|
|
7058
|
+
return VegaRTELinkExtension.configStore.get(rteHost) || {};
|
|
7059
|
+
}
|
|
7060
|
+
/**
|
|
7061
|
+
* Normalizes configured link types and filters unsupported entries.
|
|
7062
|
+
*
|
|
7063
|
+
* @returns {VegaRTELinkType[]} The normalized configured link types.
|
|
7064
|
+
*/
|
|
7065
|
+
resolveConfiguredLinkTypes() {
|
|
7066
|
+
const linkConfig = this.getLinkConfig();
|
|
7067
|
+
const configLinkTypes = linkConfig.linkTypes || [];
|
|
7068
|
+
const normalizedByKey = new Map();
|
|
7069
|
+
configLinkTypes.forEach((item) => {
|
|
7070
|
+
const key = item.key.trim();
|
|
7071
|
+
if (!key || !LinkTypeConfigController.SUPPORTED_LINK_TYPE_KEYS.has(key)) {
|
|
7072
|
+
return;
|
|
7073
|
+
}
|
|
7074
|
+
if (!normalizedByKey.has(key)) {
|
|
7075
|
+
normalizedByKey.set(key, this.normalizeSupportedLinkType(item, key, linkConfig.defaultProtocol));
|
|
7076
|
+
}
|
|
7077
|
+
});
|
|
7078
|
+
if (normalizedByKey.size === 0) {
|
|
7079
|
+
return [];
|
|
7080
|
+
}
|
|
7081
|
+
if (normalizedByKey.has(RTE_EMAIL_LINK_TYPE_KEY)) {
|
|
7082
|
+
return [
|
|
7083
|
+
normalizedByKey.get(RTE_DEFAULT_LINK_TYPE_KEY) ||
|
|
7084
|
+
this.createDefaultUrlLinkType(linkConfig.defaultProtocol),
|
|
7085
|
+
normalizedByKey.get(RTE_EMAIL_LINK_TYPE_KEY),
|
|
7086
|
+
];
|
|
7087
|
+
}
|
|
7088
|
+
return [
|
|
7089
|
+
normalizedByKey.get(RTE_DEFAULT_LINK_TYPE_KEY) ||
|
|
7090
|
+
this.createDefaultUrlLinkType(linkConfig.defaultProtocol),
|
|
7091
|
+
];
|
|
7092
|
+
}
|
|
7093
|
+
/**
|
|
7094
|
+
* Creates the default URL link type descriptor.
|
|
7095
|
+
*
|
|
7096
|
+
* @param {string} configDefaultProtocol - Default protocol from config.
|
|
7097
|
+
* @returns {VegaRTELinkType} The default URL link type descriptor.
|
|
7098
|
+
*/
|
|
7099
|
+
createDefaultUrlLinkType(configDefaultProtocol) {
|
|
7100
|
+
const normalizedConfigDefaultProtocol = (configDefaultProtocol || '').trim();
|
|
7101
|
+
return {
|
|
7102
|
+
key: RTE_DEFAULT_LINK_TYPE_KEY,
|
|
7103
|
+
label: this.translationSlimmer.t('URL'),
|
|
7104
|
+
defaultProtocol: normalizedConfigDefaultProtocol || undefined,
|
|
7105
|
+
};
|
|
7106
|
+
}
|
|
7107
|
+
/**
|
|
7108
|
+
* Normalizes a supported link type while preserving its key.
|
|
7109
|
+
*
|
|
7110
|
+
* @param {VegaRTELinkType} item - Raw configured link type.
|
|
7111
|
+
* @param {string} key - Normalized link type key.
|
|
7112
|
+
* @param {string} configDefaultProtocol - Default protocol from config.
|
|
7113
|
+
* @returns {VegaRTELinkType} The normalized link type descriptor.
|
|
7114
|
+
*/
|
|
7115
|
+
normalizeSupportedLinkType(item, key, configDefaultProtocol) {
|
|
7116
|
+
var _a, _b;
|
|
7117
|
+
const normalizedItemDefaultProtocol = (item.defaultProtocol || '').trim();
|
|
7118
|
+
const normalizedConfigDefaultProtocol = (configDefaultProtocol || '').trim();
|
|
7119
|
+
const handler = this.linkTypeHandlers.get(key);
|
|
7120
|
+
const fallbackDefaultProtocol = (_a = handler === null || handler === void 0 ? void 0 : handler.defaultFallbackProtocol) !== null && _a !== void 0 ? _a : (normalizedConfigDefaultProtocol || undefined);
|
|
7121
|
+
return Object.assign(Object.assign({}, item), { key, label: ((_b = item.label) === null || _b === void 0 ? void 0 : _b.trim()) || this.getDefaultLinkTypeLabel(key), defaultProtocol: normalizedItemDefaultProtocol || fallbackDefaultProtocol });
|
|
7122
|
+
}
|
|
7123
|
+
/**
|
|
7124
|
+
* Returns the translated default label for a link type key.
|
|
7125
|
+
*
|
|
7126
|
+
* @param {string} key - Link type key.
|
|
7127
|
+
* @returns {string} The translated label for the link type.
|
|
7128
|
+
*/
|
|
7129
|
+
getDefaultLinkTypeLabel(key) {
|
|
7130
|
+
return key === RTE_EMAIL_LINK_TYPE_KEY
|
|
7131
|
+
? this.translationSlimmer.t('Email')
|
|
7132
|
+
: this.translationSlimmer.t('URL');
|
|
7133
|
+
}
|
|
7134
|
+
}
|
|
7135
|
+
LinkTypeConfigController.SUPPORTED_LINK_TYPE_KEYS = new Set(RTE_SUPPORTED_LINK_TYPE_KEYS);
|
|
7136
|
+
__decorate$1([
|
|
7137
|
+
MapToComponentField()
|
|
7138
|
+
], LinkTypeConfigController.prototype, "host", void 0);
|
|
7139
|
+
__decorate$1([
|
|
7140
|
+
MapToComponentField()
|
|
7141
|
+
], LinkTypeConfigController.prototype, "translationSlimmer", void 0);
|
|
7142
|
+
|
|
7143
|
+
/**
|
|
7144
|
+
* Stores link editor state across popover interactions.
|
|
7145
|
+
*/
|
|
7146
|
+
class LinkEditorStateManager extends VegaSlimmer {
|
|
7147
|
+
constructor() {
|
|
7148
|
+
super(...arguments);
|
|
7149
|
+
this.isSubmitDisabled = true;
|
|
7150
|
+
this.selectedLinkTypeKey = RTE_DEFAULT_LINK_TYPE_KEY;
|
|
7151
|
+
this.shouldResetStatusOnNextShow = false;
|
|
7152
|
+
this.formValuesByType = new Map();
|
|
7153
|
+
this.sharedTextValue = '';
|
|
7154
|
+
}
|
|
7155
|
+
/**
|
|
7156
|
+
* Returns whether submit is currently disabled.
|
|
7157
|
+
*
|
|
7158
|
+
* @returns {boolean} True when submit is disabled.
|
|
7159
|
+
*/
|
|
7160
|
+
getIsSubmitDisabled() {
|
|
7161
|
+
return this.isSubmitDisabled;
|
|
7162
|
+
}
|
|
7163
|
+
/**
|
|
7164
|
+
* Updates the submit disabled state.
|
|
7165
|
+
*
|
|
7166
|
+
* @param {boolean} isSubmitDisabled - Next disabled state.
|
|
7167
|
+
* @returns {void} No return value.
|
|
7168
|
+
*/
|
|
7169
|
+
setSubmitDisabled(isSubmitDisabled) {
|
|
7170
|
+
this.isSubmitDisabled = isSubmitDisabled;
|
|
7171
|
+
}
|
|
7172
|
+
/**
|
|
7173
|
+
* Returns the selected link type key.
|
|
7174
|
+
*
|
|
7175
|
+
* @returns {string} The selected link type key.
|
|
7176
|
+
*/
|
|
7177
|
+
getSelectedLinkTypeKey() {
|
|
7178
|
+
return this.selectedLinkTypeKey;
|
|
7179
|
+
}
|
|
7180
|
+
/**
|
|
7181
|
+
* Updates the selected link type key.
|
|
7182
|
+
*
|
|
7183
|
+
* @param {string} selectedLinkTypeKey - Next link type key.
|
|
7184
|
+
* @returns {void} No return value.
|
|
7185
|
+
*/
|
|
7186
|
+
setSelectedLinkTypeKey(selectedLinkTypeKey) {
|
|
7187
|
+
this.selectedLinkTypeKey = selectedLinkTypeKey;
|
|
7188
|
+
}
|
|
7189
|
+
/**
|
|
7190
|
+
* Returns whether the status should reset on the next show.
|
|
7191
|
+
*
|
|
7192
|
+
* @returns {boolean} True when the next show should reset the status.
|
|
7193
|
+
*/
|
|
7194
|
+
getShouldResetStatusOnNextShow() {
|
|
7195
|
+
return this.shouldResetStatusOnNextShow;
|
|
7196
|
+
}
|
|
7197
|
+
/**
|
|
7198
|
+
* Updates whether the status should reset on the next show.
|
|
7199
|
+
*
|
|
7200
|
+
* @param {boolean} shouldResetStatusOnNextShow - Next reset flag.
|
|
7201
|
+
* @returns {void} No return value.
|
|
7202
|
+
*/
|
|
7203
|
+
setShouldResetStatusOnNextShow(shouldResetStatusOnNextShow) {
|
|
7204
|
+
this.shouldResetStatusOnNextShow = shouldResetStatusOnNextShow;
|
|
7205
|
+
}
|
|
7206
|
+
/**
|
|
7207
|
+
* Clears all cached form values.
|
|
7208
|
+
*
|
|
7209
|
+
* @returns {void} No return value.
|
|
7210
|
+
*/
|
|
7211
|
+
clearFormValues() {
|
|
7212
|
+
this.formValuesByType.clear();
|
|
7213
|
+
this.sharedTextValue = '';
|
|
7214
|
+
}
|
|
7215
|
+
/**
|
|
7216
|
+
* Returns the text value shared across link types.
|
|
7217
|
+
*
|
|
7218
|
+
* @returns {string} Shared text value.
|
|
7219
|
+
*/
|
|
7220
|
+
getSharedTextValue() {
|
|
7221
|
+
return this.sharedTextValue;
|
|
7222
|
+
}
|
|
7223
|
+
/**
|
|
7224
|
+
* Updates the text value shared across link types.
|
|
7225
|
+
*
|
|
7226
|
+
* @param {string} textValue - Next shared text value.
|
|
7227
|
+
* @returns {void} No return value.
|
|
7228
|
+
*/
|
|
7229
|
+
setSharedTextValue(textValue) {
|
|
7230
|
+
this.sharedTextValue = textValue;
|
|
7231
|
+
}
|
|
7232
|
+
/**
|
|
7233
|
+
* Stores form values for a given link type key.
|
|
7234
|
+
*
|
|
7235
|
+
* @param {string} linkTypeKey - Link type cache key.
|
|
7236
|
+
* @param {Record<string, string>} formValues - Form values to cache.
|
|
7237
|
+
* @returns {void} No return value.
|
|
7238
|
+
*/
|
|
7239
|
+
cacheFormValues(linkTypeKey, formValues) {
|
|
7240
|
+
this.formValuesByType.set(linkTypeKey, formValues);
|
|
7241
|
+
}
|
|
7242
|
+
/**
|
|
7243
|
+
* Returns cached form values for a given link type key.
|
|
7244
|
+
*
|
|
7245
|
+
* @param {string} linkTypeKey - Link type cache key.
|
|
7246
|
+
* @returns {Record<string, string> | undefined} The cached form values, if any.
|
|
7247
|
+
*/
|
|
7248
|
+
getCachedFormValues(linkTypeKey) {
|
|
7249
|
+
return this.formValuesByType.get(linkTypeKey);
|
|
7250
|
+
}
|
|
7251
|
+
}
|
|
5602
7252
|
|
|
5603
7253
|
const vegaRichTextLinkEditorCss = ":host{display:contents}:host vega-popover{display:inline}";
|
|
5604
7254
|
|
|
@@ -5621,6 +7271,9 @@ const VegaRichTextLinkEditor = class {
|
|
|
5621
7271
|
this.translationSlimmer = new TranslationSlimmer();
|
|
5622
7272
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
|
|
5623
7273
|
this.renderer = new VegaRichTextLinkEditorRenderer();
|
|
7274
|
+
this.linkEditorController = new LinkEditorController();
|
|
7275
|
+
this.linkTypeConfigController = new LinkTypeConfigController();
|
|
7276
|
+
this.linkEditorStateManager = new LinkEditorStateManager();
|
|
5624
7277
|
this.changeEventEmitter = createEventEmitSlimmer(VegaRichTextLinkEditor, VegaChange);
|
|
5625
7278
|
/**
|
|
5626
7279
|
* Specifies the status of the link editor
|
|
@@ -5648,6 +7301,15 @@ const VegaRichTextLinkEditor = class {
|
|
|
5648
7301
|
async show() {
|
|
5649
7302
|
await this.renderer.getPopoverRef().show();
|
|
5650
7303
|
}
|
|
7304
|
+
/**
|
|
7305
|
+
* Provide a method to hide the link editor popover
|
|
7306
|
+
*
|
|
7307
|
+
* @vegaVersion 2.97.0
|
|
7308
|
+
*/
|
|
7309
|
+
async hide() {
|
|
7310
|
+
var _a;
|
|
7311
|
+
await ((_a = this.renderer.getPopoverRef()) === null || _a === void 0 ? void 0 : _a.hide());
|
|
7312
|
+
}
|
|
5651
7313
|
render() {
|
|
5652
7314
|
return sanitizeVegaComponent(h(Host, null, this.renderer.render()), this.host);
|
|
5653
7315
|
}
|
|
@@ -5669,6 +7331,15 @@ __decorate([
|
|
|
5669
7331
|
__decorate([
|
|
5670
7332
|
InjectVegaSlimmer()
|
|
5671
7333
|
], VegaRichTextLinkEditor.prototype, "renderer", void 0);
|
|
7334
|
+
__decorate([
|
|
7335
|
+
InjectVegaSlimmer()
|
|
7336
|
+
], VegaRichTextLinkEditor.prototype, "linkEditorController", void 0);
|
|
7337
|
+
__decorate([
|
|
7338
|
+
InjectVegaSlimmer()
|
|
7339
|
+
], VegaRichTextLinkEditor.prototype, "linkTypeConfigController", void 0);
|
|
7340
|
+
__decorate([
|
|
7341
|
+
InjectVegaSlimmer()
|
|
7342
|
+
], VegaRichTextLinkEditor.prototype, "linkEditorStateManager", void 0);
|
|
5672
7343
|
__decorate([
|
|
5673
7344
|
InjectVegaSlimmer()
|
|
5674
7345
|
], VegaRichTextLinkEditor.prototype, "changeEventEmitter", void 0);
|