@antv/g2plot
Version:
An interactive and responsive charting library
37 lines • 1.1 kB
JavaScript
import { clamp, get, size } from '@antv/util';
import { RANGE_VALUE, RANGE_TYPE, PERCENT } from './constants';
/**
* 将 range 生成为 data 数据
* @param range
* @param key
* @returns {GaugeRangeData}
*/
export function processRangeData(range, percent) {
return (range
// 映射为 stack 的数据
.map(function (r, idx) {
var _a;
return _a = {}, _a[RANGE_VALUE] = r - (range[idx - 1] || 0), _a[RANGE_TYPE] = "" + idx, _a[PERCENT] = percent, _a;
})
// 去掉 0 的数据
.filter(function (d) { return !!d[RANGE_VALUE]; }));
}
/**
* 获取 仪表盘 指针数据
* @param percent
*/
export function getIndicatorData(percent) {
var _a;
return [(_a = {}, _a[PERCENT] = clamp(percent, 0, 1), _a)];
}
/**
* 获取仪表盘 表盘弧形数据
* @param percent
* @param range
*/
export function getRangeData(percent, range) {
var ticks = get(range, ['ticks'], []);
var clampTicks = size(ticks) ? ticks : [0, clamp(percent, 0, 1), 1];
return processRangeData(clampTicks, percent);
}
//# sourceMappingURL=utils.js.map