mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-11-01 12:17:18 +00:00
each keys
This commit is contained in:
1 parent
c778766293
commit
46563ef283
13 files changed
+17
-17
No files matched your search
@@ -16,7 +16,7 @@
|
||||
</span>
|
||||
</Select.Trigger>
|
||||
<Select.Content>
|
||||
{#each Object.entries(languages) as [lang, label]}
|
||||
{#each Object.entries(languages) as [lang, label] (lang)}
|
||||
{#if page.url.pathname.includes('404')}
|
||||
<a href={resolve(getURLForLanguage(lang, '/'))}>
|
||||
<Select.Item value={lang}>{label}</Select.Item>
|
||||
|
||||
@@ -527,7 +527,7 @@
|
||||
</Menubar.SubTrigger>
|
||||
<Menubar.SubContent>
|
||||
<Menubar.RadioGroup value={i18n.lang}>
|
||||
{#each Object.entries(languages) as [lang, label]}
|
||||
{#each Object.entries(languages) as [lang, label] (lang)}
|
||||
<a href={resolve(getURLForLanguage(lang, '/app'))}>
|
||||
<Menubar.RadioItem value={lang}>{label}</Menubar.RadioItem>
|
||||
</a>
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
{i18n._(`layers.label.${options.basemap}`)}
|
||||
</Select.Trigger>
|
||||
<Select.Content class="max-h-60 overflow-y-scroll">
|
||||
{#each allowedEmbeddingBasemaps as basemap}
|
||||
{#each allowedEmbeddingBasemaps as basemap (basemap)}
|
||||
<Select.Item value={basemap}
|
||||
>{i18n._(`layers.label.${basemap}`)}</Select.Item
|
||||
>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
</AlertDialog.Description>
|
||||
</AlertDialog.Header>
|
||||
<ul class="list-disc pl-6 text-sm max-h-40 overflow-y-auto">
|
||||
{#each prompt.names as name}
|
||||
{#each prompt.names as name, i (i)}
|
||||
<li>{name}</li>
|
||||
{/each}
|
||||
</ul>
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
<Label for="name">{i18n._('menu.metadata.name')}</Label>
|
||||
<Input bind:value={name} id="name" class="h-8" />
|
||||
<Label for="url">{i18n._('layers.custom_layers.urls')}</Label>
|
||||
{#each tileUrls as _, i}
|
||||
{#each tileUrls as _, i (i)}
|
||||
<div class="flex flex-row gap-2">
|
||||
<Input
|
||||
bind:value={tileUrls[i]}
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
{/if}
|
||||
</Select.Trigger>
|
||||
<Select.Content class="h-fit max-h-[40dvh] overflow-y-auto">
|
||||
{#each Object.keys(overlays) as id}
|
||||
{#each Object.keys(overlays) as id (id)}
|
||||
{#if isSelected($selectedOverlayTree, id)}
|
||||
<Select.Item value={id}>
|
||||
{#if $isLayerFromExtension(id)}
|
||||
@@ -189,7 +189,7 @@
|
||||
</Select.Item>
|
||||
{/if}
|
||||
{/each}
|
||||
{#each Object.entries($customLayers) as [id, layer]}
|
||||
{#each Object.entries($customLayers) as [id, layer] (id)}
|
||||
{#if layer.layerType === 'overlay'}
|
||||
<Select.Item value={id}>{layer.name}</Select.Item>
|
||||
{/if}
|
||||
@@ -247,7 +247,7 @@
|
||||
{i18n._(`layers.label.${$terrainSource}`)}
|
||||
</Select.Trigger>
|
||||
<Select.Content class="h-fit max-h-[40dvh] overflow-y-auto">
|
||||
{#each Object.keys(terrainSources) as id}
|
||||
{#each Object.keys(terrainSources) as id (id)}
|
||||
<Select.Item value={id}>
|
||||
{i18n._(`layers.label.${id}`)}
|
||||
</Select.Item>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
</script>
|
||||
|
||||
<div class="flex flex-col gap-[3px]">
|
||||
{#each Object.keys(node) as id}
|
||||
{#each Object.keys(node) as id (id)}
|
||||
{#if typeof node[id] == 'boolean'}
|
||||
{#if node[id]}
|
||||
<div class="flex flex-row items-center gap-2 first:mt-0.5 h-4">
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
</div>
|
||||
{/if}
|
||||
<div class="grid grid-cols-[auto_auto] gap-x-3">
|
||||
{#each Object.entries(tags) as [key, value]}
|
||||
{#each Object.entries(tags) as [key, value] (key)}
|
||||
{#if key !== 'name' && !key.includes('image')}
|
||||
<span class="font-mono">{key}</span>
|
||||
{#if key === 'website' || key.startsWith('website:') || key.endsWith(':website') || key === 'contact:facebook' || key === 'contact:instagram' || key === 'contact:twitter'}
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
{i18n._(`toolbar.routing.activities.${$routingProfile}`)}
|
||||
</Select.Trigger>
|
||||
<Select.Content>
|
||||
{#each Object.keys(routingProfiles) as profile}
|
||||
{#each Object.keys(routingProfiles) as profile (profile)}
|
||||
<Select.Item value={profile}
|
||||
>{i18n._(
|
||||
`toolbar.routing.activities.${profile}`
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
{i18n._('gpx.' + $splitAs)}
|
||||
</Select.Trigger>
|
||||
<Select.Content>
|
||||
{#each splitTypes as splitType}
|
||||
{#each splitTypes as splitType (splitType)}
|
||||
<Select.Item value={splitType}>{i18n._('gpx.' + splitType)}</Select.Item>
|
||||
{/each}
|
||||
</Select.Content>
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
</span>
|
||||
</Select.Trigger>
|
||||
<Select.Content class="max-h-60">
|
||||
{#each sortedSymbols as [key, symbol]}
|
||||
{#each sortedSymbols as [key, symbol] (key)}
|
||||
<Select.Item value={symbol.value}>
|
||||
<span>
|
||||
{#if symbol.icon}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<div class="mb-2">
|
||||
<AlgoliaDocSearch />
|
||||
</div>
|
||||
{#each Object.keys(guides) as guide}
|
||||
{#each Object.keys(guides) as guide (guide)}
|
||||
<Button
|
||||
variant="link"
|
||||
href={resolve(getURLForLanguage(i18n.lang, `/help/${guide}`))}
|
||||
@@ -36,7 +36,7 @@
|
||||
>
|
||||
{data.guideTitles[guide]}
|
||||
</Button>
|
||||
{#each guides[guide] as subGuide}
|
||||
{#each guides[guide] as subGuide (subGuide)}
|
||||
<Button
|
||||
variant="link"
|
||||
href={resolve(getURLForLanguage(i18n.lang, `/help/${guide}/${subGuide}`))}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</script>
|
||||
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-3">
|
||||
{#each Object.keys(guides) as guide}
|
||||
{#each Object.keys(guides) as guide (guide)}
|
||||
<Button
|
||||
variant="outline"
|
||||
href={resolve(getURLForLanguage(i18n.lang, `/help/${guide}`))}
|
||||
@@ -29,7 +29,7 @@
|
||||
{data.guideTitles[guide]}
|
||||
</div>
|
||||
<div class="flex flex-row justify-center flex-wrap gap-x-6 px-6">
|
||||
{#each guides[guide] as subGuide}
|
||||
{#each guides[guide] as subGuide (subGuide)}
|
||||
<Button
|
||||
variant="link"
|
||||
href={resolve(
|
||||
|
||||
Reference in new issue
Block a user