This commit is contained in:
barsdeveloper
2024-10-14 23:19:10 +02:00
parent 8b38173204
commit 404a2aed4f
13 changed files with 127 additions and 86 deletions

View File

@@ -7,6 +7,7 @@ import NodeTemplate from "./NodeTemplate.js"
export default class EventNodeTemplate extends NodeTemplate {
static nodeStyleClasses = [...super.nodeStyleClasses, "ueb-node-style-event"]
#delegatePinElement
/** @param {PropertyValues} changedProperties */
firstUpdated(changedProperties) {
@@ -38,21 +39,31 @@ export default class EventNodeTemplate extends NodeTemplate {
`
}
getPinElements() {
return this.element.getPinElements().filter(v => v.entity.PinType.PinCategory?.toString() !== "delegate")
}
createDelegatePinElement() {
const pin = /** @type {PinElementConstructor} */(ElementFactory.getConstructor("ueb-pin")).newObject(
this.element.getPinEntities().find(v => !v.isHidden() && v.PinType.PinCategory?.toString() === "delegate"),
new MinimalPinTemplate(),
this.element
)
pin.template.isNameRendered = false
return pin
if (!this.#delegatePinElement) {
this.#delegatePinElement = /** @type {PinElementConstructor} */(ElementFactory.getConstructor("ueb-pin"))
.newObject(
this.element.getPinEntities().find(v => !v.isHidden() && v.PinType.PinCategory?.toString() === "delegate"),
new MinimalPinTemplate(),
this.element
)
this.#delegatePinElement.template.isNameRendered = false
}
return this.#delegatePinElement
}
createPinElements() {
return this.element.getPinEntities()
.filter(v => !v.isHidden() && v.PinType.PinCategory?.toString() !== "delegate")
.map(pinEntity => /** @type {PinElementConstructor} */(ElementFactory.getConstructor("ueb-pin"))
.newObject(pinEntity, undefined, this.element)
)
return [
this.createDelegatePinElement(),
...this.element.getPinEntities()
.filter(v => !v.isHidden() && v.PinType.PinCategory?.toString() !== "delegate")
.map(pinEntity => /** @type {PinElementConstructor} */(ElementFactory.getConstructor("ueb-pin"))
.newObject(pinEntity, undefined, this.element)
)
]
}
}

View File

@@ -54,17 +54,9 @@ export default class KnotNodeTemplate extends NodeTemplate {
}
setupPins() {
this.element.getPinElements().forEach(
p => /** @type {HTMLElement} */(this.element.querySelector(".ueb-node-border")).appendChild(p)
)
}
/**
* @param {NodeElement} node
* @returns {NodeListOf<PinElement>}
*/
getPinElements(node) {
return node.querySelectorAll("ueb-pin")
for (const p of this.getPinElements()) {
/** @type {HTMLElement} */(this.element.querySelector(".ueb-node-border")).appendChild(p)
}
}
createPinElements() {

View File

@@ -137,7 +137,7 @@ export default class NodeTemplate extends ISelectableDraggableTemplate {
this.element.nodeNameElement = /** @type {HTMLElement} */(this.element.querySelector(".ueb-node-name-text"))
let hasInput = false
let hasOutput = false
for (const p of this.element.getPinElements()) {
for (const p of this.getPinElements()) {
if (p === this.defaultPin) {
continue
}
@@ -160,6 +160,10 @@ export default class NodeTemplate extends ISelectableDraggableTemplate {
}
}
getPinElements() {
return this.element.getPinElements()
}
createPinElements() {
return this.element.getPinEntities()
.filter(v => !v.isHidden())
@@ -174,13 +178,5 @@ export default class NodeTemplate extends ISelectableDraggableTemplate {
return this.element.entity.FunctionReference?.MemberParent?.getName() ?? "Untitled"
}
/**
* @param {NodeElement} node
* @returns {NodeListOf<PinElement>}
*/
getPinElements(node) {
return node.querySelectorAll("ueb-pin")
}
linksChanged() { }
}