devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
125 lines (113 loc) • 5.9 kB
TypeScript
/**
* DevExtreme (ui/drop_down_button.d.ts)
* Version: 20.1.7
* Build date: Tue Aug 25 2020
*
* Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import '../jquery_augmentation';
import {
dxElement
} from '../core/element';
import {
template
} from '../core/templates/template';
import DataSource, {
DataSourceOptions
} from '../data/data_source';
import {
event
} from '../events/index';
import {
dxListItem
} from './list';
import {
dxPopupOptions
} from './popup';
import Widget, {
WidgetOptions
} from './widget/ui.widget';
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxDropDownButtonOptions extends WidgetOptions<dxDropDownButton> {
/** Provides data for the drop-down menu. */
dataSource?: string | Array<dxDropDownButtonItem | any> | DataSource | DataSourceOptions;
/** Specifies whether to wait until the drop-down menu is opened the first time to render its content. */
deferRendering?: boolean;
/** Specifies the data field whose values should be displayed in the drop-down menu. */
displayExpr?: string | ((itemData: any) => string);
/** Specifies custom content for the drop-down field. */
dropDownContentTemplate?: template | ((data: Array<string | number | any> | DataSource, contentElement: dxElement) => string | Element | JQuery);
dropDownOptions?: dxPopupOptions;
/** Specifies whether users can use keyboard to focus the widget. */
focusStateEnabled?: boolean;
/** Specifies whether the widget changes its state when a user hovers the mouse pointer over it. */
hoverStateEnabled?: boolean;
/** Specifies the button's icon. */
icon?: string;
/** Specifies a custom template for drop-down menu items. */
itemTemplate?: template | ((itemData: any, itemIndex: number, itemElement: dxElement) => string | Element | JQuery);
/** Provides drop-down menu items. */
items?: Array<dxDropDownButtonItem | any>;
/** Specifies which data field provides keys used to distinguish between the selected drop-down menu items. */
keyExpr?: string;
/** Specifies text or HTML markup displayed in the drop-down menu when it does not contain any items. */
noDataText?: string;
/** A function that is executed when the button is clicked or tapped. If splitButton is true, this function is executed for the action button only. */
onButtonClick?: ((e: { component?: dxDropDownButton, element?: dxElement, model?: any, event?: event, selectedItem?: any }) => any) | string;
/** A function that is executed when a drop-down menu item is clicked. */
onItemClick?: ((e: { component?: dxDropDownButton, element?: dxElement, model?: any, event?: event, itemData?: any, itemElement?: dxElement }) => any) | string;
/** A function that is executed when an item is selected or selection is canceled. In effect when useSelectMode is true. */
onSelectionChanged?: ((e: { component?: dxDropDownButton, element?: dxElement, model?: any, item?: any, previousItem?: any }) => any) | string;
/** Specifies whether the drop-down menu is opened. */
opened?: boolean;
/** Contains the selected item's data. Available when useSelectMode is true. */
selectedItem?: string | number | any;
/** Contains the selected item's key and allows you to specify the initially selected item. Applies when useSelectMode is true. */
selectedItemKey?: string | number;
/** Specifies whether the arrow icon should be displayed. */
showArrowIcon?: boolean;
/** Specifies whether to split the button in two: one executes an action, the other opens and closes the drop-down menu. */
splitButton?: boolean;
/** Specifies how the button is styled. */
stylingMode?: 'text' | 'outlined' | 'contained';
/** Specifies the button's text. Applies only if useSelectMode is false. */
text?: string;
/** Specifies whether the widget stores the selected drop-down menu item. */
useSelectMode?: boolean;
/** Specifies whether text that exceeds the drop-down list width should be wrapped. */
wrapItemText?: boolean;
}
/** The DropDownButton is a button that opens a drop-down menu. */
export default class dxDropDownButton extends Widget {
constructor(element: Element, options?: dxDropDownButtonOptions)
constructor(element: JQuery, options?: dxDropDownButtonOptions)
/** Closes the drop-down menu. */
close(): Promise<void> & JQueryPromise<void>;
getDataSource(): DataSource;
/** Opens the drop-down menu. */
open(): Promise<void> & JQueryPromise<void>;
/** Opens or closes the drop-down menu, reversing the current state. */
toggle(): Promise<void> & JQueryPromise<void>;
/** Opens or closes the drop-down menu, depending on the argument. */
toggle(visibility: boolean): Promise<void> & JQueryPromise<void>;
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxDropDownButtonItem extends dxListItem {
/** */
onClick?: ((e: { component?: dxDropDownButton, element?: dxElement, model?: any, jQueryEvent?: JQueryEventObject, event?: event }) => any) | string;
}
declare global {
interface JQuery {
dxDropDownButton(): JQuery;
dxDropDownButton(options: "instance"): dxDropDownButton;
dxDropDownButton(options: string): any;
dxDropDownButton(options: string, ...params: any[]): any;
dxDropDownButton(options: dxDropDownButtonOptions): JQuery;
}
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export type Options = dxDropDownButtonOptions;
/** @deprecated use Options instead */
/** Warning! This type is used for internal purposes. Do not import it directly. */
export type IOptions = dxDropDownButtonOptions;