devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
231 lines (223 loc) • 6.75 kB
TypeScript
/**
* DevExtreme (ui/menu.d.ts)
* Version: 19.2.6
* Build date: Thu Jan 30 2020
*
* Copyright (c) 2012 - 2020 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
dxElement
} from '../core/element';
import DataSource, {
DataSourceOptions
} from '../data/data_source';
import {
CollectionWidgetItem
} from './collection/ui.collection_widget.base';
import dxMenuBase, {
dxMenuBaseOptions
} from './context_menu/ui.menu_base';
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxMenuOptions extends dxMenuBaseOptions<dxMenu> {
/**
* @docid dxMenuOptions.adaptivityEnabled
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
adaptivityEnabled?: boolean;
/**
* @docid dxMenuOptions.dataSource
* @type string|Array<dxMenuItem>|DataSource|DataSourceOptions
* @default null
* @prevFileNamespace DevExpress.ui
* @public
*/
dataSource?: string | Array<dxMenuItem> | DataSource | DataSourceOptions;
/**
* @docid dxMenuOptions.hideSubmenuOnMouseLeave
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
hideSubmenuOnMouseLeave?: boolean;
/**
* @docid dxMenuOptions.items
* @type Array<dxMenuItem>
* @prevFileNamespace DevExpress.ui
* @public
*/
items?: Array<dxMenuItem>;
/**
* @docid dxMenuOptions.onSubmenuHidden
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 rootItem:dxElement
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onSubmenuHidden?: ((e: { component?: dxMenu, element?: dxElement, model?: any, rootItem?: dxElement }) => any);
/**
* @docid dxMenuOptions.onSubmenuHiding
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 rootItem:dxElement
* @type_function_param1_field5 cancel:boolean
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onSubmenuHiding?: ((e: { component?: dxMenu, element?: dxElement, model?: any, rootItem?: dxElement, cancel?: boolean }) => any);
/**
* @docid dxMenuOptions.onSubmenuShowing
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 rootItem:dxElement
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onSubmenuShowing?: ((e: { component?: dxMenu, element?: dxElement, model?: any, rootItem?: dxElement }) => any);
/**
* @docid dxMenuOptions.onSubmenuShown
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 rootItem:dxElement
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onSubmenuShown?: ((e: { component?: dxMenu, element?: dxElement, model?: any, rootItem?: dxElement }) => any);
/**
* @docid dxMenuOptions.orientation
* @type Enums.Orientation
* @default "horizontal"
* @prevFileNamespace DevExpress.ui
* @public
*/
orientation?: 'horizontal' | 'vertical';
/**
* @docid dxMenuOptions.showFirstSubmenuMode
* @type Object|Enums.ShowSubmenuMode
* @default { name: "onClick", delay: { show: 50, hide: 300 } }
* @prevFileNamespace DevExpress.ui
* @public
*/
showFirstSubmenuMode?: { delay?: { hide?: number, show?: number } | number, name?: 'onClick' | 'onHover' } | 'onClick' | 'onHover';
/**
* @docid dxMenuOptions.submenuDirection
* @type Enums.SubmenuDirection
* @default "auto"
* @prevFileNamespace DevExpress.ui
* @public
*/
submenuDirection?: 'auto' | 'leftOrTop' | 'rightOrBottom';
}
/** The Menu widget is a panel with clickable items. A click on an item opens a drop-down menu, which can contain several submenus. */
export default class dxMenu extends dxMenuBase {
constructor(element: Element, options?: dxMenuOptions)
constructor(element: JQuery, options?: dxMenuOptions)
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxMenuBaseItem extends CollectionWidgetItem {
/**
* @docid dxMenuBaseItem.beginGroup
* @type Boolean
* @prevFileNamespace DevExpress.ui
* @public
*/
beginGroup?: boolean;
/**
* @docid dxMenuBaseItem.closeMenuOnClick
* @type boolean
* @default true
* @prevFileNamespace DevExpress.ui
* @public
*/
closeMenuOnClick?: boolean;
/**
* @docid dxMenuBaseItem.disabled
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
disabled?: boolean;
/**
* @docid dxMenuBaseItem.icon
* @type String
* @prevFileNamespace DevExpress.ui
* @public
*/
icon?: string;
/**
* @docid dxMenuBaseItem.items
* @type Array<dxMenuBaseItem>
* @prevFileNamespace DevExpress.ui
* @public
*/
items?: Array<dxMenuBaseItem>;
/**
* @docid dxMenuBaseItem.selectable
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
selectable?: boolean;
/**
* @docid dxMenuBaseItem.selected
* @type boolean
* @default false
* @prevFileNamespace DevExpress.ui
* @public
*/
selected?: boolean;
/**
* @docid dxMenuBaseItem.text
* @type String
* @prevFileNamespace DevExpress.ui
* @public
*/
text?: string;
/**
* @docid dxMenuBaseItem.visible
* @type boolean
* @default true
* @prevFileNamespace DevExpress.ui
* @public
*/
visible?: boolean;
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxMenuItem extends dxMenuBaseItem {
/**
* @docid dxMenuItem.items
* @type Array<dxMenuItem>
* @prevFileNamespace DevExpress.ui
* @public
*/
items?: Array<dxMenuItem>;
}
declare global {
interface JQuery {
dxMenu(): JQuery;
dxMenu(options: "instance"): dxMenu;
dxMenu(options: string): any;
dxMenu(options: string, ...params: any[]): any;
dxMenu(options: dxMenuOptions): JQuery;
}
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export type Options = dxMenuOptions;
/** @deprecated use Options instead */
/** Warning! This type is used for internal purposes. Do not import it directly. */
export type IOptions = dxMenuOptions;