添加项目文件。
This commit is contained in:
73
Epost.TestToolsWeb/Content/code/es-modules/mixins/nodes.js
Normal file
73
Epost.TestToolsWeb/Content/code/es-modules/mixins/nodes.js
Normal file
@ -0,0 +1,73 @@
|
||||
import H from '../parts/Globals.js';
|
||||
|
||||
H.NodesMixin = {
|
||||
// Create a single node that holds information on incoming and outgoing
|
||||
// links.
|
||||
createNode: function (id) {
|
||||
|
||||
function findById(nodes, id) {
|
||||
return H.find(nodes, function (node) {
|
||||
return node.id === id;
|
||||
});
|
||||
}
|
||||
|
||||
var node = findById(this.nodes, id),
|
||||
PointClass = this.pointClass,
|
||||
options;
|
||||
|
||||
if (!node) {
|
||||
options = this.options.nodes && findById(this.options.nodes, id);
|
||||
node = (new PointClass()).init(
|
||||
this,
|
||||
H.extend({
|
||||
className: 'highcharts-node',
|
||||
isNode: true,
|
||||
id: id,
|
||||
y: 1 // Pass isNull test
|
||||
}, options)
|
||||
);
|
||||
node.linksTo = [];
|
||||
node.linksFrom = [];
|
||||
node.formatPrefix = 'node';
|
||||
node.name = node.name || node.options.id; // for use in formats
|
||||
|
||||
// Return the largest sum of either the incoming or outgoing links.
|
||||
node.getSum = function () {
|
||||
var sumTo = 0,
|
||||
sumFrom = 0;
|
||||
node.linksTo.forEach(function (link) {
|
||||
sumTo += link.weight;
|
||||
});
|
||||
node.linksFrom.forEach(function (link) {
|
||||
sumFrom += link.weight;
|
||||
});
|
||||
return Math.max(sumTo, sumFrom);
|
||||
};
|
||||
// Get the offset in weight values of a point/link.
|
||||
node.offset = function (point, coll) {
|
||||
var offset = 0;
|
||||
for (var i = 0; i < node[coll].length; i++) {
|
||||
if (node[coll][i] === point) {
|
||||
return offset;
|
||||
}
|
||||
offset += node[coll][i].weight;
|
||||
}
|
||||
};
|
||||
|
||||
// Return true if the node has a shape, otherwise all links are
|
||||
// outgoing.
|
||||
node.hasShape = function () {
|
||||
var outgoing = 0;
|
||||
node.linksTo.forEach(function (link) {
|
||||
if (link.outgoing) {
|
||||
outgoing++;
|
||||
}
|
||||
});
|
||||
return !node.linksTo.length || outgoing !== node.linksTo.length;
|
||||
};
|
||||
|
||||
this.nodes.push(node);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user