@syncfusion/ej2-documenteditor
Version:
Feature-rich document editor control with built-in support for context menu, options pane and dialogs.
403 lines (402 loc) • 10.1 kB
TypeScript
import { Dictionary } from '../../base/dictionary';
import { DocumentEditor } from '../../document-editor';
import { IWidget, ImageElementBox, Page, ShapeElementBox } from '../viewer/page';
import { Point, ImagePointInfo } from './editor-helper';
import { BaseHistoryInfo } from '../editor-history/base-history-info';
import { DocumentHelper } from '../viewer';
/**
* Image resizer implementation.
*/
export declare class ImageResizer {
private documentHelper;
/**
* @private
*/
owner: DocumentEditor;
private currentImageElementBoxIn;
/**
* @private
*/
resizeContainerDiv: HTMLDivElement;
/**
* @private
*/
topLeftRect: HTMLDivElement;
/**
* @private
*/
topMiddleRect: HTMLDivElement;
/**
* @private
*/
topRightRect: HTMLDivElement;
/**
* @private
*/
bottomLeftRect: HTMLDivElement;
/**
* @private
*/
bottomMiddleRect: HTMLDivElement;
/**
* @private
*/
bottomRightRect: HTMLDivElement;
/**
* @private
*/
leftMiddleRect: HTMLDivElement;
/**
* @private
*/
rightMiddleRect: HTMLDivElement;
/**
* @private
*/
topLeftRectParent: HTMLDivElement;
/**
* @private
*/
topMiddleRectParent: HTMLDivElement;
/**
* @private
*/
topRightRectParent: HTMLDivElement;
/**
* @private
*/
bottomLeftRectParent: HTMLDivElement;
/**
* @private
*/
bottomMiddleRectParent: HTMLDivElement;
/**
* @private
*/
bottomRightRectParent: HTMLDivElement;
/**
* @private
*/
leftMiddleRectParent: HTMLDivElement;
/**
* @private
*/
rightMiddleRectParent: HTMLDivElement;
/**
* @private
*/
resizeMarkSizeIn: number;
/**
* @private
*/
selectedImageWidget: Dictionary<IWidget, SelectedImageInfo>;
/**
* @private
*/
baseHistoryInfo: BaseHistoryInfo;
private imageResizerDiv;
/**
* @private
*/
isImageResizing: boolean;
/**
* @private
*/
isImageResizerVisible: boolean;
/**
* @private
*/
currentPage: Page;
/**
* @private
*/
isImageMoveToNextPage: boolean;
/**
* @private
*/
imageResizerDivElement: HTMLDivElement;
/**
* @private
*/
imageResizerPoints: ImageResizingPoints;
/**
* @private
*/
selectedResizeElement: HTMLElement;
/**
* @private
*/
topValue: number;
/**
* @private
*/
leftValue: number;
/**
* Gets or Sets the current image element box.
*
* @private
* @returns {ImageElementBox | ShapeElementBox} - Returns the image element.
*/
/**
* @param {ImageElementBox | ShapeElementBox} value - Specifies the current element box.
*/
currentImageElementBox: ImageElementBox | ShapeElementBox;
/**
* Gets or Sets the resize mark size.
*
* @private
* @returns {number} - Returns resize mark size
*/
/**
* @private
* @param {number} value - Specifies resize mark size.
*/
resizeMarkSize: number;
/**
* @returns {boolean} - Returns the shape size.
*/
readonly isShapeResize: boolean;
/**
* Constructor for image resizer module.
*
* @param {DocumentEditor} node - Specfies the document editor
* @param {DocumentHelper} documentHelper - Specified the document helper
* @private
*/
constructor(node: DocumentEditor, documentHelper: DocumentHelper);
private readonly viewer;
private getModuleName;
/**
* Sets image resizer position.
*
* @param {number} x - Specifies for image resizer left value.
* @param {number} y - Specifies for image resizer top value.
* @param {number} width - Specifies for image resizer width value.
* @param {number} height - Specifies for image resizer height value.
* @private
* @returns {void}
*/
setImageResizerPositions(x: number, y: number, width: number, height: number): void;
/**
* Creates image resizer DOM element.
*
* @private
* @returns {void}
*/
initializeImageResizer(): void;
/**
* Position an image resizer
*
* @private
* @param {ImageElementBox} elementBox - Specifies the image position.
* @returns {void}
*/
positionImageResizer(elementBox: ImageElementBox | ShapeElementBox): void;
/**
* Shows the image resizer.
*
* @private
* @returns {void}
*/
showImageResizer(): void;
/**
* Hides the image resizer.
*
* @private
* @returns {void}
*/
hideImageResizer(): void;
/**
* Initialize the resize marks.
*
* @private
* @param {HTMLElement} resizeDiv - Specifies to appending resizer container div element.
* @param {ImageResizer} imageResizer - Specifies to creating div element of each position.
* @returns {void}
*/
initResizeMarks(resizeDiv: HTMLElement, imageResizer: ImageResizer): HTMLDivElement;
/**
* Sets the image resizer position.
*
* @private
* @param {number} left - Specifies for image resizer left value.
* @param {number} top - Specifies for image resizer top value.
* @param {number} width - Specifies for image resizer width value.
* @param {number} height - Specifies for image resizer height value.
* @param {ImageResizer} imageResizer - Specifies for image resizer.
* @returns {void}
*/
setImageResizerPosition(left: number, top: number, width: number, height: number, imageResizer: ImageResizer): void;
/**
* Sets the image resizing points.
*
* @private
* @param {ImageResizer} imageResizer - Specifies for position of each resizing elements.
* @returns {void}
*/
setImageResizingPoints(imageResizer: ImageResizer): void;
/**
* Initialize the resize container div element.
*
* @private
* @param {ImageResizer} imageResizer - Specifies for creating resize container div element.
* @returns {void}
*/
initResizeContainerDiv(imageResizer: ImageResizer): void;
/**
* Apply the properties of each resize rectangle element.
*
* @private
* @param {HTMLDivElement} resizeRectElement - Specifies for applying properties to resize rectangle element.
* @returns {void}
*/
applyProperties(resizeRectElement: HTMLDivElement): void;
/**
* Handles an image resizing.
*
* @private
* @param {number} x - Specifies for left value while resizing.
* @param {number} y - Specifies for top value while resizing.
* @returns {void}
*/
private handleImageResizing;
/**
* Handles image resizing on mouse.
*
* @private
* @param {MouseEvent} event - Specifies for image resizing using mouse event.
* @returns {void}
*/
handleImageResizingOnMouse(event: MouseEvent): void;
private topMiddleResizing;
private leftMiddleResizing;
private topRightResizing;
private topLeftResizing;
private bottomRightResizing;
private bottomLeftResizing;
private getOuterResizingPoint;
private getInnerResizingPoint;
/**
* Handles image resizing on touch.
*
* @private
* @param {TouchEvent} touchEvent - Specifies for image resizing using touch event.
* @returns {void}
*/
handleImageResizingOnTouch(touchEvent: TouchEvent): void;
/**
* Gets the image point of mouse.
*
* @private
* @param {Point} touchPoint - Specifies for resizer cursor position.
* @returns {ImagePointInfo} - Returns image point
*/
getImagePoint(touchPoint: Point): ImagePointInfo;
private applyPropertiesForMouse;
/**
* Gets the image point of touch.
*
* @private
* @param {Point} touchPoints - Specifies for resizer cursor position.
* @returns {ImagePointInfo} - Returns image point info.
*/
getImagePointOnTouch(touchPoints: Point): ImagePointInfo;
private applyPropertiesForTouch;
/**
* @private
* @returns {void}
*/
mouseUpInternal(): void;
/**
* Initialize history for image resizer.
*
* @private
* @param {ImageResizer} imageResizer - Specifies for image resizer.
* @param {WImage} imageContainer - Specifies for an image.
* @returns {void}
*/
initHistoryForImageResizer(imageContainer: ImageElementBox): void;
/**
* Updates histroy for image resizer.
*
* @private
* @returns {void}
*/
updateHistoryForImageResizer(): void;
/**
* Updates image resize container when applying zooming
*
* @private
* @returns {void}
*/
updateImageResizerPosition(): void;
/**
* Dispose the internal objects which are maintained.
*
* @private
* @returns {void}
*/
destroy(): void;
}
/**
* @private
*/
export declare class ImageResizingPoints {
/**
* @private
*/ resizeContainerDiv: Point;
/**
* @private
*/
topLeftRectParent: Point;
/**
* @private
*/
topMiddleRectParent: Point;
/**
* @private
*/
topRightRectParent: Point;
/**
* @private
*/
bottomLeftRectParent: Point;
/**
* @private
*/
bottomMiddleRectParent: Point;
/**
* @private
*/
bottomRightRectParent: Point;
/**
* @private
*/
leftMiddleRectParent: Point;
/**
* @private
*/
rightMiddleRectParent: Point;
}
/**
* @private
*/
export declare class SelectedImageInfo {
private heightIn;
private widthIn;
height: number;
width: number;
/**
* Constructor for selected image info class.
* @param {number} height - Specifies for height value.
* @param {number} width - Specifies for width value.
*/
constructor(height: number, width: number);
}
/**
* @private
*/
export interface LeftTopInfo {
left: number;
top: number;
}