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 | 1x 1x 36x 36x 36x 36x 36x 36x 36x 36x 36x 36x 8x 8x 8x 36x 36x 36x | import { rotateCoordinate } from '../utils/imageEditUtils'; import type { DragAndDropHandler } from '../../pluginUtils/DragAndDrop/DragAndDropHandler'; import type { ImageResizeMetadataFormat } from 'roosterjs-content-model-types'; import type { DragAndDropContext } from '../types/DragAndDropContext'; /** * @internal * The resize drag and drop handler */ export const Resizer: DragAndDropHandler<DragAndDropContext, ImageResizeMetadataFormat> = { onDragStart: ({ editInfo }) => ({ ...editInfo }), onDragging: ({ x, y, editInfo, options }, e, base, deltaX, deltaY) => { Eif ( base.heightPx && base.widthPx && options.minWidth !== undefined && options.minHeight !== undefined ) { const ratio = base.widthPx > 0 && base.heightPx > 0 ? (base.widthPx * 1.0) / base.heightPx : 0; [deltaX, deltaY] = rotateCoordinate(deltaX, deltaY, editInfo.angleRad ?? 0); const horizontalOnly = x == ''; const verticalOnly = y == ''; const shouldPreserveRatio = !(horizontalOnly || verticalOnly) && (options.preserveRatio || e.shiftKey); let newWidth = horizontalOnly ? base.widthPx : Math.max(base.widthPx + deltaX * (x == 'w' ? -1 : 1), options.minWidth); let newHeight = verticalOnly ? base.heightPx : Math.max(base.heightPx + deltaY * (y == 'n' ? -1 : 1), options.minHeight); if (shouldPreserveRatio && ratio > 0) { Iif (ratio > 1) { // first sure newHeight is right,calculate newWidth newWidth = newHeight * ratio; if (newWidth < options.minWidth) { newWidth = options.minWidth; newHeight = newWidth / ratio; } } else { // first sure newWidth is right,calculate newHeight newHeight = newWidth / ratio; Iif (newHeight < options.minHeight) { newHeight = options.minHeight; newWidth = newHeight * ratio; } } } editInfo.widthPx = newWidth; editInfo.heightPx = newHeight; return true; } else { return false; } }, }; |