{% extends '@DcSite/Opel/base.html.twig' %}
{% block seo %}
<title>
{{ 'car.configuration_page.seo.title'|trans({
'%car%' : model.fullName,
'%year%' : model.year,
'%dealer%' : dealer.name,
}, 'dc_base') }}
</title>
<meta name="description" content="{{ 'car.configuration_page.seo.description'|trans({
'%car%' : model.fullName,
'%year%' : model.year,
'%dealer%' : dealer.name,
}, 'dc_base') }}" />
{% if model.noindexFollow %}
<meta name="robots" content="noindex, follow" />
{% endif %}
{% endblock seo %}
{% block css %}
{% endblock %}
{% block content %}
<main class="new__car-car">
{% include '@DcSite/Opel/breadcrumbs.html.twig' with {
catName: 'pages.model_lineup.breadcrumb_title'|trans({}, 'dc_opel'),
catUrl: path('opel_model_lineup'),
catName2: model.fullName,
catUrl2: path('opel_card_car', {car: model.url}),
pageName: 'car.equipments_prices'|trans({}, 'dc_base') ~ ' ' ~ model.fullName
} %}
<article class="section_padd">
{% include '@DcSite/Modules/vehicle/vehicle-characteristic.html.twig' %}
</article>
</main>
{% endblock %}
{% block pageJS %}
<script>
app.onCustomEvent('appInit', function () {
app.loadCss('{{ asset('/bundles/dcsite/css/modules/car/car-card_v3.css') }}');
app.loadCss('{{ asset('/bundles/dcsite/css/opel/car/car-card.css') }}');
app.loadJs('{{ asset('/bundles/dcsite/js/modules/vehicle/vehicle-characteristic.js') }}',function () {
initVehicleCharacteristic({
vehicleCharacteristic: '{{ vehicleCharacteristic|json_encode_replace|raw }}',
});
});
// -- CAR TABLES --------//
// sync scroll
document.addEventListener('scroll', function (event) {
if (event.target.classList && event.target.classList.contains('js-scroll-sync')) {
debounce(scrollSyncHandler.bind(event.target), 20);
}
}, true);
function scrollSyncHandler() {
var scrollLeft = $(this).scrollLeft();
var idSync = $(this).data('scroll-sync');
$('.js-scroll-sync[data-scroll-sync=' + idSync + ']').scrollLeft(scrollLeft);
}
// drag scroll
var isTouchDevice =
(('ontouchstart' in window) ||
(navigator.MaxTouchPoints > 0) ||
(navigator.msMaxTouchPoints > 0));
var isDown = false;
var startX;
var scrollLeft;
if (!isTouchDevice) {
$('body').on('mousedown', '.js-touch-scroll', function(e) {
var scrolledEl = e.target.closest('.js-touch-scroll');
isDown = true;
scrolledEl.classList.add("active");
startX = e.pageX - scrolledEl.offsetLeft;
scrollLeft = scrolledEl.scrollLeft;
scrolledEl.style.cursor = 'grabbing';
scrolledEl.style.userSelect = 'none';
});
$('body').on('mouseleave', '.js-touch-scroll', function(e) {
var scrolledEl = e.target.closest('.js-touch-scroll');
isDown = false;
scrolledEl.classList.remove("active");
});
$('body').on('mouseup', '.js-touch-scroll', function(e) {
var scrolledEl = e.target.closest('.js-touch-scroll');
isDown = false;
scrolledEl.classList.remove("active");
scrolledEl.style.cursor = 'move';
scrolledEl.style.removeProperty('user-select');
});
$('body').on('mousemove', '.js-touch-scroll', function(e) {
if (!isDown) return;
e.preventDefault();
var scrolledEl = e.target.closest('.js-touch-scroll');
const x = e.pageX - scrolledEl.offsetLeft;
const walk = x - startX;
scrolledEl.scrollLeft = scrollLeft - walk;
});
}
// table accordions
$('body').on('click', '.car-table__body-title', function() {
$(this).toggleClass('--opened');
$(this).next('.car-table__body').slideToggle();
var $headerTable = $(this).closest('.car-table').find('.car-table__header');
scrollSyncHandler.bind($headerTable)();
});
// sticky table titles
function setTopOfStickyBars() {
var headerHeight = $('.header').height();
var carNavHeight = $('.car-page-nav').height();
$('.car-page-nav').css('top', headerHeight);
$('.car-table__header').css('top', headerHeight + carNavHeight);
}
window.addEventListener('resize', setTopOfStickyBars, false);
window.addEventListener('load', setTopOfStickyBars);
});
function debounce(method, delay) {
clearTimeout(method._tId);
method._tId= setTimeout(function(){
method();
}, delay);
}
</script>
{% endblock pageJS %}