@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
147 lines (146 loc) • 5.48 kB
TypeScript
import { AFM, Execution, VisualizationObject } from "@gooddata/typings";
import * as React from "react";
import { WrappedComponentProps } from "react-intl";
import "../../../styles/css/pivotTable.css";
import { IPivotTableConfig, ColumnWidthItem } from "../../interfaces/PivotTable";
import { IDataSourceProviderInjectedProps } from "../afm/DataSourceProvider";
import { ICommonChartProps } from "./base/BaseChart";
import { BaseVisualization } from "./base/BaseVisualization";
import { IGetPage, ILoadingInjectedProps } from "./base/VisualizationLoadingHOC";
import { IGridHeader, IGridRow } from "./pivotTable/agGridTypes";
export interface IPivotTableProps extends ICommonChartProps, IDataSourceProviderInjectedProps {
totals?: VisualizationObject.IVisualizationTotal[];
getPage?: IGetPage;
cancelPagePromises?: () => void;
pageSize?: number;
config?: IPivotTableConfig;
groupRows?: boolean;
onDataSourceUpdateSuccess?: () => void;
onColumnResized?: (columnWidths: ColumnWidthItem[]) => void;
}
export interface IPivotTableState {
columnDefs: IGridHeader[];
rowData: IGridRow[];
execution: Execution.IExecutionResponses;
columnTotals: AFM.ITotalItem[];
agGridRerenderNumber: number;
desiredHeight: number | undefined;
sortedByFirstAttribute: boolean;
resized: boolean;
}
export declare type IPivotTableInnerProps = IPivotTableProps & ILoadingInjectedProps & IDataSourceProviderInjectedProps & WrappedComponentProps;
export declare const WATCHING_TABLE_RENDERED_INTERVAL = 500;
export declare const DEFAULT_COLUMN_WIDTH = 200;
/**
* Pivot Table react component
*/
export declare class PivotTableInner extends BaseVisualization<IPivotTableInnerProps, IPivotTableState> {
static defaultProps: Partial<IPivotTableInnerProps>;
private agGridDataSource;
private gridApi;
private columnApi;
private containerRef;
private groupingProvider;
private lastScrollPosition;
private resizedColumnsStore;
private autoResizedColumns;
private growToFittedColumns;
private watchingIntervalId;
private resizing;
private lastResizedWidth;
private lastResizedHeight;
private numberOfColumnResizedCalls;
private columnWidthsChangeWaitingForExecution;
private isMetaOrCtrlKeyPressed;
private isAltKeyPressed;
constructor(props: IPivotTableInnerProps);
componentWillMount(): void;
componentDidMount(): void;
componentWillUnmount(): void;
componentWillUpdate(nextProps: IPivotTableInnerProps, nextState: IPivotTableState): void;
componentDidUpdate(prevProps: IPivotTableInnerProps, prevState: IPivotTableState): void;
renderVisualization(): JSX.Element;
private isTableHidden;
private forceRerender;
private setContainerRef;
private setGroupingProvider;
private updateGrouping;
private getExecutionResponse;
private getExecutionResult;
private getAfmFilters;
private getColumnTotals;
private getExecution;
private getGridApi;
private isNewAGGridDataSourceNeeded;
private isAgGridRerenderNeeded;
private updateAGGridDataSource;
private getColumnIds;
private getAutoResizedColumns;
private autoresizeVisibleColumns;
private autoresizeColumnsByColumnId;
private shouldPerformAutoresize;
private isColumnAutoresizeEnabled;
private isGrowToFitEnabled;
private isPivotTableReady;
private autoresizeColumns;
private isColumnAutoResized;
private resetColumnsWidthToDefault;
private clearFittedColumns;
private handleColumnWidthsChange;
private setFittedColumns;
private growToFit;
private mapFieldIdToGridId;
private gridSizeChanged;
private gridColumnsChanged;
private shouldAutoResizeColumns;
private onModelUpdated;
private sortChanged;
private createAGGridDataSource;
private setGridDataSource;
private onGridReady;
private startWatchingTableRendered;
private stopWatchingTableRendered;
private onFirstDataRendered;
private getAttributeHeader;
private getItemAndAttributeHeaders;
private getAttributeDrillItemsForMeasureDrill;
private isSomeTotal;
private getRowDrillItem;
private getDrillItems;
private getDrillIntersection;
private cellClicked;
private handleLegacyOnFireDrillEvent;
private isManualResizing;
private getDefaultWidth;
private resetResizedColumn;
private onGridColumnResized;
private getAllMeasureColumns;
private onColumnsManualReset;
private isAllMeasureResizeOperation;
private isWeakMeasureResizeOperation;
private onColumnsManualResized;
private afterOnResizeColumns;
private onMenuAggregationClick;
private onBodyScroll;
private onContainerMouseDown;
private getInfiniteInitialRowCountRowCount;
private getColumnWidths;
private hasColumnWidths;
private getDefaultWidthFromProps;
private createGridOptions;
/**
* getCellClass returns class for drillable cells. (maybe format in the future as well)
*/
private getCellClass;
private getHeaderClass;
private getDrillablePredicates;
private isStickyRowAvailable;
private updateStickyRow;
private updateStickyRowContent;
private getTotalBodyHeight;
private getScrollBarPadding;
private updateDesiredHeight;
private isHeaderResizer;
private shouldWaitForExecution;
}
export declare const PivotTable: React.ComponentClass<IPivotTableProps, any>;