4de9b0f1b8757d0564860d9aaf19f958b1c568899aa0034c56df23c5bf6d896aa960fc0093a42149138136c718c0339b6d7f0d4456eeb47b76c2812aa81037 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.gauge = gauge;
  7. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  8. var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
  9. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  10. var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
  11. var _updater = require("../class/updater.class");
  12. var _gauge = require("../config/gauge");
  13. var _util = require("@jiaminghi/c-render/lib/plugin/util");
  14. var _util2 = require("../util");
  15. var _color = require("@jiaminghi/color");
  16. 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; }
  17. 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; }
  18. function gauge(chart) {
  19. var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  20. var series = option.series;
  21. if (!series) series = [];
  22. var gauges = (0, _util2.initNeedSeries)(series, _gauge.gaugeConfig, 'gauge');
  23. gauges = calcGaugesCenter(gauges, chart);
  24. gauges = calcGaugesRadius(gauges, chart);
  25. gauges = calcGaugesDataRadiusAndLineWidth(gauges, chart);
  26. gauges = calcGaugesDataAngles(gauges, chart);
  27. gauges = calcGaugesDataGradient(gauges, chart);
  28. gauges = calcGaugesAxisTickPosition(gauges, chart);
  29. gauges = calcGaugesLabelPositionAndAlign(gauges, chart);
  30. gauges = calcGaugesLabelData(gauges, chart);
  31. gauges = calcGaugesDetailsPosition(gauges, chart);
  32. gauges = calcGaugesDetailsContent(gauges, chart);
  33. (0, _updater.doUpdate)({
  34. chart: chart,
  35. series: gauges,
  36. key: 'gaugeAxisTick',
  37. getGraphConfig: getAxisTickConfig
  38. });
  39. (0, _updater.doUpdate)({
  40. chart: chart,
  41. series: gauges,
  42. key: 'gaugeAxisLabel',
  43. getGraphConfig: getAxisLabelConfig
  44. });
  45. (0, _updater.doUpdate)({
  46. chart: chart,
  47. series: gauges,
  48. key: 'gaugeBackgroundArc',
  49. getGraphConfig: getBackgroundArcConfig,
  50. getStartGraphConfig: getStartBackgroundArcConfig
  51. });
  52. (0, _updater.doUpdate)({
  53. chart: chart,
  54. series: gauges,
  55. key: 'gaugeArc',
  56. getGraphConfig: getArcConfig,
  57. getStartGraphConfig: getStartArcConfig,
  58. beforeChange: beforeChangeArc
  59. });
  60. (0, _updater.doUpdate)({
  61. chart: chart,
  62. series: gauges,
  63. key: 'gaugePointer',
  64. getGraphConfig: getPointerConfig,
  65. getStartGraphConfig: getStartPointerConfig
  66. });
  67. (0, _updater.doUpdate)({
  68. chart: chart,
  69. series: gauges,
  70. key: 'gaugeDetails',
  71. getGraphConfig: getDetailsConfig
  72. });
  73. }
  74. function calcGaugesCenter(gauges, chart) {
  75. var area = chart.render.area;
  76. gauges.forEach(function (gaugeItem) {
  77. var center = gaugeItem.center;
  78. center = center.map(function (pos, i) {
  79. if (typeof pos === 'number') return pos;
  80. return parseInt(pos) / 100 * area[i];
  81. });
  82. gaugeItem.center = center;
  83. });
  84. return gauges;
  85. }
  86. function calcGaugesRadius(gauges, chart) {
  87. var area = chart.render.area;
  88. var maxRadius = Math.min.apply(Math, (0, _toConsumableArray2["default"])(area)) / 2;
  89. gauges.forEach(function (gaugeItem) {
  90. var radius = gaugeItem.radius;
  91. if (typeof radius !== 'number') {
  92. radius = parseInt(radius) / 100 * maxRadius;
  93. }
  94. gaugeItem.radius = radius;
  95. });
  96. return gauges;
  97. }
  98. function calcGaugesDataRadiusAndLineWidth(gauges, chart) {
  99. var area = chart.render.area;
  100. var maxRadius = Math.min.apply(Math, (0, _toConsumableArray2["default"])(area)) / 2;
  101. gauges.forEach(function (gaugeItem) {
  102. var radius = gaugeItem.radius,
  103. data = gaugeItem.data,
  104. arcLineWidth = gaugeItem.arcLineWidth;
  105. data.forEach(function (item) {
  106. var arcRadius = item.radius,
  107. lineWidth = item.lineWidth;
  108. if (!arcRadius) arcRadius = radius;
  109. if (typeof arcRadius !== 'number') arcRadius = parseInt(arcRadius) / 100 * maxRadius;
  110. item.radius = arcRadius;
  111. if (!lineWidth) lineWidth = arcLineWidth;
  112. item.lineWidth = lineWidth;
  113. });
  114. });
  115. return gauges;
  116. }
  117. function calcGaugesDataAngles(gauges, chart) {
  118. gauges.forEach(function (gaugeItem) {
  119. var startAngle = gaugeItem.startAngle,
  120. endAngle = gaugeItem.endAngle,
  121. data = gaugeItem.data,
  122. min = gaugeItem.min,
  123. max = gaugeItem.max;
  124. var angleMinus = endAngle - startAngle;
  125. var valueMinus = max - min;
  126. data.forEach(function (item) {
  127. var value = item.value;
  128. var itemAngle = Math.abs((value - min) / valueMinus * angleMinus);
  129. item.startAngle = startAngle;
  130. item.endAngle = startAngle + itemAngle;
  131. });
  132. });
  133. return gauges;
  134. }
  135. function calcGaugesDataGradient(gauges, chart) {
  136. gauges.forEach(function (gaugeItem) {
  137. var data = gaugeItem.data;
  138. data.forEach(function (item) {
  139. var color = item.color,
  140. gradient = item.gradient;
  141. if (!gradient || !gradient.length) gradient = color;
  142. if (!(gradient instanceof Array)) gradient = [gradient];
  143. item.gradient = gradient;
  144. });
  145. });
  146. return gauges;
  147. }
  148. function calcGaugesAxisTickPosition(gauges, chart) {
  149. gauges.forEach(function (gaugeItem) {
  150. var startAngle = gaugeItem.startAngle,
  151. endAngle = gaugeItem.endAngle,
  152. splitNum = gaugeItem.splitNum,
  153. center = gaugeItem.center,
  154. radius = gaugeItem.radius,
  155. arcLineWidth = gaugeItem.arcLineWidth,
  156. axisTick = gaugeItem.axisTick;
  157. var tickLength = axisTick.tickLength,
  158. lineWidth = axisTick.style.lineWidth;
  159. var angles = endAngle - startAngle;
  160. var outerRadius = radius - arcLineWidth / 2;
  161. var innerRadius = outerRadius - tickLength;
  162. var angleGap = angles / (splitNum - 1);
  163. var arcLength = 2 * Math.PI * radius * angles / (Math.PI * 2);
  164. var offset = Math.ceil(lineWidth / 2) / arcLength * angles;
  165. gaugeItem.tickAngles = [];
  166. gaugeItem.tickInnerRadius = [];
  167. gaugeItem.tickPosition = new Array(splitNum).fill(0).map(function (foo, i) {
  168. var angle = startAngle + angleGap * i;
  169. if (i === 0) angle += offset;
  170. if (i === splitNum - 1) angle -= offset;
  171. gaugeItem.tickAngles[i] = angle;
  172. gaugeItem.tickInnerRadius[i] = innerRadius;
  173. return [_util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([outerRadius, angle])), _util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([innerRadius, angle]))];
  174. });
  175. });
  176. return gauges;
  177. }
  178. function calcGaugesLabelPositionAndAlign(gauges, chart) {
  179. gauges.forEach(function (gaugeItem) {
  180. var center = gaugeItem.center,
  181. tickInnerRadius = gaugeItem.tickInnerRadius,
  182. tickAngles = gaugeItem.tickAngles,
  183. labelGap = gaugeItem.axisLabel.labelGap;
  184. var position = tickAngles.map(function (angle, i) {
  185. return _util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([tickInnerRadius[i] - labelGap, tickAngles[i]]));
  186. });
  187. var align = position.map(function (_ref) {
  188. var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
  189. x = _ref2[0],
  190. y = _ref2[1];
  191. return {
  192. textAlign: x > center[0] ? 'right' : 'left',
  193. textBaseline: y > center[1] ? 'bottom' : 'top'
  194. };
  195. });
  196. gaugeItem.labelPosition = position;
  197. gaugeItem.labelAlign = align;
  198. });
  199. return gauges;
  200. }
  201. function calcGaugesLabelData(gauges, chart) {
  202. gauges.forEach(function (gaugeItem) {
  203. var axisLabel = gaugeItem.axisLabel,
  204. min = gaugeItem.min,
  205. max = gaugeItem.max,
  206. splitNum = gaugeItem.splitNum;
  207. var data = axisLabel.data,
  208. formatter = axisLabel.formatter;
  209. var valueGap = (max - min) / (splitNum - 1);
  210. var value = new Array(splitNum).fill(0).map(function (foo, i) {
  211. return parseInt(min + valueGap * i);
  212. });
  213. var formatterType = (0, _typeof2["default"])(formatter);
  214. data = (0, _util2.deepMerge)(value, data).map(function (v, i) {
  215. var label = v;
  216. if (formatterType === 'string') {
  217. label = formatter.replace('{value}', v);
  218. }
  219. if (formatterType === 'function') {
  220. label = formatter({
  221. value: v,
  222. index: i
  223. });
  224. }
  225. return label;
  226. });
  227. axisLabel.data = data;
  228. });
  229. return gauges;
  230. }
  231. function calcGaugesDetailsPosition(gauges, chart) {
  232. gauges.forEach(function (gaugeItem) {
  233. var data = gaugeItem.data,
  234. details = gaugeItem.details,
  235. center = gaugeItem.center;
  236. var position = details.position,
  237. offset = details.offset;
  238. var detailsPosition = data.map(function (_ref3) {
  239. var startAngle = _ref3.startAngle,
  240. endAngle = _ref3.endAngle,
  241. radius = _ref3.radius;
  242. var point = null;
  243. if (position === 'center') {
  244. point = center;
  245. } else if (position === 'start') {
  246. point = _util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([radius, startAngle]));
  247. } else if (position === 'end') {
  248. point = _util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([radius, endAngle]));
  249. }
  250. return getOffsetedPoint(point, offset);
  251. });
  252. gaugeItem.detailsPosition = detailsPosition;
  253. });
  254. return gauges;
  255. }
  256. function calcGaugesDetailsContent(gauges, chart) {
  257. gauges.forEach(function (gaugeItem) {
  258. var data = gaugeItem.data,
  259. details = gaugeItem.details;
  260. var formatter = details.formatter;
  261. var formatterType = (0, _typeof2["default"])(formatter);
  262. var contents = data.map(function (dataItem) {
  263. var content = dataItem.value;
  264. if (formatterType === 'string') {
  265. content = formatter.replace('{value}', '{nt}');
  266. content = content.replace('{name}', dataItem.name);
  267. }
  268. if (formatterType === 'function') content = formatter(dataItem);
  269. return content.toString();
  270. });
  271. gaugeItem.detailsContent = contents;
  272. });
  273. return gauges;
  274. }
  275. function getOffsetedPoint(_ref4, _ref5) {
  276. var _ref6 = (0, _slicedToArray2["default"])(_ref4, 2),
  277. x = _ref6[0],
  278. y = _ref6[1];
  279. var _ref7 = (0, _slicedToArray2["default"])(_ref5, 2),
  280. ox = _ref7[0],
  281. oy = _ref7[1];
  282. return [x + ox, y + oy];
  283. }
  284. function getAxisTickConfig(gaugeItem) {
  285. var tickPosition = gaugeItem.tickPosition,
  286. animationCurve = gaugeItem.animationCurve,
  287. animationFrame = gaugeItem.animationFrame,
  288. rLevel = gaugeItem.rLevel;
  289. return tickPosition.map(function (foo, i) {
  290. return {
  291. name: 'polyline',
  292. index: rLevel,
  293. visible: gaugeItem.axisTick.show,
  294. animationCurve: animationCurve,
  295. animationFrame: animationFrame,
  296. shape: getAxisTickShape(gaugeItem, i),
  297. style: getAxisTickStyle(gaugeItem, i)
  298. };
  299. });
  300. }
  301. function getAxisTickShape(gaugeItem, i) {
  302. var tickPosition = gaugeItem.tickPosition;
  303. return {
  304. points: tickPosition[i]
  305. };
  306. }
  307. function getAxisTickStyle(gaugeItem, i) {
  308. var style = gaugeItem.axisTick.style;
  309. return style;
  310. }
  311. function getAxisLabelConfig(gaugeItem) {
  312. var labelPosition = gaugeItem.labelPosition,
  313. animationCurve = gaugeItem.animationCurve,
  314. animationFrame = gaugeItem.animationFrame,
  315. rLevel = gaugeItem.rLevel;
  316. return labelPosition.map(function (foo, i) {
  317. return {
  318. name: 'text',
  319. index: rLevel,
  320. visible: gaugeItem.axisLabel.show,
  321. animationCurve: animationCurve,
  322. animationFrame: animationFrame,
  323. shape: getAxisLabelShape(gaugeItem, i),
  324. style: getAxisLabelStyle(gaugeItem, i)
  325. };
  326. });
  327. }
  328. function getAxisLabelShape(gaugeItem, i) {
  329. var labelPosition = gaugeItem.labelPosition,
  330. data = gaugeItem.axisLabel.data;
  331. return {
  332. content: data[i].toString(),
  333. position: labelPosition[i]
  334. };
  335. }
  336. function getAxisLabelStyle(gaugeItem, i) {
  337. var labelAlign = gaugeItem.labelAlign,
  338. axisLabel = gaugeItem.axisLabel;
  339. var style = axisLabel.style;
  340. return (0, _util2.deepMerge)(_objectSpread({}, labelAlign[i]), style);
  341. }
  342. function getBackgroundArcConfig(gaugeItem) {
  343. var animationCurve = gaugeItem.animationCurve,
  344. animationFrame = gaugeItem.animationFrame,
  345. rLevel = gaugeItem.rLevel;
  346. return [{
  347. name: 'arc',
  348. index: rLevel,
  349. visible: gaugeItem.backgroundArc.show,
  350. animationCurve: animationCurve,
  351. animationFrame: animationFrame,
  352. shape: getGaugeBackgroundArcShape(gaugeItem),
  353. style: getGaugeBackgroundArcStyle(gaugeItem)
  354. }];
  355. }
  356. function getGaugeBackgroundArcShape(gaugeItem) {
  357. var startAngle = gaugeItem.startAngle,
  358. endAngle = gaugeItem.endAngle,
  359. center = gaugeItem.center,
  360. radius = gaugeItem.radius;
  361. return {
  362. rx: center[0],
  363. ry: center[1],
  364. r: radius,
  365. startAngle: startAngle,
  366. endAngle: endAngle
  367. };
  368. }
  369. function getGaugeBackgroundArcStyle(gaugeItem) {
  370. var backgroundArc = gaugeItem.backgroundArc,
  371. arcLineWidth = gaugeItem.arcLineWidth;
  372. var style = backgroundArc.style;
  373. return (0, _util2.deepMerge)({
  374. lineWidth: arcLineWidth
  375. }, style);
  376. }
  377. function getStartBackgroundArcConfig(gaugeItem) {
  378. var config = getBackgroundArcConfig(gaugeItem)[0];
  379. var shape = _objectSpread({}, config.shape);
  380. shape.endAngle = config.shape.startAngle;
  381. config.shape = shape;
  382. return [config];
  383. }
  384. function getArcConfig(gaugeItem) {
  385. var data = gaugeItem.data,
  386. animationCurve = gaugeItem.animationCurve,
  387. animationFrame = gaugeItem.animationFrame,
  388. rLevel = gaugeItem.rLevel;
  389. return data.map(function (foo, i) {
  390. return {
  391. name: 'agArc',
  392. index: rLevel,
  393. animationCurve: animationCurve,
  394. animationFrame: animationFrame,
  395. shape: getGaugeArcShape(gaugeItem, i),
  396. style: getGaugeArcStyle(gaugeItem, i)
  397. };
  398. });
  399. }
  400. function getGaugeArcShape(gaugeItem, i) {
  401. var data = gaugeItem.data,
  402. center = gaugeItem.center,
  403. gradientEndAngle = gaugeItem.endAngle;
  404. var _data$i = data[i],
  405. radius = _data$i.radius,
  406. startAngle = _data$i.startAngle,
  407. endAngle = _data$i.endAngle,
  408. localGradient = _data$i.localGradient;
  409. if (localGradient) gradientEndAngle = endAngle;
  410. return {
  411. rx: center[0],
  412. ry: center[1],
  413. r: radius,
  414. startAngle: startAngle,
  415. endAngle: endAngle,
  416. gradientEndAngle: gradientEndAngle
  417. };
  418. }
  419. function getGaugeArcStyle(gaugeItem, i) {
  420. var data = gaugeItem.data,
  421. dataItemStyle = gaugeItem.dataItemStyle;
  422. var _data$i2 = data[i],
  423. lineWidth = _data$i2.lineWidth,
  424. gradient = _data$i2.gradient;
  425. gradient = gradient.map(function (c) {
  426. return (0, _color.getRgbaValue)(c);
  427. });
  428. return (0, _util2.deepMerge)({
  429. lineWidth: lineWidth,
  430. gradient: gradient
  431. }, dataItemStyle);
  432. }
  433. function getStartArcConfig(gaugeItem) {
  434. var configs = getArcConfig(gaugeItem);
  435. configs.map(function (config) {
  436. var shape = _objectSpread({}, config.shape);
  437. shape.endAngle = config.shape.startAngle;
  438. config.shape = shape;
  439. });
  440. return configs;
  441. }
  442. function beforeChangeArc(graph, config) {
  443. var graphGradient = graph.style.gradient;
  444. var cacheNum = graphGradient.length;
  445. var needNum = config.style.gradient.length;
  446. if (cacheNum > needNum) {
  447. graphGradient.splice(needNum);
  448. } else {
  449. var last = graphGradient.slice(-1)[0];
  450. graphGradient.push.apply(graphGradient, (0, _toConsumableArray2["default"])(new Array(needNum - cacheNum).fill(0).map(function (foo) {
  451. return (0, _toConsumableArray2["default"])(last);
  452. })));
  453. }
  454. }
  455. function getPointerConfig(gaugeItem) {
  456. var animationCurve = gaugeItem.animationCurve,
  457. animationFrame = gaugeItem.animationFrame,
  458. center = gaugeItem.center,
  459. rLevel = gaugeItem.rLevel;
  460. return [{
  461. name: 'polyline',
  462. index: rLevel,
  463. visible: gaugeItem.pointer.show,
  464. animationCurve: animationCurve,
  465. animationFrame: animationFrame,
  466. shape: getPointerShape(gaugeItem),
  467. style: getPointerStyle(gaugeItem),
  468. setGraphCenter: function setGraphCenter(foo, graph) {
  469. graph.style.graphCenter = center;
  470. }
  471. }];
  472. }
  473. function getPointerShape(gaugeItem) {
  474. var center = gaugeItem.center;
  475. return {
  476. points: getPointerPoints(center),
  477. close: true
  478. };
  479. }
  480. function getPointerStyle(gaugeItem) {
  481. var startAngle = gaugeItem.startAngle,
  482. endAngle = gaugeItem.endAngle,
  483. min = gaugeItem.min,
  484. max = gaugeItem.max,
  485. data = gaugeItem.data,
  486. pointer = gaugeItem.pointer,
  487. center = gaugeItem.center;
  488. var valueIndex = pointer.valueIndex,
  489. style = pointer.style;
  490. var value = data[valueIndex] ? data[valueIndex].value : 0;
  491. var angle = (value - min) / (max - min) * (endAngle - startAngle) + startAngle + Math.PI / 2;
  492. return (0, _util2.deepMerge)({
  493. rotate: (0, _util2.radianToAngle)(angle),
  494. scale: [1, 1],
  495. graphCenter: center
  496. }, style);
  497. }
  498. function getPointerPoints(_ref8) {
  499. var _ref9 = (0, _slicedToArray2["default"])(_ref8, 2),
  500. x = _ref9[0],
  501. y = _ref9[1];
  502. var point1 = [x, y - 40];
  503. var point2 = [x + 5, y];
  504. var point3 = [x, y + 10];
  505. var point4 = [x - 5, y];
  506. return [point1, point2, point3, point4];
  507. }
  508. function getStartPointerConfig(gaugeItem) {
  509. var startAngle = gaugeItem.startAngle;
  510. var config = getPointerConfig(gaugeItem)[0];
  511. config.style.rotate = (0, _util2.radianToAngle)(startAngle + Math.PI / 2);
  512. return [config];
  513. }
  514. function getDetailsConfig(gaugeItem) {
  515. var detailsPosition = gaugeItem.detailsPosition,
  516. animationCurve = gaugeItem.animationCurve,
  517. animationFrame = gaugeItem.animationFrame,
  518. rLevel = gaugeItem.rLevel;
  519. var visible = gaugeItem.details.show;
  520. return detailsPosition.map(function (foo, i) {
  521. return {
  522. name: 'numberText',
  523. index: rLevel,
  524. visible: visible,
  525. animationCurve: animationCurve,
  526. animationFrame: animationFrame,
  527. shape: getDetailsShape(gaugeItem, i),
  528. style: getDetailsStyle(gaugeItem, i)
  529. };
  530. });
  531. }
  532. function getDetailsShape(gaugeItem, i) {
  533. var detailsPosition = gaugeItem.detailsPosition,
  534. detailsContent = gaugeItem.detailsContent,
  535. data = gaugeItem.data,
  536. details = gaugeItem.details;
  537. var position = detailsPosition[i];
  538. var content = detailsContent[i];
  539. var dataValue = data[i].value;
  540. var toFixed = details.valueToFixed;
  541. return {
  542. number: [dataValue],
  543. content: content,
  544. position: position,
  545. toFixed: toFixed
  546. };
  547. }
  548. function getDetailsStyle(gaugeItem, i) {
  549. var details = gaugeItem.details,
  550. data = gaugeItem.data;
  551. var style = details.style;
  552. var color = data[i].color;
  553. return (0, _util2.deepMerge)({
  554. fill: color
  555. }, style);
  556. }