<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
<link rel="icon" type="image/png" href="/assets/icons/little-logo.svg">
<title>{% block title %} FlashBet {% endblock %}</title>
<meta name="csrf-token" content="{{ csrf_token('general') }}">
<link rel="stylesheet" href="style.css?v={{ "now"|date("U") }}" />
<link rel="stylesheet" href="toastr/toastr.min.css" />
<link rel="stylesheet" href="fonts/fonts.css" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"
/>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script src="/assets/butterup/butterup.min.js"></script>
<link rel="stylesheet" href="/assets/butterup/butterup.min.css?v={{ "now"|date("U") }}">
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
{% block stylesheets %}{% endblock %}
</head>
<body>
<div data-barba="wrapper">
{% include 'components/header.html.twig' %}
{% include 'components/sidebar.html.twig' %}
{% include 'components/chat.html.twig' %}
{% include 'components/mobile/mobile.html.twig' %}
<!-- Мейн контент -->
<main class="chat-open" data-barba="container" data-barba-namespace="{{ app.request.attributes.get('_route') }}">
{% block body %}{% endblock %}
</main>
{% include 'components/modals/modals.html.twig' %}
</div>
<div id="loader" class="loader">
<img src="./assets/icons/lightning-logo.svg" alt="" />
</div>
</body>
<script src="https://unpkg.com/@barba/core"></script>
<script src="https://unpkg.com/gsap@3/dist/gsap.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
<script src="toastr/toastr.min.js"></script>
<script src="/assets/js/countup.js"></script>
<script type="module">
import {
initSwipers,
destroySwipers
} from '/assets/js/swipers.js?v={{ "now"|date("U") }}';
import {
initDice,
destroyDice
} from '/assets/js/pages/games/dice.js?v={{ "now"|date("U") }}';
import {
initMines,
destroyMines
} from '/assets/js/pages/games/mines.js?v={{ "now"|date("U") }}';
import {
initFaqToggle,
destroyFaqToggle
} from '/assets/js/pages/faq.js?v={{ "now"|date("U") }}';
import {
initRef,
destroyRef
} from '/assets/js/pages/referral.js?v={{ "now"|date("U") }}';
import {
initProfile,
destroyProfile
} from '/assets/js/pages/profile.js?v={{ "now"|date("U") }}';
import {
initBonus,
} from '/assets/js/pages/bonus.js?v={{ "now"|date("U") }}';
import {
initTournamentPage,
} from '/assets/js/pages/tournament.js?v={{ "now"|date("U") }}';
import {
initSlots,
} from '/assets/js/pages/games/slots.js?v={{ "now"|date("U") }}';
barba.init({
sync: true,
views: [
{
namespace: 'main_page',
afterEnter({
next
}) {
initSwipers(next.container);
initSlots(next.container, true);
},
beforeLeave() {
destroySwipers();
destroySlots();
},
},
{
namespace: 'dice_page',
afterEnter({
next
}) {
initDice();
},
beforeLeave() {
destroyDice();
},
},
{
namespace: 'mines_page',
afterEnter({
next
}) {
initMines();
},
beforeLeave() {
destroyMines();
},
},
{
namespace: 'faq_page',
afterEnter({
next
}) {
initFaqToggle();
},
beforeLeave() {
destroyFaqToggle();
},
},
{
namespace: 'referral_page',
afterEnter({
next
}) {
initRef();
}
},
{
namespace: 'bonus_page',
afterEnter({
next
}) {
initBonus();
}
},
{
namespace: 'tours_page',
afterEnter({
next
}) {
initTournamentPage();
}
},
{
namespace: 'lobby_page',
afterEnter({
next
}) {
initSlots(next.container, false);
},
beforeLeave() {
destroySlots();
},
},
{
namespace: 'profile_page',
afterEnter({
next
}) {
initProfile();
},
beforeLeave() {
destroyProfile();
},
},
],
transitions: [{
name: 'fade',
async leave({
current
}) {
await gsap.to(current.container, {
opacity: 0,
duration: 0.3
});
},
enter({
next
}) {
gsap.from(next.container, {
opacity: 0,
duration: 0.3
});
}
}]
});
barba.hooks.beforeEnter(() => {
document.querySelectorAll('img[src$=".svg"]').forEach(img => {
img.style.opacity = '0';
img.style.transition = 'opacity 0.3s';
});
});
barba.hooks.afterEnter(() => {
updateSidebarActive();
$('html, body').animate({
scrollTop: 0
}, 0);
document.querySelectorAll('img[src$=".svg"]').forEach(img => {
const oldSrc = img.getAttribute('src');
if (oldSrc) {
img.setAttribute('src', oldSrc.split('?')[0] + '?reload=' + new Date().getTime());
img.onload = () => {
img.style.opacity = '1';
};
}
});
});
function updateSidebarActive() {
document
.querySelectorAll('.sidebar-link')
.forEach(el => {
const href = el.getAttribute('href');
el.classList.toggle('active', window.location.pathname.startsWith(href));
});
document
.querySelectorAll('.mobile-link')
.forEach(el => {
const href = el.getAttribute('href');
el.classList.toggle('active', window.location.pathname.startsWith(href));
});
}
var globalrole = 0;
</script>
{% if user %}
<script>
globalrole = {{ user.admin }};
</script>
{% endif %}
<script src="assets/js/auth.js?v={{ "now"|date("U") }}"></script>
<script src="script.js?v={{ "now"|date("U") }}"></script>
{% block javascripts %}{% endblock %}
</html>