ohctechv3/.svn/pristine/d1/d116dc0fb251c328fe5cd1a9871c7120ab00c3ff.svn-base

142 lines
4.4 KiB
Plaintext
Raw Normal View History

2024-10-28 15:03:36 +05:30
import { RowPosition } from "../entities/rowPositionUtils";
import { SortModelItem } from "../sortController";
import { AdvancedFilterModel } from "./advancedFilterModel";
import { FilterModel } from "./iFilter";
import { CellRangeType } from "./IRangeService";
import { ServerSideRowGroupSelectionState, ServerSideRowSelectionState } from "./selectionState";
export interface FilterState {
filterModel?: FilterModel;
advancedFilterModel?: AdvancedFilterModel;
}
export interface RangeSelectionCellState {
id?: string;
type?: CellRangeType;
/** The start row of the range */
startRow?: RowPosition;
/** The end row of the range */
endRow?: RowPosition;
/** The columns in the range */
colIds: string[];
/** The start column for the range */
startColId: string;
}
export interface RangeSelectionState {
cellRanges: RangeSelectionCellState[];
}
export interface ScrollState {
top: number;
left: number;
}
export interface FiltersToolPanelState {
expandedGroupIds: string[];
expandedColIds: string[];
}
export interface ColumnToolPanelState {
expandedGroupIds: string[];
}
export interface SideBarState {
/** Is side bar visible */
visible: boolean;
position: 'left' | 'right';
/** Open tool panel, or null if closed */
openToolPanel: string | null;
/** State for each tool panel */
toolPanels: {
[id: string]: any;
};
}
export interface FocusedCellState extends RowPosition {
colId: string;
}
export interface PaginationState {
/** Current page */
page?: number;
/** Current page size. Only use when the pageSizeSelector dropdown is visible */
pageSize?: number;
}
export interface SortState {
/** Sorted columns and directions in order */
sortModel: SortModelItem[];
}
export interface RowGroupState {
/** Grouped columns in order */
groupColIds: string[];
}
export interface AggregationColumnState {
colId: string;
/** Only named aggregation functions can be used in state */
aggFunc: string;
}
export interface AggregationState {
aggregationModel: AggregationColumnState[];
}
export interface PivotState {
pivotMode: boolean;
pivotColIds: string[];
}
export interface ColumnPinningState {
leftColIds: string[];
rightColIds: string[];
}
export interface ColumnVisibilityState {
hiddenColIds: string[];
}
export interface ColumnSizeState {
colId: string;
width?: number;
flex?: number;
}
export interface ColumnSizingState {
columnSizingModel: ColumnSizeState[];
}
export interface ColumnOrderState {
/** All colIds in order */
orderedColIds: string[];
}
export interface ColumnGroupState {
openColumnGroupIds: string[];
}
export interface RowGroupExpansionState {
expandedRowGroupIds: string[];
}
export interface GridState {
/** Includes aggregation functions */
aggregation?: AggregationState;
/** Includes opened groups */
columnGroup?: ColumnGroupState;
/** Includes column ordering */
columnOrder?: ColumnOrderState;
/** Includes left/right pinned columns */
columnPinning?: ColumnPinningState;
/** Includes column width/flex */
columnSizing?: ColumnSizingState;
/** Includes hidden columns */
columnVisibility?: ColumnVisibilityState;
/** Includes Column Filters and Advanced Filter */
filter?: FilterState;
/** Includes currently focused cell. Works for Client-Side Row Model only */
focusedCell?: FocusedCellState;
/** Includes current page */
pagination?: PaginationState;
/** Includes current pivot mode and pivot columns */
pivot?: PivotState;
/** Includes currently selected cell ranges */
rangeSelection?: RangeSelectionState;
/** Includes current row group columns */
rowGroup?: RowGroupState;
/** Includes currently expanded group rows */
rowGroupExpansion?: RowGroupExpansionState;
/**
* Includes currently selected rows.
* For Server-Side Row Model, will be `ServerSideRowSelectionState | ServerSideRowGroupSelectionState`,
* for other row models, will be an array of row IDs
*/
rowSelection?: string[] | ServerSideRowSelectionState | ServerSideRowGroupSelectionState;
/** Includes current scroll position. Works for Client-Side Row Model only */
scroll?: ScrollState;
/** Includes current Side Bar positioning and opened tool panel */
sideBar?: SideBarState;
/** Includes current sort columns and direction */
sort?: SortState;
}