import type { BasePubSubService } from '@slickgrid-universal/event-pub-sub'; import type { SlickEventData } from '../core/slickCore.js'; import type { CellMenu, CellMenuOption, Column, OnClickEventArgs, OnKeyDownEventArgs } from '../interfaces/index.js'; import type { SharedService } from '../services/shared.service.js'; import type { ExtensionUtility } from './extensionUtility.js'; import { MenuFromCellBaseClass } from './menuFromCellBaseClass.js'; /** * A plugin to add Menu on a Cell click (click on the cell that has the cellMenu object defined) * The "cellMenu" is defined in a Column Definition object * Similar to the ContextMenu plugin (could be used in combo), * except that it subscribes to the cell "onClick" event (regular mouse click or touch). * * A general use of this plugin is for an Action Dropdown Menu to do certain things on the row that was clicked * You can use it to change the cell data property through a list of Options AND/OR through a list of Commands. * * To specify a custom button in a column header, extend the column definition like so: * this.columns = [{ * id: 'myColumn', name: 'My column', * cellMenu: { * // ... cell menu options * commandItems: [{ ...menu item options... }, { ...menu item options... }] * } * }]; */ export declare class SlickCellMenu extends MenuFromCellBaseClass { protected readonly extensionUtility: ExtensionUtility; protected readonly pubSubService: BasePubSubService; protected readonly sharedService: SharedService; readonly pluginName = "CellMenu"; protected _defaults: CellMenuOption; /** Constructor of the SlickGrid 3rd party plugin, it can optionally receive options */ constructor(extensionUtility: ExtensionUtility, pubSubService: BasePubSubService, sharedService: SharedService); /** Initialize plugin. */ init(cellMenuOptions?: CellMenu): void; /** Translate the Cell Menu titles, we need to loop through all column definition to re-translate all list titles & all commands/options */ translateCellMenu(): void; protected handleCellClick(event: SlickEventData, args: OnClickEventArgs): void; /** Open the Cell Menu from root grid cell context on Enter key, sub-menu Enter key presses are handled separately and ignored here. */ protected handleCellKeyDown(event: SlickEventData, args: OnKeyDownEventArgs): void; /** @deprecated Sort items (by pointers) in an array by a property name */ protected sortMenuItems(columns: Column[]): void; } //# sourceMappingURL=slickCellMenu.d.ts.map