js-draw
Version:
Draw pictures using a pen, touchscreen, or mouse! JS-draw is a drawing library for JavaScript and TypeScript.
72 lines (71 loc) • 2.61 kB
TypeScript
/**
* @internal
* @packageDocumentation
*/
import SerializableCommand from '../../commands/SerializableCommand';
import Editor from '../../Editor';
import { Mat33, Rect2, Point2 } from '@js-draw/math';
import Pointer from '../../Pointer';
import AbstractComponent from '../../components/AbstractComponent';
import Command from '../../commands/Command';
export default class Selection {
private editor;
private childwidgets;
private originalRegion;
private selectionTightBoundingBox;
private transformers;
private transform;
private selectedElems;
private outerContainer;
private innerContainer;
private backgroundElem;
private hasParent;
constructor(selectedElems: AbstractComponent[], editor: Editor, showContextMenu: (anchor: Point2) => void);
getBackgroundElem(): HTMLElement;
getTransform(): Mat33;
get preTransformRegion(): Rect2;
get region(): Rect2;
/**
* Computes and returns the bounding box of the selection without
* any additional padding. Computes directly from the elements that are selected.
* @internal
*/
computeTightBoundingBox(): Rect2;
get regionRotation(): number;
get preTransformedScreenRegion(): Rect2;
get preTransformedScreenRegionRotation(): number;
getScreenRegion(): Rect2;
get screenRegionRotation(): number;
setTransform(transform: Mat33, preview?: boolean): void;
private getDeltaZIndexToMoveSelectionToTop;
finalizeTransform(): void | Promise<void>;
/** Sends all selected elements to the bottom of the visible image. */
sendToBack(): SerializableCommand | null;
private static ApplyTransformationCommand;
private previewTransformCmds;
recomputeRegion(): boolean;
padRegion(): void;
getMinCanvasSize(): number;
getSelectedItemCount(): number;
updateUI(): void;
private removedFromImage;
private addRemoveSelectionFromImage;
private removeDeletedElemsFromSelection;
private activeHandle;
private backgroundDragging;
onDragStart(pointer: Pointer): boolean;
onDragUpdate(pointer: Pointer): void;
onDragEnd(): void;
onDragCancel(): void;
scrollTo(): boolean;
deleteSelectedObjects(): Command;
private selectionDuplicatedAnimationTimeout;
private runSelectionDuplicatedAnimation;
duplicateSelectedObjects(): Promise<Command>;
snapSelectedObjectsToGrid(): void;
setHandlesVisible(showHandles: boolean): void;
addTo(elem: HTMLElement): void;
setToPoint(point: Point2): void;
cancelSelection(): void;
getSelectedObjects(): AbstractComponent[];
}