import { ChangeDetectorRef, EventEmitter, Renderer2, OnDestroy, ElementRef, AfterViewInit, NgZone } from '@angular/core'; import { Observable } from 'rxjs'; import { IArea } from './../interface/IArea'; import { SplitAreaDirective } from './split-area.directive'; import { IAreaSizeCalculation } from "../interface/calculation/IAreaSizeCalculation"; /** * angular-split * * Areas size are set in percentage of the split container. * Gutters size are set in pixels. * * So we set css 'flex-basis' property like this (where 0 <= area.size <= 1): * calc( { area.size * 100 }% - { area.size * nbGutter * gutterSize }px ); * * Examples with 3 visible areas and 2 gutters: * * | 10px 10px | * |---------------------[]---------------------[]------------------------------------| * | calc(20% - 4px) calc(20% - 4px) calc(60% - 12px) | * * * | 10px 10px | * |--------------------------[]--------------------------[]--------------------------| * | calc(33.33% - 6.667px) calc(33.33% - 6.667px) calc(33.33% - 6.667px) | * * * |10px 10px | * |[]----------------------------------------------------[]--------------------------| * |0 calc(66.66% - 13.333px) calc(33%% - 6.667px) | * * * 10px 10px | * |[][]------------------------------------------------------------------------------| * |0 0 calc(100% - 20px) | * */ export declare class SplitComponent implements AfterViewInit, OnDestroy { private ngZone; private elRef; private cdRef; private renderer; private _direction; direction: 'horizontal' | 'vertical'; private _useTransition; useTransition: boolean; private _disabled; disabled: boolean; private _width; width: number | null; private _height; height: number | null; private _gutterSize; gutterSize: number; private _gutterColor; gutterColor: string; private _gutterImageH; gutterImageH: string; private _gutterImageV; gutterImageV: string; private _dir; dir: 'ltr' | 'rtl'; dragStart: EventEmitter<{ gutterNum: number; sizes: number[]; }>; dragProgress: EventEmitter<{ gutterNum: number; sizes: number[]; }>; dragEnd: EventEmitter<{ gutterNum: number; sizes: number[]; }>; gutterClick: EventEmitter<{ gutterNum: number; sizes: number[]; }>; /** * notifies size changes on an area */ currentSizeChange: EventEmitter<{ areaOrder: number; size: number; }>; private transitionEndInternal; transitionEnd: Observable; readonly cssFlexdirection: "row" | "column"; readonly cssWidth: string; readonly cssHeight: string; readonly cssMinwidth: string; readonly cssMinheight: string; private defaultAreaSizeCalculation; private _areaSizeCalculation; areaSizeCalculation: IAreaSizeCalculation; readonly areaSizeCalculationToBeUsed: IAreaSizeCalculation; isViewInitialized: boolean; private isDragging; private draggingWithoutMove; private currentGutterNum; readonly displayedAreas: IArea[]; private readonly hidedAreas; private readonly dragListeners; private readonly dragStartValues; /** * last checked container with for not handling resize-events multiple times */ private lastCheckedContainerSizePx; constructor(ngZone: NgZone, elRef: ElementRef, cdRef: ChangeDetectorRef, renderer: Renderer2); addArea(comp: SplitAreaDirective): void; removeArea(comp: SplitAreaDirective): void; updateArea(comp: SplitAreaDirective, resetOrders: boolean, resetSizes: boolean): void; showArea(comp: SplitAreaDirective): void; hideArea(comp: SplitAreaDirective): void; /** * Min-Width of the container */ readonly containerMinWidth: number | undefined; /** * Min-Height of the container */ readonly containerMinHeight: number | undefined; ngAfterViewInit(): void; setMinSizeOnContainer: boolean; /** * Sum of all area minSizes + gutter sizes */ private getMinSizeOfAllDisplayedComponentsPlusGutterSize; /** * Sum of all area minSizes */ private getMinSizeOfAllDisplayedComponents; private getNbGutters; private build; /** * Creates an AreaSizeCalculation-Object of currently set instance parameters */ private createAreaSizeCalculationOptions; /** * Size of the container in pixels (corresponding to direction: height or width) */ private readonly containerSizePx; private refreshStyleSizes; startDragging(startEvent: MouseEvent | TouchEvent, gutterOrder: number, gutterNum: number): void; private dragEvent; private drag; private stopDragging; notify(type: 'start' | 'progress' | 'end' | 'click' | 'transitionEnd'): void; /** * Moves the gutter to it's max position between two areas * * @param gutterOrderIndex Index of the gutter to be moved */ moveGutterMax(gutterOrderIndex: number): void; /** * Moves the gutter to it's min position between two areas * * @param gutterOrderIndex Index of the gutter to be moved */ moveGutterMin(gutterOrderIndex: number): void; /** * Moves the gutter to given position in Pixels * * @param gutterOrderIndex Index of the gutter to be moved * @param positionInPx new gutter position in px * * @version 0.2.8 triggers Window-Resize */ moveGutterToPosition(gutterOrderIndex: number, positionInPx: number): void; ngOnDestroy(): void; handleWindowResize(): void; private fireSizeChanged; /** * Triggers the window-resize event, so component inside the (resized) areas can re-layout with given widths / heights */ private triggerWindowResize; }