import * as i0 from '@angular/core'; import { OnInit, OnDestroy, EventEmitter } from '@angular/core'; import { Subject } from 'rxjs'; /** * The edges that the resize event were triggered on */ interface Edges { top?: boolean | number; bottom?: boolean | number; left?: boolean | number; right?: boolean | number; [key: string]: boolean | number | undefined; } /** * The bounding rectangle of the resized element */ interface BoundingRectangle { top: number; bottom: number; left: number; right: number; height?: number; width?: number; scrollTop?: number; scrollLeft?: number; [key: string]: number | undefined; } /** * The `$event` object that is passed to the resize events */ interface ResizeEvent { rectangle: BoundingRectangle; edges: Edges; } interface ResizeCursors { topLeft: string; topRight: string; bottomLeft: string; bottomRight: string; leftOrRight: string; topOrBottom: string; } /** * Place this on an element to make it resizable. For example: * * ```html *
*
* ``` * Or in case they are sibling elements: * ```html *
*
* ``` */ declare class ResizableDirective implements OnInit, OnDestroy { /** * A function that will be called before each resize event. Return `true` to allow the resize event to propagate or `false` to cancel it */ validateResize: (resizeEvent: ResizeEvent) => boolean; /** * Set to `true` to enable a temporary resizing effect of the element in between the `resizeStart` and `resizeEnd` events. */ enableGhostResize: boolean; /** * A snap grid that resize events will be locked to. * * e.g. to only allow the element to be resized every 10px set it to `{left: 10, right: 10}` */ resizeSnapGrid: Edges; /** * The mouse cursors that will be set on the resize edges */ resizeCursors: Partial; /** * Define the positioning of the ghost element (can be fixed or absolute) */ ghostElementPositioning: 'fixed' | 'absolute'; /** * Allow elements to be resized to negative dimensions */ allowNegativeResizes: boolean; /** * The mouse move throttle in milliseconds, default: 50 ms */ mouseMoveThrottleMS: number; /** * Called when the mouse is pressed and a resize event is about to begin. `$event` is a `ResizeEvent` object. */ resizeStart: EventEmitter; /** * Called as the mouse is dragged after a resize event has begun. `$event` is a `ResizeEvent` object. */ resizing: EventEmitter; /** * Called after the mouse is released after a resize event. `$event` is a `ResizeEvent` object. */ resizeEnd: EventEmitter; /** * @hidden */ mouseup: Subject<{ clientX: number; clientY: number; edges?: Edges; }>; /** * @hidden */ mousedown: Subject<{ clientX: number; clientY: number; edges?: Edges; }>; /** * @hidden */ mousemove: Subject<{ clientX: number; clientY: number; edges?: Edges; event: MouseEvent | TouchEvent; }>; private pointerEventListeners; private destroy$; private platformId; private renderer; private elm; private zone; private rendererFactory; private document; /** * @hidden */ constructor(); /** * @hidden */ ngOnInit(): void; /** * @hidden */ ngOnDestroy(): void; private setElementClass; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * An element placed inside a `mwlResizable` directive to be used as a drag and resize handle * * For example * * ```html *
*
*
* ``` * Or in case they are sibling elements: * ```html *
*
* ``` */ declare class ResizeHandleDirective implements OnInit, OnDestroy { private renderer; private element; private zone; private resizableDirective; /** * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on */ resizeEdges: Edges; /** * Reference to ResizableDirective in case if handle is not located inside of element with ResizableDirective */ resizableContainer: ResizableDirective; private eventListeners; private destroy$; ngOnInit(): void; ngOnDestroy(): void; /** * @hidden */ onMousedown(event: MouseEvent | TouchEvent, clientX: number, clientY: number): void; /** * @hidden */ onMouseup(clientX: number, clientY: number): void; private get resizable(); private onMousemove; private unsubscribeEventListeners; private listenOnTheHost; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated import standalone `ResizableDirective` / `ResizeHandleDirective` directives instead */ declare class ResizableModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { ResizableDirective, ResizableModule, ResizeHandleDirective }; export type { BoundingRectangle, Edges, ResizeCursors, ResizeEvent };