{i18n.t("game.calculator.col.ship")} {i18n.t("game.calculator.col.tech")}
{#each BLOCK_ROWS as row (row.key)} {@const isComputed = computedInput === row.key}
{row.label()} {#if isComputed} {:else} onBlockKey(e, row.key, row.smartStep)} oninput={(e) => capDecimals(e, (v) => (blocks[row.key] = v))} /> {/if} {#if row.tech !== null} {@const techKey = row.tech} {#if techOverridden[techKey]} bumpTech(e, techKey)} oninput={(e) => capDecimals(e, (v) => (techs[techKey] = v))} /> {:else} {formatNumber(techs[techKey])} {/if} {:else} {/if}
{/each}