(isHovered = true)} onmouseleave={() => (isHovered = false)} onclick={selectable ? onToggleSelect : (isBlacklisted ? undefined : onPlay)} oncontextmenu={(e) => { if (isBlacklisted || selectable) return; e.preventDefault(); contextMenuPos = { x: e.clientX, y: e.clientY }; }} role="button" tabindex={isBlacklisted ? -1 : 0} onkeydown={(e) => e.key === 'Enter' && !isBlacklisted && (selectable ? onToggleSelect?.(e as unknown as MouseEvent) : onPlay?.())} > {#if selectable}
e.stopPropagation()}> void} aria-label="Select track" />
{/if}
{#if isBlacklisted} {:else if isUnavailable} {:else if isActiveTrack || isPlaying} {#if isHovered} {#if isPlaying} {:else} {/if} {:else}
{/if} {:else if isHovered} {:else} {number} {/if}
{#if showArtwork}
{#if artworkUrl} {title} {/if}
{/if}
{title} {#if explicit} {/if}
{#if artist && !compact} {#if artistClickAction} {:else}
{artist}
{/if} {/if}
{#if artist && compact} {#if artistClickAction} {:else}
{artist}
{/if} {/if} {#if album} {#if albumClickAction} {:else}
{album}
{/if} {/if}
{duration}
{quality ?? ''}
{#if isLocal || hideFavorite}
{:else} {/if} {#if isLocal}
{#if localSource === 'plex'} {:else} {/if}
{:else if hideDownload}
{:else}
{/if}
toggleTrackFavorite(trackId) : undefined} onAddToPlaylist={menuActions?.onAddToPlaylist} onRemoveFromPlaylist={menuActions?.onRemoveFromPlaylist} onFindReplacement={menuActions?.onFindReplacement} onShareQobuz={menuActions?.onShareQobuz} onShareSonglink={menuActions?.onShareSonglink} onGoToAlbum={menuActions?.onGoToAlbum} onGoToArtist={menuActions?.onGoToArtist} onShowInfo={menuActions?.onShowInfo} onDownload={menuActions?.onDownload} isTrackDownloaded={menuActions?.isTrackDownloaded} onReDownload={menuActions?.onReDownload} onRemoveDownload={menuActions?.onRemoveDownload ?? onRemoveDownload} contextMenuPosition={contextMenuPos} onContextMenuClosed={() => { contextMenuPos = null; }} />