@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
125 lines (124 loc) • 5.64 kB
TypeScript
import * as React from "react";
import { SDK, IFeatureFlags } from "@gooddata/gooddata-js";
import { AFM, VisualizationObject, VisualizationClass, Localization } from "@gooddata/typings";
import { WrappedComponentProps } from "react-intl";
import { IHeaderPredicate } from "../../interfaces/HeaderPredicate";
import { IChartConfig, IColorPaletteItem } from "../../interfaces/Config";
import { IGeoConfig } from "../../interfaces/GeoChart";
import { IEvents, OnLegendReady } from "../../interfaces/Events";
import { Requireable } from "../../proptypes/Visualization";
import { VisType } from "../../constants/visualizationTypes";
import { IDataSource } from "../../interfaces/DataSource";
import { ILoadingProps } from "../simple/LoadingComponent";
import { IErrorProps } from "../simple/ErrorComponent";
import { IDrillableItem, RuntimeError } from "../../";
import { IPivotTableConfig } from "../../interfaces/PivotTable";
export { Requireable };
export declare type VisualizationEnvironment = "none" | "dashboards";
export interface IVisualizationProps extends IEvents {
projectId: string;
sdk?: SDK;
uri?: string;
identifier?: string;
locale?: Localization.ILocale;
config?: IChartConfig | IGeoConfig | IPivotTableConfig;
filters?: AFM.ExtendedFilter[];
drillableItems?: Array<IDrillableItem | IHeaderPredicate>;
uriResolver?: (sdk: SDK, projectId: string, uri?: string, identifier?: string) => Promise<string>;
fetchVisObject?: (sdk: SDK, visualizationUri: string) => Promise<VisualizationObject.IVisualizationObject>;
fetchVisualizationClass?: (sdk: SDK, visualizationUri: string) => Promise<VisualizationClass.IVisualizationClass>;
getFeatureFlags?: (sdk: SDK, projectId: string) => Promise<IFeatureFlags>;
BaseChartComponent?: any;
PivotTableComponent?: any;
GeoPushpinChartComponent?: any;
HeadlineComponent?: any;
XirrComponent?: any;
ErrorComponent?: React.ComponentType<IErrorProps>;
LoadingComponent?: React.ComponentType<ILoadingProps>;
onLegendReady?: OnLegendReady;
/**
* If specified and true, the Visualization component will use new executeVisualization API to obtain
* data to visualize; this functionality is experimental at the moment and is intended for GoodData internal
* testing and validation.
*/
experimentalVisExecution?: boolean;
afterRender?: () => void;
}
export interface IVisualizationState {
isLoading: boolean;
resultSpec: AFM.IResultSpec;
type: VisType;
totals: VisualizationObject.IVisualizationTotal[];
error?: RuntimeError;
mdObject?: VisualizationObject.IVisualizationObject;
colorPalette: IColorPaletteItem[];
colorPaletteEnabled: boolean;
featureFlags: IFeatureFlags;
}
export interface IVisualizationExecInfo {
dataSource: IDataSource;
resultSpec: AFM.IResultSpec;
featureFlags: IFeatureFlags;
type: VisType;
totals: VisualizationObject.IVisualizationTotal[];
mdObject: VisualizationObject.IVisualizationObject;
}
export declare class VisualizationWrapped extends React.Component<IVisualizationProps & WrappedComponentProps, IVisualizationState> {
static propTypes: {
filters: any;
drillableItems: Requireable<any>;
projectId: import("prop-types").Validator<any>;
identifier: Requireable<any>;
uri: Requireable<any>;
uriResolver: Requireable<any>;
locale: Requireable<any>;
fetchVisObject: Requireable<any>;
fetchVisualizationClass: Requireable<any>;
BaseChartComponent: Requireable<any>;
LoadingComponent: Requireable<any>;
ErrorComponent: Requireable<any>;
onLegendReady: Requireable<any>;
onError: Requireable<any>;
onLoadingChanged: Requireable<any>;
onLoadingFinish: Requireable<any>;
afterRender: Requireable<any>;
pushData: Requireable<any>;
config: Requireable<any>;
};
static defaultProps: Partial<IVisualizationProps & WrappedComponentProps>;
private visualizationUri;
private decideLocale;
private adapter;
private dataSource;
private subject;
private errorMap;
private exportTitle;
private sdk;
private isUnmounted;
constructor(props: IVisualizationProps & WrappedComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
shouldComponentUpdate(nextProps: IVisualizationProps, nextState: IVisualizationState): boolean;
hasChangedProps(nextProps: IVisualizationProps, propKeys?: string[]): boolean;
componentWillReceiveProps(nextProps: IVisualizationProps & WrappedComponentProps): void;
render(): JSX.Element;
prepareDataSources(projectId: string, identifier: string, filters?: AFM.ExtendedFilter[]): Promise<IVisualizationExecInfo>;
private renderError;
private createVisualizationConfig;
private createDataSource;
private hasExternalColorPalette;
private hasColorsProp;
private getColorPaletteFromProject;
private getColorPalette;
private setStateWithCheck;
}
export declare const IntlVisualization: React.FunctionComponent<import("react-intl").WithIntlProps<IVisualizationProps & WrappedComponentProps<"intl">>> & {
WrappedComponent: React.ComponentType<IVisualizationProps & WrappedComponentProps<"intl">>;
};
/**
* [Visualization](http://sdk.gooddata.com/gooddata-ui/docs/react_components.html#visualization)
* is a component that renders saved visualization based on projectId and either identifier or uri
*/
export declare class Visualization extends React.PureComponent<IVisualizationProps> {
render(): JSX.Element;
}