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.
Files changed (102) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +262 -0
  3. package/lib/corePlugins/BridgePlugin.d.ts +73 -0
  4. package/lib/corePlugins/BridgePlugin.js +124 -0
  5. package/lib/corePlugins/BridgePlugin.js.map +1 -0
  6. package/lib/corePlugins/EditPlugin.d.ts +6 -0
  7. package/lib/corePlugins/EditPlugin.js +89 -0
  8. package/lib/corePlugins/EditPlugin.js.map +1 -0
  9. package/lib/editor/DarkColorHandlerImpl.d.ts +6 -0
  10. package/lib/editor/DarkColorHandlerImpl.js +134 -0
  11. package/lib/editor/DarkColorHandlerImpl.js.map +1 -0
  12. package/lib/editor/EditorAdapter.d.ts +341 -0
  13. package/lib/editor/EditorAdapter.js +843 -0
  14. package/lib/editor/EditorAdapter.js.map +1 -0
  15. package/lib/editor/utils/buildRangeEx.d.ts +5 -0
  16. package/lib/editor/utils/buildRangeEx.js +81 -0
  17. package/lib/editor/utils/buildRangeEx.js.map +1 -0
  18. package/lib/editor/utils/eventConverter.d.ts +15 -0
  19. package/lib/editor/utils/eventConverter.js +463 -0
  20. package/lib/editor/utils/eventConverter.js.map +1 -0
  21. package/lib/editor/utils/insertNode.d.ts +7 -0
  22. package/lib/editor/utils/insertNode.js +147 -0
  23. package/lib/editor/utils/insertNode.js.map +1 -0
  24. package/lib/editor/utils/selectionConverter.d.ts +10 -0
  25. package/lib/editor/utils/selectionConverter.js +79 -0
  26. package/lib/editor/utils/selectionConverter.js.map +1 -0
  27. package/lib/index.d.ts +3 -0
  28. package/lib/index.js +6 -0
  29. package/lib/index.js.map +1 -0
  30. package/lib/publicTypes/BeforePasteAdapterEvent.d.ts +15 -0
  31. package/lib/publicTypes/BeforePasteAdapterEvent.js +3 -0
  32. package/lib/publicTypes/BeforePasteAdapterEvent.js.map +1 -0
  33. package/lib/publicTypes/EditorAdapterOptions.d.ts +20 -0
  34. package/lib/publicTypes/EditorAdapterOptions.js +3 -0
  35. package/lib/publicTypes/EditorAdapterOptions.js.map +1 -0
  36. package/lib-amd/corePlugins/BridgePlugin.d.ts +73 -0
  37. package/lib-amd/corePlugins/BridgePlugin.js +122 -0
  38. package/lib-amd/corePlugins/BridgePlugin.js.map +1 -0
  39. package/lib-amd/corePlugins/EditPlugin.d.ts +6 -0
  40. package/lib-amd/corePlugins/EditPlugin.js +90 -0
  41. package/lib-amd/corePlugins/EditPlugin.js.map +1 -0
  42. package/lib-amd/editor/DarkColorHandlerImpl.d.ts +6 -0
  43. package/lib-amd/editor/DarkColorHandlerImpl.js +135 -0
  44. package/lib-amd/editor/DarkColorHandlerImpl.js.map +1 -0
  45. package/lib-amd/editor/EditorAdapter.d.ts +341 -0
  46. package/lib-amd/editor/EditorAdapter.js +836 -0
  47. package/lib-amd/editor/EditorAdapter.js.map +1 -0
  48. package/lib-amd/editor/utils/buildRangeEx.d.ts +5 -0
  49. package/lib-amd/editor/utils/buildRangeEx.js +82 -0
  50. package/lib-amd/editor/utils/buildRangeEx.js.map +1 -0
  51. package/lib-amd/editor/utils/eventConverter.d.ts +15 -0
  52. package/lib-amd/editor/utils/eventConverter.js +463 -0
  53. package/lib-amd/editor/utils/eventConverter.js.map +1 -0
  54. package/lib-amd/editor/utils/insertNode.d.ts +7 -0
  55. package/lib-amd/editor/utils/insertNode.js +148 -0
  56. package/lib-amd/editor/utils/insertNode.js.map +1 -0
  57. package/lib-amd/editor/utils/selectionConverter.d.ts +10 -0
  58. package/lib-amd/editor/utils/selectionConverter.js +79 -0
  59. package/lib-amd/editor/utils/selectionConverter.js.map +1 -0
  60. package/lib-amd/index.d.ts +3 -0
  61. package/lib-amd/index.js +7 -0
  62. package/lib-amd/index.js.map +1 -0
  63. package/lib-amd/publicTypes/BeforePasteAdapterEvent.d.ts +15 -0
  64. package/lib-amd/publicTypes/BeforePasteAdapterEvent.js +5 -0
  65. package/lib-amd/publicTypes/BeforePasteAdapterEvent.js.map +1 -0
  66. package/lib-amd/publicTypes/EditorAdapterOptions.d.ts +20 -0
  67. package/lib-amd/publicTypes/EditorAdapterOptions.js +5 -0
  68. package/lib-amd/publicTypes/EditorAdapterOptions.js.map +1 -0
  69. package/lib-mjs/corePlugins/BridgePlugin.d.ts +73 -0
  70. package/lib-mjs/corePlugins/BridgePlugin.js +120 -0
  71. package/lib-mjs/corePlugins/BridgePlugin.js.map +1 -0
  72. package/lib-mjs/corePlugins/EditPlugin.d.ts +6 -0
  73. package/lib-mjs/corePlugins/EditPlugin.js +85 -0
  74. package/lib-mjs/corePlugins/EditPlugin.js.map +1 -0
  75. package/lib-mjs/editor/DarkColorHandlerImpl.d.ts +6 -0
  76. package/lib-mjs/editor/DarkColorHandlerImpl.js +130 -0
  77. package/lib-mjs/editor/DarkColorHandlerImpl.js.map +1 -0
  78. package/lib-mjs/editor/EditorAdapter.d.ts +341 -0
  79. package/lib-mjs/editor/EditorAdapter.js +840 -0
  80. package/lib-mjs/editor/EditorAdapter.js.map +1 -0
  81. package/lib-mjs/editor/utils/buildRangeEx.d.ts +5 -0
  82. package/lib-mjs/editor/utils/buildRangeEx.js +77 -0
  83. package/lib-mjs/editor/utils/buildRangeEx.js.map +1 -0
  84. package/lib-mjs/editor/utils/eventConverter.d.ts +15 -0
  85. package/lib-mjs/editor/utils/eventConverter.js +458 -0
  86. package/lib-mjs/editor/utils/eventConverter.js.map +1 -0
  87. package/lib-mjs/editor/utils/insertNode.d.ts +7 -0
  88. package/lib-mjs/editor/utils/insertNode.js +143 -0
  89. package/lib-mjs/editor/utils/insertNode.js.map +1 -0
  90. package/lib-mjs/editor/utils/selectionConverter.d.ts +10 -0
  91. package/lib-mjs/editor/utils/selectionConverter.js +74 -0
  92. package/lib-mjs/editor/utils/selectionConverter.js.map +1 -0
  93. package/lib-mjs/index.d.ts +3 -0
  94. package/lib-mjs/index.js +2 -0
  95. package/lib-mjs/index.js.map +1 -0
  96. package/lib-mjs/publicTypes/BeforePasteAdapterEvent.d.ts +15 -0
  97. package/lib-mjs/publicTypes/BeforePasteAdapterEvent.js +2 -0
  98. package/lib-mjs/publicTypes/BeforePasteAdapterEvent.js.map +1 -0
  99. package/lib-mjs/publicTypes/EditorAdapterOptions.d.ts +20 -0
  100. package/lib-mjs/publicTypes/EditorAdapterOptions.js +2 -0
  101. package/lib-mjs/publicTypes/EditorAdapterOptions.js.map +1 -0
  102. 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;