import type { BasePubSubService } from '@slickgrid-universal/event-pub-sub'; import { SlickEvent, type SlickEventData, type SlickGrid } from '../core/index.js'; import type { Column, ColumnPicker, ColumnPickerOption, DOMMouseOrTouchEvent, GridOption, OnColumnsChangedArgs } from '../interfaces/index.js'; import type { SharedService } from '../services/shared.service.js'; import type { ExtensionUtility } from './extensionUtility.js'; import { MenuBaseClass } from './menuBaseClass.js'; /** * A control to add a Column Picker (right+click on any column header to reveal the column picker) * To specify a custom button in a column header, extend the column definition like so: * this.gridOptions = { * enableColumnPicker: true, * columnPicker: { * ... column picker options ... * } * }]; * @class ColumnPickerControl * @constructor */ export declare class SlickColumnPicker extends MenuBaseClass { onColumnsChanged: SlickEvent; protected _originalPickerOptions: ColumnPicker; protected _defaults: ColumnPickerOption; /** Constructor of the SlickGrid 3rd party plugin, it can optionally receive options */ constructor(extensionUtility: ExtensionUtility, pubSubService: BasePubSubService, sharedService: SharedService); get addonOptions(): ColumnPicker; get columns(): Column[]; set columns(newColumns: Column[]); get gridOptions(): GridOption; get grid(): SlickGrid; get menuElement(): HTMLDivElement | null; /** Initialize plugin. */ init(): void; /** Dispose (destroy) the SlickGrid 3rd party plugin */ dispose(): void; disposeMenu(): void; createPickerMenu(): HTMLDivElement; /** * Get all columns including hidden columns. * @returns {Array} - all columns array */ getAllColumns(): Column[]; /** * Get only the visible columns. * @returns {Array} - all columns array */ getVisibleColumns(): Column[]; /** Translate the Column Picker headers and also the last 2 checkboxes */ translateColumnPicker(): void; translateColumnPickerTitles(): void; /** Mouse down handler when clicking anywhere in the DOM body */ protected handleBodyMouseDown(e: DOMMouseOrTouchEvent): void; /** Mouse header context handler when doing a right+click on any of the header column title */ protected handleHeaderContextMenu(e: SlickEventData): void; protected focusFirstMenuItem(menuElm: HTMLElement): void; repositionMenu(event: DOMMouseOrTouchEvent | SlickEventData): void; } //# sourceMappingURL=slickColumnPicker.d.ts.map