novo-elements
Version:
118 lines (114 loc) • 6.73 kB
TypeScript
import * as i0 from '@angular/core';
import { ElementRef, OnInit, AfterContentInit, AfterViewInit, OnDestroy, EventEmitter, QueryList, ChangeDetectorRef } from '@angular/core';
import { NovoButtonElement } from 'novo-elements/elements/button';
import * as i2 from 'novo-elements/elements/common';
import { HasOverlayCtor, CanDisableCtor, HasTabIndexCtor, NovoOverlayTemplateComponent, NovoOptgroup, NovoOption } from 'novo-elements/elements/common';
declare class NovoDropDownTrigger {
element: ElementRef;
constructor(element: ElementRef);
static ɵfac: i0.ɵɵFactoryDeclaration<NovoDropDownTrigger, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<NovoDropDownTrigger, "[dropdownTrigger]", never, {}, {}, never, never, false, never>;
}
declare class NovoDropdownBase {
constructor();
}
declare const NovoDropdownMixins: HasOverlayCtor & CanDisableCtor & HasTabIndexCtor & typeof NovoDropdownBase;
declare class NovoDropdownElement extends NovoDropdownMixins implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {
element: ElementRef;
private ref;
parentScrollSelector: string;
parentScrollAction: string;
containerClass: string;
side: 'default' | 'right' | 'above-below' | 'right-above-below' | 'center' | 'bottom' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
scrollStrategy: 'reposition' | 'block' | 'close';
/**
* Keep dropdown open after an item is selected
*/
keepOpen: boolean;
height: number;
width: number;
appendToBody: boolean;
toggled: EventEmitter<boolean>;
overlay: NovoOverlayTemplateComponent;
_button: NovoButtonElement;
_trigger: NovoDropDownTrigger;
optionGroups: QueryList<NovoOptgroup>;
options: QueryList<NovoOption>;
panel: ElementRef;
private clickHandler;
private closeHandler;
private _selectedOptionChanges;
/** The Subject to complete all subscriptions when destroyed. */
private _onDestroy;
/** The FocusKeyManager which handles focus. */
private _keyManager;
/** Whether the user should be allowed to select multiple options. */
get multiple(): boolean;
set multiple(value: boolean);
private _multiple;
/** Whether the dropdown should scroll to the active item whenever it is opened. */
get scrollToActiveItemOnOpen(): boolean;
set scrollToActiveItemOnOpen(value: boolean);
private _scrollToActiveItemOnOpen;
get button(): NovoDropDownTrigger | NovoButtonElement;
constructor(element: ElementRef, ref: ChangeDetectorRef);
ngOnInit(): void;
ngAfterContentInit(): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
focus(options?: FocusOptions): void;
openPanel(): void;
private findFirstSelectedOptionIndex;
set items(items: QueryList<NovoItemElement>);
/** Handles all keydown events on the dropdown. */
_handleKeydown(event: KeyboardEvent): void;
/** Handles keyboard events while the dropdown is closed. */
private _handleClosedKeydown;
/** Handles keyboard events when the dropdown is open. */
private _handleOpenKeydown;
private _watchPanelEvents;
private _watchSelectionEvents;
/**
* Clear any previous selected option and emit a selection change event for this option
*/
private _clearPreviousSelectedOption;
/** Sets up a key manager to listen to keyboard events on the overlay panel. */
private _initKeyManager;
/** Scrolls the active option into view. */
protected _scrollOptionIntoView(index: number): void;
/** Calculates the height of the select's options. */
private _getItemHeight;
static ɵfac: i0.ɵɵFactoryDeclaration<NovoDropdownElement, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NovoDropdownElement, "novo-dropdown", never, { "parentScrollSelector": { "alias": "parentScrollSelector"; "required": false; }; "parentScrollAction": { "alias": "parentScrollAction"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "side": { "alias": "side"; "required": false; }; "scrollStrategy": { "alias": "scrollStrategy"; "required": false; }; "keepOpen": { "alias": "keepOpen"; "required": false; }; "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "scrollToActiveItemOnOpen": { "alias": "scrollToActiveItemOnOpen"; "required": false; }; }, { "toggled": "toggled"; }, ["_button", "_trigger", "optionGroups", "options"], ["button,novo-button,[dropdownTrigger]", "*"], false, never>;
}
declare class NovoItemElement {
private dropdown;
element: ElementRef;
disabled: boolean;
keepOpen: boolean;
action: EventEmitter<any>;
active: boolean;
constructor(dropdown: NovoDropdownElement, element: ElementRef);
onClick(event: Event): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NovoItemElement, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NovoItemElement, "item", never, { "disabled": { "alias": "disabled"; "required": false; }; "keepOpen": { "alias": "keepOpen"; "required": false; }; }, { "action": "action"; }, never, ["*"], false, never>;
}
declare class NovoDropdownListElement implements AfterContentInit {
private dropdown;
items: QueryList<NovoItemElement>;
constructor(dropdown: NovoDropdownElement);
ngAfterContentInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NovoDropdownListElement, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NovoDropdownListElement, "list", never, {}, {}, ["items"], ["*"], false, never>;
}
declare class NovoDropDownItemHeaderElement {
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<NovoDropDownItemHeaderElement, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NovoDropDownItemHeaderElement, "dropdown-item-header", never, {}, {}, never, ["*"], false, never>;
}
declare class NovoDropdownModule {
static ɵfac: i0.ɵɵFactoryDeclaration<NovoDropdownModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<NovoDropdownModule, [typeof NovoDropdownElement, typeof NovoItemElement, typeof NovoDropdownListElement, typeof NovoDropDownItemHeaderElement, typeof NovoDropDownTrigger], [typeof i2.NovoOverlayModule, typeof i2.NovoOptionModule], [typeof NovoDropdownElement, typeof NovoItemElement, typeof NovoDropdownListElement, typeof NovoDropDownItemHeaderElement, typeof NovoDropDownTrigger]>;
static ɵinj: i0.ɵɵInjectorDeclaration<NovoDropdownModule>;
}
export { NovoDropDownItemHeaderElement, NovoDropDownTrigger, NovoDropdownElement, NovoDropdownListElement, NovoDropdownModule, NovoItemElement };