{target?.attrs?.title || node?.title || "Workflow"} {#if targetType !== ""} ({targetType}) {/if}
{#each ALL_ATTRIBUTES as category(category.categoryName)}
{category.categoryName}
{#each category.specs as spec(spec.name)} {#if spec.location === "widget" && target && spec.name in target.attrs}
{#if spec.type === "string"} updateAttribute(spec, target, e.detail)} on:input={(e) => updateAttribute(spec, target, e.detail)} label={spec.name} max_lines={1} /> {:else if spec.type === "boolean"} updateAttribute(spec, target, e.detail)} label={spec.name} /> {:else if spec.type === "number"} updateAttribute(spec, target, e.detail)} /> {:else if spec.type === "enum"} updateAttribute(spec, target, e.detail)} /> {/if}
{:else if node} {#if spec.location === "nodeProps" && validNodeProperty(spec, node)}
{#if spec.type === "string"} updateProperty(spec, e.detail)} on:input={(e) => updateProperty(spec, e.detail)} label={spec.name} max_lines={1} /> {:else if spec.type === "boolean"} updateProperty(spec, e.detail)} /> {:else if spec.type === "number"} updateProperty(spec, e.detail)} /> {:else if spec.type === "enum"} updateProperty(spec, e.detail)} /> {/if}
{:else if spec.location === "nodeVars" && spec.name in node}
{#if spec.type === "string"} updateVar(spec, e.detail)} on:input={(e) => updateVar(spec, e.detail)} label={spec.name} max_lines={1} /> {:else if spec.type === "boolean"} updateVar(spec, e.detail)} label={spec.name} /> {:else if spec.type === "number"} updateVar(spec, e.detail)} /> {:else if spec.type === "enum"} updateVar(spec, e.detail)} /> {/if}
{/if} {:else if spec.location === "workflow" && spec.name in $layoutState.attrs}
{#if spec.type === "string"} updateWorkflowAttribute(spec, e.detail)} on:input={(e) => updateWorkflowAttribute(spec, e.detail)} label={spec.name} max_lines={1} /> {:else if spec.type === "boolean"} updateWorkflowAttribute(spec, e.detail)} label={spec.name} /> {:else if spec.type === "number"} updateWorkflowAttribute(spec, e.detail)} /> {:else if spec.type === "enum"} updateWorkflowAttribute(spec, e.detail)} /> {/if}
{/if} {/each} {/each}