UNPKG

@alicloud/cloud-charts

Version:

![](https://img.shields.io/npm/v/@alicloud/cloud-charts?color=%23ff8200)

135 lines (134 loc) 4.88 kB
import { Chart } from '@antv/g2/esm'; import * as React from 'react'; import { BaseChartConfig, ChartData, Size, Language, Types, Rule } from './types'; import '../Wplaceholder/index.scss'; export declare const rootClassName: string; export declare const rootChildClassName: string; export interface ChartProps<ChartConfig> { className?: string; style?: React.CSSProperties; width?: Size; height?: Size; config?: ChartConfig; data?: ChartData; event?: { [eventKey: string]: Function; }; interaction?: { [actionName: string]: Types.LooseObject; }; language?: Language; /** 获取图表实例的回调 */ getChartInstance?: (chart: Chart) => void; /** 是否响应配置项中的函数更新,默认关闭。 */ enableFunctionUpdate?: boolean; /** * 设置图表的内边距,使用方式参考 CSS 盒模型。 * 下图黄色区域即为 padding 的范围。 * ![](https://gw.alipayobjects.com/mdn/rms_2274c3/afts/img/A*pYwiQrdXGJ8AAAAAAAAAAABkARQnAQ) * * @example * 1. padding: 20 * 2. padding: [ 10, 30, 30 ] */ padding?: Types.ViewPadding; /** * 设置图表的内边距在padding的基础上增加appendPadding的调整。 * @example * 1. padding: 20 * 2. padding: [ 10, 30, 30 ] */ appendPadding?: Types.ViewAppendPadding; /** 是否开启局部刷新,默认开启。 */ localRefresh?: boolean; /** 指定渲染引擎,默认使用 canvas。 */ renderer?: 'canvas' | 'svg'; /** * 是否同步子 view 的 padding,可以是 boolean / SyncViewPaddingFn * 比如: * view1 的 padding 10 * view2 的 padding 20 * 那么两个子 view 的 padding 统一变成最大的 20. * * 如果是 Funcion,则使用自定义的方式去计算子 view 的 padding,这个函数中去修改所有的 views autoPadding 值 */ syncViewPadding?: boolean | Types.SyncViewPaddingFn; /** @deprecated 该属性移至 config.animate */ animate?: boolean; /** @deprecated 自定义图表请使用类继承 */ customChart?: any; /** 是否使用业务配置覆盖规则,默认为否。true表示关闭所有处理 */ force?: Rule; /** loading状态 */ loading?: boolean; /** 错误信息,非空时直接显示图表的异常状态 */ errorInfo?: string; /** chartRef */ chartRef?: React.MutableRefObject<any>; } /** * React 图表基类 * * @template ChartConfig 泛型 - 配置项 * @template Props 泛型 - Props参数 * */ declare class Base<ChartConfig extends BaseChartConfig, Props extends ChartProps<ChartConfig> = ChartProps<ChartConfig>> extends React.Component<Props> { static defaultProps?: {}; static isG2Chart: boolean; chartName: string; legendField: string; chart: Chart; chartDom: HTMLDivElement; readonly chartId: string; defaultConfig: ChartConfig; mergeConfig: ChartConfig; protected language: Language; protected rawData: ChartData; protected dataSize: number; private ref; static contextType: any; constructor(props: Props); /** 是否自动转换数据格式 */ convertData: boolean; /** 获取图表默认配置项 */ getDefaultConfig(): ChartConfig; /** 初始化前对props额外处理 */ beforeInit?(props: Props): Props; /** 初始化函数 */ init(chart: Chart, config: ChartConfig, data: ChartData): void; /** 自定义判断配置项是否更改 */ isChangeEqual?(objValue: any, othValue: any, key: number | string): undefined | boolean; /** 更新数据 */ changeData(chart: Chart, config: ChartConfig, data: ChartData): void; /** 更新尺寸 */ changeSize(chart: Chart, config: ChartConfig, width: number, height: number): void; /** @deprecated 图表渲染后回调 */ /** 销毁图表 */ destroy?(): void; componentDidMount(): void; protected isReRendering: boolean; rerender(): void; isEqualCustomizer: (objValue: any, othValue: any, key: number | string) => undefined | boolean; checkConfigChange(newConfig: ChartConfig, oldConfig: ChartConfig): boolean; componentDidUpdate(prevProps: Props): void; unmountCallbacks: ((chart: Chart) => void)[]; handleDestroy(): void; componentWillUnmount(): void; initChart(): void; private emitWidgetsEvent; size: number[]; initSize(): void; handleChangeSize(config: ChartConfig, w?: Size, h?: Size): void; private resizeRunning; private resizeTimer; autoResize(): void; setSize([w, h]: Size[]): void; render(): JSX.Element; } export default Base; export interface BaseClass<ChartConfig, Props = {}> { new (props: Props): Base<ChartConfig, Props>; isG2Chart: boolean; displayName?: string; defaultProps?: Partial<Props>; }