import { type BasePubSubService } from '@slickgrid-universal/event-pub-sub'; import { ExtensionName, type ExtensionList, type ExtensionNameTypeString, type InferExtensionByName, type SlickControlList, type SlickPluginList } from '../enums/index.js'; import { SlickCellExcelCopyManager, SlickCellMenu, SlickCheckboxSelectColumn, SlickColumnPicker, SlickContextMenu, SlickDraggableGrouping, SlickGridMenu, SlickHeaderMenu, SlickHybridSelectionModel, SlickRowBasedEdit, SlickRowMoveManager, type ExtensionUtility, type SlickGroupItemMetadataProvider } from '../extensions/index.js'; import type { Column, ExtensionModel, GridOption } from '../interfaces/index.js'; import type { FilterService } from './filter.service.js'; import type { GridService } from './grid.service.js'; import type { SharedService } from './shared.service.js'; import type { SortService } from './sort.service.js'; import type { TranslaterService } from './translater.service.js'; import type { TreeDataService } from './treeData.service.js'; export declare class ExtensionService { protected readonly extensionUtility: ExtensionUtility; protected readonly filterService: FilterService; protected readonly pubSubService: BasePubSubService; protected readonly sharedService: SharedService; protected readonly sortService: SortService; protected readonly treeDataService: TreeDataService; protected readonly translaterService?: TranslaterService | undefined; protected readonly lazyGridService?: (() => GridService) | undefined; protected _extensionCreatedList: ExtensionList; protected _extensionList: ExtensionList; protected _cellMenuPlugin?: SlickCellMenu; protected _cellExcelCopyManagerPlugin?: SlickCellExcelCopyManager; protected _checkboxSelectColumn?: SlickCheckboxSelectColumn; protected _contextMenuPlugin?: SlickContextMenu; protected _columnPickerControl?: SlickColumnPicker; protected _draggleGroupingPlugin?: SlickDraggableGrouping; protected _gridMenuControl?: SlickGridMenu; protected _groupItemMetadataProviderService?: SlickGroupItemMetadataProvider; protected _headerMenuPlugin?: SlickHeaderMenu; protected _rowMoveManagerPlugin?: SlickRowMoveManager; protected _selectionModel?: SlickHybridSelectionModel; protected _rowBasedEdit?: SlickRowBasedEdit; protected _requireInitExternalExtensions: Array>; get extensionList(): ExtensionList; get gridOptions(): GridOption; constructor(extensionUtility: ExtensionUtility, filterService: FilterService, pubSubService: BasePubSubService, sharedService: SharedService, sortService: SortService, treeDataService: TreeDataService, translaterService?: TranslaterService | undefined, lazyGridService?: (() => GridService) | undefined); /** Dispose of all the controls & plugins */ dispose(): void; /** * Get an external plugin Extension * @param {String} name * @param {Object} extension */ addExtensionToList(name: ExtensionName | ExtensionNameTypeString, extension: { name: ExtensionName | ExtensionNameTypeString; instance: T; }): void; /** Get all columns (includes visible and non-visible) */ getAllColumns(): Column[]; /** Get only visible columns */ getVisibleColumns(): Column[]; /** * Get an Extension that was created by calling its "create" method (there are only 3 extensions which uses this method) * @param name */ getCreatedExtensionByName

(name: ExtensionName | ExtensionNameTypeString): ExtensionModel

| undefined; /** * Get an Extension by it's name. * NOTE: it's preferable to @use `getExtensionInstanceByName` if you just want the instance since it will automatically infer the extension. * @param name */ getExtensionByName

(name: ExtensionName | ExtensionNameTypeString): ExtensionModel

| undefined; /** * Get Extension Instance by its name. * @param name */ getExtensionInstanceByName(name: T): InferExtensionByName; /** Auto-resize all the column in the grid to fit the grid width */ autoResizeColumns(): void; /** Bind/Create different Controls or Plugins after the Grid is created */ bindDifferentExtensions(): void; /** * Bind/Create certain plugins before the Grid creation to avoid having odd behaviors. * Mostly because the column definitions might change after the grid creation, so we want to make sure to add it before then * @param columns * @param gridOptions */ createExtensionsBeforeGridCreation(columns: Column[], gridOptions: GridOption): void; /** Hide a column from the grid */ hideColumn(column: Column): void; /** Refresh the dataset through the Backend Service */ refreshBackendDataset(gridOptions?: GridOption): void; /** * Remove a column from the grid by it's index in the grid * @param columns input * @param index */ removeColumnByIndex(columns: Column[], index: number): Column[]; /** Translate all possible Extensions at once */ translateAllExtensions(lang?: string): void; /** Translate the Cell Menu titles, we need to loop through all column definition to re-translate them */ translateCellMenu(): void; /** Translate the Column Picker and it's last 2 checkboxes */ translateColumnPicker(): void; /** Translate the Context Menu titles, we need to loop through all column definition to re-translate them */ translateContextMenu(): void; /** * Translate the Header Menu titles, we need to loop through all column definition to re-translate them */ translateGridMenu(): void; /** * Translate the Header Menu titles, we need to loop through all column definition to re-translate them */ translateHeaderMenu(): void; /** * Translate the action column buttons of the Row Based Edit Plugin */ translateRowEditPlugin(): void; /** * Translate manually the header titles. * We could optionally pass a locale (that will change currently loaded locale), else it will use current locale * @param locale to use * @param new column definitions (optional) */ translateColumnHeaders(locale?: string, newColumns?: Column[], shouldUpdateColumns?: boolean): void; /** * Render (or re-render) the column headers from column definitions. * calling setColumns() will trigger a grid re-render */ renderColumnHeaders(newColumns?: Column[], forceColumnDefinitionsOverwrite?: boolean): void; /** * Some extension (feature) have specific `columnIndexPosition` that the developer want to use, we need to make sure these indexes are respected in the column definitions in the order provided. * The following 3 features could have that optional `columnIndexPosition` and we need to respect their column order, we will first sort by their optional order and only after we will create them by their specific order. * We'll process them by their position (if provided, else use same order that they were inserted) * @param featureWithIndexPositions * @param columns * @param gridOptions */ protected createExtensionByTheirColumnIndex(featureWithIndexPositions: Array>, columns: Column[], gridOptions: GridOption): void; /** Translate an array of items from an input key and assign translated value to the output key */ protected translateItems(items: any[], inputKey: string, outputKey: string): void; } //# sourceMappingURL=extension.service.d.ts.map