@visualjs/grid
Version:
JavaScript Data Table
74 lines (73 loc) • 2.22 kB
TypeScript
import { Pinned, ColumnsDef, ColumnOptions, BaseColumnOptions, GetColumnMenuItemsParams, MenuItem, GroupData } from "../../../types";
import { Store as BaseStore } from "../../../grid/store";
export interface Actions {
updateColumnPinned: {
field: string;
pinned: Pinned;
};
updateColumnVisible: {
field: string;
visible: boolean;
};
updateColumnWidth: {
field: string;
width?: number;
flex?: number;
};
updateColumnName: {
field: string;
name: string;
};
updateGroupCollapsed: {
group: string;
collapsed: boolean;
};
updateGroupName: {
group: string;
name: string;
};
setColumns: {
columns: ColumnsDef;
defaultOptions?: BaseColumnOptions;
};
setHeight: number;
}
export interface State {
columnsDef: ColumnsDef;
pinnedLeftColumns: string[];
pinnedRightColumns: string[];
normalColumns: string[];
columns: Record<string, ColumnOptions>;
groups: string[][];
groupsData: Record<string, GroupData>;
height: number;
getColumnMenuItems?: (params: GetColumnMenuItemsParams) => MenuItem[];
}
export declare const defaultColumnOptions: BaseColumnOptions;
export declare class Store extends BaseStore<State, Actions> {
constructor(initial?: Partial<State>);
protected setColumns: (columnOptions: ColumnOptions[], defaultColumnOption?: BaseColumnOptions) => {
pinnedLeftColumns: string[];
pinnedRightColumns: string[];
normalColumns: string[];
columns: Record<string, ColumnOptions>;
};
/**
* Actions
*/
getColumnOptions(column: string): ColumnOptions;
getColumnOptionsByIndex(x: number): ColumnOptions;
getColumnIndex(field: string): number;
getColumnByIndex(x: number): string;
getGroupWidth(id: string, columns?: string[]): {
width: number;
flex: number;
};
toggleGroupCollapsed(group: string): void;
protected lookForColumn(columnsDef: ColumnsDef, field: string): {
parent: ColumnsDef;
index: number;
};
moveColumn(column: string, toColumn: string): void;
}
export default Store;