utils.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.getStackedData = exports.getRange = void 0;
  4. var tslib_1 = require("tslib");
  5. var util_1 = require("@antv/util");
  6. /**
  7. * 获得数据的最值
  8. */
  9. function getRange(data) {
  10. if (data.length === 0)
  11. return [0, 0];
  12. return [(0, util_1.min)((0, util_1.minBy)(data, function (arr) { return (0, util_1.min)(arr) || 0; })), (0, util_1.max)((0, util_1.maxBy)(data, function (arr) { return (0, util_1.max)(arr) || 0; }))];
  13. }
  14. exports.getRange = getRange;
  15. /**
  16. * 数据转换为堆叠数据
  17. */
  18. function getStackedData(_) {
  19. var data = (0, util_1.clone)(_);
  20. // 生成堆叠数据
  21. var datumLen = data[0].length;
  22. // 上一个堆叠的数据值,分别记录正负
  23. var _a = tslib_1.__read([Array(datumLen).fill(0), Array(datumLen).fill(0)], 2), positivePrev = _a[0], negativePrev = _a[1];
  24. for (var i = 0; i < data.length; i += 1) {
  25. var datum = data[i];
  26. for (var j = 0; j < datumLen; j += 1) {
  27. if (datum[j] >= 0) {
  28. datum[j] += positivePrev[j];
  29. positivePrev[j] = datum[j];
  30. }
  31. else {
  32. datum[j] += negativePrev[j];
  33. negativePrev[j] = datum[j];
  34. }
  35. }
  36. }
  37. return data;
  38. }
  39. exports.getStackedData = getStackedData;
  40. //# sourceMappingURL=utils.js.map