UNPKG

igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

182 lines (181 loc) 5.54 kB
import { ChangeDetectorRef, ElementRef, QueryList, OnInit, OnDestroy, EventEmitter } from '@angular/core'; import { IgxToggleDirective } from '../directives/toggle/toggle.directive'; import { IgxDropDownBase } from './drop-down.base'; import { DropDownActionKey } from './drop-down.common'; import { IDropDownBase } from './drop-down.common'; import { CancelableEventArgs, CancelableBrowserEventArgs } from '../core/utils'; import { IgxSelectionAPIService } from '../core/selection'; import { Subject } from 'rxjs'; import { IgxDropDownItemBase } from './drop-down-item.base'; import { OverlaySettings } from '../services'; /** * **Ignite UI for Angular DropDown** - * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/drop_down.html) * * The Ignite UI for Angular Drop Down displays a scrollable list of items which may be visually grouped and * supports selection of a single item. Clicking or tapping an item selects it and closes the Drop Down * * Example: * ```html * <igx-drop-down> * <igx-drop-down-item *ngFor="let item of items" disabled={{item.disabled}} isHeader={{item.header}}> * {{ item.value }} * </igx-drop-down-item> * </igx-drop-down> * ``` */ export declare class IgxDropDownComponent extends IgxDropDownBase implements IDropDownBase, OnInit, OnDestroy { protected elementRef: ElementRef; protected cdr: ChangeDetectorRef; protected selection: IgxSelectionAPIService; protected destroy$: Subject<boolean>; protected toggleDirective: IgxToggleDirective; /** * @hidden * @internal */ children: QueryList<IgxDropDownItemBase>; /** * Gets/sets whether items take focus. Disabled by default. * When enabled, drop down items gain tab index and are focused when active - * this includes activating the selected item when opening the drop down and moving with keyboard navigation. * * Note: Keep that focus shift in mind when using the igxDropDownItemNavigation directive * and ensure it's placed either on each focusable item or a common ancestor to allow it to handle keyboard events. * * ```typescript * // get * let dropDownAllowsItemFocus = this.dropdown.allowItemsFocus; * ``` * * ```html * <!--set--> * <igx-drop-down [allowItemsFocus]='true'></igx-drop-down> * ``` */ allowItemsFocus: boolean; id: string; /** Id of the internal listbox of the drop down */ readonly listId: string; /** * Emitted before the dropdown is opened * * ```html * <igx-drop-down (onOpening)='handleOpening()'></igx-drop-down> * ``` */ onOpening: EventEmitter<CancelableEventArgs>; /** * Emitted after the dropdown is opened * * ```html * <igx-drop-down (onOpened)='handleOpened()'></igx-drop-down> * ``` */ onOpened: EventEmitter<void>; /** * Emitted before the dropdown is closed * * ```html * <igx-drop-down (onClosing)='handleClosing()'></igx-drop-down> * ``` */ onClosing: EventEmitter<CancelableBrowserEventArgs>; /** * Emitted after the dropdown is closed * * ```html * <igx-drop-down (onClosed)='handleClosed()'></igx-drop-down> * ``` */ onClosed: EventEmitter<void>; /** * Get currently selected item * * ```typescript * let currentItem = this.dropdown.selectedItem; * ``` */ readonly selectedItem: IgxDropDownItemBase; /** * Gets if the dropdown is collapsed * * ```typescript * let isCollapsed = this.dropdown.collapsed; * ``` */ readonly collapsed: boolean; protected readonly scrollContainer: any; constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, selection: IgxSelectionAPIService); /** * Opens the dropdown * * ```typescript * this.dropdown.open(); * ``` */ open(overlaySettings?: OverlaySettings): void; /** * Closes the dropdown * * ```typescript * this.dropdown.close(); * ``` */ close(): void; /** * Toggles the dropdown * * ```typescript * this.dropdown.toggle(); * ``` */ toggle(overlaySettings?: OverlaySettings): void; /** * Select an item by index * @param index of the item to select */ setSelectedItem(index: number): void; /** * Navigates to the item on the specified index * @param newIndex number */ navigateItem(index: number): void; /** * @hidden @internal */ onToggleOpening(e: CancelableEventArgs): void; /** * @hidden @internal */ onToggleOpened(): void; /** * @hidden @internal */ onToggleClosing(e: CancelableBrowserEventArgs): void; /** * @hidden @internal */ onToggleClosed(): void; /** * @hidden @internal */ ngOnDestroy(): void; protected scrollToItem(item: IgxDropDownItemBase): void; /** @hidden @internal */ calculateScrollPosition(item: IgxDropDownItemBase): number; /** * @hidden @internal */ ngOnInit(): void; /** Keydown Handler */ onItemActionKey(key: DropDownActionKey, event?: Event): void; /** * Handles the `onSelection` emit and the drop down toggle when selection changes * @hidden * @internal * @param newSelection * @param event */ selectItem(newSelection?: IgxDropDownItemBase, event?: Event): void; }