Use code splitting import() for vis-network
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Peter Stuifzand 2021-08-18 21:40:56 +02:00
parent 5bed4d4652
commit 0b7c2323ad

View File

@ -1,59 +1,67 @@
import {DataSet} from "vis-data/peer";
import {Network} from "vis-network/peer";
// import {DataSet} from "vis-data/peer";
// import {Network} from "vis-network/peer";
import $ from 'jquery';
function wikiGraph(selector, options) {
$(selector).each(function (i, el) {
let $el = $(el)
var nodeName = $el.data('name')
fetch('/api/graph?name=' + nodeName)
.then(res => res.json())
.then(graph => {
var nodes = new DataSet(graph.nodes)
var edges = new DataSet(graph.edges)
Promise.all([
import("vis-data/peer"),
import("vis-network/peer"),
]).then(imports => {
const DataSet = imports[0].DataSet
const Network = imports[1].Network
var data = {
nodes: nodes,
edges: edges
};
$(selector).each(function (i, el) {
let $el = $(el)
var nodeName = $el.data('name')
fetch('/api/graph?name=' + nodeName)
.then(res => res.json())
.then(graph => {
var nodes = new DataSet(graph.nodes)
var edges = new DataSet(graph.edges)
var options = {
edges: {
arrows: 'to',
color: {
highlight: 'green'
},
chosen: {
edge: function (values, id, selected, hovering) {
if (this.from === 1) {
values.color = 'blue';
var data = {
nodes: nodes,
edges: edges
};
var options = {
edges: {
arrows: 'to',
color: {
highlight: 'green'
},
chosen: {
edge: function (values, id, selected, hovering) {
if (this.from === 1) {
values.color = 'blue';
}
}
}
}
},
},
nodes: {
shape: 'dot',
size: 15,
font: {
background: 'white'
nodes: {
shape: 'dot',
size: 15,
font: {
background: 'white'
}
},
layout: {
improvedLayout: true
}
},
layout: {
improvedLayout: true
}
};
};
var network = new Network(el, data, options);
network.on('doubleClick', function (props) {
if (props.nodes.length) {
let nodeId = props.nodes[0]
let node = nodes.get(nodeId)
// TODO: Reload directly in this same page
window.location.href = '/edit/' + node.label
}
var network = new Network(el, data, options);
network.on('doubleClick', function (props) {
if (props.nodes.length) {
let nodeId = props.nodes[0]
let node = nodes.get(nodeId)
// TODO: Reload directly in this same page
window.location.href = '/edit/' + node.label
}
})
})
})
})
})
}