{ return nesting % nestingClasses.length === i && c; }), ]} >
Name
(name = v))} />
Type
type.$, v => (type.$ = v)} > {#each propertyTypes.filter(t => t !== "array") as type}
{type}
{/each}
{#if type.$ === "object"}
{#snippet trigger(tooltip)}
{ const prevProperties = innerDefinition.$.properties || {}; innerDefinition.$ = { ...innerDefinition.$, properties: { ...prevProperties, "": { type: "string" } } }; }} aria-label="Add nested" {...tooltip.trigger} >
{/snippet} Add nested property
{/if} {#if type.$ === "enum"}
{#snippet trigger(tooltip)}
{ const prevValues = innerDefinition.$.enum || []; innerDefinition.$ = { ...innerDefinition.$, enum: [...prevValues, ""] }; }} aria-label="Add enum value" {...tooltip.trigger} >
{/snippet} Add enum value
{/if}
{#if !nesting}
Required
{/if}
Array
{#if type.$ === "object"} {#each Object.entries(innerDefinition.$.properties ?? {}) as [propertyName, propertyDefinition], index (index)}
propertyName, value => { const nd = { ...innerDefinition.$ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any nd.properties![value] = innerDefinition.$.properties![propertyName] as any; delete nd.properties![propertyName]; innerDefinition.$ = nd; } } bind:definition={ () => propertyDefinition, v => { innerDefinition.$.properties![propertyName] = v; innerDefinition.$ = innerDefinition.$; } } onDelete={() => { delete innerDefinition.$.properties![propertyName]; innerDefinition.$ = innerDefinition.$; }} nesting={nesting + 1} /> {/each} {/if} {#if "enum" in innerDefinition.$}
Values
{#each innerDefinition.$.enum ?? [] as val, index (index)}
{ return (nesting + 1) % nestingClasses.length === i && c; }), ]} >
{ innerDefinition.$.enum = innerDefinition.$.enum ?? []; innerDefinition.$.enum[index] = v; innerDefinition.$ = innerDefinition.$; })} />
{ innerDefinition.$.enum = innerDefinition.$.enum ?? []; innerDefinition.$.enum.splice(index, 1); innerDefinition.$ = innerDefinition.$; }} >
{:else}
No enum values defined.
{/each} {/if}