@heartlandone/vega 2.34.0 → 2.35.0-RTE-preview
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-7ef32059.js} +16 -15
- 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 +56 -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 +38 -36
- 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 +49 -47
- 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 +321 -23
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +952 -737
- 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 +54 -52
- 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-pagination/vega-pagination.js +5 -2
- package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +22 -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 +37 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.js +13 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.js +16 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.js +123 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.js +48 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/node-renderer.abstract.js +37 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +26 -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 +70 -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-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-table/vega-table-head-cell/vega-table-head-cell.css +3 -0
- 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-af969d03.js} +10 -9
- 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 +19 -19
- 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/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- 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 +31 -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 +19 -17
- 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 +21 -19
- 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 +315 -17
- package/dist/esm/vega-rich-text-editor_4.entry.js +657 -442
- 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 +14 -12
- 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 +19 -19
- 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 +1 -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 +22 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.d.ts +8 -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 +15 -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 +22 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +10 -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-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/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-b3f9cc3a.entry.js → p-0283712e.entry.js} +2 -2
- package/dist/vega/p-032df16f.js +1 -0
- package/dist/vega/p-05f5e22b.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-0bd9b1d9.entry.js +1 -0
- package/dist/vega/p-0c2eb135.entry.js +1 -0
- package/dist/vega/p-0da2de05.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-19556584.entry.js +1 -0
- package/dist/vega/p-1b3e0a9f.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-1dd9f841.entry.js +1 -0
- package/dist/vega/p-211df22a.entry.js +1 -0
- package/dist/vega/p-2205ee4c.js +1 -0
- package/dist/vega/p-29b09aad.js +1 -0
- package/dist/vega/{p-443ad3b3.js → p-2d0d575f.js} +1 -1
- package/dist/vega/p-2f32a9ba.js +1 -0
- package/dist/vega/{p-368d0060.js → p-2fbda931.js} +1 -1
- package/dist/vega/p-33b62194.js +1 -0
- package/dist/vega/p-36db2554.entry.js +1 -0
- package/dist/vega/p-3a6c9b9d.entry.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-45c88f7f.entry.js +1 -0
- package/dist/vega/p-45dd4698.entry.js +1 -0
- package/dist/vega/p-465fa96d.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-5915634b.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-6661a462.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-6d43b123.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-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-8067bd31.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-84113217.entry.js +1 -0
- package/dist/vega/p-843b13e6.entry.js +1 -0
- 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-8be7b62c.entry.js +1 -0
- package/dist/vega/p-8d69f9ef.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-96f0ef53.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-a0e90d5d.entry.js +1 -0
- package/dist/vega/{p-3953c705.js → p-af7a3154.js} +1 -1
- package/dist/vega/p-b2bca332.entry.js +1 -0
- package/dist/vega/p-b450bf46.entry.js +1 -0
- package/dist/vega/p-b5990090.js +1 -0
- package/dist/vega/p-b64981de.entry.js +1 -0
- package/dist/vega/p-b6815874.js +1 -0
- package/dist/vega/p-b688a71b.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-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-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-dbec03ed.entry.js +1 -0
- package/dist/vega/p-dcdac4d0.entry.js +1 -0
- package/dist/vega/p-de13b747.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-e8f540d8.js +1 -0
- package/dist/vega/p-e923637d.entry.js +1 -0
- package/dist/vega/p-efbea85a.entry.js +1 -0
- package/dist/vega/{p-81ead59a.js → p-f31bb1fd.js} +1 -1
- 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-fe388812.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-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-7ef32059.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
|
-
|
|
2947
|
-
|
|
2948
|
-
if (element.childNodes.length > 0) {
|
|
2949
|
-
const block = contentState.RTETextBlock.fromHTML(element, 'paragraph');
|
|
2950
|
-
element.innerHTML = '';
|
|
2951
|
-
return block;
|
|
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));
|
|
2952
2947
|
}
|
|
2953
|
-
return
|
|
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 {
|
|
3371
|
+
/** Transform inline block element to text block DTO */
|
|
3372
|
+
class InlineBlockToRTETextBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
3279
3373
|
/**
|
|
3280
|
-
* Can be
|
|
3374
|
+
* Can be handle.
|
|
3281
3375
|
*
|
|
3282
|
-
* @param {HTMLElement}
|
|
3283
|
-
* @
|
|
3376
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
3377
|
+
* @param {number} currentIndex - Current element index.
|
|
3378
|
+
* @returns {number} - can be handled element count.
|
|
3284
3379
|
*/
|
|
3285
|
-
|
|
3286
|
-
return ['
|
|
3380
|
+
canHandle(elementsArray, currentIndex) {
|
|
3381
|
+
return ['heading-1', 'heading-2', 'heading-3', 'title', 'subtitle'].includes(this.getElementType(elementsArray[currentIndex]))
|
|
3382
|
+
? 1
|
|
3383
|
+
: 0;
|
|
3287
3384
|
}
|
|
3288
3385
|
/**
|
|
3289
|
-
*
|
|
3386
|
+
* Parse to a text block.
|
|
3290
3387
|
*
|
|
3291
|
-
* @
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
*/
|
|
3305
|
-
handle(blockElement) {
|
|
3306
|
-
if (this.handleEmptyBlock(blockElement)) {
|
|
3307
|
-
return [];
|
|
3308
|
-
}
|
|
3309
|
-
if (blockElement && !ParagraphToDTOHandler.canHandle(blockElement)) {
|
|
3310
|
-
blockElement.append(...Array.from(this.currentVirtualElement.childNodes));
|
|
3311
|
-
return [];
|
|
3312
|
-
}
|
|
3313
|
-
else {
|
|
3314
|
-
return [
|
|
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,269 @@ 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
|
-
return [];
|
|
3568
|
+
canHandle(elementsArray, currentIndex) {
|
|
3569
|
+
return elementsArray[currentIndex].tagName === 'OL' ? 1 : 0;
|
|
3437
3570
|
}
|
|
3438
|
-
/* istanbul ignore next */
|
|
3439
3571
|
/**
|
|
3440
|
-
*
|
|
3572
|
+
* Parse to a number list block.
|
|
3441
3573
|
*
|
|
3442
|
-
* @param {
|
|
3443
|
-
* @returns {Nullable<
|
|
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.
|
|
3444
3592
|
*/
|
|
3445
|
-
|
|
3446
|
-
|
|
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;
|
|
3447
3604
|
}
|
|
3448
3605
|
}
|
|
3449
3606
|
|
|
3450
|
-
/**
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
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;
|
|
3465
3623
|
}
|
|
3466
3624
|
/**
|
|
3467
|
-
*
|
|
3625
|
+
* Parse to a image block.
|
|
3468
3626
|
*
|
|
3469
|
-
* @param {HTMLElement}
|
|
3470
|
-
* @returns {RTEContentBlock
|
|
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
|
+
});
|
|
3648
|
+
}
|
|
3649
|
+
/* istanbul ignore next */
|
|
3650
|
+
/**
|
|
3651
|
+
* Append child blocks.
|
|
3471
3652
|
*/
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3653
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
3654
|
+
appendChildBlocks() { }
|
|
3655
|
+
/**
|
|
3656
|
+
* Should continue process to child elements.
|
|
3657
|
+
*
|
|
3658
|
+
* @returns {boolean} - boolean.
|
|
3659
|
+
*/
|
|
3660
|
+
shouldProceedToElementChildren() {
|
|
3661
|
+
return false;
|
|
3662
|
+
}
|
|
3663
|
+
}
|
|
3664
|
+
|
|
3665
|
+
/** Element to DTO processor */
|
|
3666
|
+
class ElementToDtoStrategyProcessor {
|
|
3667
|
+
constructor() {
|
|
3668
|
+
this.elementStrategies = [
|
|
3669
|
+
new UlToRTEListBlockStrategy(),
|
|
3670
|
+
new OlToRTEListBlockStrategy(),
|
|
3671
|
+
new LiToRTEListItemBlockStrategy(),
|
|
3672
|
+
new InlineBlockToRTETextBlockStrategy(),
|
|
3673
|
+
new ImgToRTEImageBlockStrategy(),
|
|
3674
|
+
new VegaImageToRTEImageBlockStrategy(),
|
|
3675
|
+
new SpanImageToRTEImageBlockStrategy(),
|
|
3676
|
+
new ContinueInlineToRTETextBlockStrategy(),
|
|
3677
|
+
];
|
|
3476
3678
|
}
|
|
3477
3679
|
/**
|
|
3478
|
-
* Transform
|
|
3680
|
+
* Transform process.
|
|
3479
3681
|
*
|
|
3480
|
-
* @param {HTMLElement[]} elements -
|
|
3481
|
-
* @
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
const
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3682
|
+
* @param {HTMLElement[]} elements - Current elements.
|
|
3683
|
+
* @returns {ElementToDTOStrategyOutput[]} - outputs.
|
|
3684
|
+
*/
|
|
3685
|
+
process(elements) {
|
|
3686
|
+
const outputs = [];
|
|
3687
|
+
for (let i = 0; i < elements.length; i++) {
|
|
3688
|
+
if (this.isInvalidElement(elements[i]))
|
|
3689
|
+
continue;
|
|
3690
|
+
let canHandledCount = 0;
|
|
3691
|
+
for (const strategy of this.elementStrategies) {
|
|
3692
|
+
canHandledCount = strategy.canHandle(elements, i);
|
|
3693
|
+
if (canHandledCount > 0) {
|
|
3694
|
+
const handledElements = elements.slice(i, i + canHandledCount);
|
|
3695
|
+
const output = new ElementToDTOStrategyOutput(strategy, handledElements);
|
|
3696
|
+
if (canHandledCount === 1 && strategy.shouldProceedToElementChildren()) {
|
|
3697
|
+
output.setChildrenOutput(this.process(Array.from(handledElements[0].childNodes)));
|
|
3698
|
+
}
|
|
3699
|
+
outputs.push(output);
|
|
3700
|
+
i += canHandledCount - 1;
|
|
3701
|
+
break;
|
|
3702
|
+
}
|
|
3493
3703
|
}
|
|
3494
|
-
|
|
3495
|
-
|
|
3496
|
-
|
|
3704
|
+
if (canHandledCount === 0 && i < elements.length) {
|
|
3705
|
+
const elementChildren = Array.from(elements[i].childNodes);
|
|
3706
|
+
const childrenOutputs = this.process(Array.from(elementChildren));
|
|
3707
|
+
if (childrenOutputs.length > 0) {
|
|
3708
|
+
outputs.push(...childrenOutputs);
|
|
3709
|
+
}
|
|
3710
|
+
}
|
|
3711
|
+
}
|
|
3712
|
+
return outputs;
|
|
3497
3713
|
}
|
|
3498
3714
|
/**
|
|
3499
3715
|
* Checks if the given element is valid to parse.
|
|
@@ -3504,11 +3720,6 @@ class ElementToDTOProcessor {
|
|
|
3504
3720
|
isInvalidElement(element) {
|
|
3505
3721
|
if (element.nodeType === Node.COMMENT_NODE)
|
|
3506
3722
|
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
3723
|
return ['META', 'BUTTON', 'STYLE'].includes(element.nodeName);
|
|
3513
3724
|
}
|
|
3514
3725
|
}
|
|
@@ -3519,7 +3730,7 @@ class ElementToDTOProcessor {
|
|
|
3519
3730
|
class InsertPasteHandler extends BaseHandler {
|
|
3520
3731
|
constructor() {
|
|
3521
3732
|
super(...arguments);
|
|
3522
|
-
this.elementToDTOProcessor = new
|
|
3733
|
+
this.elementToDTOProcessor = new ElementToDtoStrategyProcessor();
|
|
3523
3734
|
}
|
|
3524
3735
|
/**
|
|
3525
3736
|
* Update the state value when user paste html elements.
|
|
@@ -3545,7 +3756,7 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3545
3756
|
* @param { RTEContentBlock[]} blocks - blocks
|
|
3546
3757
|
*/
|
|
3547
3758
|
insertBlocksToRoot(blocks) {
|
|
3548
|
-
this.currentState.apply(new
|
|
3759
|
+
this.currentState.apply(new listBlock.AppendChildNodesAction(blocks));
|
|
3549
3760
|
}
|
|
3550
3761
|
/**
|
|
3551
3762
|
* Insert the blocks to content
|
|
@@ -3557,9 +3768,9 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3557
3768
|
const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parentBlock;
|
|
3558
3769
|
if (currentBlock) {
|
|
3559
3770
|
const { startOffset } = this.selectionController.getCurrentRange();
|
|
3560
|
-
const breakAction = new
|
|
3771
|
+
const breakAction = new listBlock.SplitBlockWithNodeAction(cursorNode, startOffset);
|
|
3561
3772
|
currentBlock.apply(breakAction);
|
|
3562
|
-
currentBlock.parent.apply(new
|
|
3773
|
+
currentBlock.parent.apply(new listBlock.InsertBlocksAfterAction(currentBlock, ...blocks));
|
|
3563
3774
|
this.switchCaretPositionToNextElement(breakAction.newBlock);
|
|
3564
3775
|
}
|
|
3565
3776
|
}
|
|
@@ -3572,7 +3783,7 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3572
3783
|
const cursorNode = this.removeSelectionRange();
|
|
3573
3784
|
/* istanbul ignore next */
|
|
3574
3785
|
const currentBlock = cursorNode === null || cursorNode === void 0 ? void 0 : cursorNode.parentBlock;
|
|
3575
|
-
currentBlock.parent.apply(new
|
|
3786
|
+
currentBlock.parent.apply(new listBlock.InsertBlocksBeforeAction(currentBlock, ...blocks));
|
|
3576
3787
|
this.switchCaretPositionToNextElement(currentBlock);
|
|
3577
3788
|
}
|
|
3578
3789
|
/**
|
|
@@ -3585,7 +3796,11 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3585
3796
|
const pastedHTML = event.dataTransfer.getData('text/html');
|
|
3586
3797
|
const tempContainer = document.createElement('div');
|
|
3587
3798
|
tempContainer.innerHTML = pastedHTML;
|
|
3588
|
-
return this.elementToDTOProcessor
|
|
3799
|
+
return this.elementToDTOProcessor
|
|
3800
|
+
.process(Array.from(tempContainer.childNodes))
|
|
3801
|
+
.filter(Boolean)
|
|
3802
|
+
.map((output) => output.toDto())
|
|
3803
|
+
.filter(Boolean);
|
|
3589
3804
|
}
|
|
3590
3805
|
/**
|
|
3591
3806
|
* Moves the caret to the next block element in a rich text editor.
|
|
@@ -3667,7 +3882,7 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3667
3882
|
records.forEach((record) => {
|
|
3668
3883
|
const { target } = record;
|
|
3669
3884
|
if (target.nodeType === Node.TEXT_NODE && target.parentElement) {
|
|
3670
|
-
const richTextNode =
|
|
3885
|
+
const richTextNode = nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(target.parentElement);
|
|
3671
3886
|
if (richTextNode && richTextNode['text'] !== target.textContent) {
|
|
3672
3887
|
updateFlag = true;
|
|
3673
3888
|
richTextNode['text'] = target.textContent;
|
|
@@ -3854,11 +4069,11 @@ class RichTextEditorRequiredRule {
|
|
|
3854
4069
|
*
|
|
3855
4070
|
* @example block.apply(new InsertImageToBlockAction(node, offset, imageNode))
|
|
3856
4071
|
*/
|
|
3857
|
-
class InsertImageToBlockAction extends
|
|
4072
|
+
class InsertImageToBlockAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
3858
4073
|
constructor(splitPointNode, startOffsetOfNode, imageBlockToBeInserted) {
|
|
3859
4074
|
super();
|
|
3860
4075
|
this.isFlushable = true;
|
|
3861
|
-
this.type =
|
|
4076
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.INSERT_IMAGE_TO_BLOCK;
|
|
3862
4077
|
this.splitPointNode = splitPointNode;
|
|
3863
4078
|
this.startOffsetOfNode = startOffsetOfNode;
|
|
3864
4079
|
this.imageBlockToBeInserted = imageBlockToBeInserted;
|
|
@@ -3881,12 +4096,12 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3881
4096
|
*/
|
|
3882
4097
|
insertImageToCaretPosition(imageUrl) {
|
|
3883
4098
|
const selectedBlocks = this.selectionController.getSelectedBlocks();
|
|
3884
|
-
const imageBlock = new
|
|
3885
|
-
const newImageNode = new
|
|
3886
|
-
newImageNode.apply(new
|
|
3887
|
-
imageBlock.apply(new
|
|
4099
|
+
const imageBlock = new listBlock.RTEImageBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID());
|
|
4100
|
+
const newImageNode = new listBlock.RTEImageNode(createPublicApiRuntimeMetricsSlimmer.generateUUID(), imageUrl, imageBlock);
|
|
4101
|
+
newImageNode.apply(new imageAnnotationAction.ImageAnnotationAction('md', ''));
|
|
4102
|
+
imageBlock.apply(new listBlock.AppendChildNodesAction([newImageNode]));
|
|
3888
4103
|
if (selectedBlocks.length < 1 || this.value.blocks.length < 1) {
|
|
3889
|
-
this.value.apply(new
|
|
4104
|
+
this.value.apply(new listBlock.AppendChildNodesAction([imageBlock]));
|
|
3890
4105
|
void this.valueController.flushChanges(this.value);
|
|
3891
4106
|
}
|
|
3892
4107
|
else {
|
|
@@ -3926,7 +4141,7 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3926
4141
|
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(richTextContentRef, vegaInternalEventId.VegaInternalRichTextImageClick, (payload) => {
|
|
3927
4142
|
const range = this.selectionController.getCurrentRange();
|
|
3928
4143
|
if (!range || range.startContainer !== payload.host || range.startOffset !== 0) {
|
|
3929
|
-
const imageNode =
|
|
4144
|
+
const imageNode = nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(payload.host.querySelector('img'));
|
|
3930
4145
|
this.selectionController.enqueueSelectionRangeFutureState(imageNode, 0, imageNode, 0, true);
|
|
3931
4146
|
}
|
|
3932
4147
|
});
|
|
@@ -3991,7 +4206,7 @@ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3991
4206
|
* @param {RTEContentBlock} lastBlock - The last block of the content
|
|
3992
4207
|
*/
|
|
3993
4208
|
this.doFocusOnLastTextNode = async (lastBlock) => {
|
|
3994
|
-
this.setCaretRangeToNodeEnd(
|
|
4209
|
+
this.setCaretRangeToNodeEnd(nodeAnnotation_abstract.stateEntityRenderingRegistry.getDOMByEntity(lastBlock.getLastNode()).firstChild);
|
|
3995
4210
|
await this.vegaRichTextEditorRenderer.getRichTextContentRef().vegaFocus();
|
|
3996
4211
|
};
|
|
3997
4212
|
}
|
|
@@ -4004,13 +4219,13 @@ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4004
4219
|
*/
|
|
4005
4220
|
async focusOnLastTextNode(options) {
|
|
4006
4221
|
const lastBlock = this.value.blocks[this.value.blocks.length - 1];
|
|
4007
|
-
if (!(lastBlock instanceof
|
|
4008
|
-
const newTextBlock =
|
|
4222
|
+
if (!(lastBlock instanceof listBlock.RTETextBlock) || (options === null || options === void 0 ? void 0 : options.newLine)) {
|
|
4223
|
+
const newTextBlock = listBlock.RTETextBlock.from({
|
|
4009
4224
|
id: createPublicApiRuntimeMetricsSlimmer.generateUUID(),
|
|
4010
4225
|
type: 'paragraph',
|
|
4011
4226
|
nodes: [{ id: createPublicApiRuntimeMetricsSlimmer.generateUUID(), type: 'text', text: '' }],
|
|
4012
4227
|
});
|
|
4013
|
-
lastBlock.parent.apply(new
|
|
4228
|
+
lastBlock.parent.apply(new listBlock.InsertBlocksAfterAction(lastBlock, newTextBlock));
|
|
4014
4229
|
await this.valueController.flushChanges(this.value);
|
|
4015
4230
|
await this.doFocusOnLastTextNode(newTextBlock);
|
|
4016
4231
|
}
|
|
@@ -4057,8 +4272,8 @@ class TextNodeColorController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4057
4272
|
* Register an observer to watch for dark mode updates, which will update the color of text node .
|
|
4058
4273
|
*/
|
|
4059
4274
|
connectedCallback() {
|
|
4060
|
-
this.observer = new
|
|
4061
|
-
const textNodeElements =
|
|
4275
|
+
this.observer = new domNodeSubjectFactory.Observer(this.isAcceptObserver.bind(this), (isDark) => {
|
|
4276
|
+
const textNodeElements = imageAnnotationAction.TextNodeRenderingRegistry.getTextNodeElements();
|
|
4062
4277
|
textNodeElements.forEach((textColorAnnotation, element) => {
|
|
4063
4278
|
element.style.color = isDark
|
|
4064
4279
|
? textColorAnnotation.textColor.dark
|
|
@@ -4103,11 +4318,11 @@ var __decorate$6 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
4103
4318
|
};
|
|
4104
4319
|
const VegaRichTextEditor = class {
|
|
4105
4320
|
constructor(hostRef) {
|
|
4106
|
-
|
|
4107
|
-
this.vegaChange =
|
|
4108
|
-
this.change =
|
|
4109
|
-
this.vegaImageInserted =
|
|
4110
|
-
this.imageInserted =
|
|
4321
|
+
index.registerInstance(this, hostRef);
|
|
4322
|
+
this.vegaChange = index.createEvent(this, "vegaChange", 7);
|
|
4323
|
+
this.change = index.createEvent(this, "change", 7);
|
|
4324
|
+
this.vegaImageInserted = index.createEvent(this, "vegaImageInserted", 7);
|
|
4325
|
+
this.imageInserted = index.createEvent(this, "imageInserted", 7);
|
|
4111
4326
|
this.globalSlimmers = {};
|
|
4112
4327
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4113
4328
|
this.formFieldController = new formFieldControllerSlimmer.FormFieldControllerSlimmer({
|
|
@@ -4123,7 +4338,7 @@ const VegaRichTextEditor = class {
|
|
|
4123
4338
|
inputContainerGetter: () => this.vegaRichTextEditorRenderer.getRichTextContainerRef(),
|
|
4124
4339
|
touchableAreaGetter: () => [this.vegaRichTextEditorRenderer.getRichTextContentRef()],
|
|
4125
4340
|
});
|
|
4126
|
-
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor,
|
|
4341
|
+
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, domNodeSubjectFactory.VegaChange);
|
|
4127
4342
|
this.vegaRichTextEditorRenderer = new VegaRichTextEditorRenderer();
|
|
4128
4343
|
this.valueController = new ValueController();
|
|
4129
4344
|
this.selectionController = new SelectionController();
|
|
@@ -4134,7 +4349,7 @@ const VegaRichTextEditor = class {
|
|
|
4134
4349
|
this.boldToolbarButtonSlimmer = new BoldToolbarButtonSlimmer();
|
|
4135
4350
|
this.italicToolbarButtonSlimmer = new ItalicToolbarButtonSlimmer();
|
|
4136
4351
|
this.underlineToolbarButtonSlimmer = new UnderlineToolbarButtonSlimmer();
|
|
4137
|
-
this.textColorToolbarButtonSlimmer = new
|
|
4352
|
+
this.textColorToolbarButtonSlimmer = new imageAnnotationAction.TextColorToolbarButtonSlimmer();
|
|
4138
4353
|
this.textStylesToolbarButtonSlimmer = new TextStylesToolbarButtonSlimmer();
|
|
4139
4354
|
this.codeToolbarButtonSlimmer = new CodeToolbarButtonSlimmer();
|
|
4140
4355
|
this.strikethroughToolbarButtonSlimmer = new StrikethroughToolbarButtonSlimmer();
|
|
@@ -4149,12 +4364,12 @@ const VegaRichTextEditor = class {
|
|
|
4149
4364
|
this.richTextContentController = new RichTextContentController(this);
|
|
4150
4365
|
this.userInputController = new UserInputController();
|
|
4151
4366
|
this.insertImageController = new InsertImageController();
|
|
4152
|
-
this.imageInsertedEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor,
|
|
4153
|
-
this.changeEventPreventSlimmer = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([
|
|
4367
|
+
this.imageInsertedEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, domNodeSubjectFactory.VegaImageInserted);
|
|
4368
|
+
this.changeEventPreventSlimmer = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([domNodeSubjectFactory.VegaChange], () => this.vegaRichTextEditorRenderer.getRichTextWrapperRef());
|
|
4154
4369
|
this.textNodeColorController = new TextNodeColorController();
|
|
4155
4370
|
this.richTextContentEditable = true;
|
|
4156
4371
|
this.selectionMap = new Map();
|
|
4157
|
-
this.isInDarkMode =
|
|
4372
|
+
this.isInDarkMode = nodeAnnotation_abstract.VegaThemeManager.isDarkMode();
|
|
4158
4373
|
/**
|
|
4159
4374
|
* Specifies the label for the rich text editor.
|
|
4160
4375
|
*
|
|
@@ -4259,7 +4474,7 @@ const VegaRichTextEditor = class {
|
|
|
4259
4474
|
render() {
|
|
4260
4475
|
return component.sanitizeVegaComponent(this.vegaRichTextEditorRenderer.render(), this.host);
|
|
4261
4476
|
}
|
|
4262
|
-
get host() { return
|
|
4477
|
+
get host() { return index.getElement(this); }
|
|
4263
4478
|
static get watchers() { return {
|
|
4264
4479
|
"richTextContentEditable": ["watchRichTextContentEditable"],
|
|
4265
4480
|
"placeholder": ["watchPlaceholder"],
|
|
@@ -4385,15 +4600,15 @@ class VegaRichTextEditorToolbarButtonRenderer extends globalSlimmerRegistry.Vega
|
|
|
4385
4600
|
};
|
|
4386
4601
|
}
|
|
4387
4602
|
render() {
|
|
4388
|
-
return (
|
|
4603
|
+
return (index.h("button", { part: "rich-text-editor-toolbar-button", class: {
|
|
4389
4604
|
'rich-text-editor-toolbar-btn': true,
|
|
4390
4605
|
'rich-text-editor-toolbar-button-disabled': this.disabled,
|
|
4391
4606
|
'rich-text-editor-toolbar-button-selected': this.selected,
|
|
4392
4607
|
}, onClick: this.handleClick, disabled: this.disabled },
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
this.showArrowIcon && (
|
|
4396
|
-
|
|
4608
|
+
index.h("vega-flex", { gap: "size-8", justifyContent: "center", alignItems: "center" },
|
|
4609
|
+
index.h("vega-icon", { size: "size-16", color: this.iconColor, icon: internalIconManager.VegaInternalIconManager.getIconKey(this.icon) }),
|
|
4610
|
+
this.showArrowIcon && (index.h("vega-icon", { size: "size-8", color: "text-secondary", icon: internalIconManager.VegaInternalIconManager.getIconKey('chevron-down') }))),
|
|
4611
|
+
index.h("slot", null)));
|
|
4397
4612
|
}
|
|
4398
4613
|
}
|
|
4399
4614
|
(() => {
|
|
@@ -4434,13 +4649,13 @@ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
4434
4649
|
};
|
|
4435
4650
|
const VegaRichTextEditorToolbarButton = class {
|
|
4436
4651
|
constructor(hostRef) {
|
|
4437
|
-
|
|
4438
|
-
this.vegaClick =
|
|
4439
|
-
this.click =
|
|
4652
|
+
index.registerInstance(this, hostRef);
|
|
4653
|
+
this.vegaClick = index.createEvent(this, "vegaClick", 7);
|
|
4654
|
+
this.click = index.createEvent(this, "click", 7);
|
|
4440
4655
|
this.globalSlimmers = {};
|
|
4441
4656
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4442
|
-
this.clickEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditorToolbarButton,
|
|
4443
|
-
this.eventPrevent = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([
|
|
4657
|
+
this.clickEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditorToolbarButton, domNodeSubjectFactory.VegaClick);
|
|
4658
|
+
this.eventPrevent = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([domNodeSubjectFactory.VegaClick], () => this.host, {
|
|
4444
4659
|
useCapture: true,
|
|
4445
4660
|
customPreventHandle: (e) => {
|
|
4446
4661
|
if (this.disabled) {
|
|
@@ -4481,9 +4696,9 @@ const VegaRichTextEditorToolbarButton = class {
|
|
|
4481
4696
|
this.iconColor = 'text-primary';
|
|
4482
4697
|
}
|
|
4483
4698
|
render() {
|
|
4484
|
-
return component.sanitizeVegaComponent(
|
|
4699
|
+
return component.sanitizeVegaComponent(index.h(index.Host, null, this.renderer.render()), this.host);
|
|
4485
4700
|
}
|
|
4486
|
-
get host() { return
|
|
4701
|
+
get host() { return index.getElement(this); }
|
|
4487
4702
|
};
|
|
4488
4703
|
__decorate$4([
|
|
4489
4704
|
componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
|
|
@@ -4521,24 +4736,24 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4521
4736
|
};
|
|
4522
4737
|
}
|
|
4523
4738
|
render() {
|
|
4524
|
-
return (
|
|
4739
|
+
return (index.h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
|
|
4525
4740
|
this.popoverRef = ref;
|
|
4526
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4741
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaPopoverShow, () => {
|
|
4527
4742
|
this.selected = true;
|
|
4528
4743
|
this.notifyImageSelected();
|
|
4529
4744
|
void this.formRef.setValue({
|
|
4530
4745
|
alt: this.alt,
|
|
4531
4746
|
});
|
|
4532
4747
|
});
|
|
4533
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4748
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaPopoverHide, () => {
|
|
4534
4749
|
this.currentPage = 1;
|
|
4535
4750
|
this.selected = false;
|
|
4536
4751
|
void this.formRef.reset();
|
|
4537
4752
|
});
|
|
4538
4753
|
} },
|
|
4539
|
-
|
|
4540
|
-
|
|
4541
|
-
|
|
4754
|
+
index.h("div", { slot: "popover-content" },
|
|
4755
|
+
index.h("slot", null)),
|
|
4756
|
+
index.h("div", { slot: "popover" },
|
|
4542
4757
|
this.renderImageEditor(),
|
|
4543
4758
|
this.renderAltTextEditor())));
|
|
4544
4759
|
}
|
|
@@ -4546,15 +4761,15 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4546
4761
|
this.parentContainerRef = ui.findParent(this.host, 'vega-rich-text-content');
|
|
4547
4762
|
}
|
|
4548
4763
|
renderImageEditor() {
|
|
4549
|
-
return (
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4764
|
+
return (index.h("vega-box", { display: this.currentPage === 1 ? 'block' : 'none' },
|
|
4765
|
+
index.h("vega-flex", { gap: "size-12", alignItems: "center" },
|
|
4766
|
+
index.h("vega-font", { variant: "font-field-label-sm", color: "text-primary" }, "Size:"),
|
|
4767
|
+
index.h("vega-segment-control", { size: "small", segments: [
|
|
4553
4768
|
{ key: 'sm', text: 'Sm' },
|
|
4554
4769
|
{ key: 'md', text: 'Md' },
|
|
4555
4770
|
{ key: 'lg', text: 'Lg' },
|
|
4556
4771
|
], selected: this.size, ref: (ref) => {
|
|
4557
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4772
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaChange, (e) => {
|
|
4558
4773
|
const size = e.detail;
|
|
4559
4774
|
this.size = size;
|
|
4560
4775
|
this.changeEventEmitter.emit({
|
|
@@ -4563,8 +4778,8 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4563
4778
|
});
|
|
4564
4779
|
});
|
|
4565
4780
|
} }),
|
|
4566
|
-
|
|
4567
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4781
|
+
index.h("vega-button-group", { variant: "tertiary", size: "small", ref: (ref) => {
|
|
4782
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaClick, (payload) => {
|
|
4568
4783
|
if (payload.detail === 'Alt Text') {
|
|
4569
4784
|
this.currentPage = 2;
|
|
4570
4785
|
}
|
|
@@ -4575,19 +4790,19 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4575
4790
|
}
|
|
4576
4791
|
});
|
|
4577
4792
|
} },
|
|
4578
|
-
|
|
4579
|
-
|
|
4793
|
+
index.h("vega-button-group-item", { label: "Alt Text", itemKey: "Alt Text" }),
|
|
4794
|
+
index.h("vega-button-group-item", { label: "Delete Image", icon: internalIconManager.VegaInternalIconManager.getIconKey('trash-can'), iconOnly: true, itemKey: "trash-can" })))));
|
|
4580
4795
|
}
|
|
4581
4796
|
renderAltTextEditor() {
|
|
4582
|
-
return (
|
|
4583
|
-
|
|
4584
|
-
|
|
4797
|
+
return (index.h("vega-box", { display: this.currentPage === 2 ? 'block' : 'none' },
|
|
4798
|
+
index.h("vega-form", { ref: (ref) => (this.formRef = ref) },
|
|
4799
|
+
index.h("vega-input", { "data-vega-form": "alt", style: { width: '315px' }, label: "Alt Text", ref: (ref) => {
|
|
4585
4800
|
void ref.doFocus();
|
|
4586
4801
|
}, onKeyDown: this.handleKeyDown }))));
|
|
4587
4802
|
}
|
|
4588
4803
|
notifyImageSelected() {
|
|
4589
4804
|
if (this.parentContainerRef) {
|
|
4590
|
-
changeManager.ChangeManager.notify(
|
|
4805
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.parentContainerRef, vegaInternalEventId.VegaInternalRichTextImageClick), { host: this.host });
|
|
4591
4806
|
}
|
|
4592
4807
|
}
|
|
4593
4808
|
/*
|
|
@@ -4597,7 +4812,7 @@ class VegaRichTextImageEditorRenderer extends globalSlimmerRegistry.VegaSlimmer
|
|
|
4597
4812
|
/* istanbul ignore next */
|
|
4598
4813
|
notifyImageDeleteButtonClicked() {
|
|
4599
4814
|
if (this.parentContainerRef) {
|
|
4600
|
-
changeManager.ChangeManager.notify(
|
|
4815
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.parentContainerRef, vegaInternalEventId.VegaInternalRichTextImageDeleteButtonClicked), { host: this.host });
|
|
4601
4816
|
}
|
|
4602
4817
|
}
|
|
4603
4818
|
}
|
|
@@ -4640,13 +4855,13 @@ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators,
|
|
|
4640
4855
|
};
|
|
4641
4856
|
const VegaRichTextImageEditor = class {
|
|
4642
4857
|
constructor(hostRef) {
|
|
4643
|
-
|
|
4644
|
-
this.vegaChange =
|
|
4645
|
-
this.change =
|
|
4858
|
+
index.registerInstance(this, hostRef);
|
|
4859
|
+
this.vegaChange = index.createEvent(this, "vegaChange", 7);
|
|
4860
|
+
this.change = index.createEvent(this, "change", 7);
|
|
4646
4861
|
this.globalSlimmers = {};
|
|
4647
4862
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4648
4863
|
this.renderer = new VegaRichTextImageEditorRenderer();
|
|
4649
|
-
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextImageEditor,
|
|
4864
|
+
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextImageEditor, domNodeSubjectFactory.VegaChange);
|
|
4650
4865
|
this.currentPage = 1;
|
|
4651
4866
|
this.selected = false;
|
|
4652
4867
|
/**
|
|
@@ -4663,9 +4878,9 @@ const VegaRichTextImageEditor = class {
|
|
|
4663
4878
|
this.size = 'md';
|
|
4664
4879
|
}
|
|
4665
4880
|
render() {
|
|
4666
|
-
return component.sanitizeVegaComponent(
|
|
4881
|
+
return component.sanitizeVegaComponent(index.h(index.Host, { class: { 'rte-image-selected': this.selected } }, this.renderer.render()), this.host);
|
|
4667
4882
|
}
|
|
4668
|
-
get host() { return
|
|
4883
|
+
get host() { return index.getElement(this); }
|
|
4669
4884
|
};
|
|
4670
4885
|
__decorate$2([
|
|
4671
4886
|
componentUsageRuntimeMetrics.InjectVegaGlobalSlimmer()
|
|
@@ -4714,7 +4929,7 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4714
4929
|
* Component lifecycle - [componentDidRender]{@link VegaRichTextLinkEditor.componentDidRender}
|
|
4715
4930
|
*/
|
|
4716
4931
|
componentDidRender() {
|
|
4717
|
-
changeManager.ChangeManager.notify(
|
|
4932
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalComponentDidRender), {});
|
|
4718
4933
|
}
|
|
4719
4934
|
watchStatusChange() {
|
|
4720
4935
|
if (this.status === 'linkEdit') {
|
|
@@ -4730,9 +4945,9 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4730
4945
|
return this.popoverRef;
|
|
4731
4946
|
}
|
|
4732
4947
|
render() {
|
|
4733
|
-
return (
|
|
4948
|
+
return (index.h("vega-popover", { trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
|
|
4734
4949
|
this.popoverRef = ref;
|
|
4735
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4950
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaPopoverShow, () => {
|
|
4736
4951
|
var _a, _b;
|
|
4737
4952
|
if (this.status === 'linkEdit') {
|
|
4738
4953
|
void this.urlInputRef.doFocus();
|
|
@@ -4742,23 +4957,23 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4742
4957
|
url: (_b = this.record) === null || _b === void 0 ? void 0 : _b.url,
|
|
4743
4958
|
});
|
|
4744
4959
|
});
|
|
4745
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref,
|
|
4960
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, domNodeSubjectFactory.VegaPopoverHide, () => {
|
|
4746
4961
|
void this.formRef.reset();
|
|
4747
4962
|
if (this.resetStatusAfterHide) {
|
|
4748
4963
|
this.status = 'editOrUnlinkSelection';
|
|
4749
4964
|
}
|
|
4750
4965
|
});
|
|
4751
4966
|
} },
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4967
|
+
index.h("span", { slot: "popover-content" },
|
|
4968
|
+
index.h("slot", null)),
|
|
4969
|
+
index.h("div", { slot: "popover" },
|
|
4755
4970
|
this.renderLinkUnlinkContent(),
|
|
4756
4971
|
this.renderLinkEditContent())));
|
|
4757
4972
|
}
|
|
4758
4973
|
renderLinkUnlinkContent() {
|
|
4759
|
-
return (
|
|
4760
|
-
|
|
4761
|
-
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(node,
|
|
4974
|
+
return (index.h("vega-box", { display: this.status === 'editOrUnlinkSelection' ? 'block' : 'none' },
|
|
4975
|
+
index.h("vega-button-group", { size: "small", variant: "tertiary", ref: (node) => {
|
|
4976
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(node, domNodeSubjectFactory.VegaClick, ({ detail }) => {
|
|
4762
4977
|
switch (detail) {
|
|
4763
4978
|
case 'edit': {
|
|
4764
4979
|
this.status = 'linkEdit';
|
|
@@ -4771,20 +4986,20 @@ class VegaRichTextLinkEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4771
4986
|
}
|
|
4772
4987
|
});
|
|
4773
4988
|
} },
|
|
4774
|
-
|
|
4775
|
-
|
|
4989
|
+
index.h("vega-button-group-item", { label: "Edit", itemKey: "edit" }),
|
|
4990
|
+
index.h("vega-button-group-item", { label: "Unlink", itemKey: "unlink" }))));
|
|
4776
4991
|
}
|
|
4777
4992
|
renderLinkEditContent() {
|
|
4778
|
-
return (
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4993
|
+
return (index.h("vega-box", { display: this.status === 'linkEdit' ? 'block' : 'none' },
|
|
4994
|
+
index.h("vega-form", { ref: (ref) => (this.formRef = ref) },
|
|
4995
|
+
index.h("vega-flex", { style: { width: '419px' }, direction: "col", gap: "size-16" },
|
|
4996
|
+
index.h("vega-input", { "data-vega-form": "url", ref: (ref) => {
|
|
4782
4997
|
this.urlInputRef = ref;
|
|
4783
4998
|
}, size: "small", label: "URL", onKeyDown: this.handleKeyDown }),
|
|
4784
|
-
|
|
4999
|
+
index.h("vega-input", { size: "small", label: "Text", "data-vega-form": "text", onKeyDown: this.handleKeyDown })))));
|
|
4785
5000
|
}
|
|
4786
5001
|
updatePopoverTarget() {
|
|
4787
|
-
remoteInvocationRegistry.remoteInvocationRegistry.call(
|
|
5002
|
+
remoteInvocationRegistry.remoteInvocationRegistry.call(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.popoverRef, vegaInternalEventId.VegaInternalPopoverUpdateTarget), this.target);
|
|
4788
5003
|
}
|
|
4789
5004
|
}
|
|
4790
5005
|
__decorate$1([
|
|
@@ -4832,13 +5047,13 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
|
|
|
4832
5047
|
};
|
|
4833
5048
|
const VegaRichTextLinkEditor = class {
|
|
4834
5049
|
constructor(hostRef) {
|
|
4835
|
-
|
|
4836
|
-
this.vegaChange =
|
|
4837
|
-
this.change =
|
|
5050
|
+
index.registerInstance(this, hostRef);
|
|
5051
|
+
this.vegaChange = index.createEvent(this, "vegaChange", 7);
|
|
5052
|
+
this.change = index.createEvent(this, "change", 7);
|
|
4838
5053
|
this.globalSlimmers = {};
|
|
4839
5054
|
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4840
5055
|
this.renderer = new VegaRichTextLinkEditorRenderer();
|
|
4841
|
-
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextLinkEditor,
|
|
5056
|
+
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextLinkEditor, domNodeSubjectFactory.VegaChange);
|
|
4842
5057
|
/**
|
|
4843
5058
|
* Specifies the status of the link editor
|
|
4844
5059
|
*
|
|
@@ -4866,9 +5081,9 @@ const VegaRichTextLinkEditor = class {
|
|
|
4866
5081
|
await this.renderer.getPopoverRef().show();
|
|
4867
5082
|
}
|
|
4868
5083
|
render() {
|
|
4869
|
-
return component.sanitizeVegaComponent(
|
|
5084
|
+
return component.sanitizeVegaComponent(index.h(index.Host, null, this.renderer.render()), this.host);
|
|
4870
5085
|
}
|
|
4871
|
-
get host() { return
|
|
5086
|
+
get host() { return index.getElement(this); }
|
|
4872
5087
|
static get watchers() { return {
|
|
4873
5088
|
"status": ["watchStatusChange"],
|
|
4874
5089
|
"target": ["watchTargetChange"]
|