diff --git a/index.html b/index.html
index 99f203f..3c1bada 100644
--- a/index.html
+++ b/index.html
@@ -1,10 +1,19 @@
-
+
Tauri + Vue + Typescript App
+
+
+
+
+
diff --git a/manifest.json b/manifest.json
new file mode 100755
index 0000000..9de1eaa
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,52 @@
+{
+ "name": "Amedorf & Ritzenbergen",
+ "short_name": "ritzenbergen.de",
+ "theme_color": "#FFBF00",
+ "background_color": "#FE9A2E",
+ "display": "fullScreen",
+ "orientation": "portrait",
+ "scope": "/",
+ "start_url": "https://ritzenbergen.netlify.app/",
+ "icons": [
+ {
+ "src": "images/icons/icon-72x72.png",
+ "sizes": "72x72",
+ "type": "image/png"
+ },
+ {
+ "src": "images/icons/icon-96x96.png",
+ "sizes": "96x96",
+ "type": "image/png"
+ },
+ {
+ "src": "images/icons/icon-128x128.png",
+ "sizes": "128x128",
+ "type": "image/png"
+ },
+ {
+ "src": "images/icons/icon-144x144.png",
+ "sizes": "144x144",
+ "type": "image/png"
+ },
+ {
+ "src": "images/icons/icon-152x152.png",
+ "sizes": "152x152",
+ "type": "image/png"
+ },
+ {
+ "src": "images/icons/icon-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "images/icons/icon-384x384.png",
+ "sizes": "384x384",
+ "type": "image/png"
+ },
+ {
+ "src": "images/icons/icon-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 53ba0db..2cd7149 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,12 +10,14 @@
"dependencies": {
"@tauri-apps/api": "^2",
"@tauri-apps/plugin-opener": "^2",
+ "jquery": "^3.7.1",
"vue": "^3.5.13",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@tauri-apps/cli": "^2",
"@vitejs/plugin-vue": "^5.2.1",
+ "sass-embedded": "^1.86.3",
"typescript": "~5.6.2",
"vite": "^6.0.3",
"vue-tsc": "^2.1.10"
@@ -67,6 +69,13 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@bufbuild/protobuf": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.5.tgz",
+ "integrity": "sha512-/g5EzJifw5GF8aren8wZ/G5oMuPoGeS6MQD3ca8ddcvdXR5UELUfdTZITCGNhNXynY/AYl3Z4plmxdj/tRl/hQ==",
+ "dev": true,
+ "license": "(Apache-2.0 AND BSD-3-Clause)"
+ },
"node_modules/@esbuild/aix-ppc64": {
"version": "0.25.2",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz",
@@ -1230,6 +1239,20 @@
"balanced-match": "^1.0.0"
}
},
+ "node_modules/buffer-builder": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz",
+ "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==",
+ "dev": true,
+ "license": "MIT/X11"
+ },
+ "node_modules/colorjs.io": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz",
+ "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
@@ -1317,6 +1340,16 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
@@ -1327,6 +1360,19 @@
"he": "bin/he"
}
},
+ "node_modules/immutable": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
+ "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jquery": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
+ "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
+ "license": "MIT"
+ },
"node_modules/magic-string": {
"version": "0.30.17",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
@@ -1458,6 +1504,401 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/rxjs": {
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/sass-embedded": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.86.3.tgz",
+ "integrity": "sha512-3pZSp24ibO1hdopj+W9DuiWsZOb2YY6AFRo/jjutKLBkqJGM1nJjXzhAYfzRV+Xn5BX1eTI4bBTE09P0XNHOZg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@bufbuild/protobuf": "^2.0.0",
+ "buffer-builder": "^0.2.0",
+ "colorjs.io": "^0.5.0",
+ "immutable": "^5.0.2",
+ "rxjs": "^7.4.0",
+ "supports-color": "^8.1.1",
+ "sync-child-process": "^1.0.2",
+ "varint": "^6.0.0"
+ },
+ "bin": {
+ "sass": "dist/bin/sass.js"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "optionalDependencies": {
+ "sass-embedded-android-arm": "1.86.3",
+ "sass-embedded-android-arm64": "1.86.3",
+ "sass-embedded-android-ia32": "1.86.3",
+ "sass-embedded-android-riscv64": "1.86.3",
+ "sass-embedded-android-x64": "1.86.3",
+ "sass-embedded-darwin-arm64": "1.86.3",
+ "sass-embedded-darwin-x64": "1.86.3",
+ "sass-embedded-linux-arm": "1.86.3",
+ "sass-embedded-linux-arm64": "1.86.3",
+ "sass-embedded-linux-ia32": "1.86.3",
+ "sass-embedded-linux-musl-arm": "1.86.3",
+ "sass-embedded-linux-musl-arm64": "1.86.3",
+ "sass-embedded-linux-musl-ia32": "1.86.3",
+ "sass-embedded-linux-musl-riscv64": "1.86.3",
+ "sass-embedded-linux-musl-x64": "1.86.3",
+ "sass-embedded-linux-riscv64": "1.86.3",
+ "sass-embedded-linux-x64": "1.86.3",
+ "sass-embedded-win32-arm64": "1.86.3",
+ "sass-embedded-win32-ia32": "1.86.3",
+ "sass-embedded-win32-x64": "1.86.3"
+ }
+ },
+ "node_modules/sass-embedded-android-arm": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.86.3.tgz",
+ "integrity": "sha512-UyeXrFzZSvrGbvrWUBcspbsbivGgAgebLGJdSqJulgSyGbA6no3DWQ5Qpdd6+OAUC39BlpPu74Wx9s4RrVuaFw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-arm64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.86.3.tgz",
+ "integrity": "sha512-q+XwFp6WgAv+UgnQhsB8KQ95kppvWAB7DSoJp+8Vino8b9ND+1ai3cUUZPE5u4SnLZrgo5NtrbPvN5KLc4Pfyg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-ia32": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.86.3.tgz",
+ "integrity": "sha512-gTJjVh2cRzvGujXj5ApPk/owUTL5SiO7rDtNLrzYAzi1N5HRuLYXqk3h1IQY3+eCOBjGl7mQ9XyySbJs/3hDvg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-riscv64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.86.3.tgz",
+ "integrity": "sha512-Po3JnyiCS16kd6REo1IMUbFGYtvL9O0rmKaXx5vOuBaJD1LPy2LiSSp7TU7wkJ9IxsTDGzFaSeP1I9qb6D8VVg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-x64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.86.3.tgz",
+ "integrity": "sha512-+7h3jdDv/0kUFx0BvxYlq2fa7CcHiDPlta6k5OxO5K6jyqJwo9hc0Z052BoYEauWTqZ+vK6bB5rv2BIzq4U9nA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-darwin-arm64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.86.3.tgz",
+ "integrity": "sha512-EgLwV4ORm5Hr0DmIXo0Xw/vlzwLnfAiqD2jDXIglkBsc5czJmo4/IBdGXOP65TRnsgJEqvbU3aQhuawX5++x9A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-darwin-x64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.86.3.tgz",
+ "integrity": "sha512-dfKhfrGPRNLWLC82vy/vQGmNKmAiKWpdFuWiePRtg/E95pqw+sCu6080Y6oQLfFu37Iq3MpnXiSpDuSo7UnPWA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-arm": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.86.3.tgz",
+ "integrity": "sha512-+fVCIH+OR0SMHn2NEhb/VfbpHuUxcPtqMS34OCV3Ka99LYZUJZqth4M3lT/ppGl52mwIVLNYzR4iLe6mdZ6mYA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-arm64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.86.3.tgz",
+ "integrity": "sha512-tYq5rywR53Qtc+0KI6pPipOvW7a47ETY69VxfqI9BR2RKw2hBbaz0bIw6OaOgEBv2/XNwcWb7a4sr7TqgkqKAA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-ia32": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.86.3.tgz",
+ "integrity": "sha512-CmQ5OkqnaeLdaF+bMqlYGooBuenqm3LvEN9H8BLhjkpWiFW8hnYMetiqMcJjhrXLvDw601KGqA5sr/Rsg5s45g==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-arm": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.86.3.tgz",
+ "integrity": "sha512-SEm65SQknI4pl+mH5Xf231hOkHJyrlgh5nj4qDbiBG6gFeutaNkNIeRgKEg3cflXchCr8iV/q/SyPgjhhzQb7w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-arm64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.86.3.tgz",
+ "integrity": "sha512-4zOr2C/eW89rxb4ozTfn7lBzyyM5ZigA1ZSRTcAR26Qbg/t2UksLdGnVX9/yxga0d6aOi0IvO/7iM2DPPRRotg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-ia32": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.86.3.tgz",
+ "integrity": "sha512-84Tcld32LB1loiqUvczWyVBQRCChm0wNLlkT59qF29nxh8njFIVf9yaPgXcSyyjpPoD9Tu0wnq3dvVzoMCh9AQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-riscv64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.86.3.tgz",
+ "integrity": "sha512-IxEqoiD7vdNpiOwccybbV93NljBy64wSTkUOknGy21SyV43C8uqESOwTwW9ywa3KufImKm8L3uQAW/B0KhJMWg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-x64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.86.3.tgz",
+ "integrity": "sha512-ePeTPXUxPK6JgHcUfnrkIyDtyt+zlAvF22mVZv6y1g/PZFm1lSfX+Za7TYHg9KaYqaaXDiw6zICX4i44HhR8rA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-riscv64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.86.3.tgz",
+ "integrity": "sha512-NuXQ72dwfNLe35E+RaXJ4Noq4EkFwM65eWwCwxEWyJO9qxOx1EXiCAJii6x8kkOh5daWuMU0VAI1B9RsJaqqQQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-x64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.86.3.tgz",
+ "integrity": "sha512-t8be9zJ5B82+og9bQmIQ83yMGYZMTMrlGA+uGWtYacmwg6w3093dk91Fx0YzNSZBp3Tk60qVYjCZnEIwy60x0g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-win32-arm64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.86.3.tgz",
+ "integrity": "sha512-4ghuAzjX4q8Nksm0aifRz8hgXMMxS0SuymrFfkfJlrSx68pIgvAge6AOw0edoZoe0Tf5ZbsWUWamhkNyNxkTvw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-win32-ia32": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.86.3.tgz",
+ "integrity": "sha512-tCaK4zIRq9mLRPxLzBAdYlfCuS/xLNpmjunYxeWkIwlJo+k53h1udyXH/FInnQ2GgEz0xMXyvH3buuPgzwWYsw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-win32-x64": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.86.3.tgz",
+ "integrity": "sha512-zS+YNKfTF4SnOfpC77VTb0qNZyTXrxnAezSoRV0xnw6HlY+1WawMSSB6PbWtmbvyfXNgpmJUttoTtsvJjRCucg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -1467,6 +1908,52 @@
"node": ">=0.10.0"
}
},
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/sync-child-process": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz",
+ "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sync-message-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/sync-message-port": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz",
+ "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD"
+ },
"node_modules/typescript": {
"version": "5.6.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
@@ -1481,6 +1968,13 @@
"node": ">=14.17"
}
},
+ "node_modules/varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/vite": {
"version": "6.2.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz",
diff --git a/package.json b/package.json
index 67350f8..5074f02 100644
--- a/package.json
+++ b/package.json
@@ -12,12 +12,14 @@
"dependencies": {
"@tauri-apps/api": "^2",
"@tauri-apps/plugin-opener": "^2",
+ "jquery": "^3.7.1",
"vue": "^3.5.13",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@tauri-apps/cli": "^2",
"@vitejs/plugin-vue": "^5.2.1",
+ "sass-embedded": "^1.86.3",
"typescript": "~5.6.2",
"vite": "^6.0.3",
"vue-tsc": "^2.1.10"
diff --git a/scroll-gallery.js b/scroll-gallery.js
new file mode 100755
index 0000000..4050128
--- /dev/null
+++ b/scroll-gallery.js
@@ -0,0 +1,22 @@
+localStorage.setItem("scroll-gallery","[]");
+document.querySelectorAll(".embla__viewport").forEach((el)=>{
+ el.addEventListener("touchstart",listener(el));
+ el.parentElement.querySelector(".embla__button--prev").addEventListener("click", listener(el));
+ el.parentElement.querySelector(".embla__button--next").addEventListener("click", listener(el));
+});
+
+function listener(el){
+ return ()=>{var ids=JSON.parse(localStorage.getItem("scroll-gallery"));
+ var mbr=el;
+ do{
+ mbr=mbr.parentElement;
+ }while(!mbr.classList.contains("mbr-embla"));
+ ids.push(mbr.id);
+ localStorage.setItem("scroll-gallery",JSON.stringify(ids));
+ setTimeout(() => {
+ var ids=JSON.parse(localStorage.getItem("scroll-gallery"));
+ var i=ids.indexOf(mbr.id);
+ ids.splice(i,1);
+ localStorage.setItem("scroll-gallery",JSON.stringify(ids));
+ }, 4000);}
+}
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
index 544c03d..ca08faa 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,10 +1,34 @@
-
+
+
+
+
-
\ No newline at end of file
diff --git a/src/Main.vue b/src/Main.vue
new file mode 100644
index 0000000..fb6ce1a
--- /dev/null
+++ b/src/Main.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Navbar.vue b/src/Navbar.vue
new file mode 100644
index 0000000..24ea75c
--- /dev/null
+++ b/src/Navbar.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
diff --git a/src/assets/RitzenbergenOrtsschild.png b/src/assets/RitzenbergenOrtsschild.png
new file mode 100755
index 0000000..02cc324
Binary files /dev/null and b/src/assets/RitzenbergenOrtsschild.png differ
diff --git a/src/assets/bulitipp.js b/src/assets/bulitipp.js
new file mode 100755
index 0000000..66bf839
--- /dev/null
+++ b/src/assets/bulitipp.js
@@ -0,0 +1,89 @@
+function ts(user, callback, spieltag) {
+ $.ajax("punkteRechnen.php", {
+ method: "GET",
+ success: callback,
+ data: { name: user, spieltag: spieltag },
+ async: true
+ });
+}
+$(document).ready(() => {
+ const table = document.querySelector("#rangliste-sektion table");
+ var rows = table.querySelectorAll("tr");
+
+ rows.forEach((row, i, array) => {
+ if (i == 0) return;
+ var user = row
+ .querySelectorAll("td")[1]
+ .querySelector(".openBtn").innerHTML;
+ var callback = (response) => {
+ row.querySelectorAll("td")[2].innerHTML = response;
+ document.getElementById("uebersicht-user-" + user).querySelector(".openBtn").innerHTML = response;
+
+ sortTable();
+ table.querySelectorAll("tr").forEach((row, i, array) => {
+ if (i == 0) return;
+ row.querySelectorAll("td")[0].innerHTML = i;
+ });
+ };
+ ts(user, callback);
+ });
+
+ function sortTable() {
+ var switching, i, x, y, shouldSwitch;
+ switching = true;
+ /*Make a loop that will continue until
+ no switching has been done:*/
+ while (switching) {
+ //start by saying: no switching is done:
+ switching = false;
+ rows = table.rows;
+ /*Loop through all table rows (except the
+ first, which contains table headers):*/
+ for (i = 1; i < rows.length - 1; i++) {
+ //start by saying there should be no switching:
+ shouldSwitch = false;
+ /*Get the two elements you want to compare,
+ one from current row and one from the next:*/
+ x = rows[i].getElementsByTagName("TD")[2];
+ y = rows[i + 1].getElementsByTagName("TD")[2];
+ //check if the two rows should switch place:
+ if (parseInt(x.innerHTML) < parseInt(y.innerHTML)) {
+ //if so, mark as a switch and break the loop:
+ shouldSwitch = true;
+ break;
+ }
+ }
+ if (shouldSwitch) {
+ /*If a switch has been marked, make the switch
+ and mark that a switch has been done:*/
+ rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
+ switching = true;
+ }
+ }
+ }
+});
+
+document.querySelector("#load-table-btn").addEventListener("click",(ev) => {
+ ev.target.parentElement.style.display="none";
+ document.querySelector(".buli-table").classList.add("scroll-x");
+ const table = document.querySelector("#buli-table table");
+ let tds=[];
+ var rows = table.querySelectorAll("tr");
+ rows.forEach((row, i, array) => {
+ if (i == 0) return;
+ var spieltag = row.querySelectorAll("td")[0].innerHTML;
+ if (spieltag == "Summe") spieltag = undefined;
+ row.querySelectorAll("td").forEach((td, j, array) => {
+ if (j == 0) return;
+ var user = rows[0].querySelectorAll("td")[j].innerHTML;
+ tds.push({"td":td,"user":user,"spieltag":spieltag});
+ });
+ });
+ let callback=(tds,i,limit)=>{
+ ts(tds[i].user,(response)=>{
+ tds[i].td.innerHTML=response;
+ if(i {
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
+ const hashHex = hashArray
+ .map((bytes) => bytes.toString(16).padStart(2, "0"))
+ .join("");
+ return hashHex;
+ });
+}
+
+document.querySelector("#loginform").addEventListener("submit",(ev)=>{
+ hash(ev.target.querySelector("#password-input").value).then((hashed)=>{
+ ev.target.querySelector("#password-input").value=hashed;
+ ev.target.submit();
+ ev.target.parentElement.style.display="none";
+ document.getElementById(ev.target.dataset.id).parentElement.style.display="block";
+ });
+});
+
+document.querySelector("#logoutButton").addEventListener("click",(ev)=>{
+ document.querySelectorAll("#loginform input.clear").forEach((el)=>{
+ el.value="";
+ });
+ document.querySelector("#loginform").parentElement.style.display="block";
+ ev.target.parentElement.querySelector("#tippenIframeContainer").style.display="none";
+});
\ No newline at end of file
diff --git a/src/assets/lazyloading.css b/src/assets/lazyloading.css
new file mode 100755
index 0000000..7cedad6
--- /dev/null
+++ b/src/assets/lazyloading.css
@@ -0,0 +1 @@
+img{-webkit-transform:scale(1);transform:scale(1);opacity:1}img.lazy-loading{opacity:0;-webkit-transform:scale(0);transform:scale(0)}
diff --git a/src/assets/lazyloading.js b/src/assets/lazyloading.js
new file mode 100755
index 0000000..bcbeb3a
--- /dev/null
+++ b/src/assets/lazyloading.js
@@ -0,0 +1,16 @@
+const lazyClass = 'lazy-loading';
+const lazyImages = document.querySelectorAll(`.${lazyClass}`);
+
+const lazyObserver = new IntersectionObserver((elements) => {
+ elements.forEach((element) => {
+ if (element.isIntersecting) {
+ const image = element.target;
+ image.src=image.dataset.src;
+ lazyObserver.unobserve(image);
+ }
+ })
+})
+
+lazyImages.forEach(image => {
+ lazyObserver.observe(image);
+})
diff --git a/src/assets/main.js b/src/assets/main.js
new file mode 100755
index 0000000..5a839ef
--- /dev/null
+++ b/src/assets/main.js
@@ -0,0 +1,47 @@
+const modalOpenBtnClass="modal-open-btn";
+const modalClass="eventmodal";
+const modalCloseBtnClass="modal-close-btn";
+
+
+function openmodal(ev){
+ var target=ev.currentTarget;
+ var id=target.dataset.id;
+ document.querySelector(`.${modalClass}${id}`).style.display="block";
+}
+
+function closemodal(ev){
+ ev.currentTarget.parentElement.parentElement.style.display="none";
+}
+
+var modalOpenBtns=document.querySelectorAll(`.${modalOpenBtnClass}`);
+modalOpenBtns.forEach((element)=>{
+ element.addEventListener("click",openmodal);
+});
+var modalCloseBtns=document.querySelectorAll(`.${modalCloseBtnClass}`);
+modalCloseBtns.forEach((element)=>{
+ element.addEventListener("click",closemodal);
+});
+document.querySelectorAll(".js-link").forEach((element)=>{
+ element.addEventListener("click",(ev)=>{
+ window.location.href=ev.currentTarget.dataset.href;
+ })
+});
+document.querySelectorAll(".formular-submit-button").forEach((btn)=>{
+ btn.addEventListener("click",(ev)=>{
+ var form=ev.currentTarget.parentElement.parentElement.parentElement;
+ var input1=form.querySelector('[name="name"]');
+ var input2=form.querySelector('[name="textarea"]');
+ var formid=form.querySelector('[name="id"]').value;
+ var text1=input1.value;
+ var text2=input2.value;
+ input1.value="";
+ input2.value="";
+ $.ajax("formularergebnisse-eintragen.php",{
+ method: "post",
+ complete: (res)=>{
+ window.location.reload();
+ },
+ data: {"id": formid, "name": text1, "textarea":text2}
+ });
+ });
+});
diff --git a/src/assets/mobirise/css/additional.scss b/src/assets/mobirise/css/additional.scss
new file mode 100644
index 0000000..ff20999
--- /dev/null
+++ b/src/assets/mobirise/css/additional.scss
@@ -0,0 +1,781 @@
+// SCSS-Variablen
+$background: #FCFCF8;
+$dominant-color: #DDE5B6;
+$primary-color: #A98467;
+$secondary-color: #6C584C;
+$success-color: #23BA74;
+$danger-color: #BC2130;
+$warning-color: #DDA600;
+$info-color: #0BB0D2;
+$background-text: #000000;
+$dominant-text: #000000;
+$primary-text: #000000;
+$secondary-text: #FFFFFF;
+$success-text: #FFFFFF;
+$danger-text: #FFFFFF;
+$warning-text: #000000;
+$info-text: #FFFFFF;
+
+.btn {
+ border-width: 2px;
+}
+img,
+.card-wrap,
+.card-wrapper,
+.video-wrapper,
+.mbr-figure iframe,
+.google-map iframe,
+.slide-content,
+.plan,
+.card,
+.item-wrapper {
+ border-radius: 2rem !important;
+}
+.video-wrapper {
+ overflow: hidden;
+}
+body {
+ font-family: var(--display1-font, 'Inter Tight');
+ background: color-mix(in srgb, $dominant-color 10%, transparent);
+}
+
+.display-1 {
+ font-family: var(--display1-font);
+ font-size: calc(var(--display1-size, 5) * 1rem);
+ line-height: 1;
+}
+.display-2 {
+ font-family: var(--display2-font);
+ font-size: calc(var(--display2-size, 4) * 1rem);
+ line-height: 1.1;
+}
+.display-4 {
+ font-family: var(--display4-font);
+ font-size: calc(var(--display4-size, 1.4) * 1rem);
+ line-height: 1.5;
+}
+.display-5 {
+ font-family: var(--display5-font);
+ font-size: calc(var(--display5-size, 2) * 1rem);
+ line-height: 1.5;
+}
+.display-7 {
+ font-family: var(--display7-font);
+ font-size: calc(var(--display7-size, 1.4) * 1rem);
+ line-height: 1.5;
+}
+
+.display-1 > .mbr-iconfont {
+ font-size: calc(var(--display1-size, 5) * 1.25rem);
+}
+.display-2 > .mbr-iconfont {
+ font-size: calc(var(--display2-size, 4) * 1.25rem);
+}
+.display-4 > .mbr-iconfont {
+ font-size: calc(var(--display4-size, 1.4) * 1.25rem);
+}
+.display-5 > .mbr-iconfont {
+ font-size: calc(var(--display5-size, 2) * 1.25rem);
+}
+.display-7 > .mbr-iconfont {
+ font-size: calc(var(--display7-size, 1.4) * 1.25rem);
+}
+/* ---- Fluid typography for mobile devices ---- */
+/* 1.4 - font scale ratio ( bootstrap == 1.42857 ) */
+/* 100vw - current viewport width */
+/* (48 - 20) 48 == 48rem == 768px, 20 == 20rem == 320px(minimal supported viewport) */
+/* 0.65 - min scale variable, may vary */
+@media (max-width: 992px) {
+ .display-1 {
+ font-size: calc(var(--display1-size, 5) * 0.8rem);
+ }
+}
+@media (max-width: 768px) {
+ .display-1 {
+ --display1-size_min: calc(var(--display1-size, 5) - (var(--display1-size, 5) - 1) * 0.65);
+ font-size: calc(var(--display1-size, 5) * 0.7rem);
+ font-size: calc(var(--display1-size_min) * 1rem + (var(--display1-size, 5) - var(--display1-size_min)) * ((100vw - 20rem) / (48 - 20)));
+ line-height: calc(1.1 * (var(--display1-size_min) * 1rem + (var(--display1-size, 5) - var(--display1-size_min)) * ((100vw - 20rem) / (48 - 20))));
+ }
+ .display-2 {
+ --display2-size_min: calc(var(--display2-size, 4) - (var(--display2-size, 4) - 1) * 0.65);
+ font-size: calc(var(--display2-size, 4) * 0.8rem);
+ font-size: calc(var(--display2-size_min) * 1rem + (var(--display2-size, 4) - var(--display2-size_min)) * ((100vw - 20rem) / (48 - 20)));
+ line-height: calc(1.3 * (var(--display2-size_min) * 1rem + (var(--display2-size, 4) - var(--display2-size_min)) * ((100vw - 20rem) / (48 - 20))));
+ }
+ .display-4 {
+ --display4-size_min: calc(var(--display4-size, 1.4) - (var(--display4-size, 1.4) - 1) * 0.65);
+ font-size: calc(var(--display4-size, 1.4) * 0.8rem);
+ font-size: calc(var(--display4-size_min) * 1rem + (var(--display4-size, 1.4) - var(--display4-size_min)) * ((100vw - 20rem) / (48 - 20)));
+ line-height: calc(1.4 * (var(--display4-size_min) * 1rem + (var(--display4-size, 1.4) - var(--display4-size_min)) * ((100vw - 20rem) / (48 - 20))));
+ }
+ .display-5 {
+ --display5-size_min: calc(var(--display5-size, 2) - (var(--display5-size, 2) - 1) * 0.65);
+ font-size: calc(var(--display5-size, 2) * 0.8rem);
+ font-size: calc(var(--display5-size_min) * 1rem + (var(--display5-size, 2) - var(--display5-size_min)) * ((100vw - 20rem) / (48 - 20)));
+ line-height: calc(1.4 * (var(--display5-size_min) * 1rem + (var(--display5-size, 2) - var(--display5-size_min)) * ((100vw - 20rem) / (48 - 20))));
+ }
+ .display-7 {
+ --display7-size_min: calc(var(--display7-size, 1.4) - (var(--display7-size, 1.4) - 1) * 0.65);
+ font-size: calc(var(--display7-size, 1.4) * 0.8rem);
+ font-size: calc(var(--display7-size_min) * 1rem + (var(--display7-size, 1.4) - var(--display7-size_min)) * ((100vw - 20rem) / (48 - 20)));
+ line-height: calc(1.4 * (var(--display7-size_min) * 1rem + (var(--display7-size, 1.4) - var(--display7-size_min)) * ((100vw - 20rem) / (48 - 20))));
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1400px) {
+ .display-1 {
+ --display1-size_min: calc(var(--display1-size, 5) - (var(--display1-size, 5) - 1) * 0.65);
+ font-size: calc(var(--display1-size, 5) * 0.7rem);
+ font-size: calc(var(--display1-size_min) * 1rem + (var(--display1-size, 5) - var(--display1-size_min)) * ((100vw - 62rem) / (87 - 62)));
+ line-height: calc( 1.1 * (var(--display1-size_min) * 1rem + (var(--display1-size, 5) - var(--display1-size_min)) * ((100vw - 62rem) / (87 - 62))));
+ }
+
+ .display-2 {
+ --display2-size_min: calc(var(--display2-size, 4) - (var(--display2-size, 4) - 1) * 0.65);
+ font-size: calc(var(--display2-size, 4) * 0.8rem);
+ font-size: calc(var(--display2-size_min) * 1rem + (var(--display2-size, 4) - var(--display2-size_min)) * ((100vw - 62rem) / (87 - 62)));
+ line-height: calc(1.3 * (var(--display2-size_min) * 1rem + (var(--display2-size, 4) - var(--display2-size_min)) * ((100vw - 62rem) / (87 - 62))));
+ }
+
+ .display-4 {
+ --display4-size_min: calc(var(--display4-size, 1.4) - (var(--display4-size, 1.4) - 1) * 0.65);
+ font-size: calc(var(--display4-size, 1.4) * 0.8rem);
+ font-size: calc(var(--display4-size_min) * 1rem + (var(--display4-size, 1.4) - var(--display4-size_min)) * ((100vw - 62rem) / (87 - 62)));
+ line-height: calc(1.4 * (var(--display4-size_min) * 1rem + (var(--display4-size, 1.4) - var(--display4-size_min)) * ((100vw - 62rem) / (87 - 62))));
+ }
+
+ .display-5 {
+ --display5-size_min: calc(var(--display5-size, 2) - (var(--display5-size, 2) - 1) * 0.65);
+ font-size: calc(var(--display5-size, 2) * 0.8rem);
+ font-size: calc(var(--display5-size_min) * 1rem + (var(--display5-size, 2) - var(--display5-size_min)) * ((100vw - 62rem) / (87 - 62)));
+ line-height: calc(1.4 * (var(--display5-size_min) * 1rem + (var(--display5-size, 2) - var(--display5-size_min)) * ((100vw - 62rem) / (87 - 62))));
+ }
+
+ .display-7 {
+ --display7-size_min: calc(var(--display7-size, 1.4) - (var(--display7-size, 1.4) - 1) * 0.65);
+ font-size: calc(var(--display7-size, 1.4) * 0.8rem);
+ font-size: calc(var(--display7-size_min) * 1rem + (var(--display7-size, 1.4) - var(--display7-size_min)) * ((100vw - 62rem) / (87 - 62)));
+ line-height: calc(1.4 * (var(--display7-size_min) * 1rem + (var(--display7-size, 1.4) - var(--display7-size_min)) * ((100vw - 62rem) / (87 - 62))));
+ }
+}
+/* Buttons */
+.btn {
+ padding: 1.25rem 2rem;
+ border-radius: 4px;
+}
+@media (max-width: 767px) {
+ .btn {
+ padding: 0.75rem 1.5rem;
+ }
+}
+.btn-sm {
+ padding: 0.6rem 1.2rem;
+ border-radius: 4px;
+}
+.btn-md {
+ padding: 0.6rem 1.2rem;
+ border-radius: 4px;
+}
+.btn-lg {
+ padding: 1.25rem 2rem;
+ border-radius: 4px;
+}
+.bg-primary {
+ background-color: $primary-color !important;
+}
+.btn-secondary {
+ background-color: $secondary-color !important;
+}
+.bg-success {
+ background-color: $success-color !important;
+}
+.bg-info {
+ background-color: $info-color !important;
+}
+.bg-warning {
+ background-color: $warning-color !important;
+}
+.bg-danger {
+ background-color: $danger-color !important;
+}
+.btn-primary,
+.btn-primary:active {
+ background-color: $primary-color !important;
+ border-color: $primary-color !important;
+ color: $primary-text !important;
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-primary:hover,
+.btn-primary:focus,
+.btn-primary.focus,
+.btn-primary.active {
+ color: inherit;
+ background-color: color-mix(in srgb,$primary-color,#000 20%) !important;
+ border-color: color-mix(in srgb,$primary-color,#000 20%) !important;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-primary.disabled,
+.btn-primary:disabled {
+ color: $primary-text !important;
+ background-color: color-mix(in srgb,$primary-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$primary-color,#000 40%) !important;
+}
+.btn-secondary,
+.btn-secondary:active {
+ background-color: $secondary-color !important;
+ border-color: $secondary-color !important;
+ color: $secondary-text !important;
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-secondary:hover,
+.btn-secondary:focus,
+.btn-secondary.focus,
+.btn-secondary.active {
+ color: inherit;
+ background-color: color-mix(in srgb,$secondary-color,#000 20%) !important;
+ border-color: color-mix(in srgb,$secondary-color,#000 20%) !important;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-secondary.disabled,
+.btn-secondary:disabled {
+ color: $secondary-text !important;
+ background-color: color-mix(in srgb,$secondary-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$secondary-color,#000 40%) !important;
+}
+.btn-info,
+.btn-info:active {
+ background-color: $info-color !important;
+ border-color: $info-color !important;
+ color: $info-text !important;
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-info:hover,
+.btn-info:focus,
+.btn-info.focus,
+.btn-info.active {
+ color: inherit;
+ background-color: color-mix(in srgb,$info-color,#000 20%) !important;
+ border-color: color-mix(in srgb,$info-color,#000 20%) !important;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-info.disabled,
+.btn-info:disabled {
+ color: $info-text !important;
+ background-color: color-mix(in srgb,$info-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$info-color,#000 40%) !important;
+}
+.btn-success,
+.btn-success:active {
+ background-color: $success-color !important;
+ border-color: $success-color !important;
+ color: $success-text !important;
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-success:hover,
+.btn-success:focus,
+.btn-success.focus,
+.btn-success.active {
+ color: inherit;
+ background-color: color-mix(in srgb,$success-color,#000 20%) !important;
+ border-color: color-mix(in srgb,$success-color,#000 20%) !important;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-success.disabled,
+.btn-success:disabled {
+ color: $success-text !important;
+ background-color: color-mix(in srgb,$success-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$success-color,#000 40%) !important;
+}
+.btn-warning,
+.btn-warning:active {
+ background-color: $warning-color !important;
+ border-color: $warning-color !important;
+ color: $warning-text !important;
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning.focus,
+.btn-warning.active {
+ color: inherit;
+ background-color: color-mix(in srgb,$warning-color,#000 20%) !important;
+ border-color: color-mix(in srgb,$warning-color,#000 20%) !important;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-warning.disabled,
+.btn-warning:disabled {
+ color: $warning-text !important;
+ background-color: color-mix(in srgb,$warning-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$warning-color,#000 40%) !important;
+}
+.btn-danger,
+.btn-danger:active {
+ background-color: $danger-color !important;
+ border-color: $danger-color !important;
+ color: $danger-text !important;
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-danger:hover,
+.btn-danger:focus,
+.btn-danger.focus,
+.btn-danger.active {
+ color: inherit;
+ background-color: color-mix(in srgb,$danger-color,#000 20%) !important;
+ border-color: color-mix(in srgb,$danger-color,#000 20%) !important;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-danger.disabled,
+.btn-danger:disabled {
+ color: $danger-text !important;
+ background-color: color-mix(in srgb,$danger-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$danger-color,#000 40%) !important;
+}
+.btn-white,
+.btn-white:active {
+ background-color: #fafafa !important;
+ border-color: #fafafa !important;
+ color: #7a7a7a !important;
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-white:hover,
+.btn-white:focus,
+.btn-white.focus,
+.btn-white.active {
+ color: #4f4f4f !important;
+ background-color: #cfcfcf !important;
+ border-color: #cfcfcf !important;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-white.disabled,
+.btn-white:disabled {
+ color: #7a7a7a !important;
+ background-color: #cfcfcf !important;
+ border-color: #cfcfcf !important;
+}
+.btn-black,
+.btn-black:active {
+ background-color: #232323 !important;
+ border-color: #232323 !important;
+ color: #ffffff !important;
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-black:hover,
+.btn-black:focus,
+.btn-black.focus,
+.btn-black.active {
+ color: #ffffff !important;
+ background-color: #000000 !important;
+ border-color: #000000 !important;
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.2);
+}
+.btn-black.disabled,
+.btn-black:disabled {
+ color: #ffffff !important;
+ background-color: #000000 !important;
+ border-color: #000000 !important;
+}
+.btn-primary-outline,
+.btn-primary-outline:active {
+ background-color: transparent !important;
+ border-color: $primary-color;
+ color: $primary-color;
+}
+.btn-primary-outline:hover,
+.btn-primary-outline:focus,
+.btn-primary-outline.focus,
+.btn-primary-outline.active {
+ color: color-mix(in srgb,$primary-color,#000 20%) !important;
+ background-color: transparent!important;
+ border-color: color-mix(in srgb,$primary-color,#000 20%) !important;
+ box-shadow: none!important;
+}
+.btn-primary-outline.disabled,
+.btn-primary-outline:disabled {
+ color: $primary-text !important;
+ background-color: color-mix(in srgb,$primary-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$primary-color,#000 40%) !important;
+}
+.btn-secondary-outline,
+.btn-secondary-outline:active {
+ background-color: transparent !important;
+ border-color: $secondary-color;
+ color: $secondary-color;
+}
+.btn-secondary-outline:hover,
+.btn-secondary-outline:focus,
+.btn-secondary-outline.focus,
+.btn-secondary-outline.active {
+ color: color-mix(in srgb,$secondary-color,#000 20%) !important;
+ background-color: transparent!important;
+ border-color: color-mix(in srgb,$secondary-color,#000 20%) !important;
+ box-shadow: none!important;
+}
+.btn-secondary-outline.disabled,
+.btn-secondary-outline:disabled {
+ color: $secondary-text !important;
+ background-color: color-mix(in srgb,$secondary-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$secondary-color,#000 40%) !important;
+}
+.btn-info-outline,
+.btn-info-outline:active {
+ background-color: transparent !important;
+ border-color: $info-color;
+ color: $info-color;
+}
+.btn-info-outline:hover,
+.btn-info-outline:focus,
+.btn-info-outline.focus,
+.btn-info-outline.active {
+ color: color-mix(in srgb,$info-color,#000 20%) !important;
+ background-color: transparent!important;
+ border-color: color-mix(in srgb,$info-color,#000 20%) !important;
+ box-shadow: none!important;
+}
+.btn-info-outline.disabled,
+.btn-info-outline:disabled {
+ color: $info-text !important;
+ background-color: color-mix(in srgb,$info-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$info-color,#000 40%) !important;
+}
+.btn-success-outline,
+.btn-success-outline:active {
+ background-color: transparent !important;
+ border-color: $success-color;
+ color: $success-color;
+}
+.btn-success-outline:hover,
+.btn-success-outline:focus,
+.btn-success-outline.focus,
+.btn-success-outline.active {
+ color: color-mix(in srgb,$success-color,#000 20%) !important;
+ background-color: transparent!important;
+ border-color: color-mix(in srgb,$success-color,#000 20%) !important;
+ box-shadow: none!important;
+}
+.btn-success-outline.disabled,
+.btn-success-outline:disabled {
+ color: $success-text !important;
+ background-color: color-mix(in srgb,$success-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$success-color,#000 40%) !important;
+}
+.btn-warning-outline,
+.btn-warning-outline:active {
+ background-color: transparent !important;
+ border-color: $warning-color;
+ color: $warning-color;
+}
+.btn-warning-outline:hover,
+.btn-warning-outline:focus,
+.btn-warning-outline.focus,
+.btn-warning-outline.active {
+ color: color-mix(in srgb,$warning-color,#000 20%) !important;
+ background-color: transparent!important;
+ border-color: color-mix(in srgb,$warning-color,#000 20%) !important;
+ box-shadow: none!important;
+}
+.btn-warning-outline.disabled,
+.btn-warning-outline:disabled {
+ color: $warning-text !important;
+ background-color: color-mix(in srgb,$warning-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$warning-color,#000 40%) !important;
+}
+.btn-danger-outline,
+.btn-danger-outline:active {
+ background-color: transparent !important;
+ border-color: $danger-color;
+ color: $danger-color;
+}
+.btn-danger-outline:hover,
+.btn-danger-outline:focus,
+.btn-danger-outline.focus,
+.btn-danger-outline.active {
+ color: color-mix(in srgb,$danger-color,#000 20%) !important;
+ background-color: transparent!important;
+ border-color: color-mix(in srgb,$danger-color,#000 20%) !important;
+ box-shadow: none!important;
+}
+.btn-danger-outline.disabled,
+.btn-danger-outline:disabled {
+ color: $danger-text !important;
+ background-color: color-mix(in srgb,$danger-color,#000 40%) !important;
+ border-color: color-mix(in srgb,$danger-color,#000 40%) !important;
+}
+.btn-black-outline,
+.btn-black-outline:active {
+ background-color: transparent !important;
+ border-color: #232323;
+ color: #232323;
+}
+.btn-black-outline:hover,
+.btn-black-outline:focus,
+.btn-black-outline.focus,
+.btn-black-outline.active {
+ color: #000000 !important;
+ background-color: transparent!important;
+ border-color: #000000 !important;
+ box-shadow: none!important;
+}
+.btn-black-outline.disabled,
+.btn-black-outline:disabled {
+ color: #ffffff !important;
+ background-color: #232323 !important;
+ border-color: #232323 !important;
+}
+.btn-white-outline,
+.btn-white-outline:active {
+ background-color: transparent !important;
+ border-color: #fafafa;
+ color: #fafafa;
+}
+.btn-white-outline:hover,
+.btn-white-outline:focus,
+.btn-white-outline.focus,
+.btn-white-outline.active {
+ color: #cfcfcf !important;
+ background-color: transparent!important;
+ border-color: #cfcfcf !important;
+ box-shadow: none!important;
+}
+.btn-white-outline.disabled,
+.btn-white-outline:disabled {
+ color: #7a7a7a !important;
+ background-color: #fafafa !important;
+ border-color: #fafafa !important;
+}
+.text-primary {
+ color: $primary-text !important;
+}
+.text-secondary {
+ color: $secondary-text !important;
+}
+.text-success {
+ color: $success-text !important;
+}
+.text-info {
+ color: $info-text !important;
+}
+.text-warning {
+ color: $warning-text !important;
+}
+.text-danger {
+ color: $danger-text !important;
+}
+.text-white {
+ color: #fafafa !important;
+}
+.text-black {
+ color: #232323 !important;
+}
+a.text-primary:hover,
+a.text-primary:focus,
+a.text-primary.active {
+ color: color-mix(in srgb,$primary-color,#000 20%);
+}
+a.text-secondary:hover,
+a.text-secondary:focus,
+a.text-secondary.active {
+ color: color-mix(in srgb,$secondary-color,#000 20%);
+}
+a.text-success:hover,
+a.text-success:focus,
+a.text-success.active {
+ color: color-mix(in srgb,$success-color,#000 20%);
+}
+a.text-info:hover,
+a.text-info:focus,
+a.text-info.active {
+ color: color-mix(in srgb,$info-color,#000 20%);
+}
+a.text-warning:hover,
+a.text-warning:focus,
+a.text-warning.active {
+ color: color-mix(in srgb,$warning-color,#000 20%);
+}
+a.text-danger:hover,
+a.text-danger:focus,
+a.text-danger.active {
+ color: color-mix(in srgb,$danger-color,#000 20%);
+}
+a.text-white:hover,
+a.text-white:focus,
+a.text-white.active {
+ color: color-mix(in srgb,#fafafa,#000 20%);
+}
+a.text-black:hover,
+a.text-black:focus,
+a.text-black.active {
+ color: color-mix(in srgb,#232323,#000 20%);
+}
+body[data-underlined-links="true"] a[class*="text-"]:not(.nav-link):not(.dropdown-item):not([role]):not(.navbar-caption){
+ transition: 0.2s;
+ position: relative;
+ background-image: linear-gradient(currentColor 50%, currentColor 50%);
+ background-size: 10000px 2px;
+ background-repeat: no-repeat;
+ background-position: 0 1.2em;
+}
+body[data-underlined-links="false"] a[class*="text-"]:not(.nav-link):not(.dropdown-item):not([role]):not(.navbar-caption){
+ position: relative;
+ background-image: transparent;
+ background-size: 10000px 2px;
+ background-repeat: no-repeat;
+ background-position: 0px 1.2em;
+ background-position: -10000px 1.2em;
+}
+body[data-underlined-links="false"] a[class*="text-"]:not(.nav-link):not(.dropdown-item):not([role]):not(.navbar-caption):hover{
+ transition: background-position 2s ease-in-out;
+ background-image: linear-gradient(currentColor 50%, currentColor 50%);
+ background-position: 0px 1.2em;
+}
+body[data-is-rounded-buttons="true"] .nav-tabs .nav-link {
+ border-radius: 100px !important;
+}
+.nav-tabs .nav-link.active {
+ color: $primary-color;
+}
+.nav-tabs .nav-link:not(.active) {
+ color: #232323;
+}
+.alert-success {
+ background-color: $success-color;
+}
+.alert-info {
+ background-color: $info-color;
+}
+.alert-warning {
+ background-color: $warning-color;
+}
+.alert-danger {
+ background-color: $danger-color;
+}
+
+.mbr-section-btn .btn:not(.btn-form) {
+ border-radius: 100px;
+}
+.mbr-gallery-filter li a {
+ border-radius: 100px !important;
+}
+
+.mbr-gallery-filter li.active .btn {
+ background-color: $primary-color;
+ border-color: $primary-color;
+ color: #ffffff;
+}
+.mbr-gallery-filter li.active .btn:focus {
+ box-shadow: none;
+}
+
+a,
+a:hover {
+ color: $primary-color;
+}
+
+:root[data-is-scroll-to-top-buttons="true"][data-is-rounded-buttons="true"] #scrollToTop a{
+ border-radius: 100px;
+}
+:root[data-is-scroll-to-top-buttons="false"] .scrollToTop_wraper{
+ display: none;
+}
+
+.form-control {
+ font-family: var(--display1-font);
+ font-size: 1.4rem;
+ line-height: 1.3;
+ font-weight: 400;
+ border-radius: 40px !important;
+}
+.form-control > .mbr-iconfont {
+ font-size: 1.375rem;
+}
+.form-control:hover,
+.form-control:focus {
+ box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px 0px, rgba(0, 0, 0, 0.07) 0px 1px 3px 0px, rgba(0, 0, 0, 0.03) 0px 0px 0px 1px;
+ border-color: $primary-color !important;
+}
+.form-control:-webkit-input-placeholder {
+ font-family: var(--display1-font);
+ font-size: 1.1rem;
+ line-height: 1.5;
+ font-weight: 400;
+}
+.form-control:-webkit-input-placeholder > .mbr-iconfont {
+ font-size: 1.375rem;
+}
+blockquote {
+ border-color: $primary-color;
+}
+/* Forms */
+.jq-selectbox li:hover,
+.jq-selectbox li.selected {
+ background-color: $primary-color;
+ color: #ffffff;
+}
+.jq-number__spin {
+ transition: 0.25s ease;
+}
+.jq-number__spin:hover {
+ border-color: $primary-color;
+}
+.jq-selectbox .jq-selectbox__trigger-arrow,
+.jq-number__spin.minus:after,
+.jq-number__spin.plus:after {
+ transition: 0.4s;
+ border-top-color: #353535;
+ border-bottom-color: #353535;
+}
+.jq-selectbox:hover .jq-selectbox__trigger-arrow,
+.jq-number__spin.minus:hover:after,
+.jq-number__spin.plus:hover:after {
+ border-top-color: $primary-color;
+ border-bottom-color: $primary-color;
+}
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,
+.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box > div > div.xdsoft_current {
+ color: #ffffff !important;
+ background-color: $primary-color !important;
+ box-shadow: none !important;
+}
+.xdsoft_datetimepicker .xdsoft_calendar td:hover,
+.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box > div > div:hover {
+ color: #000000 !important;
+ background: $secondary-color !important;
+ box-shadow: none !important;
+}
+.lazy-bg {
+ background-image: none !important;
+}
+.lazy-placeholder:not(section),
+.lazy-none {
+ display: block;
+ position: relative;
+ padding-bottom: 56.25%;
+ width: 100%;
+ height: auto;
+}
+iframe.lazy-placeholder,
+.lazy-placeholder:after {
+ content: '';
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ background: transparent no-repeat center;
+ background-size: contain;
+ top: 50%;
+ left: 50%;
+ transform: translateX(-50%) translateY(-50%);
+ background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='32' height='32' viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' stroke='%236592e6' %3e%3cg fill='none' fill-rule='evenodd'%3e%3cg transform='translate(16 16)' stroke-width='2'%3e%3ccircle stroke-opacity='.5' cx='16' cy='16' r='16'/%3e%3cpath d='M32 16c0-9.94-8.06-16-16-16'%3e%3canimateTransform attributeName='transform' type='rotate' from='0 16 16' to='360 16 16' dur='1s' repeatCount='indefinite'/%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/svg%3e");
+}
+section.lazy-placeholder:after {
+ opacity: 0.5;
+}
+body, html {
+ overflow-x: hidden;
+}
+a {
+ transition: color 0.6s;
+}
+.mbr-fullscreen{
+ overflow: hidden;
+}
\ No newline at end of file
diff --git a/src/assets/modal.css b/src/assets/modal.css
new file mode 100755
index 0000000..896a395
--- /dev/null
+++ b/src/assets/modal.css
@@ -0,0 +1,98 @@
+.modal {
+ margin: auto;
+ justify-content: center;
+ text-align: center;
+ position: fixed;
+ top: 0;
+ /* Positioniert das Modal oben im Viewport */
+ left: 0;
+ /* Positioniert das Modal links im Viewport */
+ right: 0;
+ /* Erweitert das Modal auf die gesamte Breite */
+ bottom: 0;
+ /* Erweitert das Modal auf die gesamte Höhe */
+
+ /* Bringt das Modal in den Vordergrund */
+
+ font-size: medium;
+ overflow: hidden;
+ width: 100%;
+ height: 100%;
+ align-items: center;
+ z-index: 1000;
+ display: none;
+ background-color: rgba(255,255,255,0.5);
+
+ }
+
+ .openBtn{
+ cursor: pointer;
+ }
+ .modal-content {
+ background-color: #ffffff;
+ /* Hintergrundfarbe des Inhalts */
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
+ /* Schatten */
+ border: none;
+ /* Entferne den Rahmen */
+ /* margin: 15% auto; */
+
+ height: 100%;
+ padding: 20px;
+ border-radius: 10px;
+ width: 100%;
+ height: 70%;
+ overflow-y: scroll;
+ margin-top: 5%;
+ max-width: 800px;
+ }
+
+ .close, .closeBtn {
+ color: #4CAF50;
+ font-size: 28px;
+ font-weight: bold;
+ text-align: left;
+ width: 30px;
+ padding-left: 5px;
+ }
+
+ .close:hover,
+ .close:focus, .closeBtn:hover, .closeBtn:focus {
+ color: red;
+ cursor: pointer;
+ }
+
+
+ /* @media (max-width: 768px) {
+
+ .modal {
+ max-width: 100vw;
+ }
+
+ .modal-content {
+ max-width: 100vw;
+ }
+ } */
+
+
+
+
+ #tippenIframeContainer{
+ height: 50vh;
+ display: none;
+
+ }
+
+ iframe{
+ height: 100%;
+ }
+
+
+
+ .modalNichtScrollbar {
+ overflow-y: hidden;
+ }
+
+ .modal-content {
+ z-index: 1500;
+ }
\ No newline at end of file
diff --git a/src/assets/modal.js b/src/assets/modal.js
new file mode 100755
index 0000000..483af9a
--- /dev/null
+++ b/src/assets/modal.js
@@ -0,0 +1,37 @@
+document.querySelectorAll(".modal-container").forEach((element)=>{
+ if(element.querySelector(".openBtn")==null){
+ document.getElementById(element.dataset.id).addEventListener("click",(ev)=>{
+ var btn=ev.target;
+ var modal=document.getElementById(btn.dataset.id);
+ var content=modal.querySelector(".modal");
+ content.style.display="flex";
+ });
+ }else{
+ element.querySelector(".openBtn").addEventListener("click",(ev)=>{
+ var btn=ev.target
+ var modal=btn;
+ do{
+ modal=modal.parentElement;
+ }while(!modal.classList.contains("modal-container"));
+ var content=modal.querySelector(".modal");
+ content.style.display="flex";
+ });
+}
+ element.querySelector(".closeBtn").addEventListener("click",(ev)=>{
+ var btn=ev.target;
+ var modal=btn.parentElement.parentElement.parentElement;
+ var content=modal.querySelector(".modal");
+ content.style.display="none";
+ });
+});
+
+document.querySelector("#eventmodals").querySelectorAll(".closelink").forEach((el)=> {
+ el.addEventListener("click",(ev)=>{
+ let div=ev.target;
+ while(!div.classList.contains("modal-content")){
+ div=div.parentElement;
+ }
+ console.log(div.querySelector(".close"));
+ div.querySelector(".close").click();
+ });
+});
\ No newline at end of file
diff --git a/src/assets/theme/css/style.css b/src/assets/theme/css/style.css
index 2aa1223..3def8b3 100755
--- a/src/assets/theme/css/style.css
+++ b/src/assets/theme/css/style.css
@@ -1,4 +1,5 @@
@charset "UTF-8";
+
section {
background-color: #ffffff;
}
diff --git a/src/main.ts b/src/main.ts
index b670de8..3f0fb84 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,4 +1,7 @@
import { createApp } from "vue";
import App from "./App.vue";
+import router from "./router";
-createApp(App).mount("#app");
+createApp(App)
+.use(router)
+.mount("#app");
diff --git a/src/router/index.js b/src/router/index.js
new file mode 100644
index 0000000..f112835
--- /dev/null
+++ b/src/router/index.js
@@ -0,0 +1,11 @@
+import { createMemoryHistory, createRouter } from 'vue-router'
+
+
+const routes = [
+ { path: '/', component: () => import('../Main.vue') }
+]
+
+export default createRouter({
+ history: createMemoryHistory(),
+ routes,
+});
\ No newline at end of file
diff --git a/tippen.js b/tippen.js
new file mode 100755
index 0000000..0956d51
--- /dev/null
+++ b/tippen.js
@@ -0,0 +1,24 @@
+function tippen(json){
+ $.ajax("tippeintragen.php",{
+ method: "get",
+ data: {user: username, pass: password, spieltag: spieltag, tipp: json},
+ complete: (response)=>{
+ if(response.responseText!="") window.alert(response.responseText);
+ window.location.href=returnurl;
+ }
+ });
+}
+
+
+document.querySelector("#mainform").addEventListener("submit",(ev)=>{
+ var json=[];
+ var heim="";
+ var mannschaft1=1;
+ document.querySelectorAll("span.paarung").forEach((element)=>{
+ paarungTipp={};
+ paarungTipp[element.querySelectorAll(".team-name")[0].innerHTML]=element.querySelectorAll("input")[0].value;
+ paarungTipp[element.querySelectorAll(".team-name")[1].innerHTML]=element.querySelectorAll("input")[1].value;
+ json.push(paarungTipp);
+ });
+ tippen(json);
+});