utils.js 2.8 KB

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