{#if status === 'idle'} Ready to scan {:else if status === 'scanning'} Scanning for vulnerabilities... {:else if status === 'complete'} {#if hasCriticalOrHigh} Vulnerabilities found {:else if totalVulnerabilities > 0} Some vulnerabilities found {:else} No vulnerabilities! {/if} {:else if status === 'error'} Scan failed {/if}
{#if status === 'complete' && results.length > 0} 0 ? 'secondary' : 'outline'} class="text-xs"> {totalVulnerabilities} vulnerabilities {/if} {#if duration > 0}{formatDuration(duration)}{/if}
{#if scanMessage && status === 'scanning'}

{scanMessage}

{/if} {#if errorMessage}
{errorMessage}
{/if}
{#if status === 'idle'}

Scan {imageName} for vulnerabilities

{/if} {#if status !== 'idle'} {#if results.length > 0}
{/if}
{#if activeTab === 'output' || results.length === 0}
Output ({outputLines.length} lines)
{#each outputLines as line}
{#if line.startsWith('[grype]')} grype {line.slice(8)} {:else if line.startsWith('[trivy]')} trivy {line.slice(8)} {:else if line.startsWith('[dockhand]')} dockhand {line.slice(11)} {:else if line.startsWith('[scan]')} scan {line.slice(7)} {:else if line.startsWith('[error]')} error {line.slice(8)} {:else} {line} {/if}
{/each}
{:else}
{/if}
{/if}