{#if minimizable && minimized}
(minimized = false)}>
{:else}
{#if $routing}
{:else}
{/if} {i18n._('toolbar.routing.use_routing')}
{#snippet extra()}
{/snippet}
{#if $routing}
{#if $routingProfile.includes('bike') || $routingProfile.includes('motorcycle')}
{:else if $routingProfile.includes('foot')}
{:else if $routingProfile.includes('water')}
{:else if $routingProfile.includes('railway')}
{/if} {i18n._('toolbar.routing.activity')}
{i18n._(`toolbar.routing.activities.${$routingProfile}`)}
{#each Object.keys(brouterProfiles) as profile}
{i18n._( `toolbar.routing.activities.${profile}` )}
{/each}
{i18n._('toolbar.routing.allow_private')}
{/if}
{i18n._('toolbar.routing.reverse.button')}
{ const selected = selection.getOrderedSelection(); if (selected.length > 0) { const firstFileId = selected[0].getFileId(); const firstFile = fileStateCollection.getFile(firstFileId); if (firstFile) { let start = (() => { if (selected[0] instanceof ListFileItem) { return firstFile.trk[0]?.trkseg[0]?.trkpt[0]; } else if (selected[0] instanceof ListTrackItem) { return firstFile.trk[selected[0].getTrackIndex()]?.trkseg[0] ?.trkpt[0]; } else if (selected[0] instanceof ListTrackSegmentItem) { return firstFile.trk[selected[0].getTrackIndex()]?.trkseg[ selected[0].getSegmentIndex() ]?.trkpt[0]; } })(); if (start !== undefined) { const lastFileId = selected[selected.length - 1].getFileId(); routingControls .get(lastFileId) ?.appendAnchorWithCoordinates(start.getCoordinates()); } } } }} >
{i18n._('toolbar.routing.route_back_to_start.button')}
{i18n._('toolbar.routing.round_trip.button')}
{#if !validSelection} {i18n._('toolbar.routing.help_no_file')} {:else} {i18n._('toolbar.routing.help')} {/if}
{ if (minimizable) { minimized = true; } }} >
{/if}