72 lines
1.8 KiB
JavaScript
72 lines
1.8 KiB
JavaScript
import util from './util'
|
|
|
|
function normal (parent, id, edge, type) {
|
|
const marker = parent.append('marker')
|
|
.attr('id', id)
|
|
.attr('viewBox', '0 0 10 10')
|
|
.attr('refX', 9)
|
|
.attr('refY', 5)
|
|
.attr('markerUnits', 'strokeWidth')
|
|
.attr('markerWidth', 8)
|
|
.attr('markerHeight', 6)
|
|
.attr('orient', 'auto')
|
|
|
|
const path = marker.append('path')
|
|
.attr('d', 'M 0 0 L 10 5 L 0 10 z')
|
|
.style('stroke-width', 1)
|
|
.style('stroke-dasharray', '1,0')
|
|
util.applyStyle(path, edge[type + 'Style'])
|
|
if (edge[type + 'Class']) {
|
|
path.attr('class', edge[type + 'Class'])
|
|
}
|
|
}
|
|
|
|
function vee (parent, id, edge, type) {
|
|
const marker = parent.append('marker')
|
|
.attr('id', id)
|
|
.attr('viewBox', '0 0 10 10')
|
|
.attr('refX', 9)
|
|
.attr('refY', 5)
|
|
.attr('markerUnits', 'strokeWidth')
|
|
.attr('markerWidth', 8)
|
|
.attr('markerHeight', 6)
|
|
.attr('orient', 'auto')
|
|
|
|
const path = marker.append('path')
|
|
.attr('d', 'M 0 0 L 10 5 L 0 10 L 4 5 z')
|
|
.style('stroke-width', 1)
|
|
.style('stroke-dasharray', '1,0')
|
|
util.applyStyle(path, edge[type + 'Style'])
|
|
if (edge[type + 'Class']) {
|
|
path.attr('class', edge[type + 'Class'])
|
|
}
|
|
}
|
|
|
|
function undirected (parent, id, edge, type) {
|
|
const marker = parent.append('marker')
|
|
.attr('id', id)
|
|
.attr('viewBox', '0 0 10 10')
|
|
.attr('refX', 9)
|
|
.attr('refY', 5)
|
|
.attr('markerUnits', 'strokeWidth')
|
|
.attr('markerWidth', 8)
|
|
.attr('markerHeight', 6)
|
|
.attr('orient', 'auto')
|
|
|
|
const path = marker.append('path')
|
|
.attr('d', 'M 0 5 L 10 5')
|
|
.style('stroke-width', 1)
|
|
.style('stroke-dasharray', '1,0')
|
|
util.applyStyle(path, edge[type + 'Style'])
|
|
if (edge[type + 'Class']) {
|
|
path.attr('class', edge[type + 'Class'])
|
|
}
|
|
}
|
|
|
|
export default {
|
|
normal,
|
|
vee,
|
|
undirected,
|
|
default: normal
|
|
}
|