mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2025-09-02 00:32:33 +00:00

* Add support for nautical units * Make panel reactive to unit changes even after pushing down conversions into utility functions. * Fix issue: km->mph conversion was not done right. * Add support for nautical units to the Time dialog. * Add support for nautical units to the embedding view and embedding playground. * add missing parameter and rename * "npx prettier" pass on the files changed in this PR Does not include changes to `website/src/lib/db.ts`, because there would otherwise be lots of unrelated formatting changes * Change elevation unit to meters for 'nautical' distances. * hide elevation decimals --------- Co-authored-by: bdbkun <1308709+mbof@users.noreply.github.com> Co-authored-by: vcoppe <vianney.coppe@gmail.com>
49 lines
1.6 KiB
Svelte
49 lines
1.6 KiB
Svelte
<script lang="ts">
|
|
import { settings } from '$lib/db';
|
|
import {
|
|
celsiusToFahrenheit,
|
|
getConvertedDistance,
|
|
getConvertedElevation,
|
|
getConvertedVelocity,
|
|
getDistanceUnits,
|
|
getElevationUnits,
|
|
getVelocityUnits,
|
|
secondsToHHMMSS
|
|
} from '$lib/units';
|
|
|
|
import { _ } from 'svelte-i18n';
|
|
|
|
export let value: number;
|
|
export let type: 'distance' | 'elevation' | 'speed' | 'temperature' | 'time';
|
|
export let showUnits: boolean = true;
|
|
export let decimals: number | undefined = undefined;
|
|
|
|
const { distanceUnits, velocityUnits, temperatureUnits } = settings;
|
|
</script>
|
|
|
|
<span class={$$props.class}>
|
|
{#if type === 'distance'}
|
|
{getConvertedDistance(value, $distanceUnits).toFixed(decimals ?? 2)}
|
|
{showUnits ? getDistanceUnits($distanceUnits) : ''}
|
|
{:else if type === 'elevation'}
|
|
{getConvertedElevation(value, $distanceUnits).toFixed(decimals ?? 0)}
|
|
{showUnits ? getElevationUnits($distanceUnits) : ''}
|
|
{:else if type === 'speed'}
|
|
{#if $velocityUnits === 'speed'}
|
|
{getConvertedVelocity(value, $velocityUnits, $distanceUnits).toFixed(decimals ?? 2)}
|
|
{showUnits ? getVelocityUnits($velocityUnits, $distanceUnits) : ''}
|
|
{:else}
|
|
{secondsToHHMMSS(getConvertedVelocity(value, $velocityUnits, $distanceUnits))}
|
|
{showUnits ? getVelocityUnits($velocityUnits, $distanceUnits) : ''}
|
|
{/if}
|
|
{:else if type === 'temperature'}
|
|
{#if $temperatureUnits === 'celsius'}
|
|
{value} {showUnits ? $_('units.celsius') : ''}
|
|
{:else}
|
|
{celsiusToFahrenheit(value)} {showUnits ? $_('units.fahrenheit') : ''}
|
|
{/if}
|
|
{:else if type === 'time'}
|
|
{secondsToHHMMSS(value)}
|
|
{/if}
|
|
</span>
|