UNPKG

4.09 kBTypeScriptView Raw
1import { Renderer2, ElementRef, OnInit, EventEmitter, OnDestroy, NgZone, OnChanges, SimpleChanges } from '@angular/core';
2import { Subject } from 'rxjs';
3import { Edges } from './interfaces/edges.interface';
4import { ResizeEvent } from './interfaces/resize-event.interface';
5export interface ResizeCursors {
6 topLeft: string;
7 topRight: string;
8 bottomLeft: string;
9 bottomRight: string;
10 leftOrRight: string;
11 topOrBottom: string;
12}
13export declare const MOUSE_MOVE_THROTTLE_MS: number;
14/**
15 * Place this on an element to make it resizable. For example:
16 *
17 * ```html
18 * <div
19 * mwlResizable
20 * [resizeEdges]="{bottom: true, right: true, top: true, left: true}"
21 * [enableGhostResize]="true">
22 * </div>
23 * ```
24 * Or in case they are sibling elements:
25 * ```html
26 * <div mwlResizable #resizableElement="mwlResizable"></div>
27 * <div mwlResizeHandle [resizableContainer]="resizableElement" [resizeEdges]="{bottom: true, right: true}"></div>
28 * ```
29 */
30export declare class ResizableDirective implements OnInit, OnChanges, OnDestroy {
31 private platformId;
32 private renderer;
33 elm: ElementRef;
34 private zone;
35 /**
36 * A function that will be called before each resize event. Return `true` to allow the resize event to propagate or `false` to cancel it
37 */
38 validateResize: (resizeEvent: ResizeEvent) => boolean;
39 /**
40 * The edges that an element can be resized from. Pass an object like `{top: true, bottom: false}`. By default no edges can be resized.
41 * @deprecated use a resize handle instead that positions itself to the side of the element you would like to resize
42 */
43 resizeEdges: Edges;
44 /**
45 * Set to `true` to enable a temporary resizing effect of the element in between the `resizeStart` and `resizeEnd` events.
46 */
47 enableGhostResize: boolean;
48 /**
49 * A snap grid that resize events will be locked to.
50 *
51 * e.g. to only allow the element to be resized every 10px set it to `{left: 10, right: 10}`
52 */
53 resizeSnapGrid: Edges;
54 /**
55 * The mouse cursors that will be set on the resize edges
56 */
57 resizeCursors: ResizeCursors;
58 /**
59 * Mouse over thickness to active cursor.
60 * @deprecated invalid when you migrate to use resize handles instead of setting resizeEdges on the element
61 */
62 resizeCursorPrecision: number;
63 /**
64 * Define the positioning of the ghost element (can be fixed or absolute)
65 */
66 ghostElementPositioning: 'fixed' | 'absolute';
67 /**
68 * Allow elements to be resized to negative dimensions
69 */
70 allowNegativeResizes: boolean;
71 /**
72 * The mouse move throttle in milliseconds, default: 50 ms
73 */
74 mouseMoveThrottleMS: number;
75 /**
76 * Called when the mouse is pressed and a resize event is about to begin. `$event` is a `ResizeEvent` object.
77 */
78 resizeStart: EventEmitter<ResizeEvent>;
79 /**
80 * Called as the mouse is dragged after a resize event has begun. `$event` is a `ResizeEvent` object.
81 */
82 resizing: EventEmitter<ResizeEvent>;
83 /**
84 * Called after the mouse is released after a resize event. `$event` is a `ResizeEvent` object.
85 */
86 resizeEnd: EventEmitter<ResizeEvent>;
87 /**
88 * @hidden
89 */
90 mouseup: Subject<{
91 clientX: number;
92 clientY: number;
93 edges?: Edges;
94 }>;
95 /**
96 * @hidden
97 */
98 mousedown: Subject<{
99 clientX: number;
100 clientY: number;
101 edges?: Edges;
102 }>;
103 /**
104 * @hidden
105 */
106 mousemove: Subject<{
107 clientX: number;
108 clientY: number;
109 edges?: Edges;
110 event: MouseEvent | TouchEvent;
111 }>;
112 private pointerEventListeners;
113 private destroy$;
114 private resizeEdges$;
115 /**
116 * @hidden
117 */
118 constructor(platformId: any, renderer: Renderer2, elm: ElementRef, zone: NgZone);
119 /**
120 * @hidden
121 */
122 ngOnInit(): void;
123 /**
124 * @hidden
125 */
126 ngOnChanges(changes: SimpleChanges): void;
127 /**
128 * @hidden
129 */
130 ngOnDestroy(): void;
131 private setElementClass;
132}