@globalpayments/vega 2.37.0 → 2.37.1
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-e10d1859.js} +3 -3
- 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 +4 -4
- package/dist/cjs/loader.cjs.js +5 -5
- 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-072b75a0.js} +2 -2
- 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 +5 -5
- 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 +5 -5
- 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-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 +680 -412
- 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-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 +5 -5
- 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-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/esm/{app-globals-6912a75d.js → app-globals-c1f2bea9.js} +3 -3
- 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 +4 -4
- package/dist/esm/loader.js +5 -5
- 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-930f1125.js} +2 -2
- 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 +5 -5
- 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 +5 -5
- 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-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 +680 -412
- 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-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 +5 -5
- 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-image-uploader/vega-image-uploader.d.ts +1 -0
- 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-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/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-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-5f82eb88.js → p-6100e1aa.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-00f4cf6a.entry.js → p-7baa4fae.entry.js} +1 -1
- package/dist/vega/p-7edcb8d0.entry.js +1 -0
- package/dist/vega/{p-34caa637.entry.js → p-84a7c18a.entry.js} +1 -1
- 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-95e50f3a.entry.js → p-9eb90ee8.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-c2ded423.js → p-b2d47bdd.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-da66dad5.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-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/vega/p-497db801.entry.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
|
@@ -9,17 +9,17 @@ const component = require('./component-73a88c4e.js');
|
|
|
9
9
|
const accessibility = require('./accessibility-bfa227f6.js');
|
|
10
10
|
const changeManager = require('./change-manager-a297e4d2.js');
|
|
11
11
|
const domNodeSubjectFactory = require('./dom-node-subject-factory-ce1777a9.js');
|
|
12
|
-
const vegaInternalEventId = require('./vega-internal-event-id-
|
|
13
|
-
const imageAnnotationAction = require('./image-annotation-action-
|
|
12
|
+
const vegaInternalEventId = require('./vega-internal-event-id-bda63e14.js');
|
|
13
|
+
const imageAnnotationAction = require('./image-annotation-action-7d82f7e1.js');
|
|
14
14
|
const internalIconManager = require('./internal-icon-manager-5ccb9443.js');
|
|
15
|
-
const contentState = require('./content-state-
|
|
16
|
-
const nodeAnnotation_abstract = require('./node-annotation.abstract-
|
|
15
|
+
const contentState = require('./content-state-f97d3278.js');
|
|
16
|
+
const nodeAnnotation_abstract = require('./node-annotation.abstract-4f6df9cf.js');
|
|
17
17
|
const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-80b3ac6c.js');
|
|
18
18
|
const createPublicApiRuntimeMetricsSlimmer = require('./create-public-api-runtime-metrics-slimmer-54c3f73b.js');
|
|
19
|
-
const index$1 = require('./index-
|
|
20
|
-
const formFieldControllerSlimmer = require('./form-field-controller-slimmer-
|
|
19
|
+
const index$1 = require('./index-0546e2ea.js');
|
|
20
|
+
const formFieldControllerSlimmer = require('./form-field-controller-slimmer-48c0ad0b.js');
|
|
21
21
|
const eventEmitSlimmer = require('./event-emit-slimmer-208a19e4.js');
|
|
22
|
-
const subStateNotifySlimmer = require('./sub-state-notify-slimmer-
|
|
22
|
+
const subStateNotifySlimmer = require('./sub-state-notify-slimmer-b1f1e61a.js');
|
|
23
23
|
const timer = require('./timer-5f33058b.js');
|
|
24
24
|
const synchronizeTaskQueue = require('./synchronize-task-queue-1ee80e94.js');
|
|
25
25
|
const observer = require('./observer-f49483e8.js');
|
|
@@ -53,7 +53,7 @@ require('./internal-vega-event-manager-981dfd1c.js');
|
|
|
53
53
|
require('./internal-vega-z-index-manager-f03ddb37.js');
|
|
54
54
|
require('./index-8b247c17.js');
|
|
55
55
|
|
|
56
|
-
var __decorate$
|
|
56
|
+
var __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
57
57
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
58
58
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
59
59
|
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;
|
|
@@ -143,38 +143,38 @@ class VegaRichTextEditorRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
143
143
|
return (this.label && (index.h("vega-field-label", { onClick: this.richTextContentFocus, isFieldRequired: this.required, disabled: this.disabled, label: this.label })));
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
|
-
__decorate$
|
|
146
|
+
__decorate$A([
|
|
147
147
|
globalSlimmerRegistry.MapToComponentField()
|
|
148
148
|
], VegaRichTextEditorRenderer.prototype, "host", void 0);
|
|
149
|
-
__decorate$
|
|
149
|
+
__decorate$A([
|
|
150
150
|
globalSlimmerRegistry.MapToComponentField()
|
|
151
151
|
], VegaRichTextEditorRenderer.prototype, "toolbarRenderer", void 0);
|
|
152
|
-
__decorate$
|
|
152
|
+
__decorate$A([
|
|
153
153
|
globalSlimmerRegistry.MapToComponentField()
|
|
154
154
|
], VegaRichTextEditorRenderer.prototype, "label", void 0);
|
|
155
|
-
__decorate$
|
|
155
|
+
__decorate$A([
|
|
156
156
|
globalSlimmerRegistry.MapToComponentField()
|
|
157
157
|
], VegaRichTextEditorRenderer.prototype, "required", void 0);
|
|
158
|
-
__decorate$
|
|
158
|
+
__decorate$A([
|
|
159
159
|
globalSlimmerRegistry.MapToComponentField()
|
|
160
160
|
], VegaRichTextEditorRenderer.prototype, "hint", void 0);
|
|
161
|
-
__decorate$
|
|
161
|
+
__decorate$A([
|
|
162
162
|
globalSlimmerRegistry.MapToComponentField()
|
|
163
163
|
], VegaRichTextEditorRenderer.prototype, "disabled", void 0);
|
|
164
|
-
__decorate$
|
|
164
|
+
__decorate$A([
|
|
165
165
|
globalSlimmerRegistry.MapToComponentField()
|
|
166
166
|
], VegaRichTextEditorRenderer.prototype, "rows", void 0);
|
|
167
|
-
__decorate$
|
|
167
|
+
__decorate$A([
|
|
168
168
|
globalSlimmerRegistry.MapToComponentField()
|
|
169
169
|
], VegaRichTextEditorRenderer.prototype, "placeholder", void 0);
|
|
170
|
-
__decorate$
|
|
170
|
+
__decorate$A([
|
|
171
171
|
globalSlimmerRegistry.MapToComponentField()
|
|
172
172
|
], VegaRichTextEditorRenderer.prototype, "value", void 0);
|
|
173
|
-
__decorate$
|
|
173
|
+
__decorate$A([
|
|
174
174
|
globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
|
|
175
175
|
], VegaRichTextEditorRenderer.prototype, "componentDidRender", null);
|
|
176
176
|
|
|
177
|
-
var __decorate$
|
|
177
|
+
var __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
178
178
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
179
179
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
180
180
|
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;
|
|
@@ -224,49 +224,49 @@ class ToolbarRenderer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
224
224
|
})));
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
|
-
__decorate$
|
|
227
|
+
__decorate$z([
|
|
228
228
|
globalSlimmerRegistry.MapToComponentField()
|
|
229
229
|
], ToolbarRenderer.prototype, "toolbarItems", void 0);
|
|
230
|
-
__decorate$
|
|
230
|
+
__decorate$z([
|
|
231
231
|
globalSlimmerRegistry.MapToComponentField()
|
|
232
232
|
], ToolbarRenderer.prototype, "clearStyleToolbarButtonSlimmer", void 0);
|
|
233
|
-
__decorate$
|
|
233
|
+
__decorate$z([
|
|
234
234
|
globalSlimmerRegistry.MapToComponentField()
|
|
235
235
|
], ToolbarRenderer.prototype, "boldToolbarButtonSlimmer", void 0);
|
|
236
|
-
__decorate$
|
|
236
|
+
__decorate$z([
|
|
237
237
|
globalSlimmerRegistry.MapToComponentField()
|
|
238
238
|
], ToolbarRenderer.prototype, "textStylesToolbarButtonSlimmer", void 0);
|
|
239
|
-
__decorate$
|
|
239
|
+
__decorate$z([
|
|
240
240
|
globalSlimmerRegistry.MapToComponentField()
|
|
241
241
|
], ToolbarRenderer.prototype, "italicToolbarButtonSlimmer", void 0);
|
|
242
|
-
__decorate$
|
|
242
|
+
__decorate$z([
|
|
243
243
|
globalSlimmerRegistry.MapToComponentField()
|
|
244
244
|
], ToolbarRenderer.prototype, "underlineToolbarButtonSlimmer", void 0);
|
|
245
|
-
__decorate$
|
|
245
|
+
__decorate$z([
|
|
246
246
|
globalSlimmerRegistry.MapToComponentField()
|
|
247
247
|
], ToolbarRenderer.prototype, "textColorToolbarButtonSlimmer", void 0);
|
|
248
|
-
__decorate$
|
|
248
|
+
__decorate$z([
|
|
249
249
|
globalSlimmerRegistry.MapToComponentField()
|
|
250
250
|
], ToolbarRenderer.prototype, "bulletsNumbersToolbarButtonSlimmer", void 0);
|
|
251
|
-
__decorate$
|
|
251
|
+
__decorate$z([
|
|
252
252
|
globalSlimmerRegistry.MapToComponentField()
|
|
253
253
|
], ToolbarRenderer.prototype, "horizontalAlignmentToolbarButtonSlimmer", void 0);
|
|
254
|
-
__decorate$
|
|
254
|
+
__decorate$z([
|
|
255
255
|
globalSlimmerRegistry.MapToComponentField()
|
|
256
256
|
], ToolbarRenderer.prototype, "strikethroughToolbarButtonSlimmer", void 0);
|
|
257
|
-
__decorate$
|
|
257
|
+
__decorate$z([
|
|
258
258
|
globalSlimmerRegistry.MapToComponentField()
|
|
259
259
|
], ToolbarRenderer.prototype, "imageToolbarButtonSlimmer", void 0);
|
|
260
|
-
__decorate$
|
|
260
|
+
__decorate$z([
|
|
261
261
|
globalSlimmerRegistry.MapToComponentField()
|
|
262
262
|
], ToolbarRenderer.prototype, "moreIndentToolbarButtonSlimmer", void 0);
|
|
263
|
-
__decorate$
|
|
263
|
+
__decorate$z([
|
|
264
264
|
globalSlimmerRegistry.MapToComponentField()
|
|
265
265
|
], ToolbarRenderer.prototype, "lessIndentToolbarButtonSlimmer", void 0);
|
|
266
|
-
__decorate$
|
|
266
|
+
__decorate$z([
|
|
267
267
|
globalSlimmerRegistry.MapToComponentField()
|
|
268
268
|
], ToolbarRenderer.prototype, "codeToolbarButtonSlimmer", void 0);
|
|
269
|
-
__decorate$
|
|
269
|
+
__decorate$z([
|
|
270
270
|
globalSlimmerRegistry.MapToComponentField()
|
|
271
271
|
], ToolbarRenderer.prototype, "linkToolbarButtonSlimmer", void 0);
|
|
272
272
|
|
|
@@ -274,7 +274,7 @@ const bold = {
|
|
|
274
274
|
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>`,
|
|
275
275
|
};
|
|
276
276
|
|
|
277
|
-
var __decorate$
|
|
277
|
+
var __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
278
278
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
279
279
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
280
280
|
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;
|
|
@@ -315,7 +315,7 @@ class BoldToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimme
|
|
|
315
315
|
(() => {
|
|
316
316
|
internalIconManager.VegaInternalIconManager.register({ bold });
|
|
317
317
|
})();
|
|
318
|
-
__decorate$
|
|
318
|
+
__decorate$y([
|
|
319
319
|
globalSlimmerRegistry.MapToComponentField()
|
|
320
320
|
], BoldToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
321
321
|
|
|
@@ -342,7 +342,7 @@ class ItalicAnnotationAction extends contentState.TextSplittableAction {
|
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
-
var __decorate$
|
|
345
|
+
var __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
346
346
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
347
347
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
348
348
|
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;
|
|
@@ -381,7 +381,7 @@ class ItalicToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlim
|
|
|
381
381
|
(() => {
|
|
382
382
|
internalIconManager.VegaInternalIconManager.register({ italic });
|
|
383
383
|
})();
|
|
384
|
-
__decorate$
|
|
384
|
+
__decorate$x([
|
|
385
385
|
globalSlimmerRegistry.MapToComponentField()
|
|
386
386
|
], ItalicToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
387
387
|
|
|
@@ -408,7 +408,7 @@ class UnderlineAnnotationAction extends contentState.TextSplittableAction {
|
|
|
408
408
|
}
|
|
409
409
|
}
|
|
410
410
|
|
|
411
|
-
var __decorate$
|
|
411
|
+
var __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
412
412
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
413
413
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
414
414
|
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;
|
|
@@ -450,7 +450,7 @@ class UnderlineToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonS
|
|
|
450
450
|
(() => {
|
|
451
451
|
internalIconManager.VegaInternalIconManager.register({ underline });
|
|
452
452
|
})();
|
|
453
|
-
__decorate$
|
|
453
|
+
__decorate$w([
|
|
454
454
|
globalSlimmerRegistry.MapToComponentField()
|
|
455
455
|
], UnderlineToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
456
456
|
|
|
@@ -458,7 +458,7 @@ const textSize = {
|
|
|
458
458
|
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>`,
|
|
459
459
|
};
|
|
460
460
|
|
|
461
|
-
var __decorate$
|
|
461
|
+
var __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
462
462
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
463
463
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
464
464
|
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;
|
|
@@ -567,10 +567,10 @@ TextStylesToolbarButtonSlimmer.items = [
|
|
|
567
567
|
label: 'Paragraph',
|
|
568
568
|
},
|
|
569
569
|
];
|
|
570
|
-
__decorate$
|
|
570
|
+
__decorate$v([
|
|
571
571
|
globalSlimmerRegistry.MapToComponentField()
|
|
572
572
|
], TextStylesToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
573
|
-
__decorate$
|
|
573
|
+
__decorate$v([
|
|
574
574
|
globalSlimmerRegistry.MapToComponentField()
|
|
575
575
|
], TextStylesToolbarButtonSlimmer.prototype, "focusController", void 0);
|
|
576
576
|
|
|
@@ -578,7 +578,7 @@ const TextSlash = {
|
|
|
578
578
|
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>`,
|
|
579
579
|
};
|
|
580
580
|
|
|
581
|
-
var __decorate$
|
|
581
|
+
var __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
582
582
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
583
583
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
584
584
|
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;
|
|
@@ -614,7 +614,7 @@ class ClearStyleToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
|
|
|
614
614
|
'text-slash': TextSlash,
|
|
615
615
|
});
|
|
616
616
|
})();
|
|
617
|
-
__decorate$
|
|
617
|
+
__decorate$u([
|
|
618
618
|
globalSlimmerRegistry.MapToComponentField()
|
|
619
619
|
], ClearStyleToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
620
620
|
|
|
@@ -622,7 +622,7 @@ const codeSimple = {
|
|
|
622
622
|
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>`,
|
|
623
623
|
};
|
|
624
624
|
|
|
625
|
-
var __decorate$
|
|
625
|
+
var __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
626
626
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
627
627
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
628
628
|
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;
|
|
@@ -659,7 +659,7 @@ class CodeToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimme
|
|
|
659
659
|
(() => {
|
|
660
660
|
internalIconManager.VegaInternalIconManager.register({ 'code-simple': codeSimple });
|
|
661
661
|
})();
|
|
662
|
-
__decorate$
|
|
662
|
+
__decorate$t([
|
|
663
663
|
globalSlimmerRegistry.MapToComponentField()
|
|
664
664
|
], CodeToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
665
665
|
|
|
@@ -686,7 +686,7 @@ class StrikethroughAnnotationAction extends contentState.TextSplittableAction {
|
|
|
686
686
|
}
|
|
687
687
|
}
|
|
688
688
|
|
|
689
|
-
var __decorate$
|
|
689
|
+
var __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
690
690
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
691
691
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
692
692
|
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;
|
|
@@ -728,7 +728,7 @@ class StrikethroughToolbarButtonSlimmer extends imageAnnotationAction.ToolbarBut
|
|
|
728
728
|
(() => {
|
|
729
729
|
internalIconManager.VegaInternalIconManager.register({ strikethrough });
|
|
730
730
|
})();
|
|
731
|
-
__decorate$
|
|
731
|
+
__decorate$s([
|
|
732
732
|
globalSlimmerRegistry.MapToComponentField()
|
|
733
733
|
], StrikethroughToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
734
734
|
|
|
@@ -755,7 +755,7 @@ class SelectionChangeAction extends contentState.AnnotationAction {
|
|
|
755
755
|
}
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
var __decorate$
|
|
758
|
+
var __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
759
759
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
760
760
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
761
761
|
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;
|
|
@@ -836,7 +836,7 @@ class LinkToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimme
|
|
|
836
836
|
(() => {
|
|
837
837
|
internalIconManager.VegaInternalIconManager.register({ link: link });
|
|
838
838
|
})();
|
|
839
|
-
__decorate$
|
|
839
|
+
__decorate$r([
|
|
840
840
|
globalSlimmerRegistry.MapToComponentField()
|
|
841
841
|
], LinkToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
842
842
|
|
|
@@ -863,7 +863,7 @@ class IndentAnnotationAction extends contentState.AnnotationAction {
|
|
|
863
863
|
}
|
|
864
864
|
}
|
|
865
865
|
|
|
866
|
-
var __decorate$
|
|
866
|
+
var __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
867
867
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
868
868
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
869
869
|
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;
|
|
@@ -898,7 +898,7 @@ class MoreIndentToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
|
|
|
898
898
|
(() => {
|
|
899
899
|
internalIconManager.VegaInternalIconManager.register({ indent: indent });
|
|
900
900
|
})();
|
|
901
|
-
__decorate$
|
|
901
|
+
__decorate$q([
|
|
902
902
|
globalSlimmerRegistry.MapToComponentField()
|
|
903
903
|
], MoreIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
904
904
|
|
|
@@ -906,7 +906,7 @@ const outdent = {
|
|
|
906
906
|
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>`,
|
|
907
907
|
};
|
|
908
908
|
|
|
909
|
-
var __decorate$
|
|
909
|
+
var __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
910
910
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
911
911
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
912
912
|
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;
|
|
@@ -942,7 +942,7 @@ class LessIndentToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
|
|
|
942
942
|
(() => {
|
|
943
943
|
internalIconManager.VegaInternalIconManager.register({ outdent: outdent });
|
|
944
944
|
})();
|
|
945
|
-
__decorate$
|
|
945
|
+
__decorate$p([
|
|
946
946
|
globalSlimmerRegistry.MapToComponentField()
|
|
947
947
|
], LessIndentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
948
948
|
|
|
@@ -950,7 +950,7 @@ const image = {
|
|
|
950
950
|
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>`,
|
|
951
951
|
};
|
|
952
952
|
|
|
953
|
-
var __decorate$
|
|
953
|
+
var __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
954
954
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
955
955
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
956
956
|
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;
|
|
@@ -1007,13 +1007,13 @@ class ImageToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSlimm
|
|
|
1007
1007
|
(() => {
|
|
1008
1008
|
internalIconManager.VegaInternalIconManager.register({ image: image });
|
|
1009
1009
|
})();
|
|
1010
|
-
__decorate$
|
|
1010
|
+
__decorate$o([
|
|
1011
1011
|
globalSlimmerRegistry.MapToComponentField()
|
|
1012
1012
|
], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
|
|
1013
|
-
__decorate$
|
|
1013
|
+
__decorate$o([
|
|
1014
1014
|
globalSlimmerRegistry.MapToComponentField()
|
|
1015
1015
|
], ImageToolbarButtonSlimmer.prototype, "imageInsertedEventEmitter", void 0);
|
|
1016
|
-
__decorate$
|
|
1016
|
+
__decorate$o([
|
|
1017
1017
|
globalSlimmerRegistry.MapToComponentField()
|
|
1018
1018
|
], ImageToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1019
1019
|
|
|
@@ -1050,7 +1050,7 @@ class TransformParagraphAction extends nodeAnnotation_abstract.ModifyContentActi
|
|
|
1050
1050
|
}
|
|
1051
1051
|
}
|
|
1052
1052
|
|
|
1053
|
-
var __decorate$
|
|
1053
|
+
var __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1054
1054
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1055
1055
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1056
1056
|
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;
|
|
@@ -1108,14 +1108,14 @@ class BulletsToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSli
|
|
|
1108
1108
|
}
|
|
1109
1109
|
}
|
|
1110
1110
|
}
|
|
1111
|
-
__decorate$
|
|
1111
|
+
__decorate$n([
|
|
1112
1112
|
globalSlimmerRegistry.MapToComponentField()
|
|
1113
1113
|
], BulletsToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1114
|
-
__decorate$
|
|
1114
|
+
__decorate$n([
|
|
1115
1115
|
globalSlimmerRegistry.MapToComponentField()
|
|
1116
1116
|
], BulletsToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1117
1117
|
|
|
1118
|
-
var __decorate$
|
|
1118
|
+
var __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1119
1119
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1120
1120
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1121
1121
|
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;
|
|
@@ -1171,14 +1171,14 @@ class NumbersToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonSli
|
|
|
1171
1171
|
}
|
|
1172
1172
|
}
|
|
1173
1173
|
}
|
|
1174
|
-
__decorate$
|
|
1174
|
+
__decorate$m([
|
|
1175
1175
|
globalSlimmerRegistry.MapToComponentField()
|
|
1176
1176
|
], NumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1177
|
-
__decorate$
|
|
1177
|
+
__decorate$m([
|
|
1178
1178
|
globalSlimmerRegistry.MapToComponentField()
|
|
1179
1179
|
], NumbersToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1180
1180
|
|
|
1181
|
-
var __decorate$
|
|
1181
|
+
var __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1182
1182
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1183
1183
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1184
1184
|
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;
|
|
@@ -1227,16 +1227,16 @@ class BulletsNumbersToolbarButtonSlimmer extends imageAnnotationAction.ToolbarBu
|
|
|
1227
1227
|
'list-ol': ListOL,
|
|
1228
1228
|
});
|
|
1229
1229
|
})();
|
|
1230
|
-
__decorate$
|
|
1230
|
+
__decorate$l([
|
|
1231
1231
|
globalSlimmerRegistry.MapToComponentField()
|
|
1232
1232
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1233
|
-
__decorate$
|
|
1233
|
+
__decorate$l([
|
|
1234
1234
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
1235
1235
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "bulletsToolbarButtonSlimmer", void 0);
|
|
1236
|
-
__decorate$
|
|
1236
|
+
__decorate$l([
|
|
1237
1237
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
1238
1238
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "numbersToolbarButtonSlimmer", void 0);
|
|
1239
|
-
__decorate$
|
|
1239
|
+
__decorate$l([
|
|
1240
1240
|
globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
|
|
1241
1241
|
], BulletsNumbersToolbarButtonSlimmer.prototype, "componentWillRender", null);
|
|
1242
1242
|
|
|
@@ -1263,7 +1263,7 @@ const AlignLeft = {
|
|
|
1263
1263
|
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>`,
|
|
1264
1264
|
};
|
|
1265
1265
|
|
|
1266
|
-
var __decorate$
|
|
1266
|
+
var __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1267
1267
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1268
1268
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1269
1269
|
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;
|
|
@@ -1298,10 +1298,10 @@ class LeftAlignToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButtonS
|
|
|
1298
1298
|
'align-left': AlignLeft,
|
|
1299
1299
|
});
|
|
1300
1300
|
})();
|
|
1301
|
-
__decorate$
|
|
1301
|
+
__decorate$k([
|
|
1302
1302
|
globalSlimmerRegistry.MapToComponentField()
|
|
1303
1303
|
], LeftAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1304
|
-
__decorate$
|
|
1304
|
+
__decorate$k([
|
|
1305
1305
|
globalSlimmerRegistry.MapToComponentField()
|
|
1306
1306
|
], LeftAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1307
1307
|
|
|
@@ -1309,7 +1309,7 @@ const AlignCenter = {
|
|
|
1309
1309
|
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>`,
|
|
1310
1310
|
};
|
|
1311
1311
|
|
|
1312
|
-
var __decorate$
|
|
1312
|
+
var __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1313
1313
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1314
1314
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1315
1315
|
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;
|
|
@@ -1344,10 +1344,10 @@ class CenterAlignToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButto
|
|
|
1344
1344
|
'align-center': AlignCenter,
|
|
1345
1345
|
});
|
|
1346
1346
|
})();
|
|
1347
|
-
__decorate$
|
|
1347
|
+
__decorate$j([
|
|
1348
1348
|
globalSlimmerRegistry.MapToComponentField()
|
|
1349
1349
|
], CenterAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1350
|
-
__decorate$
|
|
1350
|
+
__decorate$j([
|
|
1351
1351
|
globalSlimmerRegistry.MapToComponentField()
|
|
1352
1352
|
], CenterAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1353
1353
|
|
|
@@ -1355,7 +1355,7 @@ const AlignRight = {
|
|
|
1355
1355
|
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>`,
|
|
1356
1356
|
};
|
|
1357
1357
|
|
|
1358
|
-
var __decorate$
|
|
1358
|
+
var __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1359
1359
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1360
1360
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1361
1361
|
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;
|
|
@@ -1390,10 +1390,10 @@ class RightAlignToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButton
|
|
|
1390
1390
|
'align-right': AlignRight,
|
|
1391
1391
|
});
|
|
1392
1392
|
})();
|
|
1393
|
-
__decorate$
|
|
1393
|
+
__decorate$i([
|
|
1394
1394
|
globalSlimmerRegistry.MapToComponentField()
|
|
1395
1395
|
], RightAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1396
|
-
__decorate$
|
|
1396
|
+
__decorate$i([
|
|
1397
1397
|
globalSlimmerRegistry.MapToComponentField()
|
|
1398
1398
|
], RightAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1399
1399
|
|
|
@@ -1401,7 +1401,7 @@ const AlignJustify = {
|
|
|
1401
1401
|
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>`,
|
|
1402
1402
|
};
|
|
1403
1403
|
|
|
1404
|
-
var __decorate$
|
|
1404
|
+
var __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1405
1405
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1406
1406
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1407
1407
|
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;
|
|
@@ -1436,14 +1436,14 @@ class JustifyAlignToolbarButtonSlimmer extends imageAnnotationAction.ToolbarButt
|
|
|
1436
1436
|
'align-justify': AlignJustify,
|
|
1437
1437
|
});
|
|
1438
1438
|
})();
|
|
1439
|
-
__decorate$
|
|
1439
|
+
__decorate$h([
|
|
1440
1440
|
globalSlimmerRegistry.MapToComponentField()
|
|
1441
1441
|
], JustifyAlignToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1442
|
-
__decorate$
|
|
1442
|
+
__decorate$h([
|
|
1443
1443
|
globalSlimmerRegistry.MapToComponentField()
|
|
1444
1444
|
], JustifyAlignToolbarButtonSlimmer.prototype, "popoverRef", void 0);
|
|
1445
1445
|
|
|
1446
|
-
var __decorate$
|
|
1446
|
+
var __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1447
1447
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1448
1448
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1449
1449
|
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;
|
|
@@ -1495,22 +1495,22 @@ class HorizontalAlignmentToolbarButtonSlimmer extends imageAnnotationAction.Tool
|
|
|
1495
1495
|
return false;
|
|
1496
1496
|
}
|
|
1497
1497
|
}
|
|
1498
|
-
__decorate$
|
|
1498
|
+
__decorate$g([
|
|
1499
1499
|
globalSlimmerRegistry.MapToComponentField()
|
|
1500
1500
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "selectionController", void 0);
|
|
1501
|
-
__decorate$
|
|
1501
|
+
__decorate$g([
|
|
1502
1502
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
1503
1503
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "leftAlignToolbarButtonSlimmer", void 0);
|
|
1504
|
-
__decorate$
|
|
1504
|
+
__decorate$g([
|
|
1505
1505
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
1506
1506
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "centerAlignToolbarButtonSlimmer", void 0);
|
|
1507
|
-
__decorate$
|
|
1507
|
+
__decorate$g([
|
|
1508
1508
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
1509
1509
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "rightAlignToolbarButtonSlimmer", void 0);
|
|
1510
|
-
__decorate$
|
|
1510
|
+
__decorate$g([
|
|
1511
1511
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
1512
1512
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "justifiedToolbarButtonSlimmer", void 0);
|
|
1513
|
-
__decorate$
|
|
1513
|
+
__decorate$g([
|
|
1514
1514
|
globalSlimmerRegistry.MapToComponentMethod('componentWillRender')
|
|
1515
1515
|
], HorizontalAlignmentToolbarButtonSlimmer.prototype, "componentWillRender", null);
|
|
1516
1516
|
|
|
@@ -1853,7 +1853,7 @@ class RTERange {
|
|
|
1853
1853
|
}
|
|
1854
1854
|
}
|
|
1855
1855
|
|
|
1856
|
-
var __decorate$
|
|
1856
|
+
var __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
1857
1857
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1858
1858
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1859
1859
|
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;
|
|
@@ -1974,17 +1974,22 @@ class SelectionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
1974
1974
|
*/
|
|
1975
1975
|
setSelectionRange(range) {
|
|
1976
1976
|
const selection = this.getSelection();
|
|
1977
|
-
selection
|
|
1978
|
-
|
|
1979
|
-
|
|
1977
|
+
if (selection) {
|
|
1978
|
+
selection.removeAllRanges();
|
|
1979
|
+
selection.addRange(range);
|
|
1980
|
+
this.saveSelection();
|
|
1981
|
+
}
|
|
1980
1982
|
}
|
|
1981
1983
|
/**
|
|
1982
1984
|
* Save the current selection range detail
|
|
1983
1985
|
*/
|
|
1984
1986
|
saveSelection() {
|
|
1985
1987
|
const selection = this.getSelection();
|
|
1986
|
-
// The range is out of date if the queue is not empty, so we should not update the RTERange
|
|
1987
|
-
if (selection &&
|
|
1988
|
+
// 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
|
|
1989
|
+
if (selection &&
|
|
1990
|
+
selection.rangeCount > 0 &&
|
|
1991
|
+
this.updateCaretPositionTaskQueue.queue.length === 0 &&
|
|
1992
|
+
!this.insertCompositionTextController.isComposing()) {
|
|
1988
1993
|
const range = selection.getRangeAt(0);
|
|
1989
1994
|
const { startContainer: startNode, endContainer: endNode, startOffset, endOffset } = range;
|
|
1990
1995
|
this.currentRange = this.currentRange.updateRTERange({ startNode, endNode, startOffset, endOffset }, range);
|
|
@@ -2102,38 +2107,41 @@ class SelectionController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2102
2107
|
}
|
|
2103
2108
|
}
|
|
2104
2109
|
SelectionController.SELECTION_CHANGE_DEBOUNCE_TIME = 50;
|
|
2105
|
-
__decorate$
|
|
2110
|
+
__decorate$f([
|
|
2106
2111
|
globalSlimmerRegistry.MapToComponentField()
|
|
2107
2112
|
], SelectionController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
2108
|
-
__decorate$
|
|
2113
|
+
__decorate$f([
|
|
2109
2114
|
globalSlimmerRegistry.MapToComponentField({ writable: true })
|
|
2110
2115
|
], SelectionController.prototype, "selectionMap", void 0);
|
|
2111
|
-
__decorate$
|
|
2116
|
+
__decorate$f([
|
|
2112
2117
|
globalSlimmerRegistry.MapToComponentField()
|
|
2113
2118
|
], SelectionController.prototype, "host", void 0);
|
|
2114
|
-
__decorate$
|
|
2119
|
+
__decorate$f([
|
|
2115
2120
|
globalSlimmerRegistry.MapToComponentField()
|
|
2116
2121
|
], SelectionController.prototype, "value", void 0);
|
|
2117
|
-
__decorate$
|
|
2122
|
+
__decorate$f([
|
|
2118
2123
|
globalSlimmerRegistry.MapToComponentField()
|
|
2119
2124
|
], SelectionController.prototype, "valueController", void 0);
|
|
2120
|
-
__decorate$
|
|
2125
|
+
__decorate$f([
|
|
2126
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
2127
|
+
], SelectionController.prototype, "insertCompositionTextController", void 0);
|
|
2128
|
+
__decorate$f([
|
|
2121
2129
|
globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
|
|
2122
2130
|
], SelectionController.prototype, "connectedCallback", null);
|
|
2123
|
-
__decorate$
|
|
2131
|
+
__decorate$f([
|
|
2124
2132
|
globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
|
|
2125
2133
|
], SelectionController.prototype, "disconnectedCallback", null);
|
|
2126
|
-
__decorate$
|
|
2134
|
+
__decorate$f([
|
|
2127
2135
|
globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
|
|
2128
2136
|
], SelectionController.prototype, "componentDidLoad", null);
|
|
2129
|
-
__decorate$
|
|
2137
|
+
__decorate$f([
|
|
2130
2138
|
globalSlimmerRegistry.MapToComponentMethod('watchValueUpdate')
|
|
2131
2139
|
], SelectionController.prototype, "watchValueUpdate", null);
|
|
2132
|
-
__decorate$
|
|
2140
|
+
__decorate$f([
|
|
2133
2141
|
globalSlimmerRegistry.MapToComponentMethod('componentDidUpdate')
|
|
2134
2142
|
], SelectionController.prototype, "updateCaretPosition", null);
|
|
2135
2143
|
|
|
2136
|
-
var __decorate$
|
|
2144
|
+
var __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2137
2145
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2138
2146
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2139
2147
|
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;
|
|
@@ -2204,32 +2212,32 @@ class ValueController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2204
2212
|
}
|
|
2205
2213
|
}
|
|
2206
2214
|
ValueController.VALUE_CHANGE_DEBOUNCE_TIME = 50;
|
|
2207
|
-
__decorate$
|
|
2215
|
+
__decorate$e([
|
|
2208
2216
|
globalSlimmerRegistry.MapToComponentField()
|
|
2209
2217
|
], ValueController.prototype, "host", void 0);
|
|
2210
|
-
__decorate$
|
|
2218
|
+
__decorate$e([
|
|
2211
2219
|
globalSlimmerRegistry.MapToComponentField({ writable: true })
|
|
2212
2220
|
], ValueController.prototype, "value", void 0);
|
|
2213
|
-
__decorate$
|
|
2221
|
+
__decorate$e([
|
|
2214
2222
|
globalSlimmerRegistry.MapToComponentField()
|
|
2215
2223
|
], ValueController.prototype, "changeEventEmitter", void 0);
|
|
2216
|
-
__decorate$
|
|
2224
|
+
__decorate$e([
|
|
2217
2225
|
globalSlimmerRegistry.MapToComponentField()
|
|
2218
2226
|
], ValueController.prototype, "valueController", void 0);
|
|
2219
|
-
__decorate$
|
|
2227
|
+
__decorate$e([
|
|
2220
2228
|
globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
|
|
2221
2229
|
], ValueController.prototype, "connectedCallback", null);
|
|
2222
|
-
__decorate$
|
|
2230
|
+
__decorate$e([
|
|
2223
2231
|
globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
|
|
2224
2232
|
], ValueController.prototype, "disconnectedCallback", null);
|
|
2225
|
-
__decorate$
|
|
2233
|
+
__decorate$e([
|
|
2226
2234
|
globalSlimmerRegistry.MapToComponentMethod('componentWillLoad')
|
|
2227
2235
|
], ValueController.prototype, "componentWillLoad", null);
|
|
2228
|
-
__decorate$
|
|
2236
|
+
__decorate$e([
|
|
2229
2237
|
globalSlimmerRegistry.MapToComponentMethod('watchValueUpdate')
|
|
2230
2238
|
], ValueController.prototype, "watchValueUpdate", null);
|
|
2231
2239
|
|
|
2232
|
-
var __decorate$
|
|
2240
|
+
var __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
2233
2241
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2234
2242
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
2235
2243
|
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;
|
|
@@ -2262,13 +2270,13 @@ class DarkModeStateControllerSlimmer extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
2262
2270
|
return true;
|
|
2263
2271
|
}
|
|
2264
2272
|
}
|
|
2265
|
-
__decorate$
|
|
2273
|
+
__decorate$d([
|
|
2266
2274
|
globalSlimmerRegistry.MapToComponentField({ writable: true })
|
|
2267
2275
|
], DarkModeStateControllerSlimmer.prototype, "isInDarkMode", void 0);
|
|
2268
|
-
__decorate$
|
|
2276
|
+
__decorate$d([
|
|
2269
2277
|
globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
|
|
2270
2278
|
], DarkModeStateControllerSlimmer.prototype, "connectedCallback", null);
|
|
2271
|
-
__decorate$
|
|
2279
|
+
__decorate$d([
|
|
2272
2280
|
globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
|
|
2273
2281
|
], DarkModeStateControllerSlimmer.prototype, "disconnectResizeObserver", null);
|
|
2274
2282
|
|
|
@@ -2288,21 +2296,6 @@ class RichTextContentController {
|
|
|
2288
2296
|
}
|
|
2289
2297
|
}
|
|
2290
2298
|
|
|
2291
|
-
/**
|
|
2292
|
-
* Replace the text node selected content to new text
|
|
2293
|
-
*
|
|
2294
|
-
* @example selectedNode.apply(new ReplaceSelectedTextAction(insertText))
|
|
2295
|
-
*/
|
|
2296
|
-
class ReplaceSelectedTextAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
2297
|
-
constructor(text, currentRange) {
|
|
2298
|
-
super();
|
|
2299
|
-
this.type = nodeAnnotation_abstract.ModifyContentActionType.REPLACE_SELECTED_TEXT;
|
|
2300
|
-
this.textToBeInsert = '';
|
|
2301
|
-
this.textToBeInsert = text;
|
|
2302
|
-
this.currentRange = currentRange;
|
|
2303
|
-
}
|
|
2304
|
-
}
|
|
2305
|
-
|
|
2306
2299
|
const ROOT_CONTAINER_CLASS_NAME = 'rich-text-content';
|
|
2307
2300
|
/** This code snippet is defining an abstract class named `BaseHandler` with an abstract method `execute`. */
|
|
2308
2301
|
class BaseHandler {
|
|
@@ -2311,30 +2304,14 @@ class BaseHandler {
|
|
|
2311
2304
|
*
|
|
2312
2305
|
* @param {VegaRTEContent} currentState - The current state of the VegaRTE content.
|
|
2313
2306
|
* @param {SelectionController} selectionController - Manages the selection of items in the user interface.
|
|
2307
|
+
* @param {HTMLElement} richTextEditor - The current rich text editor component
|
|
2314
2308
|
* @param {InputEvent} [event] - It is used to pass an input event to the method for handling.
|
|
2315
2309
|
*/
|
|
2316
|
-
execute(currentState, selectionController, event) {
|
|
2310
|
+
execute(currentState, selectionController, richTextEditor, event) {
|
|
2317
2311
|
this.initCurrentStateAndSelection(currentState, selectionController);
|
|
2312
|
+
this.setCurrentRichTextEditor(richTextEditor);
|
|
2318
2313
|
this.handleEvent(event);
|
|
2319
2314
|
}
|
|
2320
|
-
/**
|
|
2321
|
-
* Replaces the selected nodes with the provided text.
|
|
2322
|
-
*
|
|
2323
|
-
* @param {string} text - The insert text
|
|
2324
|
-
* @returns {RTENode} - The selected start node
|
|
2325
|
-
*/
|
|
2326
|
-
replaceSelectedNodesWithText(text) {
|
|
2327
|
-
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2328
|
-
const range = this.selectionController.getCurrentRange();
|
|
2329
|
-
const { startContainer, endContainer } = range;
|
|
2330
|
-
const result = this.removeSelectionRange();
|
|
2331
|
-
const startNode = selectedNodes[0];
|
|
2332
|
-
if (startNode instanceof contentState.RTETextNode && text) {
|
|
2333
|
-
startNode.apply(new contentState.UpdateTextAction(startNode.text + text));
|
|
2334
|
-
}
|
|
2335
|
-
this.mergeRangeStartAndEnd(startContainer, endContainer);
|
|
2336
|
-
return result;
|
|
2337
|
-
}
|
|
2338
2315
|
/**
|
|
2339
2316
|
* The function `isRootContainer` checks if an HTML element is a root container with a class of 'rich-text-content'.
|
|
2340
2317
|
*
|
|
@@ -2356,105 +2333,22 @@ class BaseHandler {
|
|
|
2356
2333
|
return node && node.childNodes && node.childNodes.length === 0;
|
|
2357
2334
|
}
|
|
2358
2335
|
/**
|
|
2359
|
-
* Removes
|
|
2336
|
+
* Removes selected nodes within a range in a rich text editor content.
|
|
2337
|
+
* The method is only used for different nodes are selected
|
|
2338
|
+
*
|
|
2339
|
+
* @param {boolean} [mergeNode] Merge start node and end node or not, default value is false.
|
|
2340
|
+
* @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.
|
|
2360
2341
|
*/
|
|
2361
|
-
|
|
2342
|
+
removeSelectionRange(mergeNode = false) {
|
|
2343
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.richTextEditorRef, vegaInternalEventId.VegaInternalRichTextEditDeleteSelectedNodes), { host: this.richTextEditorRef, detail: mergeNode });
|
|
2344
|
+
const range = this.selectionController.getCurrentRange();
|
|
2362
2345
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2363
|
-
|
|
2364
|
-
if (selectedNodes[0] instanceof contentState.RTETextNode) {
|
|
2365
|
-
selectedNodes[0].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
2366
|
-
}
|
|
2367
|
-
if (selectedNodes.length > 1 && selectedNodes[selectedNodes.length - 1] instanceof contentState.RTETextNode) {
|
|
2368
|
-
selectedNodes[selectedNodes.length - 1].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
2369
|
-
}
|
|
2346
|
+
return range.startNode || selectedNodes[0];
|
|
2370
2347
|
}
|
|
2371
2348
|
/**
|
|
2372
|
-
*
|
|
2349
|
+
* Creates a new paragraph with an empty text node and returns it.
|
|
2373
2350
|
*
|
|
2374
|
-
* @
|
|
2375
|
-
* @param {Node} endContainer - End text node element
|
|
2376
|
-
*/
|
|
2377
|
-
mergeRangeStartAndEnd(startContainer, endContainer) {
|
|
2378
|
-
if (startContainer !== endContainer) {
|
|
2379
|
-
if (startContainer.nodeType === Node.TEXT_NODE && endContainer.nodeType === Node.TEXT_NODE) {
|
|
2380
|
-
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2381
|
-
const startRTENode = selectedNodes[0];
|
|
2382
|
-
const endRTENode = selectedNodes[selectedNodes.length - 1];
|
|
2383
|
-
if (startRTENode && startRTENode.parentBlock && endRTENode && endRTENode.parentBlock) {
|
|
2384
|
-
const endBlock = endRTENode.parentBlock;
|
|
2385
|
-
if (this.shouldMergeTextNode(startRTENode, endRTENode)) {
|
|
2386
|
-
startRTENode.apply(new contentState.UpdateTextAction(startRTENode.text + endRTENode.text));
|
|
2387
|
-
if (startRTENode.parentBlock === endRTENode.parentBlock) {
|
|
2388
|
-
startRTENode.parentBlock.apply(new contentState.RemoveChildAction(endRTENode));
|
|
2389
|
-
}
|
|
2390
|
-
else {
|
|
2391
|
-
endRTENode.parentBlock.apply(new contentState.RemoveChildAction(endRTENode.parentBlock.nodes[0]));
|
|
2392
|
-
}
|
|
2393
|
-
}
|
|
2394
|
-
if (startRTENode.parentBlock !== endRTENode.parentBlock) {
|
|
2395
|
-
startRTENode.parentBlock.apply(new contentState.AppendChildNodesAction(endBlock.nodes));
|
|
2396
|
-
endBlock.nodes = [];
|
|
2397
|
-
}
|
|
2398
|
-
if (endBlock.nodes.length < 1) {
|
|
2399
|
-
endBlock.parent.apply(new contentState.RemoveChildAction(endBlock));
|
|
2400
|
-
}
|
|
2401
|
-
}
|
|
2402
|
-
}
|
|
2403
|
-
}
|
|
2404
|
-
}
|
|
2405
|
-
/**
|
|
2406
|
-
* Removes selected nodes within a range in a rich text editor content.
|
|
2407
|
-
* The method is only used for different nodes are selected
|
|
2408
|
-
*
|
|
2409
|
-
* @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.
|
|
2410
|
-
*/
|
|
2411
|
-
removeSelectionRange() {
|
|
2412
|
-
const range = this.selectionController.getCurrentRange();
|
|
2413
|
-
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2414
|
-
const { endOffset, startOffset } = range;
|
|
2415
|
-
const startNode = selectedNodes[0];
|
|
2416
|
-
const endNode = selectedNodes[selectedNodes.length - 1];
|
|
2417
|
-
if (selectedNodes.length > 1) {
|
|
2418
|
-
// 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
|
|
2419
|
-
const shouldRemovedItems = selectedNodes.filter((item) => {
|
|
2420
|
-
if (item.type !== 'IMAGE') {
|
|
2421
|
-
return item !== startNode && item !== endNode;
|
|
2422
|
-
}
|
|
2423
|
-
else {
|
|
2424
|
-
return item !== startNode && (item !== endNode || (item === endNode && endOffset !== 0));
|
|
2425
|
-
}
|
|
2426
|
-
});
|
|
2427
|
-
shouldRemovedItems.forEach((item) => {
|
|
2428
|
-
item.parentBlock.apply(new contentState.RemoveChildAction(item));
|
|
2429
|
-
});
|
|
2430
|
-
}
|
|
2431
|
-
this.removeRangeStartAndEndSelectedText();
|
|
2432
|
-
/**
|
|
2433
|
-
* 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.
|
|
2434
|
-
* 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
|
|
2435
|
-
*/
|
|
2436
|
-
if (startNode instanceof contentState.RTEImageNode &&
|
|
2437
|
-
startOffset !== 1 &&
|
|
2438
|
-
(endNode !== startNode || endOffset !== 0)) {
|
|
2439
|
-
// the image block will be deleted when the image is the only item
|
|
2440
|
-
if (startNode.parentBlock.nodes.length === 1) {
|
|
2441
|
-
const paragraph = this.createEmptyParagraph();
|
|
2442
|
-
startNode.parentBlock.parent.apply(new contentState.InsertBlocksBeforeAction(startNode.parentBlock, paragraph));
|
|
2443
|
-
startNode.parentBlock.apply(new contentState.RemoveChildAction(startNode));
|
|
2444
|
-
return paragraph.nodes[0];
|
|
2445
|
-
}
|
|
2446
|
-
else if (startNode === startNode.parentBlock.nodes[0]) {
|
|
2447
|
-
// the start node should be the next image item if the image is first item
|
|
2448
|
-
startNode.parentBlock.apply(new contentState.RemoveChildAction(startNode));
|
|
2449
|
-
return startNode.parentBlock.nodes[0];
|
|
2450
|
-
}
|
|
2451
|
-
}
|
|
2452
|
-
return startNode;
|
|
2453
|
-
}
|
|
2454
|
-
/**
|
|
2455
|
-
* Creates a new paragraph with an empty text node and returns it.
|
|
2456
|
-
*
|
|
2457
|
-
* @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
|
|
2351
|
+
* @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
|
|
2458
2352
|
*/
|
|
2459
2353
|
createEmptyParagraph() {
|
|
2460
2354
|
const paragraph = new contentState.RTETextBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID(), 'paragraph');
|
|
@@ -2462,18 +2356,6 @@ class BaseHandler {
|
|
|
2462
2356
|
paragraph.apply(new contentState.AppendChildNodesAction([textNode]));
|
|
2463
2357
|
return paragraph;
|
|
2464
2358
|
}
|
|
2465
|
-
/**
|
|
2466
|
-
* Compares the annotations of two RTETextNodes to determine if they can be merged.
|
|
2467
|
-
*
|
|
2468
|
-
* @param {RTETextNode} nodeA - node A
|
|
2469
|
-
* @param {RTETextNode} nodeB - node B
|
|
2470
|
-
* @returns {boolean} true or false
|
|
2471
|
-
*/
|
|
2472
|
-
shouldMergeTextNode(nodeA, nodeB) {
|
|
2473
|
-
const { annotations: annotationsA } = nodeA.toJSON();
|
|
2474
|
-
const { annotations: annotationsB } = nodeB.toJSON();
|
|
2475
|
-
return JSON.stringify(annotationsA) === JSON.stringify(annotationsB);
|
|
2476
|
-
}
|
|
2477
2359
|
/**
|
|
2478
2360
|
* The function initializes the current state and selection controller in TypeScript.
|
|
2479
2361
|
*
|
|
@@ -2484,6 +2366,14 @@ class BaseHandler {
|
|
|
2484
2366
|
this.currentState = currentState;
|
|
2485
2367
|
this.selectionController = selectionController;
|
|
2486
2368
|
}
|
|
2369
|
+
/**
|
|
2370
|
+
* Queries the rich text editor element from the input event target.
|
|
2371
|
+
*
|
|
2372
|
+
* @param {HTMLElement} richTextEditor - The current rich text editor component
|
|
2373
|
+
*/
|
|
2374
|
+
setCurrentRichTextEditor(richTextEditor) {
|
|
2375
|
+
this.richTextEditorRef = richTextEditor;
|
|
2376
|
+
}
|
|
2487
2377
|
}
|
|
2488
2378
|
|
|
2489
2379
|
/**
|
|
@@ -2500,6 +2390,21 @@ class InsertNodesBeforeAction extends nodeAnnotation_abstract.ModifyContentActio
|
|
|
2500
2390
|
}
|
|
2501
2391
|
}
|
|
2502
2392
|
|
|
2393
|
+
/**
|
|
2394
|
+
* Replace the text node selected content to new text
|
|
2395
|
+
*
|
|
2396
|
+
* @example selectedNode.apply(new ReplaceSelectedTextAction(insertText))
|
|
2397
|
+
*/
|
|
2398
|
+
class ReplaceSelectedTextAction extends nodeAnnotation_abstract.ModifyContentAction {
|
|
2399
|
+
constructor(text, currentRange) {
|
|
2400
|
+
super();
|
|
2401
|
+
this.type = nodeAnnotation_abstract.ModifyContentActionType.REPLACE_SELECTED_TEXT;
|
|
2402
|
+
this.textToBeInsert = '';
|
|
2403
|
+
this.textToBeInsert = text;
|
|
2404
|
+
this.currentRange = currentRange;
|
|
2405
|
+
}
|
|
2406
|
+
}
|
|
2407
|
+
|
|
2503
2408
|
/** Handles inserting text into a VegaRTEContent based on the current selection and input event. User input character will trigger this callback */
|
|
2504
2409
|
class InsertTextHandler extends BaseHandler {
|
|
2505
2410
|
/**
|
|
@@ -2543,10 +2448,11 @@ class InsertTextHandler extends BaseHandler {
|
|
|
2543
2448
|
}
|
|
2544
2449
|
else {
|
|
2545
2450
|
// The selected nodes is multiple nodes
|
|
2546
|
-
const cursorNode = this.
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2451
|
+
const cursorNode = this.removeSelectionRange(true);
|
|
2452
|
+
if (cursorNode instanceof contentState.RTETextNode) {
|
|
2453
|
+
cursorNode.apply(new ReplaceSelectedTextAction(text, currentRange));
|
|
2454
|
+
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, Math.min(startOffset + text.length, cursorNode.text.length));
|
|
2455
|
+
}
|
|
2550
2456
|
}
|
|
2551
2457
|
}
|
|
2552
2458
|
/**
|
|
@@ -2743,11 +2649,13 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2743
2649
|
* </p>
|
|
2744
2650
|
*/
|
|
2745
2651
|
breakNewBlock() {
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2652
|
+
if (this.currentState &&
|
|
2653
|
+
this.currentState.blocks[0] &&
|
|
2654
|
+
this.currentState.blocks[0] instanceof contentState.RTETextBlock) {
|
|
2655
|
+
const lineBreakAction = new LineBreakSingleBlockAction(this.currentState.blocks[0].nodes[0], 0);
|
|
2656
|
+
this.currentState.blocks[0].apply(lineBreakAction);
|
|
2657
|
+
this.switchCaretPositionToSpecifiedNode(lineBreakAction.lineBreakNode);
|
|
2658
|
+
}
|
|
2751
2659
|
}
|
|
2752
2660
|
/**
|
|
2753
2661
|
* If the selected node is a text node
|
|
@@ -2784,7 +2692,7 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2784
2692
|
/**
|
|
2785
2693
|
* Moves the caret to the next node element in a rich text editor.
|
|
2786
2694
|
*
|
|
2787
|
-
* @param {
|
|
2695
|
+
* @param {RTENode} lineBreakNode - Represents a node element in a rich text editor.
|
|
2788
2696
|
*/
|
|
2789
2697
|
switchCaretPositionToSpecifiedNode(lineBreakNode) {
|
|
2790
2698
|
this.selectionController.enqueueSelectionRangeFutureState(this.getNextRTENode(lineBreakNode), 0);
|
|
@@ -2800,15 +2708,6 @@ class InsertLineBreakHandler extends BaseHandler {
|
|
|
2800
2708
|
const nextNode = lineBreakNode.parentBlock['nodes'][index + 1];
|
|
2801
2709
|
return nextNode || lineBreakNode;
|
|
2802
2710
|
}
|
|
2803
|
-
/**
|
|
2804
|
-
* Create a null text that will render a br element in a rich text editor.
|
|
2805
|
-
*
|
|
2806
|
-
* @param {RTEBlock} block - Represents a block element in a rich text editor.
|
|
2807
|
-
* @returns {RTETextNode} the new line break node.
|
|
2808
|
-
*/
|
|
2809
|
-
createLineBreakNode(block) {
|
|
2810
|
-
return new contentState.RTETextNode(createPublicApiRuntimeMetricsSlimmer.generateUUID(), '\n', block);
|
|
2811
|
-
}
|
|
2812
2711
|
}
|
|
2813
2712
|
|
|
2814
2713
|
/**
|
|
@@ -2868,21 +2767,12 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2868
2767
|
}
|
|
2869
2768
|
}
|
|
2870
2769
|
}
|
|
2871
|
-
/**
|
|
2872
|
-
* Creates a new paragraph element with a text node and appends it to the current state.
|
|
2873
|
-
*/
|
|
2874
|
-
insertDefaultParagraph() {
|
|
2875
|
-
const paragraph = this.createEmptyParagraph();
|
|
2876
|
-
this.currentState.apply(new contentState.AppendChildNodesAction([paragraph]));
|
|
2877
|
-
this.selectionController.enqueueSelectionRangeFutureState(paragraph.nodes[0], 1);
|
|
2878
|
-
}
|
|
2879
2770
|
/**
|
|
2880
2771
|
* Deletes the content within multiple nodes selected by the user.
|
|
2881
2772
|
*/
|
|
2882
2773
|
deleteContentWithMultipleNodes() {
|
|
2883
|
-
const range = this.selectionController.getCurrentRange();
|
|
2884
2774
|
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
2885
|
-
const cursorNode = this.
|
|
2775
|
+
const cursorNode = this.removeSelectionRange(true);
|
|
2886
2776
|
const lastSelectedNode = selectedNodes[selectedNodes.length - 1];
|
|
2887
2777
|
if (selectedNodes.length > 1 &&
|
|
2888
2778
|
lastSelectedNode instanceof contentState.RTETextNode &&
|
|
@@ -2890,7 +2780,6 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2890
2780
|
lastSelectedNode.parentBlock.apply(new contentState.RemoveChildAction(lastSelectedNode));
|
|
2891
2781
|
}
|
|
2892
2782
|
this.convertFirstBlockToParagraph(cursorNode.parentBlock);
|
|
2893
|
-
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, range.startOffset);
|
|
2894
2783
|
}
|
|
2895
2784
|
/**
|
|
2896
2785
|
* If the first block is not paragraph, convert the block to paragraph after delete all text
|
|
@@ -2910,6 +2799,14 @@ class DeleteContentHandler extends BaseHandler {
|
|
|
2910
2799
|
block.parent.apply(new contentState.RemoveChildAction(block));
|
|
2911
2800
|
}
|
|
2912
2801
|
}
|
|
2802
|
+
/**
|
|
2803
|
+
* Creates a new paragraph element with a text node and appends it to the current state.
|
|
2804
|
+
*/
|
|
2805
|
+
insertDefaultParagraph() {
|
|
2806
|
+
const paragraph = this.createEmptyParagraph();
|
|
2807
|
+
this.currentState.apply(new contentState.AppendChildNodesAction([paragraph]));
|
|
2808
|
+
this.selectionController.enqueueSelectionRangeFutureState(paragraph.nodes[0], 1);
|
|
2809
|
+
}
|
|
2913
2810
|
/**
|
|
2914
2811
|
* Returns the end offset of a given node in a Rich Text Editor based on its type and text content.
|
|
2915
2812
|
*
|
|
@@ -3828,8 +3725,8 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3828
3725
|
*/
|
|
3829
3726
|
insertBlocksToContent(blocks) {
|
|
3830
3727
|
const cursorNode = this.removeSelectionRange();
|
|
3831
|
-
|
|
3832
|
-
|
|
3728
|
+
if (cursorNode && cursorNode.parentBlock) {
|
|
3729
|
+
const currentBlock = cursorNode.parentBlock;
|
|
3833
3730
|
const { startOffset } = this.selectionController.getCurrentRange();
|
|
3834
3731
|
const breakAction = new contentState.SplitBlockWithNodeAction(cursorNode, startOffset);
|
|
3835
3732
|
currentBlock.apply(breakAction);
|
|
@@ -3877,13 +3774,13 @@ class InsertPasteHandler extends BaseHandler {
|
|
|
3877
3774
|
}
|
|
3878
3775
|
}
|
|
3879
3776
|
|
|
3880
|
-
var __decorate$
|
|
3777
|
+
var __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
3881
3778
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3882
3779
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
3883
3780
|
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;
|
|
3884
3781
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
3885
3782
|
};
|
|
3886
|
-
/** Used to monitoring the user input actions by event listener
|
|
3783
|
+
/** Used to monitoring the user input actions by event listener */
|
|
3887
3784
|
class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
|
|
3888
3785
|
constructor() {
|
|
3889
3786
|
super(...arguments);
|
|
@@ -3892,91 +3789,47 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3892
3789
|
this.insertLineBreakHandler = new InsertLineBreakHandler();
|
|
3893
3790
|
this.deleteContentHandler = new DeleteContentHandler();
|
|
3894
3791
|
this.insertPasteHandler = new InsertPasteHandler();
|
|
3895
|
-
this.observerOptions = {
|
|
3896
|
-
characterData: true,
|
|
3897
|
-
characterDataOldValue: true,
|
|
3898
|
-
subtree: true,
|
|
3899
|
-
childList: true,
|
|
3900
|
-
};
|
|
3901
3792
|
/**
|
|
3902
3793
|
* When a user performs an input action within the editable element, this function is triggered.
|
|
3903
3794
|
*
|
|
3904
3795
|
* @param {InputEvent} e the before input event object
|
|
3905
3796
|
*/
|
|
3906
3797
|
this.handleUserInputAction = (e) => {
|
|
3907
|
-
|
|
3798
|
+
const inputType = e.inputType;
|
|
3908
3799
|
e.preventDefault();
|
|
3909
3800
|
this.initValueIfEmpty();
|
|
3801
|
+
// The insertCompositionText type input event can not be prevented, so we process the current action by insertCompositionTextController.
|
|
3802
|
+
if (inputType === 'insertCompositionText') {
|
|
3803
|
+
return;
|
|
3804
|
+
}
|
|
3805
|
+
this.insertCompositionTextController.removeObserver();
|
|
3910
3806
|
let updateFlag = false;
|
|
3911
|
-
switch (
|
|
3807
|
+
switch (inputType) {
|
|
3912
3808
|
case 'insertParagraph':
|
|
3913
3809
|
updateFlag = true;
|
|
3914
|
-
this.insertParagraphHandler.execute(this.value, this.selectionController, e);
|
|
3810
|
+
this.insertParagraphHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3915
3811
|
break;
|
|
3916
3812
|
case 'insertText':
|
|
3917
3813
|
updateFlag = true;
|
|
3918
|
-
this.insertTextHandler.execute(this.value, this.selectionController, e);
|
|
3814
|
+
this.insertTextHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3919
3815
|
break;
|
|
3920
3816
|
case 'insertLineBreak':
|
|
3921
3817
|
updateFlag = true;
|
|
3922
|
-
this.insertLineBreakHandler.execute(this.value, this.selectionController, e);
|
|
3818
|
+
this.insertLineBreakHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3923
3819
|
break;
|
|
3924
3820
|
case 'deleteContentBackward':
|
|
3925
3821
|
updateFlag = true;
|
|
3926
|
-
this.deleteContentHandler.execute(this.value, this.selectionController, e);
|
|
3822
|
+
this.deleteContentHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3927
3823
|
break;
|
|
3928
3824
|
case 'insertFromPaste':
|
|
3929
3825
|
updateFlag = true;
|
|
3930
|
-
this.insertPasteHandler.execute(this.value, this.selectionController, e);
|
|
3826
|
+
this.insertPasteHandler.execute(this.value, this.selectionController, this.host, e);
|
|
3931
3827
|
break;
|
|
3932
3828
|
}
|
|
3933
3829
|
if (updateFlag) {
|
|
3934
3830
|
this.notifyComponentFlushValue();
|
|
3935
3831
|
}
|
|
3936
3832
|
};
|
|
3937
|
-
/**
|
|
3938
|
-
* Processes mutation records related to character data and updates the text content of a rich text node accordingly.
|
|
3939
|
-
*
|
|
3940
|
-
* @param {MutationRecord[]} records - Each `MutationRecord` object represents a single mutation that occurred in the DOM.
|
|
3941
|
-
*/
|
|
3942
|
-
this.handleObserver = (records) => {
|
|
3943
|
-
let updateFlag = false;
|
|
3944
|
-
if (records.every((record) => record.type === 'characterData')) {
|
|
3945
|
-
records.forEach((record) => {
|
|
3946
|
-
const { target } = record;
|
|
3947
|
-
if (target.nodeType === Node.TEXT_NODE && target.parentElement) {
|
|
3948
|
-
const richTextNode = nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(target.parentElement);
|
|
3949
|
-
if (richTextNode && richTextNode['text'] !== target.textContent) {
|
|
3950
|
-
updateFlag = true;
|
|
3951
|
-
richTextNode['text'] = target.textContent;
|
|
3952
|
-
}
|
|
3953
|
-
}
|
|
3954
|
-
});
|
|
3955
|
-
if (updateFlag) {
|
|
3956
|
-
this.notifyComponentFlushValue();
|
|
3957
|
-
}
|
|
3958
|
-
}
|
|
3959
|
-
};
|
|
3960
|
-
}
|
|
3961
|
-
/**
|
|
3962
|
-
* The function `initMutationObserver` initializes a MutationObserver on an editable HTML element if it exists.
|
|
3963
|
-
*/
|
|
3964
|
-
initMutationObserver() {
|
|
3965
|
-
if (this.mutationObserver) {
|
|
3966
|
-
const editableElement = this.getEditableElementRef();
|
|
3967
|
-
if (editableElement) {
|
|
3968
|
-
this.mutationObserver.disconnect();
|
|
3969
|
-
this.mutationObserver.observe(editableElement, this.observerOptions);
|
|
3970
|
-
}
|
|
3971
|
-
}
|
|
3972
|
-
}
|
|
3973
|
-
/**
|
|
3974
|
-
* Disconnects the mutation observer if it exists.
|
|
3975
|
-
*/
|
|
3976
|
-
removeObserver() {
|
|
3977
|
-
if (this.mutationObserver) {
|
|
3978
|
-
this.mutationObserver.disconnect();
|
|
3979
|
-
}
|
|
3980
3833
|
}
|
|
3981
3834
|
/**
|
|
3982
3835
|
* Adds event listener to an editable HTML element to handle user input actions.
|
|
@@ -3987,8 +3840,6 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3987
3840
|
editableElement.addEventListener('beforeinput', this.handleUserInputAction);
|
|
3988
3841
|
editableElement.addEventListener('drop', this.preventDropEvent);
|
|
3989
3842
|
}
|
|
3990
|
-
this.mutationObserver = new MutationObserver(this.handleObserver);
|
|
3991
|
-
this.initMutationObserver();
|
|
3992
3843
|
}
|
|
3993
3844
|
/**
|
|
3994
3845
|
* Removes event listener for user input actions from an editable HTML div element.
|
|
@@ -3999,13 +3850,6 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
3999
3850
|
editableElement.removeEventListener('beforeinput', this.handleUserInputAction);
|
|
4000
3851
|
editableElement.removeEventListener('drop', this.preventDropEvent);
|
|
4001
3852
|
}
|
|
4002
|
-
this.removeObserver();
|
|
4003
|
-
}
|
|
4004
|
-
/**
|
|
4005
|
-
* re-connect the observer after the props change and component did render
|
|
4006
|
-
*/
|
|
4007
|
-
reConnectObserver() {
|
|
4008
|
-
this.initMutationObserver();
|
|
4009
3853
|
}
|
|
4010
3854
|
/**
|
|
4011
3855
|
* The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
|
|
@@ -4045,30 +3889,30 @@ class UserInputController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4045
3889
|
}
|
|
4046
3890
|
}
|
|
4047
3891
|
}
|
|
4048
|
-
__decorate$
|
|
3892
|
+
__decorate$c([
|
|
4049
3893
|
globalSlimmerRegistry.MapToComponentField()
|
|
4050
3894
|
], UserInputController.prototype, "host", void 0);
|
|
4051
|
-
__decorate$
|
|
3895
|
+
__decorate$c([
|
|
4052
3896
|
globalSlimmerRegistry.MapToComponentField()
|
|
4053
3897
|
], UserInputController.prototype, "value", void 0);
|
|
4054
|
-
__decorate$
|
|
3898
|
+
__decorate$c([
|
|
4055
3899
|
globalSlimmerRegistry.MapToComponentField()
|
|
4056
3900
|
], UserInputController.prototype, "valueController", void 0);
|
|
4057
|
-
__decorate$
|
|
3901
|
+
__decorate$c([
|
|
4058
3902
|
globalSlimmerRegistry.MapToComponentField()
|
|
4059
3903
|
], UserInputController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4060
|
-
__decorate$
|
|
3904
|
+
__decorate$c([
|
|
4061
3905
|
globalSlimmerRegistry.MapToComponentField()
|
|
4062
3906
|
], UserInputController.prototype, "selectionController", void 0);
|
|
4063
|
-
__decorate$
|
|
3907
|
+
__decorate$c([
|
|
3908
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
3909
|
+
], UserInputController.prototype, "insertCompositionTextController", void 0);
|
|
3910
|
+
__decorate$c([
|
|
4064
3911
|
globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
|
|
4065
3912
|
], UserInputController.prototype, "addActionListener", null);
|
|
4066
|
-
__decorate$
|
|
3913
|
+
__decorate$c([
|
|
4067
3914
|
globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
|
|
4068
3915
|
], UserInputController.prototype, "removeActionListener", null);
|
|
4069
|
-
__decorate$a([
|
|
4070
|
-
globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
|
|
4071
|
-
], UserInputController.prototype, "reConnectObserver", null);
|
|
4072
3916
|
|
|
4073
3917
|
/**
|
|
4074
3918
|
* A rule that checks if the input range is empty or not
|
|
@@ -4144,7 +3988,7 @@ class InsertImageToBlockAction extends nodeAnnotation_abstract.ModifyContentActi
|
|
|
4144
3988
|
}
|
|
4145
3989
|
}
|
|
4146
3990
|
|
|
4147
|
-
var __decorate$
|
|
3991
|
+
var __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4148
3992
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4149
3993
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4150
3994
|
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;
|
|
@@ -4233,26 +4077,26 @@ class InsertImageController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4233
4077
|
}
|
|
4234
4078
|
}
|
|
4235
4079
|
}
|
|
4236
|
-
__decorate$
|
|
4080
|
+
__decorate$b([
|
|
4237
4081
|
globalSlimmerRegistry.MapToComponentField()
|
|
4238
4082
|
], InsertImageController.prototype, "selectionController", void 0);
|
|
4239
|
-
__decorate$
|
|
4083
|
+
__decorate$b([
|
|
4240
4084
|
globalSlimmerRegistry.MapToComponentField()
|
|
4241
4085
|
], InsertImageController.prototype, "value", void 0);
|
|
4242
|
-
__decorate$
|
|
4086
|
+
__decorate$b([
|
|
4243
4087
|
globalSlimmerRegistry.MapToComponentField()
|
|
4244
4088
|
], InsertImageController.prototype, "valueController", void 0);
|
|
4245
|
-
__decorate$
|
|
4089
|
+
__decorate$b([
|
|
4246
4090
|
globalSlimmerRegistry.MapToComponentField()
|
|
4247
4091
|
], InsertImageController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4248
|
-
__decorate$
|
|
4092
|
+
__decorate$b([
|
|
4249
4093
|
globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
|
|
4250
4094
|
], InsertImageController.prototype, "registerObserver", null);
|
|
4251
|
-
__decorate$
|
|
4095
|
+
__decorate$b([
|
|
4252
4096
|
globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
|
|
4253
4097
|
], InsertImageController.prototype, "unRegisterObserver", null);
|
|
4254
4098
|
|
|
4255
|
-
var __decorate$
|
|
4099
|
+
var __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4256
4100
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4257
4101
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4258
4102
|
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;
|
|
@@ -4308,20 +4152,20 @@ class FocusController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4308
4152
|
this.selectionController.setSelectionRange(range);
|
|
4309
4153
|
}
|
|
4310
4154
|
}
|
|
4311
|
-
__decorate$
|
|
4155
|
+
__decorate$a([
|
|
4312
4156
|
globalSlimmerRegistry.MapToComponentField()
|
|
4313
4157
|
], FocusController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4314
|
-
__decorate$
|
|
4158
|
+
__decorate$a([
|
|
4315
4159
|
globalSlimmerRegistry.MapToComponentField()
|
|
4316
4160
|
], FocusController.prototype, "selectionController", void 0);
|
|
4317
|
-
__decorate$
|
|
4161
|
+
__decorate$a([
|
|
4318
4162
|
globalSlimmerRegistry.MapToComponentField()
|
|
4319
4163
|
], FocusController.prototype, "valueController", void 0);
|
|
4320
|
-
__decorate$
|
|
4164
|
+
__decorate$a([
|
|
4321
4165
|
globalSlimmerRegistry.MapToComponentField()
|
|
4322
4166
|
], FocusController.prototype, "value", void 0);
|
|
4323
4167
|
|
|
4324
|
-
var __decorate$
|
|
4168
|
+
var __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4325
4169
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4326
4170
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4327
4171
|
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;
|
|
@@ -4361,46 +4205,461 @@ class TextNodeColorController extends globalSlimmerRegistry.VegaSlimmer {
|
|
|
4361
4205
|
return true;
|
|
4362
4206
|
}
|
|
4363
4207
|
}
|
|
4364
|
-
__decorate$
|
|
4208
|
+
__decorate$9([
|
|
4365
4209
|
globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
|
|
4366
4210
|
], TextNodeColorController.prototype, "connectedCallback", null);
|
|
4367
|
-
__decorate$
|
|
4211
|
+
__decorate$9([
|
|
4368
4212
|
globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
|
|
4369
4213
|
], TextNodeColorController.prototype, "disconnectResizeObserver", null);
|
|
4370
4214
|
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4215
|
+
var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4374
4216
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4375
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
4376
|
-
|
|
4377
|
-
else
|
|
4378
|
-
for (var i = decorators.length - 1; i >= 0; i--)
|
|
4379
|
-
if (d = decorators[i])
|
|
4380
|
-
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
4217
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4218
|
+
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;
|
|
4381
4219
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4382
4220
|
};
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
this.
|
|
4388
|
-
this.
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4221
|
+
/** Handles inserting composition text into a VegaRTEContent based on the current selection and input event. User input character will trigger this callback */
|
|
4222
|
+
class InsertCompositionTextController extends globalSlimmerRegistry.VegaSlimmer {
|
|
4223
|
+
constructor() {
|
|
4224
|
+
super(...arguments);
|
|
4225
|
+
this.insertCompositionTextEndFlag = true;
|
|
4226
|
+
this.observerOptions = {
|
|
4227
|
+
characterData: true,
|
|
4228
|
+
characterDataOldValue: true,
|
|
4229
|
+
subtree: true,
|
|
4230
|
+
childList: true,
|
|
4231
|
+
};
|
|
4232
|
+
/**
|
|
4233
|
+
* The current method is called when the insert text is update by the Pinyin input or the word correction plugin.
|
|
4234
|
+
*
|
|
4235
|
+
* @param {MutationRecord[]} records - The mutation record object array.
|
|
4236
|
+
*/
|
|
4237
|
+
this.updateTextFromDom = (records) => {
|
|
4238
|
+
let updateFlag = false;
|
|
4239
|
+
if (this.insertCompositionTextEndFlag !== false) {
|
|
4240
|
+
records.forEach((record) => {
|
|
4241
|
+
const { target, oldValue } = record;
|
|
4242
|
+
if (target.nodeType === Node.TEXT_NODE && target.parentElement) {
|
|
4243
|
+
const richTextNode = nodeAnnotation_abstract.stateEntityRenderingRegistry.getEntityByDOM(target.parentElement);
|
|
4244
|
+
const newValue = target.textContent;
|
|
4245
|
+
if (richTextNode instanceof contentState.RTETextNode) {
|
|
4246
|
+
updateFlag = this.updateCurrentNodeText(richTextNode, newValue, oldValue);
|
|
4247
|
+
}
|
|
4248
|
+
else if (newValue) {
|
|
4249
|
+
// The text element should removed if insert text to the image block.
|
|
4250
|
+
target.parentElement.removeChild(target);
|
|
4251
|
+
updateFlag = true;
|
|
4252
|
+
}
|
|
4253
|
+
}
|
|
4254
|
+
});
|
|
4255
|
+
}
|
|
4256
|
+
if (updateFlag) {
|
|
4257
|
+
void this.valueController.flushChanges(this.value);
|
|
4258
|
+
}
|
|
4259
|
+
};
|
|
4260
|
+
/**
|
|
4261
|
+
* Processes mutation records related to character data and updates the text content of a rich text node accordingly.
|
|
4262
|
+
*
|
|
4263
|
+
* @param {MutationRecord[]} records - Each `MutationRecord` object represents a single mutation that occurred in the DOM.
|
|
4264
|
+
*/
|
|
4265
|
+
this.handleObserver = (records) => {
|
|
4266
|
+
if (records.every((record) => record.type === 'characterData')) {
|
|
4267
|
+
this.updateTextFromDom(records);
|
|
4268
|
+
}
|
|
4269
|
+
};
|
|
4270
|
+
/**
|
|
4271
|
+
* An event handler function that is triggered when the composition of text input starts. In this case,
|
|
4272
|
+
* it sets the `insertCompositionTextEndFlag` property of the `UserInputController` class to `false`.
|
|
4273
|
+
*/
|
|
4274
|
+
this.handleCompositionStart = () => {
|
|
4275
|
+
this.insertCompositionTextEndFlag = false;
|
|
4276
|
+
changeManager.ChangeManager.notify(domNodeSubjectFactory.domNodeSubjectFactory.getSubject(this.host, vegaInternalEventId.VegaInternalRichTextEditDeleteSelectedNodes), { host: this.host, detail: true });
|
|
4277
|
+
};
|
|
4278
|
+
/**
|
|
4279
|
+
* An event handler function that is triggered when the composition of text input ends. In this case,
|
|
4280
|
+
* it sets the `insertCompositionTextEndFlag` property of the `UserInputController` class to `true`.
|
|
4281
|
+
*
|
|
4282
|
+
* @param {CompositionEvent} event The composition event instance
|
|
4283
|
+
*/
|
|
4284
|
+
this.handleCompositionEnd = (event) => {
|
|
4285
|
+
this.insertCompositionTextEndFlag = true;
|
|
4286
|
+
const insertData = event.data;
|
|
4287
|
+
if (insertData) {
|
|
4288
|
+
this.dispatchInsertTextEvent(insertData);
|
|
4289
|
+
}
|
|
4290
|
+
};
|
|
4291
|
+
}
|
|
4292
|
+
/**
|
|
4293
|
+
* The function `initMutationObserver` initializes a MutationObserver on an editable HTML element if it exists.
|
|
4294
|
+
*/
|
|
4295
|
+
initMutationObserver() {
|
|
4296
|
+
if (this.mutationObserver) {
|
|
4297
|
+
const editableElement = this.getEditableElementRef();
|
|
4298
|
+
if (editableElement) {
|
|
4299
|
+
this.mutationObserver.disconnect();
|
|
4300
|
+
this.mutationObserver.observe(editableElement, this.observerOptions);
|
|
4301
|
+
}
|
|
4302
|
+
}
|
|
4303
|
+
}
|
|
4304
|
+
/**
|
|
4305
|
+
* Disconnects the mutation observer if it exists.
|
|
4306
|
+
*/
|
|
4307
|
+
removeObserver() {
|
|
4308
|
+
if (this.mutationObserver) {
|
|
4309
|
+
this.mutationObserver.disconnect();
|
|
4310
|
+
}
|
|
4311
|
+
}
|
|
4312
|
+
/**
|
|
4313
|
+
* The method is to get the composition text insert end or not.
|
|
4314
|
+
*
|
|
4315
|
+
* @returns {boolean} The false is main that insert composition text process is end.
|
|
4316
|
+
*/
|
|
4317
|
+
isComposing() {
|
|
4318
|
+
return !this.insertCompositionTextEndFlag;
|
|
4319
|
+
}
|
|
4320
|
+
/**
|
|
4321
|
+
* Adds event listener to an editable HTML element to handle composition text insert actions.
|
|
4322
|
+
*/
|
|
4323
|
+
addCompositionTextEventListener() {
|
|
4324
|
+
const editableElement = this.getEditableElementRef();
|
|
4325
|
+
if (editableElement) {
|
|
4326
|
+
editableElement.addEventListener('compositionstart', this.handleCompositionStart);
|
|
4327
|
+
editableElement.addEventListener('compositionend', this.handleCompositionEnd);
|
|
4328
|
+
}
|
|
4329
|
+
this.mutationObserver = new MutationObserver(this.handleObserver);
|
|
4330
|
+
this.initMutationObserver();
|
|
4331
|
+
}
|
|
4332
|
+
/**
|
|
4333
|
+
* Removes event listener to an editable HTML element to handle composition text insert actions.
|
|
4334
|
+
*/
|
|
4335
|
+
removeCompositionTextEventListener() {
|
|
4336
|
+
const editableElement = this.getEditableElementRef();
|
|
4337
|
+
if (editableElement) {
|
|
4338
|
+
editableElement.removeEventListener('compositionstart', this.handleCompositionStart);
|
|
4339
|
+
editableElement.removeEventListener('compositionend', this.handleCompositionEnd);
|
|
4340
|
+
}
|
|
4341
|
+
this.removeObserver();
|
|
4342
|
+
}
|
|
4343
|
+
/**
|
|
4344
|
+
* re-connect the observer after the props change and component did render
|
|
4345
|
+
*/
|
|
4346
|
+
reConnectObserver() {
|
|
4347
|
+
this.initMutationObserver();
|
|
4348
|
+
}
|
|
4349
|
+
/**
|
|
4350
|
+
* Insert text to a line break node need a special logic if the line break has a next text node.
|
|
4351
|
+
*
|
|
4352
|
+
* @param {RTETextNode} currentNode The current line break node, the text value is \n
|
|
4353
|
+
*/
|
|
4354
|
+
appendLineBreakNode(currentNode) {
|
|
4355
|
+
const textBlock = currentNode.parentBlock;
|
|
4356
|
+
const index = textBlock.nodes.indexOf(currentNode);
|
|
4357
|
+
if (textBlock.nodes[index + 1]) {
|
|
4358
|
+
const newTextNode = currentNode.cloneWithText('\n');
|
|
4359
|
+
textBlock.apply(new InsertNodesBeforeAction(textBlock.nodes[index + 1], newTextNode));
|
|
4360
|
+
}
|
|
4361
|
+
}
|
|
4362
|
+
/**
|
|
4363
|
+
* Updates the text content of a rich text node and handles line breaks.
|
|
4364
|
+
*
|
|
4365
|
+
* @param {RTETextNode} richTextNode - The current rich text node.
|
|
4366
|
+
* @param {string} newValue - The target element textContent
|
|
4367
|
+
* @param {Nullable<string>} oldValue - The target element old textContent
|
|
4368
|
+
* @returns {Nullable<boolean>} The node text is updated or not
|
|
4369
|
+
*/
|
|
4370
|
+
updateCurrentNodeText(richTextNode, newValue, oldValue) {
|
|
4371
|
+
const insertText = this.removeZeroWidthSpace(newValue.replace(/(\n)$/, ''));
|
|
4372
|
+
if (richTextNode.text !== insertText) {
|
|
4373
|
+
const { startOffset } = this.selectionController.getCurrentRange();
|
|
4374
|
+
const currentIsLineBreakNode = richTextNode.text === '\n';
|
|
4375
|
+
richTextNode.apply(new contentState.UpdateTextAction(insertText));
|
|
4376
|
+
if (currentIsLineBreakNode) {
|
|
4377
|
+
this.appendLineBreakNode(richTextNode);
|
|
4378
|
+
}
|
|
4379
|
+
const lengthGap = oldValue ? oldValue.length - newValue.length : 0;
|
|
4380
|
+
const newOffset = Math.min(insertText.length, startOffset - lengthGap);
|
|
4381
|
+
this.selectionController.enqueueSelectionRangeFutureState(richTextNode, Math.max(0, newOffset));
|
|
4382
|
+
return true;
|
|
4383
|
+
}
|
|
4384
|
+
}
|
|
4385
|
+
/**
|
|
4386
|
+
* The function `getEditableElementRef` returns a reference to the editable HTMLDivElement within a rich text editor.
|
|
4387
|
+
*
|
|
4388
|
+
* @returns {HTMLDivElement|null} A reference to an HTMLDivElement element that is editable.
|
|
4389
|
+
*/
|
|
4390
|
+
getEditableElementRef() {
|
|
4391
|
+
if (!this.editableElementRef) {
|
|
4392
|
+
this.editableElementRef = this.vegaRichTextEditorRenderer.getRTEEditableElementRef();
|
|
4393
|
+
}
|
|
4394
|
+
return this.editableElementRef;
|
|
4395
|
+
}
|
|
4396
|
+
/**
|
|
4397
|
+
* Remove the ZERO_WIDTH_SPACE from the text.
|
|
4398
|
+
*
|
|
4399
|
+
* @param {string} text The input text that could include ZERO_WIDTH_SPACE.
|
|
4400
|
+
* @returns {string} The result text.
|
|
4401
|
+
*/
|
|
4402
|
+
removeZeroWidthSpace(text) {
|
|
4403
|
+
if (text.startsWith(contentState.ZERO_WIDTH_SPACE)) {
|
|
4404
|
+
return text.slice(contentState.ZERO_WIDTH_SPACE.length);
|
|
4405
|
+
}
|
|
4406
|
+
else if (text.endsWith(contentState.ZERO_WIDTH_SPACE)) {
|
|
4407
|
+
return text.slice(0, text.length - contentState.ZERO_WIDTH_SPACE.length);
|
|
4408
|
+
}
|
|
4409
|
+
return text;
|
|
4410
|
+
}
|
|
4411
|
+
/**
|
|
4412
|
+
* Dispatch a insert text event to handle the composition text insert logic.
|
|
4413
|
+
*
|
|
4414
|
+
* @param {string} text - The text need to insert.
|
|
4415
|
+
*/
|
|
4416
|
+
dispatchInsertTextEvent(text) {
|
|
4417
|
+
const inputEvent = new CustomEvent('beforeinput');
|
|
4418
|
+
inputEvent['data'] = text;
|
|
4419
|
+
inputEvent['inputType'] = 'insertText';
|
|
4420
|
+
this.editableElementRef.dispatchEvent(inputEvent);
|
|
4421
|
+
}
|
|
4422
|
+
}
|
|
4423
|
+
__decorate$8([
|
|
4424
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4425
|
+
], InsertCompositionTextController.prototype, "selectionController", void 0);
|
|
4426
|
+
__decorate$8([
|
|
4427
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4428
|
+
], InsertCompositionTextController.prototype, "host", void 0);
|
|
4429
|
+
__decorate$8([
|
|
4430
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4431
|
+
], InsertCompositionTextController.prototype, "value", void 0);
|
|
4432
|
+
__decorate$8([
|
|
4433
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4434
|
+
], InsertCompositionTextController.prototype, "valueController", void 0);
|
|
4435
|
+
__decorate$8([
|
|
4436
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4437
|
+
], InsertCompositionTextController.prototype, "userInputController", void 0);
|
|
4438
|
+
__decorate$8([
|
|
4439
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4440
|
+
], InsertCompositionTextController.prototype, "vegaRichTextEditorRenderer", void 0);
|
|
4441
|
+
__decorate$8([
|
|
4442
|
+
globalSlimmerRegistry.MapToComponentMethod('componentDidLoad')
|
|
4443
|
+
], InsertCompositionTextController.prototype, "addCompositionTextEventListener", null);
|
|
4444
|
+
__decorate$8([
|
|
4445
|
+
globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
|
|
4446
|
+
], InsertCompositionTextController.prototype, "removeCompositionTextEventListener", null);
|
|
4447
|
+
__decorate$8([
|
|
4448
|
+
globalSlimmerRegistry.MapToComponentMethod('componentDidRender')
|
|
4449
|
+
], InsertCompositionTextController.prototype, "reConnectObserver", null);
|
|
4450
|
+
|
|
4451
|
+
var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4452
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4453
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4454
|
+
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;
|
|
4455
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4456
|
+
};
|
|
4457
|
+
/**
|
|
4458
|
+
* The `DeleteSelectedNodesController` class provides methods to delete selected nodes.
|
|
4459
|
+
*/
|
|
4460
|
+
class DeleteSelectedNodesController extends globalSlimmerRegistry.VegaSlimmer {
|
|
4461
|
+
constructor() {
|
|
4462
|
+
super(...arguments);
|
|
4463
|
+
/**
|
|
4464
|
+
* Deletes the selected nodes.
|
|
4465
|
+
*
|
|
4466
|
+
* @param {NotifyObserverPayload<boolean>} payload The notify payload
|
|
4467
|
+
* @param {boolean} payload.detail The delete process need merge start node and end node or not, default value is true.
|
|
4468
|
+
*/
|
|
4469
|
+
this.deleteActionProcess = (payload) => {
|
|
4470
|
+
const range = this.selectionController.getCurrentRange();
|
|
4471
|
+
const { startContainer, endContainer, startOffset, endOffset } = range;
|
|
4472
|
+
if (startContainer !== endContainer || startOffset !== endOffset) {
|
|
4473
|
+
const cursorNode = this.removeSelectionRange();
|
|
4474
|
+
const mergeStartAndEndFlag = payload && payload.detail ? payload.detail : false;
|
|
4475
|
+
if (mergeStartAndEndFlag) {
|
|
4476
|
+
this.mergeRangeStartAndEnd(startContainer, endContainer);
|
|
4477
|
+
}
|
|
4478
|
+
this.selectionController.enqueueSelectionRangeFutureState(cursorNode, range.startOffset);
|
|
4479
|
+
}
|
|
4480
|
+
};
|
|
4481
|
+
}
|
|
4482
|
+
/**
|
|
4483
|
+
* Adds the observer to the host element.
|
|
4484
|
+
*/
|
|
4485
|
+
addDeleteObserver() {
|
|
4486
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.addUniqueObserverToNode(this.host, vegaInternalEventId.VegaInternalRichTextEditDeleteSelectedNodes, this.deleteActionProcess);
|
|
4487
|
+
}
|
|
4488
|
+
/**
|
|
4489
|
+
* Removes the observer from the host element.
|
|
4490
|
+
*/
|
|
4491
|
+
removeDeleteObserver() {
|
|
4492
|
+
domNodeSubjectObserverFactory.DomNodeSubjectObserverFactory.removeUniqueObserverFromNode(this.host, vegaInternalEventId.VegaInternalRichTextEditDeleteSelectedNodes);
|
|
4493
|
+
}
|
|
4494
|
+
/**
|
|
4495
|
+
* Removes selected nodes within a range in a rich text editor content.
|
|
4496
|
+
* The method is only used for different nodes are selected
|
|
4497
|
+
*
|
|
4498
|
+
* @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.
|
|
4499
|
+
*/
|
|
4500
|
+
removeSelectionRange() {
|
|
4501
|
+
const range = this.selectionController.getCurrentRange();
|
|
4502
|
+
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
4503
|
+
const { endOffset, startOffset } = range;
|
|
4504
|
+
const startNode = selectedNodes[0];
|
|
4505
|
+
const endNode = selectedNodes[selectedNodes.length - 1];
|
|
4506
|
+
if (selectedNodes.length > 1) {
|
|
4507
|
+
// 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
|
|
4508
|
+
const shouldRemovedItems = selectedNodes.filter((item) => {
|
|
4509
|
+
if (item.type !== 'IMAGE') {
|
|
4510
|
+
return item !== startNode && item !== endNode;
|
|
4511
|
+
}
|
|
4512
|
+
else {
|
|
4513
|
+
return item !== startNode && (item !== endNode || (item === endNode && endOffset !== 0));
|
|
4514
|
+
}
|
|
4515
|
+
});
|
|
4516
|
+
shouldRemovedItems.forEach((item) => {
|
|
4517
|
+
item.parentBlock.apply(new contentState.RemoveChildAction(item));
|
|
4518
|
+
});
|
|
4519
|
+
}
|
|
4520
|
+
this.removeRangeStartAndEndSelectedText();
|
|
4521
|
+
/**
|
|
4522
|
+
* 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.
|
|
4523
|
+
* 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
|
|
4524
|
+
*/
|
|
4525
|
+
if (startNode instanceof contentState.RTEImageNode &&
|
|
4526
|
+
startOffset !== 1 &&
|
|
4527
|
+
(endNode !== startNode || endOffset !== 0)) {
|
|
4528
|
+
// the image block will be deleted when the image is the only item
|
|
4529
|
+
if (startNode.parentBlock.nodes.length === 1) {
|
|
4530
|
+
const paragraph = this.createEmptyParagraph();
|
|
4531
|
+
startNode.parentBlock.parent.apply(new contentState.InsertBlocksBeforeAction(startNode.parentBlock, paragraph));
|
|
4532
|
+
startNode.parentBlock.apply(new contentState.RemoveChildAction(startNode));
|
|
4533
|
+
return paragraph.nodes[0];
|
|
4534
|
+
}
|
|
4535
|
+
else if (startNode === startNode.parentBlock.nodes[0]) {
|
|
4536
|
+
// the start node should be the next image item if the image is first item
|
|
4537
|
+
startNode.parentBlock.apply(new contentState.RemoveChildAction(startNode));
|
|
4538
|
+
return startNode.parentBlock.nodes[0];
|
|
4539
|
+
}
|
|
4540
|
+
}
|
|
4541
|
+
return startNode;
|
|
4542
|
+
}
|
|
4543
|
+
/**
|
|
4544
|
+
* Removes the selected text at the start and end of a range in a Rich Text Editor.
|
|
4545
|
+
*/
|
|
4546
|
+
removeRangeStartAndEndSelectedText() {
|
|
4547
|
+
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
4548
|
+
const currentRange = this.selectionController.getCurrentRange();
|
|
4549
|
+
if (selectedNodes[0] instanceof contentState.RTETextNode) {
|
|
4550
|
+
selectedNodes[0].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
4551
|
+
}
|
|
4552
|
+
if (selectedNodes.length > 1 && selectedNodes[selectedNodes.length - 1] instanceof contentState.RTETextNode) {
|
|
4553
|
+
selectedNodes[selectedNodes.length - 1].apply(new ReplaceSelectedTextAction('', currentRange));
|
|
4554
|
+
}
|
|
4555
|
+
}
|
|
4556
|
+
/**
|
|
4557
|
+
* Creates a new paragraph with an empty text node and returns it.
|
|
4558
|
+
*
|
|
4559
|
+
* @returns {RTETextBlock} An empty paragraph with a unique identifier and a text node appended to it.
|
|
4560
|
+
*/
|
|
4561
|
+
createEmptyParagraph() {
|
|
4562
|
+
const paragraph = new contentState.RTETextBlock(createPublicApiRuntimeMetricsSlimmer.generateUUID(), 'paragraph');
|
|
4563
|
+
const textNode = new contentState.RTETextNode(`${paragraph.id}1`, '', paragraph);
|
|
4564
|
+
paragraph.apply(new contentState.AppendChildNodesAction([textNode]));
|
|
4565
|
+
return paragraph;
|
|
4566
|
+
}
|
|
4567
|
+
/**
|
|
4568
|
+
* Merges text nodes in a rich text editor.
|
|
4569
|
+
*
|
|
4570
|
+
* @param {Node} startContainer - Start text node element
|
|
4571
|
+
* @param {Node} endContainer - End text node element
|
|
4572
|
+
*/
|
|
4573
|
+
mergeRangeStartAndEnd(startContainer, endContainer) {
|
|
4574
|
+
if (startContainer !== endContainer) {
|
|
4575
|
+
if (startContainer.nodeType === Node.TEXT_NODE && endContainer.nodeType === Node.TEXT_NODE) {
|
|
4576
|
+
const selectedNodes = this.selectionController.getSelectedNodes();
|
|
4577
|
+
const startRTENode = selectedNodes[0];
|
|
4578
|
+
const endRTENode = selectedNodes[selectedNodes.length - 1];
|
|
4579
|
+
if (startRTENode && startRTENode.parentBlock && endRTENode && endRTENode.parentBlock) {
|
|
4580
|
+
const endBlock = endRTENode.parentBlock;
|
|
4581
|
+
if (this.shouldMergeTextNode(startRTENode, endRTENode)) {
|
|
4582
|
+
startRTENode.apply(new contentState.UpdateTextAction(startRTENode.text + endRTENode.text));
|
|
4583
|
+
if (startRTENode.parentBlock === endRTENode.parentBlock) {
|
|
4584
|
+
startRTENode.parentBlock.apply(new contentState.RemoveChildAction(endRTENode));
|
|
4585
|
+
}
|
|
4586
|
+
else {
|
|
4587
|
+
endRTENode.parentBlock.apply(new contentState.RemoveChildAction(endRTENode.parentBlock.nodes[0]));
|
|
4588
|
+
}
|
|
4589
|
+
}
|
|
4590
|
+
if (startRTENode.parentBlock !== endRTENode.parentBlock) {
|
|
4591
|
+
startRTENode.parentBlock.apply(new contentState.AppendChildNodesAction(endBlock.nodes));
|
|
4592
|
+
endBlock.nodes = [];
|
|
4593
|
+
}
|
|
4594
|
+
if (endBlock.nodes.length < 1) {
|
|
4595
|
+
endBlock.parent.apply(new contentState.RemoveChildAction(endBlock));
|
|
4596
|
+
}
|
|
4597
|
+
}
|
|
4598
|
+
}
|
|
4599
|
+
}
|
|
4600
|
+
}
|
|
4601
|
+
/**
|
|
4602
|
+
* Compares the annotations of two RTETextNodes to determine if they can be merged.
|
|
4603
|
+
*
|
|
4604
|
+
* @param {RTETextNode} nodeA - node A
|
|
4605
|
+
* @param {RTETextNode} nodeB - node B
|
|
4606
|
+
* @returns {boolean} true or false
|
|
4607
|
+
*/
|
|
4608
|
+
shouldMergeTextNode(nodeA, nodeB) {
|
|
4609
|
+
const { annotations: annotationsA } = nodeA.toJSON();
|
|
4610
|
+
const { annotations: annotationsB } = nodeB.toJSON();
|
|
4611
|
+
return JSON.stringify(annotationsA) === JSON.stringify(annotationsB);
|
|
4612
|
+
}
|
|
4613
|
+
}
|
|
4614
|
+
__decorate$7([
|
|
4615
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4616
|
+
], DeleteSelectedNodesController.prototype, "host", void 0);
|
|
4617
|
+
__decorate$7([
|
|
4618
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4619
|
+
], DeleteSelectedNodesController.prototype, "selectionController", void 0);
|
|
4620
|
+
__decorate$7([
|
|
4621
|
+
globalSlimmerRegistry.MapToComponentField()
|
|
4622
|
+
], DeleteSelectedNodesController.prototype, "value", void 0);
|
|
4623
|
+
__decorate$7([
|
|
4624
|
+
globalSlimmerRegistry.MapToComponentMethod('connectedCallback')
|
|
4625
|
+
], DeleteSelectedNodesController.prototype, "addDeleteObserver", null);
|
|
4626
|
+
__decorate$7([
|
|
4627
|
+
globalSlimmerRegistry.MapToComponentMethod('disconnectedCallback')
|
|
4628
|
+
], DeleteSelectedNodesController.prototype, "removeDeleteObserver", null);
|
|
4629
|
+
|
|
4630
|
+
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}";
|
|
4631
|
+
|
|
4632
|
+
var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
4633
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4634
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
4635
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
4636
|
+
else
|
|
4637
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
4638
|
+
if (d = decorators[i])
|
|
4639
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
4640
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
4641
|
+
};
|
|
4642
|
+
const VegaRichTextEditor = class {
|
|
4643
|
+
constructor(hostRef) {
|
|
4644
|
+
index.registerInstance(this, hostRef);
|
|
4645
|
+
this.vegaChange = index.createEvent(this, "vegaChange", 7);
|
|
4646
|
+
this.change = index.createEvent(this, "change", 7);
|
|
4647
|
+
this.vegaImageInserted = index.createEvent(this, "vegaImageInserted", 7);
|
|
4648
|
+
this.imageInserted = index.createEvent(this, "imageInserted", 7);
|
|
4649
|
+
this.globalSlimmers = {};
|
|
4650
|
+
this.vegaComponentUsageRuntimeMetricsSlimmer = new componentUsageRuntimeMetrics.VegaComponentUsageRuntimeMetricsSlimmer();
|
|
4651
|
+
this.formFieldController = new formFieldControllerSlimmer.FormFieldControllerSlimmer({
|
|
4652
|
+
propertyRules: [
|
|
4653
|
+
{
|
|
4654
|
+
propertyName: 'required',
|
|
4655
|
+
ruleFactory: (isRequired) => isRequired ? new RichTextEditorRequiredRule() : null,
|
|
4656
|
+
},
|
|
4657
|
+
],
|
|
4658
|
+
validationRulesName: 'validationRules',
|
|
4659
|
+
defaultValue: null,
|
|
4660
|
+
attributeGetter: (propertyName) => this[propertyName],
|
|
4661
|
+
inputContainerGetter: () => this.vegaRichTextEditorRenderer.getRichTextContainerRef(),
|
|
4662
|
+
touchableAreaGetter: () => [this.vegaRichTextEditorRenderer.getRichTextContentRef()],
|
|
4404
4663
|
});
|
|
4405
4664
|
this.changeEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, domNodeSubjectFactory.VegaChange);
|
|
4406
4665
|
this.vegaRichTextEditorRenderer = new VegaRichTextEditorRenderer();
|
|
@@ -4428,9 +4687,11 @@ const VegaRichTextEditor = class {
|
|
|
4428
4687
|
this.richTextContentController = new RichTextContentController(this);
|
|
4429
4688
|
this.userInputController = new UserInputController();
|
|
4430
4689
|
this.insertImageController = new InsertImageController();
|
|
4690
|
+
this.insertCompositionTextController = new InsertCompositionTextController();
|
|
4431
4691
|
this.imageInsertedEventEmitter = eventEmitSlimmer.createEventEmitSlimmer(VegaRichTextEditor, domNodeSubjectFactory.VegaImageInserted);
|
|
4432
4692
|
this.changeEventPreventSlimmer = new childNodesEventPreventSlimmer.ChildNodesEventPreventSlimmer([domNodeSubjectFactory.VegaChange], () => this.vegaRichTextEditorRenderer.getRichTextWrapperRef());
|
|
4433
4693
|
this.textNodeColorController = new TextNodeColorController();
|
|
4694
|
+
this.deleteSelectedNodesController = new DeleteSelectedNodesController();
|
|
4434
4695
|
this.richTextContentEditable = true;
|
|
4435
4696
|
this.selectionMap = new Map();
|
|
4436
4697
|
this.isInDarkMode = nodeAnnotation_abstract.VegaThemeManager.isDarkMode();
|
|
@@ -4484,6 +4745,7 @@ const VegaRichTextEditor = class {
|
|
|
4484
4745
|
* Only in exceptional cases should the original data in the VegaRTEContentBlock type be used.
|
|
4485
4746
|
*
|
|
4486
4747
|
* @vegaVersion 2.34.0
|
|
4748
|
+
* @defaultValue [{id:'UUID', type:'paragraph', nodes:[{id: 'UUID',type: 'text',text:''}]}]
|
|
4487
4749
|
*/
|
|
4488
4750
|
// eslint-disable-next-line @stencil/strict-mutable
|
|
4489
4751
|
this.value = contentState.VegaRTEContent.createEmptyContent();
|
|
@@ -4636,6 +4898,9 @@ __decorate$6([
|
|
|
4636
4898
|
__decorate$6([
|
|
4637
4899
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
4638
4900
|
], VegaRichTextEditor.prototype, "insertImageController", void 0);
|
|
4901
|
+
__decorate$6([
|
|
4902
|
+
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
4903
|
+
], VegaRichTextEditor.prototype, "insertCompositionTextController", void 0);
|
|
4639
4904
|
__decorate$6([
|
|
4640
4905
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
4641
4906
|
], VegaRichTextEditor.prototype, "imageInsertedEventEmitter", void 0);
|
|
@@ -4645,6 +4910,9 @@ __decorate$6([
|
|
|
4645
4910
|
__decorate$6([
|
|
4646
4911
|
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
4647
4912
|
], VegaRichTextEditor.prototype, "textNodeColorController", void 0);
|
|
4913
|
+
__decorate$6([
|
|
4914
|
+
globalSlimmerRegistry.InjectVegaSlimmer()
|
|
4915
|
+
], VegaRichTextEditor.prototype, "deleteSelectedNodesController", void 0);
|
|
4648
4916
|
VegaRichTextEditor.style = vegaRichTextEditorCss;
|
|
4649
4917
|
|
|
4650
4918
|
var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|