{#each fields as field (field)}
{@const type = fieldTypes[field] ?? 'String'}
{@const ro = readonlyFields.includes(field)}
{@const rel = relationOptions[field]}
{@const value = record?.[field]}
{@const err = fieldErrors[field]}
{@const isCascadeParentField = isCascadeParent(field)}
{@const isChildField = getChildFieldName(field) != null}
{#if isCascadeParentField}
{@const childField = getChildFieldName(field)!}
{@const childVal = record?.[childField]}
{@const childErr = fieldErrors[childField]}
{#if err}
{err}
{/if}
{#if childErr}
{childErr}
{/if}
{:else if isChildField}
{:else if ro}
{formatReadonly(value, type)}
{:else if type === 'Tiptap'}
{#if err}
{err}
{/if}
{:else if rel}
{#if err}
{err}
{/if}
{:else if type === 'Boolean'}
{:else if type === 'DateTime'}
{#if err}
{err}
{/if}
{:else if type === 'Int' || type === 'Float'}
{#if err}
{err}
{/if}
{:else}
{#if err}
{err}
{/if}
{/if}
{/each}