utils.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformData = exports.processData = void 0;
  4. var tslib_1 = require("tslib");
  5. var util_1 = require("@antv/util");
  6. var utils_1 = require("../../utils");
  7. var constant_1 = require("./constant");
  8. /**
  9. * @desc 数据处理函数,统一将数据处理成[start, end]
  10. * @param data
  11. * @param xField
  12. * @param yField
  13. * @param totalLabel
  14. */
  15. function processData(data, xField, yField, newYField, total) {
  16. var _a;
  17. var newData = [];
  18. (0, util_1.reduce)(data, function (r, d) {
  19. var _a;
  20. // 校验数据合法性
  21. (0, utils_1.log)(utils_1.LEVEL.WARN, (0, util_1.isNumber)(d[yField]), "".concat(d[yField], " is not a valid number"));
  22. var value = (0, util_1.isUndefined)(d[yField]) ? null : d[yField];
  23. newData.push(tslib_1.__assign(tslib_1.__assign({}, d), (_a = {}, _a[newYField] = [r, r + value], _a)));
  24. return r + value;
  25. }, 0);
  26. // 如果需要展示总和
  27. if (newData.length && total) {
  28. var sum = (0, util_1.get)(newData, [[data.length - 1], newYField, [1]]);
  29. newData.push((_a = {},
  30. _a[xField] = total.label,
  31. _a[yField] = sum,
  32. _a[newYField] = [0, sum],
  33. _a));
  34. }
  35. return newData;
  36. }
  37. exports.processData = processData;
  38. /**
  39. * 处理为 瀑布图 数据
  40. */
  41. function transformData(data, xField, yField, total) {
  42. var processed = processData(data, xField, yField, constant_1.Y_FIELD, total);
  43. return processed.map(function (d, dIdx) {
  44. var _a;
  45. if (!(0, util_1.isObject)(d)) {
  46. return d;
  47. }
  48. return tslib_1.__assign(tslib_1.__assign({}, d), (_a = {}, _a[constant_1.ABSOLUTE_FIELD] = d[constant_1.Y_FIELD][1], _a[constant_1.DIFF_FIELD] = d[constant_1.Y_FIELD][1] - d[constant_1.Y_FIELD][0], _a[constant_1.IS_TOTAL] = dIdx === data.length, _a));
  49. });
  50. }
  51. exports.transformData = transformData;
  52. //# sourceMappingURL=utils.js.map