@finos/legend-data-cube
Version:
350 lines • 17.7 kB
TypeScript
/**
* Copyright (c) 2020-present, Goldman Sachs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/***************************************************************************************
* [GRID]
*
* These are utilities used to build the configuration for the grid client,
* AG Grid, from the snapshot.
***************************************************************************************/
import { type DataCubeSnapshot } from '../../core/DataCubeSnapshot.js';
import type { ColGroupDef, GridOptions } from 'ag-grid-community';
import { DataCubeGridClientSortDirection, DataCubeGridClientPinnedAlignement } from './DataCubeGridClientEngine.js';
import { type DataCubeConfiguration } from '../../core/model/DataCubeConfiguration.js';
import type { DataCubeViewState } from '../DataCubeViewState.js';
export declare function generateBaseGridOptions(view: DataCubeViewState): GridOptions;
export declare function generateDimensionalBaseGridOptions(view: DataCubeViewState): GridOptions;
export declare function generateColumnDefs(snapshot: DataCubeSnapshot, configuration: DataCubeConfiguration): (ColGroupDef<any> | {
enableRowGroup: boolean;
rowGroup: boolean;
rowGroupIndex: number | null;
enablePivot: boolean;
pivot: boolean;
pivotIndex: number | null;
aggFunc: string | null;
enableValue: false;
allowedAggFuncs: never[];
sortable: true;
sort: DataCubeGridClientSortDirection | null;
sortIndex: number | null;
colId: string;
field: string;
type?: string | string[];
cellDataType: boolean | string;
valueGetter?: string | import("ag-grid-community").ValueGetterFunc<any, any>;
valueFormatter: string | ((params: import("ag-grid-community").ValueFormatterParams<any, any>) => any);
refData?: {
[key: string]: string;
};
keyCreator?: (params: import("ag-grid-community").KeyCreatorParams<any, any>) => string;
equals?: (valueA: any, valueB: any) => boolean;
tooltipField?: string;
tooltipValueGetter: (params: import("ag-grid-community").ITooltipParams<any, any, any>) => string | any;
checkboxSelection?: boolean | import("ag-grid-community").CheckboxSelectionCallback<any, any>;
showDisabledCheckboxes?: boolean;
icons?: {
[key: string]: ((...args: any[]) => any) | string;
};
suppressNavigable?: boolean | import("ag-grid-community").SuppressNavigableCallback<any, any>;
suppressKeyboardEvent?: (params: import("ag-grid-community").SuppressKeyboardEventParams<any, any>) => boolean;
suppressPaste?: boolean | import("ag-grid-community").SuppressPasteCallback<any, any>;
suppressFillHandle?: boolean;
hide: boolean;
initialHide?: boolean;
lockVisible: boolean;
lockPosition?: boolean | "left" | "right";
suppressMovable?: boolean;
useValueFormatterForExport?: boolean;
editable?: boolean | import("ag-grid-community").EditableCallback<any, any>;
valueSetter?: string | import("ag-grid-community").ValueSetterFunc<any, any>;
valueParser?: string | import("ag-grid-community").ValueParserFunc<any, any>;
cellEditor?: any;
cellEditorParams?: any;
cellEditorSelector?: import("ag-grid-community").CellEditorSelectorFunc<any, any>;
singleClickEdit?: boolean;
cellEditorPopup?: boolean;
cellEditorPopupPosition?: "over" | "under";
useValueParserForImport?: boolean;
onCellValueChanged?: (event: import("ag-grid-community").NewValueParams<any, any>) => void;
onCellClicked?: (event: import("ag-grid-community").CellClickedEvent<any, any>) => void;
onCellDoubleClicked?: (event: import("ag-grid-community").CellDoubleClickedEvent<any, any>) => void;
onCellContextMenu?: (event: import("ag-grid-community").CellContextMenuEvent<any, any>) => void;
getQuickFilterText?: (params: import("ag-grid-community").GetQuickFilterTextParams<any, any>) => string;
filterValueGetter?: string | import("ag-grid-community").ValueGetterFunc<any, any>;
floatingFilter?: boolean;
suppressFloatingFilterButton?: boolean;
headerComponent?: any;
headerComponentParams?: any;
menuTabs: import("ag-grid-community").ColumnMenuTab[];
columnChooserParams?: import("ag-grid-community").ColumnChooserParams;
suppressHeaderMenuButton?: boolean;
suppressHeaderFilterButton?: boolean;
mainMenuItems?: (import("ag-grid-community").DefaultMenuItem | import("ag-grid-community").MenuItemDef<any, any>)[] | import("ag-grid-community").GetMainMenuItems<any, any>;
contextMenuItems?: import("ag-grid-community").GetContextMenuItems<any, any> | (import("ag-grid-community").DefaultMenuItem | import("ag-grid-community").MenuItemDef<any, any>)[];
headerCheckboxSelection?: boolean | import("ag-grid-community").HeaderCheckboxSelectionCallback<any, any>;
headerCheckboxSelectionFilteredOnly?: boolean;
headerCheckboxSelectionCurrentPageOnly?: boolean;
chartDataType?: "category" | "series" | "time" | "excluded";
pinned: boolean | "left" | "right" | DataCubeGridClientPinnedAlignement | null;
initialPinned?: boolean | "left" | "right";
lockPinned?: boolean;
initialPivot?: boolean;
initialPivotIndex?: number;
pivotComparator?: (valueA: string, valueB: string) => number;
cellStyle?: import("ag-grid-community").CellStyle | import("ag-grid-community").CellStyleFunc<any, any>;
cellClass?: string | string[] | import("ag-grid-community").CellClassFunc<any, any>;
cellClassRules: import("ag-grid-community").CellClassRules<any, any>;
cellRenderer: any;
cellRendererParams?: any;
cellRendererSelector?: import("ag-grid-community").CellRendererSelectorFunc<any, any>;
loadingCellRenderer?: any;
loadingCellRendererParams?: any;
loadingCellRendererSelector?: import("ag-grid-community").CellRendererSelectorFunc<any, any>;
autoHeight?: boolean;
wrapText?: boolean;
enableCellChangeFlash?: boolean;
rowDrag?: boolean | import("ag-grid-community").RowDragCallback<any, any>;
rowDragText?: (params: import("ag-grid-community").IRowDragItem, dragItemCount: number) => string;
dndSource?: boolean | import("ag-grid-community").DndSourceCallback<any, any>;
dndSourceOnRowDrag?: (params: import("ag-grid-community").DndSourceOnRowDragParams<any>) => void;
initialRowGroup?: boolean;
initialRowGroupIndex?: number;
initialAggFunc?: string | import("ag-grid-community").IAggFunc<any, any>;
defaultAggFunc?: string;
showRowGroup?: string | boolean;
initialSort?: import("ag-grid-community").SortDirection;
initialSortIndex?: number;
sortingOrder?: import("ag-grid-community").SortDirection[];
comparator?: (valueA: any, valueB: any, nodeA: import("ag-grid-community").IRowNode<any>, nodeB: import("ag-grid-community").IRowNode<any>, isDescending: boolean) => number;
unSortIcon?: boolean;
colSpan?: (params: import("ag-grid-community").ColSpanParams<any, any>) => number;
rowSpan?: (params: import("ag-grid-community").RowSpanParams<any, any>) => number;
spanRows?: boolean | ((params: import("ag-grid-community").SpanRowsParams<any, any>) => boolean);
width?: number;
initialWidth?: number;
minWidth?: number;
maxWidth?: number;
flex?: number;
initialFlex?: number;
resizable?: boolean;
suppressSizeToFit?: boolean;
suppressAutoSize?: boolean;
pivotValueColumn?: import("ag-grid-community").Column | null;
pivotTotalColumnIds?: string[];
suppressSpanHeaderHeight: boolean;
headerName: string;
headerValueGetter?: string | import("ag-grid-community").HeaderValueGetterFunc<any, any>;
headerTooltip: string;
headerStyle?: import("ag-grid-community").HeaderStyle | import("ag-grid-community").HeaderStyleFunc<any, any>;
headerClass: import("ag-grid-community").HeaderClass<any, any>;
suppressHeaderKeyboardEvent?: (params: import("ag-grid-community").SuppressHeaderKeyboardEventParams<any, any>) => boolean;
columnGroupShow?: import("ag-grid-community").ColumnGroupShowType;
toolPanelClass?: import("ag-grid-community").ToolPanelClass<any, any>;
suppressColumnsToolPanel?: boolean;
suppressFiltersToolPanel?: boolean;
tooltipComponent?: any;
tooltipComponentParams?: any;
pivotKeys?: string[];
cellAriaRole?: string;
context?: any;
wrapHeaderText?: boolean;
autoHeaderHeight?: boolean;
suppressHeaderContextMenu?: boolean;
filter?: any;
filterParams?: any;
floatingFilterComponent?: any;
floatingFilterComponentParams?: any;
} | {
colId: string;
hide: true;
enableValue: false;
allowedAggFuncs: never[];
enablePivot: false;
enableRowGroup: false;
filter: string;
suppressColumnsToolPanel: true;
headerName?: never;
field?: never;
rowGroup?: never;
rowGroupIndex?: never;
} | {
colId: string;
headerName: string;
field: string;
hide: true;
enableValue: false;
allowedAggFuncs: never[];
enablePivot: false;
enableRowGroup: false;
suppressColumnsToolPanel: true;
rowGroup: true;
rowGroupIndex: number;
filter?: never;
})[];
export declare function generateColumnDefsForDimensions(snapshot: DataCubeSnapshot, configuration: DataCubeConfiguration): ({
colId: string;
field: string;
type?: string | string[];
cellDataType: boolean | string;
valueGetter?: string | import("ag-grid-community").ValueGetterFunc<any, any>;
valueFormatter: string | ((params: import("ag-grid-community").ValueFormatterParams<any, any>) => any);
refData?: {
[key: string]: string;
};
keyCreator?: (params: import("ag-grid-community").KeyCreatorParams<any, any>) => string;
equals?: (valueA: any, valueB: any) => boolean;
tooltipField?: string;
tooltipValueGetter: (params: import("ag-grid-community").ITooltipParams<any, any, any>) => string | any;
checkboxSelection?: boolean | import("ag-grid-community").CheckboxSelectionCallback<any, any>;
showDisabledCheckboxes?: boolean;
icons?: {
[key: string]: ((...args: any[]) => any) | string;
};
suppressNavigable?: boolean | import("ag-grid-community").SuppressNavigableCallback<any, any>;
suppressKeyboardEvent?: (params: import("ag-grid-community").SuppressKeyboardEventParams<any, any>) => boolean;
suppressPaste?: boolean | import("ag-grid-community").SuppressPasteCallback<any, any>;
suppressFillHandle?: boolean;
hide: boolean;
initialHide?: boolean;
lockVisible: boolean;
lockPosition?: boolean | "left" | "right";
suppressMovable?: boolean;
useValueFormatterForExport?: boolean;
editable?: boolean | import("ag-grid-community").EditableCallback<any, any>;
valueSetter?: string | import("ag-grid-community").ValueSetterFunc<any, any>;
valueParser?: string | import("ag-grid-community").ValueParserFunc<any, any>;
cellEditor?: any;
cellEditorParams?: any;
cellEditorSelector?: import("ag-grid-community").CellEditorSelectorFunc<any, any>;
singleClickEdit?: boolean;
cellEditorPopup?: boolean;
cellEditorPopupPosition?: "over" | "under";
useValueParserForImport?: boolean;
onCellValueChanged?: (event: import("ag-grid-community").NewValueParams<any, any>) => void;
onCellClicked?: (event: import("ag-grid-community").CellClickedEvent<any, any>) => void;
onCellDoubleClicked?: (event: import("ag-grid-community").CellDoubleClickedEvent<any, any>) => void;
onCellContextMenu?: (event: import("ag-grid-community").CellContextMenuEvent<any, any>) => void;
getQuickFilterText?: (params: import("ag-grid-community").GetQuickFilterTextParams<any, any>) => string;
filterValueGetter?: string | import("ag-grid-community").ValueGetterFunc<any, any>;
floatingFilter?: boolean;
suppressFloatingFilterButton?: boolean;
headerComponent?: any;
headerComponentParams?: any;
menuTabs: import("ag-grid-community").ColumnMenuTab[];
columnChooserParams?: import("ag-grid-community").ColumnChooserParams;
suppressHeaderMenuButton?: boolean;
suppressHeaderFilterButton?: boolean;
mainMenuItems?: (import("ag-grid-community").DefaultMenuItem | import("ag-grid-community").MenuItemDef<any, any>)[] | import("ag-grid-community").GetMainMenuItems<any, any>;
contextMenuItems?: import("ag-grid-community").GetContextMenuItems<any, any> | (import("ag-grid-community").DefaultMenuItem | import("ag-grid-community").MenuItemDef<any, any>)[];
headerCheckboxSelection?: boolean | import("ag-grid-community").HeaderCheckboxSelectionCallback<any, any>;
headerCheckboxSelectionFilteredOnly?: boolean;
headerCheckboxSelectionCurrentPageOnly?: boolean;
chartDataType?: "category" | "series" | "time" | "excluded";
pinned: boolean | "left" | "right" | DataCubeGridClientPinnedAlignement | null;
initialPinned?: boolean | "left" | "right";
lockPinned?: boolean;
pivot?: boolean;
initialPivot?: boolean;
pivotIndex?: number | null;
initialPivotIndex?: number;
pivotComparator?: (valueA: string, valueB: string) => number;
enablePivot?: boolean;
cellStyle?: import("ag-grid-community").CellStyle | import("ag-grid-community").CellStyleFunc<any, any>;
cellClass?: string | string[] | import("ag-grid-community").CellClassFunc<any, any>;
cellClassRules: import("ag-grid-community").CellClassRules<any, any>;
cellRenderer: any;
cellRendererParams?: any;
cellRendererSelector?: import("ag-grid-community").CellRendererSelectorFunc<any, any>;
loadingCellRenderer?: any;
loadingCellRendererParams?: any;
loadingCellRendererSelector?: import("ag-grid-community").CellRendererSelectorFunc<any, any>;
autoHeight?: boolean;
wrapText?: boolean;
enableCellChangeFlash?: boolean;
rowDrag?: boolean | import("ag-grid-community").RowDragCallback<any, any>;
rowDragText?: (params: import("ag-grid-community").IRowDragItem, dragItemCount: number) => string;
dndSource?: boolean | import("ag-grid-community").DndSourceCallback<any, any>;
dndSourceOnRowDrag?: (params: import("ag-grid-community").DndSourceOnRowDragParams<any>) => void;
rowGroup?: boolean;
initialRowGroup?: boolean;
rowGroupIndex?: number | null;
initialRowGroupIndex?: number;
enableRowGroup?: boolean;
enableValue?: boolean;
aggFunc?: string | import("ag-grid-community").IAggFunc<any, any> | null;
initialAggFunc?: string | import("ag-grid-community").IAggFunc<any, any>;
defaultAggFunc?: string;
allowedAggFuncs?: string[];
showRowGroup?: string | boolean;
sortable?: boolean;
sort?: import("ag-grid-community").SortDirection;
initialSort?: import("ag-grid-community").SortDirection;
sortIndex?: number | null;
initialSortIndex?: number;
sortingOrder?: import("ag-grid-community").SortDirection[];
comparator?: (valueA: any, valueB: any, nodeA: import("ag-grid-community").IRowNode<any>, nodeB: import("ag-grid-community").IRowNode<any>, isDescending: boolean) => number;
unSortIcon?: boolean;
colSpan?: (params: import("ag-grid-community").ColSpanParams<any, any>) => number;
rowSpan?: (params: import("ag-grid-community").RowSpanParams<any, any>) => number;
spanRows?: boolean | ((params: import("ag-grid-community").SpanRowsParams<any, any>) => boolean);
width?: number;
initialWidth?: number;
minWidth?: number;
maxWidth?: number;
flex?: number;
initialFlex?: number;
resizable?: boolean;
suppressSizeToFit?: boolean;
suppressAutoSize?: boolean;
pivotValueColumn?: import("ag-grid-community").Column | null;
pivotTotalColumnIds?: string[];
suppressSpanHeaderHeight: boolean;
headerName: string;
headerValueGetter?: string | import("ag-grid-community").HeaderValueGetterFunc<any, any>;
headerTooltip: string;
headerStyle?: import("ag-grid-community").HeaderStyle | import("ag-grid-community").HeaderStyleFunc<any, any>;
headerClass: import("ag-grid-community").HeaderClass<any, any>;
suppressHeaderKeyboardEvent?: (params: import("ag-grid-community").SuppressHeaderKeyboardEventParams<any, any>) => boolean;
columnGroupShow?: import("ag-grid-community").ColumnGroupShowType;
toolPanelClass?: import("ag-grid-community").ToolPanelClass<any, any>;
suppressColumnsToolPanel?: boolean;
suppressFiltersToolPanel?: boolean;
tooltipComponent?: any;
tooltipComponentParams?: any;
pivotKeys?: string[];
cellAriaRole?: string;
context?: any;
wrapHeaderText?: boolean;
autoHeaderHeight?: boolean;
suppressHeaderContextMenu?: boolean;
filter?: any;
filterParams?: any;
floatingFilterComponent?: any;
floatingFilterComponentParams?: any;
} | {
colId: string;
headerName: string;
field: string;
hide: true;
enableValue: false;
allowedAggFuncs: never[];
enablePivot: false;
enableRowGroup: false;
suppressColumnsToolPanel: true;
rowGroup: true;
rowGroupIndex: number;
})[];
export declare function generateGridOptionsFromSnapshot(snapshot: DataCubeSnapshot, configuration: DataCubeConfiguration, view: DataCubeViewState): GridOptions;
//# sourceMappingURL=DataCubeGridConfigurationBuilder.d.ts.map