Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 75x 25x 25x 25x 225x 17x 25x | import { documentContainWacElements } from './documentContainWacElements'; import { isExcelDesktopDocument } from './isExcelDesktopDocument'; import { isExcelNotNativeEvent } from './isExcelNonNativeEvent'; import { isExcelOnlineDocument } from './isExcelOnlineDocument'; import { isGoogleSheetDocument } from './isGoogleSheetDocument'; import { isOneNoteDesktopDocument } from './isOneNoteDocument'; import { isPowerPointDesktopDocument } from './isPowerPointDesktopDocument'; import { isWordDesktopDocument } from './isWordDesktopDocument'; import { shouldConvertToSingleImage } from './shouldConvertToSingleImage'; import type { BeforePasteEvent, ClipboardData, EditorEnvironment, } from 'roosterjs-content-model-types'; /** * @internal */ export type GetSourceInputParams = { htmlAttributes: Record<string, string>; fragment: DocumentFragment; shouldConvertSingleImage: boolean; clipboardData: ClipboardData; environment: EditorEnvironment; }; /** * @internal * Represent the types of sources to handle in the Paste Plugin */ export type KnownPasteSourceType = | 'wordDesktop' | 'excelDesktop' | 'excelOnline' | 'powerPointDesktop' | 'googleSheets' | 'wacComponents' | 'default' | 'singleImage' | 'excelNonNativeEvent' | 'oneNoteDesktop'; /** * @internal */ export type GetSourceFunction = (props: GetSourceInputParams) => boolean; const getSourceFunctions = new Map<KnownPasteSourceType, GetSourceFunction>([ ['wordDesktop', isWordDesktopDocument], ['excelDesktop', isExcelDesktopDocument], ['excelOnline', isExcelOnlineDocument], ['powerPointDesktop', isPowerPointDesktopDocument], ['wacComponents', documentContainWacElements], ['googleSheets', isGoogleSheetDocument], ['singleImage', shouldConvertToSingleImage], ['excelNonNativeEvent', isExcelNotNativeEvent], ['oneNoteDesktop', isOneNoteDesktopDocument], ]); /** * @internal * This function tries to get the source of the Pasted content * @param event the before paste event * @param shouldConvertSingleImage Whether convert single image is enabled. * @returns The Type of pasted content, if no type found will return {KnownSourceType.Default} */ export function getPasteSource( event: BeforePasteEvent, shouldConvertSingleImage: boolean, environment: EditorEnvironment ): KnownPasteSourceType { const { htmlAttributes, clipboardData, fragment } = event; let result: KnownPasteSourceType | null = null; const param: GetSourceInputParams = { htmlAttributes, fragment, shouldConvertSingleImage, clipboardData, environment, }; getSourceFunctions.forEach((func, key) => { if (!result && func(param)) { result = key; } }); return result ?? 'default'; } |