Fix pasted nodes links

This commit is contained in:
barsdeveloper
2022-09-27 21:29:47 +02:00
parent 4f0c7f9190
commit 7846aa74ea
5 changed files with 33 additions and 15 deletions

View File

@@ -9,6 +9,8 @@ import PinReferenceEntity from "../entity/PinReferenceEntity"
import SerializerFactory from "../serialization/SerializerFactory"
import Utility from "../Utility"
/** @typedef {import("./IElement").default} IElement */
/** @extends {ISelectableDraggableElement<ObjectEntity, NodeTemplate>} */
export default class NodeElement extends ISelectableDraggableElement {
@@ -102,8 +104,9 @@ export default class NodeElement extends ISelectableDraggableElement {
return this.entity.getDisplayName()
}
sanitizeLinks() {
this.getPinElements().forEach(pin => pin.sanitizeLinks())
/** @param {IElement[]} nodesWhitelist */
sanitizeLinks(nodesWhitelist = []) {
this.getPinElements().forEach(pin => pin.sanitizeLinks(nodesWhitelist))
}
/** @param {String} name */

View File

@@ -192,10 +192,14 @@ export default class PinElement extends IElement {
this.entity.DefaultValue = value
}
sanitizeLinks() {
/** @param {IElement[]} nodesWhitelist */
sanitizeLinks(nodesWhitelist = []) {
this.entity.LinkedTo = this.getLinks().filter(pinReference => {
let pin = this.blueprint.getPin(pinReference)
if (pin) {
if (nodesWhitelist.length && !nodesWhitelist.includes(pin.nodeElement)) {
return false
}
let link = this.blueprint.getLink(this, pin, true)
if (!link) {
this.blueprint.addGraphElement(new LinkElement(this, pin))