diff --git a/frontend/package.json b/frontend/package.json index fcb2339..a2b0c07 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,7 +12,7 @@ "devDependencies": { "@sveltejs/adapter-auto": "^3.1.0", "@sveltejs/adapter-static": "^3.0.1", - "@sveltejs/kit": "^2.0.6", + "@sveltejs/kit": "^2.1.0", "@sveltejs/vite-plugin-svelte": "^3.0.1", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index d837c1e..0890d8b 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -7,13 +7,13 @@ settings: devDependencies: '@sveltejs/adapter-auto': specifier: ^3.1.0 - version: 3.1.0(@sveltejs/kit@2.0.6) + version: 3.1.0(@sveltejs/kit@2.1.0) '@sveltejs/adapter-static': specifier: ^3.0.1 - version: 3.0.1(@sveltejs/kit@2.0.6) + version: 3.0.1(@sveltejs/kit@2.1.0) '@sveltejs/kit': - specifier: ^2.0.6 - version: 2.0.6(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) + specifier: ^2.1.0 + version: 2.1.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 version: 3.0.1(svelte@4.2.8)(vite@5.0.11) @@ -477,25 +477,25 @@ packages: dev: true optional: true - /@sveltejs/adapter-auto@3.1.0(@sveltejs/kit@2.0.6): + /@sveltejs/adapter-auto@3.1.0(@sveltejs/kit@2.1.0): resolution: {integrity: sha512-igS5hqCwdiXWb8NoWzThKCVQQj9tKgUkbTtzfxBPgSLOyFjkiGNDX0SgCoY2QIUWBqOkfGTOqGlrW5Ynw9oUvw==} peerDependencies: '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/kit': 2.0.6(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) + '@sveltejs/kit': 2.1.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) import-meta-resolve: 4.0.0 dev: true - /@sveltejs/adapter-static@3.0.1(@sveltejs/kit@2.0.6): + /@sveltejs/adapter-static@3.0.1(@sveltejs/kit@2.1.0): resolution: {integrity: sha512-6lMvf7xYEJ+oGeR5L8DFJJrowkefTK6ZgA4JiMqoClMkKq0s6yvsd3FZfCFvX1fQ0tpCD7fkuRVHsnUVgsHyNg==} peerDependencies: '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/kit': 2.0.6(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) + '@sveltejs/kit': 2.1.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11) dev: true - /@sveltejs/kit@2.0.6(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11): - resolution: {integrity: sha512-dnHtyjBLGXx+hrZQ9GuqLlSfTBixewJaByUVWai7LmB4dgV3FwkK155OltEgONDQW6KW64hLNS/uojdx3uC2/g==} + /@sveltejs/kit@2.1.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.0.11): + resolution: {integrity: sha512-XSIjk9uY705VRpLapfScvOI3bKTfPXntLCdWVsQHhLvkTD7TPNHWh45/6nTT1vQ8rJwWzzA5sLide2YLT4FMsg==} engines: {node: '>=18.13'} hasBin: true requiresBuild: true @@ -509,6 +509,7 @@ packages: cookie: 0.6.0 devalue: 4.3.2 esm-env: 1.0.0 + import-meta-resolve: 4.0.0 kleur: 4.1.5 magic-string: 0.30.5 mrmime: 2.0.0 diff --git a/frontend/src/lib/color.svelte b/frontend/src/lib/color.svelte index 5e5b6ac..5f639f0 100644 --- a/frontend/src/lib/color.svelte +++ b/frontend/src/lib/color.svelte @@ -25,5 +25,6 @@ select { font-size: 1.2rem; width: fit-content; + border-radius: 4px; } </style> diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 56c1633..2c4be7f 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -1,13 +1,7 @@ <h1>Welcome to SvelteKit</h1> -<a href="priority">priority</a> +<a href="light/setup">setup</a> <br /> -<a href="setup">setup</a> +<a href="light/h">horizontal</a> <br /> -<a href="surfers">surfers</a> -<br /> -<a href="pri">Priority test</a> -<br /> -<a href="video/h">horizontal</a> -<br /> -<a href="video/v">vertical</a> +<a href="light/v">vertical</a> diff --git a/frontend/src/routes/video/h/+page.svelte b/frontend/src/routes/light/h/+page.svelte similarity index 100% rename from frontend/src/routes/video/h/+page.svelte rename to frontend/src/routes/light/h/+page.svelte diff --git a/frontend/src/routes/light/setup/+page.svelte b/frontend/src/routes/light/setup/+page.svelte new file mode 100644 index 0000000..639f179 --- /dev/null +++ b/frontend/src/routes/light/setup/+page.svelte @@ -0,0 +1,133 @@ +<script> + import { onMount } from 'svelte'; + import Button from '$lib/button.svelte'; + import Color from '$lib/color.svelte'; + + let saved = false; + let start = false; + + $: surfer = [ + { color: 'gray', priority: '2' }, + { color: 'gray', priority: 'P' }, + { color: 'gray', priority: '4' }, + { color: 'gray', priority: '3' }, + { color: 'gray', priority: '5' }, + ]; + let surfers = 5; + + $: if (saved && surfer) { + window.sessionStorage.setItem('priority', JSON.stringify(surfer)); + console.log(`saved: ${JSON.stringify(surfer)}`); + } + + let footer_height = 8; + $: setup_height = ((100 - footer_height) / surfers) - (2.2 / surfers); + + onMount(async () => { + let ses = window.sessionStorage.getItem('priority'); + if (ses) { + surfer = JSON.parse(ses); + console.log(`loaded: ${JSON.stringify(surfer)}`); + } + saved = true; + }); + +</script> + +<ul> + {#each Array(surfers) as _, id} + <li style="--height:{setup_height}vh"> + {#if surfer[id].priority == 'P'} + <div class="priority" id="p"><a href="/">{surfer[id].priority}</a></div> + {:else} + <div class="priority" id="n">{surfer[id].priority}</div> + {/if} + <div class="color" style:background-color={surfer[id].color}></div> + </li> + {/each} +</ul> +<div class="footer" style="--height:{footer_height}vh"> + <span>{footer_height} - {setup_height}</span> + <span style:padding-left="20px"></span> + {#each Array(surfers) as _, id} + <span style:padding-left="20px"></span><span>{surfer[id].color}</span> + {/each} + <br> + <Button label="+" handleClick={() => {if (surfers < 5) surfers += 1;}} /> + <span class="surfers">{surfers}</span> + <Button label="-" handleClick={() => {if (surfers > 2) surfers -= 1;}} /> + {#each Array(surfers) as _, id} + <span style:padding-left="16px"></span> + <Color id="color{id}" label="Color-{id+1}" bind:value={surfer[id].color} /> + {/each} + <span style:padding-left="16px"></span> + <Button label="Reset" handleClick={() => {saved = false; window.sessionStorage.removeItem('priority'); location.reload();}} /> + <span style:padding-left="16px"></span> + <Button label="START" handleClick={() => {start = true;}} /> + +</div> + +<style> + :global(body) { + overflow-y: hidden; + overflow-x: hidden; + margin: 0.2vmin; + align-content: center; + justify-content: center; + } + + a:link, + a:hover, + a:visited, + a:active { + text-decoration: none; + color: black; + } + + ul { + margin: 0; + padding: 0; + } + + li { + display: flex; + flex-direction: row; + margin-top: 0.2vh; + margin-bottom: 0.2vh; + overflow: hidden; + } + + .priority { + text-align: center; + align-self: center; + min-height: var(--height); + min-width: var(--height); + margin-right: 0.2vw; + background-color: gray; + } + + .priority#p { + font-size: 16vmin; + background-color: lightgray; + height: 100%; + } + + .priority#n { + font-size: 14vmin; + height: 100%; + } + + .color { + width: 100vw; + } + + .footer { + position: fixed; + bottom: 0; + background-color: aqua; + border: 2px solid black; + width: 100%; + height: var(--height); + } + +</style> diff --git a/frontend/src/routes/video/v/+page.svelte b/frontend/src/routes/light/v/+page.svelte similarity index 100% rename from frontend/src/routes/video/v/+page.svelte rename to frontend/src/routes/light/v/+page.svelte