@globalpayments/vega 2.34.0 → 2.35.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-4e819773.js → app-globals-fb3693cc.js} +22 -21
- package/dist/cjs/{change-manager-bda1d107.js → change-manager-a297e4d2.js} +1 -1
- package/dist/cjs/{child-nodes-event-prevent-slimmer-e1a6e5ad.js → child-nodes-event-prevent-slimmer-96c3c4ae.js} +3 -3
- package/dist/cjs/{child-nodes-notify-observer-slimmer-03a3f79e.js → child-nodes-notify-observer-slimmer-be92f366.js} +5 -5
- package/dist/cjs/{component-63af66ea.js → component-73a88c4e.js} +1 -1
- package/dist/cjs/{component-global-style-slimmer-6b64a26c.js → component-global-style-slimmer-6749808c.js} +1 -1
- package/dist/cjs/{component-usage-runtime-metrics-019d3c00.js → component-usage-runtime-metrics-dcb32c24.js} +1 -1
- package/dist/cjs/content-state-3e4467a3.js +134 -0
- package/dist/cjs/{create-public-api-runtime-metrics-slimmer-8c6a8fb7.js → create-public-api-runtime-metrics-slimmer-54c3f73b.js} +2 -2
- package/dist/cjs/{date-ffe382a4.js → date-0a6bb035.js} +1 -1
- package/dist/cjs/{deprecated-property-slimmer-f36e3779.js → deprecated-property-slimmer-fc729fd9.js} +2 -2
- package/dist/cjs/{design-token-908e3f69.js → design-token-30c069c1.js} +3 -3
- package/dist/cjs/{dom-node-subject-observer-factory-093462f1.js → dom-node-subject-factory-3ec114b8.js} +1 -41
- package/dist/cjs/dom-node-subject-observer-factory-5f0eae19.js +44 -0
- package/dist/cjs/{dynamic-slimmer-dc30600a.js → dynamic-slimmer-f31fdfd7.js} +1 -1
- package/dist/cjs/{element-appender-slimmer-0dd70e61.js → element-appender-slimmer-700b7004.js} +6 -6
- package/dist/cjs/{event-emit-slimmer-a46bb411.js → event-emit-slimmer-9c223f73.js} +7 -6
- package/dist/cjs/{feature-flag-controller-e97b5f29.js → feature-flag-controller-7b22e598.js} +1 -1
- package/dist/cjs/{form-field-controller-slimmer-9aeabcdc.js → form-field-controller-slimmer-dbb321ad.js} +61 -37
- package/dist/cjs/global-slimmer-registry-b3bce7e0.js +297 -0
- package/dist/cjs/{icon-manager-36dcfb65.js → icon-manager-edc2400b.js} +2 -2
- package/dist/cjs/{text-color-toolbar-button-slimmer-b1c9f40e.js → image-annotation-action-d3e1699c.js} +78 -27
- package/dist/cjs/{global-slimmer-registry-dd2691b8.js → index-09acd3c9.js} +282 -296
- package/dist/cjs/index.cjs.js +27 -28
- package/dist/cjs/{inject-keyboard-manager-af37c861.js → inject-keyboard-manager-4a5c27a2.js} +1 -1
- package/dist/cjs/{internal-icon-manager-2282a62f.js → internal-icon-manager-5ccb9443.js} +1 -1
- package/dist/cjs/{internal-vega-event-manager-d7643ec6.js → internal-vega-event-manager-e5e4bcf4.js} +72 -72
- package/dist/cjs/{internal-vega-z-index-manager-e24e4309.js → internal-vega-z-index-manager-f03ddb37.js} +1 -1
- package/dist/cjs/{keyboard-manager-5afbc8f1.js → keyboard-manager-2df53b2f.js} +1 -1
- package/dist/cjs/{keyboard-manager-slimmer-9be2a880.js → keyboard-manager-slimmer-feba3a83.js} +2 -2
- package/dist/cjs/{content-state-3a2724f6.js → list-block-91116257.js} +1393 -679
- package/dist/cjs/loader.cjs.js +21 -21
- package/dist/cjs/{mutation-observer-slimmer-98bbbdf0.js → mutation-observer-slimmer-895b3d3e.js} +1 -1
- package/dist/cjs/{node.abstract-f8075f84.js → node-annotation.abstract-e5d3a859.js} +37 -48
- package/dist/cjs/{page-resize-observer-slimmer-e54fa9d4.js → page-resize-observer-slimmer-bb1eaebe.js} +1 -1
- package/dist/cjs/{remote-invocation-registry-71a45468.js → remote-invocation-registry-ff9af278.js} +3 -3
- package/dist/cjs/{responsive-format-facade-74079f1b.js → responsive-format-facade-4363a00d.js} +1 -1
- package/dist/cjs/{state-background-color-formatter-d32a1098.js → state-background-color-formatter-e585a027.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-297765c0.js → string-input-formatter-slimmer-6155c9f5.js} +1 -1
- package/dist/cjs/{style-formatter-5deb065f.js → style-formatter-63218b76.js} +1 -1
- package/dist/cjs/{sub-state-notify-slimmer-73201c53.js → sub-state-notify-slimmer-c2e08e06.js} +8 -8
- package/dist/cjs/{sub-state-observer-slimmer-10c0d402.js → sub-state-observer-slimmer-b97e46b5.js} +8 -8
- package/dist/cjs/{translation-f6b7ee84.js → translation-b9be41e0.js} +3 -3
- package/dist/cjs/{translation-slimmer-90f9f71f.js → translation-slimmer-ec76c5a2.js} +2 -2
- package/dist/cjs/{ui-b5906704.js → ui-5fd9b267.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +41 -39
- package/dist/cjs/vega-app-footer.cjs.entry.js +13 -12
- package/dist/cjs/vega-app-header-button.cjs.entry.js +42 -40
- package/dist/cjs/vega-backdrop.cjs.entry.js +9 -8
- package/dist/cjs/vega-banner.cjs.entry.js +36 -34
- package/dist/cjs/vega-bar-chart.cjs.entry.js +6 -5
- package/dist/cjs/vega-box.cjs.entry.js +13 -12
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +34 -32
- package/dist/cjs/vega-button-circle.cjs.entry.js +25 -23
- package/dist/cjs/vega-button-group_2.cjs.entry.js +32 -30
- package/dist/cjs/vega-button-link.cjs.entry.js +26 -24
- package/dist/cjs/vega-button.cjs.entry.js +26 -24
- package/dist/cjs/vega-calendar_3.cjs.entry.js +135 -133
- package/dist/cjs/vega-card.cjs.entry.js +11 -10
- package/dist/cjs/vega-carousel.cjs.entry.js +25 -23
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +46 -44
- package/dist/cjs/vega-chip.cjs.entry.js +36 -34
- package/dist/cjs/vega-color-picker.cjs.entry.js +26 -24
- package/dist/cjs/vega-combo-box.cjs.entry.js +46 -44
- package/dist/cjs/vega-counter-badge.cjs.entry.js +10 -9
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +92 -54
- package/dist/cjs/{vega-dialog-controller-aaf1f43e.js → vega-dialog-controller-fe610705.js} +2 -2
- package/dist/cjs/vega-dialog_2.cjs.entry.js +47 -45
- package/dist/cjs/vega-divider.cjs.entry.js +11 -10
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +132 -130
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-error.cjs.entry.js +8 -7
- package/dist/cjs/vega-field-label.cjs.entry.js +22 -20
- package/dist/cjs/vega-file-uploader.cjs.entry.js +67 -65
- package/dist/cjs/vega-flex.cjs.entry.js +14 -13
- package/dist/cjs/vega-font.cjs.entry.js +14 -13
- package/dist/cjs/vega-form.cjs.entry.js +47 -40
- package/dist/cjs/vega-grid.cjs.entry.js +11 -10
- package/dist/cjs/vega-hint.cjs.entry.js +7 -6
- package/dist/cjs/vega-icon.cjs.entry.js +16 -15
- package/dist/cjs/vega-image-uploader.cjs.entry.js +51 -49
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +37 -35
- package/dist/cjs/vega-input-numeric.cjs.entry.js +30 -28
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +98 -50
- package/dist/cjs/vega-input-range.cjs.entry.js +40 -38
- package/dist/cjs/vega-input-select.cjs.entry.js +62 -60
- package/dist/cjs/vega-input.cjs.entry.js +46 -44
- package/dist/cjs/vega-item-toggle.cjs.entry.js +21 -19
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +102 -100
- package/dist/cjs/vega-line-chart.cjs.entry.js +7 -6
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +16 -15
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +20 -18
- package/dist/cjs/vega-pagination.cjs.entry.js +57 -52
- package/dist/cjs/vega-pie-chart.cjs.entry.js +7 -6
- package/dist/cjs/vega-popover_2.cjs.entry.js +34 -32
- package/dist/cjs/vega-progress-tracker.cjs.entry.js +29 -27
- package/dist/cjs/vega-radio_2.cjs.entry.js +50 -48
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +323 -23
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +999 -736
- package/dist/cjs/vega-section-title.cjs.entry.js +15 -14
- package/dist/cjs/vega-segment-control.cjs.entry.js +24 -22
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +49 -47
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +61 -59
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +46 -44
- package/dist/cjs/vega-signature-capture.cjs.entry.js +40 -38
- package/dist/cjs/{block-annotation.abstract-4d88b939.js → vega-skeleton-loader-controller-7dac484f.js} +7 -21
- package/dist/cjs/vega-skeleton.cjs.entry.js +26 -25
- package/dist/cjs/vega-slot-container.cjs.entry.js +6 -5
- package/dist/cjs/vega-stepper.cjs.entry.js +34 -32
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +88 -75
- package/dist/cjs/vega-table_8.cjs.entry.js +185 -183
- package/dist/cjs/vega-text.cjs.entry.js +9 -8
- package/dist/cjs/vega-textarea.cjs.entry.js +34 -32
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +83 -81
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +23 -21
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +20 -19
- package/dist/cjs/vega.cjs.js +21 -21
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +37 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker.js +20 -0
- package/dist/collection/components/vega-form/vega-form.js +13 -4
- package/dist/collection/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.js +38 -3
- package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +35 -0
- package/dist/collection/components/vega-pagination/vega-pagination.js +5 -2
- package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +18 -1
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/bold-annotation.js +0 -10
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/code-annotation.js +0 -9
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/horizontal-alignment-annotation.js +0 -44
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/image-annotation.js +0 -10
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/indent-annotation.js +0 -42
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/italic-annotation.js +0 -9
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/link-annotation.js +0 -14
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/link-group-annotation.js +0 -90
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/strikethrough-annotation.js +0 -11
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-color-annotation.js +0 -26
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-annotation.js +0 -44
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/underline-annotation.js +0 -11
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +0 -42
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/image-block.js +67 -26
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +45 -31
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +68 -35
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +113 -50
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/image-node.js +23 -60
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +0 -25
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +95 -51
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-renderer.abstract.js +35 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +104 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.js +15 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js +14 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.js +14 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.js +28 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.js +49 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/node-renderer.abstract.js +35 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +24 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/block-to-rte-block-strategy.abstract.js +258 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +71 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy-processor.js +72 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.js +37 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/img-to-rte-image-block-strategy.js +55 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/inline-block-to-rte-text-block-strategy.js +85 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/li-to-rte-list-item-block-strategy.js +49 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ol-to-rte-list-block-strategy.js +50 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/span-img-to-rte-image-block-strategy.js +60 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ul-not-li-child-to-rte-list-item-block.js +49 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ul-to-rte-list-block-strategy.js +50 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/vega-image-to-rte-image-block-strategy.js +56 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +7 -3
- package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/image-block.test.js +0 -10
- package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/list-block.test.js +0 -48
- package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/list-item.test.js +0 -40
- package/dist/collection/components/vega-rich-text-editor/test/dto/blocks/text-block.test.js +0 -39
- package/dist/collection/components/vega-rich-text-editor/test/dto/nodes/image-node.test.js +0 -14
- package/dist/collection/components/vega-rich-text-editor/test/dto/nodes/text-node.test.js +0 -34
- package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-page-index-controller.js +22 -22
- package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-selected-target-controller.js +9 -1
- package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-direction-button-renderer.js +4 -1
- package/dist/collection/components/vega-table/vega-table-head-cell/vega-table-head-cell.css +3 -0
- package/dist/collection/helpers/slimmers/field-error-ui-controller-slimmer.js +10 -16
- package/dist/collection/helpers/slimmers/form-field-message-translator.js +17 -0
- package/dist/collection/helpers/slimmers/form-field-valid-invoke-slimmer.js +6 -3
- package/dist/collection/helpers/validator/form-field-controller.js +9 -3
- package/dist/collection/helpers/validator/validation-rule-handler/form-field-validation-rule-handler-chain.js +7 -2
- package/dist/esm/{app-globals-9971ccfd.js → app-globals-5b154b6d.js} +13 -12
- package/dist/esm/{change-manager-8f5b72c2.js → change-manager-6a7eb88c.js} +1 -1
- package/dist/esm/{child-nodes-event-prevent-slimmer-8ceabe63.js → child-nodes-event-prevent-slimmer-97aae8a8.js} +3 -3
- package/dist/esm/{child-nodes-notify-observer-slimmer-afc15e00.js → child-nodes-notify-observer-slimmer-289caacc.js} +4 -4
- package/dist/esm/{component-051a594c.js → component-cae24190.js} +1 -1
- package/dist/esm/{component-global-style-slimmer-631f956f.js → component-global-style-slimmer-000e0c11.js} +1 -1
- package/dist/esm/{component-usage-runtime-metrics-21813c36.js → component-usage-runtime-metrics-385c7124.js} +1 -1
- package/dist/esm/content-state-f39c4bbf.js +132 -0
- package/dist/esm/{create-public-api-runtime-metrics-slimmer-14cb4599.js → create-public-api-runtime-metrics-slimmer-9ab05523.js} +2 -2
- package/dist/esm/{date-655c0af8.js → date-732bc749.js} +1 -1
- package/dist/esm/{deprecated-property-slimmer-9ea5019c.js → deprecated-property-slimmer-43d184b3.js} +2 -2
- package/dist/esm/{design-token-20fdba82.js → design-token-d06bc718.js} +3 -3
- package/dist/esm/{dom-node-subject-observer-factory-80358591.js → dom-node-subject-factory-5831cdd4.js} +2 -41
- package/dist/esm/dom-node-subject-observer-factory-dc486a8b.js +42 -0
- package/dist/esm/{dynamic-slimmer-85746483.js → dynamic-slimmer-90b8af32.js} +1 -1
- package/dist/esm/{element-appender-slimmer-4dfa326d.js → element-appender-slimmer-d71e3109.js} +6 -6
- package/dist/esm/{event-emit-slimmer-c03cf145.js → event-emit-slimmer-f285e3ac.js} +6 -5
- package/dist/esm/{feature-flag-controller-dfde0cfa.js → feature-flag-controller-4b3fe6f8.js} +1 -1
- package/dist/esm/{form-field-controller-slimmer-de5fe574.js → form-field-controller-slimmer-add614f1.js} +55 -31
- package/dist/esm/global-slimmer-registry-17c4efd4.js +283 -0
- package/dist/esm/{icon-manager-3cef32e7.js → icon-manager-b889176b.js} +2 -2
- package/dist/esm/{text-color-toolbar-button-slimmer-d0255b98.js → image-annotation-action-a8e00f28.js} +55 -6
- package/dist/esm/{global-slimmer-registry-6887a59f.js → index-187f71d1.js} +283 -284
- package/dist/esm/index.js +20 -21
- package/dist/esm/{inject-keyboard-manager-45309420.js → inject-keyboard-manager-b0135018.js} +1 -1
- package/dist/esm/{internal-icon-manager-7fc7535a.js → internal-icon-manager-900a5bb4.js} +1 -1
- package/dist/esm/{internal-vega-event-manager-3a3815d3.js → internal-vega-event-manager-07e1b3d9.js} +2 -2
- package/dist/esm/{internal-vega-z-index-manager-89e8b6f5.js → internal-vega-z-index-manager-7d2b54c3.js} +1 -1
- package/dist/esm/{keyboard-manager-2c06eafe.js → keyboard-manager-4c898a0d.js} +1 -1
- package/dist/esm/{keyboard-manager-slimmer-fd177285.js → keyboard-manager-slimmer-f80d6835.js} +2 -2
- package/dist/esm/{content-state-acf55eb0.js → list-block-ba82c846.js} +1273 -577
- package/dist/esm/loader.js +20 -20
- package/dist/esm/{mutation-observer-slimmer-ca2cb2e8.js → mutation-observer-slimmer-6cef9549.js} +1 -1
- package/dist/esm/{node.abstract-93746055.js → node-annotation.abstract-d7d52bce.js} +35 -47
- package/dist/esm/{page-resize-observer-slimmer-8589ebc8.js → page-resize-observer-slimmer-beb7b0bd.js} +1 -1
- package/dist/esm/{remote-invocation-registry-2ec6936d.js → remote-invocation-registry-d97fa3bc.js} +2 -2
- package/dist/esm/{responsive-format-facade-559ec469.js → responsive-format-facade-c2ab9c87.js} +1 -1
- package/dist/esm/{state-background-color-formatter-16031a43.js → state-background-color-formatter-121ae7d3.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-c9fb1fa1.js → string-input-formatter-slimmer-73fa06e6.js} +1 -1
- package/dist/esm/{style-formatter-51845b6d.js → style-formatter-f91471e8.js} +1 -1
- package/dist/esm/{sub-state-notify-slimmer-6e97a58a.js → sub-state-notify-slimmer-48bad548.js} +4 -4
- package/dist/esm/{sub-state-observer-slimmer-0968ce04.js → sub-state-observer-slimmer-403cc4e7.js} +4 -4
- package/dist/esm/{translation-b3fe8e74.js → translation-a98970d8.js} +3 -3
- package/dist/esm/{translation-slimmer-860cd766.js → translation-slimmer-5ee9912b.js} +2 -2
- package/dist/esm/{ui-5600b48f.js → ui-62e4be97.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +17 -15
- package/dist/esm/vega-app-footer.entry.js +4 -3
- package/dist/esm/vega-app-header-button.entry.js +20 -18
- package/dist/esm/vega-backdrop.entry.js +5 -4
- package/dist/esm/vega-banner.entry.js +15 -13
- package/dist/esm/vega-bar-chart.entry.js +3 -2
- package/dist/esm/vega-box.entry.js +10 -9
- package/dist/esm/vega-breadcrumb.entry.js +13 -11
- package/dist/esm/vega-button-circle.entry.js +16 -14
- package/dist/esm/vega-button-group_2.entry.js +15 -13
- package/dist/esm/vega-button-link.entry.js +13 -11
- package/dist/esm/vega-button.entry.js +15 -13
- package/dist/esm/vega-calendar_3.entry.js +23 -21
- package/dist/esm/vega-card.entry.js +8 -7
- package/dist/esm/vega-carousel.entry.js +14 -12
- package/dist/esm/vega-checkbox_2.entry.js +19 -17
- package/dist/esm/vega-chip.entry.js +17 -15
- package/dist/esm/vega-color-picker.entry.js +16 -14
- package/dist/esm/vega-combo-box.entry.js +20 -18
- package/dist/esm/vega-counter-badge.entry.js +4 -3
- package/dist/esm/vega-date-picker_2.entry.js +67 -29
- package/dist/esm/{vega-dialog-controller-5b23f68c.js → vega-dialog-controller-34eb8967.js} +2 -2
- package/dist/esm/vega-dialog_2.entry.js +20 -18
- package/dist/esm/vega-divider.entry.js +8 -7
- package/dist/esm/vega-dropdown_5.entry.js +27 -25
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-error.entry.js +5 -4
- package/dist/esm/vega-field-label.entry.js +11 -9
- package/dist/esm/vega-file-uploader.entry.js +19 -17
- package/dist/esm/vega-flex.entry.js +11 -10
- package/dist/esm/vega-font.entry.js +9 -8
- package/dist/esm/vega-form.entry.js +28 -21
- package/dist/esm/vega-grid.entry.js +8 -7
- package/dist/esm/vega-hint.entry.js +4 -3
- package/dist/esm/vega-icon.entry.js +11 -10
- package/dist/esm/vega-image-uploader.entry.js +21 -19
- package/dist/esm/vega-input-credit-card.entry.js +20 -18
- package/dist/esm/vega-input-numeric.entry.js +21 -19
- package/dist/esm/vega-input-phone-number.entry.js +70 -22
- package/dist/esm/vega-input-range.entry.js +19 -17
- package/dist/esm/vega-input-select.entry.js +22 -20
- package/dist/esm/vega-input.entry.js +18 -16
- package/dist/esm/vega-item-toggle.entry.js +12 -10
- package/dist/esm/vega-left-nav_5.entry.js +24 -22
- package/dist/esm/vega-line-chart.entry.js +4 -3
- package/dist/esm/vega-loader-wrapper_2.entry.js +7 -6
- package/dist/esm/vega-page-notification_2.entry.js +8 -6
- package/dist/esm/vega-pagination.entry.js +21 -16
- package/dist/esm/vega-pie-chart.entry.js +4 -3
- package/dist/esm/vega-popover_2.entry.js +18 -16
- package/dist/esm/vega-progress-tracker.entry.js +12 -10
- package/dist/esm/vega-radio_2.entry.js +21 -19
- package/dist/esm/vega-rich-text-content.entry.js +317 -17
- package/dist/esm/vega-rich-text-editor_4.entry.js +704 -441
- package/dist/esm/vega-section-title.entry.js +4 -3
- package/dist/esm/vega-segment-control.entry.js +12 -10
- package/dist/esm/vega-selection-chip_2.entry.js +21 -19
- package/dist/esm/vega-selection-tile_2.entry.js +21 -19
- package/dist/esm/vega-sidenav_3.entry.js +19 -17
- package/dist/esm/vega-signature-capture.entry.js +22 -20
- package/dist/esm/{block-annotation.abstract-b0554e2b.js → vega-skeleton-loader-controller-0aaaf1fa.js} +8 -21
- package/dist/esm/vega-skeleton.entry.js +4 -3
- package/dist/esm/vega-slot-container.entry.js +3 -2
- package/dist/esm/vega-stepper.entry.js +18 -16
- package/dist/esm/vega-tab-group_2.entry.js +49 -36
- package/dist/esm/vega-table_8.entry.js +26 -24
- package/dist/esm/vega-text.entry.js +5 -4
- package/dist/esm/vega-textarea.entry.js +18 -16
- package/dist/esm/vega-time-picker_2.entry.js +25 -23
- package/dist/esm/vega-toggle-switch.entry.js +16 -14
- package/dist/esm/vega-tooltip_2.entry.js +13 -12
- package/dist/esm/vega.js +20 -20
- package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +3 -0
- package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +9 -0
- package/dist/types/components/vega-form/types.d.ts +1 -0
- package/dist/types/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.d.ts +19 -0
- package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +9 -0
- package/dist/types/components/vega-pagination/vega-pagination.d.ts +1 -0
- package/dist/types/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.d.ts +2 -0
- package/dist/types/components/vega-rich-text-editor/dto/annotations/bold-annotation.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/dto/annotations/code-annotation.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/dto/annotations/horizontal-alignment-annotation.d.ts +0 -14
- package/dist/types/components/vega-rich-text-editor/dto/annotations/image-annotation.d.ts +0 -8
- package/dist/types/components/vega-rich-text-editor/dto/annotations/indent-annotation.d.ts +0 -14
- package/dist/types/components/vega-rich-text-editor/dto/annotations/italic-annotation.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/dto/annotations/link-annotation.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/dto/annotations/link-group-annotation.d.ts +0 -6
- package/dist/types/components/vega-rich-text-editor/dto/annotations/strikethrough-annotation.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/dto/annotations/text-color-annotation.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-annotation.d.ts +0 -14
- package/dist/types/components/vega-rich-text-editor/dto/annotations/underline-annotation.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +2 -23
- package/dist/types/components/vega-rich-text-editor/dto/blocks/image-block.d.ts +68 -5
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +45 -4
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +68 -4
- package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +110 -6
- package/dist/types/components/vega-rich-text-editor/dto/nodes/image-node.d.ts +21 -6
- package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +1 -14
- package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +86 -4
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-renderer.abstract.d.ts +28 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.d.ts +10 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.d.ts +10 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.d.ts +9 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.d.ts +10 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/node-renderer.abstract.d.ts +21 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +9 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/block-to-rte-block-strategy.abstract.d.ts +111 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.d.ts +32 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy-processor.d.ts +19 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy.abstract.d.ts +32 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/img-to-rte-image-block-strategy.d.ts +31 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/inline-block-to-rte-text-block-strategy.d.ts +38 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/li-to-rte-list-item-block-strategy.d.ts +35 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ol-to-rte-list-block-strategy.d.ts +36 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/span-img-to-rte-image-block-strategy.d.ts +31 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ul-not-li-child-to-rte-list-item-block.d.ts +31 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ul-to-rte-list-block-strategy.d.ts +36 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/vega-image-to-rte-image-block-strategy.d.ts +31 -0
- package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-page-index-controller.d.ts +6 -6
- package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-selected-target-controller.d.ts +1 -0
- package/dist/types/components.d.ts +21 -0
- package/dist/types/helpers/slimmers/field-error-ui-controller-slimmer.d.ts +2 -7
- package/dist/types/helpers/slimmers/form-field-message-translator.d.ts +12 -0
- package/dist/types/helpers/validator/form-field-controller.d.ts +5 -2
- package/dist/types/helpers/validator/validation-rule-handler/form-field-validation-rule-handler-chain.d.ts +2 -2
- package/dist/types/helpers/validator/validator.d.ts +1 -1
- package/dist/types/types/components.type.d.ts +1 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/p-000b3ab0.js +1 -0
- package/dist/vega/p-00738ae9.entry.js +1 -0
- package/dist/vega/p-01d0dbe6.entry.js +1 -0
- package/dist/vega/p-032df16f.js +1 -0
- package/dist/vega/p-05f5e22b.entry.js +1 -0
- package/dist/vega/p-0634f06b.entry.js +1 -0
- package/dist/vega/p-0945a58d.entry.js +1 -0
- package/dist/vega/p-09c5de7f.entry.js +1 -0
- package/dist/vega/p-0a8b91f5.entry.js +1 -0
- package/dist/vega/{p-f763e2eb.js → p-0af4bda9.js} +1 -1
- package/dist/vega/p-0be711b6.entry.js +1 -0
- package/dist/vega/p-0c2eb135.entry.js +1 -0
- package/dist/vega/p-0ee10fd7.js +1 -0
- package/dist/vega/p-12ad8ada.entry.js +1 -0
- package/dist/vega/p-14514252.entry.js +1 -0
- package/dist/vega/{p-11a19ca0.js → p-149d2801.js} +1 -1
- package/dist/vega/p-14f85e30.entry.js +1 -0
- package/dist/vega/p-193d2c51.entry.js +1 -0
- package/dist/vega/p-1a64716b.entry.js +1 -0
- package/dist/vega/p-1c298d5a.js +2 -0
- package/dist/vega/p-1d805cc0.entry.js +1 -0
- package/dist/vega/p-211df22a.entry.js +1 -0
- package/dist/vega/p-21d59593.entry.js +1 -0
- package/dist/vega/p-2205ee4c.js +1 -0
- package/dist/vega/p-29b09aad.js +1 -0
- package/dist/vega/p-2bbcb1ca.entry.js +1 -0
- package/dist/vega/{p-443ad3b3.js → p-2d0d575f.js} +1 -1
- package/dist/vega/{p-368d0060.js → p-2fbda931.js} +1 -1
- package/dist/vega/p-3126edd6.entry.js +1 -0
- package/dist/vega/p-33b62194.js +1 -0
- package/dist/vega/p-42df8a42.js +1 -0
- package/dist/vega/{p-8f93242a.js → p-4387d550.js} +1 -1
- package/dist/vega/p-45dd4698.entry.js +1 -0
- package/dist/vega/p-4873be94.entry.js +1 -0
- package/dist/vega/{p-3b4bde3e.js → p-4b500240.js} +1 -1
- package/dist/vega/{p-e0b25eaf.js → p-4f0b56fc.js} +1 -1
- package/dist/vega/p-5298fd92.entry.js +1 -0
- package/dist/vega/p-5760619c.entry.js +1 -0
- package/dist/vega/p-5915634b.js +1 -0
- package/dist/vega/p-5dd923e0.entry.js +1 -0
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-70151c27.js → p-5f589974.js} +1 -1
- package/dist/vega/p-61116634.entry.js +1 -0
- package/dist/vega/p-618b35e4.entry.js +1 -0
- package/dist/vega/p-625771d7.entry.js +1 -0
- package/dist/vega/{p-62774231.js → p-6705c68a.js} +1 -1
- package/dist/vega/p-68f0aa72.entry.js +1 -0
- package/dist/vega/{p-59bdf9b8.js → p-6a334573.js} +1 -1
- package/dist/vega/p-6a3989dd.js +1 -0
- package/dist/vega/{p-0e0c47ad.js → p-6a5a5c7b.js} +1 -1
- package/dist/vega/p-6c09b79a.entry.js +1 -0
- package/dist/vega/p-6d23c08b.entry.js +1 -0
- package/dist/vega/p-6e1ab235.js +1 -0
- package/dist/vega/p-71eeb279.entry.js +1 -0
- package/dist/vega/p-7258cb9c.entry.js +1 -0
- package/dist/vega/p-72eee5e2.js +1 -0
- package/dist/vega/{p-eac38d87.js → p-781fd6e0.js} +1 -1
- package/dist/vega/{p-1995e98e.js → p-79ec5d69.js} +1 -1
- package/dist/vega/p-7ecbf764.entry.js +1 -0
- package/dist/vega/{p-3f1b542a.js → p-81dbada7.js} +1 -1
- package/dist/vega/{p-a6a7d0c9.js → p-8284a445.js} +1 -1
- package/dist/vega/p-84f2f342.js +1 -0
- package/dist/vega/p-85365f8b.js +1 -0
- package/dist/vega/p-8ab356e8.entry.js +1 -0
- package/dist/vega/p-8ba43640.entry.js +1 -0
- package/dist/vega/p-8d69f9ef.entry.js +1 -0
- package/dist/vega/p-8fc170d9.entry.js +1 -0
- package/dist/vega/p-91aa058f.entry.js +1 -0
- package/dist/vega/{p-8c26227e.js → p-926596cc.js} +1 -1
- package/dist/vega/p-92707b74.entry.js +1 -0
- package/dist/vega/p-97453cd8.entry.js +1 -0
- package/dist/vega/{p-843a0c1c.js → p-987fbbd0.js} +1 -1
- package/dist/vega/{p-296cc56b.js → p-9b797118.js} +1 -1
- package/dist/vega/p-a01f149d.entry.js +1 -0
- package/dist/vega/{p-3953c705.js → p-af7a3154.js} +1 -1
- package/dist/vega/p-b0e824df.entry.js +13 -0
- package/dist/vega/p-b2bca332.entry.js +1 -0
- package/dist/vega/p-b57792b7.js +1 -0
- package/dist/vega/p-b5990090.js +1 -0
- package/dist/vega/p-b6815874.js +1 -0
- package/dist/vega/p-b688a71b.js +1 -0
- package/dist/vega/p-b6f09c98.entry.js +1 -0
- package/dist/vega/p-b9a09a76.js +1 -0
- package/dist/vega/p-bcb10ae3.entry.js +1 -0
- package/dist/vega/{p-39836361.js → p-be12fa36.js} +1 -1
- package/dist/vega/p-c016c3b2.entry.js +1 -0
- package/dist/vega/p-c02f650e.entry.js +1 -0
- package/dist/vega/p-c2b276f7.entry.js +1 -0
- package/dist/vega/p-c51a3e3c.entry.js +1 -0
- package/dist/vega/p-c56965fc.entry.js +1 -0
- package/dist/vega/p-c6f544fe.entry.js +1 -0
- package/dist/vega/p-c88acd87.entry.js +1 -0
- package/dist/vega/p-cb8f8458.entry.js +1 -0
- package/dist/vega/p-cda26bdf.entry.js +1 -0
- package/dist/vega/p-d09d153f.entry.js +1 -0
- package/dist/vega/p-d994874a.entry.js +1 -0
- package/dist/vega/p-dcdac4d0.entry.js +1 -0
- package/dist/vega/p-de25326f.js +1 -0
- package/dist/vega/{p-e1e1fcf0.js → p-de664bdd.js} +1 -1
- package/dist/vega/p-e04d4ba3.entry.js +1 -0
- package/dist/vega/p-e093b2c5.entry.js +1 -0
- package/dist/vega/p-e480babd.entry.js +1 -0
- package/dist/vega/p-e8f540d8.js +1 -0
- package/dist/vega/p-eaf6c3d8.entry.js +1 -0
- package/dist/vega/p-efbea85a.entry.js +1 -0
- package/dist/vega/p-f2cc36ae.entry.js +1 -0
- package/dist/vega/{p-81ead59a.js → p-f31bb1fd.js} +1 -1
- package/dist/vega/p-f48711fa.entry.js +1 -0
- package/dist/vega/p-f690539e.entry.js +1 -0
- package/dist/vega/p-f6b89936.entry.js +1 -0
- package/dist/vega/p-f84fd31c.js +1 -0
- package/dist/vega/p-fc6ea557.entry.js +1 -0
- package/dist/vega/{p-acf7f903.js → p-ff4bafa3.js} +1 -1
- package/dist/vega/p-ff50c204.entry.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +3 -2
- package/dist/cjs/text-node-0d12da5a.js +0 -1077
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/element-to-dto-handler.abstract.js +0 -135
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/element-to-dto-processor.js +0 -74
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/image-to-dto-handler.js +0 -47
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/inline-block-to-dto-handler.js +0 -39
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/link-to-dto-handler.js +0 -50
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/list-item-to-dto-handler.js +0 -41
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/list-to-dto-handler.js +0 -57
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/paragraph-to-dto-handler.js +0 -56
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/text-block-to-dto-handler.js +0 -77
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/text-to-dto-handler.js +0 -44
- package/dist/esm/text-node-6f7d736c.js +0 -1055
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/element-to-dto-handler.abstract.d.ts +0 -67
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/element-to-dto-processor.d.ts +0 -29
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/image-to-dto-handler.d.ts +0 -37
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/inline-block-to-dto-handler.d.ts +0 -35
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/link-to-dto-handler.d.ts +0 -37
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/list-item-to-dto-handler.d.ts +0 -36
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/list-to-dto-handler.d.ts +0 -39
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/paragraph-to-dto-handler.d.ts +0 -39
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/text-block-to-dto-handler.d.ts +0 -46
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-handler/text-to-dto-handler.d.ts +0 -37
- package/dist/vega/p-034e6348.entry.js +0 -1
- package/dist/vega/p-0cd2b50f.entry.js +0 -1
- package/dist/vega/p-109a00cf.entry.js +0 -1
- package/dist/vega/p-11cb477b.js +0 -1
- package/dist/vega/p-1564cc4d.entry.js +0 -1
- package/dist/vega/p-18886765.entry.js +0 -1
- package/dist/vega/p-19b26168.entry.js +0 -1
- package/dist/vega/p-21992602.entry.js +0 -1
- package/dist/vega/p-22563151.entry.js +0 -1
- package/dist/vega/p-23795da1.entry.js +0 -1
- package/dist/vega/p-29277e41.entry.js +0 -1
- package/dist/vega/p-2a7e9422.entry.js +0 -1
- package/dist/vega/p-2ca6d977.entry.js +0 -1
- package/dist/vega/p-2e419309.entry.js +0 -1
- package/dist/vega/p-2fc3af2f.js +0 -1
- package/dist/vega/p-3039bef8.js +0 -1
- package/dist/vega/p-315667f1.js +0 -1
- package/dist/vega/p-34939c97.entry.js +0 -1
- package/dist/vega/p-3897bb2d.entry.js +0 -1
- package/dist/vega/p-390c5236.entry.js +0 -1
- package/dist/vega/p-3ce31dc3.js +0 -1
- package/dist/vega/p-452e284a.js +0 -1
- package/dist/vega/p-49f4a666.js +0 -1
- package/dist/vega/p-4c41dd64.js +0 -1
- package/dist/vega/p-55beac7f.entry.js +0 -1
- package/dist/vega/p-57405834.entry.js +0 -1
- package/dist/vega/p-589e6041.entry.js +0 -1
- package/dist/vega/p-5e95402a.entry.js +0 -1
- package/dist/vega/p-5eee21b4.entry.js +0 -1
- package/dist/vega/p-62cea2e7.entry.js +0 -1
- package/dist/vega/p-65b79fd7.js +0 -1
- package/dist/vega/p-6741e2b9.entry.js +0 -1
- package/dist/vega/p-6a084fe1.entry.js +0 -1
- package/dist/vega/p-6b286226.entry.js +0 -1
- package/dist/vega/p-6b722905.entry.js +0 -1
- package/dist/vega/p-6e4b2752.entry.js +0 -1
- package/dist/vega/p-7209d03b.js +0 -1
- package/dist/vega/p-728b029a.entry.js +0 -1
- package/dist/vega/p-76fc408e.entry.js +0 -1
- package/dist/vega/p-7a9f453e.entry.js +0 -1
- package/dist/vega/p-80ccd894.entry.js +0 -1
- package/dist/vega/p-84c597c8.entry.js +0 -1
- package/dist/vega/p-8b78c6a3.entry.js +0 -1
- package/dist/vega/p-8be45a45.entry.js +0 -1
- package/dist/vega/p-8d7b45f7.entry.js +0 -1
- package/dist/vega/p-8e17b9dd.entry.js +0 -1
- package/dist/vega/p-925a2137.js +0 -1
- package/dist/vega/p-92f88033.entry.js +0 -1
- package/dist/vega/p-94de7a02.entry.js +0 -1
- package/dist/vega/p-9968e71d.entry.js +0 -1
- package/dist/vega/p-9c1eeff2.js +0 -2
- package/dist/vega/p-9d1b9e70.entry.js +0 -1
- package/dist/vega/p-a5ffe912.js +0 -1
- package/dist/vega/p-a6104aa7.js +0 -1
- package/dist/vega/p-a6169ad6.entry.js +0 -1
- package/dist/vega/p-a8bf559a.js +0 -1
- package/dist/vega/p-afec17ad.entry.js +0 -1
- package/dist/vega/p-b3f9cc3a.entry.js +0 -13
- package/dist/vega/p-b693c1ac.entry.js +0 -1
- package/dist/vega/p-b6af0fc1.entry.js +0 -1
- package/dist/vega/p-b9e2add4.entry.js +0 -1
- package/dist/vega/p-bd894860.entry.js +0 -1
- package/dist/vega/p-c0d6a587.entry.js +0 -1
- package/dist/vega/p-c1d97d12.entry.js +0 -1
- package/dist/vega/p-c26e6820.entry.js +0 -1
- package/dist/vega/p-c34487e1.entry.js +0 -1
- package/dist/vega/p-c532b132.entry.js +0 -1
- package/dist/vega/p-ca2fb711.js +0 -1
- package/dist/vega/p-cebf93f1.entry.js +0 -1
- package/dist/vega/p-cfdc148a.entry.js +0 -1
- package/dist/vega/p-d0351d71.entry.js +0 -1
- package/dist/vega/p-d2ab6096.entry.js +0 -1
- package/dist/vega/p-d302f052.entry.js +0 -1
- package/dist/vega/p-d35643c5.entry.js +0 -1
- package/dist/vega/p-d400a1d9.entry.js +0 -1
- package/dist/vega/p-d6732a72.entry.js +0 -1
- package/dist/vega/p-d720b06a.entry.js +0 -1
- package/dist/vega/p-d987e404.entry.js +0 -1
- package/dist/vega/p-d9b86108.entry.js +0 -1
- package/dist/vega/p-e27e115d.entry.js +0 -1
- package/dist/vega/p-e43c2a27.js +0 -1
- package/dist/vega/p-e65c8ac7.entry.js +0 -1
- package/dist/vega/p-e79057cc.js +0 -1
- package/dist/vega/p-e89e9769.entry.js +0 -1
- package/dist/vega/p-ecd64c7f.entry.js +0 -1
- package/dist/vega/p-f5b2e72a.entry.js +0 -1
- package/dist/vega/p-f6af3749.js +0 -1
- package/dist/vega/p-fc622a75.js +0 -1
|
@@ -2,52 +2,54 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
5
|
+
const index = require('./index-09acd3c9.js');
|
|
6
|
+
const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
|
|
7
|
+
const componentUsageRuntimeMetrics = require('./component-usage-runtime-metrics-dcb32c24.js');
|
|
8
|
+
const component = require('./component-73a88c4e.js');
|
|
8
9
|
const accessibility = require('./accessibility-bfa227f6.js');
|
|
9
|
-
const changeManager = require('./change-manager-
|
|
10
|
-
const
|
|
10
|
+
const changeManager = require('./change-manager-a297e4d2.js');
|
|
11
|
+
const domNodeSubjectFactory = require('./dom-node-subject-factory-3ec114b8.js');
|
|
11
12
|
const vegaInternalEventId = require('./vega-internal-event-id-85b68849.js');
|
|
12
|
-
const
|
|
13
|
-
const internalIconManager = require('./internal-icon-manager-
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const subStateNotifySlimmer = require('./sub-state-notify-slimmer-73201c53.js');
|
|
13
|
+
const imageAnnotationAction = require('./image-annotation-action-d3e1699c.js');
|
|
14
|
+
const internalIconManager = require('./internal-icon-manager-5ccb9443.js');
|
|
15
|
+
const listBlock = require('./list-block-91116257.js');
|
|
16
|
+
const nodeAnnotation_abstract = require('./node-annotation.abstract-e5d3a859.js');
|
|
17
|
+
const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-5f0eae19.js');
|
|
18
|
+
const createPublicApiRuntimeMetricsSlimmer = require('./create-public-api-runtime-metrics-slimmer-54c3f73b.js');
|
|
19
|
+
const formFieldControllerSlimmer = require('./form-field-controller-slimmer-dbb321ad.js');
|
|
20
|
+
const eventEmitSlimmer = require('./event-emit-slimmer-9c223f73.js');
|
|
21
|
+
const subStateNotifySlimmer = require('./sub-state-notify-slimmer-c2e08e06.js');
|
|
22
22
|
const timer = require('./timer-5f33058b.js');
|
|
23
23
|
const synchronizeTaskQueue = require('./synchronize-task-queue-1ee80e94.js');
|
|
24
|
-
const ui = require('./ui-
|
|
24
|
+
const ui = require('./ui-5fd9b267.js');
|
|
25
25
|
const staticSubjectTitle = require('./static-subject-title-d66b88fb.js');
|
|
26
|
+
const contentState = require('./content-state-3e4467a3.js');
|
|
26
27
|
require('./vega-env-manager-23b8b23c.js');
|
|
27
|
-
require('./
|
|
28
|
-
require('./
|
|
29
|
-
require('./
|
|
30
|
-
require('./
|
|
31
|
-
|
|
28
|
+
require('./vega-skeleton-loader-controller-7dac484f.js');
|
|
29
|
+
require('./feature-flag-controller-7b22e598.js');
|
|
30
|
+
require('./vega-dialog-controller-fe610705.js');
|
|
31
|
+
require('./icon-manager-edc2400b.js');
|
|
32
|
+
require('./translation-b9be41e0.js');
|
|
33
|
+
const childNodesEventPreventSlimmer = require('./child-nodes-event-prevent-slimmer-96c3c4ae.js');
|
|
32
34
|
const chevronDown = require('./chevron-down-9847bf78.js');
|
|
33
35
|
const trashCan = require('./trash-can-46a5e19a.js');
|
|
34
|
-
const remoteInvocationRegistry = require('./remote-invocation-registry-
|
|
36
|
+
const remoteInvocationRegistry = require('./remote-invocation-registry-ff9af278.js');
|
|
35
37
|
require('./type-guard-4ba85fdc.js');
|
|
36
38
|
require('./breakpoints-ebde4837.js');
|
|
37
39
|
require('./ui-32e69595.js');
|
|
38
40
|
require('./regex-c1f70fd4.js');
|
|
39
41
|
require('./typography-4560e7f1.js');
|
|
40
42
|
require('./_commonjsHelpers-537d719a.js');
|
|
41
|
-
require('./
|
|
42
|
-
require('./number-4816603d.js');
|
|
43
|
-
require('./dynamic-slimmer-dc30600a.js');
|
|
44
|
-
require('./page-resize-observer-slimmer-e54fa9d4.js');
|
|
45
|
-
require('./breakpoints-17d6c4c7.js');
|
|
46
|
-
require('./internal-vega-event-manager-d7643ec6.js');
|
|
43
|
+
require('./dynamic-slimmer-f31fdfd7.js');
|
|
47
44
|
require('./string-21427167.js');
|
|
48
|
-
require('./
|
|
45
|
+
require('./page-resize-observer-slimmer-bb1eaebe.js');
|
|
46
|
+
require('./breakpoints-17d6c4c7.js');
|
|
47
|
+
require('./mutation-observer-slimmer-895b3d3e.js');
|
|
49
48
|
require('./mutation-observer-filters-e5a7f85a.js');
|
|
50
49
|
require('./array-5adef7b2.js');
|
|
50
|
+
require('./number-4816603d.js');
|
|
51
|
+
require('./internal-vega-event-manager-e5e4bcf4.js');
|
|
52
|
+
require('./internal-vega-z-index-manager-f03ddb37.js');
|
|
51
53
|
require('./index-8b247c17.js');
|
|
52
54
|
|
|
53
55
|
var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -60,26 +62,26 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
60
62
|
constructor() {
|
|
61
63
|
super(...arguments);
|
|
62
64
|
this.renderHintMessage = () => {
|
|
63
|
-
return
|
|
65
|
+
return index.h("vega-text", null, this.hint);
|
|
64
66
|
};
|
|
65
67
|
this.renderTextContent = () => {
|
|
66
|
-
return (
|
|
68
|
+
return (index.h("div", { class: {
|
|
67
69
|
'rich-text-editor-container': true,
|
|
68
70
|
'disabled': this.disabled,
|
|
69
71
|
}, style: { minHeight: `${this.rows * 24}px` }, onClick: this.richTextContentFocus, role: "textbox", tabIndex: !this.disabled ? -1 : 0, onKeyDown: accessibility.createEnterKeyHandlerToTriggerClick(), ref: (node) => (this.richTextContainerRef = node) },
|
|
70
|
-
|
|
72
|
+
index.h("vega-rich-text-content", { ref: (ref) => (this.richTextContentRef = ref), content: this.value }),
|
|
71
73
|
this.renderCharacterCounter()));
|
|
72
74
|
};
|
|
73
75
|
this.renderCharacterCounter = () => {
|
|
74
|
-
return (
|
|
76
|
+
return (index.h("div", { class: {
|
|
75
77
|
'text-editor-counter': true,
|
|
76
78
|
'counter-exceed-max-length': false,
|
|
77
79
|
}, style: { display: 'none' } },
|
|
78
|
-
|
|
79
|
-
|
|
80
|
+
index.h("span", null, "0"),
|
|
81
|
+
index.h("span", null, "/100")));
|
|
80
82
|
};
|
|
81
83
|
this.renderErrorMessage = () => {
|
|
82
|
-
return
|
|
84
|
+
return index.h("div", { class: "vega-error vega-hidden" });
|
|
83
85
|
};
|
|
84
86
|
this.richTextContentFocus = () => {
|
|
85
87
|
void this.richTextContentRef.vegaFocus();
|
|
@@ -89,7 +91,7 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
89
91
|
* Component lifecycle - [componentDidRender]{@link VegaRichTextEditor.componentDidRender}
|
|
90
92
|
*/
|
|
91
93
|
componentDidRender() {
|
|
92
|
-
changeManager.ChangeManager.notify(
|
|
94
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalComponentDidRender), {});
|
|
93
95
|
}
|
|
94
96
|
/**
|
|
95
97
|
* Returns the HTMLElement reference of the rich text container.
|
|
@@ -126,10 +128,10 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
render() {
|
|
129
|
-
return
|
|
131
|
+
return index.h(index.Host, null, this.renderRichTextEditor());
|
|
130
132
|
}
|
|
131
133
|
renderRichTextEditor() {
|
|
132
|
-
return (
|
|
134
|
+
return (index.h("vega-flex", { direction: "col", gap: "0", ref: (flex) => (this.richTextWrapperRef = flex) },
|
|
133
135
|
this.renderLabel(),
|
|
134
136
|
this.hint && this.renderHintMessage(),
|
|
135
137
|
this.toolbarRenderer.render(),
|
|
@@ -137,7 +139,7 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
137
139
|
this.renderErrorMessage()));
|
|
138
140
|
}
|
|
139
141
|
renderLabel() {
|
|
140
|
-
return (this.label && (
|
|
142
|
+
return (this.label && (index.h("vega-field-label", { onClick: this.richTextContentFocus, isFieldRequired: this.required, disabled: this.disabled, label: this.label })));
|
|
141
143
|
}
|
|
142
144
|
}
|
|
143
145
|
__decorate$y([
|
|
@@ -214,8 +216,8 @@ class ToolbarRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
214
216
|
};
|
|
215
217
|
}
|
|
216
218
|
render() {
|
|
217
|
-
return (
|
|
218
|
-
return (
|
|
219
|
+
return (index.h("vega-flex", { gap: "size-8", alignItems: "center", flexWrap: "wrap" }, this.toolbarItems.map((group) => {
|
|
220
|
+
return (index.h("div", { class: "toolbar-btn-group" }, group.map((item) => {
|
|
219
221
|
return this.getToolbarBtnRenderer(item).render();
|
|
220
222
|
})));
|
|
221
223
|
})));
|
|
@@ -277,7 +279,7 @@ var __decorate$w = (undefined && undefined.__decorate) || function (decorators,
|
|
|
277
279
|
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;
|
|
278
280
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
279
281
|
};
|
|
280
|
-
class BoldToolbarButtonSlimmer extends
|
|
282
|
+
class BoldToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
281
283
|
constructor() {
|
|
282
284
|
super({
|
|
283
285
|
icon: 'bold',
|
|
@@ -290,22 +292,22 @@ class BoldToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarButt
|
|
|
290
292
|
const bold = this.isSelected();
|
|
291
293
|
this.selectionController
|
|
292
294
|
.getSelectedNodes()
|
|
293
|
-
.filter((node) => node instanceof
|
|
294
|
-
.forEach((node) => node.apply(new
|
|
295
|
+
.filter((node) => node instanceof listBlock.RTETextNode)
|
|
296
|
+
.forEach((node) => node.apply(new listBlock.BoldAnnotationAction(!bold)));
|
|
295
297
|
}
|
|
296
298
|
isSelected() {
|
|
297
299
|
const selectedNodes = this.selectionController
|
|
298
300
|
.getSelectedNodes()
|
|
299
|
-
.filter((node) => node instanceof
|
|
301
|
+
.filter((node) => node instanceof listBlock.RTETextNode);
|
|
300
302
|
return (selectedNodes.length > 0 &&
|
|
301
|
-
selectedNodes.every((node) => { var _a; return (_a = node.getAnnotationByType(
|
|
303
|
+
selectedNodes.every((node) => { var _a; return (_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.BOLD)) === null || _a === void 0 ? void 0 : _a.bold; }));
|
|
302
304
|
}
|
|
303
305
|
isDisabled() {
|
|
304
306
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
305
307
|
return selectedNodes.some((node) => {
|
|
306
308
|
var _a;
|
|
307
|
-
return ((_a = node.getAnnotationByType(
|
|
308
|
-
node.getAnnotationByType(
|
|
309
|
+
return ((_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
|
|
310
|
+
node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.IMAGE);
|
|
309
311
|
});
|
|
310
312
|
}
|
|
311
313
|
}
|
|
@@ -323,7 +325,7 @@ const italic = {
|
|
|
323
325
|
/**
|
|
324
326
|
* Action to toggle the italic annotation
|
|
325
327
|
*/
|
|
326
|
-
class ItalicAnnotationAction extends
|
|
328
|
+
class ItalicAnnotationAction extends listBlock.TextSplittableAction {
|
|
327
329
|
constructor(italic) {
|
|
328
330
|
super();
|
|
329
331
|
this.isFlushable = true;
|
|
@@ -335,7 +337,7 @@ class ItalicAnnotationAction extends textNode.TextSplittableAction {
|
|
|
335
337
|
* @returns {ItalicAnnotation} The annotation
|
|
336
338
|
*/
|
|
337
339
|
toAnnotation() {
|
|
338
|
-
return new
|
|
340
|
+
return new listBlock.ItalicAnnotation(this.italic);
|
|
339
341
|
}
|
|
340
342
|
}
|
|
341
343
|
|
|
@@ -345,7 +347,7 @@ var __decorate$v = (undefined && undefined.__decorate) || function (decorators,
|
|
|
345
347
|
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;
|
|
346
348
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
347
349
|
};
|
|
348
|
-
class ItalicToolbarButtonSlimmer extends
|
|
350
|
+
class ItalicToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
349
351
|
constructor() {
|
|
350
352
|
super({
|
|
351
353
|
icon: 'italic',
|
|
@@ -355,23 +357,23 @@ class ItalicToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarBu
|
|
|
355
357
|
isSelected() {
|
|
356
358
|
const selectedNodes = this.selectionController
|
|
357
359
|
.getSelectedNodes()
|
|
358
|
-
.filter((node) => node instanceof
|
|
360
|
+
.filter((node) => node instanceof listBlock.RTETextNode);
|
|
359
361
|
return (selectedNodes.length > 0 &&
|
|
360
|
-
selectedNodes.every((node) => { var _a; return (_a = node.getAnnotationByType(
|
|
362
|
+
selectedNodes.every((node) => { var _a; return (_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.ITALIC)) === null || _a === void 0 ? void 0 : _a.italic; }));
|
|
361
363
|
}
|
|
362
364
|
onClick() {
|
|
363
365
|
const italic = this.isSelected();
|
|
364
366
|
this.selectionController
|
|
365
367
|
.getSelectedNodes()
|
|
366
|
-
.filter((node) => node instanceof
|
|
368
|
+
.filter((node) => node instanceof listBlock.RTETextNode)
|
|
367
369
|
.forEach((node) => node.apply(new ItalicAnnotationAction(!italic)));
|
|
368
370
|
}
|
|
369
371
|
isDisabled() {
|
|
370
372
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
371
373
|
return selectedNodes.some((node) => {
|
|
372
374
|
var _a;
|
|
373
|
-
return ((_a = node.getAnnotationByType(
|
|
374
|
-
node.getAnnotationByType(
|
|
375
|
+
return ((_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
|
|
376
|
+
node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.IMAGE);
|
|
375
377
|
});
|
|
376
378
|
}
|
|
377
379
|
}
|
|
@@ -389,7 +391,7 @@ const underline = {
|
|
|
389
391
|
/**
|
|
390
392
|
* Action to toggle the underline annotation
|
|
391
393
|
*/
|
|
392
|
-
class UnderlineAnnotationAction extends
|
|
394
|
+
class UnderlineAnnotationAction extends listBlock.TextSplittableAction {
|
|
393
395
|
constructor(underline) {
|
|
394
396
|
super();
|
|
395
397
|
this.isFlushable = true;
|
|
@@ -401,7 +403,7 @@ class UnderlineAnnotationAction extends textNode.TextSplittableAction {
|
|
|
401
403
|
* @returns {UnderlineAnnotation} the annotation
|
|
402
404
|
*/
|
|
403
405
|
toAnnotation() {
|
|
404
|
-
return new
|
|
406
|
+
return new listBlock.UnderlineAnnotation(this.underline);
|
|
405
407
|
}
|
|
406
408
|
}
|
|
407
409
|
|
|
@@ -411,7 +413,7 @@ var __decorate$u = (undefined && undefined.__decorate) || function (decorators,
|
|
|
411
413
|
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;
|
|
412
414
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
413
415
|
};
|
|
414
|
-
class UnderlineToolbarButtonSlimmer extends
|
|
416
|
+
class UnderlineToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
415
417
|
constructor() {
|
|
416
418
|
super({
|
|
417
419
|
icon: 'underline',
|
|
@@ -421,26 +423,26 @@ class UnderlineToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Toolba
|
|
|
421
423
|
isSelected() {
|
|
422
424
|
const selectedNodes = this.selectionController
|
|
423
425
|
.getSelectedNodes()
|
|
424
|
-
.filter((node) => node instanceof
|
|
426
|
+
.filter((node) => node instanceof listBlock.RTETextNode);
|
|
425
427
|
return (selectedNodes.length > 0 &&
|
|
426
428
|
selectedNodes.every((node) => {
|
|
427
429
|
var _a;
|
|
428
|
-
return (_a = node.getAnnotationByType(
|
|
430
|
+
return (_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.UNDERLINE)) === null || _a === void 0 ? void 0 : _a.underline;
|
|
429
431
|
}));
|
|
430
432
|
}
|
|
431
433
|
onClick() {
|
|
432
434
|
const selected = this.isSelected();
|
|
433
435
|
this.selectionController
|
|
434
436
|
.getSelectedNodes()
|
|
435
|
-
.filter((node) => node instanceof
|
|
437
|
+
.filter((node) => node instanceof listBlock.RTETextNode)
|
|
436
438
|
.forEach((node) => node.apply(new UnderlineAnnotationAction(!selected)));
|
|
437
439
|
}
|
|
438
440
|
isDisabled() {
|
|
439
441
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
440
442
|
return selectedNodes.some((node) => {
|
|
441
443
|
var _a;
|
|
442
|
-
return ((_a = node.getAnnotationByType(
|
|
443
|
-
node.getAnnotationByType(
|
|
444
|
+
return ((_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
|
|
445
|
+
node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.IMAGE);
|
|
444
446
|
});
|
|
445
447
|
}
|
|
446
448
|
}
|
|
@@ -461,7 +463,7 @@ var __decorate$t = (undefined && undefined.__decorate) || function (decorators,
|
|
|
461
463
|
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;
|
|
462
464
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
463
465
|
};
|
|
464
|
-
class TextStylesToolbarButtonSlimmer extends
|
|
466
|
+
class TextStylesToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
465
467
|
constructor() {
|
|
466
468
|
super({
|
|
467
469
|
icon: 'text-size',
|
|
@@ -472,38 +474,38 @@ class TextStylesToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Toolb
|
|
|
472
474
|
const boldByDefault = TextStylesToolbarButtonSlimmer.items.find((item) => item.key === selectedType).bold;
|
|
473
475
|
const selectedTextBlocks = this.selectionController
|
|
474
476
|
.getSelectedBlocks()
|
|
475
|
-
.filter((block) => block instanceof
|
|
477
|
+
.filter((block) => block instanceof listBlock.RTETextBlock);
|
|
476
478
|
if (selectedTextBlocks.length > 0) {
|
|
477
479
|
selectedTextBlocks.forEach((item) => {
|
|
478
|
-
item.apply(new
|
|
480
|
+
item.apply(new listBlock.TextStyleAnnotationAction(selectedType, boldByDefault));
|
|
479
481
|
});
|
|
480
482
|
}
|
|
481
483
|
else {
|
|
482
484
|
void this.focusController.focusOnLastTextNode({ newLine: true }).then(() => {
|
|
483
485
|
this.selectionController
|
|
484
486
|
.getSelectedBlocks()
|
|
485
|
-
.filter((node) => node instanceof
|
|
487
|
+
.filter((node) => node instanceof listBlock.RTETextBlock)
|
|
486
488
|
.forEach((item) => {
|
|
487
|
-
item.apply(new
|
|
489
|
+
item.apply(new listBlock.TextStyleAnnotationAction(selectedType, boldByDefault));
|
|
488
490
|
});
|
|
489
491
|
});
|
|
490
492
|
}
|
|
491
493
|
};
|
|
492
494
|
}
|
|
493
495
|
renderBtnWrapper(renderBtn) {
|
|
494
|
-
return (
|
|
496
|
+
return (index.h("vega-dropdown", { selectType: "single", trigger: "click", alignment: "center", selectedSourceKey: this.getSelectedSourceKey(), ref: (ref) => {
|
|
495
497
|
this.addDropdownObserver(ref);
|
|
496
498
|
} },
|
|
497
499
|
renderBtn({ showArrowIcon: true }),
|
|
498
|
-
|
|
500
|
+
index.h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())));
|
|
499
501
|
}
|
|
500
502
|
renderDropdownContent() {
|
|
501
|
-
return (
|
|
502
|
-
const textStyleAnnotation = new
|
|
503
|
-
const boldAnnotation = new
|
|
504
|
-
return (
|
|
505
|
-
|
|
506
|
-
|
|
503
|
+
return (index.h(index.Fragment, null, TextStylesToolbarButtonSlimmer.items.map((item) => {
|
|
504
|
+
const textStyleAnnotation = new listBlock.TextStyleAnnotation(item.key);
|
|
505
|
+
const boldAnnotation = new listBlock.BoldAnnotation(item.bold);
|
|
506
|
+
return (index.h("vega-dropdown-item", { key: item.key, itemKey: item.key },
|
|
507
|
+
index.h("vega-box", { padding: { right: 'size-20' } },
|
|
508
|
+
index.h("div", { style: Object.assign(Object.assign({}, textStyleAnnotation.render()), boldAnnotation.render()) }, item.label))));
|
|
507
509
|
})));
|
|
508
510
|
}
|
|
509
511
|
isSelected() {
|
|
@@ -511,19 +513,19 @@ class TextStylesToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Toolb
|
|
|
511
513
|
}
|
|
512
514
|
isDisabled() {
|
|
513
515
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
514
|
-
return selectedNodes.some((node) => node.getAnnotationByType(
|
|
516
|
+
return selectedNodes.some((node) => node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.IMAGE));
|
|
515
517
|
}
|
|
516
518
|
addDropdownObserver(dropdownRef) {
|
|
517
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(dropdownRef,
|
|
519
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(dropdownRef, domNodeSubjectFactory.VegaDropdownClick, this.handleDropdownItemClick);
|
|
518
520
|
}
|
|
519
521
|
getSelectedSourceKey() {
|
|
520
522
|
const currentSelectedBlocks = this.selectionController
|
|
521
523
|
.getSelectedBlocks()
|
|
522
|
-
.filter((block) => block instanceof
|
|
524
|
+
.filter((block) => block instanceof listBlock.RTETextBlock);
|
|
523
525
|
const isSameType = currentSelectedBlocks.length > 0 &&
|
|
524
526
|
currentSelectedBlocks.every((block) => block.type === currentSelectedBlocks[0].type);
|
|
525
527
|
if (isSameType) {
|
|
526
|
-
const blockAnnotation = currentSelectedBlocks[0].getAnnotationByType(
|
|
528
|
+
const blockAnnotation = currentSelectedBlocks[0].getAnnotationByType(nodeAnnotation_abstract.BlockAnnotationTypeEnum.TEXT_STYLE);
|
|
527
529
|
return blockAnnotation.textStyle;
|
|
528
530
|
}
|
|
529
531
|
return '';
|
|
@@ -581,7 +583,7 @@ var __decorate$s = (undefined && undefined.__decorate) || function (decorators,
|
|
|
581
583
|
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;
|
|
582
584
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
583
585
|
};
|
|
584
|
-
class ClearStyleToolbarButtonSlimmer extends
|
|
586
|
+
class ClearStyleToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
585
587
|
constructor() {
|
|
586
588
|
super({
|
|
587
589
|
icon: 'text-slash',
|
|
@@ -596,14 +598,14 @@ class ClearStyleToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Toolb
|
|
|
596
598
|
onClick() {
|
|
597
599
|
this.selectionController
|
|
598
600
|
.getSelectedNodes()
|
|
599
|
-
.filter((node) => node instanceof
|
|
601
|
+
.filter((node) => node instanceof listBlock.RTETextNode)
|
|
600
602
|
.forEach((node) => {
|
|
601
|
-
node.apply(new
|
|
603
|
+
node.apply(new listBlock.ClearFormattingAnnotationAction());
|
|
602
604
|
});
|
|
603
605
|
}
|
|
604
606
|
isDisabled() {
|
|
605
607
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
606
|
-
return selectedNodes.some((node) => node.getAnnotationByType(
|
|
608
|
+
return selectedNodes.some((node) => node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.IMAGE));
|
|
607
609
|
}
|
|
608
610
|
}
|
|
609
611
|
(() => {
|
|
@@ -625,7 +627,7 @@ var __decorate$r = (undefined && undefined.__decorate) || function (decorators,
|
|
|
625
627
|
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;
|
|
626
628
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
627
629
|
};
|
|
628
|
-
class CodeToolbarButtonSlimmer extends
|
|
630
|
+
class CodeToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
629
631
|
constructor() {
|
|
630
632
|
super({
|
|
631
633
|
icon: 'code-simple',
|
|
@@ -636,21 +638,21 @@ class CodeToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarButt
|
|
|
636
638
|
const selected = this.isSelected();
|
|
637
639
|
this.selectionController
|
|
638
640
|
.getSelectedNodes()
|
|
639
|
-
.filter((node) => node instanceof
|
|
640
|
-
.forEach((node) => node.apply(new
|
|
641
|
+
.filter((node) => node instanceof listBlock.RTETextNode)
|
|
642
|
+
.forEach((node) => node.apply(new listBlock.CodeAnnotationAction(!selected)));
|
|
641
643
|
}
|
|
642
644
|
isSelected() {
|
|
643
645
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
644
646
|
return (selectedNodes.length > 0 &&
|
|
645
647
|
selectedNodes
|
|
646
|
-
.filter((node) => node instanceof
|
|
647
|
-
.map((node) => node.getAnnotationByType(
|
|
648
|
+
.filter((node) => node instanceof listBlock.RTETextNode)
|
|
649
|
+
.map((node) => node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.CODE))
|
|
648
650
|
.every((annotation) => annotation && annotation.code));
|
|
649
651
|
}
|
|
650
652
|
isDisabled() {
|
|
651
653
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
652
|
-
return selectedNodes.some((node) => node.getAnnotationByType(
|
|
653
|
-
node.getAnnotationByType(
|
|
654
|
+
return selectedNodes.some((node) => node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.LINK) ||
|
|
655
|
+
node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.IMAGE));
|
|
654
656
|
}
|
|
655
657
|
}
|
|
656
658
|
(() => {
|
|
@@ -667,7 +669,7 @@ const strikethrough = {
|
|
|
667
669
|
/**
|
|
668
670
|
* Action to toggle the strikethrough annotation
|
|
669
671
|
*/
|
|
670
|
-
class StrikethroughAnnotationAction extends
|
|
672
|
+
class StrikethroughAnnotationAction extends listBlock.TextSplittableAction {
|
|
671
673
|
constructor(underline) {
|
|
672
674
|
super();
|
|
673
675
|
this.isFlushable = true;
|
|
@@ -679,7 +681,7 @@ class StrikethroughAnnotationAction extends textNode.TextSplittableAction {
|
|
|
679
681
|
* @returns {StrikethroughAnnotation} the annotation
|
|
680
682
|
*/
|
|
681
683
|
toAnnotation() {
|
|
682
|
-
return new
|
|
684
|
+
return new listBlock.StrikethroughAnnotation(this.strikethrough);
|
|
683
685
|
}
|
|
684
686
|
}
|
|
685
687
|
|
|
@@ -689,7 +691,7 @@ var __decorate$q = (undefined && undefined.__decorate) || function (decorators,
|
|
|
689
691
|
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;
|
|
690
692
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
691
693
|
};
|
|
692
|
-
class StrikethroughToolbarButtonSlimmer extends
|
|
694
|
+
class StrikethroughToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
693
695
|
constructor() {
|
|
694
696
|
super({
|
|
695
697
|
icon: 'strikethrough',
|
|
@@ -699,26 +701,26 @@ class StrikethroughToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.To
|
|
|
699
701
|
isSelected() {
|
|
700
702
|
const selectedNodes = this.selectionController
|
|
701
703
|
.getSelectedNodes()
|
|
702
|
-
.filter((node) => node instanceof
|
|
704
|
+
.filter((node) => node instanceof listBlock.RTETextNode);
|
|
703
705
|
return (selectedNodes.length > 0 &&
|
|
704
706
|
selectedNodes.every((node) => {
|
|
705
707
|
var _a;
|
|
706
|
-
return (_a = node.getAnnotationByType(
|
|
708
|
+
return (_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.STRIKETHROUGH)) === null || _a === void 0 ? void 0 : _a.strikethrough;
|
|
707
709
|
}));
|
|
708
710
|
}
|
|
709
711
|
onClick() {
|
|
710
712
|
const selected = this.isSelected();
|
|
711
713
|
this.selectionController
|
|
712
714
|
.getSelectedNodes()
|
|
713
|
-
.filter((node) => node instanceof
|
|
715
|
+
.filter((node) => node instanceof listBlock.RTETextNode)
|
|
714
716
|
.forEach((node) => node.apply(new StrikethroughAnnotationAction(!selected)));
|
|
715
717
|
}
|
|
716
718
|
isDisabled() {
|
|
717
719
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
718
720
|
return selectedNodes.some((node) => {
|
|
719
721
|
var _a;
|
|
720
|
-
return ((_a = node.getAnnotationByType(
|
|
721
|
-
node.getAnnotationByType(
|
|
722
|
+
return ((_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code) ||
|
|
723
|
+
node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.IMAGE);
|
|
722
724
|
});
|
|
723
725
|
}
|
|
724
726
|
}
|
|
@@ -736,7 +738,7 @@ const link = {
|
|
|
736
738
|
/**
|
|
737
739
|
* Action to change the selection range
|
|
738
740
|
*/
|
|
739
|
-
class SelectionChangeAction extends
|
|
741
|
+
class SelectionChangeAction extends listBlock.AnnotationAction {
|
|
740
742
|
constructor(range) {
|
|
741
743
|
super();
|
|
742
744
|
this.isFlushable = false;
|
|
@@ -748,7 +750,7 @@ class SelectionChangeAction extends textNode.AnnotationAction {
|
|
|
748
750
|
* @returns {SelectionRangeAnnotation} The annotation
|
|
749
751
|
*/
|
|
750
752
|
toAnnotation() {
|
|
751
|
-
return new
|
|
753
|
+
return new listBlock.SelectionRangeAnnotation(this.range);
|
|
752
754
|
}
|
|
753
755
|
}
|
|
754
756
|
|
|
@@ -758,7 +760,7 @@ var __decorate$p = (undefined && undefined.__decorate) || function (decorators,
|
|
|
758
760
|
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;
|
|
759
761
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
760
762
|
};
|
|
761
|
-
class LinkToolbarButtonSlimmer extends
|
|
763
|
+
class LinkToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
762
764
|
constructor() {
|
|
763
765
|
super({
|
|
764
766
|
icon: 'link',
|
|
@@ -773,7 +775,7 @@ class LinkToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarButt
|
|
|
773
775
|
const textChanged = text !== this.currentSelectedText;
|
|
774
776
|
const groupKey = createPublicApiRuntimeMetricsSlimmer.generateUUID();
|
|
775
777
|
this.currentSelectedNodes.forEach((node) => {
|
|
776
|
-
node.apply(new SelectionChangeAction(this.currentRange)).apply(new
|
|
778
|
+
node.apply(new SelectionChangeAction(this.currentRange)).apply(new listBlock.LinkAnnotationAction({
|
|
777
779
|
link: { href: url, groupKey: groupKey },
|
|
778
780
|
newText: textChanged ? text : undefined,
|
|
779
781
|
needMergeNode: textChanged && this.currentSelectedNodes.length > 1,
|
|
@@ -785,13 +787,13 @@ class LinkToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarButt
|
|
|
785
787
|
};
|
|
786
788
|
}
|
|
787
789
|
renderBtnWrapper(renderBtn) {
|
|
788
|
-
return (
|
|
790
|
+
return (index.h("div", { class: "toolbar-btn-link-wrapper", ref: (ref) => (this.linkBtnWrapperRef = ref) },
|
|
789
791
|
renderBtn(),
|
|
790
|
-
|
|
792
|
+
index.h("vega-rich-text-link-editor", { resetStatusAfterHide: false, status: "linkEdit", ref: (ref) => {
|
|
791
793
|
if (ref) {
|
|
792
794
|
this.linkEditorRef = ref;
|
|
793
795
|
}
|
|
794
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
796
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaChange, this.handleLinkEditorChange);
|
|
795
797
|
} })));
|
|
796
798
|
}
|
|
797
799
|
isSelected() {
|
|
@@ -803,9 +805,9 @@ class LinkToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarButt
|
|
|
803
805
|
return (selectedBlocks.length > 1 ||
|
|
804
806
|
selectedNodes.some((node) => {
|
|
805
807
|
var _a;
|
|
806
|
-
return !(node instanceof
|
|
807
|
-
node.getAnnotationByType(
|
|
808
|
-
((_a = node.getAnnotationByType(
|
|
808
|
+
return !(node instanceof listBlock.RTETextNode) ||
|
|
809
|
+
node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.LINK) ||
|
|
810
|
+
((_a = node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code);
|
|
809
811
|
}));
|
|
810
812
|
}
|
|
811
813
|
onClick() {
|
|
@@ -824,7 +826,7 @@ class LinkToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarButt
|
|
|
824
826
|
// Element appender will control the show and hide logic except for the first time.
|
|
825
827
|
if (!this.linkEditorRef.target) {
|
|
826
828
|
this.linkEditorRef.target = this.linkBtnWrapperRef;
|
|
827
|
-
void
|
|
829
|
+
void listBlock.waitForComponentDidRender(this.linkEditorRef).then(() => {
|
|
828
830
|
void this.linkEditorRef.show();
|
|
829
831
|
});
|
|
830
832
|
}
|
|
@@ -844,7 +846,7 @@ const indent = {
|
|
|
844
846
|
/**
|
|
845
847
|
* Action to toggle block indent annotation
|
|
846
848
|
*/
|
|
847
|
-
class IndentAnnotationAction extends
|
|
849
|
+
class IndentAnnotationAction extends listBlock.AnnotationAction {
|
|
848
850
|
constructor(indent) {
|
|
849
851
|
super();
|
|
850
852
|
this.isFlushable = true;
|
|
@@ -856,7 +858,7 @@ class IndentAnnotationAction extends textNode.AnnotationAction {
|
|
|
856
858
|
* @returns {IndentAnnotation} The annotation
|
|
857
859
|
*/
|
|
858
860
|
toAnnotation() {
|
|
859
|
-
return new
|
|
861
|
+
return new listBlock.IndentAnnotation(this.indent);
|
|
860
862
|
}
|
|
861
863
|
}
|
|
862
864
|
|
|
@@ -866,7 +868,7 @@ var __decorate$o = (undefined && undefined.__decorate) || function (decorators,
|
|
|
866
868
|
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;
|
|
867
869
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
868
870
|
};
|
|
869
|
-
class MoreIndentToolbarButtonSlimmer extends
|
|
871
|
+
class MoreIndentToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
870
872
|
constructor() {
|
|
871
873
|
super({
|
|
872
874
|
icon: 'indent',
|
|
@@ -882,12 +884,12 @@ class MoreIndentToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Toolb
|
|
|
882
884
|
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
883
885
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
884
886
|
return (selectedBlocks.some((node) => node.type === 'list-item') ||
|
|
885
|
-
selectedNodes.some((node) => node instanceof
|
|
887
|
+
selectedNodes.some((node) => node instanceof listBlock.RTEImageNode));
|
|
886
888
|
}
|
|
887
889
|
onClick() {
|
|
888
890
|
this.selectionController.getSelectedBlocks().forEach((item) => {
|
|
889
891
|
var _a, _b;
|
|
890
|
-
const indent = (_b = (_a = item.getAnnotationByType(
|
|
892
|
+
const indent = (_b = (_a = item.getAnnotationByType(nodeAnnotation_abstract.BlockAnnotationTypeEnum.INDENT)) === null || _a === void 0 ? void 0 : _a.indent) !== null && _b !== void 0 ? _b : 0;
|
|
891
893
|
item.apply(new IndentAnnotationAction(indent + 1));
|
|
892
894
|
});
|
|
893
895
|
}
|
|
@@ -909,7 +911,7 @@ var __decorate$n = (undefined && undefined.__decorate) || function (decorators,
|
|
|
909
911
|
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;
|
|
910
912
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
911
913
|
};
|
|
912
|
-
class LessIndentToolbarButtonSlimmer extends
|
|
914
|
+
class LessIndentToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
913
915
|
constructor() {
|
|
914
916
|
super({
|
|
915
917
|
icon: 'outdent',
|
|
@@ -925,12 +927,12 @@ class LessIndentToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Toolb
|
|
|
925
927
|
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
926
928
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
927
929
|
return (selectedBlocks.some((node) => node.type === 'list-item') ||
|
|
928
|
-
selectedNodes.some((node) => node instanceof
|
|
930
|
+
selectedNodes.some((node) => node instanceof listBlock.RTEImageNode));
|
|
929
931
|
}
|
|
930
932
|
onClick() {
|
|
931
933
|
this.selectionController.getSelectedBlocks().forEach((item) => {
|
|
932
934
|
var _a, _b;
|
|
933
|
-
const indent = (_b = (_a = item.getAnnotationByType(
|
|
935
|
+
const indent = (_b = (_a = item.getAnnotationByType(nodeAnnotation_abstract.BlockAnnotationTypeEnum.INDENT)) === null || _a === void 0 ? void 0 : _a.indent) !== null && _b !== void 0 ? _b : 0;
|
|
934
936
|
const newIndent = indent > 1 ? indent - 1 : 0;
|
|
935
937
|
item.apply(new IndentAnnotationAction(newIndent));
|
|
936
938
|
});
|
|
@@ -953,7 +955,7 @@ var __decorate$m = (undefined && undefined.__decorate) || function (decorators,
|
|
|
953
955
|
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;
|
|
954
956
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
955
957
|
};
|
|
956
|
-
class ImageToolbarButtonSlimmer extends
|
|
958
|
+
class ImageToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
957
959
|
constructor() {
|
|
958
960
|
super({
|
|
959
961
|
icon: 'image',
|
|
@@ -989,16 +991,16 @@ class ImageToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarBut
|
|
|
989
991
|
};
|
|
990
992
|
}
|
|
991
993
|
renderBtnWrapper(renderBtn) {
|
|
992
|
-
return (
|
|
994
|
+
return (index.h("vega-box", null,
|
|
993
995
|
renderBtn({ showArrowIcon: false }),
|
|
994
|
-
|
|
996
|
+
index.h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.inputElementRef = node), accept: "image/*", onChange: this.fileInputChange })));
|
|
995
997
|
}
|
|
996
998
|
isSelected() {
|
|
997
999
|
return false;
|
|
998
1000
|
}
|
|
999
1001
|
isDisabled() {
|
|
1000
1002
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
1001
|
-
return selectedNodes.some((node) => node.getAnnotationByType(
|
|
1003
|
+
return selectedNodes.some((node) => node.getAnnotationByType(nodeAnnotation_abstract.NodeAnnotationTypeEnum.LINK));
|
|
1002
1004
|
}
|
|
1003
1005
|
}
|
|
1004
1006
|
(() => {
|
|
@@ -1025,10 +1027,10 @@ const ListOL = {
|
|
|
1025
1027
|
/**
|
|
1026
1028
|
* Action to toggle bullet annotation
|
|
1027
1029
|
*/
|
|
1028
|
-
class TransformListAction extends
|
|
1030
|
+
class TransformListAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
1029
1031
|
constructor(listType, selectedBlocks) {
|
|
1030
1032
|
super();
|
|
1031
|
-
this.type =
|
|
1033
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.TRANSFORM_LIST_BLOCK;
|
|
1032
1034
|
this.isFlushable = true;
|
|
1033
1035
|
this.listType = listType;
|
|
1034
1036
|
this.selectedBlocks = selectedBlocks;
|
|
@@ -1038,10 +1040,10 @@ class TransformListAction extends node_abstract.ModifyContentAction {
|
|
|
1038
1040
|
/**
|
|
1039
1041
|
* Action to toggle bullet annotation
|
|
1040
1042
|
*/
|
|
1041
|
-
class TransformParagraphAction extends
|
|
1043
|
+
class TransformParagraphAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
1042
1044
|
constructor(selectedBlocks) {
|
|
1043
1045
|
super();
|
|
1044
|
-
this.type =
|
|
1046
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.TRANSFORM_PARAGRAPH_BLOCK;
|
|
1045
1047
|
this.isFlushable = true;
|
|
1046
1048
|
this.selectedBlocks = selectedBlocks;
|
|
1047
1049
|
}
|
|
@@ -1053,7 +1055,7 @@ var __decorate$l = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1053
1055
|
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;
|
|
1054
1056
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1055
1057
|
};
|
|
1056
|
-
class BulletsToolbarButtonSlimmer extends
|
|
1058
|
+
class BulletsToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
1057
1059
|
constructor() {
|
|
1058
1060
|
super({
|
|
1059
1061
|
icon: 'list-ul',
|
|
@@ -1077,11 +1079,11 @@ class BulletsToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarB
|
|
|
1077
1079
|
}
|
|
1078
1080
|
isDisabled() {
|
|
1079
1081
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
1080
|
-
return selectedNodes.some((node) => node instanceof
|
|
1082
|
+
return selectedNodes.some((node) => node instanceof listBlock.RTEImageNode);
|
|
1081
1083
|
}
|
|
1082
1084
|
isListType(selectedBlocks, type = 'bullet-list') {
|
|
1083
1085
|
return (selectedBlocks.length > 0 &&
|
|
1084
|
-
selectedBlocks.every((block) => block instanceof
|
|
1086
|
+
selectedBlocks.every((block) => block instanceof listBlock.RTEListItemBlock && block.parent.type === type));
|
|
1085
1087
|
}
|
|
1086
1088
|
/**
|
|
1087
1089
|
* Deselect bullet list item to convert it to default paragraph
|
|
@@ -1118,7 +1120,7 @@ var __decorate$k = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1118
1120
|
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;
|
|
1119
1121
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1120
1122
|
};
|
|
1121
|
-
class NumbersToolbarButtonSlimmer extends
|
|
1123
|
+
class NumbersToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
1122
1124
|
constructor() {
|
|
1123
1125
|
super({
|
|
1124
1126
|
icon: 'list-ol',
|
|
@@ -1140,11 +1142,11 @@ class NumbersToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.ToolbarB
|
|
|
1140
1142
|
}
|
|
1141
1143
|
isDisabled() {
|
|
1142
1144
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
1143
|
-
return selectedNodes.some((node) => node instanceof
|
|
1145
|
+
return selectedNodes.some((node) => node instanceof listBlock.RTEImageNode);
|
|
1144
1146
|
}
|
|
1145
1147
|
isListType(selectedBlocks, type = 'number-list') {
|
|
1146
1148
|
return (selectedBlocks.length > 0 &&
|
|
1147
|
-
selectedBlocks.every((block) => block instanceof
|
|
1149
|
+
selectedBlocks.every((block) => block instanceof listBlock.RTEListItemBlock && block.parent.type === type));
|
|
1148
1150
|
}
|
|
1149
1151
|
/**
|
|
1150
1152
|
* Deselect bullet list item to convert it to default paragraph
|
|
@@ -1181,7 +1183,7 @@ var __decorate$j = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1181
1183
|
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;
|
|
1182
1184
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1183
1185
|
};
|
|
1184
|
-
class BulletsNumbersToolbarButtonSlimmer extends
|
|
1186
|
+
class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
1185
1187
|
constructor() {
|
|
1186
1188
|
super({
|
|
1187
1189
|
icon: 'list-ul',
|
|
@@ -1201,21 +1203,21 @@ class BulletsNumbersToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.T
|
|
|
1201
1203
|
}
|
|
1202
1204
|
}
|
|
1203
1205
|
renderBtnWrapper(renderBtn) {
|
|
1204
|
-
return (
|
|
1205
|
-
|
|
1206
|
-
|
|
1206
|
+
return (index.h("vega-popover", { showArrow: false, trigger: "click", placement: "bottom", alignment: "center", ref: (ref) => (this.popoverRef = ref) },
|
|
1207
|
+
index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
|
|
1208
|
+
index.h("div", { slot: "popover" }, this.renderContent())));
|
|
1207
1209
|
}
|
|
1208
1210
|
renderContent() {
|
|
1209
|
-
return (
|
|
1210
|
-
|
|
1211
|
-
|
|
1211
|
+
return (index.h("vega-flex", { gap: "size-8", "justify-content": "center" },
|
|
1212
|
+
index.h("div", null, this.bulletsToolbarButtonSlimmer.render()),
|
|
1213
|
+
index.h("div", null, this.numbersToolbarButtonSlimmer.render())));
|
|
1212
1214
|
}
|
|
1213
1215
|
isSelected() {
|
|
1214
1216
|
return false;
|
|
1215
1217
|
}
|
|
1216
1218
|
isDisabled() {
|
|
1217
1219
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
1218
|
-
return selectedNodes.some((node) => node instanceof
|
|
1220
|
+
return selectedNodes.some((node) => node instanceof listBlock.RTEImageNode);
|
|
1219
1221
|
}
|
|
1220
1222
|
}
|
|
1221
1223
|
(() => {
|
|
@@ -1240,7 +1242,7 @@ __decorate$j([
|
|
|
1240
1242
|
/**
|
|
1241
1243
|
* Action to toggle block horizontal alignment annotation
|
|
1242
1244
|
*/
|
|
1243
|
-
class HorizontalAlignmentAnnotationAction extends
|
|
1245
|
+
class HorizontalAlignmentAnnotationAction extends listBlock.AnnotationAction {
|
|
1244
1246
|
constructor(textAlign) {
|
|
1245
1247
|
super();
|
|
1246
1248
|
this.isFlushable = true;
|
|
@@ -1252,7 +1254,7 @@ class HorizontalAlignmentAnnotationAction extends textNode.AnnotationAction {
|
|
|
1252
1254
|
* @returns {HorizontalAlignmentAnnotation} The annotation
|
|
1253
1255
|
*/
|
|
1254
1256
|
toAnnotation() {
|
|
1255
|
-
return new
|
|
1257
|
+
return new listBlock.HorizontalAlignmentAnnotation(this.textAlign);
|
|
1256
1258
|
}
|
|
1257
1259
|
}
|
|
1258
1260
|
|
|
@@ -1266,7 +1268,7 @@ var __decorate$i = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1266
1268
|
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;
|
|
1267
1269
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1268
1270
|
};
|
|
1269
|
-
class LeftAlignToolbarButtonSlimmer extends
|
|
1271
|
+
class LeftAlignToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
1270
1272
|
constructor() {
|
|
1271
1273
|
super({
|
|
1272
1274
|
icon: 'align-left',
|
|
@@ -1280,7 +1282,7 @@ class LeftAlignToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Toolba
|
|
|
1280
1282
|
return (selectedBlocks.length > 0 &&
|
|
1281
1283
|
selectedBlocks.every((block) => {
|
|
1282
1284
|
var _a;
|
|
1283
|
-
return ((_a = block.getAnnotationByType(
|
|
1285
|
+
return ((_a = block.getAnnotationByType(nodeAnnotation_abstract.BlockAnnotationTypeEnum.ALIGNMENT)) === null || _a === void 0 ? void 0 : _a.textAlign) === 'left';
|
|
1284
1286
|
}));
|
|
1285
1287
|
}
|
|
1286
1288
|
onClick() {
|
|
@@ -1312,7 +1314,7 @@ var __decorate$h = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1312
1314
|
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;
|
|
1313
1315
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1314
1316
|
};
|
|
1315
|
-
class CenterAlignToolbarButtonSlimmer extends
|
|
1317
|
+
class CenterAlignToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
1316
1318
|
constructor() {
|
|
1317
1319
|
super({
|
|
1318
1320
|
icon: 'align-center',
|
|
@@ -1326,7 +1328,7 @@ class CenterAlignToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Tool
|
|
|
1326
1328
|
return (selectedBlocks.length > 0 &&
|
|
1327
1329
|
selectedBlocks.every((block) => {
|
|
1328
1330
|
var _a;
|
|
1329
|
-
return ((_a = block.getAnnotationByType(
|
|
1331
|
+
return ((_a = block.getAnnotationByType(nodeAnnotation_abstract.BlockAnnotationTypeEnum.ALIGNMENT)) === null || _a === void 0 ? void 0 : _a.textAlign) === 'center';
|
|
1330
1332
|
}));
|
|
1331
1333
|
}
|
|
1332
1334
|
onClick() {
|
|
@@ -1358,7 +1360,7 @@ var __decorate$g = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1358
1360
|
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;
|
|
1359
1361
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1360
1362
|
};
|
|
1361
|
-
class RightAlignToolbarButtonSlimmer extends
|
|
1363
|
+
class RightAlignToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
1362
1364
|
constructor() {
|
|
1363
1365
|
super({
|
|
1364
1366
|
icon: 'align-right',
|
|
@@ -1372,7 +1374,7 @@ class RightAlignToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Toolb
|
|
|
1372
1374
|
return (selectedBlocks.length > 0 &&
|
|
1373
1375
|
selectedBlocks.every((block) => {
|
|
1374
1376
|
var _a;
|
|
1375
|
-
return ((_a = block.getAnnotationByType(
|
|
1377
|
+
return ((_a = block.getAnnotationByType(nodeAnnotation_abstract.BlockAnnotationTypeEnum.ALIGNMENT)) === null || _a === void 0 ? void 0 : _a.textAlign) === 'right';
|
|
1376
1378
|
}));
|
|
1377
1379
|
}
|
|
1378
1380
|
onClick() {
|
|
@@ -1404,7 +1406,7 @@ var __decorate$f = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1404
1406
|
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;
|
|
1405
1407
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1406
1408
|
};
|
|
1407
|
-
class JustifyAlignToolbarButtonSlimmer extends
|
|
1409
|
+
class JustifyAlignToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
1408
1410
|
constructor() {
|
|
1409
1411
|
super({
|
|
1410
1412
|
icon: 'align-justify',
|
|
@@ -1418,7 +1420,7 @@ class JustifyAlignToolbarButtonSlimmer extends textColorToolbarButtonSlimmer.Too
|
|
|
1418
1420
|
return (selectedBlocks.length > 0 &&
|
|
1419
1421
|
selectedBlocks.every((block) => {
|
|
1420
1422
|
var _a;
|
|
1421
|
-
return ((_a = block.getAnnotationByType(
|
|
1423
|
+
return ((_a = block.getAnnotationByType(nodeAnnotation_abstract.BlockAnnotationTypeEnum.ALIGNMENT)) === null || _a === void 0 ? void 0 : _a.textAlign) === 'justify';
|
|
1422
1424
|
}));
|
|
1423
1425
|
}
|
|
1424
1426
|
onClick() {
|
|
@@ -1446,7 +1448,7 @@ var __decorate$e = (undefined && undefined.__decorate) || function (decorators,
|
|
|
1446
1448
|
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;
|
|
1447
1449
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1448
1450
|
};
|
|
1449
|
-
class HorizontalAlignmentToolbarButtonSlimmer extends
|
|
1451
|
+
class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimmer {
|
|
1450
1452
|
constructor() {
|
|
1451
1453
|
super({
|
|
1452
1454
|
icon: 'align-left',
|
|
@@ -1477,16 +1479,16 @@ class HorizontalAlignmentToolbarButtonSlimmer extends textColorToolbarButtonSlim
|
|
|
1477
1479
|
}
|
|
1478
1480
|
}
|
|
1479
1481
|
renderBtnWrapper(renderBtn) {
|
|
1480
|
-
return (
|
|
1481
|
-
|
|
1482
|
-
|
|
1482
|
+
return (index.h("vega-popover", { trigger: "click", showArrow: false, alignment: "center", placement: "bottom", ref: (ref) => (this.popoverRef = ref) },
|
|
1483
|
+
index.h("div", { slot: "popover-content" }, renderBtn({ showArrowIcon: true })),
|
|
1484
|
+
index.h("div", { slot: "popover" }, this.renderContent())));
|
|
1483
1485
|
}
|
|
1484
1486
|
renderContent() {
|
|
1485
|
-
return (
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1487
|
+
return (index.h("vega-flex", { gap: "size-8", "justify-content": "center" },
|
|
1488
|
+
index.h("div", null, this.leftAlignToolbarButtonSlimmer.render()),
|
|
1489
|
+
index.h("div", null, this.centerAlignToolbarButtonSlimmer.render()),
|
|
1490
|
+
index.h("div", null, this.rightAlignToolbarButtonSlimmer.render()),
|
|
1491
|
+
index.h("div", null, this.justifiedToolbarButtonSlimmer.render())));
|
|
1490
1492
|
}
|
|
1491
1493
|
isSelected() {
|
|
1492
1494
|
return false;
|
|
@@ -1768,7 +1770,7 @@ class RTERange {
|
|
|
1768
1770
|
this._endOffset = endOffset;
|
|
1769
1771
|
const startNode = options.startNode;
|
|
1770
1772
|
const endNode = options.endNode;
|
|
1771
|
-
if (startNode instanceof
|
|
1773
|
+
if (startNode instanceof nodeAnnotation_abstract.RTENode) {
|
|
1772
1774
|
this._startNode = startNode;
|
|
1773
1775
|
this._endNode = endNode;
|
|
1774
1776
|
const startContainer = this.getElementByRTENode(this._startNode);
|
|
@@ -1824,9 +1826,9 @@ class RTERange {
|
|
|
1824
1826
|
*/
|
|
1825
1827
|
getElementByRTENode(node) {
|
|
1826
1828
|
if (node) {
|
|
1827
|
-
const element =
|
|
1829
|
+
const element = nodeAnnotation_abstract.stateEntityRenderingRegistry.getDOMByEntity(node);
|
|
1828
1830
|
if (element) {
|
|
1829
|
-
return node instanceof
|
|
1831
|
+
return node instanceof listBlock.RTEImageNode
|
|
1830
1832
|
? ui.findParent(element, 'vega-rich-text-image-editor')
|
|
1831
1833
|
: element.firstChild;
|
|
1832
1834
|
}
|
|
@@ -1845,7 +1847,7 @@ class RTERange {
|
|
|
1845
1847
|
: element.nodeName === 'VEGA-RICH-TEXT-IMAGE-EDITOR'
|
|
1846
1848
|
? element.querySelector('img')
|
|
1847
1849
|
: element;
|
|
1848
|
-
return
|
|
1850
|
+
return nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(registerElement);
|
|
1849
1851
|
}
|
|
1850
1852
|
}
|
|
1851
1853
|
}
|
|
@@ -1893,7 +1895,7 @@ class SelectionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
1893
1895
|
* Component lifecycle - [disconnectedCallback]{@link VegaRichTextEditor.disconnectedCallback}
|
|
1894
1896
|
*/
|
|
1895
1897
|
disconnectedCallback() {
|
|
1896
|
-
changeManager.ChangeManager.unregister(
|
|
1898
|
+
changeManager.ChangeManager.unregister(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange), this.selectionRangeChangeObserver);
|
|
1897
1899
|
}
|
|
1898
1900
|
/**
|
|
1899
1901
|
* Component lifecycle - [componentDidLoad]{@link VegaRichTextEditor.componentDidLoad}
|
|
@@ -1995,12 +1997,12 @@ class SelectionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
1995
1997
|
const startNode = this.selectedNodes[0];
|
|
1996
1998
|
const endNode = this.selectedNodes.length > 1 ? this.selectedNodes[this.selectedNodes.length - 1] : startNode;
|
|
1997
1999
|
if (startNode === endNode && startNode.text.length === 0) {
|
|
1998
|
-
this.enqueueSelectionRangeFutureState(startNode,
|
|
2000
|
+
this.enqueueSelectionRangeFutureState(startNode, listBlock.ZERO_WIDTH_SPACE.length);
|
|
1999
2001
|
}
|
|
2000
2002
|
else {
|
|
2001
2003
|
const { startContainer, endContainer, startOffset, endOffset } = this.currentRange;
|
|
2002
|
-
if (
|
|
2003
|
-
|
|
2004
|
+
if (nodeAnnotation_abstract.stateEntityRenderingRegistry.getDOMByEntity(startNode) === startContainer.parentElement &&
|
|
2005
|
+
nodeAnnotation_abstract.stateEntityRenderingRegistry.getDOMByEntity(endNode) === endContainer.parentElement) {
|
|
2004
2006
|
this.enqueueSelectionRangeFutureState(startNode, startOffset, endNode, endOffset);
|
|
2005
2007
|
}
|
|
2006
2008
|
else {
|
|
@@ -2042,8 +2044,8 @@ class SelectionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2042
2044
|
}
|
|
2043
2045
|
if (node.nodeType === Node.TEXT_NODE) {
|
|
2044
2046
|
const currentNode = node.parentElement;
|
|
2045
|
-
const nodeEntity =
|
|
2046
|
-
if (nodeEntity instanceof
|
|
2047
|
+
const nodeEntity = nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(currentNode);
|
|
2048
|
+
if (nodeEntity instanceof nodeAnnotation_abstract.RTENode) {
|
|
2047
2049
|
selectedNodes.push(nodeEntity);
|
|
2048
2050
|
return;
|
|
2049
2051
|
}
|
|
@@ -2052,8 +2054,8 @@ class SelectionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2052
2054
|
const entityElement = node.nodeName === 'VEGA-RICH-TEXT-IMAGE-EDITOR'
|
|
2053
2055
|
? node.querySelector('img')
|
|
2054
2056
|
: node;
|
|
2055
|
-
const nodeEntity =
|
|
2056
|
-
if (nodeEntity instanceof
|
|
2057
|
+
const nodeEntity = nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(entityElement);
|
|
2058
|
+
if (nodeEntity instanceof nodeAnnotation_abstract.RTENode) {
|
|
2057
2059
|
selectedNodes.push(nodeEntity);
|
|
2058
2060
|
return;
|
|
2059
2061
|
}
|
|
@@ -2076,7 +2078,7 @@ class SelectionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2076
2078
|
*/
|
|
2077
2079
|
clearSelectionMap() {
|
|
2078
2080
|
this.getSelectedNodes().forEach((node) => {
|
|
2079
|
-
node.annotationMap.delete(
|
|
2081
|
+
node.annotationMap.delete(nodeAnnotation_abstract.InternalAnnotationTypeEnum.SELECTION_RANGE);
|
|
2080
2082
|
});
|
|
2081
2083
|
this.selectionMap = new Map();
|
|
2082
2084
|
}
|
|
@@ -2092,10 +2094,10 @@ class SelectionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2092
2094
|
* Register the selection range change observer
|
|
2093
2095
|
*/
|
|
2094
2096
|
registerSelectionRangeChangeObserver() {
|
|
2095
|
-
this.selectionRangeChangeObserver = new
|
|
2097
|
+
this.selectionRangeChangeObserver = new domNodeSubjectFactory.Observer(this.isAcceptableSelectionRangeChange.bind(this), (payload) => {
|
|
2096
2098
|
this.selectedNodes.push(payload.node);
|
|
2097
2099
|
});
|
|
2098
|
-
changeManager.ChangeManager.register(
|
|
2100
|
+
changeManager.ChangeManager.register(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorSelectionRangeChange), this.selectionRangeChangeObserver);
|
|
2099
2101
|
}
|
|
2100
2102
|
}
|
|
2101
2103
|
SelectionController.SELECTION_CHANGE_DEBOUNCE_TIME = 50;
|
|
@@ -2147,14 +2149,14 @@ class ValueController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2147
2149
|
const flushChangesWithDebounce = timer.debounce(() => {
|
|
2148
2150
|
void this.valueController.flushChanges(this.value);
|
|
2149
2151
|
}, ValueController.VALUE_CHANGE_DEBOUNCE_TIME, this);
|
|
2150
|
-
this.flushChangeObserver = new
|
|
2151
|
-
changeManager.ChangeManager.register(
|
|
2152
|
+
this.flushChangeObserver = new domNodeSubjectFactory.Observer(this.isAcceptableFlushChange.bind(this), flushChangesWithDebounce);
|
|
2153
|
+
changeManager.ChangeManager.register(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges), this.flushChangeObserver);
|
|
2152
2154
|
}
|
|
2153
2155
|
/**
|
|
2154
2156
|
* Component lifecycle - [connectedCallback]{@link VegaRichTextEditor.disconnectedCallback}
|
|
2155
2157
|
*/
|
|
2156
2158
|
disconnectedCallback() {
|
|
2157
|
-
changeManager.ChangeManager.unregister(
|
|
2159
|
+
changeManager.ChangeManager.unregister(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditorFlushChanges), this.flushChangeObserver);
|
|
2158
2160
|
}
|
|
2159
2161
|
/**
|
|
2160
2162
|
* Watches the value of the editor and updates the internal value.
|
|
@@ -2178,7 +2180,7 @@ class ValueController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2178
2180
|
*/
|
|
2179
2181
|
async flushChanges(newValue) {
|
|
2180
2182
|
this.value = newValue.clone();
|
|
2181
|
-
await
|
|
2183
|
+
await listBlock.waitForComponentDidRender(this.host);
|
|
2182
2184
|
}
|
|
2183
2185
|
/**
|
|
2184
2186
|
* Determines whether the observer should accept changes.
|
|
@@ -2225,7 +2227,7 @@ class DarkModeStateControllerSlimmer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2225
2227
|
* Register an observer to watch for dark mode updates, which will cause the component to update.
|
|
2226
2228
|
*/
|
|
2227
2229
|
connectedCallback() {
|
|
2228
|
-
this.observer = new
|
|
2230
|
+
this.observer = new domNodeSubjectFactory.Observer(this.isAcceptObserver.bind(this), (isDark) => {
|
|
2229
2231
|
this.isInDarkMode = isDark;
|
|
2230
2232
|
});
|
|
2231
2233
|
changeManager.ChangeManager.register(staticSubjectTitle.DARK_MODE_CHANGE, this.observer);
|
|
@@ -2276,10 +2278,10 @@ class RichTextContentController {
|
|
|
2276
2278
|
*
|
|
2277
2279
|
* @example selectedNode.apply(new ReplaceSelectedTextAction(insertText))
|
|
2278
2280
|
*/
|
|
2279
|
-
class ReplaceSelectedTextAction extends
|
|
2281
|
+
class ReplaceSelectedTextAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
2280
2282
|
constructor(text, currentRange) {
|
|
2281
2283
|
super();
|
|
2282
|
-
this.type =
|
|
2284
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.REPLACE_SELECTED_TEXT;
|
|
2283
2285
|
this.textToBeInsert = '';
|
|
2284
2286
|
this.textToBeInsert = text;
|
|
2285
2287
|
this.currentRange = currentRange;
|
|
@@ -2312,8 +2314,8 @@ class BaseHandler {
|
|
|
2312
2314
|
const { startContainer, endContainer } = range;
|
|
2313
2315
|
const result = this.removeSelectionRange();
|
|
2314
2316
|
const startNode = selectedNodes[0];
|
|
2315
|
-
if (startNode instanceof
|
|
2316
|
-
startNode.apply(new
|
|
2317
|
+
if (startNode instanceof listBlock.RTETextNode && text) {
|
|
2318
|
+
startNode.apply(new listBlock.UpdateTextAction(startNode.text + text));
|
|
2317
2319
|
}
|
|
2318
2320
|
this.mergeRangeStartAndEnd(startContainer, endContainer);
|
|
2319
2321
|
return result;
|
|
@@ -2344,10 +2346,10 @@ class BaseHandler {
|
|
|
2344
2346
|
removeRangeStartAndEndSelectedText() {
|
|
2345
2347
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2346
2348
|
const currentRange = this.selectionController.getCurrentRange();
|
|
2347
|
-
if (selectedNodes[0] instanceof
|
|
2349
|
+
if (selectedNodes[0] instanceof listBlock.RTETextNode) {
|
|
2348
2350
|
selectedNodes[0].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
2349
2351
|
}
|
|
2350
|
-
if (selectedNodes.length > 1 && selectedNodes[selectedNodes.length - 1] instanceof
|
|
2352
|
+
if (selectedNodes.length > 1 && selectedNodes[selectedNodes.length - 1] instanceof listBlock.RTETextNode) {
|
|
2351
2353
|
selectedNodes[selectedNodes.length - 1].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
2352
2354
|
}
|
|
2353
2355
|
}
|
|
@@ -2366,20 +2368,20 @@ class BaseHandler {
|
|
|
2366
2368
|
if (startRTENode && startRTENode.parentBlock && endRTENode && endRTENode.parentBlock) {
|
|
2367
2369
|
const endBlock = endRTENode.parentBlock;
|
|
2368
2370
|
if (this.shouldMergeTextNode(startRTENode, endRTENode)) {
|
|
2369
|
-
startRTENode.apply(new
|
|
2371
|
+
startRTENode.apply(new listBlock.UpdateTextAction(startRTENode.text + endRTENode.text));
|
|
2370
2372
|
if (startRTENode.parentBlock === endRTENode.parentBlock) {
|
|
2371
|
-
startRTENode.parentBlock.apply(new
|
|
2373
|
+
startRTENode.parentBlock.apply(new listBlock.RemoveChildAction(endRTENode));
|
|
2372
2374
|
}
|
|
2373
2375
|
else {
|
|
2374
|
-
endRTENode.parentBlock.apply(new
|
|
2376
|
+
endRTENode.parentBlock.apply(new listBlock.RemoveChildAction(endRTENode.parentBlock.nodes[0]));
|
|
2375
2377
|
}
|
|
2376
2378
|
}
|
|
2377
2379
|
if (startRTENode.parentBlock !== endRTENode.parentBlock) {
|
|
2378
|
-
startRTENode.parentBlock.apply(new
|
|
2380
|
+
startRTENode.parentBlock.apply(new listBlock.AppendChildNodesAction(endBlock.nodes));
|
|
2379
2381
|
endBlock.nodes = [];
|
|
2380
2382
|
}
|
|
2381
2383
|
if (endBlock.nodes.length < 1) {
|
|
2382
|
-
endBlock.parent.apply(new
|
|
2384
|
+
endBlock.parent.apply(new listBlock.RemoveChildAction(endBlock));
|
|
2383
2385
|
}
|
|
2384
2386
|
}
|
|
2385
2387
|
}
|
|
@@ -2408,7 +2410,7 @@ class BaseHandler {
|
|
|
2408
2410
|
}
|
|
2409
2411
|
});
|
|
2410
2412
|
shouldRemovedItems.forEach((item) => {
|
|
2411
|
-
item.parentBlock.apply(new
|
|
2413
|
+
item.parentBlock.apply(new listBlock.RemoveChildAction(item));
|
|
2412
2414
|
});
|
|
2413
2415
|
}
|
|
2414
2416
|
this.removeRangeStartAndEndSelectedText();
|
|
@@ -2416,19 +2418,19 @@ class BaseHandler {
|
|
|
2416
2418
|
* if the range start node is image and the item is selected, so we need remove the image item, the image block will be removed if the item is the only item.
|
|
2417
2419
|
* but before remove the image block, we need insert a paragraph to make sure the start block and start node could be get correct before insert text or break paragraph action
|
|
2418
2420
|
*/
|
|
2419
|
-
if (startNode instanceof
|
|
2421
|
+
if (startNode instanceof listBlock.RTEImageNode &&
|
|
2420
2422
|
startOffset !== 1 &&
|
|
2421
2423
|
(endNode !== startNode || endOffset !== 0)) {
|
|
2422
2424
|
// the image block will be deleted when the image is the only item
|
|
2423
2425
|
if (startNode.parentBlock.nodes.length === 1) {
|
|
2424
2426
|
const paragraph = this.createEmptyParagraph();
|
|
2425
|
-
startNode.parentBlock.parent.apply(new
|
|
2426
|
-
startNode.parentBlock.apply(new
|
|
2427
|
+
startNode.parentBlock.parent.apply(new listBlock.InsertBlocksBeforeAction(startNode.parentBlock, paragraph));
|
|
2428
|
+
startNode.parentBlock.apply(new listBlock.RemoveChildAction(startNode));
|
|
2427
2429
|
return paragraph.nodes[0];
|
|
2428
2430
|
}
|
|
2429
2431
|
else if (startNode === startNode.parentBlock.nodes[0]) {
|
|
2430
2432
|
// the start node should be the next image item if the image is first item
|
|
2431
|
-
startNode.parentBlock.apply(new
|
|
2433
|
+
startNode.parentBlock.apply(new listBlock.RemoveChildAction(startNode));
|
|
2432
2434
|
return startNode.parentBlock.nodes[0];
|
|
2433
2435
|
}
|
|
2434
2436
|
}
|
|
@@ -2440,9 +2442,9 @@ class BaseHandler {
|
|
|
2440
2442
|
* @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
|
|
2441
2443
|
*/
|
|
2442
2444
|
createEmptyParagraph() {
|
|
2443
|
-
const paragraph = new
|
|
2444
|
-
const textNode
|
|
2445
|
-
paragraph.apply(new
|
|
2445
|
+
const paragraph = new listBlock.RTETextBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID(), 'paragraph');
|
|
2446
|
+
const textNode = new listBlock.RTETextNode(`${paragraph.id}1`, '', paragraph);
|
|
2447
|
+
paragraph.apply(new listBlock.AppendChildNodesAction([textNode]));
|
|
2446
2448
|
return paragraph;
|
|
2447
2449
|
}
|
|
2448
2450
|
/**
|
|
@@ -2474,10 +2476,10 @@ class BaseHandler {
|
|
|
2474
2476
|
*
|
|
2475
2477
|
* @example currentNode.parentBlock.apply(new InsertNodesBeforeAction(currentNode, newNode, ...))
|
|
2476
2478
|
*/
|
|
2477
|
-
class InsertNodesBeforeAction extends
|
|
2479
|
+
class InsertNodesBeforeAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
2478
2480
|
constructor(referNode, ...nodesToBeInserted) {
|
|
2479
2481
|
super();
|
|
2480
|
-
this.type =
|
|
2482
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.INSERT_NODES_BEFORE;
|
|
2481
2483
|
this.referNode = referNode;
|
|
2482
2484
|
this.nodesToBeInserted = nodesToBeInserted;
|
|
2483
2485
|
}
|
|
@@ -2500,7 +2502,7 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2500
2502
|
const cursorNode = this.insertTextToRoot(text);
|
|
2501
2503
|
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, text.length);
|
|
2502
2504
|
}
|
|
2503
|
-
else if (selectedNodes[0] instanceof
|
|
2505
|
+
else if (selectedNodes[0] instanceof listBlock.RTETextNode) {
|
|
2504
2506
|
let nextOffset = startOffset + text.length;
|
|
2505
2507
|
let updateFlag = false;
|
|
2506
2508
|
let cursorNode = selectedNodes[0];
|
|
@@ -2509,13 +2511,13 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2509
2511
|
updateFlag = true;
|
|
2510
2512
|
}
|
|
2511
2513
|
else {
|
|
2512
|
-
if (startContainer.nodeValue ===
|
|
2513
|
-
startOffset ===
|
|
2514
|
+
if (startContainer.nodeValue === listBlock.ZERO_WIDTH_SPACE &&
|
|
2515
|
+
startOffset === listBlock.ZERO_WIDTH_SPACE.length &&
|
|
2514
2516
|
cursorNode.isEmpty()) {
|
|
2515
2517
|
startContainer.nodeValue = '';
|
|
2516
|
-
nextOffset = nextOffset -
|
|
2518
|
+
nextOffset = nextOffset - listBlock.ZERO_WIDTH_SPACE.length;
|
|
2517
2519
|
}
|
|
2518
|
-
if (cursorNode instanceof
|
|
2520
|
+
if (cursorNode instanceof listBlock.RTETextNode) {
|
|
2519
2521
|
updateFlag = true;
|
|
2520
2522
|
cursorNode.apply(new ReplaceSelectedTextAction(text, currentRange));
|
|
2521
2523
|
}
|
|
@@ -2527,7 +2529,7 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2527
2529
|
else {
|
|
2528
2530
|
// The selected nodes is multiple nodes
|
|
2529
2531
|
const cursorNode = this.replaceSelectedNodesWithText(text);
|
|
2530
|
-
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, cursorNode instanceof
|
|
2532
|
+
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, cursorNode instanceof listBlock.RTETextNode
|
|
2531
2533
|
? Math.min(startOffset + text.length, cursorNode.text.length)
|
|
2532
2534
|
: startOffset);
|
|
2533
2535
|
}
|
|
@@ -2541,9 +2543,9 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2541
2543
|
insertTextToRoot(text) {
|
|
2542
2544
|
if (this.currentState &&
|
|
2543
2545
|
this.currentState.blocks[0] &&
|
|
2544
|
-
this.currentState.blocks[0] instanceof
|
|
2546
|
+
this.currentState.blocks[0] instanceof listBlock.RTETextBlock) {
|
|
2545
2547
|
const firstNode = this.currentState.blocks[0].nodes[0];
|
|
2546
|
-
firstNode.apply(new
|
|
2548
|
+
firstNode.apply(new listBlock.UpdateTextAction(text));
|
|
2547
2549
|
return firstNode;
|
|
2548
2550
|
}
|
|
2549
2551
|
}
|
|
@@ -2564,7 +2566,7 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2564
2566
|
return newTextNode;
|
|
2565
2567
|
}
|
|
2566
2568
|
else {
|
|
2567
|
-
lineBreakNode.apply(new
|
|
2569
|
+
lineBreakNode.apply(new listBlock.UpdateTextAction(text));
|
|
2568
2570
|
return lineBreakNode;
|
|
2569
2571
|
}
|
|
2570
2572
|
}
|
|
@@ -2577,10 +2579,10 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2577
2579
|
*
|
|
2578
2580
|
* @example currentBlock.apply(new BreakSingleBlockAction(startContainerNode, startOffset))
|
|
2579
2581
|
*/
|
|
2580
|
-
class BreakSingleBlockAction extends
|
|
2582
|
+
class BreakSingleBlockAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
2581
2583
|
constructor(startContainerNode, startOffset) {
|
|
2582
2584
|
super();
|
|
2583
|
-
this.type =
|
|
2585
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.BREAK_SINGLE_BLOCK;
|
|
2584
2586
|
this.startContainerNode = startContainerNode;
|
|
2585
2587
|
this.startOffset = startOffset;
|
|
2586
2588
|
}
|
|
@@ -2639,8 +2641,8 @@ class InsertParagraphHandler extends BaseHandler {
|
|
|
2639
2641
|
*/
|
|
2640
2642
|
if (firstBlock.type !== lastBlock.type &&
|
|
2641
2643
|
range.startContainer.nodeType === range.endContainer.nodeType) {
|
|
2642
|
-
firstBlock.apply(new
|
|
2643
|
-
const splitAction = new
|
|
2644
|
+
firstBlock.apply(new listBlock.MergeTwoBlocksNodesAction(lastBlock));
|
|
2645
|
+
const splitAction = new listBlock.SplitBlockWithNodeAction(cursorNode, cursorNode['text'].length);
|
|
2644
2646
|
firstBlock.apply(splitAction);
|
|
2645
2647
|
this.switchCaretPositionToNextElement(splitAction.newBlock);
|
|
2646
2648
|
return;
|
|
@@ -2678,10 +2680,10 @@ class InsertParagraphHandler extends BaseHandler {
|
|
|
2678
2680
|
*
|
|
2679
2681
|
* @example block.apply(new SplitBlockWithNodeAction(node, offset))
|
|
2680
2682
|
*/
|
|
2681
|
-
class LineBreakSingleBlockAction extends
|
|
2683
|
+
class LineBreakSingleBlockAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
2682
2684
|
constructor(startContainerNode, startOffset) {
|
|
2683
2685
|
super();
|
|
2684
|
-
this.type =
|
|
2686
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.LINE_BREAK_SINGLE_BLOCK;
|
|
2685
2687
|
this.startContainerNode = startContainerNode;
|
|
2686
2688
|
this.startOffset = startOffset;
|
|
2687
2689
|
}
|
|
@@ -2692,10 +2694,10 @@ class LineBreakSingleBlockAction extends node_abstract.ModifyContentAction {
|
|
|
2692
2694
|
*
|
|
2693
2695
|
* @example block.apply(new SplitBlockWithNodeAction(node, offset))
|
|
2694
2696
|
*/
|
|
2695
|
-
class lineBreakMultipleBlocksAction extends
|
|
2697
|
+
class lineBreakMultipleBlocksAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
2696
2698
|
constructor(selectedBlocks) {
|
|
2697
2699
|
super();
|
|
2698
|
-
this.type =
|
|
2700
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.LINE_BREAK_MULTIPLE_BLOCKS;
|
|
2699
2701
|
this.selectedBlocks = selectedBlocks;
|
|
2700
2702
|
}
|
|
2701
2703
|
}
|
|
@@ -2726,10 +2728,10 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2726
2728
|
* </p>
|
|
2727
2729
|
*/
|
|
2728
2730
|
breakNewBlock() {
|
|
2729
|
-
const newBlock = new
|
|
2731
|
+
const newBlock = new listBlock.RTETextBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID(), 'paragraph');
|
|
2730
2732
|
const lineBreakNode = this.createLineBreakNode(newBlock);
|
|
2731
|
-
newBlock.apply(new
|
|
2732
|
-
this.currentState.apply(new
|
|
2733
|
+
newBlock.apply(new listBlock.AppendChildNodesAction([this.createLineBreakNode(newBlock), lineBreakNode]));
|
|
2734
|
+
this.currentState.apply(new listBlock.AppendChildNodesAction([newBlock]));
|
|
2733
2735
|
this.switchCaretPositionToSpecifiedNode(lineBreakNode);
|
|
2734
2736
|
}
|
|
2735
2737
|
/**
|
|
@@ -2790,7 +2792,7 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2790
2792
|
* @returns {RTETextNode} the new line break node.
|
|
2791
2793
|
*/
|
|
2792
2794
|
createLineBreakNode(block) {
|
|
2793
|
-
return new
|
|
2795
|
+
return new listBlock.RTETextNode(createPublicApiRuntimeMetricsSlimmer.generateUUID(), '\n', block);
|
|
2794
2796
|
}
|
|
2795
2797
|
}
|
|
2796
2798
|
|
|
@@ -2799,10 +2801,10 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2799
2801
|
*
|
|
2800
2802
|
* @example currentBlock.apply(new DeleteBlockContentAction(startContainerNode, startOffset))
|
|
2801
2803
|
*/
|
|
2802
|
-
class DeleteBlockContentAction extends
|
|
2804
|
+
class DeleteBlockContentAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
2803
2805
|
constructor(startContainerNode, startOffset) {
|
|
2804
2806
|
super();
|
|
2805
|
-
this.type =
|
|
2807
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.DELETE_BLOCK_CONTENT;
|
|
2806
2808
|
this.startContainerNode = startContainerNode;
|
|
2807
2809
|
this.startOffset = startOffset;
|
|
2808
2810
|
}
|
|
@@ -2856,7 +2858,7 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2856
2858
|
*/
|
|
2857
2859
|
insertDefaultParagraph() {
|
|
2858
2860
|
const paragraph = this.createEmptyParagraph();
|
|
2859
|
-
this.currentState.apply(new
|
|
2861
|
+
this.currentState.apply(new listBlock.AppendChildNodesAction([paragraph]));
|
|
2860
2862
|
this.selectionController.enqueueSelectionRangeFutureState(paragraph.nodes[0], 1);
|
|
2861
2863
|
}
|
|
2862
2864
|
/**
|
|
@@ -2868,9 +2870,9 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2868
2870
|
const cursorNode = this.replaceSelectedNodesWithText('');
|
|
2869
2871
|
const lastSelectedNode = selectedNodes[selectedNodes.length - 1];
|
|
2870
2872
|
if (selectedNodes.length > 1 &&
|
|
2871
|
-
lastSelectedNode instanceof
|
|
2873
|
+
lastSelectedNode instanceof listBlock.RTETextNode &&
|
|
2872
2874
|
lastSelectedNode.isEmpty()) {
|
|
2873
|
-
lastSelectedNode.parentBlock.apply(new
|
|
2875
|
+
lastSelectedNode.parentBlock.apply(new listBlock.RemoveChildAction(lastSelectedNode));
|
|
2874
2876
|
}
|
|
2875
2877
|
this.convertFirstBlockToParagraph(cursorNode.parentBlock);
|
|
2876
2878
|
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, range.startOffset);
|
|
@@ -2883,14 +2885,14 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2883
2885
|
convertFirstBlockToParagraph(block) {
|
|
2884
2886
|
const firstBlock = this.currentState.blocks[0];
|
|
2885
2887
|
if (firstBlock === block &&
|
|
2886
|
-
block instanceof
|
|
2888
|
+
block instanceof listBlock.RTETextBlock &&
|
|
2887
2889
|
block.nodes.length === 1 &&
|
|
2888
2890
|
block.nodes[0].isEmpty() &&
|
|
2889
2891
|
block.type !== 'paragraph') {
|
|
2890
2892
|
const paragraph = this.createEmptyParagraph();
|
|
2891
|
-
paragraph.apply(new
|
|
2892
|
-
block.parent.apply(new
|
|
2893
|
-
block.parent.apply(new
|
|
2893
|
+
paragraph.apply(new listBlock.ReplaceChildNodesAction(block.nodes));
|
|
2894
|
+
block.parent.apply(new listBlock.InsertBlocksBeforeAction(block, paragraph));
|
|
2895
|
+
block.parent.apply(new listBlock.RemoveChildAction(block));
|
|
2894
2896
|
}
|
|
2895
2897
|
}
|
|
2896
2898
|
/**
|
|
@@ -2910,446 +2912,530 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2910
2912
|
}
|
|
2911
2913
|
|
|
2912
2914
|
/**
|
|
2913
|
-
* Abstract class
|
|
2915
|
+
* Abstract class to define strategies for processing HTML elements
|
|
2914
2916
|
*/
|
|
2915
|
-
class
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
this.
|
|
2924
|
-
this.
|
|
2917
|
+
class ElementToDTOStrategy {
|
|
2918
|
+
}
|
|
2919
|
+
/**
|
|
2920
|
+
* Class to represent the output of a strategy applied to HTML elements
|
|
2921
|
+
*/
|
|
2922
|
+
class ElementToDTOStrategyOutput {
|
|
2923
|
+
constructor(currentStrategy, currentElements) {
|
|
2924
|
+
this.childrenOutput = [];
|
|
2925
|
+
this.currentStrategy = currentStrategy;
|
|
2926
|
+
this.currentElements = currentElements;
|
|
2925
2927
|
}
|
|
2926
|
-
/* istanbul ignore next */
|
|
2927
|
-
// eslint-disable-next-line jsdoc/require-returns-check
|
|
2928
2928
|
/**
|
|
2929
|
-
*
|
|
2929
|
+
* Set children output.
|
|
2930
2930
|
*
|
|
2931
|
-
* @param {
|
|
2932
|
-
* @returns {boolean} Can be handle.
|
|
2931
|
+
* @param {ElementToDTOStrategyOutput[]} childrenOutput - children outputs.
|
|
2933
2932
|
*/
|
|
2934
|
-
|
|
2935
|
-
|
|
2933
|
+
setChildrenOutput(childrenOutput) {
|
|
2934
|
+
this.childrenOutput = childrenOutput;
|
|
2936
2935
|
}
|
|
2937
2936
|
/**
|
|
2938
|
-
* Transform current
|
|
2937
|
+
* Transform current output and children output to DTO
|
|
2939
2938
|
*
|
|
2940
|
-
* @returns {
|
|
2941
|
-
*/
|
|
2942
|
-
|
|
2943
|
-
const
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2939
|
+
* @returns {RTEContentBlock} - DTO.
|
|
2940
|
+
*/
|
|
2941
|
+
toDto() {
|
|
2942
|
+
const currentBlock = this.currentStrategy.handle(this.currentElements);
|
|
2943
|
+
if (this.childrenOutput.length > 0 && currentBlock) {
|
|
2944
|
+
this.currentStrategy.appendChildBlocks(currentBlock, this.childrenOutput
|
|
2945
|
+
.map((childOutput) => childOutput.toDto())
|
|
2946
|
+
.filter(Boolean));
|
|
2947
2947
|
}
|
|
2948
|
-
|
|
2949
|
-
const block = contentState.RTETextBlock.fromHTML(element, 'paragraph');
|
|
2950
|
-
element.innerHTML = '';
|
|
2951
|
-
return block;
|
|
2952
|
-
}
|
|
2953
|
-
return null;
|
|
2948
|
+
return currentBlock;
|
|
2954
2949
|
}
|
|
2950
|
+
}
|
|
2951
|
+
|
|
2952
|
+
/** Abstract class for block html element to RTE block dto */
|
|
2953
|
+
class BlockToRTEBlockStrategyAbstract extends ElementToDTOStrategy {
|
|
2955
2954
|
/**
|
|
2956
|
-
*
|
|
2955
|
+
* Generate child nodes of block element, this will inherit all annotations from parent to text node and
|
|
2956
|
+
* flat the child nodes.
|
|
2957
2957
|
*
|
|
2958
|
-
*
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2958
|
+
* Example:
|
|
2959
|
+
* <li>
|
|
2960
|
+
* <u><i>text1</i></u>
|
|
2961
|
+
* <span style='font-weight: bold;'><span>text2</span></span>
|
|
2962
|
+
* text3
|
|
2963
|
+
* </li>
|
|
2964
|
+
* will tranform to:
|
|
2965
|
+
* <li>
|
|
2966
|
+
* <span>text1</span> // with underline and italic annotations
|
|
2967
|
+
* <span>text2</span> // with bold annotations
|
|
2968
|
+
* <span>text3</span> // no annotations
|
|
2969
|
+
* </li>
|
|
2970
|
+
*
|
|
2971
|
+
* @param {HTMLElement[]} elements - Child elements.
|
|
2972
|
+
* @param {HTMLElement[]} annotations - Parent annotations.
|
|
2973
|
+
* @returns {VegaRTETextNode[]} - Text node DTO.
|
|
2974
|
+
*/
|
|
2975
|
+
generateChildNodes(elements, annotations = {}) {
|
|
2976
|
+
const childNodes = [];
|
|
2977
|
+
elements.forEach((child) => {
|
|
2978
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
2979
|
+
if (this.isInvalidTextNode(child))
|
|
2980
|
+
return;
|
|
2981
|
+
childNodes.push({
|
|
2982
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
2983
|
+
type: 'text',
|
|
2984
|
+
text: child.textContent,
|
|
2985
|
+
annotations: annotations,
|
|
2986
|
+
});
|
|
2987
|
+
}
|
|
2988
|
+
else {
|
|
2989
|
+
childNodes.push(...this.generateChildNodes(Array.from(child.childNodes), Object.assign({}, annotations, this.generateTextNodeAnnotations(child))));
|
|
2990
|
+
}
|
|
2991
|
+
});
|
|
2992
|
+
return childNodes;
|
|
2962
2993
|
}
|
|
2963
2994
|
/**
|
|
2964
|
-
*
|
|
2995
|
+
* Generate annotations map for block element.
|
|
2965
2996
|
*
|
|
2966
|
-
* @param {HTMLElement}
|
|
2967
|
-
* @returns {
|
|
2997
|
+
* @param {HTMLElement} element - current element.
|
|
2998
|
+
* @returns {VegaRTEBlockAnnotations} - Text block annotations.
|
|
2968
2999
|
*/
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
3000
|
+
generateBlockAnnotations(element) {
|
|
3001
|
+
const annotations = {};
|
|
3002
|
+
const textAlign = this.getTextAlign(element);
|
|
3003
|
+
const indent = this.getIndent(element);
|
|
3004
|
+
if (textAlign)
|
|
3005
|
+
annotations.textAlign = textAlign;
|
|
3006
|
+
if (indent)
|
|
3007
|
+
annotations.indent = indent;
|
|
3008
|
+
return annotations;
|
|
2975
3009
|
}
|
|
2976
3010
|
/**
|
|
2977
|
-
*
|
|
3011
|
+
* Check is a invalid text node.
|
|
2978
3012
|
*
|
|
2979
|
-
* @param {HTMLElement} element - Current element.
|
|
3013
|
+
* @param {HTMLElement} element - Current node element.
|
|
3014
|
+
* @returns {boolean} - boolean.
|
|
2980
3015
|
*/
|
|
2981
|
-
|
|
2982
|
-
if (element.
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
const parent = element.parentElement;
|
|
2987
|
-
const parentStyle = parent.getAttribute('style') || '';
|
|
2988
|
-
const parentClass = parent.classList;
|
|
2989
|
-
switch (element.nodeName) {
|
|
2990
|
-
case 'CODE':
|
|
2991
|
-
currentClass.add('v-rte--code');
|
|
2992
|
-
break;
|
|
2993
|
-
case 'STRONG':
|
|
2994
|
-
currentStyle += 'font-weight: bold; ';
|
|
2995
|
-
break;
|
|
2996
|
-
case 'I':
|
|
2997
|
-
case 'EM':
|
|
2998
|
-
currentStyle += 'font-style: italic; ';
|
|
2999
|
-
break;
|
|
3000
|
-
case 'S':
|
|
3001
|
-
currentClass.add('v-rte--strikethrough');
|
|
3002
|
-
break;
|
|
3003
|
-
case 'U':
|
|
3004
|
-
currentClass.add('v-rte--underline');
|
|
3005
|
-
break;
|
|
3016
|
+
isInvalidTextNode(element) {
|
|
3017
|
+
if (element.nodeValue.includes('\t')) {
|
|
3018
|
+
const value = element.nodeValue.replace(/\n|\t/gm, '');
|
|
3019
|
+
if (value.length === 0)
|
|
3020
|
+
return true;
|
|
3006
3021
|
}
|
|
3007
|
-
|
|
3008
|
-
element.classList.add(...Array.from(parentClass));
|
|
3022
|
+
return false;
|
|
3009
3023
|
}
|
|
3010
3024
|
/**
|
|
3011
|
-
*
|
|
3012
|
-
* while element is a text node, we should wrap it and inherit it style
|
|
3013
|
-
* otherwise, we should clone it and clear content.
|
|
3025
|
+
* Generate annotations map for text node element.
|
|
3014
3026
|
*
|
|
3015
|
-
* @param {HTMLElement} element -
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
if (element
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
this.
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3027
|
+
* @param {HTMLElement} element - current element.
|
|
3028
|
+
* @returns {VegaRTETextAnnotations | VegaRTECodeAnnotations} - Text node annotations.
|
|
3029
|
+
*/
|
|
3030
|
+
generateTextNodeAnnotations(element) {
|
|
3031
|
+
if (this.isCode(element))
|
|
3032
|
+
return { code: true };
|
|
3033
|
+
const annotations = {
|
|
3034
|
+
bold: this.isBold(element),
|
|
3035
|
+
italic: this.isItalic(element),
|
|
3036
|
+
underline: this.isUnderline(element),
|
|
3037
|
+
strikethrough: this.isStrikethrough(element),
|
|
3038
|
+
};
|
|
3039
|
+
const color = this.getColor(element);
|
|
3040
|
+
const link = this.getLink(element);
|
|
3041
|
+
if (color)
|
|
3042
|
+
annotations.textColor = color;
|
|
3043
|
+
if (link)
|
|
3044
|
+
annotations.link = link;
|
|
3045
|
+
return annotations;
|
|
3031
3046
|
}
|
|
3032
3047
|
/**
|
|
3033
|
-
*
|
|
3048
|
+
* Is code element.
|
|
3034
3049
|
*
|
|
3035
|
-
* @
|
|
3050
|
+
* @param {HTMLElement} element - current element.
|
|
3051
|
+
* @returns {boolean} - boolean.
|
|
3036
3052
|
*/
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
span.append('\n');
|
|
3040
|
-
return span;
|
|
3053
|
+
isCode(element) {
|
|
3054
|
+
return element.classList.contains('v-rte--code') || element.nodeName === 'CODE';
|
|
3041
3055
|
}
|
|
3042
|
-
}
|
|
3043
|
-
ElementToDTOHandlerAbstract.currentTextBlockElement = document.createElement('div');
|
|
3044
|
-
|
|
3045
|
-
/**
|
|
3046
|
-
* Transform image element to DTO.
|
|
3047
|
-
*/
|
|
3048
|
-
class ImageToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
3049
3056
|
/**
|
|
3050
|
-
*
|
|
3057
|
+
* Is bold element.
|
|
3051
3058
|
*
|
|
3052
|
-
* @param {HTMLElement} element -
|
|
3053
|
-
* @returns {boolean}
|
|
3059
|
+
* @param {HTMLElement} element - current element.
|
|
3060
|
+
* @returns {boolean} - boolean.
|
|
3054
3061
|
*/
|
|
3055
|
-
|
|
3056
|
-
return (element.
|
|
3057
|
-
|
|
3062
|
+
isBold(element) {
|
|
3063
|
+
return (element.nodeName === 'STRONG' ||
|
|
3064
|
+
element.style.fontWeight === 'bold' ||
|
|
3065
|
+
element.style.fontWeight === '700');
|
|
3058
3066
|
}
|
|
3059
3067
|
/**
|
|
3060
|
-
*
|
|
3068
|
+
* Is italic element.
|
|
3061
3069
|
*
|
|
3062
|
-
* @
|
|
3070
|
+
* @param {HTMLElement} element - current element.
|
|
3071
|
+
* @returns {boolean} - boolean.
|
|
3063
3072
|
*/
|
|
3064
|
-
|
|
3065
|
-
return
|
|
3073
|
+
isItalic(element) {
|
|
3074
|
+
return element.nodeName === 'I' || element.style.fontStyle === 'italic' || element.nodeName === 'EM';
|
|
3066
3075
|
}
|
|
3067
3076
|
/**
|
|
3068
|
-
*
|
|
3069
|
-
* When blockElement is exist, it means that the current element is a child node,
|
|
3070
|
-
* and we need to wait for its root block to be converted into a dto.
|
|
3071
|
-
* Otherwise, the current node is the root node, and we can directly convert it.
|
|
3077
|
+
* Is underline element.
|
|
3072
3078
|
*
|
|
3073
|
-
* @
|
|
3079
|
+
* @param {HTMLElement} element - current element.
|
|
3080
|
+
* @returns {boolean} - boolean.
|
|
3074
3081
|
*/
|
|
3075
|
-
|
|
3076
|
-
return
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
];
|
|
3082
|
+
isUnderline(element) {
|
|
3083
|
+
return (element.style.textDecoration.includes('underline') ||
|
|
3084
|
+
element.nodeName === 'U' ||
|
|
3085
|
+
element.classList.contains('v-rte--underline'));
|
|
3080
3086
|
}
|
|
3081
3087
|
/**
|
|
3082
|
-
*
|
|
3088
|
+
* Is strikethrough element.
|
|
3083
3089
|
*
|
|
3084
|
-
* @
|
|
3090
|
+
* @param {HTMLElement} element - current element.
|
|
3091
|
+
* @returns {boolean} - boolean.
|
|
3085
3092
|
*/
|
|
3086
|
-
|
|
3087
|
-
return
|
|
3093
|
+
isStrikethrough(element) {
|
|
3094
|
+
return (element.style.textDecoration.includes('line-through') ||
|
|
3095
|
+
element.nodeName === 'S' ||
|
|
3096
|
+
element.classList.contains('v-rte--strikethrough'));
|
|
3088
3097
|
}
|
|
3089
|
-
}
|
|
3090
|
-
|
|
3091
|
-
/**
|
|
3092
|
-
* Transform link element to DTO.
|
|
3093
|
-
*/
|
|
3094
|
-
class InlineBlockToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
3095
3098
|
/**
|
|
3096
|
-
*
|
|
3099
|
+
* Get current color of element.
|
|
3097
3100
|
*
|
|
3098
|
-
* @
|
|
3101
|
+
* @param {HTMLElement} element - current element.
|
|
3102
|
+
* @returns {Nullable<string>} - color.
|
|
3099
3103
|
*/
|
|
3100
|
-
|
|
3101
|
-
|
|
3104
|
+
getColor(element) {
|
|
3105
|
+
var _a;
|
|
3106
|
+
const color = element.style.color;
|
|
3107
|
+
const hexColor = (_a = ui.rgbToHex(color)) === null || _a === void 0 ? void 0 : _a.toUpperCase();
|
|
3108
|
+
if (hexColor) {
|
|
3109
|
+
const colorSchema = listBlock.RTE_TEXT_COLORS.find((schema) => schema.light === hexColor || schema.dark === hexColor);
|
|
3110
|
+
if (colorSchema)
|
|
3111
|
+
return colorSchema.key;
|
|
3112
|
+
return null;
|
|
3113
|
+
}
|
|
3114
|
+
else {
|
|
3115
|
+
for (const color of listBlock.RTE_TEXT_COLORS) {
|
|
3116
|
+
if (element.style.color.includes(color.key)) {
|
|
3117
|
+
return color.key;
|
|
3118
|
+
}
|
|
3119
|
+
}
|
|
3120
|
+
return null;
|
|
3121
|
+
}
|
|
3102
3122
|
}
|
|
3103
3123
|
/**
|
|
3104
|
-
*
|
|
3124
|
+
* Get current link of element.
|
|
3105
3125
|
*
|
|
3106
|
-
* @
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3126
|
+
* @param {HTMLElement} element - current element.
|
|
3127
|
+
* @returns {Nullable<VegaRTELink>} - link.
|
|
3128
|
+
*/
|
|
3129
|
+
getLink(element) {
|
|
3130
|
+
if (element.nodeName === 'A') {
|
|
3131
|
+
return {
|
|
3132
|
+
href: element.href,
|
|
3133
|
+
groupKey: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3134
|
+
};
|
|
3135
|
+
}
|
|
3136
|
+
return null;
|
|
3110
3137
|
}
|
|
3111
3138
|
/**
|
|
3112
|
-
*
|
|
3139
|
+
* Get text align of current element.
|
|
3113
3140
|
*
|
|
3114
|
-
* @
|
|
3141
|
+
* @param {HTMLElement} element - current element.
|
|
3142
|
+
* @returns {Nullable<VegaRTEBlockAlignment>} - Text align.
|
|
3115
3143
|
*/
|
|
3116
|
-
|
|
3117
|
-
|
|
3144
|
+
getTextAlign(element) {
|
|
3145
|
+
const classList = element.classList;
|
|
3146
|
+
if (classList.contains(`v-rte--horizontal-alignment-left`)) {
|
|
3147
|
+
return 'left';
|
|
3148
|
+
}
|
|
3149
|
+
else if (classList.contains(`v-rte--horizontal-alignment-center`)) {
|
|
3150
|
+
return 'center';
|
|
3151
|
+
}
|
|
3152
|
+
else if (classList.contains(`v-rte--horizontal-alignment-right`)) {
|
|
3153
|
+
return 'right';
|
|
3154
|
+
}
|
|
3155
|
+
else if (classList.contains(`v-rte--horizontal-alignment-justify`)) {
|
|
3156
|
+
return 'justify';
|
|
3157
|
+
}
|
|
3158
|
+
const style = element.style;
|
|
3159
|
+
switch (style.textAlign) {
|
|
3160
|
+
case 'center':
|
|
3161
|
+
return 'center';
|
|
3162
|
+
case 'right':
|
|
3163
|
+
return 'right';
|
|
3164
|
+
case 'justify':
|
|
3165
|
+
return 'justify';
|
|
3166
|
+
case 'left':
|
|
3167
|
+
return 'left';
|
|
3168
|
+
default:
|
|
3169
|
+
return null;
|
|
3170
|
+
}
|
|
3118
3171
|
}
|
|
3119
3172
|
/**
|
|
3120
|
-
* Get
|
|
3173
|
+
* Get indent of current element.
|
|
3121
3174
|
*
|
|
3122
|
-
* @param {
|
|
3123
|
-
* @returns {Nullable<
|
|
3124
|
-
*/
|
|
3125
|
-
|
|
3126
|
-
|
|
3175
|
+
* @param {HTMLElement} element - current element.
|
|
3176
|
+
* @returns {Nullable<number>} - Indent.
|
|
3177
|
+
*/
|
|
3178
|
+
getIndent(element) {
|
|
3179
|
+
const style = element.style;
|
|
3180
|
+
let marginLeft;
|
|
3181
|
+
if (style.marginLeft) {
|
|
3182
|
+
marginLeft = style.marginLeft;
|
|
3183
|
+
}
|
|
3184
|
+
else if (style.margin) {
|
|
3185
|
+
const margins = style.margin.split(' ');
|
|
3186
|
+
switch (margins.length) {
|
|
3187
|
+
case 4:
|
|
3188
|
+
marginLeft = margins[3];
|
|
3189
|
+
break;
|
|
3190
|
+
case 2:
|
|
3191
|
+
case 3:
|
|
3192
|
+
marginLeft = margins[1];
|
|
3193
|
+
break;
|
|
3194
|
+
default:
|
|
3195
|
+
marginLeft = margins[0];
|
|
3196
|
+
break;
|
|
3197
|
+
}
|
|
3198
|
+
}
|
|
3199
|
+
else {
|
|
3200
|
+
return null;
|
|
3201
|
+
}
|
|
3202
|
+
const marginLeftNumber = Number(marginLeft.replace('px', ''));
|
|
3203
|
+
return marginLeftNumber && marginLeftNumber >= 0 ? Math.floor(marginLeftNumber / 16) : null;
|
|
3127
3204
|
}
|
|
3128
3205
|
}
|
|
3129
3206
|
|
|
3130
|
-
/**
|
|
3131
|
-
|
|
3132
|
-
*/
|
|
3133
|
-
class LinkToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
3134
|
-
constructor(element) {
|
|
3135
|
-
super(element);
|
|
3136
|
-
}
|
|
3207
|
+
/** Transform continue inline block elements to text block DTO */
|
|
3208
|
+
class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3137
3209
|
/**
|
|
3138
|
-
* Can be
|
|
3210
|
+
* Can be handle.
|
|
3139
3211
|
*
|
|
3140
|
-
* @param {HTMLElement}
|
|
3141
|
-
* @
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3212
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3213
|
+
* @param {number} currentIndex - Current element index.
|
|
3214
|
+
* @returns {number} - can be handled element count.
|
|
3215
|
+
*/
|
|
3216
|
+
canHandle(elementsArray, currentIndex) {
|
|
3217
|
+
let count = 0;
|
|
3218
|
+
for (let i = currentIndex; i < elementsArray.length; i++) {
|
|
3219
|
+
const element = elementsArray[i];
|
|
3220
|
+
if (element.nodeType === Node.TEXT_NODE ||
|
|
3221
|
+
(ContinueInlineToRTETextBlockStrategy.canHandleTags.includes(element.nodeName) &&
|
|
3222
|
+
!(element.textContent === '' && element.querySelector('IMG')))) {
|
|
3223
|
+
count++;
|
|
3224
|
+
}
|
|
3225
|
+
else {
|
|
3226
|
+
break;
|
|
3227
|
+
}
|
|
3228
|
+
}
|
|
3229
|
+
return count;
|
|
3153
3230
|
}
|
|
3154
3231
|
/**
|
|
3155
|
-
*
|
|
3232
|
+
* Parse to a text block.
|
|
3156
3233
|
*
|
|
3157
|
-
* @param {
|
|
3158
|
-
* @returns {RTEContentBlock
|
|
3159
|
-
*/
|
|
3160
|
-
handle(
|
|
3161
|
-
const
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3234
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3235
|
+
* @returns {Nullable<RTEContentBlock>} - Text block.
|
|
3236
|
+
*/
|
|
3237
|
+
handle(elementsArray) {
|
|
3238
|
+
const parent = elementsArray[0].parentElement;
|
|
3239
|
+
const nodes = this.generateChildNodes(elementsArray);
|
|
3240
|
+
if (nodes.length === 0)
|
|
3241
|
+
return null;
|
|
3242
|
+
return listBlock.RTETextBlock.from({
|
|
3243
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3244
|
+
type: 'paragraph',
|
|
3245
|
+
nodes: nodes,
|
|
3246
|
+
annotations: this.generateBlockAnnotations(parent),
|
|
3166
3247
|
});
|
|
3167
|
-
return [];
|
|
3168
3248
|
}
|
|
3249
|
+
/* istanbul ignore next */
|
|
3250
|
+
/**
|
|
3251
|
+
* Append child blocks.
|
|
3252
|
+
*/
|
|
3253
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
3254
|
+
appendChildBlocks() { }
|
|
3169
3255
|
/**
|
|
3170
|
-
*
|
|
3256
|
+
* Should continue process to child elements.
|
|
3171
3257
|
*
|
|
3172
|
-
* @returns {
|
|
3258
|
+
* @returns {boolean} - boolean.
|
|
3173
3259
|
*/
|
|
3174
|
-
|
|
3175
|
-
return
|
|
3260
|
+
shouldProceedToElementChildren() {
|
|
3261
|
+
return false;
|
|
3176
3262
|
}
|
|
3177
3263
|
}
|
|
3264
|
+
ContinueInlineToRTETextBlockStrategy.canHandleTags = [
|
|
3265
|
+
'SPAN',
|
|
3266
|
+
'STRONG',
|
|
3267
|
+
'CODE',
|
|
3268
|
+
'I',
|
|
3269
|
+
'EM',
|
|
3270
|
+
'S',
|
|
3271
|
+
'U',
|
|
3272
|
+
'A',
|
|
3273
|
+
'VEGA-RICH-TEXT-LINK-EDITOR',
|
|
3274
|
+
];
|
|
3178
3275
|
|
|
3179
|
-
/**
|
|
3180
|
-
|
|
3181
|
-
*/
|
|
3182
|
-
class ListItemToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
3276
|
+
/** Transform ul element to list block DTO */
|
|
3277
|
+
class UlToRTEListBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3183
3278
|
/**
|
|
3184
|
-
* Can be
|
|
3279
|
+
* Can be handle.
|
|
3185
3280
|
*
|
|
3186
|
-
* @param {HTMLElement}
|
|
3187
|
-
* @
|
|
3281
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3282
|
+
* @param {number} currentIndex - Current element index.
|
|
3283
|
+
* @returns {number} - can be handled element count.
|
|
3188
3284
|
*/
|
|
3189
|
-
|
|
3190
|
-
return ['
|
|
3285
|
+
canHandle(elementsArray, currentIndex) {
|
|
3286
|
+
return elementsArray[currentIndex].tagName === 'UL' ? 1 : 0;
|
|
3191
3287
|
}
|
|
3192
3288
|
/**
|
|
3193
|
-
*
|
|
3289
|
+
* Parse to a block.
|
|
3194
3290
|
*
|
|
3195
|
-
* @
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3291
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3292
|
+
* @returns {Nullable<RTEContentBlock>} - Bullet list block.
|
|
3293
|
+
*/
|
|
3294
|
+
handle(elementsArray) {
|
|
3295
|
+
if (elementsArray[0].childNodes.length === 0)
|
|
3296
|
+
return null;
|
|
3297
|
+
return listBlock.RTEListBlock.from({
|
|
3298
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3299
|
+
type: 'bullet-list',
|
|
3300
|
+
blocks: [],
|
|
3301
|
+
annotations: this.generateBlockAnnotations(elementsArray[0]),
|
|
3302
|
+
});
|
|
3199
3303
|
}
|
|
3200
3304
|
/**
|
|
3201
|
-
* Append list item
|
|
3305
|
+
* Append child list item blocks to current list block.
|
|
3202
3306
|
*
|
|
3203
|
-
* @param {
|
|
3204
|
-
* @
|
|
3307
|
+
* @param {RTEListBlock} currentBlock - Current list block.
|
|
3308
|
+
* @param {RTEListItemBlock[]} childBlocks - Current list item blocks.
|
|
3205
3309
|
*/
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3310
|
+
appendChildBlocks(currentBlock, childBlocks) {
|
|
3311
|
+
currentBlock.blocks = childBlocks;
|
|
3312
|
+
childBlocks.forEach((block) => (block.parent = currentBlock));
|
|
3209
3313
|
}
|
|
3210
3314
|
/**
|
|
3211
|
-
*
|
|
3315
|
+
* Should continue process to child elements.
|
|
3212
3316
|
*
|
|
3213
|
-
* @returns {
|
|
3317
|
+
* @returns {boolean} - boolean.
|
|
3214
3318
|
*/
|
|
3215
|
-
|
|
3216
|
-
return
|
|
3319
|
+
shouldProceedToElementChildren() {
|
|
3320
|
+
return true;
|
|
3217
3321
|
}
|
|
3218
3322
|
}
|
|
3219
3323
|
|
|
3220
|
-
/**
|
|
3221
|
-
|
|
3222
|
-
*/
|
|
3223
|
-
class ListToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
3324
|
+
/** Transform li element to list item block DTO */
|
|
3325
|
+
class LiToRTEListItemBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3224
3326
|
/**
|
|
3225
|
-
* Can be
|
|
3327
|
+
* Can be handle.
|
|
3226
3328
|
*
|
|
3227
|
-
* @param {HTMLElement}
|
|
3228
|
-
* @
|
|
3329
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3330
|
+
* @param {number} currentIndex - Current element index.
|
|
3331
|
+
* @returns {number} - can be handled element count.
|
|
3229
3332
|
*/
|
|
3230
|
-
|
|
3231
|
-
return ['
|
|
3333
|
+
canHandle(elementsArray, currentIndex) {
|
|
3334
|
+
return elementsArray[currentIndex].tagName === 'LI' ? 1 : 0;
|
|
3232
3335
|
}
|
|
3233
3336
|
/**
|
|
3234
|
-
*
|
|
3337
|
+
* Parse to a list item block.
|
|
3235
3338
|
*
|
|
3236
|
-
* @
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3339
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3340
|
+
* @returns {Nullable<RTEContentBlock>} - List item block.
|
|
3341
|
+
*/
|
|
3342
|
+
handle(elementsArray) {
|
|
3343
|
+
if (elementsArray[0].childNodes.length === 0)
|
|
3344
|
+
return null;
|
|
3345
|
+
return listBlock.RTEListItemBlock.from({
|
|
3346
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3347
|
+
type: 'list-item',
|
|
3348
|
+
nodes: this.generateChildNodes(Array.from(elementsArray[0].childNodes).filter((item) => !['UL', 'OL'].includes(item.nodeName))),
|
|
3349
|
+
annotations: this.generateBlockAnnotations(elementsArray[0]),
|
|
3350
|
+
});
|
|
3240
3351
|
}
|
|
3241
3352
|
/**
|
|
3242
|
-
*
|
|
3243
|
-
* When blockElement is exist, it means that the current element is a child node,
|
|
3244
|
-
* and we need to append and wait for its root block to be converted into a dto.
|
|
3245
|
-
* Otherwise, the current node is the root node, and we can directly convert it.
|
|
3353
|
+
* Append child list blocks to current list item block.
|
|
3246
3354
|
*
|
|
3247
|
-
* @param {
|
|
3248
|
-
* @
|
|
3355
|
+
* @param {RTEListBlock} currentBlock - Current list item block.
|
|
3356
|
+
* @param {RTEListItemBlock[]} childBlocks - Current list blocks.
|
|
3249
3357
|
*/
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
return [];
|
|
3253
|
-
}
|
|
3254
|
-
if (blockElement && ListItemToDTOHandler.canHandle(blockElement)) {
|
|
3255
|
-
blockElement.append(this.currentVirtualElement);
|
|
3256
|
-
return [];
|
|
3257
|
-
}
|
|
3258
|
-
else {
|
|
3259
|
-
return [
|
|
3260
|
-
ElementToDTOHandlerAbstract.currentTextBlockElementToDTO(),
|
|
3261
|
-
contentState.RTEListBlock.fromHTML(this.currentVirtualElement),
|
|
3262
|
-
];
|
|
3263
|
-
}
|
|
3358
|
+
appendChildBlocks(currentBlock, childBlocks) {
|
|
3359
|
+
currentBlock.children = childBlocks.filter((block) => ['bullet-list', 'number-list'].includes(block.type));
|
|
3264
3360
|
}
|
|
3265
3361
|
/**
|
|
3266
|
-
*
|
|
3362
|
+
* Should continue process to child elements.
|
|
3267
3363
|
*
|
|
3268
|
-
* @returns {
|
|
3364
|
+
* @returns {boolean} - boolean.
|
|
3269
3365
|
*/
|
|
3270
|
-
|
|
3271
|
-
return
|
|
3366
|
+
shouldProceedToElementChildren() {
|
|
3367
|
+
return true;
|
|
3272
3368
|
}
|
|
3273
3369
|
}
|
|
3274
3370
|
|
|
3275
|
-
/**
|
|
3276
|
-
|
|
3277
|
-
*/
|
|
3278
|
-
class ParagraphToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
3279
|
-
/**
|
|
3280
|
-
* Can be transform.
|
|
3281
|
-
*
|
|
3282
|
-
* @param {HTMLElement} element - An pasted element.
|
|
3283
|
-
* @returns {boolean} Result.
|
|
3284
|
-
*/
|
|
3285
|
-
static canHandle(element) {
|
|
3286
|
-
return ['DIV', 'P'].includes(element.nodeName);
|
|
3287
|
-
}
|
|
3371
|
+
/** Transform inline block element to text block DTO */
|
|
3372
|
+
class InlineBlockToRTETextBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3288
3373
|
/**
|
|
3289
|
-
*
|
|
3374
|
+
* Can be handle.
|
|
3290
3375
|
*
|
|
3291
|
-
* @
|
|
3376
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3377
|
+
* @param {number} currentIndex - Current element index.
|
|
3378
|
+
* @returns {number} - can be handled element count.
|
|
3292
3379
|
*/
|
|
3293
|
-
|
|
3294
|
-
return
|
|
3380
|
+
canHandle(elementsArray, currentIndex) {
|
|
3381
|
+
return ['heading-1', 'heading-2', 'heading-3', 'title', 'subtitle'].includes(this.getElementType(elementsArray[currentIndex]))
|
|
3382
|
+
? 1
|
|
3383
|
+
: 0;
|
|
3295
3384
|
}
|
|
3296
3385
|
/**
|
|
3297
|
-
*
|
|
3298
|
-
* When blockElement is exist, it means that the current element is a child node,
|
|
3299
|
-
* and we need to wait for its root block to be converted into a dto.
|
|
3300
|
-
* Otherwise, the current node is the root node, and we can directly convert it.
|
|
3386
|
+
* Parse to a text block.
|
|
3301
3387
|
*
|
|
3302
|
-
* @param {
|
|
3303
|
-
* @returns {RTEContentBlock
|
|
3304
|
-
*/
|
|
3305
|
-
handle(
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
ElementToDTOHandlerAbstract.currentTextBlockElementToDTO(),
|
|
3316
|
-
contentState.RTETextBlock.fromHTML(this.currentVirtualElement, 'paragraph'),
|
|
3317
|
-
];
|
|
3318
|
-
}
|
|
3388
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3389
|
+
* @returns {Nullable<RTEContentBlock>} - Text block.
|
|
3390
|
+
*/
|
|
3391
|
+
handle(elementsArray) {
|
|
3392
|
+
const nodes = this.generateChildNodes(elementsArray);
|
|
3393
|
+
if (nodes.length === 0)
|
|
3394
|
+
return null;
|
|
3395
|
+
return listBlock.RTETextBlock.from({
|
|
3396
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3397
|
+
type: this.getElementType(elementsArray[0]),
|
|
3398
|
+
nodes: nodes,
|
|
3399
|
+
annotations: Object.assign(Object.assign({}, this.generateBlockAnnotations(elementsArray[0])), { textStyle: this.getElementType(elementsArray[0]) }),
|
|
3400
|
+
});
|
|
3319
3401
|
}
|
|
3402
|
+
/* istanbul ignore next */
|
|
3320
3403
|
/**
|
|
3321
|
-
*
|
|
3322
|
-
*
|
|
3323
|
-
* @returns {HTMLElement} - Block element for child nodes.
|
|
3404
|
+
* Append child blocks.
|
|
3324
3405
|
*/
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
}
|
|
3328
|
-
}
|
|
3329
|
-
|
|
3330
|
-
/**
|
|
3331
|
-
* Transform text block element to DTO.
|
|
3332
|
-
*/
|
|
3333
|
-
class TextBlockToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
3406
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
3407
|
+
appendChildBlocks() { }
|
|
3334
3408
|
/**
|
|
3335
|
-
*
|
|
3409
|
+
* Should continue process to child elements.
|
|
3336
3410
|
*
|
|
3337
|
-
* @
|
|
3338
|
-
* @returns {boolean} Result.
|
|
3411
|
+
* @returns {boolean} - boolean.
|
|
3339
3412
|
*/
|
|
3340
|
-
|
|
3341
|
-
return
|
|
3413
|
+
shouldProceedToElementChildren() {
|
|
3414
|
+
return false;
|
|
3342
3415
|
}
|
|
3343
3416
|
/**
|
|
3344
|
-
* Get type of element.
|
|
3417
|
+
* Get node type of element.
|
|
3345
3418
|
*
|
|
3346
|
-
* @param {HTMLElement} element -
|
|
3347
|
-
* @returns {string} type.
|
|
3419
|
+
* @param {HTMLElement} element - element.
|
|
3420
|
+
* @returns {string} - node type.
|
|
3348
3421
|
*/
|
|
3349
|
-
|
|
3422
|
+
getElementType(element) {
|
|
3423
|
+
var _a;
|
|
3350
3424
|
if (element.nodeType !== Node.TEXT_NODE && element.hasAttribute('data-type')) {
|
|
3351
3425
|
return element.getAttribute('data-type');
|
|
3352
3426
|
}
|
|
3427
|
+
switch ((_a = element.style) === null || _a === void 0 ? void 0 : _a.fontSize) {
|
|
3428
|
+
case '36px':
|
|
3429
|
+
return 'title';
|
|
3430
|
+
case '28px':
|
|
3431
|
+
return 'subtitle';
|
|
3432
|
+
case '22px':
|
|
3433
|
+
return 'heading-1';
|
|
3434
|
+
case '20px':
|
|
3435
|
+
return 'heading-2';
|
|
3436
|
+
case '18px':
|
|
3437
|
+
return 'heading-3';
|
|
3438
|
+
}
|
|
3353
3439
|
switch (element.nodeName) {
|
|
3354
3440
|
case 'H1':
|
|
3355
3441
|
return 'heading-1';
|
|
@@ -3361,139 +3447,317 @@ class TextBlockToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
|
3361
3447
|
return '';
|
|
3362
3448
|
}
|
|
3363
3449
|
}
|
|
3450
|
+
}
|
|
3451
|
+
|
|
3452
|
+
/** Transform img element to image block DTO */
|
|
3453
|
+
class ImgToRTEImageBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3364
3454
|
/**
|
|
3365
|
-
*
|
|
3455
|
+
* Can be handle.
|
|
3366
3456
|
*
|
|
3367
|
-
* @
|
|
3457
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3458
|
+
* @param {number} currentIndex - Current element index.
|
|
3459
|
+
* @returns {number} - can be handled element count.
|
|
3368
3460
|
*/
|
|
3369
|
-
|
|
3370
|
-
return
|
|
3461
|
+
canHandle(elementsArray, currentIndex) {
|
|
3462
|
+
return elementsArray[currentIndex].tagName === 'IMG' ? 1 : 0;
|
|
3371
3463
|
}
|
|
3372
3464
|
/**
|
|
3373
|
-
*
|
|
3374
|
-
* When blockElement is exist, it means that the current element is a child node,
|
|
3375
|
-
* and we need to wait for its root block to be converted into a dto.
|
|
3376
|
-
* Otherwise, the current node is the root node, and we can directly convert it.
|
|
3465
|
+
* Parse to a image block.
|
|
3377
3466
|
*
|
|
3378
|
-
* @param {
|
|
3379
|
-
* @returns {RTEContentBlock
|
|
3380
|
-
*/
|
|
3381
|
-
handle(
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3467
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3468
|
+
* @returns {Nullable<RTEContentBlock>} - Image block.
|
|
3469
|
+
*/
|
|
3470
|
+
handle(elementsArray) {
|
|
3471
|
+
const element = elementsArray[0];
|
|
3472
|
+
return listBlock.RTEImageBlock.from({
|
|
3473
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3474
|
+
type: 'image',
|
|
3475
|
+
nodes: [
|
|
3476
|
+
{
|
|
3477
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3478
|
+
type: 'image',
|
|
3479
|
+
url: element.src,
|
|
3480
|
+
annotations: {
|
|
3481
|
+
size: 'md',
|
|
3482
|
+
alt: element.alt,
|
|
3483
|
+
},
|
|
3484
|
+
},
|
|
3485
|
+
],
|
|
3486
|
+
annotations: this.generateBlockAnnotations(element),
|
|
3487
|
+
});
|
|
3395
3488
|
}
|
|
3489
|
+
/* istanbul ignore next */
|
|
3396
3490
|
/**
|
|
3397
|
-
*
|
|
3491
|
+
* Append child blocks.
|
|
3492
|
+
*/
|
|
3493
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
3494
|
+
appendChildBlocks() { }
|
|
3495
|
+
/**
|
|
3496
|
+
* Should continue process to child elements.
|
|
3398
3497
|
*
|
|
3399
|
-
* @returns {
|
|
3498
|
+
* @returns {boolean} - boolean.
|
|
3400
3499
|
*/
|
|
3401
|
-
|
|
3402
|
-
return
|
|
3500
|
+
shouldProceedToElementChildren() {
|
|
3501
|
+
return false;
|
|
3403
3502
|
}
|
|
3404
3503
|
}
|
|
3405
3504
|
|
|
3406
|
-
/**
|
|
3407
|
-
|
|
3408
|
-
*/
|
|
3409
|
-
class TextToDTOHandler extends ElementToDTOHandlerAbstract {
|
|
3505
|
+
/** Transform vega-rich-text-image-editor element to image block DTO */
|
|
3506
|
+
class VegaImageToRTEImageBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3410
3507
|
/**
|
|
3411
|
-
* Can be
|
|
3508
|
+
* Can be handle.
|
|
3412
3509
|
*
|
|
3413
|
-
* @param {HTMLElement}
|
|
3414
|
-
* @
|
|
3510
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3511
|
+
* @param {number} currentIndex - Current element index.
|
|
3512
|
+
* @returns {number} - can be handled element count.
|
|
3415
3513
|
*/
|
|
3416
|
-
|
|
3417
|
-
return
|
|
3514
|
+
canHandle(elementsArray, currentIndex) {
|
|
3515
|
+
return elementsArray[currentIndex].tagName === 'VEGA-RICH-TEXT-IMAGE-EDITOR' ? 1 : 0;
|
|
3516
|
+
}
|
|
3517
|
+
/**
|
|
3518
|
+
* Parse to a image block.
|
|
3519
|
+
*
|
|
3520
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3521
|
+
* @returns {Nullable<RTEContentBlock>} - Image block.
|
|
3522
|
+
*/
|
|
3523
|
+
handle(elementsArray) {
|
|
3524
|
+
const element = elementsArray[0];
|
|
3525
|
+
const image = element.querySelector('img');
|
|
3526
|
+
return listBlock.RTEImageBlock.from({
|
|
3527
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3528
|
+
type: 'image',
|
|
3529
|
+
nodes: [
|
|
3530
|
+
{
|
|
3531
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3532
|
+
type: 'image',
|
|
3533
|
+
url: image.src,
|
|
3534
|
+
annotations: {
|
|
3535
|
+
size: element.size || 'md',
|
|
3536
|
+
alt: element.alt,
|
|
3537
|
+
},
|
|
3538
|
+
},
|
|
3539
|
+
],
|
|
3540
|
+
annotations: this.generateBlockAnnotations(element),
|
|
3541
|
+
});
|
|
3418
3542
|
}
|
|
3419
3543
|
/* istanbul ignore next */
|
|
3420
3544
|
/**
|
|
3421
|
-
*
|
|
3545
|
+
* Append child blocks.
|
|
3546
|
+
*/
|
|
3547
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
3548
|
+
appendChildBlocks() { }
|
|
3549
|
+
/**
|
|
3550
|
+
* Should continue process to child elements.
|
|
3422
3551
|
*
|
|
3423
|
-
* @returns {
|
|
3552
|
+
* @returns {boolean} - boolean.
|
|
3424
3553
|
*/
|
|
3425
|
-
|
|
3426
|
-
return
|
|
3554
|
+
shouldProceedToElementChildren() {
|
|
3555
|
+
return false;
|
|
3427
3556
|
}
|
|
3557
|
+
}
|
|
3558
|
+
|
|
3559
|
+
/** Transform ol element to list block DTO */
|
|
3560
|
+
class OlToRTEListBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3428
3561
|
/**
|
|
3429
|
-
*
|
|
3562
|
+
* Can be handle.
|
|
3430
3563
|
*
|
|
3431
|
-
* @param {
|
|
3432
|
-
* @
|
|
3564
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3565
|
+
* @param {number} currentIndex - Current element index.
|
|
3566
|
+
* @returns {number} - can be handled element count.
|
|
3433
3567
|
*/
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3568
|
+
canHandle(elementsArray, currentIndex) {
|
|
3569
|
+
return elementsArray[currentIndex].tagName === 'OL' ? 1 : 0;
|
|
3570
|
+
}
|
|
3571
|
+
/**
|
|
3572
|
+
* Parse to a number list block.
|
|
3573
|
+
*
|
|
3574
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3575
|
+
* @returns {Nullable<RTEContentBlock>} - Number list block.
|
|
3576
|
+
*/
|
|
3577
|
+
handle(elementsArray) {
|
|
3578
|
+
if (elementsArray[0].childNodes.length === 0)
|
|
3579
|
+
return null;
|
|
3580
|
+
return listBlock.RTEListBlock.from({
|
|
3581
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3582
|
+
type: 'number-list',
|
|
3583
|
+
blocks: [],
|
|
3584
|
+
annotations: this.generateBlockAnnotations(elementsArray[0]),
|
|
3585
|
+
});
|
|
3586
|
+
}
|
|
3587
|
+
/**
|
|
3588
|
+
* Append child list item blocks to current list block.
|
|
3589
|
+
*
|
|
3590
|
+
* @param {RTEListBlock} currentBlock - Current list block.
|
|
3591
|
+
* @param {RTEListItemBlock[]} childBlocks - Current list item blocks.
|
|
3592
|
+
*/
|
|
3593
|
+
appendChildBlocks(currentBlock, childBlocks) {
|
|
3594
|
+
currentBlock.blocks = childBlocks;
|
|
3595
|
+
childBlocks.forEach((block) => (block.parent = currentBlock));
|
|
3596
|
+
}
|
|
3597
|
+
/**
|
|
3598
|
+
* Should continue process to child elements.
|
|
3599
|
+
*
|
|
3600
|
+
* @returns {boolean} - boolean.
|
|
3601
|
+
*/
|
|
3602
|
+
shouldProceedToElementChildren() {
|
|
3603
|
+
return true;
|
|
3604
|
+
}
|
|
3605
|
+
}
|
|
3606
|
+
|
|
3607
|
+
/** Transform img in span or other inline element to image block DTO */
|
|
3608
|
+
class SpanImageToRTEImageBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3609
|
+
/**
|
|
3610
|
+
* Can be handle.
|
|
3611
|
+
*
|
|
3612
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3613
|
+
* @param {number} currentIndex - Current element index.
|
|
3614
|
+
* @returns {number} - can be handled element count.
|
|
3615
|
+
*/
|
|
3616
|
+
canHandle(elementsArray, currentIndex) {
|
|
3617
|
+
const element = elementsArray[currentIndex];
|
|
3618
|
+
return element.nodeType === Node.ELEMENT_NODE &&
|
|
3619
|
+
element.textContent === '' &&
|
|
3620
|
+
element.querySelector('img')
|
|
3621
|
+
? 1
|
|
3622
|
+
: 0;
|
|
3623
|
+
}
|
|
3624
|
+
/**
|
|
3625
|
+
* Parse to a image block.
|
|
3626
|
+
*
|
|
3627
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3628
|
+
* @returns {Nullable<RTEContentBlock>} - Image block.
|
|
3629
|
+
*/
|
|
3630
|
+
handle(elementsArray) {
|
|
3631
|
+
const element = elementsArray[0].querySelector('img');
|
|
3632
|
+
return listBlock.RTEImageBlock.from({
|
|
3633
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3634
|
+
type: 'image',
|
|
3635
|
+
nodes: [
|
|
3636
|
+
{
|
|
3637
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3638
|
+
type: 'image',
|
|
3639
|
+
url: element.src,
|
|
3640
|
+
annotations: {
|
|
3641
|
+
size: 'md',
|
|
3642
|
+
alt: element.alt,
|
|
3643
|
+
},
|
|
3644
|
+
},
|
|
3645
|
+
],
|
|
3646
|
+
annotations: this.generateBlockAnnotations(element),
|
|
3647
|
+
});
|
|
3437
3648
|
}
|
|
3438
3649
|
/* istanbul ignore next */
|
|
3439
3650
|
/**
|
|
3440
|
-
*
|
|
3651
|
+
* Append child blocks.
|
|
3652
|
+
*/
|
|
3653
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
3654
|
+
appendChildBlocks() { }
|
|
3655
|
+
/**
|
|
3656
|
+
* Should continue process to child elements.
|
|
3441
3657
|
*
|
|
3442
|
-
* @
|
|
3443
|
-
* @returns {Nullable<HTMLElement>} - blockElement.
|
|
3658
|
+
* @returns {boolean} - boolean.
|
|
3444
3659
|
*/
|
|
3445
|
-
|
|
3446
|
-
return
|
|
3660
|
+
shouldProceedToElementChildren() {
|
|
3661
|
+
return false;
|
|
3447
3662
|
}
|
|
3448
3663
|
}
|
|
3449
3664
|
|
|
3450
|
-
/**
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3665
|
+
/** Transform child element of UL element which are not LI element to list item block DTO */
|
|
3666
|
+
class ULNotLiChildToRTEListItemBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3667
|
+
/**
|
|
3668
|
+
* Can be handle.
|
|
3669
|
+
*
|
|
3670
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3671
|
+
* @param {number} currentIndex - Current element index.
|
|
3672
|
+
* @returns {number} - can be handled element count.
|
|
3673
|
+
*/
|
|
3674
|
+
canHandle(elementsArray, currentIndex) {
|
|
3675
|
+
const element = elementsArray[currentIndex];
|
|
3676
|
+
const parent = element.parentElement;
|
|
3677
|
+
return element.nodeName !== 'LI' && parent && ['UL', 'OL'].includes(parent.nodeName) ? 1 : 0;
|
|
3678
|
+
}
|
|
3679
|
+
/**
|
|
3680
|
+
* Parse to a list item block.
|
|
3681
|
+
*
|
|
3682
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3683
|
+
* @returns {Nullable<RTEContentBlock>} - List item block.
|
|
3684
|
+
*/
|
|
3685
|
+
handle(elementsArray) {
|
|
3686
|
+
const nodes = this.generateChildNodes(elementsArray);
|
|
3687
|
+
if (nodes.length === 0)
|
|
3688
|
+
return null;
|
|
3689
|
+
return listBlock.RTEListItemBlock.from({
|
|
3690
|
+
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
3691
|
+
type: 'list-item',
|
|
3692
|
+
nodes: nodes,
|
|
3693
|
+
annotations: {},
|
|
3694
|
+
});
|
|
3465
3695
|
}
|
|
3696
|
+
/* istanbul ignore next */
|
|
3697
|
+
/**
|
|
3698
|
+
* Append child blocks.
|
|
3699
|
+
*/
|
|
3700
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
3701
|
+
appendChildBlocks() { }
|
|
3466
3702
|
/**
|
|
3467
|
-
*
|
|
3703
|
+
* Should continue process to child elements.
|
|
3468
3704
|
*
|
|
3469
|
-
* @
|
|
3470
|
-
* @returns {RTEContentBlock[]} Block DTO.
|
|
3705
|
+
* @returns {boolean} - boolean.
|
|
3471
3706
|
*/
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3707
|
+
shouldProceedToElementChildren() {
|
|
3708
|
+
return false;
|
|
3709
|
+
}
|
|
3710
|
+
}
|
|
3711
|
+
|
|
3712
|
+
/** Element to DTO processor */
|
|
3713
|
+
class ElementToDtoStrategyProcessor {
|
|
3714
|
+
constructor() {
|
|
3715
|
+
this.elementStrategies = [
|
|
3716
|
+
new UlToRTEListBlockStrategy(),
|
|
3717
|
+
new OlToRTEListBlockStrategy(),
|
|
3718
|
+
new ULNotLiChildToRTEListItemBlockStrategy(),
|
|
3719
|
+
new LiToRTEListItemBlockStrategy(),
|
|
3720
|
+
new InlineBlockToRTETextBlockStrategy(),
|
|
3721
|
+
new ImgToRTEImageBlockStrategy(),
|
|
3722
|
+
new VegaImageToRTEImageBlockStrategy(),
|
|
3723
|
+
new SpanImageToRTEImageBlockStrategy(),
|
|
3724
|
+
new ContinueInlineToRTETextBlockStrategy(),
|
|
3725
|
+
];
|
|
3476
3726
|
}
|
|
3477
3727
|
/**
|
|
3478
|
-
* Transform
|
|
3728
|
+
* Transform process.
|
|
3479
3729
|
*
|
|
3480
|
-
* @param {HTMLElement[]} elements -
|
|
3481
|
-
* @
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
const
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3730
|
+
* @param {HTMLElement[]} elements - Current elements.
|
|
3731
|
+
* @returns {ElementToDTOStrategyOutput[]} - outputs.
|
|
3732
|
+
*/
|
|
3733
|
+
process(elements) {
|
|
3734
|
+
const outputs = [];
|
|
3735
|
+
for (let i = 0; i < elements.length; i++) {
|
|
3736
|
+
if (this.isInvalidElement(elements[i]))
|
|
3737
|
+
continue;
|
|
3738
|
+
let canHandledCount = 0;
|
|
3739
|
+
for (const strategy of this.elementStrategies) {
|
|
3740
|
+
canHandledCount = strategy.canHandle(elements, i);
|
|
3741
|
+
if (canHandledCount > 0) {
|
|
3742
|
+
const handledElements = elements.slice(i, i + canHandledCount);
|
|
3743
|
+
const output = new ElementToDTOStrategyOutput(strategy, handledElements);
|
|
3744
|
+
if (canHandledCount === 1 && strategy.shouldProceedToElementChildren()) {
|
|
3745
|
+
output.setChildrenOutput(this.process(Array.from(handledElements[0].childNodes)));
|
|
3746
|
+
}
|
|
3747
|
+
outputs.push(output);
|
|
3748
|
+
i += canHandledCount - 1;
|
|
3749
|
+
break;
|
|
3750
|
+
}
|
|
3493
3751
|
}
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3752
|
+
if (canHandledCount === 0 && i < elements.length) {
|
|
3753
|
+
const elementChildren = Array.from(elements[i].childNodes);
|
|
3754
|
+
const childrenOutputs = this.process(Array.from(elementChildren));
|
|
3755
|
+
if (childrenOutputs.length > 0) {
|
|
3756
|
+
outputs.push(...childrenOutputs);
|
|
3757
|
+
}
|
|
3758
|
+
}
|
|
3759
|
+
}
|
|
3760
|
+
return outputs;
|
|
3497
3761
|
}
|
|
3498
3762
|
/**
|
|
3499
3763
|
* Checks if the given element is valid to parse.
|
|
@@ -3504,11 +3768,6 @@ class ElementToDTOProcessor {
|
|
|
3504
3768
|
isInvalidElement(element) {
|
|
3505
3769
|
if (element.nodeType === Node.COMMENT_NODE)
|
|
3506
3770
|
return true;
|
|
3507
|
-
if (element.nodeType === Node.TEXT_NODE && element.nodeValue.includes('\t')) {
|
|
3508
|
-
const value = element.nodeValue.replace(/\n|\t/gm, '');
|
|
3509
|
-
if (value.length === 0)
|
|
3510
|
-
return true;
|
|
3511
|
-
}
|
|
3512
3771
|
return ['META', 'BUTTON', 'STYLE'].includes(element.nodeName);
|
|
3513
3772
|
}
|
|
3514
3773
|
}
|
|
@@ -3519,7 +3778,7 @@ class ElementToDTOProcessor {
|
|
|
3519
3778
|
class InsertPasteHandler extends BaseHandler {
|
|
3520
3779
|
constructor() {
|
|
3521
3780
|
super(...arguments);
|
|
3522
|
-
this.elementToDTOProcessor = new
|
|
3781
|
+
this.elementToDTOProcessor = new ElementToDtoStrategyProcessor();
|
|
3523
3782
|
}
|
|
3524
3783
|
/**
|
|
3525
3784
|
* Update the state value when user paste html elements.
|
|
@@ -3545,7 +3804,7 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3545
3804
|
* @param { RTEContentBlock[]} blocks - blocks
|
|
3546
3805
|
*/
|
|
3547
3806
|
insertBlocksToRoot(blocks) {
|
|
3548
|
-
this.currentState.apply(new
|
|
3807
|
+
this.currentState.apply(new listBlock.AppendChildNodesAction(blocks));
|
|
3549
3808
|
}
|
|
3550
3809
|
/**
|
|
3551
3810
|
* Insert the blocks to content
|
|
@@ -3557,9 +3816,9 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3557
3816
|
const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parentBlock;
|
|
3558
3817
|
if (currentBlock) {
|
|
3559
3818
|
const { startOffset } = this.selectionController.getCurrentRange();
|
|
3560
|
-
const breakAction = new
|
|
3819
|
+
const breakAction = new listBlock.SplitBlockWithNodeAction(cursorNode, startOffset);
|
|
3561
3820
|
currentBlock.apply(breakAction);
|
|
3562
|
-
currentBlock.parent.apply(new
|
|
3821
|
+
currentBlock.parent.apply(new listBlock.InsertBlocksAfterAction(currentBlock, ...blocks));
|
|
3563
3822
|
this.switchCaretPositionToNextElement(breakAction.newBlock);
|
|
3564
3823
|
}
|
|
3565
3824
|
}
|
|
@@ -3572,7 +3831,7 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3572
3831
|
const cursorNode = this.removeSelectionRange();
|
|
3573
3832
|
/* istanbul ignore next */
|
|
3574
3833
|
const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parentBlock;
|
|
3575
|
-
currentBlock.parent.apply(new
|
|
3834
|
+
currentBlock.parent.apply(new listBlock.InsertBlocksBeforeAction(currentBlock, ...blocks));
|
|
3576
3835
|
this.switchCaretPositionToNextElement(currentBlock);
|
|
3577
3836
|
}
|
|
3578
3837
|
/**
|
|
@@ -3585,7 +3844,11 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3585
3844
|
const pastedHTML = event.dataTransfer.getData('text/html');
|
|
3586
3845
|
const tempContainer = document.createElement('div');
|
|
3587
3846
|
tempContainer.innerHTML = pastedHTML;
|
|
3588
|
-
return this.elementToDTOProcessor
|
|
3847
|
+
return this.elementToDTOProcessor
|
|
3848
|
+
.process(Array.from(tempContainer.childNodes))
|
|
3849
|
+
.filter(Boolean)
|
|
3850
|
+
.map((output) => output.toDto())
|
|
3851
|
+
.filter(Boolean);
|
|
3589
3852
|
}
|
|
3590
3853
|
/**
|
|
3591
3854
|
* Moves the caret to the next block element in a rich text editor.
|
|
@@ -3667,7 +3930,7 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3667
3930
|
records.forEach((record) => {
|
|
3668
3931
|
const { target } = record;
|
|
3669
3932
|
if (target.nodeType === Node.TEXT_NODE && target.parentElement) {
|
|
3670
|
-
const richTextNode =
|
|
3933
|
+
const richTextNode = nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(target.parentElement);
|
|
3671
3934
|
if (richTextNode && richTextNode['text'] !== target.textContent) {
|
|
3672
3935
|
updateFlag = true;
|
|
3673
3936
|
richTextNode['text'] = target.textContent;
|
|
@@ -3854,11 +4117,11 @@ class RichTextEditorRequiredRule {
|
|
|
3854
4117
|
*
|
|
3855
4118
|
* @example block.apply(new InsertImageToBlockAction(node, offset, imageNode))
|
|
3856
4119
|
*/
|
|
3857
|
-
class InsertImageToBlockAction extends
|
|
4120
|
+
class InsertImageToBlockAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
3858
4121
|
constructor(splitPointNode, startOffsetOfNode, imageBlockToBeInserted) {
|
|
3859
4122
|
super();
|
|
3860
4123
|
this.isFlushable = true;
|
|
3861
|
-
this.type =
|
|
4124
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.INSERT_IMAGE_TO_BLOCK;
|
|
3862
4125
|
this.splitPointNode = splitPointNode;
|
|
3863
4126
|
this.startOffsetOfNode = startOffsetOfNode;
|
|
3864
4127
|
this.imageBlockToBeInserted = imageBlockToBeInserted;
|
|
@@ -3881,12 +4144,12 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3881
4144
|
*/
|
|
3882
4145
|
insertImageToCaretPosition(imageUrl) {
|
|
3883
4146
|
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
3884
|
-
const imageBlock = new
|
|
3885
|
-
const newImageNode = new
|
|
3886
|
-
newImageNode.apply(new
|
|
3887
|
-
imageBlock.apply(new
|
|
4147
|
+
const imageBlock = new listBlock.RTEImageBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID());
|
|
4148
|
+
const newImageNode = new listBlock.RTEImageNode(createPublicApiRuntimeMetricsSlimmer.generateUUID(), imageUrl, imageBlock);
|
|
4149
|
+
newImageNode.apply(new imageAnnotationAction.ImageAnnotationAction('md', ''));
|
|
4150
|
+
imageBlock.apply(new listBlock.AppendChildNodesAction([newImageNode]));
|
|
3888
4151
|
if (selectedBlocks.length < 1 || this.value.blocks.length < 1) {
|
|
3889
|
-
this.value.apply(new
|
|
4152
|
+
this.value.apply(new listBlock.AppendChildNodesAction([imageBlock]));
|
|
3890
4153
|
void this.valueController.flushChanges(this.value);
|
|
3891
4154
|
}
|
|
3892
4155
|
else {
|
|
@@ -3926,7 +4189,7 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3926
4189
|
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(richTextContentRef, vegaInternalEventId.VegaInternalRichTextImageClick, (payload) => {
|
|
3927
4190
|
const range = this.selectionController.getCurrentRange();
|
|
3928
4191
|
if (!range || range.startContainer !== payload.host || range.startOffset !== 0) {
|
|
3929
|
-
const imageNode =
|
|
4192
|
+
const imageNode = nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(payload.host.querySelector('img'));
|
|
3930
4193
|
this.selectionController.enqueueSelectionRangeFutureState(imageNode, 0, imageNode, 0, true);
|
|
3931
4194
|
}
|
|
3932
4195
|
});
|
|
@@ -3991,7 +4254,7 @@ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3991
4254
|
* @param {RTEContentBlock} lastBlock - The last block of the content
|
|
3992
4255
|
*/
|
|
3993
4256
|
this.doFocusOnLastTextNode = async (lastBlock) => {
|
|
3994
|
-
this.setCaretRangeToNodeEnd(
|
|
4257
|
+
this.setCaretRangeToNodeEnd(nodeAnnotation_abstract.stateEntityRenderingRegistry.getDOMByEntity(lastBlock.getLastNode()).firstChild);
|
|
3995
4258
|
await this.vegaRichTextEditorRenderer.getRichTextContentRef().vegaFocus();
|
|
3996
4259
|
};
|
|
3997
4260
|
}
|
|
@@ -4004,13 +4267,13 @@ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4004
4267
|
*/
|
|
4005
4268
|
async focusOnLastTextNode(options) {
|
|
4006
4269
|
const lastBlock = this.value.blocks[this.value.blocks.length - 1];
|
|
4007
|
-
if (!(lastBlock instanceof
|
|
4008
|
-
const newTextBlock =
|
|
4270
|
+
if (!(lastBlock instanceof listBlock.RTETextBlock) || (options === null || options === void 0 ? void 0 : options.newLine)) {
|
|
4271
|
+
const newTextBlock = listBlock.RTETextBlock.from({
|
|
4009
4272
|
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
4010
4273
|
type: 'paragraph',
|
|
4011
4274
|
nodes: [{ id: createPublicApiRuntimeMetricsSlimmer.generateUUID(), type: 'text', text: '' }],
|
|
4012
4275
|
});
|
|
4013
|
-
lastBlock.parent.apply(new
|
|
4276
|
+
lastBlock.parent.apply(new listBlock.InsertBlocksAfterAction(lastBlock, newTextBlock));
|
|
4014
4277
|
await this.valueController.flushChanges(this.value);
|
|
4015
4278
|
await this.doFocusOnLastTextNode(newTextBlock);
|
|
4016
4279
|
}
|
|
@@ -4057,8 +4320,8 @@ class TextNodeColorController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4057
4320
|
* Register an observer to watch for dark mode updates, which will update the color of text node .
|
|
4058
4321
|
*/
|
|
4059
4322
|
connectedCallback() {
|
|
4060
|
-
this.observer = new
|
|
4061
|
-
const textNodeElements =
|
|
4323
|
+
this.observer = new domNodeSubjectFactory.Observer(this.isAcceptObserver.bind(this), (isDark) => {
|
|
4324
|
+
const textNodeElements = imageAnnotationAction.TextNodeRenderingRegistry.getTextNodeElements();
|
|
4062
4325
|
textNodeElements.forEach((textColorAnnotation, element) => {
|
|
4063
4326
|
element.style.color = isDark
|
|
4064
4327
|
? textColorAnnotation.textColor.dark
|
|
@@ -4103,11 +4366,11 @@ var __decorate$6 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
4103
4366
|
};
|
|
4104
4367
|
const VegaRichTextEditor = class {
|
|
4105
4368
|
constructor(hostRef) {
|
|
4106
|
-
|
|
4107
|
-
this.vegaChange =
|
|
4108
|
-
this.change =
|
|
4109
|
-
this.vegaImageInserted =
|
|
4110
|
-
this.imageInserted =
|
|
4369
|
+
index.registerInstance(this, hostRef);
|
|
4370
|
+
this.vegaChange = index.createEvent(this, "vegaChange", 7);
|
|
4371
|
+
this.change = index.createEvent(this, "change", 7);
|
|
4372
|
+
this.vegaImageInserted = index.createEvent(this, "vegaImageInserted", 7);
|
|
4373
|
+
this.imageInserted = index.createEvent(this, "imageInserted", 7);
|
|
4111
4374
|
this.globalSlimmers = {};
|
|
4112
4375
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4113
4376
|
this.formFieldController = new formFieldControllerSlimmer.FormFieldControllerSlimmer({
|
|
@@ -4123,7 +4386,7 @@ const VegaRichTextEditor = class {
|
|
|
4123
4386
|
inputContainerGetter: () => this.vegaRichTextEditorRenderer.getRichTextContainerRef(),
|
|
4124
4387
|
touchableAreaGetter: () => [this.vegaRichTextEditorRenderer.getRichTextContentRef()],
|
|
4125
4388
|
});
|
|
4126
|
-
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor,
|
|
4389
|
+
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, domNodeSubjectFactory.VegaChange);
|
|
4127
4390
|
this.vegaRichTextEditorRenderer = new VegaRichTextEditorRenderer();
|
|
4128
4391
|
this.valueController = new ValueController();
|
|
4129
4392
|
this.selectionController = new SelectionController();
|
|
@@ -4134,7 +4397,7 @@ const VegaRichTextEditor = class {
|
|
|
4134
4397
|
this.boldToolbarButtonSlimmer = new BoldToolbarButtonSlimmer();
|
|
4135
4398
|
this.italicToolbarButtonSlimmer = new ItalicToolbarButtonSlimmer();
|
|
4136
4399
|
this.underlineToolbarButtonSlimmer = new UnderlineToolbarButtonSlimmer();
|
|
4137
|
-
this.textColorToolbarButtonSlimmer = new
|
|
4400
|
+
this.textColorToolbarButtonSlimmer = new imageAnnotationAction.TextColorToolbarButtonSlimmer();
|
|
4138
4401
|
this.textStylesToolbarButtonSlimmer = new TextStylesToolbarButtonSlimmer();
|
|
4139
4402
|
this.codeToolbarButtonSlimmer = new CodeToolbarButtonSlimmer();
|
|
4140
4403
|
this.strikethroughToolbarButtonSlimmer = new StrikethroughToolbarButtonSlimmer();
|
|
@@ -4149,12 +4412,12 @@ const VegaRichTextEditor = class {
|
|
|
4149
4412
|
this.richTextContentController = new RichTextContentController(this);
|
|
4150
4413
|
this.userInputController = new UserInputController();
|
|
4151
4414
|
this.insertImageController = new InsertImageController();
|
|
4152
|
-
this.imageInsertedEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor,
|
|
4153
|
-
this.changeEventPreventSlimmer = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([
|
|
4415
|
+
this.imageInsertedEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, domNodeSubjectFactory.VegaImageInserted);
|
|
4416
|
+
this.changeEventPreventSlimmer = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([domNodeSubjectFactory.VegaChange], () => this.vegaRichTextEditorRenderer.getRichTextWrapperRef());
|
|
4154
4417
|
this.textNodeColorController = new TextNodeColorController();
|
|
4155
4418
|
this.richTextContentEditable = true;
|
|
4156
4419
|
this.selectionMap = new Map();
|
|
4157
|
-
this.isInDarkMode =
|
|
4420
|
+
this.isInDarkMode = nodeAnnotation_abstract.VegaThemeManager.isDarkMode();
|
|
4158
4421
|
/**
|
|
4159
4422
|
* Specifies the label for the rich text editor.
|
|
4160
4423
|
*
|
|
@@ -4259,7 +4522,7 @@ const VegaRichTextEditor = class {
|
|
|
4259
4522
|
render() {
|
|
4260
4523
|
return component.sanitizeVegaComponent(this.vegaRichTextEditorRenderer.render(), this.host);
|
|
4261
4524
|
}
|
|
4262
|
-
get host() { return
|
|
4525
|
+
get host() { return index.getElement(this); }
|
|
4263
4526
|
static get watchers() { return {
|
|
4264
4527
|
"richTextContentEditable": ["watchRichTextContentEditable"],
|
|
4265
4528
|
"placeholder": ["watchPlaceholder"],
|
|
@@ -4385,15 +4648,15 @@ class VegaRichTextEditorToolbarButtonRenderer extends globalSlimmerRegistry.Vega
|
|
|
4385
4648
|
};
|
|
4386
4649
|
}
|
|
4387
4650
|
render() {
|
|
4388
|
-
return (
|
|
4651
|
+
return (index.h("button", { part: "rich-text-editor-toolbar-button", class: {
|
|
4389
4652
|
'rich-text-editor-toolbar-btn': true,
|
|
4390
4653
|
'rich-text-editor-toolbar-button-disabled': this.disabled,
|
|
4391
4654
|
'rich-text-editor-toolbar-button-selected': this.selected,
|
|
4392
4655
|
}, onClick: this.handleClick, disabled: this.disabled },
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
this.showArrowIcon && (
|
|
4396
|
-
|
|
4656
|
+
index.h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
|
|
4657
|
+
index.h("vega-icon", { size: "size-16", color: this.iconColor, icon: internalIconManager.VegaInternalIconManager.getIconKey(this.icon) }),
|
|
4658
|
+
this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey('chevron-down') }))),
|
|
4659
|
+
index.h("slot", null)));
|
|
4397
4660
|
}
|
|
4398
4661
|
}
|
|
4399
4662
|
(() => {
|
|
@@ -4434,13 +4697,13 @@ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
4434
4697
|
};
|
|
4435
4698
|
const VegaRichTextEditorToolbarButton = class {
|
|
4436
4699
|
constructor(hostRef) {
|
|
4437
|
-
|
|
4438
|
-
this.vegaClick =
|
|
4439
|
-
this.click =
|
|
4700
|
+
index.registerInstance(this, hostRef);
|
|
4701
|
+
this.vegaClick = index.createEvent(this, "vegaClick", 7);
|
|
4702
|
+
this.click = index.createEvent(this, "click", 7);
|
|
4440
4703
|
this.globalSlimmers = {};
|
|
4441
4704
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4442
|
-
this.clickEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditorToolbarButton,
|
|
4443
|
-
this.eventPrevent = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([
|
|
4705
|
+
this.clickEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditorToolbarButton, domNodeSubjectFactory.VegaClick);
|
|
4706
|
+
this.eventPrevent = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([domNodeSubjectFactory.VegaClick], () => this.host, {
|
|
4444
4707
|
useCapture: true,
|
|
4445
4708
|
customPreventHandle: (e) => {
|
|
4446
4709
|
if (this.disabled) {
|
|
@@ -4481,9 +4744,9 @@ const VegaRichTextEditorToolbarButton = class {
|
|
|
4481
4744
|
this.iconColor = 'text-primary';
|
|
4482
4745
|
}
|
|
4483
4746
|
render() {
|
|
4484
|
-
return component.sanitizeVegaComponent(
|
|
4747
|
+
return component.sanitizeVegaComponent(index.h(index.Host, null, this.renderer.render()), this.host);
|
|
4485
4748
|
}
|
|
4486
|
-
get host() { return
|
|
4749
|
+
get host() { return index.getElement(this); }
|
|
4487
4750
|
};
|
|
4488
4751
|
__decorate$4([
|
|
4489
4752
|
componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
|
|
@@ -4521,24 +4784,24 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4521
4784
|
};
|
|
4522
4785
|
}
|
|
4523
4786
|
render() {
|
|
4524
|
-
return (
|
|
4787
|
+
return (index.h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
|
|
4525
4788
|
this.popoverRef = ref;
|
|
4526
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4789
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaPopoverShow, () => {
|
|
4527
4790
|
this.selected = true;
|
|
4528
4791
|
this.notifyImageSelected();
|
|
4529
4792
|
void this.formRef.setValue({
|
|
4530
4793
|
alt: this.alt,
|
|
4531
4794
|
});
|
|
4532
4795
|
});
|
|
4533
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4796
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaPopoverHide, () => {
|
|
4534
4797
|
this.currentPage = 1;
|
|
4535
4798
|
this.selected = false;
|
|
4536
4799
|
void this.formRef.reset();
|
|
4537
4800
|
});
|
|
4538
4801
|
} },
|
|
4539
|
-
|
|
4540
|
-
|
|
4541
|
-
|
|
4802
|
+
index.h("div", { slot: "popover-content" },
|
|
4803
|
+
index.h("slot", null)),
|
|
4804
|
+
index.h("div", { slot: "popover" },
|
|
4542
4805
|
this.renderImageEditor(),
|
|
4543
4806
|
this.renderAltTextEditor())));
|
|
4544
4807
|
}
|
|
@@ -4546,15 +4809,15 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4546
4809
|
this.parentContainerRef = ui.findParent(this.host, 'vega-rich-text-content');
|
|
4547
4810
|
}
|
|
4548
4811
|
renderImageEditor() {
|
|
4549
|
-
return (
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4812
|
+
return (index.h("vega-box", { display: this.currentPage === 1 ? 'block' : 'none' },
|
|
4813
|
+
index.h("vega-flex", { gap: "size-12", alignItems: "center" },
|
|
4814
|
+
index.h("vega-font", { variant: "font-field-label-sm", color: "text-primary" }, "Size:"),
|
|
4815
|
+
index.h("vega-segment-control", { size: "small", segments: [
|
|
4553
4816
|
{ key: 'sm', text: 'Sm' },
|
|
4554
4817
|
{ key: 'md', text: 'Md' },
|
|
4555
4818
|
{ key: 'lg', text: 'Lg' },
|
|
4556
4819
|
], selected: this.size, ref: (ref) => {
|
|
4557
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4820
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaChange, (e) => {
|
|
4558
4821
|
const size = e.detail;
|
|
4559
4822
|
this.size = size;
|
|
4560
4823
|
this.changeEventEmitter.emit({
|
|
@@ -4563,8 +4826,8 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4563
4826
|
});
|
|
4564
4827
|
});
|
|
4565
4828
|
} }),
|
|
4566
|
-
|
|
4567
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4829
|
+
index.h("vega-button-group", { variant: "tertiary", size: "small", ref: (ref) => {
|
|
4830
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaClick, (payload) => {
|
|
4568
4831
|
if (payload.detail === 'Alt Text') {
|
|
4569
4832
|
this.currentPage = 2;
|
|
4570
4833
|
}
|
|
@@ -4575,19 +4838,19 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4575
4838
|
}
|
|
4576
4839
|
});
|
|
4577
4840
|
} },
|
|
4578
|
-
|
|
4579
|
-
|
|
4841
|
+
index.h("vega-button-group-item", { label: "Alt Text", itemKey: "Alt Text" }),
|
|
4842
|
+
index.h("vega-button-group-item", { label: "Delete Image", icon: internalIconManager.VegaInternalIconManager.getIconKey('trash-can'), iconOnly: true, itemKey: "trash-can" })))));
|
|
4580
4843
|
}
|
|
4581
4844
|
renderAltTextEditor() {
|
|
4582
|
-
return (
|
|
4583
|
-
|
|
4584
|
-
|
|
4845
|
+
return (index.h("vega-box", { display: this.currentPage === 2 ? 'block' : 'none' },
|
|
4846
|
+
index.h("vega-form", { ref: (ref) => (this.formRef = ref) },
|
|
4847
|
+
index.h("vega-input", { "data-vega-form": "alt", style: { width: '315px' }, label: "Alt Text", ref: (ref) => {
|
|
4585
4848
|
void ref.doFocus();
|
|
4586
4849
|
}, onKeyDown: this.handleKeyDown }))));
|
|
4587
4850
|
}
|
|
4588
4851
|
notifyImageSelected() {
|
|
4589
4852
|
if (this.parentContainerRef) {
|
|
4590
|
-
changeManager.ChangeManager.notify(
|
|
4853
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.parentContainerRef, vegaInternalEventId.VegaInternalRichTextImageClick), { host: this.host });
|
|
4591
4854
|
}
|
|
4592
4855
|
}
|
|
4593
4856
|
/*
|
|
@@ -4597,7 +4860,7 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4597
4860
|
/* istanbul ignore next */
|
|
4598
4861
|
notifyImageDeleteButtonClicked() {
|
|
4599
4862
|
if (this.parentContainerRef) {
|
|
4600
|
-
changeManager.ChangeManager.notify(
|
|
4863
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.parentContainerRef, vegaInternalEventId.VegaInternalRichTextImageDeleteButtonClicked), { host: this.host });
|
|
4601
4864
|
}
|
|
4602
4865
|
}
|
|
4603
4866
|
}
|
|
@@ -4640,13 +4903,13 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
4640
4903
|
};
|
|
4641
4904
|
const VegaRichTextImageEditor = class {
|
|
4642
4905
|
constructor(hostRef) {
|
|
4643
|
-
|
|
4644
|
-
this.vegaChange =
|
|
4645
|
-
this.change =
|
|
4906
|
+
index.registerInstance(this, hostRef);
|
|
4907
|
+
this.vegaChange = index.createEvent(this, "vegaChange", 7);
|
|
4908
|
+
this.change = index.createEvent(this, "change", 7);
|
|
4646
4909
|
this.globalSlimmers = {};
|
|
4647
4910
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4648
4911
|
this.renderer = new VegaRichTextImageEditorRenderer();
|
|
4649
|
-
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextImageEditor,
|
|
4912
|
+
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextImageEditor, domNodeSubjectFactory.VegaChange);
|
|
4650
4913
|
this.currentPage = 1;
|
|
4651
4914
|
this.selected = false;
|
|
4652
4915
|
/**
|
|
@@ -4663,9 +4926,9 @@ const VegaRichTextImageEditor = class {
|
|
|
4663
4926
|
this.size = 'md';
|
|
4664
4927
|
}
|
|
4665
4928
|
render() {
|
|
4666
|
-
return component.sanitizeVegaComponent(
|
|
4929
|
+
return component.sanitizeVegaComponent(index.h(index.Host, { class: { 'rte-image-selected': this.selected } }, this.renderer.render()), this.host);
|
|
4667
4930
|
}
|
|
4668
|
-
get host() { return
|
|
4931
|
+
get host() { return index.getElement(this); }
|
|
4669
4932
|
};
|
|
4670
4933
|
__decorate$2([
|
|
4671
4934
|
componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
|
|
@@ -4714,7 +4977,7 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4714
4977
|
* Component lifecycle - [componentDidRender]{@link VegaRichTextLinkEditor.componentDidRender}
|
|
4715
4978
|
*/
|
|
4716
4979
|
componentDidRender() {
|
|
4717
|
-
changeManager.ChangeManager.notify(
|
|
4980
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalComponentDidRender), {});
|
|
4718
4981
|
}
|
|
4719
4982
|
watchStatusChange() {
|
|
4720
4983
|
if (this.status === 'linkEdit') {
|
|
@@ -4730,9 +4993,9 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4730
4993
|
return this.popoverRef;
|
|
4731
4994
|
}
|
|
4732
4995
|
render() {
|
|
4733
|
-
return (
|
|
4996
|
+
return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
|
|
4734
4997
|
this.popoverRef = ref;
|
|
4735
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4998
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaPopoverShow, () => {
|
|
4736
4999
|
var _a, _b;
|
|
4737
5000
|
if (this.status === 'linkEdit') {
|
|
4738
5001
|
void this.urlInputRef.doFocus();
|
|
@@ -4742,23 +5005,23 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4742
5005
|
url: (_b = this.record) === null || _b === void 0 ? void 0 : _b.url,
|
|
4743
5006
|
});
|
|
4744
5007
|
});
|
|
4745
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
5008
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaPopoverHide, () => {
|
|
4746
5009
|
void this.formRef.reset();
|
|
4747
5010
|
if (this.resetStatusAfterHide) {
|
|
4748
5011
|
this.status = 'editOrUnlinkSelection';
|
|
4749
5012
|
}
|
|
4750
5013
|
});
|
|
4751
5014
|
} },
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
5015
|
+
index.h("span", { slot: "popover-content" },
|
|
5016
|
+
index.h("slot", null)),
|
|
5017
|
+
index.h("div", { slot: "popover" },
|
|
4755
5018
|
this.renderLinkUnlinkContent(),
|
|
4756
5019
|
this.renderLinkEditContent())));
|
|
4757
5020
|
}
|
|
4758
5021
|
renderLinkUnlinkContent() {
|
|
4759
|
-
return (
|
|
4760
|
-
|
|
4761
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(node,
|
|
5022
|
+
return (index.h("vega-box", { display: this.status === 'editOrUnlinkSelection' ? 'block' : 'none' },
|
|
5023
|
+
index.h("vega-button-group", { size: "small", variant: "tertiary", ref: (node) => {
|
|
5024
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, domNodeSubjectFactory.VegaClick, ({ detail }) => {
|
|
4762
5025
|
switch (detail) {
|
|
4763
5026
|
case 'edit': {
|
|
4764
5027
|
this.status = 'linkEdit';
|
|
@@ -4771,20 +5034,20 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4771
5034
|
}
|
|
4772
5035
|
});
|
|
4773
5036
|
} },
|
|
4774
|
-
|
|
4775
|
-
|
|
5037
|
+
index.h("vega-button-group-item", { label: "Edit", itemKey: "edit" }),
|
|
5038
|
+
index.h("vega-button-group-item", { label: "Unlink", itemKey: "unlink" }))));
|
|
4776
5039
|
}
|
|
4777
5040
|
renderLinkEditContent() {
|
|
4778
|
-
return (
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
5041
|
+
return (index.h("vega-box", { display: this.status === 'linkEdit' ? 'block' : 'none' },
|
|
5042
|
+
index.h("vega-form", { ref: (ref) => (this.formRef = ref) },
|
|
5043
|
+
index.h("vega-flex", { style: { width: '419px' }, direction: "col", gap: "size-16" },
|
|
5044
|
+
index.h("vega-input", { "data-vega-form": "url", ref: (ref) => {
|
|
4782
5045
|
this.urlInputRef = ref;
|
|
4783
5046
|
}, size: "small", label: "URL", onKeyDown: this.handleKeyDown }),
|
|
4784
|
-
|
|
5047
|
+
index.h("vega-input", { size: "small", label: "Text", "data-vega-form": "text", onKeyDown: this.handleKeyDown })))));
|
|
4785
5048
|
}
|
|
4786
5049
|
updatePopoverTarget() {
|
|
4787
|
-
remoteInvocationRegistry.remoteInvocationRegistry.call(
|
|
5050
|
+
remoteInvocationRegistry.remoteInvocationRegistry.call(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.popoverRef, vegaInternalEventId.VegaInternalPopoverUpdateTarget), this.target);
|
|
4788
5051
|
}
|
|
4789
5052
|
}
|
|
4790
5053
|
__decorate$1([
|
|
@@ -4832,13 +5095,13 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
|
|
|
4832
5095
|
};
|
|
4833
5096
|
const VegaRichTextLinkEditor = class {
|
|
4834
5097
|
constructor(hostRef) {
|
|
4835
|
-
|
|
4836
|
-
this.vegaChange =
|
|
4837
|
-
this.change =
|
|
5098
|
+
index.registerInstance(this, hostRef);
|
|
5099
|
+
this.vegaChange = index.createEvent(this, "vegaChange", 7);
|
|
5100
|
+
this.change = index.createEvent(this, "change", 7);
|
|
4838
5101
|
this.globalSlimmers = {};
|
|
4839
5102
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4840
5103
|
this.renderer = new VegaRichTextLinkEditorRenderer();
|
|
4841
|
-
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextLinkEditor,
|
|
5104
|
+
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextLinkEditor, domNodeSubjectFactory.VegaChange);
|
|
4842
5105
|
/**
|
|
4843
5106
|
* Specifies the status of the link editor
|
|
4844
5107
|
*
|
|
@@ -4866,9 +5129,9 @@ const VegaRichTextLinkEditor = class {
|
|
|
4866
5129
|
await this.renderer.getPopoverRef().show();
|
|
4867
5130
|
}
|
|
4868
5131
|
render() {
|
|
4869
|
-
return component.sanitizeVegaComponent(
|
|
5132
|
+
return component.sanitizeVegaComponent(index.h(index.Host, null, this.renderer.render()), this.host);
|
|
4870
5133
|
}
|
|
4871
|
-
get host() { return
|
|
5134
|
+
get host() { return index.getElement(this); }
|
|
4872
5135
|
static get watchers() { return {
|
|
4873
5136
|
"status": ["watchStatusChange"],
|
|
4874
5137
|
"target": ["watchTargetChange"]
|