@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
123 lines (122 loc) • 4.51 kB
TypeScript
import * as React from "react";
import { WrappedComponentProps } from "react-intl";
import { Table } from "fixed-data-table-2";
import { AFM, Execution } from "@gooddata/typings";
import { ISeparators } from "@gooddata/numberjs";
import "nodelist-foreach-polyfill";
import { IMappingHeader } from "../../../interfaces/MappingHeader";
import { IHeaderPredicate } from "../../../interfaces/HeaderPredicate";
import { OnFiredDrillEvent } from "../../../interfaces/Events";
import { OnSortChangeWithItem, SortDir, TableRow } from "../../../interfaces/Table";
import { IIndexedTotalItem, ITotalWithData } from "../../../interfaces/Totals";
export declare const SCROLL_DEBOUNCE: number;
export declare const RESIZE_DEBOUNCE: number;
/**
* We have to extend the FixedDataTable interface as
* the FixedDataTable's inteface is not defined with state
* which we are dependent on.
*
* TODO: Remove dependency on FixedDataTable internal state
*/
export interface IFixedDataTableWithState extends Table {
state: {
scrollX: number;
};
}
export interface IContainerProps {
containerHeight?: number;
containerWidth: number;
}
export interface ITableVisualizationProps {
containerMaxHeight?: number;
afterRender?: () => void;
drillablePredicates?: IHeaderPredicate[];
executionRequest: AFM.IExecution;
executionResponse: Execution.IExecutionResponse;
headers?: IMappingHeader[];
hasHiddenRows?: boolean;
rows?: TableRow[];
onFiredDrillEvent?: OnFiredDrillEvent;
onSortChange?: OnSortChangeWithItem;
sortBy?: number;
sortDir?: SortDir;
sortInTooltip?: boolean;
stickyHeaderOffset?: number;
totalsEditAllowed?: boolean;
onTotalsEdit?: (indexedTotals: IIndexedTotalItem[]) => void;
totalsWithData?: ITotalWithData[];
lastAddedTotalType?: AFM.TotalType;
onLastAddedTotalRowHighlightPeriodEnd?: () => void;
separators?: ISeparators;
}
export interface ITableVisualizationState {
hintSortBy: number;
sortBubble: {
index?: number;
visible: boolean;
};
width: number;
height: number;
}
export declare class TableVisualizationClass extends React.Component<ITableVisualizationProps & WrappedComponentProps & IContainerProps, ITableVisualizationState> {
static defaultProps: Partial<ITableVisualizationProps & WrappedComponentProps & IContainerProps>;
private static fullscreenTooltipEnabled;
private static isSticky;
private static getTableHeight;
private addTotalDropdownOpened;
private footer;
private header;
private rootRef;
private scrollingStopped;
private subscribers;
private table;
private tableComponentRef;
private tableInnerContainer;
private tableWrapRef;
private totalsRemoveComponentRef;
constructor(props: ITableVisualizationProps & WrappedComponentProps & IContainerProps);
componentDidMount(): void;
componentWillReceiveProps(nextProps: ITableVisualizationProps): void;
componentDidUpdate(prevProps: ITableVisualizationProps): void;
componentWillUnmount(): void;
render(): JSX.Element;
private onTotalsEdit;
private setRootRef;
private setTableComponentRef;
private setTableWrapRef;
private setTotalsRemoveComponentRef;
private setListeners;
private getSortFunc;
private getSortObj;
private getMouseOverFunc;
private getComponentClasses;
private getContentClasses;
private unsetListeners;
private toggleBodyColumnHighlight;
private toggleFooterColumnHighlight;
private toggleColumnHighlight;
private resetTotalsRowHighlight;
private hasFooterWithTotals;
private checkTableDimensions;
private scrollHeader;
private scrollFooter;
private scroll;
private scrolled;
private closeSortBubble;
private isBubbleVisible;
private isTotalsEditAllowed;
private addTotalsRow;
private removeTotalsRow;
private enableTotalColumn;
private disableTotalColumn;
private renderTooltipHeader;
private renderDefaultHeader;
private renderCell;
private renderFooter;
private renderColumns;
private renderStickyTableBackgroundFiller;
private renderTotalsRemove;
}
export declare const TableVisualization: React.FunctionComponent<import("react-intl").WithIntlProps<ITableVisualizationProps & WrappedComponentProps<"intl"> & IContainerProps>> & {
WrappedComponent: React.ComponentType<ITableVisualizationProps & WrappedComponentProps<"intl"> & IContainerProps>;
};