@globalpayments/vega 2.37.0 → 2.37.2
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-7980768c.js → app-globals-7087f121.js} +4 -4
- package/dist/cjs/{content-state-9a9a4bd8.js → content-state-f97d3278.js} +2 -2
- package/dist/cjs/{form-field-controller-slimmer-0303f4a7.js → form-field-controller-slimmer-48c0ad0b.js} +1 -1
- package/dist/cjs/{image-annotation-action-8e622f61.js → image-annotation-action-7d82f7e1.js} +2 -2
- package/dist/cjs/{index-7c81de06.js → index-0546e2ea.js} +1 -1
- package/dist/cjs/index.cjs.js +5 -5
- package/dist/cjs/loader.cjs.js +6 -6
- package/dist/cjs/{node-annotation.abstract-2c8373c1.js → node-annotation.abstract-4f6df9cf.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-396b1cee.js → string-input-formatter-slimmer-f45931fd.js} +113 -34
- package/dist/cjs/{sub-state-notify-slimmer-ae490543.js → sub-state-notify-slimmer-b1f1e61a.js} +1 -1
- package/dist/cjs/{sub-state-observer-slimmer-080731bc.js → sub-state-observer-slimmer-02634647.js} +1 -1
- package/dist/cjs/vega-app-footer.cjs.entry.js +3 -0
- package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-button-link.cjs.entry.js +1 -0
- package/dist/cjs/vega-calendar_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +11 -4
- package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
- package/dist/cjs/vega-combo-box.cjs.entry.js +2 -2
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +3 -3
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-file-uploader.cjs.entry.js +2 -2
- package/dist/cjs/vega-form.cjs.entry.js +2 -2
- package/dist/cjs/vega-image-uploader.cjs.entry.js +3 -2
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-numeric.cjs.entry.js +3 -3
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +5 -2
- package/dist/cjs/vega-input-range.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-select.cjs.entry.js +2 -2
- package/dist/cjs/vega-input.cjs.entry.js +10 -8
- package/dist/cjs/{vega-internal-event-id-b12071ea.js → vega-internal-event-id-bda63e14.js} +2 -0
- package/dist/cjs/vega-item-toggle.cjs.entry.js +2 -0
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +6 -4
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +54 -1
- package/dist/cjs/vega-popover_2.cjs.entry.js +1 -1
- package/dist/cjs/vega-radio_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +6 -6
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +681 -413
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-signature-capture.cjs.entry.js +3 -2
- package/dist/cjs/{vega-skeleton-loader-controller-ef43cfc1.js → vega-skeleton-loader-controller-00dbdf29.js} +11 -3
- package/dist/cjs/vega-stepper.cjs.entry.js +2 -2
- package/dist/cjs/vega-table_8.cjs.entry.js +10 -7
- package/dist/cjs/vega-textarea.cjs.entry.js +2 -2
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
- package/dist/cjs/vega.cjs.js +6 -6
- package/dist/collection/components/vega-app-footer/vega-app-footer.js +12 -0
- package/dist/collection/components/vega-button-link/vega-button-link.js +4 -0
- package/dist/collection/components/vega-checkbox/vega-checkbox.js +9 -1
- package/dist/collection/components/vega-image-uploader/vega-image-uploader.js +4 -0
- package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +12 -0
- package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
- package/dist/collection/components/vega-item-toggle/vega-item-toggle.js +8 -0
- package/dist/collection/components/vega-loader-wrapper/slimmers/controllers/manage-vega-loader-wrapper-z-index-controller.js +49 -0
- package/dist/collection/components/vega-loader-wrapper/vega-loader-wrapper.js +5 -0
- package/dist/collection/components/vega-nav/vega-left-nav-link/vega-left-nav-link.js +7 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/delete-selected-nodes-controller.js +190 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.js +18 -123
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/delete-content-handler.js +9 -11
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-line-break-handler.js +8 -18
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-text-handler.js +5 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/insert-composition-text-controller.js +244 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +13 -5
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.js +16 -70
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +22 -14
- package/dist/collection/components/vega-signature-capture/vega-signature-capture.js +4 -0
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-editable-controller.js +2 -3
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-renderer.js +5 -1
- package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
- package/dist/collection/helpers/formatter/string-formatter/custom-formatter-strategy.js +3 -1
- package/dist/collection/helpers/formatter/string-formatter/number-mask-strategy.js +3 -1
- package/dist/collection/helpers/formatter/string-formatter/string-format-strategy.abstract.js +52 -0
- package/dist/collection/helpers/formatter/string-formatter/string-mask-strategy.js +6 -7
- package/dist/collection/helpers/formatter/string-formatter/thousand-comma-strategy.js +2 -1
- package/dist/collection/helpers/formatter/test/string-formatter/custom-formatter-strategy.test.js +2 -1
- package/dist/collection/helpers/formatter/test/string-formatter/number-mask-strategy.test.js +9 -0
- package/dist/collection/helpers/formatter/test/string-formatter/string-mask-strategy.test.js +62 -4
- package/dist/collection/helpers/loading-indicator/tests/vega-loader-controller.test.js +29 -2
- package/dist/collection/helpers/loading-indicator/vega-loader-controller.js +11 -3
- package/dist/collection/helpers/slimmers/string-input-formatter-slimmer.js +53 -25
- package/dist/collection/helpers/slimmers/test/string-input-formatter-slimmer.test.js +2 -1
- package/dist/esm/{app-globals-6912a75d.js → app-globals-4cca4a96.js} +4 -4
- package/dist/esm/{content-state-c2d29b35.js → content-state-ccf5f960.js} +3 -3
- package/dist/esm/{form-field-controller-slimmer-7136b7fa.js → form-field-controller-slimmer-3535e76a.js} +1 -1
- package/dist/esm/{image-annotation-action-84422458.js → image-annotation-action-3da42221.js} +2 -2
- package/dist/esm/{index-b2045ad0.js → index-6e05b241.js} +1 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/loader.js +6 -6
- package/dist/esm/{node-annotation.abstract-a58b5a49.js → node-annotation.abstract-b2e36bc4.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-0ecbf367.js → string-input-formatter-slimmer-d4132497.js} +113 -35
- package/dist/esm/{sub-state-notify-slimmer-4a201088.js → sub-state-notify-slimmer-51151fc3.js} +1 -1
- package/dist/esm/{sub-state-observer-slimmer-0d6da563.js → sub-state-observer-slimmer-d77a1c46.js} +1 -1
- package/dist/esm/vega-app-footer.entry.js +3 -0
- package/dist/esm/vega-button-group_2.entry.js +3 -3
- package/dist/esm/vega-button-link.entry.js +1 -0
- package/dist/esm/vega-calendar_3.entry.js +3 -3
- package/dist/esm/vega-checkbox_2.entry.js +11 -4
- package/dist/esm/vega-color-picker.entry.js +2 -2
- package/dist/esm/vega-combo-box.entry.js +2 -2
- package/dist/esm/vega-date-picker_2.entry.js +6 -6
- package/dist/esm/vega-dropdown_5.entry.js +3 -3
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-file-uploader.entry.js +2 -2
- package/dist/esm/vega-form.entry.js +2 -2
- package/dist/esm/vega-image-uploader.entry.js +3 -2
- package/dist/esm/vega-input-credit-card.entry.js +2 -2
- package/dist/esm/vega-input-numeric.entry.js +3 -3
- package/dist/esm/vega-input-phone-number.entry.js +5 -2
- package/dist/esm/vega-input-range.entry.js +2 -2
- package/dist/esm/vega-input-select.entry.js +2 -2
- package/dist/esm/vega-input.entry.js +10 -8
- package/dist/esm/{vega-internal-event-id-458939b6.js → vega-internal-event-id-d0690d0d.js} +2 -1
- package/dist/esm/vega-item-toggle.entry.js +2 -0
- package/dist/esm/vega-left-nav_5.entry.js +6 -4
- package/dist/esm/vega-loader-wrapper_2.entry.js +55 -2
- package/dist/esm/vega-popover_2.entry.js +1 -1
- package/dist/esm/vega-radio_2.entry.js +2 -2
- package/dist/esm/vega-rich-text-content.entry.js +6 -6
- package/dist/esm/vega-rich-text-editor_4.entry.js +681 -413
- package/dist/esm/vega-selection-chip_2.entry.js +4 -4
- package/dist/esm/vega-selection-tile_2.entry.js +4 -4
- package/dist/esm/vega-sidenav_3.entry.js +3 -3
- package/dist/esm/vega-signature-capture.entry.js +3 -2
- package/dist/esm/{vega-skeleton-loader-controller-0044d77f.js → vega-skeleton-loader-controller-5aea7aeb.js} +11 -3
- package/dist/esm/vega-stepper.entry.js +2 -2
- package/dist/esm/vega-table_8.entry.js +10 -7
- package/dist/esm/vega-textarea.entry.js +2 -2
- package/dist/esm/vega-time-picker_2.entry.js +2 -2
- package/dist/esm/vega-toggle-switch.entry.js +2 -2
- package/dist/esm/vega.js +6 -6
- package/dist/types/components/vega-app-footer/vega-app-footer.d.ts +3 -0
- package/dist/types/components/vega-button-link/vega-button-link.d.ts +1 -0
- package/dist/types/components/vega-checkbox/vega-checkbox.d.ts +2 -0
- package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-format-controller.d.ts +1 -1
- package/dist/types/components/vega-image-uploader/vega-image-uploader.d.ts +1 -0
- package/dist/types/components/vega-input/slimmers/controllers/vega-input-mask-config-controller.d.ts +1 -1
- package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +3 -0
- package/dist/types/components/vega-input-select/types.d.ts +1 -0
- package/dist/types/components/vega-item-toggle/vega-item-toggle.d.ts +2 -0
- package/dist/types/components/vega-loader-wrapper/slimmers/controllers/manage-vega-loader-wrapper-z-index-controller.d.ts +21 -0
- package/dist/types/components/vega-loader-wrapper/vega-loader-wrapper.d.ts +2 -0
- package/dist/types/components/vega-nav/vega-left-nav-link/vega-left-nav-link.d.ts +3 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/delete-selected-nodes-controller.d.ts +57 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/base-handler.d.ts +11 -28
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/delete-content-handler.d.ts +4 -4
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-line-break-handler.d.ts +1 -8
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/insert-composition-text-controller.d.ts +99 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/selection-controller.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/user-input-controller.d.ts +2 -21
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +7 -2
- package/dist/types/components/vega-signature-capture/vega-signature-capture.d.ts +1 -0
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-renderer.d.ts +1 -0
- package/dist/types/components.d.ts +31 -5
- package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
- package/dist/types/helpers/formatter/string-formatter/custom-formatter-strategy.d.ts +3 -3
- package/dist/types/helpers/formatter/string-formatter/number-mask-strategy.d.ts +2 -2
- package/dist/types/helpers/formatter/string-formatter/string-format-strategy.abstract.d.ts +48 -0
- package/dist/types/helpers/formatter/string-formatter/string-mask-strategy.d.ts +6 -10
- package/dist/types/helpers/formatter/string-formatter/thousand-comma-strategy.d.ts +2 -2
- package/dist/types/helpers/loading-indicator/vega-loader-controller.d.ts +1 -0
- package/dist/types/helpers/slimmers/string-input-formatter-slimmer.d.ts +20 -4
- package/dist/types/types/components.type.d.ts +1 -5
- package/dist/types/types/public-api.d.ts +2 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-2d36dbfe.js → p-0461e318.js} +1 -1
- package/dist/vega/{p-1f67c930.entry.js → p-12fe63c1.entry.js} +1 -1
- package/dist/vega/{p-29dd376c.entry.js → p-1b67c443.entry.js} +1 -1
- package/dist/vega/{p-5f82eb88.js → p-1d93b3a9.js} +1 -1
- package/dist/vega/p-20326c64.js +1 -0
- package/dist/vega/{p-fbb91e25.entry.js → p-23fd9401.entry.js} +1 -1
- package/dist/vega/{p-5d7d0085.entry.js → p-267cde46.entry.js} +1 -1
- package/dist/vega/{p-ca239f51.js → p-29d6ec6c.js} +1 -1
- package/dist/vega/{p-d57920df.entry.js → p-2fecbcf9.entry.js} +1 -1
- package/dist/vega/{p-fe9644a0.js → p-348e95ba.js} +1 -1
- package/dist/vega/{p-00de36e4.js → p-34bd9204.js} +1 -1
- package/dist/vega/{p-3aec260c.entry.js → p-3cb90bdf.entry.js} +1 -1
- package/dist/vega/{p-fcab2244.entry.js → p-3e8f9fcf.entry.js} +1 -1
- package/dist/vega/{p-233e6715.entry.js → p-497f2f86.entry.js} +1 -1
- package/dist/vega/p-50eabdca.entry.js +1 -0
- package/dist/vega/{p-503ff1ef.js → p-52a8a4f8.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-766a0cdd.entry.js → p-6419e13e.entry.js} +1 -1
- package/dist/vega/{p-b2b41aa4.entry.js → p-7198d675.entry.js} +1 -1
- package/dist/vega/p-76a8ccbb.js +1 -0
- package/dist/vega/{p-00f4cf6a.entry.js → p-7baa4fae.entry.js} +1 -1
- package/dist/vega/p-7edcb8d0.entry.js +1 -0
- package/dist/vega/{p-bbea0599.entry.js → p-904b489a.entry.js} +1 -1
- package/dist/vega/{p-fea15767.entry.js → p-9689ad99.entry.js} +1 -1
- package/dist/vega/p-9728d571.entry.js +1 -0
- package/dist/vega/{p-95e50f3a.entry.js → p-a2a34239.entry.js} +1 -1
- package/dist/vega/{p-b1096431.entry.js → p-a7e078ac.entry.js} +1 -1
- package/dist/vega/{p-eb798062.entry.js → p-a7f40a65.entry.js} +1 -1
- package/dist/vega/{p-7fedfba5.js → p-a8b16ff2.js} +1 -1
- package/dist/vega/{p-9625162b.entry.js → p-aed80794.entry.js} +1 -1
- package/dist/vega/{p-7da8b05f.js → p-b517ed15.js} +1 -1
- package/dist/vega/{p-b6b4e40f.entry.js → p-b809f3d7.entry.js} +1 -1
- package/dist/vega/{p-0b9480a9.entry.js → p-b9a0f136.entry.js} +1 -1
- package/dist/vega/{p-5a19bcb5.entry.js → p-ba077ca8.entry.js} +1 -1
- package/dist/vega/{p-53360bc2.entry.js → p-ba2833c0.entry.js} +1 -1
- package/dist/vega/{p-13c22d72.entry.js → p-bf4996d5.entry.js} +1 -1
- package/dist/vega/{p-570bdeb5.entry.js → p-cb4fd6e1.entry.js} +1 -1
- package/dist/vega/p-e4ce559d.entry.js +1 -0
- package/dist/vega/{p-cfd486ab.entry.js → p-e9785742.entry.js} +1 -1
- package/dist/vega/p-e9a5bd12.entry.js +1 -0
- package/dist/vega/p-ecaf4cfa.entry.js +1 -0
- package/dist/vega/{p-fb5c2cc6.entry.js → p-ee2e4bff.entry.js} +1 -1
- package/dist/vega/{p-8f8ab0d3.js → p-f86ec91b.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/types/helpers/formatter/string-formatter/string-format-strategy.d.ts +0 -12
- package/dist/vega/p-34caa637.entry.js +0 -1
- package/dist/vega/p-497db801.entry.js +0 -1
- package/dist/vega/p-4c18ff36.js +0 -1
- package/dist/vega/p-6705ce8f.entry.js +0 -1
- package/dist/vega/p-775fa5dd.entry.js +0 -1
- package/dist/vega/p-98043367.entry.js +0 -1
- package/dist/vega/p-a98475a2.entry.js +0 -1
- package/dist/vega/p-c2ded423.js +0 -1
|
@@ -5,24 +5,24 @@ import { g as getActiveElement, s as sanitizeVegaComponent } from './component-c
|
|
|
5
5
|
import { c as createEnterKeyHandlerToTriggerClick } from './accessibility-e5fd0fab.js';
|
|
6
6
|
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
7
7
|
import { d as domNodeSubjectFactory, b as VegaDropdownClick, f as VegaChange, O as VegaImageInserted, a as VegaClick, L as VegaPopoverShow, M as VegaPopoverHide } from './dom-node-subject-factory-97deb349.js';
|
|
8
|
-
import { a as VegaInternalComponentDidRender, b as VegaInternalRichTextEditorSelectionRangeChange, V as VegaInternalRichTextEditorFlushChanges, p as
|
|
9
|
-
import { b as ToolbarButtonSlimmer, I as ImageAnnotationAction, T as TextNodeRenderingRegistry, a as TextColorToolbarButtonSlimmer } from './image-annotation-action-
|
|
8
|
+
import { a as VegaInternalComponentDidRender, b as VegaInternalRichTextEditorSelectionRangeChange, V as VegaInternalRichTextEditorFlushChanges, p as VegaInternalRichTextEditDeleteSelectedNodes, q as VegaInternalRichTextImageClick, r as VegaInternalRichTextImageDeleteButtonClicked, l as VegaInternalPopoverUpdateTarget } from './vega-internal-event-id-d0690d0d.js';
|
|
9
|
+
import { b as ToolbarButtonSlimmer, I as ImageAnnotationAction, T as TextNodeRenderingRegistry, a as TextColorToolbarButtonSlimmer } from './image-annotation-action-3da42221.js';
|
|
10
10
|
import { V as VegaInternalIconManager } from './internal-icon-manager-900a5bb4.js';
|
|
11
|
-
import { f as RTETextNode, B as BoldAnnotationAction, T as TextSplittableAction, i as ItalicAnnotation, U as UnderlineAnnotation, R as RTETextBlock, j as TextStyleAnnotationAction, k as TextStyleAnnotation, l as BoldAnnotation, C as ClearFormattingAnnotationAction, m as CodeAnnotationAction, S as StrikethroughAnnotation, A as AnnotationAction, n as SelectionRangeAnnotation, L as LinkAnnotationAction, o as IndentAnnotation, e as RTEImageNode, b as RTEListItemBlock, H as HorizontalAlignmentAnnotation, Z as ZERO_WIDTH_SPACE, V as VegaRTEContent, p as
|
|
12
|
-
import { c as NodeAnnotationTypeEnum, a as BlockAnnotationTypeEnum, M as ModifyContentAction, b as ModifyContentActionType, R as RTENode, s as stateEntityRenderingRegistry, I as InternalAnnotationTypeEnum, V as VegaThemeManager } from './node-annotation.abstract-
|
|
11
|
+
import { f as RTETextNode, B as BoldAnnotationAction, T as TextSplittableAction, i as ItalicAnnotation, U as UnderlineAnnotation, R as RTETextBlock, j as TextStyleAnnotationAction, k as TextStyleAnnotation, l as BoldAnnotation, C as ClearFormattingAnnotationAction, m as CodeAnnotationAction, S as StrikethroughAnnotation, A as AnnotationAction, n as SelectionRangeAnnotation, L as LinkAnnotationAction, o as IndentAnnotation, e as RTEImageNode, b as RTEListItemBlock, H as HorizontalAlignmentAnnotation, Z as ZERO_WIDTH_SPACE, V as VegaRTEContent, p as AppendChildNodesAction, q as UpdateTextAction, M as MergeTwoBlocksNodesAction, r as SplitBlockWithNodeAction, s as RemoveChildAction, t as ReplaceChildNodesAction, u as InsertBlocksBeforeAction, h as RTE_TEXT_COLORS, c as RTEListBlock, a as RTEImageBlock, v as InsertBlocksAfterAction } from './content-state-ccf5f960.js';
|
|
12
|
+
import { c as NodeAnnotationTypeEnum, a as BlockAnnotationTypeEnum, M as ModifyContentAction, b as ModifyContentActionType, R as RTENode, s as stateEntityRenderingRegistry, I as InternalAnnotationTypeEnum, V as VegaThemeManager } from './node-annotation.abstract-b2e36bc4.js';
|
|
13
13
|
import { D as DomNodeSubjectObserverFactory } from './dom-node-subject-observer-factory-857c65fa.js';
|
|
14
14
|
import { g as generateUUID } from './create-public-api-runtime-metrics-slimmer-9ab05523.js';
|
|
15
|
-
import { a as waitForComponentDidRender } from './index-
|
|
16
|
-
import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-
|
|
15
|
+
import { a as waitForComponentDidRender } from './index-6e05b241.js';
|
|
16
|
+
import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-3535e76a.js';
|
|
17
17
|
import { c as createEventEmitSlimmer } from './event-emit-slimmer-36cf4e39.js';
|
|
18
|
-
import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-
|
|
18
|
+
import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-51151fc3.js';
|
|
19
19
|
import { d as debounce } from './timer-9321173b.js';
|
|
20
20
|
import { S as SynchronizeTaskQueue } from './synchronize-task-queue-ac8acc3b.js';
|
|
21
21
|
import { O as Observer } from './observer-3959f9dd.js';
|
|
22
22
|
import { f as findParent, r as rgbToHex } from './ui-62e4be97.js';
|
|
23
23
|
import { b as FORM_ELEMENT_VALUE_CHANGE, D as DARK_MODE_CHANGE } from './static-subject-title-8268945e.js';
|
|
24
24
|
import './vega-env-manager-8f8dc473.js';
|
|
25
|
-
import './vega-skeleton-loader-controller-
|
|
25
|
+
import './vega-skeleton-loader-controller-5aea7aeb.js';
|
|
26
26
|
import './feature-flag-controller-4b3fe6f8.js';
|
|
27
27
|
import './vega-dialog-controller-34eb8967.js';
|
|
28
28
|
import './icon-manager-b889176b.js';
|
|
@@ -49,7 +49,7 @@ import './internal-vega-event-manager-0a01ba12.js';
|
|
|
49
49
|
import './internal-vega-z-index-manager-7d2b54c3.js';
|
|
50
50
|
import './index-44c794b4.js';
|
|
51
51
|
|
|
52
|
-
var __decorate$
|
|
52
|
+
var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
53
53
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
54
54
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
55
55
|
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;
|
|
@@ -139,38 +139,38 @@ class VegaRichTextEditorRenderer extends VegaSlimmer {
|
|
|
139
139
|
return (this.label && (h("vega-field-label", { onClick: this.richTextContentFocus, isFieldRequired: this.required, disabled: this.disabled, label: this.label })));
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
-
__decorate$
|
|
142
|
+
__decorate$A([
|
|
143
143
|
MapToComponentField()
|
|
144
144
|
], VegaRichTextEditorRenderer.prototype, "host", void 0);
|
|
145
|
-
__decorate$
|
|
145
|
+
__decorate$A([
|
|
146
146
|
MapToComponentField()
|
|
147
147
|
], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
|
|
148
|
-
__decorate$
|
|
148
|
+
__decorate$A([
|
|
149
149
|
MapToComponentField()
|
|
150
150
|
], VegaRichTextEditorRenderer.prototype, "label", void 0);
|
|
151
|
-
__decorate$
|
|
151
|
+
__decorate$A([
|
|
152
152
|
MapToComponentField()
|
|
153
153
|
], VegaRichTextEditorRenderer.prototype, "required", void 0);
|
|
154
|
-
__decorate$
|
|
154
|
+
__decorate$A([
|
|
155
155
|
MapToComponentField()
|
|
156
156
|
], VegaRichTextEditorRenderer.prototype, "hint", void 0);
|
|
157
|
-
__decorate$
|
|
157
|
+
__decorate$A([
|
|
158
158
|
MapToComponentField()
|
|
159
159
|
], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
|
|
160
|
-
__decorate$
|
|
160
|
+
__decorate$A([
|
|
161
161
|
MapToComponentField()
|
|
162
162
|
], VegaRichTextEditorRenderer.prototype, "rows", void 0);
|
|
163
|
-
__decorate$
|
|
163
|
+
__decorate$A([
|
|
164
164
|
MapToComponentField()
|
|
165
165
|
], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
|
|
166
|
-
__decorate$
|
|
166
|
+
__decorate$A([
|
|
167
167
|
MapToComponentField()
|
|
168
168
|
], VegaRichTextEditorRenderer.prototype, "value", void 0);
|
|
169
|
-
__decorate$
|
|
169
|
+
__decorate$A([
|
|
170
170
|
MapToComponentMethod('componentDidRender')
|
|
171
171
|
], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
|
|
172
172
|
|
|
173
|
-
var __decorate$
|
|
173
|
+
var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
174
174
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
175
175
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
176
176
|
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;
|
|
@@ -220,49 +220,49 @@ class ToolbarRenderer extends VegaSlimmer {
|
|
|
220
220
|
})));
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
__decorate$
|
|
223
|
+
__decorate$z([
|
|
224
224
|
MapToComponentField()
|
|
225
225
|
], ToolbarRenderer.prototype, "toolbarItems", void 0);
|
|
226
|
-
__decorate$
|
|
226
|
+
__decorate$z([
|
|
227
227
|
MapToComponentField()
|
|
228
228
|
], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
|
|
229
|
-
__decorate$
|
|
229
|
+
__decorate$z([
|
|
230
230
|
MapToComponentField()
|
|
231
231
|
], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
|
|
232
|
-
__decorate$
|
|
232
|
+
__decorate$z([
|
|
233
233
|
MapToComponentField()
|
|
234
234
|
], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
|
|
235
|
-
__decorate$
|
|
235
|
+
__decorate$z([
|
|
236
236
|
MapToComponentField()
|
|
237
237
|
], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
|
|
238
|
-
__decorate$
|
|
238
|
+
__decorate$z([
|
|
239
239
|
MapToComponentField()
|
|
240
240
|
], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
|
|
241
|
-
__decorate$
|
|
241
|
+
__decorate$z([
|
|
242
242
|
MapToComponentField()
|
|
243
243
|
], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
|
|
244
|
-
__decorate$
|
|
244
|
+
__decorate$z([
|
|
245
245
|
MapToComponentField()
|
|
246
246
|
], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
|
|
247
|
-
__decorate$
|
|
247
|
+
__decorate$z([
|
|
248
248
|
MapToComponentField()
|
|
249
249
|
], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
|
|
250
|
-
__decorate$
|
|
250
|
+
__decorate$z([
|
|
251
251
|
MapToComponentField()
|
|
252
252
|
], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
|
|
253
|
-
__decorate$
|
|
253
|
+
__decorate$z([
|
|
254
254
|
MapToComponentField()
|
|
255
255
|
], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
|
|
256
|
-
__decorate$
|
|
256
|
+
__decorate$z([
|
|
257
257
|
MapToComponentField()
|
|
258
258
|
], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
|
|
259
|
-
__decorate$
|
|
259
|
+
__decorate$z([
|
|
260
260
|
MapToComponentField()
|
|
261
261
|
], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
|
|
262
|
-
__decorate$
|
|
262
|
+
__decorate$z([
|
|
263
263
|
MapToComponentField()
|
|
264
264
|
], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
|
|
265
|
-
__decorate$
|
|
265
|
+
__decorate$z([
|
|
266
266
|
MapToComponentField()
|
|
267
267
|
], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
|
|
268
268
|
|
|
@@ -270,7 +270,7 @@ const bold = {
|
|
|
270
270
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z"/></svg>`,
|
|
271
271
|
};
|
|
272
272
|
|
|
273
|
-
var __decorate$
|
|
273
|
+
var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
274
274
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
275
275
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
276
276
|
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;
|
|
@@ -311,7 +311,7 @@ class BoldToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
311
311
|
(() => {
|
|
312
312
|
VegaInternalIconManager.register({ bold });
|
|
313
313
|
})();
|
|
314
|
-
__decorate$
|
|
314
|
+
__decorate$y([
|
|
315
315
|
MapToComponentField()
|
|
316
316
|
], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
317
317
|
|
|
@@ -338,7 +338,7 @@ class ItalicAnnotationAction extends TextSplittableAction {
|
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
-
var __decorate$
|
|
341
|
+
var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
342
342
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
343
343
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
344
344
|
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;
|
|
@@ -377,7 +377,7 @@ class ItalicToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
377
377
|
(() => {
|
|
378
378
|
VegaInternalIconManager.register({ italic });
|
|
379
379
|
})();
|
|
380
|
-
__decorate$
|
|
380
|
+
__decorate$x([
|
|
381
381
|
MapToComponentField()
|
|
382
382
|
], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
383
383
|
|
|
@@ -404,7 +404,7 @@ class UnderlineAnnotationAction extends TextSplittableAction {
|
|
|
404
404
|
}
|
|
405
405
|
}
|
|
406
406
|
|
|
407
|
-
var __decorate$
|
|
407
|
+
var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
408
408
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
409
409
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
410
410
|
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;
|
|
@@ -446,7 +446,7 @@ class UnderlineToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
446
446
|
(() => {
|
|
447
447
|
VegaInternalIconManager.register({ underline });
|
|
448
448
|
})();
|
|
449
|
-
__decorate$
|
|
449
|
+
__decorate$w([
|
|
450
450
|
MapToComponentField()
|
|
451
451
|
], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
452
452
|
|
|
@@ -454,7 +454,7 @@ const textSize = {
|
|
|
454
454
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M64 128V96h96l0 320H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H224l0-320h96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H192 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM384 304V288h64l0 128H432c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H512l0-128h64v16c0 17.7 14.3 32 32 32s32-14.3 32-32V272c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v32c0 17.7 14.3 32 32 32s32-14.3 32-32z"/></svg>`,
|
|
455
455
|
};
|
|
456
456
|
|
|
457
|
-
var __decorate$
|
|
457
|
+
var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
458
458
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
459
459
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
460
460
|
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;
|
|
@@ -563,10 +563,10 @@ TextStylesToolbarButtonSlimmer.items = [
|
|
|
563
563
|
label: 'Paragraph',
|
|
564
564
|
},
|
|
565
565
|
];
|
|
566
|
-
__decorate$
|
|
566
|
+
__decorate$v([
|
|
567
567
|
MapToComponentField()
|
|
568
568
|
], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
569
|
-
__decorate$
|
|
569
|
+
__decorate$v([
|
|
570
570
|
MapToComponentField()
|
|
571
571
|
], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
|
|
572
572
|
|
|
@@ -574,7 +574,7 @@ const TextSlash = {
|
|
|
574
574
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1L272.9 311 243.3 416z"/></svg>`,
|
|
575
575
|
};
|
|
576
576
|
|
|
577
|
-
var __decorate$
|
|
577
|
+
var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
578
578
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
579
579
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
580
580
|
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;
|
|
@@ -610,7 +610,7 @@ class ClearStyleToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
610
610
|
'text-slash': TextSlash,
|
|
611
611
|
});
|
|
612
612
|
})();
|
|
613
|
-
__decorate$
|
|
613
|
+
__decorate$u([
|
|
614
614
|
MapToComponentField()
|
|
615
615
|
], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
616
616
|
|
|
@@ -618,7 +618,7 @@ const codeSimple = {
|
|
|
618
618
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6zm146.7 0L498.7 256 361.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3z"/></svg>`,
|
|
619
619
|
};
|
|
620
620
|
|
|
621
|
-
var __decorate$
|
|
621
|
+
var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
622
622
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
623
623
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
624
624
|
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;
|
|
@@ -655,7 +655,7 @@ class CodeToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
655
655
|
(() => {
|
|
656
656
|
VegaInternalIconManager.register({ 'code-simple': codeSimple });
|
|
657
657
|
})();
|
|
658
|
-
__decorate$
|
|
658
|
+
__decorate$t([
|
|
659
659
|
MapToComponentField()
|
|
660
660
|
], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
661
661
|
|
|
@@ -682,7 +682,7 @@ class StrikethroughAnnotationAction extends TextSplittableAction {
|
|
|
682
682
|
}
|
|
683
683
|
}
|
|
684
684
|
|
|
685
|
-
var __decorate$
|
|
685
|
+
var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
686
686
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
687
687
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
688
688
|
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;
|
|
@@ -724,7 +724,7 @@ class StrikethroughToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
724
724
|
(() => {
|
|
725
725
|
VegaInternalIconManager.register({ strikethrough });
|
|
726
726
|
})();
|
|
727
|
-
__decorate$
|
|
727
|
+
__decorate$s([
|
|
728
728
|
MapToComponentField()
|
|
729
729
|
], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
730
730
|
|
|
@@ -751,7 +751,7 @@ class SelectionChangeAction extends AnnotationAction {
|
|
|
751
751
|
}
|
|
752
752
|
}
|
|
753
753
|
|
|
754
|
-
var __decorate$
|
|
754
|
+
var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
755
755
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
756
756
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
757
757
|
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;
|
|
@@ -832,7 +832,7 @@ class LinkToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
832
832
|
(() => {
|
|
833
833
|
VegaInternalIconManager.register({ link: link });
|
|
834
834
|
})();
|
|
835
|
-
__decorate$
|
|
835
|
+
__decorate$r([
|
|
836
836
|
MapToComponentField()
|
|
837
837
|
], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
838
838
|
|
|
@@ -859,7 +859,7 @@ class IndentAnnotationAction extends AnnotationAction {
|
|
|
859
859
|
}
|
|
860
860
|
}
|
|
861
861
|
|
|
862
|
-
var __decorate$
|
|
862
|
+
var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
863
863
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
864
864
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
865
865
|
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;
|
|
@@ -894,7 +894,7 @@ class MoreIndentToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
894
894
|
(() => {
|
|
895
895
|
VegaInternalIconManager.register({ indent: indent });
|
|
896
896
|
})();
|
|
897
|
-
__decorate$
|
|
897
|
+
__decorate$q([
|
|
898
898
|
MapToComponentField()
|
|
899
899
|
], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
900
900
|
|
|
@@ -902,7 +902,7 @@ const outdent = {
|
|
|
902
902
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M6 64C6 46.3 20.3 32 38 32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38C20.3 96 6 81.7 6 64zM198 192c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32zm32 96H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H230c-17.7 0-32-14.3-32-32s14.3-32 32-32zM6 448c0-17.7 14.3-32 32-32H422c17.7 0 32 14.3 32 32s-14.3 32-32 32H38c-17.7 0-32-14.3-32-32zm.2-179.4c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L6.2 268.6z"/></svg>`,
|
|
903
903
|
};
|
|
904
904
|
|
|
905
|
-
var __decorate$
|
|
905
|
+
var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
906
906
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
907
907
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
908
908
|
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;
|
|
@@ -938,7 +938,7 @@ class LessIndentToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
938
938
|
(() => {
|
|
939
939
|
VegaInternalIconManager.register({ outdent: outdent });
|
|
940
940
|
})();
|
|
941
|
-
__decorate$
|
|
941
|
+
__decorate$p([
|
|
942
942
|
MapToComponentField()
|
|
943
943
|
], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
944
944
|
|
|
@@ -946,7 +946,7 @@ const image = {
|
|
|
946
946
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"/></svg>`,
|
|
947
947
|
};
|
|
948
948
|
|
|
949
|
-
var __decorate$
|
|
949
|
+
var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
950
950
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
951
951
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
952
952
|
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;
|
|
@@ -1003,13 +1003,13 @@ class ImageToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1003
1003
|
(() => {
|
|
1004
1004
|
VegaInternalIconManager.register({ image: image });
|
|
1005
1005
|
})();
|
|
1006
|
-
__decorate$
|
|
1006
|
+
__decorate$o([
|
|
1007
1007
|
MapToComponentField()
|
|
1008
1008
|
], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
|
|
1009
|
-
__decorate$
|
|
1009
|
+
__decorate$o([
|
|
1010
1010
|
MapToComponentField()
|
|
1011
1011
|
], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
|
|
1012
|
-
__decorate$
|
|
1012
|
+
__decorate$o([
|
|
1013
1013
|
MapToComponentField()
|
|
1014
1014
|
], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1015
1015
|
|
|
@@ -1046,7 +1046,7 @@ class TransformParagraphAction extends ModifyContentAction {
|
|
|
1046
1046
|
}
|
|
1047
1047
|
}
|
|
1048
1048
|
|
|
1049
|
-
var __decorate$
|
|
1049
|
+
var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1050
1050
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1051
1051
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1052
1052
|
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;
|
|
@@ -1104,14 +1104,14 @@ class BulletsToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1104
1104
|
}
|
|
1105
1105
|
}
|
|
1106
1106
|
}
|
|
1107
|
-
__decorate$
|
|
1107
|
+
__decorate$n([
|
|
1108
1108
|
MapToComponentField()
|
|
1109
1109
|
], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1110
|
-
__decorate$
|
|
1110
|
+
__decorate$n([
|
|
1111
1111
|
MapToComponentField()
|
|
1112
1112
|
], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1113
1113
|
|
|
1114
|
-
var __decorate$
|
|
1114
|
+
var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1115
1115
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1116
1116
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1117
1117
|
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;
|
|
@@ -1167,14 +1167,14 @@ class NumbersToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1167
1167
|
}
|
|
1168
1168
|
}
|
|
1169
1169
|
}
|
|
1170
|
-
__decorate$
|
|
1170
|
+
__decorate$m([
|
|
1171
1171
|
MapToComponentField()
|
|
1172
1172
|
], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1173
|
-
__decorate$
|
|
1173
|
+
__decorate$m([
|
|
1174
1174
|
MapToComponentField()
|
|
1175
1175
|
], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1176
1176
|
|
|
1177
|
-
var __decorate$
|
|
1177
|
+
var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1178
1178
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1179
1179
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1180
1180
|
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;
|
|
@@ -1223,16 +1223,16 @@ class BulletsNumbersToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1223
1223
|
'list-ol': ListOL,
|
|
1224
1224
|
});
|
|
1225
1225
|
})();
|
|
1226
|
-
__decorate$
|
|
1226
|
+
__decorate$l([
|
|
1227
1227
|
MapToComponentField()
|
|
1228
1228
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1229
|
-
__decorate$
|
|
1229
|
+
__decorate$l([
|
|
1230
1230
|
InjectVegaSlimmer()
|
|
1231
1231
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
|
|
1232
|
-
__decorate$
|
|
1232
|
+
__decorate$l([
|
|
1233
1233
|
InjectVegaSlimmer()
|
|
1234
1234
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
|
|
1235
|
-
__decorate$
|
|
1235
|
+
__decorate$l([
|
|
1236
1236
|
MapToComponentMethod('componentWillRender')
|
|
1237
1237
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
|
|
1238
1238
|
|
|
@@ -1259,7 +1259,7 @@ const AlignLeft = {
|
|
|
1259
1259
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>`,
|
|
1260
1260
|
};
|
|
1261
1261
|
|
|
1262
|
-
var __decorate$
|
|
1262
|
+
var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1263
1263
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1264
1264
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1265
1265
|
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;
|
|
@@ -1294,10 +1294,10 @@ class LeftAlignToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1294
1294
|
'align-left': AlignLeft,
|
|
1295
1295
|
});
|
|
1296
1296
|
})();
|
|
1297
|
-
__decorate$
|
|
1297
|
+
__decorate$k([
|
|
1298
1298
|
MapToComponentField()
|
|
1299
1299
|
], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1300
|
-
__decorate$
|
|
1300
|
+
__decorate$k([
|
|
1301
1301
|
MapToComponentField()
|
|
1302
1302
|
], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1303
1303
|
|
|
@@ -1305,7 +1305,7 @@ const AlignCenter = {
|
|
|
1305
1305
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z"/></svg>`,
|
|
1306
1306
|
};
|
|
1307
1307
|
|
|
1308
|
-
var __decorate$
|
|
1308
|
+
var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1309
1309
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1310
1310
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1311
1311
|
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;
|
|
@@ -1340,10 +1340,10 @@ class CenterAlignToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1340
1340
|
'align-center': AlignCenter,
|
|
1341
1341
|
});
|
|
1342
1342
|
})();
|
|
1343
|
-
__decorate$
|
|
1343
|
+
__decorate$j([
|
|
1344
1344
|
MapToComponentField()
|
|
1345
1345
|
], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1346
|
-
__decorate$
|
|
1346
|
+
__decorate$j([
|
|
1347
1347
|
MapToComponentField()
|
|
1348
1348
|
], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1349
1349
|
|
|
@@ -1351,7 +1351,7 @@ const AlignRight = {
|
|
|
1351
1351
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"/></svg>`,
|
|
1352
1352
|
};
|
|
1353
1353
|
|
|
1354
|
-
var __decorate$
|
|
1354
|
+
var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1355
1355
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1356
1356
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1357
1357
|
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;
|
|
@@ -1386,10 +1386,10 @@ class RightAlignToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1386
1386
|
'align-right': AlignRight,
|
|
1387
1387
|
});
|
|
1388
1388
|
})();
|
|
1389
|
-
__decorate$
|
|
1389
|
+
__decorate$i([
|
|
1390
1390
|
MapToComponentField()
|
|
1391
1391
|
], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1392
|
-
__decorate$
|
|
1392
|
+
__decorate$i([
|
|
1393
1393
|
MapToComponentField()
|
|
1394
1394
|
], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1395
1395
|
|
|
@@ -1397,7 +1397,7 @@ const AlignJustify = {
|
|
|
1397
1397
|
icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="currentColor" d="M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z"/></svg>`,
|
|
1398
1398
|
};
|
|
1399
1399
|
|
|
1400
|
-
var __decorate$
|
|
1400
|
+
var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1401
1401
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1402
1402
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1403
1403
|
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;
|
|
@@ -1432,14 +1432,14 @@ class JustifyAlignToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1432
1432
|
'align-justify': AlignJustify,
|
|
1433
1433
|
});
|
|
1434
1434
|
})();
|
|
1435
|
-
__decorate$
|
|
1435
|
+
__decorate$h([
|
|
1436
1436
|
MapToComponentField()
|
|
1437
1437
|
], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1438
|
-
__decorate$
|
|
1438
|
+
__decorate$h([
|
|
1439
1439
|
MapToComponentField()
|
|
1440
1440
|
], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1441
1441
|
|
|
1442
|
-
var __decorate$
|
|
1442
|
+
var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1443
1443
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1444
1444
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1445
1445
|
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;
|
|
@@ -1491,22 +1491,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
1491
1491
|
return false;
|
|
1492
1492
|
}
|
|
1493
1493
|
}
|
|
1494
|
-
__decorate$
|
|
1494
|
+
__decorate$g([
|
|
1495
1495
|
MapToComponentField()
|
|
1496
1496
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1497
|
-
__decorate$
|
|
1497
|
+
__decorate$g([
|
|
1498
1498
|
InjectVegaSlimmer()
|
|
1499
1499
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
|
|
1500
|
-
__decorate$
|
|
1500
|
+
__decorate$g([
|
|
1501
1501
|
InjectVegaSlimmer()
|
|
1502
1502
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
|
|
1503
|
-
__decorate$
|
|
1503
|
+
__decorate$g([
|
|
1504
1504
|
InjectVegaSlimmer()
|
|
1505
1505
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
|
|
1506
|
-
__decorate$
|
|
1506
|
+
__decorate$g([
|
|
1507
1507
|
InjectVegaSlimmer()
|
|
1508
1508
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
|
|
1509
|
-
__decorate$
|
|
1509
|
+
__decorate$g([
|
|
1510
1510
|
MapToComponentMethod('componentWillRender')
|
|
1511
1511
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
|
|
1512
1512
|
|
|
@@ -1849,7 +1849,7 @@ class RTERange {
|
|
|
1849
1849
|
}
|
|
1850
1850
|
}
|
|
1851
1851
|
|
|
1852
|
-
var __decorate$
|
|
1852
|
+
var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1853
1853
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1854
1854
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1855
1855
|
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;
|
|
@@ -1970,17 +1970,22 @@ class SelectionController extends VegaSlimmer {
|
|
|
1970
1970
|
*/
|
|
1971
1971
|
setSelectionRange(range) {
|
|
1972
1972
|
const selection = this.getSelection();
|
|
1973
|
-
selection
|
|
1974
|
-
|
|
1975
|
-
|
|
1973
|
+
if (selection) {
|
|
1974
|
+
selection.removeAllRanges();
|
|
1975
|
+
selection.addRange(range);
|
|
1976
|
+
this.saveSelection();
|
|
1977
|
+
}
|
|
1976
1978
|
}
|
|
1977
1979
|
/**
|
|
1978
1980
|
* Save the current selection range detail
|
|
1979
1981
|
*/
|
|
1980
1982
|
saveSelection() {
|
|
1981
1983
|
const selection = this.getSelection();
|
|
1982
|
-
// The range is out of date if the queue is not empty, so we should not update the RTERange
|
|
1983
|
-
if (selection &&
|
|
1984
|
+
// The range is out of date if the queue is not empty, or the range is update by the composition text insert, so we should not update the RTERange
|
|
1985
|
+
if (selection &&
|
|
1986
|
+
selection.rangeCount > 0 &&
|
|
1987
|
+
this.updateCaretPositionTaskQueue.queue.length === 0 &&
|
|
1988
|
+
!this.insertCompositionTextController.isComposing()) {
|
|
1984
1989
|
const range = selection.getRangeAt(0);
|
|
1985
1990
|
const { startContainer: startNode, endContainer: endNode, startOffset, endOffset } = range;
|
|
1986
1991
|
this.currentRange = this.currentRange.updateRTERange({ startNode, endNode, startOffset, endOffset }, range);
|
|
@@ -2098,38 +2103,41 @@ class SelectionController extends VegaSlimmer {
|
|
|
2098
2103
|
}
|
|
2099
2104
|
}
|
|
2100
2105
|
SelectionController.SELECTION_CHANGE_DEBOUNCE_TIME = 50;
|
|
2101
|
-
__decorate$
|
|
2106
|
+
__decorate$f([
|
|
2102
2107
|
MapToComponentField()
|
|
2103
2108
|
], SelectionController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
2104
|
-
__decorate$
|
|
2109
|
+
__decorate$f([
|
|
2105
2110
|
MapToComponentField({ writable: true })
|
|
2106
2111
|
], SelectionController.prototype, "selectionMap", void 0);
|
|
2107
|
-
__decorate$
|
|
2112
|
+
__decorate$f([
|
|
2108
2113
|
MapToComponentField()
|
|
2109
2114
|
], SelectionController.prototype, "host", void 0);
|
|
2110
|
-
__decorate$
|
|
2115
|
+
__decorate$f([
|
|
2111
2116
|
MapToComponentField()
|
|
2112
2117
|
], SelectionController.prototype, "value", void 0);
|
|
2113
|
-
__decorate$
|
|
2118
|
+
__decorate$f([
|
|
2114
2119
|
MapToComponentField()
|
|
2115
2120
|
], SelectionController.prototype, "valueController", void 0);
|
|
2116
|
-
__decorate$
|
|
2121
|
+
__decorate$f([
|
|
2122
|
+
MapToComponentField()
|
|
2123
|
+
], SelectionController.prototype, "insertCompositionTextController", void 0);
|
|
2124
|
+
__decorate$f([
|
|
2117
2125
|
MapToComponentMethod('connectedCallback')
|
|
2118
2126
|
], SelectionController.prototype, "connectedCallback", null);
|
|
2119
|
-
__decorate$
|
|
2127
|
+
__decorate$f([
|
|
2120
2128
|
MapToComponentMethod('disconnectedCallback')
|
|
2121
2129
|
], SelectionController.prototype, "disconnectedCallback", null);
|
|
2122
|
-
__decorate$
|
|
2130
|
+
__decorate$f([
|
|
2123
2131
|
MapToComponentMethod('componentDidLoad')
|
|
2124
2132
|
], SelectionController.prototype, "componentDidLoad", null);
|
|
2125
|
-
__decorate$
|
|
2133
|
+
__decorate$f([
|
|
2126
2134
|
MapToComponentMethod('watchValueUpdate')
|
|
2127
2135
|
], SelectionController.prototype, "watchValueUpdate", null);
|
|
2128
|
-
__decorate$
|
|
2136
|
+
__decorate$f([
|
|
2129
2137
|
MapToComponentMethod('componentDidUpdate')
|
|
2130
2138
|
], SelectionController.prototype, "updateCaretPosition", null);
|
|
2131
2139
|
|
|
2132
|
-
var __decorate$
|
|
2140
|
+
var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2133
2141
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2134
2142
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2135
2143
|
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;
|
|
@@ -2200,32 +2208,32 @@ class ValueController extends VegaSlimmer {
|
|
|
2200
2208
|
}
|
|
2201
2209
|
}
|
|
2202
2210
|
ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
|
|
2203
|
-
__decorate$
|
|
2211
|
+
__decorate$e([
|
|
2204
2212
|
MapToComponentField()
|
|
2205
2213
|
], ValueController.prototype, "host", void 0);
|
|
2206
|
-
__decorate$
|
|
2214
|
+
__decorate$e([
|
|
2207
2215
|
MapToComponentField({ writable: true })
|
|
2208
2216
|
], ValueController.prototype, "value", void 0);
|
|
2209
|
-
__decorate$
|
|
2217
|
+
__decorate$e([
|
|
2210
2218
|
MapToComponentField()
|
|
2211
2219
|
], ValueController.prototype, "changeEventEmitter", void 0);
|
|
2212
|
-
__decorate$
|
|
2220
|
+
__decorate$e([
|
|
2213
2221
|
MapToComponentField()
|
|
2214
2222
|
], ValueController.prototype, "valueController", void 0);
|
|
2215
|
-
__decorate$
|
|
2223
|
+
__decorate$e([
|
|
2216
2224
|
MapToComponentMethod('connectedCallback')
|
|
2217
2225
|
], ValueController.prototype, "connectedCallback", null);
|
|
2218
|
-
__decorate$
|
|
2226
|
+
__decorate$e([
|
|
2219
2227
|
MapToComponentMethod('disconnectedCallback')
|
|
2220
2228
|
], ValueController.prototype, "disconnectedCallback", null);
|
|
2221
|
-
__decorate$
|
|
2229
|
+
__decorate$e([
|
|
2222
2230
|
MapToComponentMethod('componentWillLoad')
|
|
2223
2231
|
], ValueController.prototype, "componentWillLoad", null);
|
|
2224
|
-
__decorate$
|
|
2232
|
+
__decorate$e([
|
|
2225
2233
|
MapToComponentMethod('watchValueUpdate')
|
|
2226
2234
|
], ValueController.prototype, "watchValueUpdate", null);
|
|
2227
2235
|
|
|
2228
|
-
var __decorate$
|
|
2236
|
+
var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2229
2237
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2230
2238
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2231
2239
|
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;
|
|
@@ -2258,13 +2266,13 @@ class DarkModeStateControllerSlimmer extends VegaSlimmer {
|
|
|
2258
2266
|
return true;
|
|
2259
2267
|
}
|
|
2260
2268
|
}
|
|
2261
|
-
__decorate$
|
|
2269
|
+
__decorate$d([
|
|
2262
2270
|
MapToComponentField({ writable: true })
|
|
2263
2271
|
], DarkModeStateControllerSlimmer.prototype, "isInDarkMode", void 0);
|
|
2264
|
-
__decorate$
|
|
2272
|
+
__decorate$d([
|
|
2265
2273
|
MapToComponentMethod('connectedCallback')
|
|
2266
2274
|
], DarkModeStateControllerSlimmer.prototype, "connectedCallback", null);
|
|
2267
|
-
__decorate$
|
|
2275
|
+
__decorate$d([
|
|
2268
2276
|
MapToComponentMethod('disconnectedCallback')
|
|
2269
2277
|
], DarkModeStateControllerSlimmer.prototype, "disconnectResizeObserver", null);
|
|
2270
2278
|
|
|
@@ -2284,21 +2292,6 @@ class RichTextContentController {
|
|
|
2284
2292
|
}
|
|
2285
2293
|
}
|
|
2286
2294
|
|
|
2287
|
-
/**
|
|
2288
|
-
* Replace the text node selected content to new text
|
|
2289
|
-
*
|
|
2290
|
-
* @example selectedNode.apply(new ReplaceSelectedTextAction(insertText))
|
|
2291
|
-
*/
|
|
2292
|
-
class ReplaceSelectedTextAction extends ModifyContentAction {
|
|
2293
|
-
constructor(text, currentRange) {
|
|
2294
|
-
super();
|
|
2295
|
-
this.type = ModifyContentActionType.REPLACE_SELECTED_TEXT;
|
|
2296
|
-
this.textToBeInsert = '';
|
|
2297
|
-
this.textToBeInsert = text;
|
|
2298
|
-
this.currentRange = currentRange;
|
|
2299
|
-
}
|
|
2300
|
-
}
|
|
2301
|
-
|
|
2302
2295
|
const ROOT_CONTAINER_CLASS_NAME = 'rich-text-content';
|
|
2303
2296
|
/** This code snippet is defining an abstract class named `BaseHandler` with an abstract method `execute`. */
|
|
2304
2297
|
class BaseHandler {
|
|
@@ -2307,30 +2300,14 @@ class BaseHandler {
|
|
|
2307
2300
|
*
|
|
2308
2301
|
* @param {VegaRTEContent} currentState - The current state of the VegaRTE content.
|
|
2309
2302
|
* @param {SelectionController} selectionController - Manages the selection of items in the user interface.
|
|
2303
|
+
* @param {HTMLElement} richTextEditor - The current rich text editor component
|
|
2310
2304
|
* @param {InputEvent} [event] - It is used to pass an input event to the method for handling.
|
|
2311
2305
|
*/
|
|
2312
|
-
execute(currentState, selectionController, event) {
|
|
2306
|
+
execute(currentState, selectionController, richTextEditor, event) {
|
|
2313
2307
|
this.initCurrentStateAndSelection(currentState, selectionController);
|
|
2308
|
+
this.setCurrentRichTextEditor(richTextEditor);
|
|
2314
2309
|
this.handleEvent(event);
|
|
2315
2310
|
}
|
|
2316
|
-
/**
|
|
2317
|
-
* Replaces the selected nodes with the provided text.
|
|
2318
|
-
*
|
|
2319
|
-
* @param {string} text - The insert text
|
|
2320
|
-
* @returns {RTENode} - The selected start node
|
|
2321
|
-
*/
|
|
2322
|
-
replaceSelectedNodesWithText(text) {
|
|
2323
|
-
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2324
|
-
const range = this.selectionController.getCurrentRange();
|
|
2325
|
-
const { startContainer, endContainer } = range;
|
|
2326
|
-
const result = this.removeSelectionRange();
|
|
2327
|
-
const startNode = selectedNodes[0];
|
|
2328
|
-
if (startNode instanceof RTETextNode && text) {
|
|
2329
|
-
startNode.apply(new UpdateTextAction(startNode.text + text));
|
|
2330
|
-
}
|
|
2331
|
-
this.mergeRangeStartAndEnd(startContainer, endContainer);
|
|
2332
|
-
return result;
|
|
2333
|
-
}
|
|
2334
2311
|
/**
|
|
2335
2312
|
* The function `isRootContainer` checks if an HTML element is a root container with a class of 'rich-text-content'.
|
|
2336
2313
|
*
|
|
@@ -2352,105 +2329,22 @@ class BaseHandler {
|
|
|
2352
2329
|
return node && node.childNodes && node.childNodes.length === 0;
|
|
2353
2330
|
}
|
|
2354
2331
|
/**
|
|
2355
|
-
* Removes
|
|
2332
|
+
* Removes selected nodes within a range in a rich text editor content.
|
|
2333
|
+
* The method is only used for different nodes are selected
|
|
2334
|
+
*
|
|
2335
|
+
* @param {boolean} [mergeNode] Merge start node and end node or not, default value is false.
|
|
2336
|
+
* @returns {RTENode} The range start node, usually the start node is the first item of selectedNodes, if the selectedNodes is all removed, the start node will be a new text node.
|
|
2356
2337
|
*/
|
|
2357
|
-
|
|
2338
|
+
removeSelectionRange(mergeNode = false) {
|
|
2339
|
+
ChangeManager.notify(domNodeSubjectFactory.getSubject(this.richTextEditorRef, VegaInternalRichTextEditDeleteSelectedNodes), { host: this.richTextEditorRef, detail: mergeNode });
|
|
2340
|
+
const range = this.selectionController.getCurrentRange();
|
|
2358
2341
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2359
|
-
|
|
2360
|
-
if (selectedNodes[0] instanceof RTETextNode) {
|
|
2361
|
-
selectedNodes[0].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
2362
|
-
}
|
|
2363
|
-
if (selectedNodes.length > 1 && selectedNodes[selectedNodes.length - 1] instanceof RTETextNode) {
|
|
2364
|
-
selectedNodes[selectedNodes.length - 1].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
2365
|
-
}
|
|
2342
|
+
return range.startNode || selectedNodes[0];
|
|
2366
2343
|
}
|
|
2367
2344
|
/**
|
|
2368
|
-
*
|
|
2345
|
+
* Creates a new paragraph with an empty text node and returns it.
|
|
2369
2346
|
*
|
|
2370
|
-
* @
|
|
2371
|
-
* @param {Node} endContainer - End text node element
|
|
2372
|
-
*/
|
|
2373
|
-
mergeRangeStartAndEnd(startContainer, endContainer) {
|
|
2374
|
-
if (startContainer !== endContainer) {
|
|
2375
|
-
if (startContainer.nodeType === Node.TEXT_NODE && endContainer.nodeType === Node.TEXT_NODE) {
|
|
2376
|
-
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2377
|
-
const startRTENode = selectedNodes[0];
|
|
2378
|
-
const endRTENode = selectedNodes[selectedNodes.length - 1];
|
|
2379
|
-
if (startRTENode && startRTENode.parentBlock && endRTENode && endRTENode.parentBlock) {
|
|
2380
|
-
const endBlock = endRTENode.parentBlock;
|
|
2381
|
-
if (this.shouldMergeTextNode(startRTENode, endRTENode)) {
|
|
2382
|
-
startRTENode.apply(new UpdateTextAction(startRTENode.text + endRTENode.text));
|
|
2383
|
-
if (startRTENode.parentBlock === endRTENode.parentBlock) {
|
|
2384
|
-
startRTENode.parentBlock.apply(new RemoveChildAction(endRTENode));
|
|
2385
|
-
}
|
|
2386
|
-
else {
|
|
2387
|
-
endRTENode.parentBlock.apply(new RemoveChildAction(endRTENode.parentBlock.nodes[0]));
|
|
2388
|
-
}
|
|
2389
|
-
}
|
|
2390
|
-
if (startRTENode.parentBlock !== endRTENode.parentBlock) {
|
|
2391
|
-
startRTENode.parentBlock.apply(new AppendChildNodesAction(endBlock.nodes));
|
|
2392
|
-
endBlock.nodes = [];
|
|
2393
|
-
}
|
|
2394
|
-
if (endBlock.nodes.length < 1) {
|
|
2395
|
-
endBlock.parent.apply(new RemoveChildAction(endBlock));
|
|
2396
|
-
}
|
|
2397
|
-
}
|
|
2398
|
-
}
|
|
2399
|
-
}
|
|
2400
|
-
}
|
|
2401
|
-
/**
|
|
2402
|
-
* Removes selected nodes within a range in a rich text editor content.
|
|
2403
|
-
* The method is only used for different nodes are selected
|
|
2404
|
-
*
|
|
2405
|
-
* @returns {RTENode} The range start node, usually the start node is the first item of selectedNodes, if the selectedNodes is all removed, the start node will be a new text node.
|
|
2406
|
-
*/
|
|
2407
|
-
removeSelectionRange() {
|
|
2408
|
-
const range = this.selectionController.getCurrentRange();
|
|
2409
|
-
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2410
|
-
const { endOffset, startOffset } = range;
|
|
2411
|
-
const startNode = selectedNodes[0];
|
|
2412
|
-
const endNode = selectedNodes[selectedNodes.length - 1];
|
|
2413
|
-
if (selectedNodes.length > 1) {
|
|
2414
|
-
// Remove all selected nodes except start node and end node(the end image node will be removed), the start node need to get the index of the block
|
|
2415
|
-
const shouldRemovedItems = selectedNodes.filter((item) => {
|
|
2416
|
-
if (item.type !== 'IMAGE') {
|
|
2417
|
-
return item !== startNode && item !== endNode;
|
|
2418
|
-
}
|
|
2419
|
-
else {
|
|
2420
|
-
return item !== startNode && (item !== endNode || (item === endNode && endOffset !== 0));
|
|
2421
|
-
}
|
|
2422
|
-
});
|
|
2423
|
-
shouldRemovedItems.forEach((item) => {
|
|
2424
|
-
item.parentBlock.apply(new RemoveChildAction(item));
|
|
2425
|
-
});
|
|
2426
|
-
}
|
|
2427
|
-
this.removeRangeStartAndEndSelectedText();
|
|
2428
|
-
/**
|
|
2429
|
-
* 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.
|
|
2430
|
-
* 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
|
|
2431
|
-
*/
|
|
2432
|
-
if (startNode instanceof RTEImageNode &&
|
|
2433
|
-
startOffset !== 1 &&
|
|
2434
|
-
(endNode !== startNode || endOffset !== 0)) {
|
|
2435
|
-
// the image block will be deleted when the image is the only item
|
|
2436
|
-
if (startNode.parentBlock.nodes.length === 1) {
|
|
2437
|
-
const paragraph = this.createEmptyParagraph();
|
|
2438
|
-
startNode.parentBlock.parent.apply(new InsertBlocksBeforeAction(startNode.parentBlock, paragraph));
|
|
2439
|
-
startNode.parentBlock.apply(new RemoveChildAction(startNode));
|
|
2440
|
-
return paragraph.nodes[0];
|
|
2441
|
-
}
|
|
2442
|
-
else if (startNode === startNode.parentBlock.nodes[0]) {
|
|
2443
|
-
// the start node should be the next image item if the image is first item
|
|
2444
|
-
startNode.parentBlock.apply(new RemoveChildAction(startNode));
|
|
2445
|
-
return startNode.parentBlock.nodes[0];
|
|
2446
|
-
}
|
|
2447
|
-
}
|
|
2448
|
-
return startNode;
|
|
2449
|
-
}
|
|
2450
|
-
/**
|
|
2451
|
-
* Creates a new paragraph with an empty text node and returns it.
|
|
2452
|
-
*
|
|
2453
|
-
* @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
|
|
2347
|
+
* @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
|
|
2454
2348
|
*/
|
|
2455
2349
|
createEmptyParagraph() {
|
|
2456
2350
|
const paragraph = new RTETextBlock(generateUUID(), 'paragraph');
|
|
@@ -2458,18 +2352,6 @@ class BaseHandler {
|
|
|
2458
2352
|
paragraph.apply(new AppendChildNodesAction([textNode]));
|
|
2459
2353
|
return paragraph;
|
|
2460
2354
|
}
|
|
2461
|
-
/**
|
|
2462
|
-
* Compares the annotations of two RTETextNodes to determine if they can be merged.
|
|
2463
|
-
*
|
|
2464
|
-
* @param {RTETextNode} nodeA - node A
|
|
2465
|
-
* @param {RTETextNode} nodeB - node B
|
|
2466
|
-
* @returns {boolean} true or false
|
|
2467
|
-
*/
|
|
2468
|
-
shouldMergeTextNode(nodeA, nodeB) {
|
|
2469
|
-
const { annotations: annotationsA } = nodeA.toJSON();
|
|
2470
|
-
const { annotations: annotationsB } = nodeB.toJSON();
|
|
2471
|
-
return JSON.stringify(annotationsA) === JSON.stringify(annotationsB);
|
|
2472
|
-
}
|
|
2473
2355
|
/**
|
|
2474
2356
|
* The function initializes the current state and selection controller in TypeScript.
|
|
2475
2357
|
*
|
|
@@ -2480,6 +2362,14 @@ class BaseHandler {
|
|
|
2480
2362
|
this.currentState = currentState;
|
|
2481
2363
|
this.selectionController = selectionController;
|
|
2482
2364
|
}
|
|
2365
|
+
/**
|
|
2366
|
+
* Queries the rich text editor element from the input event target.
|
|
2367
|
+
*
|
|
2368
|
+
* @param {HTMLElement} richTextEditor - The current rich text editor component
|
|
2369
|
+
*/
|
|
2370
|
+
setCurrentRichTextEditor(richTextEditor) {
|
|
2371
|
+
this.richTextEditorRef = richTextEditor;
|
|
2372
|
+
}
|
|
2483
2373
|
}
|
|
2484
2374
|
|
|
2485
2375
|
/**
|
|
@@ -2496,6 +2386,21 @@ class InsertNodesBeforeAction extends ModifyContentAction {
|
|
|
2496
2386
|
}
|
|
2497
2387
|
}
|
|
2498
2388
|
|
|
2389
|
+
/**
|
|
2390
|
+
* Replace the text node selected content to new text
|
|
2391
|
+
*
|
|
2392
|
+
* @example selectedNode.apply(new ReplaceSelectedTextAction(insertText))
|
|
2393
|
+
*/
|
|
2394
|
+
class ReplaceSelectedTextAction extends ModifyContentAction {
|
|
2395
|
+
constructor(text, currentRange) {
|
|
2396
|
+
super();
|
|
2397
|
+
this.type = ModifyContentActionType.REPLACE_SELECTED_TEXT;
|
|
2398
|
+
this.textToBeInsert = '';
|
|
2399
|
+
this.textToBeInsert = text;
|
|
2400
|
+
this.currentRange = currentRange;
|
|
2401
|
+
}
|
|
2402
|
+
}
|
|
2403
|
+
|
|
2499
2404
|
/** Handles inserting text into a VegaRTEContent based on the current selection and input event. User input character will trigger this callback */
|
|
2500
2405
|
class InsertTextHandler extends BaseHandler {
|
|
2501
2406
|
/**
|
|
@@ -2539,10 +2444,11 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2539
2444
|
}
|
|
2540
2445
|
else {
|
|
2541
2446
|
// The selected nodes is multiple nodes
|
|
2542
|
-
const cursorNode = this.
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2447
|
+
const cursorNode = this.removeSelectionRange(true);
|
|
2448
|
+
if (cursorNode instanceof RTETextNode) {
|
|
2449
|
+
cursorNode.apply(new ReplaceSelectedTextAction(text, currentRange));
|
|
2450
|
+
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, Math.min(startOffset + text.length, cursorNode.text.length));
|
|
2451
|
+
}
|
|
2546
2452
|
}
|
|
2547
2453
|
}
|
|
2548
2454
|
/**
|
|
@@ -2739,11 +2645,13 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2739
2645
|
* </p>
|
|
2740
2646
|
*/
|
|
2741
2647
|
breakNewBlock() {
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2648
|
+
if (this.currentState &&
|
|
2649
|
+
this.currentState.blocks[0] &&
|
|
2650
|
+
this.currentState.blocks[0] instanceof RTETextBlock) {
|
|
2651
|
+
const lineBreakAction = new LineBreakSingleBlockAction(this.currentState.blocks[0].nodes[0], 0);
|
|
2652
|
+
this.currentState.blocks[0].apply(lineBreakAction);
|
|
2653
|
+
this.switchCaretPositionToSpecifiedNode(lineBreakAction.lineBreakNode);
|
|
2654
|
+
}
|
|
2747
2655
|
}
|
|
2748
2656
|
/**
|
|
2749
2657
|
* If the selected node is a text node
|
|
@@ -2780,7 +2688,7 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2780
2688
|
/**
|
|
2781
2689
|
* Moves the caret to the next node element in a rich text editor.
|
|
2782
2690
|
*
|
|
2783
|
-
* @param {
|
|
2691
|
+
* @param {RTENode} lineBreakNode - Represents a node element in a rich text editor.
|
|
2784
2692
|
*/
|
|
2785
2693
|
switchCaretPositionToSpecifiedNode(lineBreakNode) {
|
|
2786
2694
|
this.selectionController.enqueueSelectionRangeFutureState(this.getNextRTENode(lineBreakNode), 0);
|
|
@@ -2796,15 +2704,6 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2796
2704
|
const nextNode = lineBreakNode.parentBlock['nodes'][index + 1];
|
|
2797
2705
|
return nextNode || lineBreakNode;
|
|
2798
2706
|
}
|
|
2799
|
-
/**
|
|
2800
|
-
* Create a null text that will render a br element in a rich text editor.
|
|
2801
|
-
*
|
|
2802
|
-
* @param {RTEBlock} block - Represents a block element in a rich text editor.
|
|
2803
|
-
* @returns {RTETextNode} the new line break node.
|
|
2804
|
-
*/
|
|
2805
|
-
createLineBreakNode(block) {
|
|
2806
|
-
return new RTETextNode(generateUUID(), '\n', block);
|
|
2807
|
-
}
|
|
2808
2707
|
}
|
|
2809
2708
|
|
|
2810
2709
|
/**
|
|
@@ -2864,21 +2763,12 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2864
2763
|
}
|
|
2865
2764
|
}
|
|
2866
2765
|
}
|
|
2867
|
-
/**
|
|
2868
|
-
* Creates a new paragraph element with a text node and appends it to the current state.
|
|
2869
|
-
*/
|
|
2870
|
-
insertDefaultParagraph() {
|
|
2871
|
-
const paragraph = this.createEmptyParagraph();
|
|
2872
|
-
this.currentState.apply(new AppendChildNodesAction([paragraph]));
|
|
2873
|
-
this.selectionController.enqueueSelectionRangeFutureState(paragraph.nodes[0], 1);
|
|
2874
|
-
}
|
|
2875
2766
|
/**
|
|
2876
2767
|
* Deletes the content within multiple nodes selected by the user.
|
|
2877
2768
|
*/
|
|
2878
2769
|
deleteContentWithMultipleNodes() {
|
|
2879
|
-
const range = this.selectionController.getCurrentRange();
|
|
2880
2770
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2881
|
-
const cursorNode = this.
|
|
2771
|
+
const cursorNode = this.removeSelectionRange(true);
|
|
2882
2772
|
const lastSelectedNode = selectedNodes[selectedNodes.length - 1];
|
|
2883
2773
|
if (selectedNodes.length > 1 &&
|
|
2884
2774
|
lastSelectedNode instanceof RTETextNode &&
|
|
@@ -2886,7 +2776,6 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2886
2776
|
lastSelectedNode.parentBlock.apply(new RemoveChildAction(lastSelectedNode));
|
|
2887
2777
|
}
|
|
2888
2778
|
this.convertFirstBlockToParagraph(cursorNode.parentBlock);
|
|
2889
|
-
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, range.startOffset);
|
|
2890
2779
|
}
|
|
2891
2780
|
/**
|
|
2892
2781
|
* If the first block is not paragraph, convert the block to paragraph after delete all text
|
|
@@ -2906,6 +2795,14 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2906
2795
|
block.parent.apply(new RemoveChildAction(block));
|
|
2907
2796
|
}
|
|
2908
2797
|
}
|
|
2798
|
+
/**
|
|
2799
|
+
* Creates a new paragraph element with a text node and appends it to the current state.
|
|
2800
|
+
*/
|
|
2801
|
+
insertDefaultParagraph() {
|
|
2802
|
+
const paragraph = this.createEmptyParagraph();
|
|
2803
|
+
this.currentState.apply(new AppendChildNodesAction([paragraph]));
|
|
2804
|
+
this.selectionController.enqueueSelectionRangeFutureState(paragraph.nodes[0], 1);
|
|
2805
|
+
}
|
|
2909
2806
|
/**
|
|
2910
2807
|
* Returns the end offset of a given node in a Rich Text Editor based on its type and text content.
|
|
2911
2808
|
*
|
|
@@ -3824,8 +3721,8 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3824
3721
|
*/
|
|
3825
3722
|
insertBlocksToContent(blocks) {
|
|
3826
3723
|
const cursorNode = this.removeSelectionRange();
|
|
3827
|
-
|
|
3828
|
-
|
|
3724
|
+
if (cursorNode && cursorNode.parentBlock) {
|
|
3725
|
+
const currentBlock = cursorNode.parentBlock;
|
|
3829
3726
|
const { startOffset } = this.selectionController.getCurrentRange();
|
|
3830
3727
|
const breakAction = new SplitBlockWithNodeAction(cursorNode, startOffset);
|
|
3831
3728
|
currentBlock.apply(breakAction);
|
|
@@ -3873,13 +3770,13 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3873
3770
|
}
|
|
3874
3771
|
}
|
|
3875
3772
|
|
|
3876
|
-
var __decorate$
|
|
3773
|
+
var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3877
3774
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3878
3775
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3879
3776
|
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;
|
|
3880
3777
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
3881
3778
|
};
|
|
3882
|
-
/** Used to monitoring the user input actions by event listener
|
|
3779
|
+
/** Used to monitoring the user input actions by event listener */
|
|
3883
3780
|
class UserInputController extends VegaSlimmer {
|
|
3884
3781
|
constructor() {
|
|
3885
3782
|
super(...arguments);
|
|
@@ -3888,91 +3785,47 @@ class UserInputController extends VegaSlimmer {
|
|
|
3888
3785
|
this.insertLineBreakHandler = new InsertLineBreakHandler();
|
|
3889
3786
|
this.deleteContentHandler = new DeleteContentHandler();
|
|
3890
3787
|
this.insertPasteHandler = new InsertPasteHandler();
|
|
3891
|
-
this.observerOptions = {
|
|
3892
|
-
characterData: true,
|
|
3893
|
-
characterDataOldValue: true,
|
|
3894
|
-
subtree: true,
|
|
3895
|
-
childList: true,
|
|
3896
|
-
};
|
|
3897
3788
|
/**
|
|
3898
3789
|
* When a user performs an input action within the editable element, this function is triggered.
|
|
3899
3790
|
*
|
|
3900
3791
|
* @param {InputEvent} e the before input event object
|
|
3901
3792
|
*/
|
|
3902
3793
|
this.handleUserInputAction = (e) => {
|
|
3903
|
-
|
|
3794
|
+
const inputType = e.inputType;
|
|
3904
3795
|
e.preventDefault();
|
|
3905
3796
|
this.initValueIfEmpty();
|
|
3797
|
+
// The insertCompositionText type input event can not be prevented, so we process the current action by insertCompositionTextController.
|
|
3798
|
+
if (inputType === 'insertCompositionText') {
|
|
3799
|
+
return;
|
|
3800
|
+
}
|
|
3801
|
+
this.insertCompositionTextController.removeObserver();
|
|
3906
3802
|
let updateFlag = false;
|
|
3907
|
-
switch (
|
|
3803
|
+
switch (inputType) {
|
|
3908
3804
|
case 'insertParagraph':
|
|
3909
3805
|
updateFlag = true;
|
|
3910
|
-
this.insertParagraphHandler.execute(this.value, this.selectionController, e);
|
|
3806
|
+
this.insertParagraphHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3911
3807
|
break;
|
|
3912
3808
|
case 'insertText':
|
|
3913
3809
|
updateFlag = true;
|
|
3914
|
-
this.insertTextHandler.execute(this.value, this.selectionController, e);
|
|
3810
|
+
this.insertTextHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3915
3811
|
break;
|
|
3916
3812
|
case 'insertLineBreak':
|
|
3917
3813
|
updateFlag = true;
|
|
3918
|
-
this.insertLineBreakHandler.execute(this.value, this.selectionController, e);
|
|
3814
|
+
this.insertLineBreakHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3919
3815
|
break;
|
|
3920
3816
|
case 'deleteContentBackward':
|
|
3921
3817
|
updateFlag = true;
|
|
3922
|
-
this.deleteContentHandler.execute(this.value, this.selectionController, e);
|
|
3818
|
+
this.deleteContentHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3923
3819
|
break;
|
|
3924
3820
|
case 'insertFromPaste':
|
|
3925
3821
|
updateFlag = true;
|
|
3926
|
-
this.insertPasteHandler.execute(this.value, this.selectionController, e);
|
|
3822
|
+
this.insertPasteHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3927
3823
|
break;
|
|
3928
3824
|
}
|
|
3929
3825
|
if (updateFlag) {
|
|
3930
3826
|
this.notifyComponentFlushValue();
|
|
3931
3827
|
}
|
|
3932
3828
|
};
|
|
3933
|
-
/**
|
|
3934
|
-
* Processes mutation records related to character data and updates the text content of a rich text node accordingly.
|
|
3935
|
-
*
|
|
3936
|
-
* @param {MutationRecord[]} records - Each `MutationRecord` object represents a single mutation that occurred in the DOM.
|
|
3937
|
-
*/
|
|
3938
|
-
this.handleObserver = (records) => {
|
|
3939
|
-
let updateFlag = false;
|
|
3940
|
-
if (records.every((record) => record.type === 'characterData')) {
|
|
3941
|
-
records.forEach((record) => {
|
|
3942
|
-
const { target } = record;
|
|
3943
|
-
if (target.nodeType === Node.TEXT_NODE && target.parentElement) {
|
|
3944
|
-
const richTextNode = stateEntityRenderingRegistry.getEntityByDOM(target.parentElement);
|
|
3945
|
-
if (richTextNode && richTextNode['text'] !== target.textContent) {
|
|
3946
|
-
updateFlag = true;
|
|
3947
|
-
richTextNode['text'] = target.textContent;
|
|
3948
|
-
}
|
|
3949
|
-
}
|
|
3950
|
-
});
|
|
3951
|
-
if (updateFlag) {
|
|
3952
|
-
this.notifyComponentFlushValue();
|
|
3953
|
-
}
|
|
3954
|
-
}
|
|
3955
|
-
};
|
|
3956
|
-
}
|
|
3957
|
-
/**
|
|
3958
|
-
* The function `initMutationObserver` initializes a MutationObserver on an editable HTML element if it exists.
|
|
3959
|
-
*/
|
|
3960
|
-
initMutationObserver() {
|
|
3961
|
-
if (this.mutationObserver) {
|
|
3962
|
-
const editableElement = this.getEditableElementRef();
|
|
3963
|
-
if (editableElement) {
|
|
3964
|
-
this.mutationObserver.disconnect();
|
|
3965
|
-
this.mutationObserver.observe(editableElement, this.observerOptions);
|
|
3966
|
-
}
|
|
3967
|
-
}
|
|
3968
|
-
}
|
|
3969
|
-
/**
|
|
3970
|
-
* Disconnects the mutation observer if it exists.
|
|
3971
|
-
*/
|
|
3972
|
-
removeObserver() {
|
|
3973
|
-
if (this.mutationObserver) {
|
|
3974
|
-
this.mutationObserver.disconnect();
|
|
3975
|
-
}
|
|
3976
3829
|
}
|
|
3977
3830
|
/**
|
|
3978
3831
|
* Adds event listener to an editable HTML element to handle user input actions.
|
|
@@ -3983,8 +3836,6 @@ class UserInputController extends VegaSlimmer {
|
|
|
3983
3836
|
editableElement.addEventListener('beforeinput', this.handleUserInputAction);
|
|
3984
3837
|
editableElement.addEventListener('drop', this.preventDropEvent);
|
|
3985
3838
|
}
|
|
3986
|
-
this.mutationObserver = new MutationObserver(this.handleObserver);
|
|
3987
|
-
this.initMutationObserver();
|
|
3988
3839
|
}
|
|
3989
3840
|
/**
|
|
3990
3841
|
* Removes event listener for user input actions from an editable HTML div element.
|
|
@@ -3995,13 +3846,6 @@ class UserInputController extends VegaSlimmer {
|
|
|
3995
3846
|
editableElement.removeEventListener('beforeinput', this.handleUserInputAction);
|
|
3996
3847
|
editableElement.removeEventListener('drop', this.preventDropEvent);
|
|
3997
3848
|
}
|
|
3998
|
-
this.removeObserver();
|
|
3999
|
-
}
|
|
4000
|
-
/**
|
|
4001
|
-
* re-connect the observer after the props change and component did render
|
|
4002
|
-
*/
|
|
4003
|
-
reConnectObserver() {
|
|
4004
|
-
this.initMutationObserver();
|
|
4005
3849
|
}
|
|
4006
3850
|
/**
|
|
4007
3851
|
* The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
|
|
@@ -4041,30 +3885,30 @@ class UserInputController extends VegaSlimmer {
|
|
|
4041
3885
|
}
|
|
4042
3886
|
}
|
|
4043
3887
|
}
|
|
4044
|
-
__decorate$
|
|
3888
|
+
__decorate$c([
|
|
4045
3889
|
MapToComponentField()
|
|
4046
3890
|
], UserInputController.prototype, "host", void 0);
|
|
4047
|
-
__decorate$
|
|
3891
|
+
__decorate$c([
|
|
4048
3892
|
MapToComponentField()
|
|
4049
3893
|
], UserInputController.prototype, "value", void 0);
|
|
4050
|
-
__decorate$
|
|
3894
|
+
__decorate$c([
|
|
4051
3895
|
MapToComponentField()
|
|
4052
3896
|
], UserInputController.prototype, "valueController", void 0);
|
|
4053
|
-
__decorate$
|
|
3897
|
+
__decorate$c([
|
|
4054
3898
|
MapToComponentField()
|
|
4055
3899
|
], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4056
|
-
__decorate$
|
|
3900
|
+
__decorate$c([
|
|
4057
3901
|
MapToComponentField()
|
|
4058
3902
|
], UserInputController.prototype, "selectionController", void 0);
|
|
4059
|
-
__decorate$
|
|
3903
|
+
__decorate$c([
|
|
3904
|
+
MapToComponentField()
|
|
3905
|
+
], UserInputController.prototype, "insertCompositionTextController", void 0);
|
|
3906
|
+
__decorate$c([
|
|
4060
3907
|
MapToComponentMethod('componentDidLoad')
|
|
4061
3908
|
], UserInputController.prototype, "addActionListener", null);
|
|
4062
|
-
__decorate$
|
|
3909
|
+
__decorate$c([
|
|
4063
3910
|
MapToComponentMethod('disconnectedCallback')
|
|
4064
3911
|
], UserInputController.prototype, "removeActionListener", null);
|
|
4065
|
-
__decorate$a([
|
|
4066
|
-
MapToComponentMethod('componentDidRender')
|
|
4067
|
-
], UserInputController.prototype, "reConnectObserver", null);
|
|
4068
3912
|
|
|
4069
3913
|
/**
|
|
4070
3914
|
* A rule that checks if the input range is empty or not
|
|
@@ -4140,7 +3984,7 @@ class InsertImageToBlockAction extends ModifyContentAction {
|
|
|
4140
3984
|
}
|
|
4141
3985
|
}
|
|
4142
3986
|
|
|
4143
|
-
var __decorate$
|
|
3987
|
+
var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4144
3988
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4145
3989
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4146
3990
|
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;
|
|
@@ -4229,26 +4073,26 @@ class InsertImageController extends VegaSlimmer {
|
|
|
4229
4073
|
}
|
|
4230
4074
|
}
|
|
4231
4075
|
}
|
|
4232
|
-
__decorate$
|
|
4076
|
+
__decorate$b([
|
|
4233
4077
|
MapToComponentField()
|
|
4234
4078
|
], InsertImageController.prototype, "selectionController", void 0);
|
|
4235
|
-
__decorate$
|
|
4079
|
+
__decorate$b([
|
|
4236
4080
|
MapToComponentField()
|
|
4237
4081
|
], InsertImageController.prototype, "value", void 0);
|
|
4238
|
-
__decorate$
|
|
4082
|
+
__decorate$b([
|
|
4239
4083
|
MapToComponentField()
|
|
4240
4084
|
], InsertImageController.prototype, "valueController", void 0);
|
|
4241
|
-
__decorate$
|
|
4085
|
+
__decorate$b([
|
|
4242
4086
|
MapToComponentField()
|
|
4243
4087
|
], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4244
|
-
__decorate$
|
|
4088
|
+
__decorate$b([
|
|
4245
4089
|
MapToComponentMethod('componentDidLoad')
|
|
4246
4090
|
], InsertImageController.prototype, "registerObserver", null);
|
|
4247
|
-
__decorate$
|
|
4091
|
+
__decorate$b([
|
|
4248
4092
|
MapToComponentMethod('disconnectedCallback')
|
|
4249
4093
|
], InsertImageController.prototype, "unRegisterObserver", null);
|
|
4250
4094
|
|
|
4251
|
-
var __decorate$
|
|
4095
|
+
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4252
4096
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4253
4097
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4254
4098
|
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;
|
|
@@ -4304,20 +4148,20 @@ class FocusController extends VegaSlimmer {
|
|
|
4304
4148
|
this.selectionController.setSelectionRange(range);
|
|
4305
4149
|
}
|
|
4306
4150
|
}
|
|
4307
|
-
__decorate$
|
|
4151
|
+
__decorate$a([
|
|
4308
4152
|
MapToComponentField()
|
|
4309
4153
|
], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4310
|
-
__decorate$
|
|
4154
|
+
__decorate$a([
|
|
4311
4155
|
MapToComponentField()
|
|
4312
4156
|
], FocusController.prototype, "selectionController", void 0);
|
|
4313
|
-
__decorate$
|
|
4157
|
+
__decorate$a([
|
|
4314
4158
|
MapToComponentField()
|
|
4315
4159
|
], FocusController.prototype, "valueController", void 0);
|
|
4316
|
-
__decorate$
|
|
4160
|
+
__decorate$a([
|
|
4317
4161
|
MapToComponentField()
|
|
4318
4162
|
], FocusController.prototype, "value", void 0);
|
|
4319
4163
|
|
|
4320
|
-
var __decorate$
|
|
4164
|
+
var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4321
4165
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4322
4166
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4323
4167
|
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;
|
|
@@ -4357,46 +4201,461 @@ class TextNodeColorController extends VegaSlimmer {
|
|
|
4357
4201
|
return true;
|
|
4358
4202
|
}
|
|
4359
4203
|
}
|
|
4360
|
-
__decorate$
|
|
4204
|
+
__decorate$9([
|
|
4361
4205
|
MapToComponentMethod('connectedCallback')
|
|
4362
4206
|
], TextNodeColorController.prototype, "connectedCallback", null);
|
|
4363
|
-
__decorate$
|
|
4207
|
+
__decorate$9([
|
|
4364
4208
|
MapToComponentMethod('disconnectedCallback')
|
|
4365
4209
|
], TextNodeColorController.prototype, "disconnectResizeObserver", null);
|
|
4366
4210
|
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4211
|
+
var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4370
4212
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4371
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
4372
|
-
|
|
4373
|
-
else
|
|
4374
|
-
for (var i = decorators.length - 1; i >= 0; i--)
|
|
4375
|
-
if (d = decorators[i])
|
|
4376
|
-
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
4213
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4214
|
+
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;
|
|
4377
4215
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4378
4216
|
};
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
this.
|
|
4384
|
-
this.
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4217
|
+
/** Handles inserting composition text into a VegaRTEContent based on the current selection and input event. User input character will trigger this callback */
|
|
4218
|
+
class InsertCompositionTextController extends VegaSlimmer {
|
|
4219
|
+
constructor() {
|
|
4220
|
+
super(...arguments);
|
|
4221
|
+
this.insertCompositionTextEndFlag = true;
|
|
4222
|
+
this.observerOptions = {
|
|
4223
|
+
characterData: true,
|
|
4224
|
+
characterDataOldValue: true,
|
|
4225
|
+
subtree: true,
|
|
4226
|
+
childList: true,
|
|
4227
|
+
};
|
|
4228
|
+
/**
|
|
4229
|
+
* The current method is called when the insert text is update by the Pinyin input or the word correction plugin.
|
|
4230
|
+
*
|
|
4231
|
+
* @param {MutationRecord[]} records - The mutation record object array.
|
|
4232
|
+
*/
|
|
4233
|
+
this.updateTextFromDom = (records) => {
|
|
4234
|
+
let updateFlag = false;
|
|
4235
|
+
if (this.insertCompositionTextEndFlag !== false) {
|
|
4236
|
+
records.forEach((record) => {
|
|
4237
|
+
const { target, oldValue } = record;
|
|
4238
|
+
if (target.nodeType === Node.TEXT_NODE && target.parentElement) {
|
|
4239
|
+
const richTextNode = stateEntityRenderingRegistry.getEntityByDOM(target.parentElement);
|
|
4240
|
+
const newValue = target.textContent;
|
|
4241
|
+
if (richTextNode instanceof RTETextNode) {
|
|
4242
|
+
updateFlag = this.updateCurrentNodeText(richTextNode, newValue, oldValue);
|
|
4243
|
+
}
|
|
4244
|
+
else if (newValue) {
|
|
4245
|
+
// The text element should removed if insert text to the image block.
|
|
4246
|
+
target.parentElement.removeChild(target);
|
|
4247
|
+
updateFlag = true;
|
|
4248
|
+
}
|
|
4249
|
+
}
|
|
4250
|
+
});
|
|
4251
|
+
}
|
|
4252
|
+
if (updateFlag) {
|
|
4253
|
+
void this.valueController.flushChanges(this.value);
|
|
4254
|
+
}
|
|
4255
|
+
};
|
|
4256
|
+
/**
|
|
4257
|
+
* Processes mutation records related to character data and updates the text content of a rich text node accordingly.
|
|
4258
|
+
*
|
|
4259
|
+
* @param {MutationRecord[]} records - Each `MutationRecord` object represents a single mutation that occurred in the DOM.
|
|
4260
|
+
*/
|
|
4261
|
+
this.handleObserver = (records) => {
|
|
4262
|
+
if (records.every((record) => record.type === 'characterData')) {
|
|
4263
|
+
this.updateTextFromDom(records);
|
|
4264
|
+
}
|
|
4265
|
+
};
|
|
4266
|
+
/**
|
|
4267
|
+
* An event handler function that is triggered when the composition of text input starts. In this case,
|
|
4268
|
+
* it sets the `insertCompositionTextEndFlag` property of the `UserInputController` class to `false`.
|
|
4269
|
+
*/
|
|
4270
|
+
this.handleCompositionStart = () => {
|
|
4271
|
+
this.insertCompositionTextEndFlag = false;
|
|
4272
|
+
ChangeManager.notify(domNodeSubjectFactory.getSubject(this.host, VegaInternalRichTextEditDeleteSelectedNodes), { host: this.host, detail: true });
|
|
4273
|
+
};
|
|
4274
|
+
/**
|
|
4275
|
+
* An event handler function that is triggered when the composition of text input ends. In this case,
|
|
4276
|
+
* it sets the `insertCompositionTextEndFlag` property of the `UserInputController` class to `true`.
|
|
4277
|
+
*
|
|
4278
|
+
* @param {CompositionEvent} event The composition event instance
|
|
4279
|
+
*/
|
|
4280
|
+
this.handleCompositionEnd = (event) => {
|
|
4281
|
+
this.insertCompositionTextEndFlag = true;
|
|
4282
|
+
const insertData = event.data;
|
|
4283
|
+
if (insertData) {
|
|
4284
|
+
this.dispatchInsertTextEvent(insertData);
|
|
4285
|
+
}
|
|
4286
|
+
};
|
|
4287
|
+
}
|
|
4288
|
+
/**
|
|
4289
|
+
* The function `initMutationObserver` initializes a MutationObserver on an editable HTML element if it exists.
|
|
4290
|
+
*/
|
|
4291
|
+
initMutationObserver() {
|
|
4292
|
+
if (this.mutationObserver) {
|
|
4293
|
+
const editableElement = this.getEditableElementRef();
|
|
4294
|
+
if (editableElement) {
|
|
4295
|
+
this.mutationObserver.disconnect();
|
|
4296
|
+
this.mutationObserver.observe(editableElement, this.observerOptions);
|
|
4297
|
+
}
|
|
4298
|
+
}
|
|
4299
|
+
}
|
|
4300
|
+
/**
|
|
4301
|
+
* Disconnects the mutation observer if it exists.
|
|
4302
|
+
*/
|
|
4303
|
+
removeObserver() {
|
|
4304
|
+
if (this.mutationObserver) {
|
|
4305
|
+
this.mutationObserver.disconnect();
|
|
4306
|
+
}
|
|
4307
|
+
}
|
|
4308
|
+
/**
|
|
4309
|
+
* The method is to get the composition text insert end or not.
|
|
4310
|
+
*
|
|
4311
|
+
* @returns {boolean} The false is main that insert composition text process is end.
|
|
4312
|
+
*/
|
|
4313
|
+
isComposing() {
|
|
4314
|
+
return !this.insertCompositionTextEndFlag;
|
|
4315
|
+
}
|
|
4316
|
+
/**
|
|
4317
|
+
* Adds event listener to an editable HTML element to handle composition text insert actions.
|
|
4318
|
+
*/
|
|
4319
|
+
addCompositionTextEventListener() {
|
|
4320
|
+
const editableElement = this.getEditableElementRef();
|
|
4321
|
+
if (editableElement) {
|
|
4322
|
+
editableElement.addEventListener('compositionstart', this.handleCompositionStart);
|
|
4323
|
+
editableElement.addEventListener('compositionend', this.handleCompositionEnd);
|
|
4324
|
+
}
|
|
4325
|
+
this.mutationObserver = new MutationObserver(this.handleObserver);
|
|
4326
|
+
this.initMutationObserver();
|
|
4327
|
+
}
|
|
4328
|
+
/**
|
|
4329
|
+
* Removes event listener to an editable HTML element to handle composition text insert actions.
|
|
4330
|
+
*/
|
|
4331
|
+
removeCompositionTextEventListener() {
|
|
4332
|
+
const editableElement = this.getEditableElementRef();
|
|
4333
|
+
if (editableElement) {
|
|
4334
|
+
editableElement.removeEventListener('compositionstart', this.handleCompositionStart);
|
|
4335
|
+
editableElement.removeEventListener('compositionend', this.handleCompositionEnd);
|
|
4336
|
+
}
|
|
4337
|
+
this.removeObserver();
|
|
4338
|
+
}
|
|
4339
|
+
/**
|
|
4340
|
+
* re-connect the observer after the props change and component did render
|
|
4341
|
+
*/
|
|
4342
|
+
reConnectObserver() {
|
|
4343
|
+
this.initMutationObserver();
|
|
4344
|
+
}
|
|
4345
|
+
/**
|
|
4346
|
+
* Insert text to a line break node need a special logic if the line break has a next text node.
|
|
4347
|
+
*
|
|
4348
|
+
* @param {RTETextNode} currentNode The current line break node, the text value is \n
|
|
4349
|
+
*/
|
|
4350
|
+
appendLineBreakNode(currentNode) {
|
|
4351
|
+
const textBlock = currentNode.parentBlock;
|
|
4352
|
+
const index = textBlock.nodes.indexOf(currentNode);
|
|
4353
|
+
if (textBlock.nodes[index + 1]) {
|
|
4354
|
+
const newTextNode = currentNode.cloneWithText('\n');
|
|
4355
|
+
textBlock.apply(new InsertNodesBeforeAction(textBlock.nodes[index + 1], newTextNode));
|
|
4356
|
+
}
|
|
4357
|
+
}
|
|
4358
|
+
/**
|
|
4359
|
+
* Updates the text content of a rich text node and handles line breaks.
|
|
4360
|
+
*
|
|
4361
|
+
* @param {RTETextNode} richTextNode - The current rich text node.
|
|
4362
|
+
* @param {string} newValue - The target element textContent
|
|
4363
|
+
* @param {Nullable<string>} oldValue - The target element old textContent
|
|
4364
|
+
* @returns {Nullable<boolean>} The node text is updated or not
|
|
4365
|
+
*/
|
|
4366
|
+
updateCurrentNodeText(richTextNode, newValue, oldValue) {
|
|
4367
|
+
const insertText = this.removeZeroWidthSpace(newValue.replace(/(\n)$/, ''));
|
|
4368
|
+
if (richTextNode.text !== insertText) {
|
|
4369
|
+
const { startOffset } = this.selectionController.getCurrentRange();
|
|
4370
|
+
const currentIsLineBreakNode = richTextNode.text === '\n';
|
|
4371
|
+
richTextNode.apply(new UpdateTextAction(insertText));
|
|
4372
|
+
if (currentIsLineBreakNode) {
|
|
4373
|
+
this.appendLineBreakNode(richTextNode);
|
|
4374
|
+
}
|
|
4375
|
+
const lengthGap = oldValue ? oldValue.length - newValue.length : 0;
|
|
4376
|
+
const newOffset = Math.min(insertText.length, startOffset - lengthGap);
|
|
4377
|
+
this.selectionController.enqueueSelectionRangeFutureState(richTextNode, Math.max(0, newOffset));
|
|
4378
|
+
return true;
|
|
4379
|
+
}
|
|
4380
|
+
}
|
|
4381
|
+
/**
|
|
4382
|
+
* The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
|
|
4383
|
+
*
|
|
4384
|
+
* @returns {HTMLDivElement|null} A reference to an HTMLDivElement element that is editable.
|
|
4385
|
+
*/
|
|
4386
|
+
getEditableElementRef() {
|
|
4387
|
+
if (!this.editableElementRef) {
|
|
4388
|
+
this.editableElementRef = this.vegaRichTextEditorRenderer.getRTEEditableElementRef();
|
|
4389
|
+
}
|
|
4390
|
+
return this.editableElementRef;
|
|
4391
|
+
}
|
|
4392
|
+
/**
|
|
4393
|
+
* Remove the ZERO_WIDTH_SPACE from the text.
|
|
4394
|
+
*
|
|
4395
|
+
* @param {string} text The input text that could include ZERO_WIDTH_SPACE.
|
|
4396
|
+
* @returns {string} The result text.
|
|
4397
|
+
*/
|
|
4398
|
+
removeZeroWidthSpace(text) {
|
|
4399
|
+
if (text.startsWith(ZERO_WIDTH_SPACE)) {
|
|
4400
|
+
return text.slice(ZERO_WIDTH_SPACE.length);
|
|
4401
|
+
}
|
|
4402
|
+
else if (text.endsWith(ZERO_WIDTH_SPACE)) {
|
|
4403
|
+
return text.slice(0, text.length - ZERO_WIDTH_SPACE.length);
|
|
4404
|
+
}
|
|
4405
|
+
return text;
|
|
4406
|
+
}
|
|
4407
|
+
/**
|
|
4408
|
+
* Dispatch a insert text event to handle the composition text insert logic.
|
|
4409
|
+
*
|
|
4410
|
+
* @param {string} text - The text need to insert.
|
|
4411
|
+
*/
|
|
4412
|
+
dispatchInsertTextEvent(text) {
|
|
4413
|
+
const inputEvent = new CustomEvent('beforeinput');
|
|
4414
|
+
inputEvent['data'] = text;
|
|
4415
|
+
inputEvent['inputType'] = 'insertText';
|
|
4416
|
+
this.editableElementRef.dispatchEvent(inputEvent);
|
|
4417
|
+
}
|
|
4418
|
+
}
|
|
4419
|
+
__decorate$8([
|
|
4420
|
+
MapToComponentField()
|
|
4421
|
+
], InsertCompositionTextController.prototype, "selectionController", void 0);
|
|
4422
|
+
__decorate$8([
|
|
4423
|
+
MapToComponentField()
|
|
4424
|
+
], InsertCompositionTextController.prototype, "host", void 0);
|
|
4425
|
+
__decorate$8([
|
|
4426
|
+
MapToComponentField()
|
|
4427
|
+
], InsertCompositionTextController.prototype, "value", void 0);
|
|
4428
|
+
__decorate$8([
|
|
4429
|
+
MapToComponentField()
|
|
4430
|
+
], InsertCompositionTextController.prototype, "valueController", void 0);
|
|
4431
|
+
__decorate$8([
|
|
4432
|
+
MapToComponentField()
|
|
4433
|
+
], InsertCompositionTextController.prototype, "userInputController", void 0);
|
|
4434
|
+
__decorate$8([
|
|
4435
|
+
MapToComponentField()
|
|
4436
|
+
], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4437
|
+
__decorate$8([
|
|
4438
|
+
MapToComponentMethod('componentDidLoad')
|
|
4439
|
+
], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
|
|
4440
|
+
__decorate$8([
|
|
4441
|
+
MapToComponentMethod('disconnectedCallback')
|
|
4442
|
+
], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
|
|
4443
|
+
__decorate$8([
|
|
4444
|
+
MapToComponentMethod('componentDidRender')
|
|
4445
|
+
], InsertCompositionTextController.prototype, "reConnectObserver", null);
|
|
4446
|
+
|
|
4447
|
+
var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4448
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4449
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4450
|
+
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;
|
|
4451
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4452
|
+
};
|
|
4453
|
+
/**
|
|
4454
|
+
* The `DeleteSelectedNodesController` class provides methods to delete selected nodes.
|
|
4455
|
+
*/
|
|
4456
|
+
class DeleteSelectedNodesController extends VegaSlimmer {
|
|
4457
|
+
constructor() {
|
|
4458
|
+
super(...arguments);
|
|
4459
|
+
/**
|
|
4460
|
+
* Deletes the selected nodes.
|
|
4461
|
+
*
|
|
4462
|
+
* @param {NotifyObserverPayload<boolean>} payload The notify payload
|
|
4463
|
+
* @param {boolean} payload.detail The delete process need merge start node and end node or not, default value is true.
|
|
4464
|
+
*/
|
|
4465
|
+
this.deleteActionProcess = (payload) => {
|
|
4466
|
+
const range = this.selectionController.getCurrentRange();
|
|
4467
|
+
const { startContainer, endContainer, startOffset, endOffset } = range;
|
|
4468
|
+
if (startContainer !== endContainer || startOffset !== endOffset) {
|
|
4469
|
+
const cursorNode = this.removeSelectionRange();
|
|
4470
|
+
const mergeStartAndEndFlag = payload && payload.detail ? payload.detail : false;
|
|
4471
|
+
if (mergeStartAndEndFlag) {
|
|
4472
|
+
this.mergeRangeStartAndEnd(startContainer, endContainer);
|
|
4473
|
+
}
|
|
4474
|
+
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, range.startOffset);
|
|
4475
|
+
}
|
|
4476
|
+
};
|
|
4477
|
+
}
|
|
4478
|
+
/**
|
|
4479
|
+
* Adds the observer to the host element.
|
|
4480
|
+
*/
|
|
4481
|
+
addDeleteObserver() {
|
|
4482
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(this.host, VegaInternalRichTextEditDeleteSelectedNodes, this.deleteActionProcess);
|
|
4483
|
+
}
|
|
4484
|
+
/**
|
|
4485
|
+
* Removes the observer from the host element.
|
|
4486
|
+
*/
|
|
4487
|
+
removeDeleteObserver() {
|
|
4488
|
+
DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(this.host, VegaInternalRichTextEditDeleteSelectedNodes);
|
|
4489
|
+
}
|
|
4490
|
+
/**
|
|
4491
|
+
* Removes selected nodes within a range in a rich text editor content.
|
|
4492
|
+
* The method is only used for different nodes are selected
|
|
4493
|
+
*
|
|
4494
|
+
* @returns {RTENode} The range start node, usually the start node is the first item of selectedNodes, if the selectedNodes is all removed, the start node will be a new text node.
|
|
4495
|
+
*/
|
|
4496
|
+
removeSelectionRange() {
|
|
4497
|
+
const range = this.selectionController.getCurrentRange();
|
|
4498
|
+
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
4499
|
+
const { endOffset, startOffset } = range;
|
|
4500
|
+
const startNode = selectedNodes[0];
|
|
4501
|
+
const endNode = selectedNodes[selectedNodes.length - 1];
|
|
4502
|
+
if (selectedNodes.length > 1) {
|
|
4503
|
+
// Remove all selected nodes except start node and end node(the end image node will be removed), the start node need to get the index of the block
|
|
4504
|
+
const shouldRemovedItems = selectedNodes.filter((item) => {
|
|
4505
|
+
if (item.type !== 'IMAGE') {
|
|
4506
|
+
return item !== startNode && item !== endNode;
|
|
4507
|
+
}
|
|
4508
|
+
else {
|
|
4509
|
+
return item !== startNode && (item !== endNode || (item === endNode && endOffset !== 0));
|
|
4510
|
+
}
|
|
4511
|
+
});
|
|
4512
|
+
shouldRemovedItems.forEach((item) => {
|
|
4513
|
+
item.parentBlock.apply(new RemoveChildAction(item));
|
|
4514
|
+
});
|
|
4515
|
+
}
|
|
4516
|
+
this.removeRangeStartAndEndSelectedText();
|
|
4517
|
+
/**
|
|
4518
|
+
* 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.
|
|
4519
|
+
* 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
|
|
4520
|
+
*/
|
|
4521
|
+
if (startNode instanceof RTEImageNode &&
|
|
4522
|
+
startOffset !== 1 &&
|
|
4523
|
+
(endNode !== startNode || endOffset !== 0)) {
|
|
4524
|
+
// the image block will be deleted when the image is the only item
|
|
4525
|
+
if (startNode.parentBlock.nodes.length === 1) {
|
|
4526
|
+
const paragraph = this.createEmptyParagraph();
|
|
4527
|
+
startNode.parentBlock.parent.apply(new InsertBlocksBeforeAction(startNode.parentBlock, paragraph));
|
|
4528
|
+
startNode.parentBlock.apply(new RemoveChildAction(startNode));
|
|
4529
|
+
return paragraph.nodes[0];
|
|
4530
|
+
}
|
|
4531
|
+
else if (startNode === startNode.parentBlock.nodes[0]) {
|
|
4532
|
+
// the start node should be the next image item if the image is first item
|
|
4533
|
+
startNode.parentBlock.apply(new RemoveChildAction(startNode));
|
|
4534
|
+
return startNode.parentBlock.nodes[0];
|
|
4535
|
+
}
|
|
4536
|
+
}
|
|
4537
|
+
return startNode;
|
|
4538
|
+
}
|
|
4539
|
+
/**
|
|
4540
|
+
* Removes the selected text at the start and end of a range in a Rich Text Editor.
|
|
4541
|
+
*/
|
|
4542
|
+
removeRangeStartAndEndSelectedText() {
|
|
4543
|
+
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
4544
|
+
const currentRange = this.selectionController.getCurrentRange();
|
|
4545
|
+
if (selectedNodes[0] instanceof RTETextNode) {
|
|
4546
|
+
selectedNodes[0].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
4547
|
+
}
|
|
4548
|
+
if (selectedNodes.length > 1 && selectedNodes[selectedNodes.length - 1] instanceof RTETextNode) {
|
|
4549
|
+
selectedNodes[selectedNodes.length - 1].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
4550
|
+
}
|
|
4551
|
+
}
|
|
4552
|
+
/**
|
|
4553
|
+
* Creates a new paragraph with an empty text node and returns it.
|
|
4554
|
+
*
|
|
4555
|
+
* @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
|
|
4556
|
+
*/
|
|
4557
|
+
createEmptyParagraph() {
|
|
4558
|
+
const paragraph = new RTETextBlock(generateUUID(), 'paragraph');
|
|
4559
|
+
const textNode = new RTETextNode(`${paragraph.id}1`, '', paragraph);
|
|
4560
|
+
paragraph.apply(new AppendChildNodesAction([textNode]));
|
|
4561
|
+
return paragraph;
|
|
4562
|
+
}
|
|
4563
|
+
/**
|
|
4564
|
+
* Merges text nodes in a rich text editor.
|
|
4565
|
+
*
|
|
4566
|
+
* @param {Node} startContainer - Start text node element
|
|
4567
|
+
* @param {Node} endContainer - End text node element
|
|
4568
|
+
*/
|
|
4569
|
+
mergeRangeStartAndEnd(startContainer, endContainer) {
|
|
4570
|
+
if (startContainer !== endContainer) {
|
|
4571
|
+
if (startContainer.nodeType === Node.TEXT_NODE && endContainer.nodeType === Node.TEXT_NODE) {
|
|
4572
|
+
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
4573
|
+
const startRTENode = selectedNodes[0];
|
|
4574
|
+
const endRTENode = selectedNodes[selectedNodes.length - 1];
|
|
4575
|
+
if (startRTENode && startRTENode.parentBlock && endRTENode && endRTENode.parentBlock) {
|
|
4576
|
+
const endBlock = endRTENode.parentBlock;
|
|
4577
|
+
if (this.shouldMergeTextNode(startRTENode, endRTENode)) {
|
|
4578
|
+
startRTENode.apply(new UpdateTextAction(startRTENode.text + endRTENode.text));
|
|
4579
|
+
if (startRTENode.parentBlock === endRTENode.parentBlock) {
|
|
4580
|
+
startRTENode.parentBlock.apply(new RemoveChildAction(endRTENode));
|
|
4581
|
+
}
|
|
4582
|
+
else {
|
|
4583
|
+
endRTENode.parentBlock.apply(new RemoveChildAction(endRTENode.parentBlock.nodes[0]));
|
|
4584
|
+
}
|
|
4585
|
+
}
|
|
4586
|
+
if (startRTENode.parentBlock !== endRTENode.parentBlock) {
|
|
4587
|
+
startRTENode.parentBlock.apply(new AppendChildNodesAction(endBlock.nodes));
|
|
4588
|
+
endBlock.nodes = [];
|
|
4589
|
+
}
|
|
4590
|
+
if (endBlock.nodes.length < 1) {
|
|
4591
|
+
endBlock.parent.apply(new RemoveChildAction(endBlock));
|
|
4592
|
+
}
|
|
4593
|
+
}
|
|
4594
|
+
}
|
|
4595
|
+
}
|
|
4596
|
+
}
|
|
4597
|
+
/**
|
|
4598
|
+
* Compares the annotations of two RTETextNodes to determine if they can be merged.
|
|
4599
|
+
*
|
|
4600
|
+
* @param {RTETextNode} nodeA - node A
|
|
4601
|
+
* @param {RTETextNode} nodeB - node B
|
|
4602
|
+
* @returns {boolean} true or false
|
|
4603
|
+
*/
|
|
4604
|
+
shouldMergeTextNode(nodeA, nodeB) {
|
|
4605
|
+
const { annotations: annotationsA } = nodeA.toJSON();
|
|
4606
|
+
const { annotations: annotationsB } = nodeB.toJSON();
|
|
4607
|
+
return JSON.stringify(annotationsA) === JSON.stringify(annotationsB);
|
|
4608
|
+
}
|
|
4609
|
+
}
|
|
4610
|
+
__decorate$7([
|
|
4611
|
+
MapToComponentField()
|
|
4612
|
+
], DeleteSelectedNodesController.prototype, "host", void 0);
|
|
4613
|
+
__decorate$7([
|
|
4614
|
+
MapToComponentField()
|
|
4615
|
+
], DeleteSelectedNodesController.prototype, "selectionController", void 0);
|
|
4616
|
+
__decorate$7([
|
|
4617
|
+
MapToComponentField()
|
|
4618
|
+
], DeleteSelectedNodesController.prototype, "value", void 0);
|
|
4619
|
+
__decorate$7([
|
|
4620
|
+
MapToComponentMethod('connectedCallback')
|
|
4621
|
+
], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
|
|
4622
|
+
__decorate$7([
|
|
4623
|
+
MapToComponentMethod('disconnectedCallback')
|
|
4624
|
+
], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
|
|
4625
|
+
|
|
4626
|
+
const vegaRichTextEditorCss = ":host{display:block}:host vega-field-label{margin-bottom:8px}:host vega-text{margin-bottom:16px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host vega-text{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .rich-text-editor-container{display:flex;box-sizing:content-box;position:relative;box-sizing:content-box;background-color:rgba(var(--v-bg-primary, 252, 252, 252, 1));border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));border-radius:8px;font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px;color:rgba(var(--v-text-primary, 32, 54, 69, 1));margin-top:12px;overflow:auto;resize:vertical;padding-top:12px;padding-right:16px;padding-bottom:32px;padding-left:16px}@media screen and (min-width: 768px) and (max-width: 1023px){:host .rich-text-editor-container{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .rich-text-editor-container{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .rich-text-editor-container{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}:host .rich-text-editor-container:hover{border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1))}:host .rich-text-editor-container:focus-within{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:2px;border:1px solid rgba(var(--v-border-color-input-field-focus, 19, 98, 226, 1))}:host .rich-text-editor-container.disabled{background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1));border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1))}:host .rich-text-editor-container.disabled:hover,:host .rich-text-editor-container.disabled:focus-within{border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1))}:host .rich-text-editor-container.disabled:focus-within{outline:none}:host .rich-text-editor-container.error{border:1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1))}:host .rich-text-editor-container.error:hover{border:1px solid rgba(var(--v-border-input-field-danger-hover, 255, 87, 114, 1))}:host .rich-text-editor-container.error:focus-within{outline:2px solid rgba(var(--v-border-color-danger, 230, 50, 87, 1));outline-offset:2px;border:1px solid rgba(var(--v-border-color-input-field-danger-focus, 233, 71, 104, 1))}:host .rich-text-editor-container .text-editor-counter{position:absolute;bottom:8px;right:8px;display:flex;padding-left:4px;padding-right:4px;padding-top:2px;padding-bottom:2px;border-radius:4px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-inverted-primary, 252, 252, 252, 1));background-color:rgba(var(--v-bg-textarea-count, 4, 4, 28, 0.6))}@media screen and (min-width: 768px) and (max-width: 1023px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .rich-text-editor-container .text-editor-counter{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .rich-text-editor-container .text-editor-counter.counter-exceed-max-length{background-color:rgba(var(--v-bg-textarea-counter-exceed-max-length, 214, 46, 81))}.toolbar-btn-group{display:flex;justify-content:center;align-items:center}.toolbar-btn-group>*:not(:first-child):not(:last-child) ::part(rich-text-editor-toolbar-button){border-radius:0px}.toolbar-btn-group>*:first-child:not(:last-child) ::part(rich-text-editor-toolbar-button){border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0px;border-bottom-right-radius:0px}.toolbar-btn-group>*:last-child:not(:first-child) ::part(rich-text-editor-toolbar-button){border-top-left-radius:0px;border-bottom-left-radius:0px;border-top-right-radius:4px;border-bottom-right-radius:4px}.toolbar-btn-group>*:not(:first-child) ::part(rich-text-editor-toolbar-button){margin-left:-1px}.toolbar-btn-group .toolbar-btn-color-preview-box{display:flex;border:1px solid rgba(var(--v-border-chip, 205, 209, 211, 1));box-sizing:border-box;border-radius:4px;width:16px;height:16px;cursor:pointer;justify-content:center;align-items:center;margin-left:6px}.toolbar-btn-group .toolbar-btn-link-wrapper{position:relative}.toolbar-btn-group .toolbar-btn-link-wrapper vega-rich-text-link-editor{position:absolute;bottom:0;left:0;right:0}.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-error, 189, 41, 71, 1));display:block;margin-top:12px}@media screen and (min-width: 768px) and (max-width: 1023px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){.vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}.vega-hidden{display:none}";
|
|
4627
|
+
|
|
4628
|
+
var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4629
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4630
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
4631
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
4632
|
+
else
|
|
4633
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
4634
|
+
if (d = decorators[i])
|
|
4635
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
4636
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4637
|
+
};
|
|
4638
|
+
const VegaRichTextEditor = class {
|
|
4639
|
+
constructor(hostRef) {
|
|
4640
|
+
registerInstance(this, hostRef);
|
|
4641
|
+
this.vegaChange = createEvent(this, "vegaChange", 7);
|
|
4642
|
+
this.change = createEvent(this, "change", 7);
|
|
4643
|
+
this.vegaImageInserted = createEvent(this, "vegaImageInserted", 7);
|
|
4644
|
+
this.imageInserted = createEvent(this, "imageInserted", 7);
|
|
4645
|
+
this.globalSlimmers = {};
|
|
4646
|
+
this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4647
|
+
this.formFieldController = new FormFieldControllerSlimmer({
|
|
4648
|
+
propertyRules: [
|
|
4649
|
+
{
|
|
4650
|
+
propertyName: 'required',
|
|
4651
|
+
ruleFactory: (isRequired) => isRequired ? new RichTextEditorRequiredRule() : null,
|
|
4652
|
+
},
|
|
4653
|
+
],
|
|
4654
|
+
validationRulesName: 'validationRules',
|
|
4655
|
+
defaultValue: null,
|
|
4656
|
+
attributeGetter: (propertyName) => this[propertyName],
|
|
4657
|
+
inputContainerGetter: () => this.vegaRichTextEditorRenderer.getRichTextContainerRef(),
|
|
4658
|
+
touchableAreaGetter: () => [this.vegaRichTextEditorRenderer.getRichTextContentRef()],
|
|
4400
4659
|
});
|
|
4401
4660
|
this.changeEventEmitter = createEventEmitSlimmer(VegaRichTextEditor, VegaChange);
|
|
4402
4661
|
this.vegaRichTextEditorRenderer = new VegaRichTextEditorRenderer();
|
|
@@ -4424,9 +4683,11 @@ const VegaRichTextEditor = class {
|
|
|
4424
4683
|
this.richTextContentController = new RichTextContentController(this);
|
|
4425
4684
|
this.userInputController = new UserInputController();
|
|
4426
4685
|
this.insertImageController = new InsertImageController();
|
|
4686
|
+
this.insertCompositionTextController = new InsertCompositionTextController();
|
|
4427
4687
|
this.imageInsertedEventEmitter = createEventEmitSlimmer(VegaRichTextEditor, VegaImageInserted);
|
|
4428
4688
|
this.changeEventPreventSlimmer = new ChildNodesEventPreventSlimmer([VegaChange], () => this.vegaRichTextEditorRenderer.getRichTextWrapperRef());
|
|
4429
4689
|
this.textNodeColorController = new TextNodeColorController();
|
|
4690
|
+
this.deleteSelectedNodesController = new DeleteSelectedNodesController();
|
|
4430
4691
|
this.richTextContentEditable = true;
|
|
4431
4692
|
this.selectionMap = new Map();
|
|
4432
4693
|
this.isInDarkMode = VegaThemeManager.isDarkMode();
|
|
@@ -4480,6 +4741,7 @@ const VegaRichTextEditor = class {
|
|
|
4480
4741
|
* Only in exceptional cases should the original data in the VegaRTEContentBlock type be used.
|
|
4481
4742
|
*
|
|
4482
4743
|
* @vegaVersion 2.34.0
|
|
4744
|
+
* @defaultValue [{id:'UUID', type:'paragraph', nodes:[{id: 'UUID',type: 'text',text:''}]}]
|
|
4483
4745
|
*/
|
|
4484
4746
|
// eslint-disable-next-line @stencil/strict-mutable
|
|
4485
4747
|
this.value = VegaRTEContent.createEmptyContent();
|
|
@@ -4632,6 +4894,9 @@ __decorate$6([
|
|
|
4632
4894
|
__decorate$6([
|
|
4633
4895
|
InjectVegaSlimmer()
|
|
4634
4896
|
], VegaRichTextEditor.prototype, "insertImageController", void 0);
|
|
4897
|
+
__decorate$6([
|
|
4898
|
+
InjectVegaSlimmer()
|
|
4899
|
+
], VegaRichTextEditor.prototype, "insertCompositionTextController", void 0);
|
|
4635
4900
|
__decorate$6([
|
|
4636
4901
|
InjectVegaSlimmer()
|
|
4637
4902
|
], VegaRichTextEditor.prototype, "imageInsertedEventEmitter", void 0);
|
|
@@ -4641,6 +4906,9 @@ __decorate$6([
|
|
|
4641
4906
|
__decorate$6([
|
|
4642
4907
|
InjectVegaSlimmer()
|
|
4643
4908
|
], VegaRichTextEditor.prototype, "textNodeColorController", void 0);
|
|
4909
|
+
__decorate$6([
|
|
4910
|
+
InjectVegaSlimmer()
|
|
4911
|
+
], VegaRichTextEditor.prototype, "deleteSelectedNodesController", void 0);
|
|
4644
4912
|
VegaRichTextEditor.style = vegaRichTextEditorCss;
|
|
4645
4913
|
|
|
4646
4914
|
var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|