<div class="page-banner" id="banner-main">
<div class="row position-relative overflow-hidden text-center">
{% if bannerSlides %}
<div class="glide {% if bannerSlides|length > 1 %}glide-enabled{% endif %}">
<div class="glide__track" data-glide-el="track">
<ul class="glide__slides">
{% for slide in bannerSlides %}
<li id="slide-{{ slide.id }}" class="glide__slide">
{% if slide.isVideo %}
<a href="{% if slide.link %}{{ slide.link }}{% else %}#{% endif %}">
<video class="w-100" loop autoplay><source src="{{ slide.url }}"></video>
</a>
{% else %}
<a href="{% if slide.link %}{{ slide.link }}{% else %}#{% endif %}"
style="background-image: url('{{ slide.url }}')">
</a>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
{% if bannerSlides|length > 1 %}
<div class="glide__controls-container" data-glide-el="controls">
<div class="glide__controls-item" data-glide-dir="<"><img class="glide__controls-img" src="{{ asset('bundles/app/images/controls_left.png') }}" alt=""/></div>
<div class="glide__controls-item" data-glide-dir=">"><img class="glide__controls-img" src="{{ asset('bundles/app/images/controls_right.png') }}" alt=""/></div>
</div>
<div class="glide__bullets-container"></div>
{% endif %}
</div>
{% endif %}
</div>
</div>
{% if subPageBanners is defined %}
{% for id, tabBanner in subPageBanners %}
<div class="page-banner {% if tabBanner|length <= 1 %}hidden{% endif %}" id="banner-{{ id }}">
<div class="row position-relative overflow-hidden text-center">
<div class="glide {% if tabBanner|length > 1 %}glide-enabled{% endif %}">
<div class="glide__track" data-glide-el="track">
<ul class="glide__slides">
{% for slide in tabBanner %}
<li id="slide-{{ slide.id }}" class="glide__slide">
{% if slide.isVideo %}
<a href="{% if slide.link %}{{ slide.link }}{% else %}#{% endif %}">
<video class="w-100" loop autoplay><source src="{{ slide.url }}"></video>
</a>
{% else %}
<a href="{% if slide.link %}{{ slide.link }}{% else %}#{% endif %}"
style="background-image: url('{{ slide.url }}')">
</a>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
{% if tabBanner|length > 1 %}
<div class="glide__controls-container" data-glide-el="controls">
<div class="glide__controls-item" data-glide-dir="<"><img class="glide__controls-img" src="{{ asset('bundles/app/images/controls_left.png') }}" alt=""/></div>
<div class="glide__controls-item" data-glide-dir=">"><img class="glide__controls-img" src="{{ asset('bundles/app/images/controls_right.png') }}" alt=""/></div>
</div>
<div class="glide__bullets-container"></div>
{% endif %}
</div>
</div>
</div>
{% endfor %}
{% endif %}
<script>
let slideData = [];
slideData[0] = [{{ bannerSlides|json_encode|raw }}][0];
let subpagesBanners = [{% if subPageBanners is defined %}{{ subPageBanners|json_encode|raw }}{% endif %}];
subpagesBanners.forEach(function (v) {
for (var key in v) {
slideData[key] = v[key];
}
});
$(document).ready(function () {
let slideElements = $('.glide__slides li');
let bulletsParent = $('.glide__bullets-container');
let newItem = '<div class="glide__bullets-item"></div>';
initBullets();
slideElements.on('classChange', function () {
switchActiveBullet(this);
});
function switchActiveBullet(slide) {
let el = $(slide);
let bullet = $('#bullet-' + (el[0].id).split("slide-")[1]);
el.hasClass('glide__slide--active')
? bullet.addClass('glide__bullets-item--active')
: bullet.removeClass('glide__bullets-item--active');
}
function initBullets() {
var slideDataRaw = Array.from(slideData);
slideData = slideDataRaw.filter(function (el) {
return el != null;
});
$.each(slideData, function (pk, data) {
$.each(data, function (k, item) {
let newBullet = $(newItem).attr('id', 'bullet-' + item.id);
newBullet = newBullet.attr('style', 'order:' + item.order);
let currentSlide = document.getElementById('slide-' + item.id);
if ($(currentSlide).hasClass('glide__slide--active')) {
newBullet.addClass('glide__bullets-item--active');
}
$(bulletsParent[pk]).append(newBullet);
});
});
//classChange event
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.attributeName === "class") {
$(mutation.target).trigger('classChange');
}
});
});
//register
$.each(slideElements, function (k, item) {
observer.observe(item, {
attributes: true
});
});
}
});
</script>