UNPKG

@antv/f2

Version:

Charts for mobile visualization.

87 lines (86 loc) 2.89 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Node = Node; exports.computeHeight = computeHeight; exports.default = hierarchy; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _count = _interopRequireDefault(require("./count.js")); var _each = _interopRequireDefault(require("./each.js")); var _eachBefore = _interopRequireDefault(require("./eachBefore.js")); var _eachAfter = _interopRequireDefault(require("./eachAfter.js")); var _find = _interopRequireDefault(require("./find.js")); var _sum = _interopRequireDefault(require("./sum.js")); var _sort = _interopRequireDefault(require("./sort.js")); var _path = _interopRequireDefault(require("./path.js")); var _ancestors = _interopRequireDefault(require("./ancestors.js")); var _descendants = _interopRequireDefault(require("./descendants.js")); var _leaves = _interopRequireDefault(require("./leaves.js")); var _links = _interopRequireDefault(require("./links.js")); var _iterator = _interopRequireDefault(require("./iterator.js")); function hierarchy(data, children) { if (data instanceof Map) { data = [undefined, data]; if (children === undefined) children = mapChildren; } else if (children === undefined) { children = objectChildren; } var root = new Node(data), node, nodes = [root], child, childs, i, n; while (node = nodes.pop()) { if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) { node.children = childs; for (i = n - 1; i >= 0; --i) { nodes.push(child = childs[i] = new Node(childs[i])); child.parent = node; child.depth = node.depth + 1; } } } return root.eachBefore(computeHeight); } function node_copy() { return hierarchy(this).eachBefore(copyData); } function objectChildren(d) { return d.children; } function mapChildren(d) { return Array.isArray(d) ? d[1] : null; } function copyData(node) { if (node.data.value !== undefined) node.value = node.data.value; node.data = node.data.data; } function computeHeight(node) { var height = 0; do node.height = height; while ((node = node.parent) && node.height < ++height); } function Node(data) { this.data = data; this.depth = this.height = 0; this.parent = null; } Node.prototype = hierarchy.prototype = (0, _defineProperty2.default)({ constructor: Node, count: _count.default, each: _each.default, eachAfter: _eachAfter.default, eachBefore: _eachBefore.default, find: _find.default, sum: _sum.default, sort: _sort.default, path: _path.default, ancestors: _ancestors.default, descendants: _descendants.default, leaves: _leaves.default, links: _links.default, copy: node_copy }, Symbol.iterator, _iterator.default);