graflow: fixed the underscore as separator in internal link storage
This commit is contained in:
+14
-6
@@ -414,6 +414,10 @@ class BZgraflow extends Buildoz{
|
|||||||
return(this.stagedNodes[nid])
|
return(this.stagedNodes[nid])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
makeWireId(nid1, nid2){
|
||||||
|
return(`${encodeURIComponent(nid1)}|${encodeURIComponent(nid2)}`)
|
||||||
|
}
|
||||||
|
|
||||||
addWire(link){
|
addWire(link){
|
||||||
const [idNode1, idPort1] = link.from
|
const [idNode1, idPort1] = link.from
|
||||||
const [idNode2, idPort2] = link.to
|
const [idNode2, idPort2] = link.to
|
||||||
@@ -422,7 +426,7 @@ class BZgraflow extends Buildoz{
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
const path = this.linkNodes(idNode1, idPort1, idNode2, idPort2)
|
const path = this.linkNodes(idNode1, idPort1, idNode2, idPort2)
|
||||||
const id = `${idNode1}_${idNode2}`
|
const id = this.makeWireId(idNode1, idNode2)
|
||||||
this.stagedWires[id] = document.createElementNS('http://www.w3.org/2000/svg', 'path')
|
this.stagedWires[id] = document.createElementNS('http://www.w3.org/2000/svg', 'path')
|
||||||
this.stagedWires[id].setAttribute('d', path)
|
this.stagedWires[id].setAttribute('d', path)
|
||||||
this.stagedWires[id].setAttribute('fill', 'none')
|
this.stagedWires[id].setAttribute('fill', 'none')
|
||||||
@@ -1018,10 +1022,14 @@ class BZgraflow extends Buildoz{
|
|||||||
|
|
||||||
updateWires(nid, orientation, LondLinkfix = false){
|
updateWires(nid, orientation, LondLinkfix = false){
|
||||||
const wires = Object.keys(this.stagedWires)
|
const wires = Object.keys(this.stagedWires)
|
||||||
.filter(id => (id.startsWith(nid+'_')||id.endsWith('_'+nid)))
|
|
||||||
.map(id => this.stagedWires[id])
|
.map(id => this.stagedWires[id])
|
||||||
|
.filter(wire => {
|
||||||
|
const lnk = wire?.link
|
||||||
|
return(lnk && (lnk.from?.[0] == nid || lnk.to?.[0] == nid))
|
||||||
|
})
|
||||||
for(const wire of wires){
|
for(const wire of wires){
|
||||||
const [nid1, nid2] = wire.dataset.id.split('_')
|
const nid1 = wire.link.from[0]
|
||||||
|
const nid2 = wire.link.to[0]
|
||||||
const lnk = this.getLink(nid1, nid2)
|
const lnk = this.getLink(nid1, nid2)
|
||||||
if(!lnk) continue
|
if(!lnk) continue
|
||||||
if(!this.flow?.longLinks) this.flow.longLinks = []
|
if(!this.flow?.longLinks) this.flow.longLinks = []
|
||||||
@@ -1038,7 +1046,7 @@ class BZgraflow extends Buildoz{
|
|||||||
}
|
}
|
||||||
|
|
||||||
getLink(nid1, nid2){
|
getLink(nid1, nid2){
|
||||||
const wire = this.stagedWires[`${nid1}_${nid2}`]
|
const wire = this.stagedWires[this.makeWireId(nid1, nid2)]
|
||||||
if(wire?.link) return wire.link
|
if(wire?.link) return wire.link
|
||||||
return this._virtualLinks?.get(`${nid1}__${nid2}`) ?? null
|
return this._virtualLinks?.get(`${nid1}__${nid2}`) ?? null
|
||||||
}
|
}
|
||||||
@@ -1442,7 +1450,7 @@ class EditWires{
|
|||||||
return('')
|
return('')
|
||||||
}
|
}
|
||||||
this.graflow.addWire({ from: [idNode1, idPort1], to: [idNode2, idPort2] })
|
this.graflow.addWire({ from: [idNode1, idPort1], to: [idNode2, idPort2] })
|
||||||
this.graflow.fireEvent('wireAdded', { from: [idNode1, idPort1], to: [idNode2, idPort2], id: `${idNode1}_${idNode2}` })
|
this.graflow.fireEvent('wireAdded', { from: [idNode1, idPort1], to: [idNode2, idPort2], id: this.graflow.makeWireId(idNode1, idNode2) })
|
||||||
}
|
}
|
||||||
|
|
||||||
onSelectWire(e){
|
onSelectWire(e){
|
||||||
@@ -1461,7 +1469,7 @@ class EditWires{
|
|||||||
const wireId = this.currentlySelectedWire.dataset.id
|
const wireId = this.currentlySelectedWire.dataset.id
|
||||||
const linkToRemove = this.graflow.stagedWires[wireId]?.link
|
const linkToRemove = this.graflow.stagedWires[wireId]?.link
|
||||||
this.graflow.flow.links = this.graflow.flow.links.filter(link =>
|
this.graflow.flow.links = this.graflow.flow.links.filter(link =>
|
||||||
linkToRemove ? link !== linkToRemove : (link.from[0] + '_' + link.to[0] !== wireId)
|
linkToRemove ? link !== linkToRemove : (this.graflow.makeWireId(link.from[0], link.to[0]) !== wireId)
|
||||||
)
|
)
|
||||||
this.graflow.stagedWires[wireId]?.remove()
|
this.graflow.stagedWires[wireId]?.remove()
|
||||||
delete this.graflow.stagedWires[wireId]
|
delete this.graflow.stagedWires[wireId]
|
||||||
|
|||||||
Reference in New Issue
Block a user