ohctechv3/.svn/pristine/5e/5e3351c3b1c61de8924c2e55cf4f255881a4e7b5.svn-base
2024-10-28 15:03:36 +05:30

395 lines
17 KiB
Plaintext

import { ColumnGroup } from '../entities/columnGroup';
import { Column, ColumnPinnedType } from '../entities/column';
import { ColDef, ColGroupDef, IAggFunc, HeaderLocation } from '../entities/colDef';
import { IHeaderColumn } from '../interfaces/iHeaderColumn';
import { IProvidedColumn } from '../interfaces/iProvidedColumn';
import { ColumnEventType } from '../events';
import { BeanStub } from "../context/beanStub";
import { ProvidedColumnGroup } from '../entities/providedColumnGroup';
import { RowNode } from '../entities/rowNode';
import { PropertyChangedSource } from '../gridOptionsService';
export interface ColumnResizeSet {
columns: Column[];
ratios: number[];
width: number;
}
export interface ColumnStateParams {
/** True if the column is hidden */
hide?: boolean | null;
/** Width of the column in pixels */
width?: number;
/** Column's flex if flex is set */
flex?: number | null;
/** Sort applied to the column */
sort?: 'asc' | 'desc' | null;
/** The order of the sort, if sorting by many columns */
sortIndex?: number | null;
/** The aggregation function applied */
aggFunc?: string | IAggFunc | null;
/** True if pivot active */
pivot?: boolean | null;
/** The order of the pivot, if pivoting by many columns */
pivotIndex?: number | null;
/** Set if column is pinned */
pinned?: ColumnPinnedType;
/** True if row group active */
rowGroup?: boolean | null;
/** The order of the row group, if grouping by many columns */
rowGroupIndex?: number | null;
}
export interface ColumnState extends ColumnStateParams {
/** ID of the column */
colId: string;
}
export interface ApplyColumnStateParams {
/** The state from `getColumnState` */
state?: ColumnState[];
/** Whether column order should be applied */
applyOrder?: boolean;
/** State to apply to columns where state is missing for those columns */
defaultState?: ColumnStateParams;
}
export interface ISizeColumnsToFitParams {
/** Defines a default minimum width for every column (does not override the column minimum width) */
defaultMinWidth?: number;
/** Defines a default maximum width for every column (does not override the column maximum width) */
defaultMaxWidth?: number;
/** Provides a minimum and/or maximum width to specific columns */
columnLimits?: IColumnLimit[];
}
export interface IColumnLimit {
/** Selector for the column to which these dimension limits will apply */
key: Column | string;
/** Defines a minimum width for this column (does not override the column minimum width) */
minWidth?: number;
/** Defines a maximum width for this column (does not override the column maximum width) */
maxWidth?: number;
}
export type ColKey<TData = any, TValue = any> = string | ColDef<TData, TValue> | Column<TValue>;
export type Maybe<T> = T | null | undefined;
export declare class ColumnModel extends BeanStub {
private expressionService;
private columnFactory;
private displayedGroupCreator;
private ctrlsService;
private autoWidthCalculator;
private columnUtils;
private columnAnimationService;
private autoGroupColService;
private aggFuncService;
private valueCache;
private animationFrameService;
private sortController;
private columnDefFactory;
private primaryColumnTree;
private primaryHeaderRowCount;
private primaryColumns;
private primaryColumnsMap;
private secondaryBalancedTree;
private secondaryColumns;
private secondaryColumnsMap;
private secondaryHeaderRowCount;
private previousSecondaryColumns;
private columnsForQuickFilter;
private gridBalancedTree;
private gridColumns;
private gridColumnsMap;
private groupAutoColsBalancedTree;
private gridHeaderRowCount;
private lastPrimaryOrder;
private lastSecondaryOrder;
private gridColsArePrimary;
private displayedTreeLeft;
private displayedTreeRight;
private displayedTreeCentre;
private displayedColumnsLeft;
private displayedColumnsRight;
private displayedColumnsCenter;
private displayedColumns;
private ariaOrderColumns;
private displayedColumnsAndGroupsMap;
private viewportColumns;
private viewportColumnsHash;
private headerViewportColumns;
private viewportColumnsCenter;
private headerViewportColumnsCenter;
private viewportRowLeft;
private viewportRowRight;
private viewportRowCenter;
private colSpanActive;
private displayedAutoHeightCols;
private autoHeightActive;
private autoHeightActiveAtLeastOnce;
private suppressColumnVirtualisation;
private rowGroupColumns;
private valueColumns;
private pivotColumns;
private groupAutoColumns;
private groupDisplayColumns;
private groupDisplayColumnsMap;
private ready;
private changeEventsDispatching;
private logger;
private autoGroupsNeedBuilding;
private forceRecreateAutoGroups;
private pivotMode;
private scrollWidth;
private scrollPosition;
private bodyWidth;
private leftWidth;
private rightWidth;
private bodyWidthDirty;
private viewportLeft;
private viewportRight;
private flexViewportWidth;
private shouldQueueResizeOperations;
private resizeOperationQueue;
private columnDefs;
init(): void;
private buildAutoGroupColumns;
private onAutoGroupColumnDefChanged;
private onSharedColDefChanged;
setColumnDefs(columnDefs: (ColDef | ColGroupDef)[], source: ColumnEventType): void;
recreateColumnDefs(source: ColumnEventType): void;
private destroyOldColumns;
private destroyColumns;
private createColumnsFromColumnDefs;
shouldRowModelIgnoreRefresh(): boolean;
private dispatchNewColumnsLoaded;
private dispatchEverythingChanged;
private orderGridColumnsLikePrimary;
getAllDisplayedAutoHeightCols(): Column[];
private setViewport;
getDisplayedColumnsStartingAt(column: Column): Column[];
private checkViewportColumns;
setViewportPosition(scrollWidth: number, scrollPosition: number, afterScroll?: boolean): void;
isPivotMode(): boolean;
private isPivotSettingAllowed;
private setPivotMode;
getSecondaryPivotColumn(pivotKeys: string[], valueColKey: ColKey): Column | null;
private setBeans;
private setFirstRightAndLastLeftPinned;
autoSizeColumns(params: {
columns: ColKey[];
skipHeader?: boolean;
skipHeaderGroups?: boolean;
stopAtGroup?: ColumnGroup;
source?: ColumnEventType;
}): void;
private dispatchColumnResizedEvent;
private dispatchColumnChangedEvent;
private dispatchColumnMovedEvent;
private dispatchColumnPinnedEvent;
private dispatchColumnVisibleEvent;
autoSizeColumn(key: Maybe<ColKey>, source: ColumnEventType, skipHeader?: boolean): void;
private autoSizeColumnGroupsByColumns;
autoSizeAllColumns(source: ColumnEventType, skipHeader?: boolean): void;
private getColumnsFromTree;
getAllDisplayedTrees(): IHeaderColumn[] | null;
getPrimaryColumnTree(): IProvidedColumn[];
getHeaderRowCount(): number;
getDisplayedTreeLeft(): IHeaderColumn[];
getDisplayedTreeRight(): IHeaderColumn[];
getDisplayedTreeCentre(): IHeaderColumn[];
isColumnDisplayed(column: Column): boolean;
getAllDisplayedColumns(): Column[];
getViewportColumns(): Column[];
getDisplayedLeftColumnsForRow(rowNode: RowNode): Column[];
getDisplayedRightColumnsForRow(rowNode: RowNode): Column[];
isColSpanActive(): boolean;
private getDisplayedColumnsForRow;
getViewportCenterColumnsForRow(rowNode: RowNode): Column[];
isColumnAtEdge(col: Column | ColumnGroup, edge: 'first' | 'last'): boolean;
getAriaColumnIndex(col: Column | ColumnGroup): number;
private isColumnInHeaderViewport;
private isColumnInRowViewport;
getDisplayedColumnsLeftWidth(): number;
getDisplayedColumnsRightWidth(): number;
private updatePrimaryColumnList;
setRowGroupColumns(colKeys: ColKey[], source: ColumnEventType): void;
private setRowGroupActive;
addRowGroupColumns(keys: Maybe<ColKey>[], source: ColumnEventType): void;
removeRowGroupColumns(keys: Maybe<ColKey>[] | null, source: ColumnEventType): void;
addPivotColumns(keys: ColKey[], source: ColumnEventType): void;
setPivotColumns(colKeys: ColKey[], source: ColumnEventType): void;
removePivotColumns(keys: ColKey[], source: ColumnEventType): void;
private setPrimaryColumnList;
setValueColumns(colKeys: ColKey[], source: ColumnEventType): void;
private setValueActive;
addValueColumns(keys: ColKey[], source: ColumnEventType): void;
removeValueColumns(keys: ColKey[], source: ColumnEventType): void;
private normaliseColumnWidth;
private getPrimaryOrGridColumn;
setColumnWidths(columnWidths: {
key: ColKey;
newWidth: number;
}[], shiftKey: boolean, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column
finished: boolean, // @finished - ends up in the event, tells the user if more events are to come
source: ColumnEventType): void;
private checkMinAndMaxWidthsForSet;
resizeColumnSets(params: {
resizeSets: ColumnResizeSet[];
finished: boolean;
source: ColumnEventType;
}): void;
setColumnAggFunc(key: Maybe<ColKey>, aggFunc: string | IAggFunc | null | undefined, source: ColumnEventType): void;
moveRowGroupColumn(fromIndex: number, toIndex: number, source: ColumnEventType): void;
moveColumns(columnsToMoveKeys: ColKey[], toIndex: number, source: ColumnEventType, finished?: boolean): void;
doesMovePassRules(columnsToMove: Column[], toIndex: number): boolean;
doesOrderPassRules(gridOrder: Column[]): boolean;
getProposedColumnOrder(columnsToMove: Column[], toIndex: number): Column[];
sortColumnsLikeGridColumns(cols: Column[]): void;
doesMovePassLockedPositions(proposedColumnOrder: Column[]): boolean;
doesMovePassMarryChildren(allColumnsCopy: Column[]): boolean;
moveColumnByIndex(fromIndex: number, toIndex: number, source: ColumnEventType): void;
getColumnDefs(): (ColDef | ColGroupDef)[] | undefined;
getBodyContainerWidth(): number;
getContainerWidth(pinned: ColumnPinnedType): number;
private updateBodyWidths;
getValueColumns(): Column[];
getPivotColumns(): Column[];
isPivotActive(): boolean;
getRowGroupColumns(): Column[];
getDisplayedCenterColumns(): Column[];
getDisplayedLeftColumns(): Column[];
getDisplayedRightColumns(): Column[];
getDisplayedColumns(type: ColumnPinnedType): Column[];
getAllPrimaryColumns(): Column[] | null;
getSecondaryColumns(): Column[] | null;
getAllColumnsForQuickFilter(): Column[];
getAllGridColumns(): Column[];
isEmpty(): boolean;
isRowGroupEmpty(): boolean;
setColumnsVisible(keys: (string | Column)[], visible: boolean | undefined, source: ColumnEventType): void;
setColumnsPinned(keys: Maybe<ColKey>[], pinned: ColumnPinnedType, source: ColumnEventType): void;
private actionOnGridColumns;
getDisplayedColBefore(col: Column): Column | null;
getDisplayedColAfter(col: Column): Column | null;
getDisplayedGroupAfter(columnGroup: ColumnGroup): ColumnGroup | null;
getDisplayedGroupBefore(columnGroup: ColumnGroup): ColumnGroup | null;
getDisplayedGroupAtDirection(columnGroup: ColumnGroup, direction: 'After' | 'Before'): ColumnGroup | null;
getColumnGroupAtLevel(column: Column, level: number): ColumnGroup | null;
isPinningLeft(): boolean;
isPinningRight(): boolean;
getPrimaryAndSecondaryAndAutoColumns(): Column[];
private createStateItemFromColumn;
getColumnState(): ColumnState[];
private orderColumnStateList;
resetColumnState(source: ColumnEventType): void;
getColumnStateFromColDef(column: Column): ColumnState;
applyColumnState(params: ApplyColumnStateParams, source: ColumnEventType): boolean;
private applyOrderAfterApplyState;
private compareColumnStatesAndDispatchEvents;
private getCommonValue;
private normaliseColumnMovedEventForColumnState;
private syncColumnWithStateItem;
getGridColumns(keys: ColKey[]): Column[];
private getColumns;
getColumnWithValidation(key: Maybe<ColKey>): Column | null;
getPrimaryColumn(key: ColKey): Column | null;
getGridColumn(key: ColKey): Column | null;
lookupGridColumn(key: string): Column<any>;
getSecondaryColumn(key: ColKey): Column | null;
private getColumn;
getSourceColumnsForGroupColumn(groupCol: Column): Column[] | null;
private getAutoColumn;
private columnsMatch;
getDisplayNameForColumn(column: Column | null, location: HeaderLocation, includeAggFunc?: boolean): string | null;
getDisplayNameForProvidedColumnGroup(columnGroup: ColumnGroup | null, providedColumnGroup: ProvidedColumnGroup | null, location: HeaderLocation): string | null;
getDisplayNameForColumnGroup(columnGroup: ColumnGroup, location: HeaderLocation): string | null;
private getHeaderName;
private wrapHeaderNameWithAggFunc;
getColumnGroup(colId: string | ColumnGroup, partId?: number): ColumnGroup | null;
isReady(): boolean;
private extractValueColumns;
private extractRowGroupColumns;
private extractColumns;
private extractPivotColumns;
resetColumnGroupState(source: ColumnEventType): void;
getColumnGroupState(): {
groupId: string;
open: boolean;
}[];
setColumnGroupState(stateItems: {
groupId: string;
open: boolean | undefined;
}[], source: ColumnEventType): void;
setColumnGroupOpened(key: ProvidedColumnGroup | string | null, newValue: boolean, source: ColumnEventType): void;
getProvidedColumnGroup(key: string): ProvidedColumnGroup | null;
private calculateColumnsForDisplay;
private checkColSpanActiveInCols;
private calculateColumnsForGroupDisplay;
getGroupDisplayColumns(): Column[];
getGroupDisplayColumnForGroup(rowGroupColumnId: string): Column | undefined;
private updateDisplayedColumns;
isSecondaryColumnsPresent(): boolean;
setSecondaryColumns(colDefs: (ColDef | ColGroupDef)[] | null, source: ColumnEventType): void;
private processSecondaryColumnDefinitions;
private updateGridColumns;
private setAutoHeightActive;
private orderGridColsLike;
isPrimaryColumnGroupsPresent(): boolean;
refreshQuickFilterColumns(): void;
private placeLockedColumns;
private addAutoGroupToGridColumns;
private clearDisplayedAndViewportColumns;
private updateGroupsAndDisplayedColumns;
private deriveDisplayedColumns;
isAutoRowHeightActive(): boolean;
wasAutoRowHeightEverActive(): boolean;
private joinColumnsAriaOrder;
private joinDisplayedColumns;
private setLeftValues;
private setLeftValuesOfColumns;
private setLeftValuesOfGroups;
private derivedDisplayedColumnsFromDisplayedTree;
private isColumnVirtualisationSuppressed;
private extractViewportColumns;
getVirtualHeaderGroupRow(type: ColumnPinnedType, dept: number): IHeaderColumn[];
private calculateHeaderRows;
private extractViewport;
refreshFlexedColumns(params?: {
resizingCols?: Column[];
skipSetLeft?: boolean;
viewportWidth?: number;
source?: ColumnEventType;
fireResizedEvent?: boolean;
updateBodyWidths?: boolean;
}): Column[];
sizeColumnsToFit(gridWidth: any, source?: ColumnEventType, silent?: boolean, params?: ISizeColumnsToFitParams): void;
private buildDisplayedTrees;
private updateDisplayedMap;
isDisplayed(item: IHeaderColumn): boolean;
private updateOpenClosedVisibilityInColumnGroups;
getGroupAutoColumns(): Column[] | null;
/**
* Creates new auto group columns if required
* @returns whether auto cols have changed
*/
private createGroupAutoColumnsIfNeeded;
isGroupSuppressAutoColumn(): boolean;
private autoColsEqual;
private getWidthOfColsInList;
getFirstDisplayedColumn(): Column | null;
setColumnHeaderHeight(col: Column, height: number): void;
getColumnGroupHeaderRowHeight(): number;
getColumnHeaderRowHeight(): number;
getHeaderHeight(): number;
getFloatingFiltersHeight(): number;
getGroupHeaderHeight(): number;
private getPivotHeaderHeight;
getPivotGroupHeaderHeight(): number;
queueResizeOperations(): void;
processResizeOperations(): void;
resetColumnDefIntoColumn(column: Column, source: ColumnEventType): boolean;
isColumnGroupingLocked(column: Column): boolean;
generateColumnStateForRowGroupAndPivotIndexes(updatedRowGroupColumnState: {
[colId: string]: ColumnState;
}, updatedPivotColumnState: {
[colId: string]: ColumnState;
}): ColumnState[];
private onColumnsReady;
private onFirstDataRendered;
}
export declare function convertSourceType(source: PropertyChangedSource): ColumnEventType;