From f55e93cabea08bc2de917cf25a2b560e6f4fd6f8 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 2 Jul 2025 17:45:42 +0400 Subject: [PATCH] feat: additional valve input types --- package-lock.json | 7 ++ package.json | 1 + src/lib/components/common/Valves.svelte | 59 ++++++++++++++- .../common/Valves/MapSelector.svelte | 74 +++++++++++++++++++ 4 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 src/lib/components/common/Valves/MapSelector.svelte diff --git a/package-lock.json b/package-lock.json index abaaa8eed3..c0b9f60f25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,6 +54,7 @@ "jspdf": "^3.0.0", "katex": "^0.16.22", "kokoro-js": "^1.1.1", + "leaflet": "^1.9.4", "marked": "^9.1.0", "mermaid": "^11.6.0", "paneforge": "^0.0.6", @@ -8065,6 +8066,12 @@ "node": ">=10.13.0" } }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", diff --git a/package.json b/package.json index 3aef4ae444..1980d56123 100644 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "jspdf": "^3.0.0", "katex": "^0.16.22", "kokoro-js": "^1.1.1", + "leaflet": "^1.9.4", "marked": "^9.1.0", "mermaid": "^11.6.0", "paneforge": "^0.0.6", diff --git a/src/lib/components/common/Valves.svelte b/src/lib/components/common/Valves.svelte index 598a175580..c5bf3f6648 100644 --- a/src/lib/components/common/Valves.svelte +++ b/src/lib/components/common/Valves.svelte @@ -4,6 +4,8 @@ const i18n = getContext('i18n'); import Switch from './Switch.svelte'; + import MapSelector from './Valves/MapSelector.svelte'; + import { split } from 'postcss/lib/list'; export let valvesSpec = null; export let valves = {}; @@ -49,7 +51,7 @@ {#if (valves[property] ?? null) !== null} -
+
{#if valvesSpec.properties[property]?.enum ?? null} { + // Convert the color value to uppercase immediately + valves[property] = e.target.value.toUpperCase(); + dispatch('change'); + }} + /> +
+ + { + dispatch('change'); + }} + /> +
+ {:else if valvesSpec.properties[property]?.input?.type === 'map'} + +
+ { + valves[property] = value; + dispatch('change'); + }} + /> + + {#if valves[property]} + { + dispatch('change'); + }} + /> + {/if} +
+ {/if} {:else}