In order to properly configure the app, you need to fill in the inputs below.
{#each allItems(app.val.grid, app.val.subgrids) as gridItem (gridItem.data.id)} {#if gridItem?.data?.type === 'tablecomponent'}
{#each gridItem.data.actionButtons as actionButton, actionIndex (actionButton.id)} {/each}
{:else if gridItem?.data?.type === 'aggridcomponent' || gridItem?.data?.type === 'aggridcomponentee' || gridItem?.data?.type === 'dbexplorercomponent' || gridItem?.data?.type === 'aggridinfinitecomponent' || gridItem?.data?.type === 'aggridinfinitecomponentee'}
{#if Array.isArray(gridItem.data.actions)} {#each gridItem.data.actions as actionButton, actionIndex (actionButton.id)} {/each} {/if}
{:else} {/if} {/each}
{#if app.val?.hiddenInlineScripts?.length > 0}
Background runnable inputs
{#each app.val?.hiddenInlineScripts ?? [] as script, index (script.name)}
{script.name}
{#if resourceOnly && Object.keys(script.fields).filter((fieldKey) => { const fields = script.fields const field = fields[fieldKey] return field.fieldType === 'object' && field.format?.startsWith('resource-') }).length === 0} No resource input {:else} {/if}
{/each}
{/if}