utils.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformData = void 0;
  4. var tslib_1 = require("tslib");
  5. var util_1 = require("@antv/util");
  6. var drill_down_1 = require("../../interactions/actions/drill-down");
  7. var utils_1 = require("../../utils");
  8. var partition_1 = require("../../utils/hierarchy/partition");
  9. var treemap_1 = require("../../utils/hierarchy/treemap");
  10. var constant_1 = require("./constant");
  11. /**
  12. * sunburst 处理数据
  13. * @param options
  14. */
  15. function transformData(options) {
  16. var data = options.data, colorField = options.colorField, rawFields = options.rawFields, _a = options.hierarchyConfig, hierarchyConfig = _a === void 0 ? {} : _a;
  17. var activeDepth = hierarchyConfig.activeDepth;
  18. var transform = {
  19. partition: partition_1.partition,
  20. treemap: treemap_1.treemap,
  21. };
  22. // @ts-ignore 兼容旧版本,支持 seriesField 来作为 hierarchyConfig.field
  23. var seriesField = options.seriesField;
  24. // @ts-ignore 兼容旧版本,支持矩阵树图形状的旭日图
  25. var type = options.type || 'partition';
  26. var nodes = transform[type](data, tslib_1.__assign(tslib_1.__assign({ field: seriesField || 'value' }, (0, util_1.omit)(hierarchyConfig, ['activeDepth'])), {
  27. // @ts-ignore
  28. type: "hierarchy.".concat(type), as: ['x', 'y'] }));
  29. var result = [];
  30. nodes.forEach(function (node) {
  31. var _a;
  32. var _b, _c, _d, _e, _f;
  33. if (node.depth === 0) {
  34. return null;
  35. }
  36. if (activeDepth > 0 && node.depth > activeDepth) {
  37. return null;
  38. }
  39. var path = node.data.name;
  40. var ancestorNode = tslib_1.__assign({}, node);
  41. while (ancestorNode.depth > 1) {
  42. path = "".concat((_b = ancestorNode.parent.data) === null || _b === void 0 ? void 0 : _b.name, " / ").concat(path);
  43. ancestorNode = ancestorNode.parent;
  44. }
  45. var nodeInfo = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, (0, utils_1.pick)(node.data, tslib_1.__spreadArray(tslib_1.__spreadArray([], (rawFields || []), true), [hierarchyConfig.field], false))), (_a = {}, _a[constant_1.SUNBURST_PATH_FIELD] = path, _a[constant_1.SUNBURST_ANCESTOR_FIELD] = ancestorNode.data.name, _a)), node);
  46. // note: 兼容旧版本
  47. if (seriesField) {
  48. nodeInfo[seriesField] = node.data[seriesField] || ((_d = (_c = node.parent) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d[seriesField]);
  49. }
  50. if (colorField) {
  51. nodeInfo[colorField] = node.data[colorField] || ((_f = (_e = node.parent) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f[colorField]);
  52. }
  53. nodeInfo.ext = hierarchyConfig;
  54. nodeInfo[drill_down_1.HIERARCHY_DATA_TRANSFORM_PARAMS] = { hierarchyConfig: hierarchyConfig, colorField: colorField, rawFields: rawFields };
  55. result.push(nodeInfo);
  56. });
  57. return result;
  58. }
  59. exports.transformData = transformData;
  60. //# sourceMappingURL=utils.js.map