@nova-ui/bits
Version:
SolarWinds Nova Framework
91 lines (90 loc) • 3.64 kB
TypeScript
import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, Renderer2, SimpleChanges } from "@angular/core";
import { IResizeProperties, ResizeDirection, ResizeUnit } from "./public-api";
import { EventBusService } from "../../../services/event-bus.service";
import { UtilService } from "../../../services/util.service";
import * as i0 from "@angular/core";
/**
* @ignore
* <example-url>./../examples/index.html#/resizer</example-url>
*/
export declare class ResizerDirective implements AfterViewInit, OnChanges, OnDestroy {
private elRef;
private renderer;
private utilService;
private _element;
private ngZone;
private eventBusService;
/**
* Direction in which element can be resizable. can be "top", "right", "left" and "bottom"
*/
private _direction;
set resizerDirection(direction: ResizeDirection);
get resizerDirection(): ResizeDirection;
/**
* Sets custom size of resizable element
*/
protected _size: number;
/**
* Disables element resizing
*/
private _disabled;
set resizerDisabled(isDisabled: boolean);
get resizerDisabled(): boolean;
/**
* Choose resize value of your element(pixel, percent). By default pixels are used.
*/
resizerValue: ResizeUnit;
/**
* Switch to mode in which resizer change parent's and sibling's flex-basis (layout-specific)
*/
isMultiple: boolean;
/**
* Emits new size of element on which directive was applied
*/
resizerSizeChanged: EventEmitter<string>;
protected resizePropObj: IResizeProperties;
protected parentContainerNode: HTMLElement;
protected resizerSplit: HTMLElement;
protected targetElement: ElementRef;
protected resizeClass: string;
protected resizeGutter: HTMLElement;
protected offsetSize: number;
private _resizeElement;
private _oldSize;
private _isDragging;
private _isFirstTimeInteracting;
private _isHovering;
private resizeObserver?;
private resizeSubscription;
private eventSubscriptions;
private mouseUpUnlisten;
private mouseMoveUnlisten;
private sibling;
constructor(elRef: ElementRef, renderer: Renderer2, utilService: UtilService, _element: ElementRef, ngZone: NgZone, eventBusService: EventBusService);
ngOnChanges(changes: SimpleChanges): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
protected addResizeObserver(): void;
protected addSubscription(): void;
protected onSizeChanged(newSize: string): void;
protected refreshStyle(): void;
protected unlistenEvents(): void;
protected appendEvents(): void;
protected isResizeHorizontal(): boolean;
protected isAtTheBeginning(): boolean;
private switchDisabledClasses;
private appendResizeElement;
private unlistenResizeEvents;
private onMouseEnter;
private onMouseLeave;
private onMouseMove;
private onMouseDown;
private onMouseUp;
private calculatePosition;
private applyNewSize;
private updateSize;
private calculateNativeElementSize;
private calculateSiblingSize;
static ɵfac: i0.ɵɵFactoryDeclaration<ResizerDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<ResizerDirective, "[nuiResizer]", never, { "resizerDirection": { "alias": "resizerDirection"; "required": false; }; "resizerDisabled": { "alias": "resizerDisabled"; "required": false; }; "resizerValue": { "alias": "resizerValue"; "required": false; }; "isMultiple": { "alias": "isMultiple"; "required": false; }; }, { "resizerSizeChanged": "resizerSizeChanged"; }, never, never, false, never>;
}