roosterjs-editor-adapter 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +25 -0
- package/README.md +262 -0
- package/lib/corePlugins/BridgePlugin.d.ts +73 -0
- package/lib/corePlugins/BridgePlugin.js +124 -0
- package/lib/corePlugins/BridgePlugin.js.map +1 -0
- package/lib/corePlugins/EditPlugin.d.ts +6 -0
- package/lib/corePlugins/EditPlugin.js +89 -0
- package/lib/corePlugins/EditPlugin.js.map +1 -0
- package/lib/editor/DarkColorHandlerImpl.d.ts +6 -0
- package/lib/editor/DarkColorHandlerImpl.js +134 -0
- package/lib/editor/DarkColorHandlerImpl.js.map +1 -0
- package/lib/editor/EditorAdapter.d.ts +341 -0
- package/lib/editor/EditorAdapter.js +843 -0
- package/lib/editor/EditorAdapter.js.map +1 -0
- package/lib/editor/utils/buildRangeEx.d.ts +5 -0
- package/lib/editor/utils/buildRangeEx.js +81 -0
- package/lib/editor/utils/buildRangeEx.js.map +1 -0
- package/lib/editor/utils/eventConverter.d.ts +15 -0
- package/lib/editor/utils/eventConverter.js +463 -0
- package/lib/editor/utils/eventConverter.js.map +1 -0
- package/lib/editor/utils/insertNode.d.ts +7 -0
- package/lib/editor/utils/insertNode.js +147 -0
- package/lib/editor/utils/insertNode.js.map +1 -0
- package/lib/editor/utils/selectionConverter.d.ts +10 -0
- package/lib/editor/utils/selectionConverter.js +79 -0
- package/lib/editor/utils/selectionConverter.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -0
- package/lib/publicTypes/BeforePasteAdapterEvent.d.ts +15 -0
- package/lib/publicTypes/BeforePasteAdapterEvent.js +3 -0
- package/lib/publicTypes/BeforePasteAdapterEvent.js.map +1 -0
- package/lib/publicTypes/EditorAdapterOptions.d.ts +20 -0
- package/lib/publicTypes/EditorAdapterOptions.js +3 -0
- package/lib/publicTypes/EditorAdapterOptions.js.map +1 -0
- package/lib-amd/corePlugins/BridgePlugin.d.ts +73 -0
- package/lib-amd/corePlugins/BridgePlugin.js +122 -0
- package/lib-amd/corePlugins/BridgePlugin.js.map +1 -0
- package/lib-amd/corePlugins/EditPlugin.d.ts +6 -0
- package/lib-amd/corePlugins/EditPlugin.js +90 -0
- package/lib-amd/corePlugins/EditPlugin.js.map +1 -0
- package/lib-amd/editor/DarkColorHandlerImpl.d.ts +6 -0
- package/lib-amd/editor/DarkColorHandlerImpl.js +135 -0
- package/lib-amd/editor/DarkColorHandlerImpl.js.map +1 -0
- package/lib-amd/editor/EditorAdapter.d.ts +341 -0
- package/lib-amd/editor/EditorAdapter.js +836 -0
- package/lib-amd/editor/EditorAdapter.js.map +1 -0
- package/lib-amd/editor/utils/buildRangeEx.d.ts +5 -0
- package/lib-amd/editor/utils/buildRangeEx.js +82 -0
- package/lib-amd/editor/utils/buildRangeEx.js.map +1 -0
- package/lib-amd/editor/utils/eventConverter.d.ts +15 -0
- package/lib-amd/editor/utils/eventConverter.js +463 -0
- package/lib-amd/editor/utils/eventConverter.js.map +1 -0
- package/lib-amd/editor/utils/insertNode.d.ts +7 -0
- package/lib-amd/editor/utils/insertNode.js +148 -0
- package/lib-amd/editor/utils/insertNode.js.map +1 -0
- package/lib-amd/editor/utils/selectionConverter.d.ts +10 -0
- package/lib-amd/editor/utils/selectionConverter.js +79 -0
- package/lib-amd/editor/utils/selectionConverter.js.map +1 -0
- package/lib-amd/index.d.ts +3 -0
- package/lib-amd/index.js +7 -0
- package/lib-amd/index.js.map +1 -0
- package/lib-amd/publicTypes/BeforePasteAdapterEvent.d.ts +15 -0
- package/lib-amd/publicTypes/BeforePasteAdapterEvent.js +5 -0
- package/lib-amd/publicTypes/BeforePasteAdapterEvent.js.map +1 -0
- package/lib-amd/publicTypes/EditorAdapterOptions.d.ts +20 -0
- package/lib-amd/publicTypes/EditorAdapterOptions.js +5 -0
- package/lib-amd/publicTypes/EditorAdapterOptions.js.map +1 -0
- package/lib-mjs/corePlugins/BridgePlugin.d.ts +73 -0
- package/lib-mjs/corePlugins/BridgePlugin.js +120 -0
- package/lib-mjs/corePlugins/BridgePlugin.js.map +1 -0
- package/lib-mjs/corePlugins/EditPlugin.d.ts +6 -0
- package/lib-mjs/corePlugins/EditPlugin.js +85 -0
- package/lib-mjs/corePlugins/EditPlugin.js.map +1 -0
- package/lib-mjs/editor/DarkColorHandlerImpl.d.ts +6 -0
- package/lib-mjs/editor/DarkColorHandlerImpl.js +130 -0
- package/lib-mjs/editor/DarkColorHandlerImpl.js.map +1 -0
- package/lib-mjs/editor/EditorAdapter.d.ts +341 -0
- package/lib-mjs/editor/EditorAdapter.js +840 -0
- package/lib-mjs/editor/EditorAdapter.js.map +1 -0
- package/lib-mjs/editor/utils/buildRangeEx.d.ts +5 -0
- package/lib-mjs/editor/utils/buildRangeEx.js +77 -0
- package/lib-mjs/editor/utils/buildRangeEx.js.map +1 -0
- package/lib-mjs/editor/utils/eventConverter.d.ts +15 -0
- package/lib-mjs/editor/utils/eventConverter.js +458 -0
- package/lib-mjs/editor/utils/eventConverter.js.map +1 -0
- package/lib-mjs/editor/utils/insertNode.d.ts +7 -0
- package/lib-mjs/editor/utils/insertNode.js +143 -0
- package/lib-mjs/editor/utils/insertNode.js.map +1 -0
- package/lib-mjs/editor/utils/selectionConverter.d.ts +10 -0
- package/lib-mjs/editor/utils/selectionConverter.js +74 -0
- package/lib-mjs/editor/utils/selectionConverter.js.map +1 -0
- package/lib-mjs/index.d.ts +3 -0
- package/lib-mjs/index.js +2 -0
- package/lib-mjs/index.js.map +1 -0
- package/lib-mjs/publicTypes/BeforePasteAdapterEvent.d.ts +15 -0
- package/lib-mjs/publicTypes/BeforePasteAdapterEvent.js +2 -0
- package/lib-mjs/publicTypes/BeforePasteAdapterEvent.js.map +1 -0
- package/lib-mjs/publicTypes/EditorAdapterOptions.d.ts +20 -0
- package/lib-mjs/publicTypes/EditorAdapterOptions.js +2 -0
- package/lib-mjs/publicTypes/EditorAdapterOptions.js.map +1 -0
- package/package.json +21 -0
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
define(["require", "exports", "./selectionConverter", "roosterjs-editor-dom"], function (require, exports, selectionConverter_1, roosterjs_editor_dom_1) {
|
|
2
|
+
"use strict";
|
|
3
|
+
var _a, _b, _c, _d;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.newEventToOldEvent = exports.oldEventToNewEvent = exports.OldEventTypeToNewEventType = void 0;
|
|
6
|
+
var PasteTypeNewToOld = {
|
|
7
|
+
asImage: 3 /* AsImage */,
|
|
8
|
+
asPlainText: 1 /* AsPlainText */,
|
|
9
|
+
mergeFormat: 2 /* MergeFormat */,
|
|
10
|
+
normal: 0 /* Normal */,
|
|
11
|
+
};
|
|
12
|
+
var PasteTypeOldToNew = (_a = {},
|
|
13
|
+
_a[3 /* AsImage */] = 'asImage',
|
|
14
|
+
_a[1 /* AsPlainText */] = 'asPlainText',
|
|
15
|
+
_a[2 /* MergeFormat */] = 'mergeFormat',
|
|
16
|
+
_a[0 /* Normal */] = 'normal',
|
|
17
|
+
_a);
|
|
18
|
+
var KnownAnnounceStringsOldToNew = (_b = {},
|
|
19
|
+
_b[2 /* AnnounceListItemBullet */] = 'announceListItemBullet',
|
|
20
|
+
_b[1 /* AnnounceListItemNumbering */] = 'announceListItemNumbering',
|
|
21
|
+
_b[3 /* AnnounceOnFocusLastCell */] = 'announceOnFocusLastCell',
|
|
22
|
+
_b);
|
|
23
|
+
var KnownAnnounceStringsNewToOld = {
|
|
24
|
+
announceListItemBullet: 2 /* AnnounceListItemBullet */,
|
|
25
|
+
announceListItemNumbering: 1 /* AnnounceListItemNumbering */,
|
|
26
|
+
announceOnFocusLastCell: 3 /* AnnounceOnFocusLastCell */,
|
|
27
|
+
};
|
|
28
|
+
var EntityOperationOldToNew = (_c = {},
|
|
29
|
+
_c[0 /* NewEntity */] = 'newEntity',
|
|
30
|
+
_c[6 /* Overwrite */] = 'overwrite',
|
|
31
|
+
_c[5 /* RemoveFromEnd */] = 'removeFromEnd',
|
|
32
|
+
_c[4 /* RemoveFromStart */] = 'removeFromStart',
|
|
33
|
+
_c[8 /* ReplaceTemporaryContent */] = 'replaceTemporaryContent',
|
|
34
|
+
_c[11 /* UpdateEntityState */] = 'updateEntityState',
|
|
35
|
+
_c[1 /* Click */] = 'click',
|
|
36
|
+
_c[2 /* ContextMenu */] = undefined,
|
|
37
|
+
_c[3 /* Escape */] = undefined,
|
|
38
|
+
_c[7 /* PartialOverwrite */] = undefined,
|
|
39
|
+
_c[9 /* AddShadowRoot */] = undefined,
|
|
40
|
+
_c[10 /* RemoveShadowRoot */] = undefined,
|
|
41
|
+
_c);
|
|
42
|
+
var EntityOperationNewToOld = {
|
|
43
|
+
newEntity: 0 /* NewEntity */,
|
|
44
|
+
overwrite: 6 /* Overwrite */,
|
|
45
|
+
removeFromEnd: 5 /* RemoveFromEnd */,
|
|
46
|
+
removeFromStart: 4 /* RemoveFromStart */,
|
|
47
|
+
replaceTemporaryContent: 8 /* ReplaceTemporaryContent */,
|
|
48
|
+
updateEntityState: 11 /* UpdateEntityState */,
|
|
49
|
+
click: 1 /* Click */,
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
exports.OldEventTypeToNewEventType = (_d = {},
|
|
55
|
+
_d[9 /* BeforeCutCopy */] = 'beforeCutCopy',
|
|
56
|
+
_d[12 /* BeforeDispose */] = 'beforeDispose',
|
|
57
|
+
_d[23 /* BeforeKeyboardEditing */] = 'beforeKeyboardEditing',
|
|
58
|
+
_d[10 /* BeforePaste */] = 'beforePaste',
|
|
59
|
+
_d[20 /* BeforeSetContent */] = 'beforeSetContent',
|
|
60
|
+
_d[4 /* CompositionEnd */] = 'compositionEnd',
|
|
61
|
+
_d[7 /* ContentChanged */] = 'contentChanged',
|
|
62
|
+
_d[16 /* ContextMenu */] = 'contextMenu',
|
|
63
|
+
_d[19 /* EditImage */] = 'editImage',
|
|
64
|
+
_d[11 /* EditorReady */] = 'editorReady',
|
|
65
|
+
_d[17 /* EnteredShadowEdit */] = 'enteredShadowEdit',
|
|
66
|
+
_d[15 /* EntityOperation */] = 'entityOperation',
|
|
67
|
+
_d[8 /* ExtractContentWithDom */] = 'extractContentWithDom',
|
|
68
|
+
_d[3 /* Input */] = 'input',
|
|
69
|
+
_d[0 /* KeyDown */] = 'keyDown',
|
|
70
|
+
_d[1 /* KeyPress */] = 'keyPress',
|
|
71
|
+
_d[2 /* KeyUp */] = 'keyUp',
|
|
72
|
+
_d[18 /* LeavingShadowEdit */] = 'leavingShadowEdit',
|
|
73
|
+
_d[5 /* MouseDown */] = 'mouseDown',
|
|
74
|
+
_d[6 /* MouseUp */] = 'mouseUp',
|
|
75
|
+
_d[13 /* PendingFormatStateChanged */] = undefined,
|
|
76
|
+
_d[14 /* Scroll */] = 'scroll',
|
|
77
|
+
_d[22 /* SelectionChanged */] = 'selectionChanged',
|
|
78
|
+
_d[21 /* ZoomChanged */] = 'zoomChanged',
|
|
79
|
+
_d);
|
|
80
|
+
/**
|
|
81
|
+
* @internal Convert legacy event object to new event object
|
|
82
|
+
*/
|
|
83
|
+
function oldEventToNewEvent(input, refEvent) {
|
|
84
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
85
|
+
switch (input.eventType) {
|
|
86
|
+
case 9 /* BeforeCutCopy */:
|
|
87
|
+
return {
|
|
88
|
+
eventType: 'beforeCutCopy',
|
|
89
|
+
clonedRoot: input.clonedRoot,
|
|
90
|
+
eventDataCache: input.eventDataCache,
|
|
91
|
+
isCut: input.isCut,
|
|
92
|
+
range: input.range,
|
|
93
|
+
rawEvent: input.rawEvent,
|
|
94
|
+
};
|
|
95
|
+
case 12 /* BeforeDispose */:
|
|
96
|
+
return {
|
|
97
|
+
eventType: 'beforeDispose',
|
|
98
|
+
eventDataCache: input.eventDataCache,
|
|
99
|
+
};
|
|
100
|
+
case 23 /* BeforeKeyboardEditing */:
|
|
101
|
+
return {
|
|
102
|
+
eventType: 'beforeKeyboardEditing',
|
|
103
|
+
eventDataCache: input.eventDataCache,
|
|
104
|
+
rawEvent: input.rawEvent,
|
|
105
|
+
};
|
|
106
|
+
case 10 /* BeforePaste */:
|
|
107
|
+
var refBeforePasteEvent = (refEvent === null || refEvent === void 0 ? void 0 : refEvent.eventType) == 'beforePaste' ? refEvent : undefined;
|
|
108
|
+
var cmBeforePasteEvent = input;
|
|
109
|
+
return {
|
|
110
|
+
eventType: 'beforePaste',
|
|
111
|
+
clipboardData: input.clipboardData,
|
|
112
|
+
customizedMerge: (_a = cmBeforePasteEvent.customizedMerge) !== null && _a !== void 0 ? _a : refBeforePasteEvent === null || refBeforePasteEvent === void 0 ? void 0 : refBeforePasteEvent.customizedMerge,
|
|
113
|
+
domToModelOption: (_c = (_b = cmBeforePasteEvent.domToModelOption) !== null && _b !== void 0 ? _b : refBeforePasteEvent === null || refBeforePasteEvent === void 0 ? void 0 : refBeforePasteEvent.domToModelOption) !== null && _c !== void 0 ? _c : {
|
|
114
|
+
additionalAllowedTags: [],
|
|
115
|
+
additionalDisallowedTags: [],
|
|
116
|
+
additionalFormatParsers: {},
|
|
117
|
+
formatParserOverride: {},
|
|
118
|
+
processorOverride: {},
|
|
119
|
+
styleSanitizers: {},
|
|
120
|
+
attributeSanitizers: {},
|
|
121
|
+
},
|
|
122
|
+
eventDataCache: input.eventDataCache,
|
|
123
|
+
fragment: input.fragment,
|
|
124
|
+
htmlAfter: input.htmlAfter,
|
|
125
|
+
htmlAttributes: input.htmlAttributes,
|
|
126
|
+
htmlBefore: input.htmlBefore,
|
|
127
|
+
pasteType: PasteTypeOldToNew[input.pasteType],
|
|
128
|
+
};
|
|
129
|
+
case 20 /* BeforeSetContent */:
|
|
130
|
+
return {
|
|
131
|
+
eventType: 'beforeSetContent',
|
|
132
|
+
eventDataCache: input.eventDataCache,
|
|
133
|
+
newContent: input.newContent,
|
|
134
|
+
};
|
|
135
|
+
case 4 /* CompositionEnd */:
|
|
136
|
+
return {
|
|
137
|
+
eventType: 'compositionEnd',
|
|
138
|
+
eventDataCache: input.eventDataCache,
|
|
139
|
+
rawEvent: input.rawEvent,
|
|
140
|
+
};
|
|
141
|
+
case 7 /* ContentChanged */:
|
|
142
|
+
var refContentChangedEvent = (refEvent === null || refEvent === void 0 ? void 0 : refEvent.eventType) == 'contentChanged' ? refEvent : undefined;
|
|
143
|
+
return {
|
|
144
|
+
eventType: 'contentChanged',
|
|
145
|
+
eventDataCache: input.eventDataCache,
|
|
146
|
+
changedEntities: refContentChangedEvent === null || refContentChangedEvent === void 0 ? void 0 : refContentChangedEvent.changedEntities,
|
|
147
|
+
contentModel: refContentChangedEvent === null || refContentChangedEvent === void 0 ? void 0 : refContentChangedEvent.contentModel,
|
|
148
|
+
data: input.data,
|
|
149
|
+
entityStates: (_f = (_e = (_d = input.additionalData) === null || _d === void 0 ? void 0 : _d.getEntityState) === null || _e === void 0 ? void 0 : _e.call(_d)) !== null && _f !== void 0 ? _f : refContentChangedEvent === null || refContentChangedEvent === void 0 ? void 0 : refContentChangedEvent.entityStates,
|
|
150
|
+
selection: refContentChangedEvent === null || refContentChangedEvent === void 0 ? void 0 : refContentChangedEvent.selection,
|
|
151
|
+
source: input.source,
|
|
152
|
+
formatApiName: (_h = (_g = input.additionalData) === null || _g === void 0 ? void 0 : _g.formatApiName) !== null && _h !== void 0 ? _h : refContentChangedEvent === null || refContentChangedEvent === void 0 ? void 0 : refContentChangedEvent.formatApiName,
|
|
153
|
+
announceData: (_l = announceDataOldToNew((_k = (_j = input.additionalData) === null || _j === void 0 ? void 0 : _j.getAnnounceData) === null || _k === void 0 ? void 0 : _k.call(_j))) !== null && _l !== void 0 ? _l : refContentChangedEvent === null || refContentChangedEvent === void 0 ? void 0 : refContentChangedEvent.announceData,
|
|
154
|
+
};
|
|
155
|
+
case 16 /* ContextMenu */:
|
|
156
|
+
return {
|
|
157
|
+
eventType: 'contextMenu',
|
|
158
|
+
eventDataCache: input.eventDataCache,
|
|
159
|
+
rawEvent: input.rawEvent,
|
|
160
|
+
items: input.items,
|
|
161
|
+
};
|
|
162
|
+
case 19 /* EditImage */:
|
|
163
|
+
return {
|
|
164
|
+
eventType: 'editImage',
|
|
165
|
+
eventDataCache: input.eventDataCache,
|
|
166
|
+
image: input.image,
|
|
167
|
+
newSrc: input.newSrc,
|
|
168
|
+
originalSrc: input.originalSrc,
|
|
169
|
+
previousSrc: input.previousSrc,
|
|
170
|
+
};
|
|
171
|
+
case 11 /* EditorReady */:
|
|
172
|
+
return {
|
|
173
|
+
eventType: 'editorReady',
|
|
174
|
+
eventDataCache: input.eventDataCache,
|
|
175
|
+
};
|
|
176
|
+
case 17 /* EnteredShadowEdit */:
|
|
177
|
+
return {
|
|
178
|
+
eventType: 'enteredShadowEdit',
|
|
179
|
+
eventDataCache: input.eventDataCache,
|
|
180
|
+
};
|
|
181
|
+
case 15 /* EntityOperation */:
|
|
182
|
+
var operation = EntityOperationOldToNew[input.operation];
|
|
183
|
+
return operation === undefined
|
|
184
|
+
? undefined
|
|
185
|
+
: {
|
|
186
|
+
eventType: 'entityOperation',
|
|
187
|
+
eventDataCache: input.eventDataCache,
|
|
188
|
+
rawEvent: input.rawEvent,
|
|
189
|
+
entity: input.entity,
|
|
190
|
+
operation: operation,
|
|
191
|
+
shouldPersist: input.shouldPersist,
|
|
192
|
+
state: input.state,
|
|
193
|
+
};
|
|
194
|
+
case 8 /* ExtractContentWithDom */:
|
|
195
|
+
return {
|
|
196
|
+
eventType: 'extractContentWithDom',
|
|
197
|
+
eventDataCache: input.eventDataCache,
|
|
198
|
+
clonedRoot: input.clonedRoot,
|
|
199
|
+
};
|
|
200
|
+
case 3 /* Input */:
|
|
201
|
+
return {
|
|
202
|
+
eventType: 'input',
|
|
203
|
+
eventDataCache: input.eventDataCache,
|
|
204
|
+
rawEvent: input.rawEvent,
|
|
205
|
+
};
|
|
206
|
+
case 0 /* KeyDown */:
|
|
207
|
+
case 1 /* KeyPress */:
|
|
208
|
+
case 2 /* KeyUp */:
|
|
209
|
+
return {
|
|
210
|
+
eventType: input.eventType == 0 /* KeyDown */
|
|
211
|
+
? 'keyDown'
|
|
212
|
+
: input.eventType == 1 /* KeyPress */
|
|
213
|
+
? 'keyPress'
|
|
214
|
+
: 'keyUp',
|
|
215
|
+
eventDataCache: input.eventDataCache,
|
|
216
|
+
rawEvent: input.rawEvent,
|
|
217
|
+
};
|
|
218
|
+
case 18 /* LeavingShadowEdit */:
|
|
219
|
+
return {
|
|
220
|
+
eventType: 'leavingShadowEdit',
|
|
221
|
+
eventDataCache: input.eventDataCache,
|
|
222
|
+
};
|
|
223
|
+
case 5 /* MouseDown */:
|
|
224
|
+
return {
|
|
225
|
+
eventType: 'mouseDown',
|
|
226
|
+
eventDataCache: input.eventDataCache,
|
|
227
|
+
rawEvent: input.rawEvent,
|
|
228
|
+
};
|
|
229
|
+
case 6 /* MouseUp */:
|
|
230
|
+
return {
|
|
231
|
+
eventType: 'mouseUp',
|
|
232
|
+
eventDataCache: input.eventDataCache,
|
|
233
|
+
rawEvent: input.rawEvent,
|
|
234
|
+
isClicking: input.isClicking,
|
|
235
|
+
};
|
|
236
|
+
case 14 /* Scroll */:
|
|
237
|
+
return {
|
|
238
|
+
eventType: 'scroll',
|
|
239
|
+
eventDataCache: input.eventDataCache,
|
|
240
|
+
rawEvent: input.rawEvent,
|
|
241
|
+
scrollContainer: input.scrollContainer,
|
|
242
|
+
};
|
|
243
|
+
case 22 /* SelectionChanged */:
|
|
244
|
+
var refSelectionChangedEvent = (refEvent === null || refEvent === void 0 ? void 0 : refEvent.eventType) == 'selectionChanged' ? refEvent : undefined;
|
|
245
|
+
return {
|
|
246
|
+
eventType: 'selectionChanged',
|
|
247
|
+
eventDataCache: input.eventDataCache,
|
|
248
|
+
newSelection: (_m = refSelectionChangedEvent === null || refSelectionChangedEvent === void 0 ? void 0 : refSelectionChangedEvent.newSelection) !== null && _m !== void 0 ? _m : (0, selectionConverter_1.convertRangeExToDomSelection)(input.selectionRangeEx),
|
|
249
|
+
};
|
|
250
|
+
case 21 /* ZoomChanged */:
|
|
251
|
+
return {
|
|
252
|
+
eventType: 'zoomChanged',
|
|
253
|
+
eventDataCache: input.eventDataCache,
|
|
254
|
+
newZoomScale: input.newZoomScale,
|
|
255
|
+
};
|
|
256
|
+
default:
|
|
257
|
+
return undefined;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
exports.oldEventToNewEvent = oldEventToNewEvent;
|
|
261
|
+
/**
|
|
262
|
+
* @internal Convert new event object to legacy event object
|
|
263
|
+
*/
|
|
264
|
+
function newEventToOldEvent(input, refEvent) {
|
|
265
|
+
var _a, _b, _c, _d;
|
|
266
|
+
switch (input.eventType) {
|
|
267
|
+
case 'beforeCutCopy':
|
|
268
|
+
return {
|
|
269
|
+
eventType: 9 /* BeforeCutCopy */,
|
|
270
|
+
clonedRoot: input.clonedRoot,
|
|
271
|
+
eventDataCache: input.eventDataCache,
|
|
272
|
+
isCut: input.isCut,
|
|
273
|
+
range: input.range,
|
|
274
|
+
rawEvent: input.rawEvent,
|
|
275
|
+
};
|
|
276
|
+
case 'beforeDispose':
|
|
277
|
+
return {
|
|
278
|
+
eventType: 12 /* BeforeDispose */,
|
|
279
|
+
eventDataCache: input.eventDataCache,
|
|
280
|
+
};
|
|
281
|
+
case 'beforeKeyboardEditing':
|
|
282
|
+
return {
|
|
283
|
+
eventType: 23 /* BeforeKeyboardEditing */,
|
|
284
|
+
eventDataCache: input.eventDataCache,
|
|
285
|
+
rawEvent: input.rawEvent,
|
|
286
|
+
};
|
|
287
|
+
case 'beforePaste':
|
|
288
|
+
var refBeforePasteEvent = (refEvent === null || refEvent === void 0 ? void 0 : refEvent.eventType) == 10 /* BeforePaste */ ? refEvent : undefined;
|
|
289
|
+
var oldBeforePasteEvent = {
|
|
290
|
+
eventType: 10 /* BeforePaste */,
|
|
291
|
+
clipboardData: input.clipboardData,
|
|
292
|
+
eventDataCache: input.eventDataCache,
|
|
293
|
+
fragment: input.fragment,
|
|
294
|
+
htmlAfter: input.htmlAfter,
|
|
295
|
+
htmlAttributes: input.htmlAttributes,
|
|
296
|
+
htmlBefore: input.htmlBefore,
|
|
297
|
+
pasteType: PasteTypeNewToOld[input.pasteType],
|
|
298
|
+
sanitizingOption: (_a = refBeforePasteEvent === null || refBeforePasteEvent === void 0 ? void 0 : refBeforePasteEvent.sanitizingOption) !== null && _a !== void 0 ? _a : (0, roosterjs_editor_dom_1.createDefaultHtmlSanitizerOptions)(),
|
|
299
|
+
domToModelOption: input.domToModelOption,
|
|
300
|
+
customizedMerge: input.customizedMerge,
|
|
301
|
+
};
|
|
302
|
+
return oldBeforePasteEvent;
|
|
303
|
+
case 'beforeSetContent':
|
|
304
|
+
return {
|
|
305
|
+
eventType: 20 /* BeforeSetContent */,
|
|
306
|
+
eventDataCache: input.eventDataCache,
|
|
307
|
+
newContent: input.newContent,
|
|
308
|
+
};
|
|
309
|
+
case 'compositionEnd':
|
|
310
|
+
return {
|
|
311
|
+
eventType: 4 /* CompositionEnd */,
|
|
312
|
+
eventDataCache: input.eventDataCache,
|
|
313
|
+
rawEvent: input.rawEvent,
|
|
314
|
+
};
|
|
315
|
+
case 'contentChanged':
|
|
316
|
+
var entityStates_1 = input.entityStates;
|
|
317
|
+
return {
|
|
318
|
+
eventType: 7 /* ContentChanged */,
|
|
319
|
+
eventDataCache: input.eventDataCache,
|
|
320
|
+
data: input.data,
|
|
321
|
+
source: input.source,
|
|
322
|
+
additionalData: {
|
|
323
|
+
formatApiName: input.formatApiName,
|
|
324
|
+
getAnnounceData: input.announceData
|
|
325
|
+
? function () { return announceDataNewToOld(input.announceData); }
|
|
326
|
+
: undefined,
|
|
327
|
+
getEntityState: entityStates_1 ? function () { return entityStates_1; } : undefined,
|
|
328
|
+
},
|
|
329
|
+
};
|
|
330
|
+
case 'contextMenu':
|
|
331
|
+
return {
|
|
332
|
+
eventType: 16 /* ContextMenu */,
|
|
333
|
+
eventDataCache: input.eventDataCache,
|
|
334
|
+
rawEvent: input.rawEvent,
|
|
335
|
+
items: input.items,
|
|
336
|
+
};
|
|
337
|
+
case 'editImage':
|
|
338
|
+
return {
|
|
339
|
+
eventType: 19 /* EditImage */,
|
|
340
|
+
eventDataCache: input.eventDataCache,
|
|
341
|
+
image: input.image,
|
|
342
|
+
newSrc: input.newSrc,
|
|
343
|
+
originalSrc: input.originalSrc,
|
|
344
|
+
previousSrc: input.previousSrc,
|
|
345
|
+
};
|
|
346
|
+
case 'editorReady':
|
|
347
|
+
return {
|
|
348
|
+
eventType: 11 /* EditorReady */,
|
|
349
|
+
eventDataCache: input.eventDataCache,
|
|
350
|
+
};
|
|
351
|
+
case 'enteredShadowEdit':
|
|
352
|
+
var refEnteredShadowEditEvent = (refEvent === null || refEvent === void 0 ? void 0 : refEvent.eventType) == 17 /* EnteredShadowEdit */ ? refEvent : undefined;
|
|
353
|
+
return {
|
|
354
|
+
eventType: 17 /* EnteredShadowEdit */,
|
|
355
|
+
eventDataCache: input.eventDataCache,
|
|
356
|
+
fragment: (_b = refEnteredShadowEditEvent === null || refEnteredShadowEditEvent === void 0 ? void 0 : refEnteredShadowEditEvent.fragment) !== null && _b !== void 0 ? _b : document.createDocumentFragment(),
|
|
357
|
+
selectionPath: (_c = refEnteredShadowEditEvent === null || refEnteredShadowEditEvent === void 0 ? void 0 : refEnteredShadowEditEvent.selectionPath) !== null && _c !== void 0 ? _c : {
|
|
358
|
+
end: [],
|
|
359
|
+
start: [],
|
|
360
|
+
},
|
|
361
|
+
};
|
|
362
|
+
case 'entityOperation':
|
|
363
|
+
return {
|
|
364
|
+
eventType: 15 /* EntityOperation */,
|
|
365
|
+
eventDataCache: input.eventDataCache,
|
|
366
|
+
rawEvent: input.rawEvent,
|
|
367
|
+
entity: input.entity,
|
|
368
|
+
operation: EntityOperationNewToOld[input.operation],
|
|
369
|
+
shouldPersist: input.shouldPersist,
|
|
370
|
+
state: input.state,
|
|
371
|
+
};
|
|
372
|
+
case 'extractContentWithDom':
|
|
373
|
+
return {
|
|
374
|
+
eventType: 8 /* ExtractContentWithDom */,
|
|
375
|
+
eventDataCache: input.eventDataCache,
|
|
376
|
+
clonedRoot: input.clonedRoot,
|
|
377
|
+
};
|
|
378
|
+
case 'input':
|
|
379
|
+
return {
|
|
380
|
+
eventType: 3 /* Input */,
|
|
381
|
+
eventDataCache: input.eventDataCache,
|
|
382
|
+
rawEvent: input.rawEvent,
|
|
383
|
+
};
|
|
384
|
+
case 'keyDown':
|
|
385
|
+
case 'keyPress':
|
|
386
|
+
case 'keyUp':
|
|
387
|
+
return {
|
|
388
|
+
eventType: input.eventType == 'keyDown'
|
|
389
|
+
? 0 /* KeyDown */
|
|
390
|
+
: input.eventType == 'keyPress'
|
|
391
|
+
? 1 /* KeyPress */
|
|
392
|
+
: 2 /* KeyUp */,
|
|
393
|
+
eventDataCache: input.eventDataCache,
|
|
394
|
+
rawEvent: input.rawEvent,
|
|
395
|
+
};
|
|
396
|
+
case 'leavingShadowEdit':
|
|
397
|
+
return {
|
|
398
|
+
eventType: 18 /* LeavingShadowEdit */,
|
|
399
|
+
eventDataCache: input.eventDataCache,
|
|
400
|
+
};
|
|
401
|
+
case 'mouseDown':
|
|
402
|
+
return {
|
|
403
|
+
eventType: 5 /* MouseDown */,
|
|
404
|
+
eventDataCache: input.eventDataCache,
|
|
405
|
+
rawEvent: input.rawEvent,
|
|
406
|
+
};
|
|
407
|
+
case 'mouseUp':
|
|
408
|
+
return {
|
|
409
|
+
eventType: 6 /* MouseUp */,
|
|
410
|
+
eventDataCache: input.eventDataCache,
|
|
411
|
+
rawEvent: input.rawEvent,
|
|
412
|
+
isClicking: input.isClicking,
|
|
413
|
+
};
|
|
414
|
+
case 'scroll':
|
|
415
|
+
return {
|
|
416
|
+
eventType: 14 /* Scroll */,
|
|
417
|
+
eventDataCache: input.eventDataCache,
|
|
418
|
+
rawEvent: input.rawEvent,
|
|
419
|
+
scrollContainer: input.scrollContainer,
|
|
420
|
+
};
|
|
421
|
+
case 'selectionChanged':
|
|
422
|
+
var refSelectionChangedEvent = (refEvent === null || refEvent === void 0 ? void 0 : refEvent.eventType) == 22 /* SelectionChanged */ ? refEvent : undefined;
|
|
423
|
+
return {
|
|
424
|
+
eventType: 22 /* SelectionChanged */,
|
|
425
|
+
eventDataCache: input.eventDataCache,
|
|
426
|
+
selectionRangeEx: (_d = refSelectionChangedEvent === null || refSelectionChangedEvent === void 0 ? void 0 : refSelectionChangedEvent.selectionRangeEx) !== null && _d !== void 0 ? _d : (0, selectionConverter_1.convertDomSelectionToRangeEx)(input.newSelection),
|
|
427
|
+
};
|
|
428
|
+
case 'zoomChanged':
|
|
429
|
+
return {
|
|
430
|
+
eventType: 21 /* ZoomChanged */,
|
|
431
|
+
eventDataCache: input.eventDataCache,
|
|
432
|
+
newZoomScale: input.newZoomScale,
|
|
433
|
+
oldZoomScale: (refEvent === null || refEvent === void 0 ? void 0 : refEvent.eventType) == 21 /* ZoomChanged */ ? refEvent.oldZoomScale : 1, // In new ZoomChangedEvent we don't really have oldZoomScale. So if we can't get it, just use 1 instead
|
|
434
|
+
};
|
|
435
|
+
default:
|
|
436
|
+
return undefined;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
exports.newEventToOldEvent = newEventToOldEvent;
|
|
440
|
+
function announceDataOldToNew(data) {
|
|
441
|
+
return data
|
|
442
|
+
? {
|
|
443
|
+
defaultStrings: data.defaultStrings
|
|
444
|
+
? KnownAnnounceStringsOldToNew[data.defaultStrings]
|
|
445
|
+
: undefined,
|
|
446
|
+
formatStrings: data.formatStrings,
|
|
447
|
+
text: data.text,
|
|
448
|
+
}
|
|
449
|
+
: undefined;
|
|
450
|
+
}
|
|
451
|
+
function announceDataNewToOld(data) {
|
|
452
|
+
return data
|
|
453
|
+
? {
|
|
454
|
+
defaultStrings: data.defaultStrings
|
|
455
|
+
? KnownAnnounceStringsNewToOld[data.defaultStrings]
|
|
456
|
+
: undefined,
|
|
457
|
+
formatStrings: data.formatStrings,
|
|
458
|
+
text: data.text,
|
|
459
|
+
}
|
|
460
|
+
: undefined;
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
//# sourceMappingURL=eventConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventConverter.js","sourceRoot":"","sources":["../../../../../packages/roosterjs-editor-adapter/lib/editor/utils/eventConverter.ts"],"names":[],"mappings":"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","sourcesContent":["import { convertDomSelectionToRangeEx, convertRangeExToDomSelection } from './selectionConverter';\r\nimport { createDefaultHtmlSanitizerOptions } from 'roosterjs-editor-dom';\r\nimport type { BeforePasteAdapterEvent } from '../../publicTypes/BeforePasteAdapterEvent';\r\nimport {\r\n KnownAnnounceStrings as OldKnownAnnounceStrings,\r\n PasteType as OldPasteType,\r\n EntityOperation as OldEntityOperation,\r\n PluginEventType,\r\n} from 'roosterjs-editor-types';\r\nimport type {\r\n PluginEvent as OldEvent,\r\n AnnounceData as OldAnnounceData,\r\n} from 'roosterjs-editor-types';\r\nimport type {\r\n PluginEvent as NewEvent,\r\n PasteType as NewPasteType,\r\n AnnounceData as NewAnnounceData,\r\n KnownAnnounceStrings as NewKnownAnnounceStrings,\r\n EntityOperation as NewEntityOperation,\r\n PluginEventType as NewPluginEventType,\r\n} from 'roosterjs-content-model-types';\r\n\r\nconst PasteTypeNewToOld: Record<NewPasteType, OldPasteType> = {\r\n asImage: OldPasteType.AsImage,\r\n asPlainText: OldPasteType.AsPlainText,\r\n mergeFormat: OldPasteType.MergeFormat,\r\n normal: OldPasteType.Normal,\r\n};\r\n\r\nconst PasteTypeOldToNew: Record<OldPasteType, NewPasteType> = {\r\n [OldPasteType.AsImage]: 'asImage',\r\n [OldPasteType.AsPlainText]: 'asPlainText',\r\n [OldPasteType.MergeFormat]: 'mergeFormat',\r\n [OldPasteType.Normal]: 'normal',\r\n};\r\n\r\nconst KnownAnnounceStringsOldToNew: Record<OldKnownAnnounceStrings, NewKnownAnnounceStrings> = {\r\n [OldKnownAnnounceStrings.AnnounceListItemBullet]: 'announceListItemBullet',\r\n [OldKnownAnnounceStrings.AnnounceListItemNumbering]: 'announceListItemNumbering',\r\n [OldKnownAnnounceStrings.AnnounceOnFocusLastCell]: 'announceOnFocusLastCell',\r\n};\r\n\r\nconst KnownAnnounceStringsNewToOld: Record<NewKnownAnnounceStrings, OldKnownAnnounceStrings> = {\r\n announceListItemBullet: OldKnownAnnounceStrings.AnnounceListItemBullet,\r\n announceListItemNumbering: OldKnownAnnounceStrings.AnnounceListItemNumbering,\r\n announceOnFocusLastCell: OldKnownAnnounceStrings.AnnounceOnFocusLastCell,\r\n};\r\n\r\nconst EntityOperationOldToNew: Record<OldEntityOperation, NewEntityOperation | undefined> = {\r\n [OldEntityOperation.NewEntity]: 'newEntity',\r\n [OldEntityOperation.Overwrite]: 'overwrite',\r\n [OldEntityOperation.RemoveFromEnd]: 'removeFromEnd',\r\n [OldEntityOperation.RemoveFromStart]: 'removeFromStart',\r\n [OldEntityOperation.ReplaceTemporaryContent]: 'replaceTemporaryContent',\r\n [OldEntityOperation.UpdateEntityState]: 'updateEntityState',\r\n [OldEntityOperation.Click]: 'click',\r\n [OldEntityOperation.ContextMenu]: undefined,\r\n [OldEntityOperation.Escape]: undefined,\r\n [OldEntityOperation.PartialOverwrite]: undefined,\r\n [OldEntityOperation.AddShadowRoot]: undefined,\r\n [OldEntityOperation.RemoveShadowRoot]: undefined,\r\n};\r\n\r\nconst EntityOperationNewToOld: Record<NewEntityOperation, OldEntityOperation> = {\r\n newEntity: OldEntityOperation.NewEntity,\r\n overwrite: OldEntityOperation.Overwrite,\r\n removeFromEnd: OldEntityOperation.RemoveFromEnd,\r\n removeFromStart: OldEntityOperation.RemoveFromStart,\r\n replaceTemporaryContent: OldEntityOperation.ReplaceTemporaryContent,\r\n updateEntityState: OldEntityOperation.UpdateEntityState,\r\n click: OldEntityOperation.Click,\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const OldEventTypeToNewEventType: Record<PluginEventType, NewPluginEventType | undefined> = {\r\n [PluginEventType.BeforeCutCopy]: 'beforeCutCopy',\r\n [PluginEventType.BeforeDispose]: 'beforeDispose',\r\n [PluginEventType.BeforeKeyboardEditing]: 'beforeKeyboardEditing',\r\n [PluginEventType.BeforePaste]: 'beforePaste',\r\n [PluginEventType.BeforeSetContent]: 'beforeSetContent',\r\n [PluginEventType.CompositionEnd]: 'compositionEnd',\r\n [PluginEventType.ContentChanged]: 'contentChanged',\r\n [PluginEventType.ContextMenu]: 'contextMenu',\r\n [PluginEventType.EditImage]: 'editImage',\r\n [PluginEventType.EditorReady]: 'editorReady',\r\n [PluginEventType.EnteredShadowEdit]: 'enteredShadowEdit',\r\n [PluginEventType.EntityOperation]: 'entityOperation',\r\n [PluginEventType.ExtractContentWithDom]: 'extractContentWithDom',\r\n [PluginEventType.Input]: 'input',\r\n [PluginEventType.KeyDown]: 'keyDown',\r\n [PluginEventType.KeyPress]: 'keyPress',\r\n [PluginEventType.KeyUp]: 'keyUp',\r\n [PluginEventType.LeavingShadowEdit]: 'leavingShadowEdit',\r\n [PluginEventType.MouseDown]: 'mouseDown',\r\n [PluginEventType.MouseUp]: 'mouseUp',\r\n [PluginEventType.PendingFormatStateChanged]: undefined,\r\n [PluginEventType.Scroll]: 'scroll',\r\n [PluginEventType.SelectionChanged]: 'selectionChanged',\r\n [PluginEventType.ZoomChanged]: 'zoomChanged',\r\n};\r\n\r\n/**\r\n * @internal Convert legacy event object to new event object\r\n */\r\nexport function oldEventToNewEvent<TOldEvent extends OldEvent>(\r\n input: TOldEvent,\r\n refEvent?: NewEvent\r\n): NewEvent | undefined {\r\n switch (input.eventType) {\r\n case PluginEventType.BeforeCutCopy:\r\n return {\r\n eventType: 'beforeCutCopy',\r\n clonedRoot: input.clonedRoot,\r\n eventDataCache: input.eventDataCache,\r\n isCut: input.isCut,\r\n range: input.range,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case PluginEventType.BeforeDispose:\r\n return {\r\n eventType: 'beforeDispose',\r\n eventDataCache: input.eventDataCache,\r\n };\r\n\r\n case PluginEventType.BeforeKeyboardEditing:\r\n return {\r\n eventType: 'beforeKeyboardEditing',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case PluginEventType.BeforePaste:\r\n const refBeforePasteEvent = refEvent?.eventType == 'beforePaste' ? refEvent : undefined;\r\n const cmBeforePasteEvent = input as BeforePasteAdapterEvent;\r\n\r\n return {\r\n eventType: 'beforePaste',\r\n clipboardData: input.clipboardData,\r\n customizedMerge:\r\n cmBeforePasteEvent.customizedMerge ?? refBeforePasteEvent?.customizedMerge,\r\n domToModelOption: cmBeforePasteEvent.domToModelOption ??\r\n refBeforePasteEvent?.domToModelOption ?? {\r\n additionalAllowedTags: [],\r\n additionalDisallowedTags: [],\r\n additionalFormatParsers: {},\r\n formatParserOverride: {},\r\n processorOverride: {},\r\n styleSanitizers: {},\r\n attributeSanitizers: {},\r\n },\r\n eventDataCache: input.eventDataCache,\r\n fragment: input.fragment,\r\n htmlAfter: input.htmlAfter,\r\n htmlAttributes: input.htmlAttributes,\r\n htmlBefore: input.htmlBefore,\r\n pasteType: PasteTypeOldToNew[input.pasteType],\r\n };\r\n\r\n case PluginEventType.BeforeSetContent:\r\n return {\r\n eventType: 'beforeSetContent',\r\n eventDataCache: input.eventDataCache,\r\n newContent: input.newContent,\r\n };\r\n\r\n case PluginEventType.CompositionEnd:\r\n return {\r\n eventType: 'compositionEnd',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case PluginEventType.ContentChanged:\r\n const refContentChangedEvent =\r\n refEvent?.eventType == 'contentChanged' ? refEvent : undefined;\r\n return {\r\n eventType: 'contentChanged',\r\n eventDataCache: input.eventDataCache,\r\n changedEntities: refContentChangedEvent?.changedEntities,\r\n contentModel: refContentChangedEvent?.contentModel,\r\n data: input.data,\r\n entityStates:\r\n input.additionalData?.getEntityState?.() ??\r\n refContentChangedEvent?.entityStates,\r\n selection: refContentChangedEvent?.selection,\r\n source: input.source,\r\n formatApiName:\r\n input.additionalData?.formatApiName ?? refContentChangedEvent?.formatApiName,\r\n announceData:\r\n announceDataOldToNew(input.additionalData?.getAnnounceData?.()) ??\r\n refContentChangedEvent?.announceData,\r\n };\r\n\r\n case PluginEventType.ContextMenu:\r\n return {\r\n eventType: 'contextMenu',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n items: input.items,\r\n };\r\n\r\n case PluginEventType.EditImage:\r\n return {\r\n eventType: 'editImage',\r\n eventDataCache: input.eventDataCache,\r\n image: input.image,\r\n newSrc: input.newSrc,\r\n originalSrc: input.originalSrc,\r\n previousSrc: input.previousSrc,\r\n };\r\n\r\n case PluginEventType.EditorReady:\r\n return {\r\n eventType: 'editorReady',\r\n eventDataCache: input.eventDataCache,\r\n };\r\n\r\n case PluginEventType.EnteredShadowEdit:\r\n return {\r\n eventType: 'enteredShadowEdit',\r\n eventDataCache: input.eventDataCache,\r\n };\r\n\r\n case PluginEventType.EntityOperation:\r\n const operation = EntityOperationOldToNew[input.operation];\r\n\r\n return operation === undefined\r\n ? undefined\r\n : {\r\n eventType: 'entityOperation',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n entity: input.entity,\r\n operation: operation,\r\n shouldPersist: input.shouldPersist,\r\n state: input.state,\r\n };\r\n\r\n case PluginEventType.ExtractContentWithDom:\r\n return {\r\n eventType: 'extractContentWithDom',\r\n eventDataCache: input.eventDataCache,\r\n clonedRoot: input.clonedRoot,\r\n };\r\n\r\n case PluginEventType.Input:\r\n return {\r\n eventType: 'input',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case PluginEventType.KeyDown:\r\n case PluginEventType.KeyPress:\r\n case PluginEventType.KeyUp:\r\n return {\r\n eventType:\r\n input.eventType == PluginEventType.KeyDown\r\n ? 'keyDown'\r\n : input.eventType == PluginEventType.KeyPress\r\n ? 'keyPress'\r\n : 'keyUp',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case PluginEventType.LeavingShadowEdit:\r\n return {\r\n eventType: 'leavingShadowEdit',\r\n eventDataCache: input.eventDataCache,\r\n };\r\n\r\n case PluginEventType.MouseDown:\r\n return {\r\n eventType: 'mouseDown',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case PluginEventType.MouseUp:\r\n return {\r\n eventType: 'mouseUp',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n isClicking: input.isClicking,\r\n };\r\n\r\n case PluginEventType.Scroll:\r\n return {\r\n eventType: 'scroll',\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n scrollContainer: input.scrollContainer,\r\n };\r\n\r\n case PluginEventType.SelectionChanged:\r\n const refSelectionChangedEvent =\r\n refEvent?.eventType == 'selectionChanged' ? refEvent : undefined;\r\n\r\n return {\r\n eventType: 'selectionChanged',\r\n eventDataCache: input.eventDataCache,\r\n newSelection:\r\n refSelectionChangedEvent?.newSelection ??\r\n convertRangeExToDomSelection(input.selectionRangeEx),\r\n };\r\n\r\n case PluginEventType.ZoomChanged:\r\n return {\r\n eventType: 'zoomChanged',\r\n eventDataCache: input.eventDataCache,\r\n newZoomScale: input.newZoomScale,\r\n };\r\n\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\n/**\r\n * @internal Convert new event object to legacy event object\r\n */\r\nexport function newEventToOldEvent(input: NewEvent, refEvent?: OldEvent): OldEvent | undefined {\r\n switch (input.eventType) {\r\n case 'beforeCutCopy':\r\n return {\r\n eventType: PluginEventType.BeforeCutCopy,\r\n clonedRoot: input.clonedRoot,\r\n eventDataCache: input.eventDataCache,\r\n isCut: input.isCut,\r\n range: input.range,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case 'beforeDispose':\r\n return {\r\n eventType: PluginEventType.BeforeDispose,\r\n eventDataCache: input.eventDataCache,\r\n };\r\n\r\n case 'beforeKeyboardEditing':\r\n return {\r\n eventType: PluginEventType.BeforeKeyboardEditing,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case 'beforePaste':\r\n const refBeforePasteEvent =\r\n refEvent?.eventType == PluginEventType.BeforePaste ? refEvent : undefined;\r\n\r\n const oldBeforePasteEvent: BeforePasteAdapterEvent = {\r\n eventType: PluginEventType.BeforePaste,\r\n clipboardData: input.clipboardData,\r\n eventDataCache: input.eventDataCache,\r\n fragment: input.fragment,\r\n htmlAfter: input.htmlAfter,\r\n htmlAttributes: input.htmlAttributes,\r\n htmlBefore: input.htmlBefore,\r\n pasteType: PasteTypeNewToOld[input.pasteType],\r\n sanitizingOption:\r\n refBeforePasteEvent?.sanitizingOption ?? createDefaultHtmlSanitizerOptions(),\r\n domToModelOption: input.domToModelOption,\r\n customizedMerge: input.customizedMerge,\r\n };\r\n\r\n return oldBeforePasteEvent;\r\n\r\n case 'beforeSetContent':\r\n return {\r\n eventType: PluginEventType.BeforeSetContent,\r\n eventDataCache: input.eventDataCache,\r\n newContent: input.newContent,\r\n };\r\n\r\n case 'compositionEnd':\r\n return {\r\n eventType: PluginEventType.CompositionEnd,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case 'contentChanged':\r\n const entityStates = input.entityStates;\r\n\r\n return {\r\n eventType: PluginEventType.ContentChanged,\r\n eventDataCache: input.eventDataCache,\r\n data: input.data,\r\n source: input.source,\r\n additionalData: {\r\n formatApiName: input.formatApiName,\r\n getAnnounceData: input.announceData\r\n ? () => announceDataNewToOld(input.announceData)\r\n : undefined,\r\n getEntityState: entityStates ? () => entityStates : undefined,\r\n },\r\n };\r\n\r\n case 'contextMenu':\r\n return {\r\n eventType: PluginEventType.ContextMenu,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n items: input.items,\r\n };\r\n\r\n case 'editImage':\r\n return {\r\n eventType: PluginEventType.EditImage,\r\n eventDataCache: input.eventDataCache,\r\n image: input.image,\r\n newSrc: input.newSrc,\r\n originalSrc: input.originalSrc,\r\n previousSrc: input.previousSrc,\r\n };\r\n\r\n case 'editorReady':\r\n return {\r\n eventType: PluginEventType.EditorReady,\r\n eventDataCache: input.eventDataCache,\r\n };\r\n\r\n case 'enteredShadowEdit':\r\n const refEnteredShadowEditEvent =\r\n refEvent?.eventType == PluginEventType.EnteredShadowEdit ? refEvent : undefined;\r\n\r\n return {\r\n eventType: PluginEventType.EnteredShadowEdit,\r\n eventDataCache: input.eventDataCache,\r\n fragment: refEnteredShadowEditEvent?.fragment ?? document.createDocumentFragment(),\r\n selectionPath: refEnteredShadowEditEvent?.selectionPath ?? {\r\n end: [],\r\n start: [],\r\n },\r\n };\r\n\r\n case 'entityOperation':\r\n return {\r\n eventType: PluginEventType.EntityOperation,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n entity: input.entity,\r\n operation: EntityOperationNewToOld[input.operation],\r\n shouldPersist: input.shouldPersist,\r\n state: input.state,\r\n };\r\n\r\n case 'extractContentWithDom':\r\n return {\r\n eventType: PluginEventType.ExtractContentWithDom,\r\n eventDataCache: input.eventDataCache,\r\n clonedRoot: input.clonedRoot,\r\n };\r\n\r\n case 'input':\r\n return {\r\n eventType: PluginEventType.Input,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case 'keyDown':\r\n case 'keyPress':\r\n case 'keyUp':\r\n return {\r\n eventType:\r\n input.eventType == 'keyDown'\r\n ? PluginEventType.KeyDown\r\n : input.eventType == 'keyPress'\r\n ? PluginEventType.KeyPress\r\n : PluginEventType.KeyUp,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case 'leavingShadowEdit':\r\n return {\r\n eventType: PluginEventType.LeavingShadowEdit,\r\n eventDataCache: input.eventDataCache,\r\n };\r\n\r\n case 'mouseDown':\r\n return {\r\n eventType: PluginEventType.MouseDown,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n };\r\n\r\n case 'mouseUp':\r\n return {\r\n eventType: PluginEventType.MouseUp,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n isClicking: input.isClicking,\r\n };\r\n\r\n case 'scroll':\r\n return {\r\n eventType: PluginEventType.Scroll,\r\n eventDataCache: input.eventDataCache,\r\n rawEvent: input.rawEvent,\r\n scrollContainer: input.scrollContainer,\r\n };\r\n\r\n case 'selectionChanged':\r\n const refSelectionChangedEvent =\r\n refEvent?.eventType == PluginEventType.SelectionChanged ? refEvent : undefined;\r\n\r\n return {\r\n eventType: PluginEventType.SelectionChanged,\r\n eventDataCache: input.eventDataCache,\r\n selectionRangeEx:\r\n refSelectionChangedEvent?.selectionRangeEx ??\r\n convertDomSelectionToRangeEx(input.newSelection),\r\n };\r\n\r\n case 'zoomChanged':\r\n return {\r\n eventType: PluginEventType.ZoomChanged,\r\n eventDataCache: input.eventDataCache,\r\n newZoomScale: input.newZoomScale,\r\n oldZoomScale:\r\n refEvent?.eventType == PluginEventType.ZoomChanged ? refEvent.oldZoomScale : 1, // In new ZoomChangedEvent we don't really have oldZoomScale. So if we can't get it, just use 1 instead\r\n };\r\n\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction announceDataOldToNew(data: OldAnnounceData | undefined): NewAnnounceData | undefined {\r\n return data\r\n ? {\r\n defaultStrings: data.defaultStrings\r\n ? KnownAnnounceStringsOldToNew[data.defaultStrings]\r\n : undefined,\r\n formatStrings: data.formatStrings,\r\n text: data.text,\r\n }\r\n : undefined;\r\n}\r\n\r\nfunction announceDataNewToOld(data: NewAnnounceData | undefined): OldAnnounceData | undefined {\r\n return data\r\n ? {\r\n defaultStrings: data.defaultStrings\r\n ? KnownAnnounceStringsNewToOld[data.defaultStrings]\r\n : undefined,\r\n formatStrings: data.formatStrings,\r\n text: data.text,\r\n }\r\n : undefined;\r\n}\r\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { InsertOption } from 'roosterjs-editor-types';
|
|
2
|
+
import type { DOMSelection } from 'roosterjs-content-model-types';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
* Insert a DOM node into editor content
|
|
6
|
+
*/
|
|
7
|
+
export declare function insertNode(contentDiv: HTMLDivElement, selection: DOMSelection | null, node: Node, option: InsertOption): DOMSelection | undefined;
|