UNPKG

@finos/legend-data-cube

Version:
271 lines 14.9 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. */ import type { GridApi, IRowNode, IServerSideDatasource, IServerSideGetRowsParams } from 'ag-grid-community'; import type { DataCubeGridState } from './DataCubeGridState.js'; import { DataCubeConfiguration, type DataCubeConfigurationColorKey } from '../../core/model/DataCubeConfiguration.js'; import { type DataCubeSnapshot } from '../../core/DataCubeSnapshot.js'; import type { DataCubeViewState } from '../DataCubeViewState.js'; import { DataCubeDimensionalMetadata, type DataCubeDimensionalTree } from './DataCubeGridDimensionalTree.js'; type DataCubeGridClientCellValue = string | number | boolean | Map<string, DataCubeDimensionalMetadata> | null | undefined; type DataCubeGridClientRowData = { [key: string]: DataCubeGridClientCellValue; }; export declare enum DataCubeGridClientExportFormat { CSV = "CSV", EXCEL = "EXCEL", PLAIN_TEXT = "PLAIN_TEXT", HTML = "HTML", PDF = "PDF" } export declare enum INTERNAL__GridClientUtilityCssClassName { ROOT = "data-cube-grid.ag-theme-quartz", HIGHLIGHT_ROW = "data-cube-grid__utility--highlight-row", SHOW_VERTICAL_GRID_LINES = "data-cube-grid__utility--show-vertical-grid-lines", SHOW_HORIZONTAL_GRID_LINES = "data-cube-grid__utility--show-horizontal-grid-lines", BLUR = "data-cube-grid__utility--blur", FONT_FAMILY_PREFIX = "data-cube-grid__utility--font-family-", FONT_SIZE_PREFIX = "data-cube-grid__utility--font-size-", FONT_BOLD = "data-cube-grid__utility--font-style-bold", FONT_ITALIC = "data-cube-grid__utility--font-style-italic", FONT_UNDERLINE_PREFIX = "data-cube-grid__utility--font-style-underline-", FONT_STRIKETHROUGH = "data-cube-grid__utility--font-style-strikethrough", FONT_CASE_PREFIX = "data-cube-grid__utility--font-style-case-", TEXT_ALIGN_PREFIX = "data-cube-grid__utility--text-align-", TEXT_COLOR_PREFIX = "data-cube-grid__utility--text-color-", BACKGROUND_COLOR_PREFIX = "data-cube-grid__utility--background-color-", PIVOT_COLUMN_GROUP = "data-cube-grid__utility--pivot-column-group", PIVOT_COLUMN_GROUP_PREFIX = "data-cube-grid__utility--pivot-column-group-" } export declare const generateFontFamilyUtilityClassName: (fontFamily: string) => string; export declare const generateFontSizeUtilityClassName: (fontSize: number) => string; export declare const generateFontUnderlineUtilityClassName: (variant: string | undefined) => string; export declare const generateFontCaseUtilityClassName: (fontCase: string | undefined) => string; export declare const generateTextAlignUtilityClassName: (alignment: string) => string; export declare const generateTextColorUtilityClassName: (color: string, key: DataCubeConfigurationColorKey) => string; export declare const generateBackgroundColorUtilityClassName: (color: string, key: DataCubeConfigurationColorKey) => string; export declare const INTERNAL__GRID_CLIENT_DEFAULT_CACHE_BLOCK_SIZE = 500; export declare const INTERNAL__GRID_CLIENT_DEFAULT_ENABLE_PAGINATION = true; export declare const INTERNAL__GRID_CLIENT_DEFAULT_ENABLE_CACHING = false; export declare const INTERNAL__GRID_CLIENT_MAX_CACHE_BLOCK_SIZE = 1000; export declare const INTERNAL__GRID_CLIENT_PIVOT_COLUMN_GROUP_COLOR_ROTATION_SIZE = 5; export declare const INTERNAL__GRID_CLIENT_SIDE_BAR_WIDTH = 200; export declare const INTERNAL__GRID_CLIENT_COLUMN_MIN_WIDTH = 50; export declare const INTERNAL__GRID_CLIENT_HEADER_HEIGHT = 24; export declare const INTERNAL__GRID_CLIENT_ROW_HEIGHT = 20; export declare const INTERNAL__GRID_CLIENT_TOOLTIP_SHOW_DELAY = 1500; export declare const INTERNAL__GRID_CLIENT_AUTO_RESIZE_PADDING = 10; export declare const INTERNAL__GRID_CLIENT_MISSING_VALUE = "__MISSING"; export declare const INTERNAL__GRID_CLIENT_TREE_COLUMN_ID = "ag-Grid-AutoColumn"; export declare const INTERNAL__GRID_CLIENT_ROOT_AGGREGATION_COLUMN_ID = "INTERNAL__rootAggregation"; export declare const INTERNAL__GRID_CLIENT_DATA_FETCH_MANUAL_TRIGGER_COLUMN_ID = "INTERNAL__dataFetchManualTrigger"; export declare const INTERNAL__GRID_CLIENT_ROW_GROUPING_COUNT_AGG_COLUMN_ID = "count"; export declare enum DataCubeGridClientPinnedAlignement { LEFT = "left", RIGHT = "right" } export declare enum DataCubeGridClientSortDirection { ASCENDING = "asc", DESCENDING = "desc" } export declare function getAllNodes<T>(client: GridApi<T>): IRowNode<T>[]; export declare function getDataForAllNodes<T>(client: GridApi<T>): T[]; /** * NOTE: this method does not work for server-side row model. * It only works when client-side filter is being applied */ export declare function getDataForAllFilteredNodes<T>(client: GridApi<T>): T[]; /** * This method computes the hash code for the parts of the snapshot that should trigger data fetching. * This is used to manually trigger server-side row model data source getRows() method. */ export declare function computeHashCodeForDataFetchManualTrigger(snapshot: DataCubeSnapshot, configuration: DataCubeConfiguration): string; export declare function fetchDimensionalQueryRows(snapshot: DataCubeSnapshot, view: DataCubeViewState, previousTree?: DataCubeDimensionalTree): Promise<{ rowData: DataCubeGridClientRowData[]; columnDefs: ({ 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: IRowNode<any>, nodeB: 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 type DataCubeGridClientDataFetchRequest = { startRow: number | undefined; endRow: number | undefined; rowGroupColumns: string[]; groupKeys: (string | null | undefined)[]; pivotColumns: string[]; sortColumns: { name: string; direction: DataCubeGridClientSortDirection; }[]; }; export declare class DataCubeGridClientServerSideDataSource implements IServerSideDatasource { private readonly _view; private readonly _grid; rowCount: number | undefined; constructor(grid: DataCubeGridState, view: DataCubeViewState); fetchRows(params: IServerSideGetRowsParams<unknown, unknown>): Promise<void>; getRows(params: IServerSideGetRowsParams<unknown, unknown>): void; } export {}; //# sourceMappingURL=DataCubeGridClientEngine.d.ts.map