ag-grid-enterprise
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49 lines (48 loc) • 2.05 kB
TypeScript
import type { GroupingApproach, StageExecuteParams } from 'ag-grid-community';
import { RowNode } from 'ag-grid-community';
import { BeanStub } from 'ag-grid-community';
import type { IRowGroupingStrategy } from '../rowHierarchy/rowHierarchyUtils';
export declare class TreeGroupStrategy<TData = any> extends BeanStub implements IRowGroupingStrategy<TData> {
private groupColsIds;
private groupColsChanged;
private parentIdGetter;
private fillerNodesById;
private nodesToUnselect;
destroy(): void;
reset(): void;
getNode(id: string): RowNode<TData> | undefined;
execute(params: StageExecuteParams<TData>, approach: GroupingApproach): boolean;
private flagUpdatedNodes;
private initRowsParents;
private destroyFillerRows;
private initRowsChildrenSize;
private initRowChildrenSize;
private preprocessRows;
private traverseRoot;
/**
* After all the rows are initialized and treeParent is set and childrenAfterGroup is filled,
* we traverse the tree to finalize it
* @returns the number of leaf nodes processed, which is used to detect cycles in the tree, and a flag set if leaf children were changed.
*/
private traverse;
private updateAllLeafChildren;
private getRowDefaultExpanded;
/** Handle cycles in a tree. Is not optimal for performance but this is an edge case that shouldn't happen as is a warning. */
private handleCycles;
private setGroupData;
/** Load the tree structure for nested groups, aka children property */
private loadNested;
/** Load the tree structure for self-referencing data, aka parentId field */
private loadSelfRef;
private loadFlattened;
/** Load the tree structure for data paths, aka getDataPath callback */
private loadDataPath;
private loadExistingDataPath;
private duplicatedPath;
private buildFromPaths;
private processDuplicatePaths;
private getOrCreateFiller;
private deselectHiddenNodes;
private hideRow;
private checkGroupColsUpdated;
}