2021-08-30 10:46:18 +00:00
|
|
|
<script>
|
2022-06-10 17:43:10 +00:00
|
|
|
import { base } from '$app/paths';
|
|
|
|
|
2021-08-30 10:46:18 +00:00
|
|
|
import {
|
|
|
|
Badge,
|
|
|
|
Button,
|
|
|
|
ButtonGroup,
|
|
|
|
Col,
|
|
|
|
Collapse,
|
|
|
|
Container,
|
|
|
|
Icon,
|
|
|
|
Navbar,
|
|
|
|
NavbarToggler,
|
|
|
|
NavbarBrand,
|
|
|
|
Nav,
|
|
|
|
NavItem,
|
|
|
|
NavLink,
|
|
|
|
Progress,
|
|
|
|
Row,
|
|
|
|
} from 'sveltestrap';
|
|
|
|
|
2022-10-24 07:48:45 +00:00
|
|
|
import { challengeInfo } from '$lib/stores/challengeinfo.js';
|
|
|
|
import { my } from '$lib/stores/my.js';
|
|
|
|
import { teams } from '$lib/stores/teams.js';
|
|
|
|
import { settings, time } from '$lib/stores/settings.js';
|
2021-08-30 10:46:18 +00:00
|
|
|
|
2023-05-12 13:29:38 +00:00
|
|
|
import Clock from './Clock.svelte';
|
2021-08-30 10:46:18 +00:00
|
|
|
import HeaderClock from './HeaderClock.svelte';
|
|
|
|
import HeaderIssues from './HeaderIssues.svelte';
|
|
|
|
import HeaderPartners from './HeaderPartners.svelte';
|
|
|
|
import NavThemes from './NavThemes.svelte';
|
|
|
|
import NavTags from './NavTags.svelte';
|
|
|
|
|
|
|
|
let isOpen = false;
|
|
|
|
|
|
|
|
function handleUpdate(event) {
|
|
|
|
isOpen = event.detail.isOpen;
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
2023-05-12 13:29:38 +00:00
|
|
|
{#if !$settings.hide_header}
|
2021-08-30 10:46:18 +00:00
|
|
|
<div class="container-fluid bg-dark" style="max-height: 15vh;">
|
|
|
|
<div style="height: 100%; max-height: inherit; width: 98%; position: absolute">
|
|
|
|
<Container class="d-flex justify-content-center align-items-center text-light" style="height: 100%; max-height: inherit">
|
|
|
|
<HeaderClock />
|
|
|
|
</Container>
|
|
|
|
</div>
|
|
|
|
<Container class="d-flex justify-content-between p-1" style="max-height: inherit">
|
2022-02-02 16:31:57 +00:00
|
|
|
<a href="." style="max-width: 50%">
|
2022-05-31 17:11:28 +00:00
|
|
|
{#if $challengeInfo && $challengeInfo.main_logo}
|
|
|
|
{#each $challengeInfo.main_logo as logo, i}
|
2022-06-10 17:43:10 +00:00
|
|
|
<img src={logo.replace('$FILES$', base + '/files/')} alt={'Logo principal #' + i} class={'h-100' + (i > 0?' d-none d-md-inline ms-2':'')}>
|
2022-05-31 17:11:28 +00:00
|
|
|
{/each}
|
|
|
|
{/if}
|
2021-08-30 10:46:18 +00:00
|
|
|
</a>
|
|
|
|
<HeaderPartners />
|
|
|
|
</Container>
|
|
|
|
</div>
|
2023-05-12 13:29:38 +00:00
|
|
|
{/if}
|
2021-08-31 23:47:44 +00:00
|
|
|
<div class="sticky-top">
|
|
|
|
<Navbar color="dark" dark expand="md">
|
2021-08-30 10:46:18 +00:00
|
|
|
<NavbarToggler on:click={() => (isOpen = !isOpen)} />
|
|
|
|
<Collapse {isOpen} navbar expand="md" on:update={handleUpdate}>
|
|
|
|
<Nav navbar>
|
|
|
|
<NavItem>
|
2021-09-01 09:20:41 +00:00
|
|
|
<NavLink href=".">
|
2021-08-30 10:46:18 +00:00
|
|
|
<Icon name="box-seam" />
|
|
|
|
Accueil
|
|
|
|
</NavLink>
|
|
|
|
</NavItem>
|
|
|
|
<NavThemes />
|
|
|
|
<NavTags />
|
2023-05-12 13:29:38 +00:00
|
|
|
{#if $settings && $settings.start >= $settings.recvTime && $teams && Object.keys($teams).length}
|
2021-08-30 10:46:18 +00:00
|
|
|
<NavItem>
|
2021-09-01 09:20:41 +00:00
|
|
|
<NavLink href="rank">
|
2021-08-30 10:46:18 +00:00
|
|
|
<Icon name="sort-down" />
|
|
|
|
Classement
|
|
|
|
</NavLink>
|
|
|
|
</NavItem>
|
|
|
|
{/if}
|
|
|
|
<HeaderIssues />
|
|
|
|
<NavItem>
|
2021-09-01 09:20:41 +00:00
|
|
|
<NavLink href="rules">
|
2021-08-30 10:46:18 +00:00
|
|
|
<Icon name="signpost-split" />
|
|
|
|
Aide
|
|
|
|
</NavLink>
|
|
|
|
</NavItem>
|
|
|
|
</Nav>
|
2023-05-12 13:29:38 +00:00
|
|
|
{#if $settings.hide_header && $settings.end - $settings.start > 0}
|
|
|
|
<Nav class="ms-auto text-light display-6" navbar>
|
|
|
|
<Clock />
|
|
|
|
</Nav>
|
|
|
|
{/if}
|
2021-08-30 10:46:18 +00:00
|
|
|
<Nav class="ms-auto text-light" navbar>
|
|
|
|
{#if $my && $my.team_id}
|
|
|
|
<NavItem>
|
2021-09-02 09:15:35 +00:00
|
|
|
{Math.round($my.score*100)/100} {$my.score === 1 ? 'point' : 'points'}
|
2022-02-02 15:03:24 +00:00
|
|
|
{#if $teams && $teams[$my.team_id] && $teams[$my.team_id].rank}
|
2021-08-30 10:46:18 +00:00
|
|
|
– {$teams[$my.team_id].rank}<sup>e</sup> sur {Object.keys($teams).length}
|
|
|
|
{/if}
|
|
|
|
</NavItem>
|
|
|
|
{/if}
|
|
|
|
<NavItem class="ms-2">
|
|
|
|
{#if !$my}
|
2021-09-01 09:20:41 +00:00
|
|
|
<Badge href="register" color="warning">
|
2021-08-30 10:46:18 +00:00
|
|
|
Inscription
|
|
|
|
</Badge>
|
2022-02-02 15:03:24 +00:00
|
|
|
{:else if $my.team_id}
|
|
|
|
{#if $teams && $teams[$my.team_id]}
|
|
|
|
<Badge href="edit" style="background-color: {$teams[$my.team_id].color} !important; color: {$teams[$my.team_id].color};">
|
|
|
|
<span class="teamname">{$my.name}</span>
|
|
|
|
</Badge>
|
|
|
|
{:else}
|
|
|
|
<Badge href="edit" color="info">
|
|
|
|
<span class="teamname">{$my.name}</span>
|
|
|
|
</Badge>
|
|
|
|
{/if}
|
2021-08-30 10:46:18 +00:00
|
|
|
{/if}
|
|
|
|
</NavItem>
|
|
|
|
</Nav>
|
|
|
|
</Collapse>
|
|
|
|
</Navbar>
|
|
|
|
<Progress value={$time.progression * 100} color="info" style="height: 5px; border-radius: 0;" />
|
2021-08-31 23:47:44 +00:00
|
|
|
</div>
|
2021-08-30 10:46:18 +00:00
|
|
|
|
|
|
|
<style>
|
|
|
|
.teamname {
|
|
|
|
-webkit-filter: invert(100%);
|
|
|
|
filter: invert(100%);
|
|
|
|
}
|
|
|
|
</style>
|