| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- "use strict";
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.radar = radar;
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
- var _updater = require("../class/updater.class");
- var _index = require("../config/index");
- var _util = require("@jiaminghi/c-render/lib/plugin/util");
- var _color = require("@jiaminghi/color");
- var _util2 = require("../util");
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
- function radar(chart) {
- var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- var series = option.series;
- if (!series) series = [];
- var radars = (0, _util2.initNeedSeries)(series, _index.radarConfig, 'radar');
- radars = calcRadarPosition(radars, chart);
- radars = calcRadarLabelPosition(radars, chart);
- radars = calcRadarLabelAlign(radars, chart);
- (0, _updater.doUpdate)({
- chart: chart,
- series: radars,
- key: 'radar',
- getGraphConfig: getRadarConfig,
- getStartGraphConfig: getStartRadarConfig,
- beforeChange: beforeChangeRadar
- });
- (0, _updater.doUpdate)({
- chart: chart,
- series: radars,
- key: 'radarPoint',
- getGraphConfig: getPointConfig,
- getStartGraphConfig: getStartPointConfig
- });
- (0, _updater.doUpdate)({
- chart: chart,
- series: radars,
- key: 'radarLabel',
- getGraphConfig: getLabelConfig
- });
- }
- function calcRadarPosition(radars, chart) {
- var radarAxis = chart.radarAxis;
- if (!radarAxis) return [];
- var indicator = radarAxis.indicator,
- axisLineAngles = radarAxis.axisLineAngles,
- radius = radarAxis.radius,
- centerPos = radarAxis.centerPos;
- radars.forEach(function (radarItem) {
- var data = radarItem.data;
- radarItem.dataRadius = [];
- radarItem.radarPosition = indicator.map(function (_ref, i) {
- var max = _ref.max,
- min = _ref.min;
- var v = data[i];
- if (typeof max !== 'number') max = v;
- if (typeof min !== 'number') min = 0;
- if (typeof v !== 'number') v = min;
- var dataRadius = (v - min) / (max - min) * radius;
- radarItem.dataRadius[i] = dataRadius;
- return _util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(centerPos).concat([dataRadius, axisLineAngles[i]]));
- });
- });
- return radars;
- }
- function calcRadarLabelPosition(radars, chart) {
- var radarAxis = chart.radarAxis;
- if (!radarAxis) return [];
- var centerPos = radarAxis.centerPos,
- axisLineAngles = radarAxis.axisLineAngles;
- radars.forEach(function (radarItem) {
- var dataRadius = radarItem.dataRadius,
- label = radarItem.label;
- var labelGap = label.labelGap;
- radarItem.labelPosition = dataRadius.map(function (r, i) {
- return _util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(centerPos).concat([r + labelGap, axisLineAngles[i]]));
- });
- });
- return radars;
- }
- function calcRadarLabelAlign(radars, chart) {
- var radarAxis = chart.radarAxis;
- if (!radarAxis) return [];
- var _radarAxis$centerPos = (0, _slicedToArray2["default"])(radarAxis.centerPos, 2),
- x = _radarAxis$centerPos[0],
- y = _radarAxis$centerPos[1];
- radars.forEach(function (radarItem) {
- var labelPosition = radarItem.labelPosition;
- var labelAlign = labelPosition.map(function (_ref2) {
- var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
- lx = _ref3[0],
- ly = _ref3[1];
- var textAlign = lx > x ? 'left' : 'right';
- var textBaseline = ly > y ? 'top' : 'bottom';
- return {
- textAlign: textAlign,
- textBaseline: textBaseline
- };
- });
- radarItem.labelAlign = labelAlign;
- });
- return radars;
- }
- function getRadarConfig(radarItem) {
- var animationCurve = radarItem.animationCurve,
- animationFrame = radarItem.animationFrame,
- rLevel = radarItem.rLevel;
- return [{
- name: 'polyline',
- index: rLevel,
- animationCurve: animationCurve,
- animationFrame: animationFrame,
- shape: getRadarShape(radarItem),
- style: getRadarStyle(radarItem)
- }];
- }
- function getStartRadarConfig(radarItem, updater) {
- var centerPos = updater.chart.radarAxis.centerPos;
- var config = getRadarConfig(radarItem)[0];
- var pointNum = config.shape.points.length;
- var points = new Array(pointNum).fill(0).map(function (foo) {
- return (0, _toConsumableArray2["default"])(centerPos);
- });
- config.shape.points = points;
- return [config];
- }
- function getRadarShape(radarItem) {
- var radarPosition = radarItem.radarPosition;
- return {
- points: radarPosition,
- close: true
- };
- }
- function getRadarStyle(radarItem) {
- var radarStyle = radarItem.radarStyle,
- color = radarItem.color;
- var colorRgbaValue = (0, _color.getRgbaValue)(color);
- colorRgbaValue[3] = 0.5;
- var radarDefaultColor = {
- stroke: color,
- fill: (0, _color.getColorFromRgbValue)(colorRgbaValue)
- };
- return (0, _util2.deepMerge)(radarDefaultColor, radarStyle);
- }
- function beforeChangeRadar(graph, _ref4) {
- var shape = _ref4.shape;
- var graphPoints = graph.shape.points;
- var graphPointsNum = graphPoints.length;
- var pointsNum = shape.points.length;
- if (pointsNum > graphPointsNum) {
- var lastPoint = graphPoints.slice(-1)[0];
- var newAddPoints = new Array(pointsNum - graphPointsNum).fill(0).map(function (foo) {
- return (0, _toConsumableArray2["default"])(lastPoint);
- });
- graphPoints.push.apply(graphPoints, (0, _toConsumableArray2["default"])(newAddPoints));
- } else if (pointsNum < graphPointsNum) {
- graphPoints.splice(pointsNum);
- }
- }
- function getPointConfig(radarItem) {
- var radarPosition = radarItem.radarPosition,
- animationCurve = radarItem.animationCurve,
- animationFrame = radarItem.animationFrame,
- rLevel = radarItem.rLevel;
- return radarPosition.map(function (foo, i) {
- return {
- name: 'circle',
- index: rLevel,
- animationCurve: animationCurve,
- animationFrame: animationFrame,
- visible: radarItem.point.show,
- shape: getPointShape(radarItem, i),
- style: getPointStyle(radarItem, i)
- };
- });
- }
- function getStartPointConfig(radarItem) {
- var configs = getPointConfig(radarItem);
- configs.forEach(function (config) {
- return config.shape.r = 0.01;
- });
- return configs;
- }
- function getPointShape(radarItem, i) {
- var radarPosition = radarItem.radarPosition,
- point = radarItem.point;
- var radius = point.radius;
- var position = radarPosition[i];
- return {
- rx: position[0],
- ry: position[1],
- r: radius
- };
- }
- function getPointStyle(radarItem, i) {
- var point = radarItem.point,
- color = radarItem.color;
- var style = point.style;
- return (0, _util2.deepMerge)({
- stroke: color
- }, style);
- }
- function getLabelConfig(radarItem) {
- var labelPosition = radarItem.labelPosition,
- animationCurve = radarItem.animationCurve,
- animationFrame = radarItem.animationFrame,
- rLevel = radarItem.rLevel;
- return labelPosition.map(function (foo, i) {
- return {
- name: 'text',
- index: rLevel,
- visible: radarItem.label.show,
- animationCurve: animationCurve,
- animationFrame: animationFrame,
- shape: getLabelShape(radarItem, i),
- style: getLabelStyle(radarItem, i)
- };
- });
- }
- function getLabelShape(radarItem, i) {
- var labelPosition = radarItem.labelPosition,
- label = radarItem.label,
- data = radarItem.data;
- var offset = label.offset,
- formatter = label.formatter;
- var position = mergePointOffset(labelPosition[i], offset);
- var labelText = data[i] ? data[i].toString() : '0';
- var formatterType = (0, _typeof2["default"])(formatter);
- if (formatterType === 'string') labelText = formatter.replace('{value}', labelText);
- if (formatterType === 'function') labelText = formatter(labelText);
- return {
- content: labelText,
- position: position
- };
- }
- function mergePointOffset(_ref5, _ref6) {
- var _ref7 = (0, _slicedToArray2["default"])(_ref5, 2),
- x = _ref7[0],
- y = _ref7[1];
- var _ref8 = (0, _slicedToArray2["default"])(_ref6, 2),
- ox = _ref8[0],
- oy = _ref8[1];
- return [x + ox, y + oy];
- }
- function getLabelStyle(radarItem, i) {
- var label = radarItem.label,
- color = radarItem.color,
- labelAlign = radarItem.labelAlign;
- var style = label.style;
- var defaultColorAndAlign = _objectSpread({
- fill: color
- }, labelAlign[i]);
- return (0, _util2.deepMerge)(defaultColorAndAlign, style);
- }
|