@deepkit/desktop-ui
Version:
Library for desktop UI widgets in Angular 10+
161 lines (160 loc) • 8.11 kB
TypeScript
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, Injector, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
import { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';
import { Subscription } from 'rxjs';
import { WindowRegistry } from '../window/window-state';
import { OverlayStack, OverlayStackItem } from '../app';
import { ButtonComponent } from './button.component';
import * as i0 from "@angular/core";
export declare class DropdownComponent implements OnChanges, OnDestroy, AfterViewInit {
protected overlayService: Overlay;
protected injector: Injector;
protected overlayStack: OverlayStack;
protected viewContainerRef: ViewContainerRef;
protected cd: ChangeDetectorRef;
protected cdParent: ChangeDetectorRef;
protected registry?: WindowRegistry | undefined;
isOpen: boolean;
overlayRef?: OverlayRef;
protected lastFocusWatcher?: Subscription;
host?: HTMLElement | ElementRef;
allowedFocus: (HTMLElement | ElementRef)[] | (HTMLElement | ElementRef);
/**
* For debugging purposes.
*/
keepOpen?: true;
height?: number | string;
width?: number | string;
minWidth?: number | string;
minHeight?: number | string;
maxWidth?: number | string;
maxHeight?: number | string;
scrollbars: boolean;
/**
* Whether the dropdown aligns to the horizontal center.
*/
center: boolean;
/**
* Whether is styled as overlay
*/
overlay: boolean | '';
show?: boolean;
connectedPositions: ConnectedPosition[];
showChange: EventEmitter<boolean>;
shown: EventEmitter<any>;
hidden: EventEmitter<any>;
dropdownTemplate: TemplateRef<any>;
dropdown: ElementRef<HTMLElement>;
container?: TemplateRef<any> | undefined;
relativeToInitiator?: HTMLElement;
protected lastOverlayStackItem?: OverlayStackItem;
constructor(overlayService: Overlay, injector: Injector, overlayStack: OverlayStack, viewContainerRef: ViewContainerRef, cd: ChangeDetectorRef, cdParent: ChangeDetectorRef, registry?: WindowRegistry | undefined);
ngOnChanges(changes: SimpleChanges): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
key(event: KeyboardEvent): void;
toggle(target?: HTMLElement | ElementRef | MouseEvent): void;
setContainer(container: TemplateRef<any> | undefined): void;
open(target?: HTMLElement | ElementRef | MouseEvent | 'center', initiator?: HTMLElement | ElementRef | {
x: number;
y: number;
width: number;
height: number;
}): void;
setInitiator(initiator?: HTMLElement | ElementRef | {
x: number;
y: number;
width: number;
height: number;
}): void;
protected getInitiatorRelativeRect(): {
x: number;
y: number;
width: number;
height: number;
};
focus(): void;
close(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, [null, null, null, null, null, { skipSelf: true; }, { optional: true; }]>;
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "dui-dropdown", never, { "host": { "alias": "host"; "required": false; }; "allowedFocus": { "alias": "allowedFocus"; "required": false; }; "keepOpen": { "alias": "keepOpen"; "required": false; }; "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "minHeight": { "alias": "minHeight"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "scrollbars": { "alias": "scrollbars"; "required": false; }; "center": { "alias": "center"; "required": false; }; "overlay": { "alias": "overlay"; "required": false; }; "show": { "alias": "show"; "required": false; }; "connectedPositions": { "alias": "connectedPositions"; "required": false; }; }, { "showChange": "showChange"; "shown": "shown"; "hidden": "hidden"; }, never, ["*"], false, never>;
}
/**
* A directive to open the given dropdown on regular left click.
*/
export declare class OpenDropdownDirective implements AfterViewInit, OnDestroy {
protected elementRef: ElementRef;
protected button?: ButtonComponent | undefined;
openDropdown?: DropdownComponent;
openSub?: Subscription;
hiddenSub?: Subscription;
constructor(elementRef: ElementRef, button?: ButtonComponent | undefined);
ngOnDestroy(): void;
ngAfterViewInit(): void;
onClick(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<OpenDropdownDirective, [null, { optional: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<OpenDropdownDirective, "[openDropdown]", never, { "openDropdown": { "alias": "openDropdown"; "required": false; }; }, {}, never, never, false, never>;
}
/**
* A directive to open the given dropdown on mouseenter, and closes automatically on mouseleave.
* Dropdown keeps open when mouse enters the dropdown
*/
export declare class OpenDropdownHoverDirective implements OnDestroy {
protected elementRef: ElementRef;
openDropdownHover?: DropdownComponent;
/**
* In milliseconds.
*/
openDropdownHoverCloseTimeout: number;
openSub?: Subscription;
hiddenSub?: Subscription;
lastHide?: any;
constructor(elementRef: ElementRef);
ngOnDestroy(): void;
onHover(): void;
onLeave(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<OpenDropdownHoverDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<OpenDropdownHoverDirective, "[openDropdownHover]", never, { "openDropdownHover": { "alias": "openDropdownHover"; "required": false; }; "openDropdownHoverCloseTimeout": { "alias": "openDropdownHoverCloseTimeout"; "required": false; }; }, {}, never, never, false, never>;
}
/**
* A directive to open the given dropdown upon right click / context menu.
*/
export declare class ContextDropdownDirective {
contextDropdown?: DropdownComponent;
onClick($event: MouseEvent): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ContextDropdownDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<ContextDropdownDirective, "[contextDropdown]", never, { "contextDropdown": { "alias": "contextDropdown"; "required": false; }; }, {}, never, never, false, never>;
}
export declare class DropdownSplitterComponent {
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownSplitterComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownSplitterComponent, "dui-dropdown-splitter,dui-dropdown-separator", never, {}, {}, never, never, false, never>;
}
/**
* This directive is necessary if you want to load and render the dialog content
* only when opening the dialog. Without it, it is immediately rendered, which can cause
* performance and injection issues.
*
* ```typescript
* <dui-dropdown>
* <ng-container *dropdownContainer>
* Dynamically created upon dropdown instantiation.
* </ng-container>
* </dui-dropdown>
*
* ```
*/
export declare class DropdownContainerDirective {
protected dropdown: DropdownComponent;
template: TemplateRef<any>;
constructor(dropdown: DropdownComponent, template: TemplateRef<any>);
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownContainerDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownContainerDirective, "[dropdownContainer]", never, {}, {}, never, never, false, never>;
}
export declare class DropdownItemComponent {
protected dropdown: DropdownComponent;
selected: boolean;
disabled: boolean | '';
closeOnClick: boolean;
constructor(dropdown: DropdownComponent);
onClick(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownItemComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownItemComponent, "dui-dropdown-item", never, { "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; }; }, {}, never, ["*"], false, never>;
}