wm-fontis-tibi-2023/frontend/src/App.svelte

183 lines
4.7 KiB
Svelte
Raw Normal View History

2023-07-13 13:12:19 +02:00
<script lang="ts">
2023-07-13 22:45:49 +02:00
import Footer from "./lib/components/Footer.svelte"
2023-07-13 18:43:19 +02:00
import Header from "./lib/components/Menu/Header.svelte"
import Menu from "./lib/components/Menu/Menu.svelte"
2023-07-14 13:58:27 +02:00
import NotFound from "./lib/components/NotFound.svelte"
import Rows from "./lib/components/Pagebuilder/Rows.svelte"
2023-07-15 18:15:17 +02:00
import { location, navigation, pages, serviceNavigation, rerender } from "./lib/store"
2023-07-14 13:58:27 +02:00
import { Route, Router } from "svelte-routing"
import { loadPages } from "./lib/functions/getPages"
import { loadNavigation } from "./lib/functions/loadNavigation"
2023-07-13 13:12:19 +02:00
export let url = ""
if (url) {
let l = url.split("?")
$location = {
path: l[0],
search: l.length > 1 ? l[1] : "",
hash: "",
categoryPath: l[0].replace(/\/[^_\/]+_[^\/]+$/, ""),
push: false,
pop: false,
}
}
2023-07-14 13:58:27 +02:00
async function getPages() {
let pagesArray = await loadPages()
let pagesRes: Pages = {}
pagesArray.forEach((e) => {
pagesRes[e.path] = e
})
$pages = pagesRes
console.log(pagesRes)
}
async function getNavigation() {
let nav: Navigation[] = await loadNavigation()
console.log(nav)
$navigation = nav[0]
$serviceNavigation = nav[1]
}
getNavigation()
getPages()
let activeMenu = false
2023-07-14 21:32:33 +02:00
$: {
if (activeMenu) {
document.body.classList.add("overflow")
} else {
document.body.classList.remove("overflow")
}
}
2023-07-13 13:12:19 +02:00
</script>
2023-07-13 18:43:19 +02:00
<main class="">
<Header bind:active="{activeMenu}" />
2023-07-15 18:15:17 +02:00
2023-07-14 13:58:27 +02:00
<div class="content-container" id="siteContainer" data-url="{url}">
<Router url="{url}">
<Route path="/">
<Rows path="/" homepage="{true}" />
</Route>
<Route path="/*path" let:params>
2023-07-15 18:15:17 +02:00
{#key $rerender}
<Rows path="/{params?.path}" homepage="{false}" />
{/key}
2023-07-14 13:58:27 +02:00
</Route>
<Route>
<NotFound />
</Route>
</Router>
</div>
2023-07-13 22:45:49 +02:00
<Footer />
2023-07-13 18:43:19 +02:00
</main>
2023-07-13 16:28:54 +02:00
2023-07-13 22:45:49 +02:00
<Menu bind:active="{activeMenu}" />
2023-07-13 18:43:19 +02:00
<style lang="less" global>
@import "./lib/assets/css/main.less";
@import "./lib/assets/css/base.less";
2023-07-14 21:32:33 +02:00
@import "swiper/swiper.less";
@import "swiper/modules/effect-fade/effect-fade.less";
@import "swiper/modules/navigation/navigation.less";
@import "swiper/modules/pagination/pagination.less";
.swiper-button-prev,
.swiper-button-next {
color: @font-color;
height: 70px;
width: 70px;
bottom: 0px !important;
top: initial !important;
transform: scale(0.5);
transform-origin: bottom !important;
}
2023-07-15 18:15:17 +02:00
2023-07-14 21:32:33 +02:00
.swiper-button-prev {
right: 18%;
left: initial !important;
}
2023-07-15 18:15:17 +02:00
2023-07-14 21:32:33 +02:00
.swiper-button-next {
right: 3%;
transform-origin: right;
}
2023-07-15 18:15:17 +02:00
2023-07-14 21:32:33 +02:00
@media @tablet {
.swiper-button-prev,
.swiper-button-next {
bottom: initial !important;
top: 100px !important;
transform: scale(0.8);
transform-origin: center !important;
}
.swiper-button-prev {
left: 0% !important;
right: initial !important;
left: initial !important;
}
.swiper-button-next {
right: 0% !important;
transform-origin: right;
}
}
@media @desktop {
.swiper-button-prev,
.swiper-button-next {
top: 110px !important;
transform: scale(1);
}
}
h1,
h2 {
font-family: "Libre Caslon Text", serif;
}
.overflow {
overflow: hidden !important;
}
2023-07-13 18:43:19 +02:00
main {
2023-07-13 22:45:49 +02:00
min-height: 100vh;
2023-07-14 21:32:33 +02:00
background-color: @bg-color;
2023-07-13 22:45:49 +02:00
display: flex;
flex-direction: column;
justify-content: space-between;
2023-07-13 18:43:19 +02:00
height: 100%;
width: 100%;
2023-07-15 18:15:17 +02:00
.content-container {
flex: 1;
}
}
html,
body {
2023-07-13 18:43:19 +02:00
@media @mobile {
font-size: @bodyfontsize;
2023-07-14 21:32:33 +02:00
line-height: 1.4;
2023-07-13 18:43:19 +02:00
}
@media @tablet {
font-size: @bodyfontsize_desktop;
2023-07-14 21:32:33 +02:00
line-height: 1.6;
2023-07-13 18:43:19 +02:00
}
}
2023-07-13 16:28:54 +02:00
@font-face {
font-display: swap;
font-family: "Libre Franklin";
font-style: normal;
font-weight: 400;
src: url("./lib/assets/fonts/libre-franklin-v13-latin-regular.woff2") format("woff2");
}
2023-07-14 21:32:33 +02:00
@font-face {
font-display: swap;
font-family: "Libre Caslon Text";
font-style: normal;
font-weight: 400;
src: url("./lib/assets/fonts/LibreCaslonText-Regular.woff2") format("woff2");
}
2023-07-13 16:28:54 +02:00
</style>