=setup post data

This commit is contained in:
Miki 2023-12-13 11:57:12 +01:00
parent b0c64d01e9
commit 47489abb1e
11 changed files with 306 additions and 157 deletions

Binary file not shown.

View file

@ -8,15 +8,17 @@ import (
)
type Surfer struct {
Firstname string `json:"firstname"`
Lastname string `json:"lastname"`
Name string `json:"name"`
Color string `json:"color"`
Priority string `json:"priority"`
Score string `json:"score"`
}
type Heat struct {
Name string `json:"name"`
Category string `json:"category"`
Number string `json:"number"`
Number int `json:"number"`
Timer int `json:"timer"`
Surfers []Surfer `json:"surfers"`
}

View file

@ -1 +1 @@
{"version":"1701857544737"}
{"version":"1702464938807"}

Binary file not shown.

Binary file not shown.

View file

@ -5,17 +5,17 @@
<link rel="icon" href="/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="modulepreload" href="/_app/immutable/entry/start.38c5e77c.js">
<link rel="modulepreload" href="/_app/immutable/entry/start.cac80759.js">
<link rel="modulepreload" href="/_app/immutable/chunks/scheduler.9172086d.js">
<link rel="modulepreload" href="/_app/immutable/chunks/singletons.03494c70.js">
<link rel="modulepreload" href="/_app/immutable/entry/app.59a2edc6.js">
<link rel="modulepreload" href="/_app/immutable/chunks/index.c679962e.js">
<link rel="modulepreload" href="/_app/immutable/chunks/singletons.7663c071.js">
<link rel="modulepreload" href="/_app/immutable/entry/app.8f82bb2b.js">
<link rel="modulepreload" href="/_app/immutable/chunks/index.3ce947e1.js">
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">
<script>
{
__sveltekit_t5ayim = {
__sveltekit_cctu1m = {
base: "",
env: {}
};
@ -23,8 +23,8 @@
const element = document.currentScript.parentElement;
Promise.all([
import("/_app/immutable/entry/start.38c5e77c.js"),
import("/_app/immutable/entry/app.59a2edc6.js")
import("/_app/immutable/entry/start.cac80759.js"),
import("/_app/immutable/entry/app.8f82bb2b.js")
]).then(([kit, app]) => {
kit.start(app, element);
});

Binary file not shown.

Binary file not shown.

View file

@ -10,17 +10,17 @@
"format": "prettier --write ."
},
"devDependencies": {
"@sveltejs/adapter-auto": "^2.0.0",
"@sveltejs/adapter-auto": "^2.1.1",
"@sveltejs/adapter-static": "^2.0.3",
"@sveltejs/kit": "^1.27.4",
"eslint": "^8.28.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-svelte": "^2.30.0",
"prettier": "^3.0.0",
"prettier-plugin-svelte": "^3.0.0",
"@sveltejs/kit": "^1.30.0",
"eslint": "^8.55.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-svelte": "^2.35.1",
"prettier": "^3.1.1",
"prettier-plugin-svelte": "^3.1.2",
"sass": "^1.69.5",
"svelte": "^4.2.7",
"vite": "^4.4.2"
"svelte": "^4.2.8",
"vite": "^4.5.1"
},
"type": "module"
}

283
frontend/pnpm-lock.yaml generated
View file

@ -6,38 +6,38 @@ settings:
devDependencies:
'@sveltejs/adapter-auto':
specifier: ^2.0.0
version: 2.0.0(@sveltejs/kit@1.27.4)
specifier: ^2.1.1
version: 2.1.1(@sveltejs/kit@1.30.0)
'@sveltejs/adapter-static':
specifier: ^2.0.3
version: 2.0.3(@sveltejs/kit@1.27.4)
version: 2.0.3(@sveltejs/kit@1.30.0)
'@sveltejs/kit':
specifier: ^1.27.4
version: 1.27.4(svelte@4.2.7)(vite@4.4.2)
specifier: ^1.30.0
version: 1.30.0(svelte@4.2.8)(vite@4.5.1)
eslint:
specifier: ^8.28.0
version: 8.28.0
specifier: ^8.55.0
version: 8.55.0
eslint-config-prettier:
specifier: ^9.0.0
version: 9.0.0(eslint@8.28.0)
specifier: ^9.1.0
version: 9.1.0(eslint@8.55.0)
eslint-plugin-svelte:
specifier: ^2.30.0
version: 2.30.0(eslint@8.28.0)(svelte@4.2.7)
specifier: ^2.35.1
version: 2.35.1(eslint@8.55.0)(svelte@4.2.8)
prettier:
specifier: ^3.0.0
version: 3.0.0
specifier: ^3.1.1
version: 3.1.1
prettier-plugin-svelte:
specifier: ^3.0.0
version: 3.0.0(prettier@3.0.0)(svelte@4.2.7)
specifier: ^3.1.2
version: 3.1.2(prettier@3.1.1)(svelte@4.2.8)
sass:
specifier: ^1.69.5
version: 1.69.5
svelte:
specifier: ^4.2.7
version: 4.2.7
specifier: ^4.2.8
version: 4.2.8
vite:
specifier: ^4.4.2
version: 4.4.2(sass@1.69.5)
specifier: ^4.5.1
version: 4.5.1(sass@1.69.5)
packages:
@ -252,24 +252,29 @@ packages:
dev: true
optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.28.0):
/@eslint-community/eslint-utils@4.4.0(eslint@8.55.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
eslint: 8.28.0
eslint: 8.55.0
eslint-visitor-keys: 3.4.3
dev: true
/@eslint/eslintrc@1.4.1:
resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
/@eslint-community/regexpp@4.10.0:
resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
/@eslint/eslintrc@2.1.4:
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4
espree: 9.6.1
globals: 13.23.0
globals: 13.24.0
ignore: 5.3.0
import-fresh: 3.3.0
js-yaml: 4.1.0
@ -279,6 +284,11 @@ packages:
- supports-color
dev: true
/@eslint/js@8.55.0:
resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@fastify/busboy@2.1.0:
resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==}
engines: {node: '>=14'}
@ -359,25 +369,25 @@ packages:
resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==}
dev: true
/@sveltejs/adapter-auto@2.0.0(@sveltejs/kit@1.27.4):
resolution: {integrity: sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==}
/@sveltejs/adapter-auto@2.1.1(@sveltejs/kit@1.30.0):
resolution: {integrity: sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==}
peerDependencies:
'@sveltejs/kit': ^1.0.0
dependencies:
'@sveltejs/kit': 1.27.4(svelte@4.2.7)(vite@4.4.2)
import-meta-resolve: 2.2.2
'@sveltejs/kit': 1.30.0(svelte@4.2.8)(vite@4.5.1)
import-meta-resolve: 4.0.0
dev: true
/@sveltejs/adapter-static@2.0.3(@sveltejs/kit@1.27.4):
/@sveltejs/adapter-static@2.0.3(@sveltejs/kit@1.30.0):
resolution: {integrity: sha512-VUqTfXsxYGugCpMqQv1U0LIdbR3S5nBkMMDmpjGVJyM6Q2jHVMFtdWJCkeHMySc6mZxJ+0eZK3T7IgmUCDrcUQ==}
peerDependencies:
'@sveltejs/kit': ^1.5.0
dependencies:
'@sveltejs/kit': 1.27.4(svelte@4.2.7)(vite@4.4.2)
'@sveltejs/kit': 1.30.0(svelte@4.2.8)(vite@4.5.1)
dev: true
/@sveltejs/kit@1.27.4(svelte@4.2.7)(vite@4.4.2):
resolution: {integrity: sha512-Vxl8Jf0C1+/8i/slsxFOnwJntCBDLueO/O6GJ0390KUnyW3Zs+4ZiIinD+cEcYnJPQQ9CRzVSr9Bn6DbmTn4Dw==}
/@sveltejs/kit@1.30.0(svelte@4.2.8)(vite@4.5.1):
resolution: {integrity: sha512-HK7XE8ZAL7cGreRRxCCVEpcNA3x2KM0mfJlDv7geEyCElYjJsdBoANEb00HcYlvs/2ShNAsX8lY/A60s9Xdfew==}
engines: {node: ^16.14 || >=18}
hasBin: true
requiresBuild: true
@ -385,7 +395,7 @@ packages:
svelte: ^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0
vite: ^4.0.0
dependencies:
'@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.7)(vite@4.4.2)
'@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.8)(vite@4.5.1)
'@types/cookie': 0.5.4
cookie: 0.5.0
devalue: 4.3.2
@ -396,15 +406,15 @@ packages:
sade: 1.8.1
set-cookie-parser: 2.6.0
sirv: 2.0.3
svelte: 4.2.7
svelte: 4.2.8
tiny-glob: 0.2.9
undici: 5.26.5
vite: 4.4.2(sass@1.69.5)
vite: 4.5.1(sass@1.69.5)
transitivePeerDependencies:
- supports-color
dev: true
/@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.3)(svelte@4.2.7)(vite@4.4.2):
/@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.3)(svelte@4.2.8)(vite@4.5.1):
resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==}
engines: {node: ^14.18.0 || >= 16}
peerDependencies:
@ -412,30 +422,30 @@ packages:
svelte: ^3.54.0 || ^4.0.0
vite: ^4.0.0
dependencies:
'@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.7)(vite@4.4.2)
'@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.8)(vite@4.5.1)
debug: 4.3.4
svelte: 4.2.7
vite: 4.4.2(sass@1.69.5)
svelte: 4.2.8
vite: 4.5.1(sass@1.69.5)
transitivePeerDependencies:
- supports-color
dev: true
/@sveltejs/vite-plugin-svelte@2.5.3(svelte@4.2.7)(vite@4.4.2):
/@sveltejs/vite-plugin-svelte@2.5.3(svelte@4.2.8)(vite@4.5.1):
resolution: {integrity: sha512-erhNtXxE5/6xGZz/M9eXsmI7Pxa6MS7jyTy06zN3Ck++ldrppOnOlJwHHTsMC7DHDQdgUp4NAc4cDNQ9eGdB/w==}
engines: {node: ^14.18.0 || >= 16}
peerDependencies:
svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0
vite: ^4.0.0
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.3)(svelte@4.2.7)(vite@4.4.2)
'@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.3)(svelte@4.2.8)(vite@4.5.1)
debug: 4.3.4
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.5
svelte: 4.2.7
svelte-hmr: 0.15.3(svelte@4.2.7)
vite: 4.4.2(sass@1.69.5)
vitefu: 0.2.5(vite@4.4.2)
svelte: 4.2.8
svelte-hmr: 0.15.3(svelte@4.2.8)
vite: 4.5.1(sass@1.69.5)
vitefu: 0.2.5(vite@4.5.1)
transitivePeerDependencies:
- supports-color
dev: true
@ -448,6 +458,10 @@ packages:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
dev: true
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
/acorn-jsx@5.3.2(acorn@8.11.2):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@ -605,6 +619,12 @@ packages:
source-map-js: 1.0.2
dev: true
/cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
dev: true
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@ -677,36 +697,48 @@ packages:
engines: {node: '>=10'}
dev: true
/eslint-config-prettier@9.0.0(eslint@8.28.0):
resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
/eslint-compat-utils@0.1.2(eslint@8.55.0):
resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==}
engines: {node: '>=12'}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
eslint: 8.55.0
dev: true
/eslint-config-prettier@9.1.0(eslint@8.55.0):
resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
eslint: 8.28.0
eslint: 8.55.0
dev: true
/eslint-plugin-svelte@2.30.0(eslint@8.28.0)(svelte@4.2.7):
resolution: {integrity: sha512-2/qj0BJsfM0U2j4EjGb7iC/0nbUvXx1Gn78CdtyuXpi/rSomLPCPwnsZsloXMzlt6Xwe8LBlpRvZObSKEHLP5A==}
/eslint-plugin-svelte@2.35.1(eslint@8.55.0)(svelte@4.2.8):
resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0-0
svelte: ^3.37.0 || ^4.0.0-0
svelte: ^3.37.0 || ^4.0.0
peerDependenciesMeta:
svelte:
optional: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.28.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
'@jridgewell/sourcemap-codec': 1.4.15
debug: 4.3.4
eslint: 8.28.0
eslint: 8.55.0
eslint-compat-utils: 0.1.2(eslint@8.55.0)
esutils: 2.0.3
known-css-properties: 0.27.0
known-css-properties: 0.29.0
postcss: 8.4.32
postcss-load-config: 3.1.4(postcss@8.4.32)
postcss-safe-parser: 6.0.0(postcss@8.4.32)
svelte: 4.2.7
svelte-eslint-parser: 0.30.0(svelte@4.2.7)
postcss-selector-parser: 6.0.13
semver: 7.5.4
svelte: 4.2.8
svelte-eslint-parser: 0.33.1(svelte@4.2.8)
transitivePeerDependencies:
- supports-color
- ts-node
@ -720,35 +752,24 @@ packages:
estraverse: 5.3.0
dev: true
/eslint-utils@3.0.0(eslint@8.28.0):
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
peerDependencies:
eslint: '>=5'
dependencies:
eslint: 8.28.0
eslint-visitor-keys: 2.1.0
dev: true
/eslint-visitor-keys@2.1.0:
resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
engines: {node: '>=10'}
dev: true
/eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint@8.28.0:
resolution: {integrity: sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==}
/eslint@8.55.0:
resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
'@eslint/eslintrc': 1.4.1
'@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0)
'@eslint-community/regexpp': 4.10.0
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.55.0
'@humanwhocodes/config-array': 0.11.13
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
'@ungap/structured-clone': 1.2.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
@ -756,7 +777,6 @@ packages:
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
eslint-utils: 3.0.0(eslint@8.28.0)
eslint-visitor-keys: 3.4.3
espree: 9.6.1
esquery: 1.5.0
@ -765,14 +785,12 @@ packages:
file-entry-cache: 6.0.1
find-up: 5.0.0
glob-parent: 6.0.2
globals: 13.23.0
grapheme-splitter: 1.0.4
globals: 13.24.0
graphemer: 1.4.0
ignore: 5.3.0
import-fresh: 3.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
js-sdsl: 4.4.2
js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
@ -780,9 +798,7 @@ packages:
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.3
regexpp: 3.2.0
strip-ansi: 6.0.1
strip-json-comments: 3.1.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
@ -921,8 +937,8 @@ packages:
path-is-absolute: 1.0.1
dev: true
/globals@13.23.0:
resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==}
/globals@13.24.0:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
@ -936,8 +952,8 @@ packages:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
dev: true
/grapheme-splitter@1.0.4:
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
/has-flag@4.0.0:
@ -962,8 +978,8 @@ packages:
resolve-from: 4.0.0
dev: true
/import-meta-resolve@2.2.2:
resolution: {integrity: sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==}
/import-meta-resolve@4.0.0:
resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==}
dev: true
/imurmurhash@0.1.4:
@ -1021,10 +1037,6 @@ packages:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
/js-sdsl@4.4.2:
resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==}
dev: true
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
@ -1055,8 +1067,8 @@ packages:
engines: {node: '>=6'}
dev: true
/known-css-properties@0.27.0:
resolution: {integrity: sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==}
/known-css-properties@0.29.0:
resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==}
dev: true
/levn@0.4.1:
@ -1087,6 +1099,13 @@ packages:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
dev: true
/lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
dependencies:
yallist: 4.0.0
dev: true
/magic-string@0.30.5:
resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
engines: {node: '>=12'}
@ -1230,6 +1249,23 @@ packages:
postcss: 8.4.32
dev: true
/postcss-scss@4.0.9(postcss@8.4.32):
resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.4.29
dependencies:
postcss: 8.4.32
dev: true
/postcss-selector-parser@6.0.13:
resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
engines: {node: '>=4'}
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
dev: true
/postcss@8.4.32:
resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==}
engines: {node: ^10 || ^12 || >=14}
@ -1244,18 +1280,18 @@ packages:
engines: {node: '>= 0.8.0'}
dev: true
/prettier-plugin-svelte@3.0.0(prettier@3.0.0)(svelte@4.2.7):
resolution: {integrity: sha512-l3RQcPty2UBCoRh3yb9c5XCAmxkrc4BptAnbd5acO1gmSJtChOWkiEjnOvh7hvmtT4V80S8gXCOKAq8RNeIzSw==}
/prettier-plugin-svelte@3.1.2(prettier@3.1.1)(svelte@4.2.8):
resolution: {integrity: sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==}
peerDependencies:
prettier: ^3.0.0
svelte: ^3.2.0 || ^4.0.0-next.0
svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0
dependencies:
prettier: 3.0.0
svelte: 4.2.7
prettier: 3.1.1
svelte: 4.2.8
dev: true
/prettier@3.0.0:
resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==}
/prettier@3.1.1:
resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==}
engines: {node: '>=14'}
hasBin: true
dev: true
@ -1276,11 +1312,6 @@ packages:
picomatch: 2.3.1
dev: true
/regexpp@3.2.0:
resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
engines: {node: '>=8'}
dev: true
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@ -1329,6 +1360,14 @@ packages:
source-map-js: 1.0.2
dev: true
/semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: true
/set-cookie-parser@2.6.0:
resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
dev: true
@ -1378,11 +1417,11 @@ packages:
has-flag: 4.0.0
dev: true
/svelte-eslint-parser@0.30.0(svelte@4.2.7):
resolution: {integrity: sha512-H0Cn2TKr70DU9p/Gb04CfwtS7eK28MYumrHYPaDNkIFbfwGDLADpbERBn7u8G1Rcm2RMr2/mL6mq0J2e8iKFlA==}
/svelte-eslint-parser@0.33.1(svelte@4.2.8):
resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
svelte: ^3.37.0 || ^4.0.0-0
svelte: ^3.37.0 || ^4.0.0
peerDependenciesMeta:
svelte:
optional: true
@ -1390,20 +1429,22 @@ packages:
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
svelte: 4.2.7
postcss: 8.4.32
postcss-scss: 4.0.9(postcss@8.4.32)
svelte: 4.2.8
dev: true
/svelte-hmr@0.15.3(svelte@4.2.7):
/svelte-hmr@0.15.3(svelte@4.2.8):
resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==}
engines: {node: ^12.20 || ^14.13.1 || >= 16}
peerDependencies:
svelte: ^3.19.0 || ^4.0.0
dependencies:
svelte: 4.2.7
svelte: 4.2.8
dev: true
/svelte@4.2.7:
resolution: {integrity: sha512-UExR1KS7raTdycsUrKLtStayu4hpdV3VZQgM0akX8XbXgLBlosdE/Sf3crOgyh9xIjqSYB3UEBuUlIQKRQX2hg==}
/svelte@4.2.8:
resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==}
engines: {node: '>=16'}
dependencies:
'@ampproject/remapping': 2.2.1
@ -1469,8 +1510,12 @@ packages:
punycode: 2.3.1
dev: true
/vite@4.4.2(sass@1.69.5):
resolution: {integrity: sha512-zUcsJN+UvdSyHhYa277UHhiJ3iq4hUBwHavOpsNUGsTgjBeoBlK8eDt+iT09pBq0h9/knhG/SPrZiM7cGmg7NA==}
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
/vite@4.5.1(sass@1.69.5):
resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
@ -1505,7 +1550,7 @@ packages:
fsevents: 2.3.3
dev: true
/vitefu@0.2.5(vite@4.4.2):
/vitefu@0.2.5(vite@4.5.1):
resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
peerDependencies:
vite: ^3.0.0 || ^4.0.0 || ^5.0.0
@ -1513,7 +1558,7 @@ packages:
vite:
optional: true
dependencies:
vite: 4.4.2(sass@1.69.5)
vite: 4.5.1(sass@1.69.5)
dev: true
/which@2.0.2:
@ -1528,6 +1573,10 @@ packages:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: true
/yaml@1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}

View file

@ -1,5 +1,102 @@
<script>
import Logo from "$lib/img/topscorer_logo_web.png"
$: surfers = 1;
let surfer_list = new Array();
surfer_list.push({
name: '',
color: '#000000',
score: '',
priority: ''
});
let heat = {
number: '',
name: '',
category: '',
timer: '',
surfers: surfer_list
}
function addSurfers() {
surfers++;
surfer_list.push({
name: '',
color: '#000000',
score: '',
priority: ''
});
}
function removeSurfers() {
surfers--;
if (surfers < 1) surfers = 1;
}
async function save() {
if(hasDuplicateColors(surfer_list)) {
alert('Colors must be unique');
return;
}
if(surfer_list.length < 2) {
alert('Must have at least 2 surfers');
return;
}
if(heat.name === '') {
alert('Must have a name');
return;
}
if(heat.category === '') {
alert('Must have a category');
return;
}
if(heat.number === '') {
alert('Must have a number');
return;
}
if(heat.timer === '') {
alert('Must have a timer');
return;
}
const res = await fetch(`/api/setup`, {
method: 'POST',
body: JSON.stringify(heat),
headers: {
'Content-Type': 'application/json'
}
});
console.log(`retval: ${JSON.stringify(res)}`);
console.log(JSON.stringify(heat));
}
function hasDuplicateColors(arr) {
const colors = [];
console.log(JSON.stringify(arr));
for(let i = 0; i < arr.length; i++) {
const color = arr[i].color;
if(colors.includes(color)) {
console.log(`duplicate color: ${color}`);
return true;
}
colors.push(color);
}
return false;
}
</script>
<div class="header">
@ -10,30 +107,31 @@
<div class="container">
<div class="heat">
<label class="label" for="name">Name</label>
<input id="name" type="text">
<input bind:value={heat.name} id="name" type="text">
<label class="label" for="category">Category</label>
<input id="category" type="text">
<input bind:value={heat.category} id="category" type="text">
<label class="label" for="number">Number</label>
<input bind:value={heat.number} id="number" on:keydown={(event) => {event.preventDefault()}} type="number" min="1" max="20">
<label class="label" for="timer">Timer</label>
<input bind:value={heat.timer} id="timer" on:keydown={(event) => {event.preventDefault()}} type="number" min="5" max="60" step="5">
</div>
<button class="plus" on:click={() => {addSurfers();}}>+</button>
<button class="plus" on:click={() => {removeSurfers();}}>-</button>
{#each Array(surfers) as _, surfer}
<div class="surfer">
<label class="label" for="firstname">Firstname</label>
<input id="firstname" type="text">
<label class="label" for="lastname">Lastname</label>
<input id="lastname" type="text">
<label class="label" for="color">Color</label>
<select id="color">
<option value="white" style="background-color: white;">White</option>
<option value="black" style="background-color: black;">Black</option>
<option value="red" style="background-color: red;">Red</option>
<option value="green" style="background-color: green;">Green</option>
<option value="blue" style="background-color: blue;">Blue</option>
<option value="yellow" style="background-color: yellow;">Yellow</option>
<option value="purple" style="background-color: purple;">Purple</option>
</select>
<button class="plus">+</button>
<label class="label" for="name{surfer}">Name</label>
<input bind:value={surfer_list[surfer].name} id="name{surfer}" type="text">
<label class="label" for="color{surfer}">Color</label>
<input bind:value={surfer_list[surfer].color} type="color" id="color{surfer}">
</div>
{/each}
</div>
<button class="plus" on:click={() => {save();}}>SET</button>
<style>
.container {