UNPKG

@antv/g2plot

Version:

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

70 lines 2.23 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 nodesResamplingByState(shape, option, index, cfg) { var nodes = cfg.nodes.nodes; var current = nodes[index]; if (current.line) { current.line.remove(); } var data = cfg.plot.initialProps.data; var field = cfg.plot[cfg.plot.type].label.fields[0]; var stateNodes = getStateNodes(data, field, nodes); var isState = false; _.each(stateNodes, function (node) { // @ts-ignore if (node.shape.get('origin') === current.shape.get('origin')) { isState = true; } }); if (isState) { if (current.origin_position) { var _a = current.origin_position, x = _a.x, y = _a.y; shape.attr('x', x); shape.attr('y', y); } } else { text_hide_1.default(shape); } } exports.default = nodesResamplingByState; function getStateNodes(data, field, nodes) { var extract_data = []; _.each(data, function (d) { extract_data.push(d[field]); }); extract_data.sort(function (a, b) { return a - b; }); var min = extract_data[0]; var min_node = getNodeByNumber(nodes, field, min); var max = extract_data[extract_data.length - 1]; var max_node = getNodeByNumber(nodes, field, max); var median = getMedian(extract_data); var median_node = getNodeByNumber(nodes, field, median); return { min: min_node, max: max_node, median: median_node }; } function getMedian(array) { var list = _.clone(array); list.sort(function (a, b) { return a - b; }); var half = Math.floor(list.length / 2); if (list.length % 2) { return list[half]; } return list[half]; } function getNodeByNumber(nodes, field, num) { for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { var node = nodes_1[_i]; var d = node.shape.get('origin'); if (d[field] === num) { return node; } } } //# sourceMappingURL=nodes-resampling-by-state.js.map