import { BasePlugin } from '../base'; import DataManager from './data/dataManager'; import CollapsingUI from './ui/collapsing'; import HeadersUI from './ui/headers'; import ContextMenuUI from './ui/contextMenu'; import { TrimmingMap } from '../../translations'; import RowMoveController from './utils/rowMoveController'; export declare const PLUGIN_KEY = "nestedRows"; export declare const PLUGIN_PRIORITY = 300; /** * @plugin NestedRows * @class NestedRows * * @description * Plugin responsible for displaying and operating on data sources with nested structures. */ export declare class NestedRows extends BasePlugin { #private; /** * Returns the plugin key used to identify and access this plugin within Handsontable. */ static get PLUGIN_KEY(): string; /** * Returns the priority value that determines the plugin's initialization order relative to other plugins. */ static get PLUGIN_PRIORITY(): number; /** * Reference to the DataManager instance. * * @private * @type {object} */ dataManager: DataManager | null; /** * Reference to the HeadersUI instance. * * @private * @type {object} */ headersUI: HeadersUI | null; /** * Reference to the CollapsingUI instance. * * @private * @type {object} */ collapsingUI: CollapsingUI | null; /** * Reference to the ContextMenuUI instance. * * @private * @type {object} */ contextMenuUI: ContextMenuUI | null; /** * Reference to the RowMoveController instance. * * @private * @type {object} */ rowMoveController: RowMoveController | null; /** * Map of skipped rows by plugin. * * @private * @type {null|TrimmingMap} */ collapsedRowsMap: TrimmingMap | null; /** * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit} * hook and if it returns `true` then the {@link NestedRows#enablePlugin} method is called. * * @returns {boolean} */ isEnabled(): boolean; /** * Enables the plugin functionality for this Handsontable instance. */ enablePlugin(): void; /** * Disables the plugin functionality for this Handsontable instance. */ disablePlugin(): void; /** * Updates the plugin's state. * * This method is executed when [`updateSettings()`](@/api/core.md#updatesettings) is invoked with any of the following configuration options: * - [`nestedRows`](@/api/options.md#nestedrows) */ updatePlugin(): void; /** * Register shortcuts responsible for toggling collapsible columns. * * @private */ registerShortcuts(): void; /** * Unregister shortcuts responsible for toggling collapsible columns. * * @private */ unregisterShortcuts(): void; /** * Enable the modify hook skipping flag - allows retrieving the data from Handsontable without this plugin's * modifications. * * @private */ disableCoreAPIModifiers(): void; /** * Disable the modify hook skipping flag. * * @private */ enableCoreAPIModifiers(): void; /** * The modifyRowData hook callback. * * @private * @param {number} row Visual row index. * @returns {boolean} */ onModifyRowData(row: number): unknown; /** * Modify the source data length to match the length of the nested structure. * * @private * @returns {number} */ onModifySourceLength(): number | undefined; /** * @private * @param {number} index The index where the data was spliced. * @param {number} amount An amount of items to remove. * @param {object} element An element to add. * @returns {boolean} */ onBeforeDataSplice(index: number, amount: number, element: Record): boolean; /** * Destroys the plugin instance. */ destroy(): void; }