@funidata/ngx-fudis
Version:
Funidata Design System.
64 lines (63 loc) • 2.51 kB
TypeScript
import { OnDestroy, OnInit } from '@angular/core';
import { FudisIdService } from '../../services/id/id.service';
import { DropdownBaseDirective } from '../../directives/form/dropdown-base/dropdown-base.directive';
import { ButtonComponent } from '../button/button.component';
import { FudisInputSize } from '../../types/forms';
import { FudisDropdownMenuAlign } from '../../types/miscellaneous';
import { DropdownEventService } from '../../services/dropdown/dropdown-event.service';
import * as i0 from "@angular/core";
export declare class DropdownMenuComponent extends DropdownBaseDirective implements OnInit, OnDestroy {
private _idService;
private _dropdownEventService;
private _document;
private _parentButton;
constructor(_idService: FudisIdService, _dropdownEventService: DropdownEventService, _document: Document, _parentButton: ButtonComponent);
/**
* Template reference for the Dropdown Menu wrapper element
*/
private _dropdownMenuElement;
/**
* Align Dropdown Menu opening position
*/
align: FudisDropdownMenuAlign;
/**
* Dropdown Menu size
*/
size: FudisInputSize;
/**
* Determine dropdown max-width
*/
protected _maxWidth: string;
/**
* Currently focused option
*/
private _focusedOption;
/**
* Subscription for dropdown width calculation event
*/
private _subscription;
/**
* Add or remove currently focused option. Called from DropdownMenuItem.
*/
setFocusedOption(id: string, type: 'add' | 'remove', event?: FocusEvent): void;
/**
* Check if focus is inside the Dropdown Menu component
*
* @param event Focus event
* @returns Boolean
*/
private _componentFocused;
closeDropdownMenu(): void;
/**
* Host Listener for dropdown's width, it needs to be wider than its Button parent
*/
private _getMaxWidth;
/**
* Host Listener for keydown events, especially Arrow Down and Escape from Dropdown Menu
*/
private _handleDropdownMenuKeyDown;
ngOnInit(): void;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownMenuComponent, [null, null, null, { host: true; }]>;
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownMenuComponent, "fudis-dropdown-menu", never, { "align": { "alias": "align"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["fudis-dropdown-menu-item", "fudis-dropdown-menu-group"], false, never>;
}