{#snippet table_region({ region_name, rows, on_cell_click, }: { region_name: "main" | "inserter"; rows: Row[]; on_cell_click(ev: MouseEvent, coords: Coords): void; })} {#if lazy_data} {#each rows as row, row_index}
{#each lazy_data.fields as field, field_index} {@const cell_data = row.data[field_index]} {@const cell_coords: Coords = [row_index, field_index]} {@const cell_selected = selections.some( (sel) => sel.region === region_name && coords_eq(sel.coords, cell_coords), )} {@const null_value_text = region_name === "inserter" && field.has_default ? "Default" : "Null"} {@const invalid_value = field.not_null && !field.has_default && cell_data.c === undefined}
on_cell_click(ev, cell_coords)} ondblclick={() => handle_table_cell_dblclick(cell_coords)} role="gridcell" style:width={`${field.field.width_px}px`} tabindex="-1" >
{#if cell_data.t === "Text"}
{cell_data.c ?? null_value_text}
{:else if cell_data.t === "Uuid"}
{cell_data.c ?? null_value_text}
{:else}
UNKNOWN
{/if} {#if invalid_value}
{@html icon_exclamation_circle}
{/if}
{/each}
{/each} {/if} {/snippet}
{#if lazy_data}
{#each lazy_data.fields as field, field_index} {/each}
TODO
{@render table_region({ region_name: "main", rows: lazy_data.rows, on_cell_click: handle_main_cell_click, })}
{@render table_region({ region_name: "inserter", rows: inserter_rows, on_cell_click: handle_inserter_cell_click, })}
{#each inserter_rows as row} {#each lazy_data.fields as field, field_index} {/each} {/each}
{#if selections.length === 1 && editor_state} {/if}
{/if}