`;
}
function ActiveFilter(filter) {
function removeFilter(event, dataset, name) {
props.spotler.triggerFilterChange(dataset, name);
}
return `
${filter.label}: ${filter.value}
`;
}
function Filters(filters) {
return filters?.map((facet) => {
switch (facet.type) {
case "select":
return renderSelectFilter({...facet, dataset: "items"});
case "multiselect":
return renderMultiSelectFilter({...facet, dataset: "items"});
case "radio":
return renderRadioFilter({...facet, dataset: "items"});
case "slider":
return renderSliderFilter({...facet, dataset: "items"});
case "dualslider":
return renderDualSliderFilter({...facet, dataset: "items"});
}
}).join("");
}
function SpellcheckMessage(spellcheck, total) {
if (!spellcheck) {
return "";
}
return `
U zocht op
${spellcheck.old}, maar wij vonden geen resultaten. U zocht op
${spellcheck.new}, wij vonden ${total} ${total === 1 ? "resultaat" : "resultaten"}.
`;
}
function Banners(banners) {
if (!Array.isArray(banners) || banners.length === 0) {
return "";
}
const banner = banners.pop();
const bannerTypes = Object.keys(banner);
let bannerHtml = "";
for (let i = 0, l = bannerTypes.length; i < l; i++) {
const bannerType = bannerTypes[i];
switch (bannerType) {
case "mobile":
bannerHtml += Banner(
banner,
bannerType,
"sqr-block tablet:sqr-hidden"
);
break;
case "tablet":
bannerHtml += Banner(
banner,
bannerType,
"sqr-hidden tablet:sqr-block desktop:sqr-hidden"
);
break;
case "desktop":
bannerHtml += Banner(
banner,
bannerType,
"sqr-hidden desktop:sqr-block"
);
break;
}
}
return bannerHtml;
}
function Banner(banner, type, mediaClasses) {
if (!(type in banner)) {
return "";
}
if (banner[type].url) {
return `
`;
}
return ``;
}
function Items(items) {
return items?.map(Item).join("");
}
// Item setup
function Item(item) {
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
const formKey = getCookie('form_key');
return `
`;
}
function renderPrice(item) {
const price = item.properties.double_normal_price > 0 ? item.properties.double_normal_price : item.properties.price;
const discountedPrice = item.properties.price;
if (discountedPrice > 0 && price !== discountedPrice) {
return `
${formatCurrency(price)}
`;
}
return `
${formatCurrency(price)}
`;
}
function renderFilter(facet, children) {
const filterState = props.state.datasets[facet.dataset].filterStates?.[facet.id];
const collapsed = filterState?.collapsed ?? facet.is_default_collapsed;
function collapse(e, dataset, filterId) {
e.preventDefault();
const element = e.currentTarget;
const filterState = props.state.datasets[dataset].filterStates?.[filterId];
const active = element.classList.contains("sqr-active");
element.classList.toggle("sqr-active", !active);
element.classList.toggle("sqr-pb-2", !active);
element.classList.toggle("sqr-border-b", !active);
element.classList.toggle("sqr-border-[#E7E6E6]", !active);
element.nextElementSibling.classList.toggle("sqr-hidden", active);
filterState.collapsed = active;
}
return `
${children}
`;
}
function renderSelectFilter(facet) {
return renderFilter(facet,`