UNPKG

@antv/g2plot

Version:

G2 Plot, a market of plots built with the Grammar of Graphics'

50 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var _ = tslib_1.__importStar(require("@antv/util")); var text_hide_1 = tslib_1.__importDefault(require("./text-hide")); function clearOverlapping(shape, option, index, cfg) { var nodes = cfg.nodes.nodes; var current = nodes[index]; var overlapped = []; /** 找到所有与当前点overlap的node */ if (!current.shape.get('blank')) { for (var i = 0; i < nodes.length; i++) { var node = nodes[i]; var _shape = node.shape; if (i !== index && !_shape.get('blank')) { var isOverlap = isNodeOverlap(current, node); if (isOverlap) { overlapped.push(node); } } } } /** overlap处理逻辑 */ if (overlapped.length > 0) { overlapped.push(current); overlapped.sort(function (a, b) { return b.top - a.top; }); /** 隐藏除最高点以外的node */ _.each(overlapped, function (node, idx) { if (idx > 0) { var _shape = node.shape; text_hide_1.default(_shape); _shape.set('blank', true); } }); } } exports.default = clearOverlapping; function isNodeOverlap(nodeA, nodeB) { if (nodeA.bottom < nodeB.top || nodeB.bottom < nodeA.top) { return false; } if (nodeA.right < nodeB.left || nodeB.right < nodeA.left) { return false; } return true; } exports.isNodeOverlap = isNodeOverlap; //# sourceMappingURL=clear-overlapping.js.map