UNPKG

@antv/f2

Version:

Charts for mobile visualization.

37 lines (36 loc) 1.31 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _dice = _interopRequireDefault(require("./dice.js")); var _slice = _interopRequireDefault(require("./slice.js")); var _squarify = require("./squarify.js"); var _default = exports.default = function custom(ratio) { function resquarify(parent, x0, y0, x1, y1) { if ((rows = parent._squarify) && rows.ratio === ratio) { var rows, row, nodes, i, j = -1, n, m = rows.length, value = parent.value; while (++j < m) { row = rows[j], nodes = row.children; for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value; if (row.dice) (0, _dice.default)(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);else (0, _slice.default)(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1); value -= row.value; } } else { parent._squarify = rows = (0, _squarify.squarifyRatio)(ratio, parent, x0, y0, x1, y1); rows.ratio = ratio; } } resquarify.ratio = function (x) { return custom((x = +x) > 1 ? x : 1); }; return resquarify; }(_squarify.phi);