UNPKG

@gooddata/react-components

Version:

GoodData.UI - A powerful JavaScript library for building analytical applications

123 lines (122 loc) 4.51 kB
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>; };