attachEntry(element, entryIndex, entryGen, rowKey, onEntryAnimationEnd)} style:--tree-depth={depth} style:opacity={isUnavailableOffline ? 0.5 : 1} >
delete (window as DragWindow)._tinysub_drag} ondragstart={onDragStart} oncontextmenu={(e) => { e.preventDefault(); if (busy || isSpecialItem) return; onMenu?.({ x: e.clientX, y: e.clientY, items: menuItems, keyboard: !e.isTrusted, }); }} > {#if artSize > 0}
{#if coverArtUrl}
fadeImage(image, id)} > {/if} {#if type === "playlist" && isPublic}
{/if} {#if isStarred}
{/if} {#if isItemDownloaded}
{/if}
{/if}
{label}
{#if detail}
{detail}
{/if} {#if owner && !isOwner}
{owner}
{/if}
{#if isShare}
{ e.stopPropagation(); doCopyShareLink(); }} title={t("action.copy_link")} >
{/if} {#if isNewItem}
{ e.stopPropagation(); onPrimaryAction(); }} title={newItemLabel} >
{/if} {#if !isSpecialItem}
{ e.stopPropagation(); const bounds = ( e.currentTarget as HTMLButtonElement ).getBoundingClientRect(); onMenu?.({ x: bounds.right, y: bounds.bottom, items: menuItems }); }} title={t("shortcut.context_menu")} > ⋮
{/if} {#if !isShare && !isSpecialItem}
{ e.stopPropagation(); onAdd?.(false); }} title={t("action.add_to_queue")} >
{/if}