import { DDropdownBase, DDropdownBaseEvents, DDropdownBaseOptions, DThemeDropdownBase } from "./d-dropdown-base"; import { DMenu } from "./d-menu"; import { DMenuItem } from "./d-menu-item"; import { DOnOptions } from "./d-on-options"; /** * {@link DSelect} events. */ export interface DSelectEvents extends DDropdownBaseEvents | null, EMITTER> { /** * Triggered when a selection is changed. * * @param newValue a newly-selected value * @param oldValue a previously-selected value * @param item a newly-selected item * @param emitter an emitter */ change(newValue: VALUE | null, oldValue: VALUE | null, item: DMenuItem | null, emitter: EMITTER): void; } /** * {@link DSelect} "on" options. */ export interface DSelectOnOptions extends Partial>, DOnOptions { } /** * {@link DSelect} options. */ export interface DSelectOptions = DThemeSelect, EMITTER = any> extends DDropdownBaseOptions | null, THEME, EMITTER> { /** * A default value. */ value?: VALUE | null; on?: DSelectOnOptions; } /** * {@link DSelect} theme. */ export interface DThemeSelect extends DThemeDropdownBase | null> { } /** * A selector class. */ export declare class DSelect = DThemeSelect, OPTIONS extends DSelectOptions = DSelectOptions> extends DDropdownBase | null, THEME, OPTIONS> { protected _value: VALUE | null; constructor(options?: OPTIONS); protected onMenuSelect(newValue: VALUE, item: DMenuItem, menu: DMenu): void; protected onMenuReplaced(newMenu: DMenu, oldMenu?: DMenu): void; protected onValueChange(newValue: VALUE | null, oldValue: VALUE | null, item: DMenuItem | null): void; protected onMenuOpening(menu: DMenu): void; /** * Returns a selected value or null. */ get value(): VALUE | null; /** * Sets to the specified value. */ set value(value: VALUE | null); getValue(): VALUE | null; setValue(value: VALUE | null, forcibly?: boolean): void; protected getType(): string; }