{#if node === null}
{#each $order as fileId (fileId)}
{@const file = $files.get(fileId)}
{#if file}
{/if}
{/each}
{:else if fileState}
{#if node.type === 'file'}
{#if waypointRoot}
{#if fileState.structure.waypoints.length > 0}
{/if}
{:else}
{#each fileState.structure.tracks as track (track.id)}
{/each}
{/if}
{:else if node.type === 'waypoints'}
{#each fileState.structure.waypoints as waypoint (waypoint.id)}
{/each}
{:else if node.type === 'track'}
{#each fileState.structure.tracks.find((t) => t.id === node.trackId)?.segments ?? [] as segment (segment.id)}
{/each}
{/if}
{/if}
{#if fileState && node?.type === 'file' && !waypointRoot}