11import { convertDomSelectionToRangeEx , convertRangeExToDomSelection } from './selectionConverter' ;
22import { createDefaultHtmlSanitizerOptions } from 'roosterjs-editor-dom' ;
3+ import type { ContentModelBeforePasteEvent } from '../../publicTypes/ContentModelBeforePasteEvent' ;
34import {
45 KnownAnnounceStrings as OldKnownAnnounceStrings ,
56 PasteType as OldPasteType ,
@@ -133,20 +134,23 @@ export function oldEventToNewEvent<TOldEvent extends OldEvent>(
133134
134135 case PluginEventType . BeforePaste :
135136 const refBeforePasteEvent = refEvent ?. eventType == 'beforePaste' ? refEvent : undefined ;
137+ const cmBeforePasteEvent = input as ContentModelBeforePasteEvent ;
136138
137139 return {
138140 eventType : 'beforePaste' ,
139141 clipboardData : input . clipboardData ,
140- customizedMerge : refBeforePasteEvent ?. customizedMerge ,
141- domToModelOption : refBeforePasteEvent ?. domToModelOption ?? {
142- additionalAllowedTags : [ ] ,
143- additionalDisallowedTags : [ ] ,
144- additionalFormatParsers : { } ,
145- formatParserOverride : { } ,
146- processorOverride : { } ,
147- styleSanitizers : { } ,
148- attributeSanitizers : { } ,
149- } ,
142+ customizedMerge :
143+ cmBeforePasteEvent . customizedMerge ?? refBeforePasteEvent ?. customizedMerge ,
144+ domToModelOption : cmBeforePasteEvent . domToModelOption ??
145+ refBeforePasteEvent ?. domToModelOption ?? {
146+ additionalAllowedTags : [ ] ,
147+ additionalDisallowedTags : [ ] ,
148+ additionalFormatParsers : { } ,
149+ formatParserOverride : { } ,
150+ processorOverride : { } ,
151+ styleSanitizers : { } ,
152+ attributeSanitizers : { } ,
153+ } ,
150154 eventDataCache : input . eventDataCache ,
151155 fragment : input . fragment ,
152156 htmlAfter : input . htmlAfter ,
@@ -349,7 +353,7 @@ export function newEventToOldEvent(input: NewEvent, refEvent?: OldEvent): OldEve
349353 const refBeforePasteEvent =
350354 refEvent ?. eventType == PluginEventType . BeforePaste ? refEvent : undefined ;
351355
352- return {
356+ const oldBeforePasteEvent : ContentModelBeforePasteEvent = {
353357 eventType : PluginEventType . BeforePaste ,
354358 clipboardData : input . clipboardData ,
355359 eventDataCache : input . eventDataCache ,
@@ -360,8 +364,12 @@ export function newEventToOldEvent(input: NewEvent, refEvent?: OldEvent): OldEve
360364 pasteType : PasteTypeNewToOld [ input . pasteType ] ,
361365 sanitizingOption :
362366 refBeforePasteEvent ?. sanitizingOption ?? createDefaultHtmlSanitizerOptions ( ) ,
367+ domToModelOption : input . domToModelOption ,
368+ customizedMerge : input . customizedMerge ,
363369 } ;
364370
371+ return oldBeforePasteEvent ;
372+
365373 case 'beforeSetContent' :
366374 return {
367375 eventType : PluginEventType . BeforeSetContent ,
0 commit comments