devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
213 lines (203 loc) • 6.58 kB
TypeScript
/**
* DevExtreme (ui/context_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 {
positionConfig
} from '../animation/position';
import '../jquery_augmentation';
import {
dxElement
} from '../core/element';
import DataSource, {
DataSourceOptions
} from '../data/data_source';
import {
event
} from '../events';
import dxMenuBase, {
dxMenuBaseOptions
} from './context_menu/ui.menu_base';
import {
dxMenuBaseItem
} from './menu';
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxContextMenuOptions extends dxMenuBaseOptions<dxContextMenu> {
/**
* @docid dxContextMenuOptions.closeOnOutsideClick
* @type boolean|function
* @default true
* @type_function_param1 event:event
* @type_function_return Boolean
* @prevFileNamespace DevExpress.ui
* @public
*/
closeOnOutsideClick?: boolean | ((event: event) => boolean);
/**
* @docid dxContextMenuOptions.dataSource
* @type string|Array<dxContextMenuItem>|DataSource|DataSourceOptions
* @default null
* @prevFileNamespace DevExpress.ui
* @public
*/
dataSource?: string | Array<dxContextMenuItem> | DataSource | DataSourceOptions;
/**
* @docid dxContextMenuOptions.items
* @type Array<dxContextMenuItem>
* @prevFileNamespace DevExpress.ui
* @public
*/
items?: Array<dxContextMenuItem>;
/**
* @docid dxContextMenuOptions.onHidden
* @extends Action
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onHidden?: ((e: { component?: dxContextMenu, element?: dxElement, model?: any }) => any);
/**
* @docid dxContextMenuOptions.onHiding
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 cancel:boolean
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onHiding?: ((e: { component?: dxContextMenu, element?: dxElement, model?: any, cancel?: boolean }) => any);
/**
* @docid dxContextMenuOptions.onPositioning
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 jQueryEvent:jQuery.Event:deprecated(event)
* @type_function_param1_field5 event:event
* @type_function_param1_field6 position:positionConfig
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onPositioning?: ((e: { component?: dxContextMenu, element?: dxElement, model?: any, jQueryEvent?: JQueryEventObject, event?: event, position?: positionConfig }) => any);
/**
* @docid dxContextMenuOptions.onShowing
* @extends Action
* @type function(e)
* @type_function_param1 e:object
* @type_function_param1_field4 cancel:boolean
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onShowing?: ((e: { component?: dxContextMenu, element?: dxElement, model?: any, cancel?: boolean }) => any);
/**
* @docid dxContextMenuOptions.onShown
* @extends Action
* @action
* @prevFileNamespace DevExpress.ui
* @public
*/
onShown?: ((e: { component?: dxContextMenu, element?: dxElement, model?: any }) => any);
/**
* @docid dxContextMenuOptions.position
* @type positionConfig
* @default { my: 'top left', at: 'top left' }
* @ref
* @prevFileNamespace DevExpress.ui
* @public
*/
position?: positionConfig;
/**
* @docid dxContextMenuOptions.showEvent
* @type Object|string
* @default "dxcontextmenu"
* @prevFileNamespace DevExpress.ui
* @public
*/
showEvent?: { delay?: number, name?: string } | string;
/**
* @docid dxContextMenuOptions.submenuDirection
* @type Enums.ContextMenuSubmenuDirection
* @default "auto"
* @prevFileNamespace DevExpress.ui
* @public
*/
submenuDirection?: 'auto' | 'left' | 'right';
/**
* @docid dxContextMenuOptions.target
* @type string|Node|jQuery
* @default undefined
* @prevFileNamespace DevExpress.ui
* @public
*/
target?: string | Element | JQuery;
/**
* @docid dxContextMenuOptions.visible
* @type boolean
* @default false
* @fires dxContextMenuOptions.onShowing
* @fires dxContextMenuOptions.onHiding
* @prevFileNamespace DevExpress.ui
* @public
*/
visible?: boolean;
}
/** The ContextMenu widget displays a single- or multi-level context menu. An end user invokes this menu by a right click or a long press. */
export default class dxContextMenu extends dxMenuBase {
constructor(element: Element, options?: dxContextMenuOptions)
constructor(element: JQuery, options?: dxContextMenuOptions)
/**
* @docid dxContextMenuMethods.hide
* @publicName hide()
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
hide(): Promise<void> & JQueryPromise<void>;
/**
* @docid dxContextMenuMethods.show
* @publicName show()
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
show(): Promise<void> & JQueryPromise<void>;
/**
* @docid dxContextMenuMethods.toggle
* @publicName toggle(showing)
* @param1 showing:boolean
* @return Promise<void>
* @prevFileNamespace DevExpress.ui
* @public
*/
toggle(showing: boolean): Promise<void> & JQueryPromise<void>;
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export interface dxContextMenuItem extends dxMenuBaseItem {
/**
* @docid dxContextMenuItem.items
* @type Array<dxContextMenuItem>
* @prevFileNamespace DevExpress.ui
* @public
*/
items?: Array<dxContextMenuItem>;
}
declare global {
interface JQuery {
dxContextMenu(): JQuery;
dxContextMenu(options: "instance"): dxContextMenu;
dxContextMenu(options: string): any;
dxContextMenu(options: string, ...params: any[]): any;
dxContextMenu(options: dxContextMenuOptions): JQuery;
}
}
/** Warning! This type is used for internal purposes. Do not import it directly. */
export type Options = dxContextMenuOptions;
/** @deprecated use Options instead */
/** Warning! This type is used for internal purposes. Do not import it directly. */
export type IOptions = dxContextMenuOptions;