import 'react';
import warn from 'warning';
import get from '@antv/util/lib/get';
import set from '@antv/util/lib/set';
import { Rose, RoseOptions as Options } from '@antv/g2plot/lib/plots/rose';
import createPlot, { BasePlotOptions } from '../createPlot';
import { polyfillOptions, replaceApi } from './core/polyfill';
import { LengendAPIOptions, TooltipAPIOptions, LabelAPIOptions } from './core/interface';
const REPLACEAPILIST = [{
sourceKey: 'stackField',
targetKey: 'seriesField',
notice: 'stackField 是 g2@1.0的属性,即将废弃,请使用seriesField替代',
}, {
sourceKey: 'categoryField',
targetKey: 'xField',
notice: 'categoryField 是 g2@1.0的属性,即将废弃,请使用xField替代',
}, {
sourceKey: 'radiusField',
targetKey: 'yField',
notice: 'radiusField 是 g2@1.0的属性,即将废弃,请使用yFeild替代',
}];
interface StackedRoseOptions extends Options, BasePlotOptions {
/** 请使用seriesField替代 */
stackField?: string;
/** 请使用xField替代 */
categoryField?: string;
/** 请使用yFeild替代 */
radiusField?: string;
legend?: LengendAPIOptions;
tooltip?: TooltipAPIOptions;
label?: LabelAPIOptions;
}
const polyfill = (opt: StackedRoseOptions): StackedRoseOptions => {
warn(false, ' 即将在5.0后废弃,请使用替代,')
const options = polyfillOptions(opt);
replaceApi(REPLACEAPILIST, options);
if (get(options, 'tooltip.visible') === false) {
set(options, 'tooltip', false);
}
if (get(options, 'label.visible') === false) {
set(options, 'label', false);
}
if (get(options, 'label.type') === 'inner') {
options.label.offset = -15;
delete options.label.type;
}
if (get(options, 'label.type') === 'outer') {
delete options.label.type;
}
return { ...options, isStack: true };
}
export { StackedRoseOptions };
export default createPlot(Rose, 'StackedRoseChart', polyfill);