@alauda-fe/common
Version:
Alauda frontend team common codes.
84 lines (83 loc) • 3.63 kB
TypeScript
import { ElementRef, EventEmitter, QueryList } from '@angular/core';
import { ResizeCursor } from './util';
import * as i0 from "@angular/core";
export type DragRange = number | string;
export interface MutableOptions {
directions?: [boolean, boolean, boolean, boolean];
resizeThreshold?: number;
cursors?: {
move: string;
};
dragRange?: [DragRange, DragRange, DragRange, DragRange];
}
export declare const MUTABLE_BASIC_OPTIONS: MutableOptions;
export interface Point {
x: number;
y: number;
}
export declare class DragHandleDirective {
static ɵfac: i0.ɵɵFactoryDeclaration<DragHandleDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DragHandleDirective, "[aclDragHandle]", never, {}, {}, never, never, false, never>;
}
export declare class MutableDirective {
private readonly el;
private computedOptions;
/** Allow for stretch shrink, the default is open */
aclResizable: boolean;
/** Allow for drag and drop, the default is open */
aclDraggable: boolean;
/** Define drag boundary, as body */
aclDragBoundary: string | ElementRef<HTMLElement> | HTMLElement;
set aclMutableOptions(options: MutableOptions);
/** In the process of the resize triggering events */
readonly aclOnResize: EventEmitter<HTMLElement>;
/** Drag in the process of the triggering event */
readonly aclOnDrag: EventEmitter<HTMLElement>;
/** Emits when the user start drag. */
readonly aclDragStarted: EventEmitter<HTMLElement>;
readonly aclDragEnded: EventEmitter<HTMLElement>;
/** Emits when the user start resize */
readonly aclResizeStarted: EventEmitter<HTMLElement>;
readonly aclResizeEnded: EventEmitter<HTMLElement>;
handles: QueryList<ElementRef>;
isDragging: boolean;
isResizingX: boolean;
isResizingY: boolean;
mousePoint: {
x: number;
y: number;
};
parentBorder: {
left: number;
top: number;
};
elementBorder: {
left: number;
top: number;
right: number;
bottom: number;
};
element: HTMLElement;
private readonly _initCursor;
resizeCursor: ResizeCursor;
resizeInitXRight: number;
resizeInitYBottom: number;
onMouseDown(event: MouseEvent): void;
onMouseMove(event: MouseEvent): void;
onMouseUp(): void;
constructor(el: ElementRef<HTMLElement>);
/** Gets the boundary element, based on the `boundaryElement` value. */
private getBoundaryElement;
private ensureInParent;
dragElement(event: MouseEvent): void;
initDragging(event: MouseEvent): void;
setDragging(cursor: string, event: MouseEvent): void;
resizeElementX(event: MouseEvent): void;
resizeElementY(event: MouseEvent): void;
initResizing(event: MouseEvent): void;
setResizing(cursor: string, event: MouseEvent): void;
getMutableCursor(event: MouseEvent): string;
private isResizeOutOfBoundary;
static ɵfac: i0.ɵɵFactoryDeclaration<MutableDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<MutableDirective, "[aclMutable]", never, { "aclResizable": { "alias": "aclResizable"; "required": false; }; "aclDraggable": { "alias": "aclDraggable"; "required": false; }; "aclDragBoundary": { "alias": "aclDragBoundary"; "required": false; }; "aclMutableOptions": { "alias": "aclMutableOptions"; "required": false; }; }, { "aclOnResize": "aclOnResize"; "aclOnDrag": "aclOnDrag"; "aclDragStarted": "aclDragStarted"; "aclDragEnded": "aclDragEnded"; "aclResizeStarted": "aclResizeStarted"; "aclResizeEnded": "aclResizeEnded"; }, ["handles"], never, false, never>;
}