{#if $nodeGraph.contextMenuInformation}
{#if $nodeGraph.contextMenuInformation.contextMenuData === "CreateNode"}
(searchTerm = detail)} bind:this={nodeSearchInput} />
{#each nodeCategories as nodeCategory}
{nodeCategory[0]}
{#each nodeCategory[1].nodes as nodeType}
createNode(nodeType.name)} /> {/each}
{:else}
No search results
{/each}
{:else} {@const contextMenuData = $nodeGraph.contextMenuInformation.contextMenuData}
Display as
{ toggleLayerDisplay(false, contextMenuData.nodeId); }, }, { value: "layer", label: "Layer", action: () => { toggleLayerDisplay(true, contextMenuData.nodeId); }, }, ]} disabled={!canBeToggledBetweenNodeAndLayer(contextMenuData.nodeId)} />
{/if}
{/if} {#if $nodeGraph.clickTargets}
{#each $nodeGraph.clickTargets.nodeClickTargets as pathString}
{/each} {#each $nodeGraph.clickTargets.layerClickTargets as pathString}
{/each} {#each $nodeGraph.clickTargets.portClickTargets as pathString}
{/each} {#each $nodeGraph.clickTargets.iconClickTargets as pathString}
{/each}
{/if}
{#each wirePaths as { pathString, dataType, thick, dashed }} {#if thick}
{/if} {/each}
{#each $nodeGraph.imports as { outputMetadata, position }, index}
{`${dataTypeTooltip(outputMetadata)}\n${outputConnectedToText(outputMetadata)}`}
{#if outputMetadata.connectedTo !== undefined}
{:else}
{/if}
{outputMetadata.name}
{/each} {#each $nodeGraph.exports as { inputMetadata, position }, index}
{`${dataTypeTooltip(inputMetadata)}\n${inputConnectedToText(inputMetadata)}`}
{#if inputMetadata.connectedTo !== undefined}
{:else}
{/if}
{inputMetadata.name}
{/each}
{#each Array.from($nodeGraph.nodes.values()).flatMap((node, nodeIndex) => (node.isLayer ? [{ node, nodeIndex }] : [])) as { node, nodeIndex } (nodeIndex)} {@const clipPathId = String(Math.random()).substring(2)} {@const stackDataInput = node.exposedInputs[0]} {@const layerAreaWidth = $nodeGraph.layerWidths.get(node.id) || 8} {@const layerChainWidth = $nodeGraph.chainWidths.get(node.id) || 0}
{#if node.errors}
{node.errors}
{node.errors}
{/if}
{#if $nodeGraph.thumbnails.has(node.id)} {@html $nodeGraph.thumbnails.get(node.id)} {/if} {#if node.primaryOutput}
{`${dataTypeTooltip(node.primaryOutput)}\n${outputConnectedToText(node.primaryOutput)}`}
{#if node.primaryOutput.connectedTo.length > 0}
{#if primaryOutputConnectedToLayer(node)}
{/if} {:else}
{/if}
{/if}
{#if node.primaryInput}
{`${dataTypeTooltip(node.primaryInput)}\n${inputConnectedToText(node.primaryInput)}`}
{/if} {#if node.primaryInput?.connectedTo !== undefined}
{#if primaryInputConnectedToLayer(node)}
{/if} {:else}
{/if}
{#if node.exposedInputs.length > 0}
{`${dataTypeTooltip(stackDataInput)}\n${inputConnectedToText(stackDataInput)}`}
{#if stackDataInput.connectedTo !== undefined}
{:else}
{/if}
{/if}
{node.displayName}
{ /* Button is purely visual, clicking is handled in NodeGraphMessage::PointerDown */ }} tooltip={node.visible ? "Visible" : "Hidden"} />
{/each}
{#each wirePaths as { pathString, dataType, thick, dashed }}\ {#if !thick}
{/if} {/each}
{#each Array.from($nodeGraph.nodes.values()).flatMap((node, nodeIndex) => (node.isLayer ? [] : [{ node, nodeIndex }])) as { node, nodeIndex } (nodeIndex)} {@const exposedInputsOutputs = [...node.exposedInputs, ...node.exposedOutputs]} {@const clipPathId = String(Math.random()).substring(2)}
{#if node.errors}
{node.errors}
{node.errors}
{/if}
{node.displayName}
{#if exposedInputsOutputs.length > 0}
{#each exposedInputsOutputs as parameter, index}
{parameter.name}
{/each}
{/if}
{#if node.primaryInput?.dataType}
{`${dataTypeTooltip(node.primaryInput)}\n${inputConnectedToText(node.primaryInput)}`}
{#if node.primaryInput.connectedTo !== undefined}
{:else}
{/if}
{/if} {#each node.exposedInputs as parameter, index} {#if index < node.exposedInputs.length}
{`${dataTypeTooltip(parameter)}\n${inputConnectedToText(parameter)}`}
{#if parameter.connectedTo !== undefined}
{:else}
{/if}
{/if} {/each}
{#if node.primaryOutput}
{`${dataTypeTooltip(node.primaryOutput)}\n${outputConnectedToText(node.primaryOutput)}`}
{#if node.primaryOutput.connectedTo !== undefined}
{:else}
{/if}
{/if} {#each node.exposedOutputs as parameter, outputIndex}
{`${dataTypeTooltip(parameter)}\n${outputConnectedToText(parameter)}`}
{#if parameter.connectedTo !== undefined}
{:else}
{/if}
{/each}
{/each}
{#if $nodeGraph.box}
{/if}