import type { BasePubSubService } from '@slickgrid-universal/event-pub-sub'; import { type SlickEventData, type SlickEventHandler, type SlickGrid } from '../core/index.js'; import type { Column, DOMEvent, HeaderButton, HeaderButtonOption, OnHeaderCellRenderedEventArgs } from '../interfaces/index.js'; import type { SharedService } from '../services/shared.service.js'; import type { ExtensionUtility } from './extensionUtility.js'; import { MenuBaseClass, type ExtendableItemTypes, type ExtractMenuType, type MenuType } from './menuBaseClass.js'; /** * A plugin to add custom buttons to column headers. * To specify a custom button in a column header, extend the column definition like so: * this.columns = [{ * id: 'myColumn', name: 'My column', * header: { * buttons: [{ ...button options... }, { ...button options... }] * } * }]; */ export declare class SlickHeaderButtons extends MenuBaseClass { protected readonly extensionUtility: ExtensionUtility; protected readonly pubSubService: BasePubSubService; protected readonly sharedService: SharedService; protected _buttonElms: HTMLLIElement[]; protected _defaults: HeaderButtonOption; readonly pluginName = "HeaderButtons"; /** Constructor of the SlickGrid 3rd party plugin, it can optionally receive options */ constructor(extensionUtility: ExtensionUtility, pubSubService: BasePubSubService, sharedService: SharedService); get addonOptions(): HeaderButton; set addonOptions(newOptions: HeaderButton); get eventHandler(): SlickEventHandler; get grid(): SlickGrid; /** Initialize plugin. */ init(headerButtonOptions?: HeaderButton): void; /** Dispose (destroy) the SlickGrid 3rd party plugin */ dispose(): void; /** * Event handler when column title header are being rendered * @param {Object} event - The event * @param {Object} args - object arguments */ protected handleHeaderCellRendered(e: SlickEventData, args: OnHeaderCellRenderedEventArgs): void; /** * Event handler before the header cell is being destroyed * @param {Object} event - The event * @param {Object} args.column - The column definition */ protected handleBeforeHeaderCellDestroy(_e: SlickEventData, args: { column: Column; node: HTMLElement; }): void; protected handleButtonClick(event: DOMEvent, _type: MenuType, button: ExtractMenuType, level: number, columnDef?: Column): void; } //# sourceMappingURL=slickHeaderButtons.d.ts.map