import { AnimationEvent } from '@angular/animations'; import { Platform } from '@angular/cdk/platform'; import { AfterContentChecked, ElementRef, EventEmitter, NgZone, OnDestroy, Renderer2 } from '@angular/core'; import { Observable, Subject } from 'rxjs'; /** * Result of the toggle promise that indicates the state of the drawer. */ export declare type TsDrawerToggleResult = 'open' | 'close'; /** * Type of drawer display mode */ export declare type TsDrawerModes = 'overlay' | 'push'; /** * Type of drawer position */ export declare type TsDrawerPosition = 'start' | 'end'; export declare const TS_DRAWER_DEFAULT_COLLAPSE_SIZE = "3.75rem"; export declare const TS_DRAWER_DEFAULT_EXPAND_SIZE = "12.5rem"; /** * This drawer component corresponds to a drawer that is nested inside a {@link TsDrawerContainerComponent} * * @example * * * https://getterminus.github.io/ui-demos-release/components/drawer */ export declare class TsDrawerComponent implements AfterContentChecked, OnDestroy { elementRef: ElementRef; private platform; private ngZone; renderer: Renderer2; /** * Define animation state, defaults to void state */ animationState: 'open-instant' | 'open' | 'void' | 'void-shadow'; /** * Emits whenever the drawer has started animating. */ animationStarted: Subject; /** * Emits whenever the drawer is done animating. */ animationEnd: Subject; /** * Emits when the component is destroyed. */ private readonly destroyed; /** * Whether the drawer is initialized. Used for disabling the initial animation. */ private enableAnimations; /** * An observable that emits when the drawer mode changes. This is used by the drawer container to * to know when the mode changes so it can adapt the margins on the content. */ readonly modeChanged: Subject; /** * Collapsed drawer width * * @param value */ set collapsedSize(value: string); get collapsedSize(): string; _collapsedSize: string; /** * Expanded drawer width * * @param value */ set expandedSize(value: string); get expandedSize(): string; _expandedSize: string; /** * Hide shadow when drawer is collapsed * * @param value */ set hideShadowWhenCollapsed(value: boolean); get hideShadowWhenCollapsed(): boolean; private _hideShadowWhenCollapsed; /** * Define whether the drawer is open * * @param value */ set isExpanded(value: boolean); get isExpanded(): boolean; private _isExpanded; /** * Mode of the drawer, overlay or push * * @param value */ set mode(value: TsDrawerModes); get mode(): TsDrawerModes; private _mode; /** * The side that the drawer is attached to. * * @param value */ set position(value: TsDrawerPosition); get position(): TsDrawerPosition; private _position; /** * Define the aria role label, default to nothing */ role: string; /** * Event emitted when the drawer open state is changed. * * NOTE: This has to be async in order to avoid some issues with two-way bindings - setting isAsync to true. */ readonly expandedChange: EventEmitter; /** * Event emitted when the drawer has been expanded. */ get expandedStream(): Observable; /** * Event emitted when the drawer has started expanding. */ get expandedStart(): Observable; /** * Event emitted when the drawer has been collapsed. */ get collapsedStream(): Observable; /** * Event emitted when the drawer has started collapsing. */ get collapsedStart(): Observable; /** * Event emitted when the drawer's position changes. */ readonly positionChanged: EventEmitter; constructor(elementRef: ElementRef, platform: Platform, ngZone: NgZone, renderer: Renderer2); /** * Enable the animations after the lifecycle hooks have run, in order to avoid animating drawers that are open by default. */ ngAfterContentChecked(): void; /** * Complete the observable on destroy */ ngOnDestroy(): void; /** * Expand the drawer. * * @returns Promise */ expand(): Promise; /** * Collapse the drawer. * * @returns Promise */ collapse(): Promise; /** * Toggle this drawer. * * @param isOpen - whether the drawer should be open. * @returns Promise */ toggle(isOpen?: boolean): Promise; /** * We have to use a `HostListener` here in order to support both Ivy and ViewEngine. * In Ivy the `host` bindings will be merged when this class is extended, whereas in * ViewEngine they're overwritten. * TODO: we move this back into `host` once Ivy is turned on by default. * * @param event */ animationStartListener(event: AnimationEvent): void; /** * We have to use a `HostListener` here in order to support both Ivy and ViewEngine. * In Ivy the `host` bindings will be merged when this class is extended, whereas in * ViewEngine they're overwritten. * TODO: move this back into `host` once Ivy is turned on by default. * * @param event */ animationDoneListener(event: AnimationEvent): void; }