1 | import { Renderer2, ElementRef, OnInit, EventEmitter, OnDestroy, NgZone, OnChanges, SimpleChanges } from '@angular/core';
|
2 | import { Subject } from 'rxjs';
|
3 | import { Edges } from './interfaces/edges.interface';
|
4 | import { ResizeEvent } from './interfaces/resize-event.interface';
|
5 | export interface ResizeCursors {
|
6 | topLeft: string;
|
7 | topRight: string;
|
8 | bottomLeft: string;
|
9 | bottomRight: string;
|
10 | leftOrRight: string;
|
11 | topOrBottom: string;
|
12 | }
|
13 | export 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 | */
|
30 | export 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 | }
|