(menuOpen = false)} />
{#if !artist || !allTabs.length}

This artist's discography isn't loaded. Open the artist page first.

{:else}
{#if artist.picture}
{/if}
Discography
{artist.name}
{#if artist.fans != null} {fmtCount(artist.fans)}fans {/if} {items.length}releases {someUnknown ? "≥" : ""}{known}tracks
{#each allTabs as t (t.key)} {/each}
{#if menuOpen} {/if}
{items.length} releases · {someUnknown ? "≥" : ""}{known} tracks
{#if years.length > 2}
{#each years as y (y)} {/each}
{/if} {#each items as r (r.familyKey ?? r.id)} {@const rows = tracksById[r.id]} {@const eds = r.editions && r.editions.length > 1 ? r.editions : null}
{(r.record_type ?? "album").toUpperCase()}

22}>{r.title}

{#if year(r)}· {year(r)}{/if} {#if rows?.length ?? r.track_count} · {rows?.length ?? r.track_count} tracks {/if} {#if runtimeOf(rows)}· {runtimeOf(rows)}{/if}

{#if eds}
Editions
{#each eds as e, i (e.id)} {/each}
{/if} {#if rows?.length} {@const peak = listenerPeak(rows)} {@const hasCount = rows.some((x) => x.listeners != null)}
#Title {#if hasCount}Listeners{/if}
{#each rows as t (t.id)}
{t.track_no ?? "·"} {t.title} {#if hasCount} {fmtCountFull(t.listeners)} {/if} {fmtDur(t.duration_secs)}
{/each}
{:else if rows}

No tracklist for this record.

{:else} {/if}
{/each} {/if}