{ if (event.key === 'Escape' && menuOpen) { event.stopPropagation(); menu.close(); } }} />

{$i18n.t('Compare files')}

{#each ['unified', 'split'] as value} {/each}
{#each [{ label: $i18n.t('Original'), path: original }, { label: $i18n.t('Revised'), path: revised }] as file}
{name(file.path)}
{/each}
{#if loading}
{$i18n.t('Extracting text and comparing…')}
{:else if error} {:else if result}
+{result.additions} −{result.deletions}
{#if result.hunks.length === 0}

{$i18n.t('No text differences')}

{:else}
{#each result.hunks as hunk}
{hunk.header}
{#if mode === 'split'} {#each splitRows(hunk.lines) as row}
{#each ['original', 'revised'] as side} {@const line = row[side as 'original' | 'revised']}
{(side === 'original' ? line?.oldNumber : line?.newNumber) ?? ''} {#if line}{#each line.segments as segment}{segment.text}{/each}{:else}{' '}{/if}
{/each}
{/each} {:else} {#each hunk.lines as line}
{line.oldNumber ?? ''}{line.newNumber ?? ''} {#each line.segments as segment}{segment.text}{/each}
{/each} {/if} {/each}
{/if} {/if}