| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.adaptor = exports.statistic = void 0;
- var tslib_1 = require("tslib");
- var util_1 = require("@antv/util");
- var common_1 = require("../../adaptor/common");
- var geometries_1 = require("../../adaptor/geometries");
- var utils_1 = require("../../utils");
- var utils_2 = require("./utils");
- /**
- * geometry 处理
- * @param params
- */
- function geometry(params) {
- var chart = params.chart, options = params.options;
- var percent = options.percent, liquidStyle = options.liquidStyle, radius = options.radius, outline = options.outline, wave = options.wave, shape = options.shape, shapeStyle = options.shapeStyle, animation = options.animation;
- chart.scale({
- percent: {
- min: 0,
- max: 1,
- },
- });
- chart.data((0, utils_2.getLiquidData)(percent));
- var color = options.color || chart.getTheme().defaultColor;
- var p = (0, utils_1.deepAssign)({}, params, {
- options: {
- xField: 'type',
- yField: 'percent',
- // radius 放到 columnWidthRatio 中。
- // 保证横向的大小是根据 radius 生成的
- widthRatio: radius,
- interval: {
- color: color,
- style: liquidStyle,
- shape: 'liquid-fill-gauge',
- },
- },
- });
- var ext = (0, geometries_1.interval)(p).ext;
- var geometry = ext.geometry;
- var background = chart.getTheme().background;
- var customInfo = {
- percent: percent,
- radius: radius,
- outline: outline,
- wave: wave,
- shape: shape,
- shapeStyle: shapeStyle,
- background: background,
- animation: animation,
- };
- // 将 radius 传入到自定义 shape 中
- geometry.customInfo(customInfo);
- // 关闭组件
- chart.legend(false);
- chart.axis(false);
- chart.tooltip(false);
- return params;
- }
- /**
- * 统计指标文档
- * @param params
- */
- function statistic(params, updated) {
- var chart = params.chart, options = params.options;
- var statistic = options.statistic, percent = options.percent, meta = options.meta;
- // 先清空标注,再重新渲染
- chart.getController('annotation').clear(true);
- var metaFormatter = (0, util_1.get)(meta, ['percent', 'formatter']) || (function (v) { return "".concat((v * 100).toFixed(2), "%"); });
- var contentOpt = statistic.content;
- if (contentOpt) {
- contentOpt = (0, utils_1.deepAssign)({}, contentOpt, {
- content: !(0, util_1.isNil)(contentOpt.content) ? contentOpt.content : metaFormatter(percent),
- });
- }
- (0, utils_1.renderStatistic)(chart, { statistic: tslib_1.__assign(tslib_1.__assign({}, statistic), { content: contentOpt }), plotType: 'liquid' }, { percent: percent });
- if (updated) {
- chart.render(true);
- }
- return params;
- }
- exports.statistic = statistic;
- /**
- * 水波图适配器
- * @param chart
- * @param options
- */
- function adaptor(params) {
- // flow 的方式处理所有的配置到 G2 API (主题前置,会影响绘制的取色)
- return (0, utils_1.flow)(common_1.theme, (0, common_1.pattern)('liquidStyle'), geometry, statistic, (0, common_1.scale)({}), common_1.animation, common_1.interaction)(params);
- }
- exports.adaptor = adaptor;
- //# sourceMappingURL=adaptor.js.map
|