UNPKG

@finos/legend-data-cube

Version:
350 lines 17.7 kB
/** * 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