@eclipse-scout/core
Version:
Eclipse Scout runtime
83 lines • 3.33 kB
TypeScript
/// <reference types="jquery" />
import { EnumObject, InitModelOf, Insets, ObjectWithType, Rectangle, ResizableModel, SomeRequired } from '../index';
import MouseDownEvent = JQuery.MouseDownEvent;
import MouseUpEvent = JQuery.MouseUpEvent;
import MouseMoveEvent = JQuery.MouseMoveEvent;
/**
* Resizable makes a DOM element resizable by adding resize handlers to all edges of the given model.$container.
* The following events are triggered on the DOM element:
* - resizeStep: triggered during resizing.
* - resizeEnd: triggered when resizing ends.
*/
export declare class Resizable implements ResizableModel, ObjectWithType {
model: ResizableModel;
initModel: SomeRequired<this['model'], '$container'>;
objectType: string;
modes: ResizableMode[];
boundaries: Insets;
useOverlay: boolean;
$container: JQuery;
$window: JQuery<Window>;
$resizableS: JQuery;
$resizableE: JQuery;
$resizableSE: JQuery;
$resizableW: JQuery;
$resizableSW: JQuery;
$resizableN: JQuery;
$resizableNW: JQuery;
$resizableNE: JQuery;
$resizingOverlay: JQuery;
protected _context: ResizableContext;
protected _mouseDownHandler: (event: MouseDownEvent) => void;
protected _mouseUpHandler: (event: MouseUpEvent) => void;
protected _mouseMoveHandler: (event: MouseMoveEvent) => void;
protected _keyDownHandler: (event: KeyboardEvent) => void;
protected _resizeHandler: (newBounds: Rectangle) => void;
constructor();
static MODES: {
readonly SOUTH: "s";
readonly EAST: "e";
readonly WEST: "w";
readonly NORTH: "n";
};
init(model: InitModelOf<Resizable>): void;
setModes(modes?: ResizableMode[]): void;
setBoundaries(boundaries?: Insets): void;
protected _appendResizeHandles(): void;
protected _appendResizeHandle(edge: ResizableEdge): JQuery;
protected _calculateResizeHandlersVisibility(): void;
protected _hasMode(mode: ResizableMode): boolean;
protected _installRemoveHandler(): void;
destroy(): void;
protected _onMouseDown(event: MouseDownEvent): void;
protected _onMouseUp(event: MouseUpEvent): void;
/**
* Finishes the resizing by cleaning up all temporary states and triggering the `resizeEnd` event with the initial and new bounds.
*/
finish(): void;
/**
* Cancels the resizing if it is in progress.
*/
cancel(): void;
protected _onKeyDown(event: KeyboardEvent): void;
protected _cleanup(): void;
protected _onMouseMove(event: MouseMoveEvent): void;
protected _computeBounds(event: MouseMoveEvent): Rectangle;
protected _resize(newBounds: Rectangle): void;
protected _resizeEnd(): void;
protected _cropToBoundaries(newBounds: Rectangle): void;
protected _boundaryValueSet(value: number): boolean;
protected _calcDistance(eventA: MouseDownEvent, eventB: MouseMoveEvent): number[];
}
export interface ResizableContext {
initialBounds: Rectangle;
currentBounds: Rectangle;
minBounds: Rectangle;
maxBounds: Rectangle;
distance: number[];
edge: ResizableEdge;
mousedownEvent: MouseDownEvent;
}
export type ResizableMode = EnumObject<typeof Resizable.MODES>;
export type ResizableEdge = 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w' | 'nw';
//# sourceMappingURL=Resizable.d.ts.map