import { Renderer2, ElementRef, OnInit, EventEmitter, OnDestroy, NgZone } from '@angular/core'; import { Subject } from 'rxjs'; import { Edges } from './interfaces/edges.interface'; import { ResizeEvent } from './interfaces/resize-event.interface'; export interface ResizeCursors { topLeft: string; topRight: string; bottomLeft: string; bottomRight: string; leftOrRight: string; topOrBottom: string; } export declare const MOUSE_MOVE_THROTTLE_MS: number; /** * Place this on an element to make it resizable. For example: * * ```html *
*
* ``` * Or in case they are sibling elements: * ```html *
*
* ``` */ export declare class ResizableDirective implements OnInit, OnDestroy { private platformId; private renderer; elm: ElementRef; private zone; /** * 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: ResizeCursors; /** * 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 | undefined; }>; /** * @hidden */ mousedown: Subject<{ clientX: number; clientY: number; edges?: Edges | undefined; }>; /** * @hidden */ mousemove: Subject<{ clientX: number; clientY: number; edges?: Edges | undefined; event: MouseEvent | TouchEvent; }>; private pointerEventListeners; private destroy$; /** * @hidden */ constructor(platformId: any, renderer: Renderer2, elm: ElementRef, zone: NgZone); /** * @hidden */ ngOnInit(): void; /** * @hidden */ ngOnDestroy(): void; private setElementClass; }