{#if nodeListLocation} (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}
{/if}
{#each linkPaths as { pathString, dataType, thick }} {/each}
{#each $nodeGraph.nodes.flatMap((node, nodeIndex) => (node.isLayer ? [{ node, nodeIndex }] : [])) as { node, nodeIndex } (nodeIndex)} {@const clipPathId = String(Math.random()).substring(2)} {@const stackDatainput = node.exposedInputs[0]}
{#if node.primaryInput} {dataTypeTooltip(node.primaryInput.dataType)} {/if}
{#if $nodeGraph.thumbnails.has(node.id)} {@html $nodeGraph.thumbnails.get(node.id)} {/if} {#if node.primaryOutput} {dataTypeTooltip(node.primaryOutput.dataType)} {/if} {dataTypeTooltip(stackDatainput.dataType)}
{node.alias || "Layer"}
{/each} {#each $nodeGraph.nodes.flatMap((node, nodeIndex) => (node.isLayer ? [] : [{ node, nodeIndex }])) as { node, nodeIndex } (nodeIndex)} {@const exposedInputsOutputs = [...node.exposedInputs, ...node.exposedOutputs]} {@const clipPathId = String(Math.random()).substring(2)}
{node.alias || node.name}
{#if exposedInputsOutputs.length > 0}
{#each exposedInputsOutputs as parameter, index}
{parameter.name}
{/each}
{/if}
{#if node.primaryInput?.dataType} {dataTypeTooltip(node.primaryInput.dataType)} {/if} {#each node.exposedInputs as parameter, index} {#if index < node.exposedInputs.length} {dataTypeTooltip(parameter.dataType)} {/if} {/each}
{#if node.primaryOutput} {dataTypeTooltip(node.primaryOutput.dataType)} {/if} {#each node.exposedOutputs as parameter, outputIndex} {dataTypeTooltip(parameter.dataType)} {/each}
{/each}