// ===== CONFIG =====
var FACET_MAKE = 'make'; // facet en HOME
var FACET_MODEL = 'model'; // facet en HOME
var FACET_CAT_HOME = 'categories_mobile'; // facet de categorías en HOME
var DEST_CAT_PARAM = 'categories'; // facet de categorías en la PÁGINA DESTINO
var DEST_BASE = '/product-category'; // base del archive make/model (no trailing slash)
// ==== Helpers ====
function awiGetFacetVals(name) {
return (window.FWP && FWP.facets && Array.isArray(FWP.facets[name])) ? FWP.facets[name] : [];
}
function awiGetVisibleFacetEl(name) {
var nodes = document.querySelectorAll('.facetwp-facet-' + name);
if (!nodes || !nodes.length) return null;
// Prioriza el facet que esté visible (no display:none)
for (var i = 0; i 0;
var hasModel = modelVals.length > 0;
// Mantener MODEL visible siempre, pero deshabilitado si no hay MAKE
if (!hasMake) {
awiDisableFacetUI(FACET_MODEL, true, 'SELECT YOUR MAKE FIRST');
if (hasModel && window.FWP) FWP.reset(FACET_MODEL);
} else {
awiDisableFacetUI(FACET_MODEL, false, null);
}
// Categories (home) solo habilitado cuando hay Make + Model
awiDisableFacetUI(FACET_CAT_HOME, !(hasMake && hasModel), null);
if ((!hasMake || !hasModel) && catVals.length && window.FWP) {
FWP.reset(FACET_CAT_HOME);
}
// Redirección al archive cuando ya hay categoría + Make + Model
if (catVals.length > 0 && hasMake && hasModel) {
var makeSlug = makeVals[0];
var modelSlug = modelVals[0];
if (makeSlug && modelSlug) {
window.location.href = awiBuildArchiveUrl(makeSlug, modelSlug, catVals);
}
}
});
})();
// ===== DESTINO (archive product_cat) =====
(function(){
var isTaxProdCat = document.body.classList.contains('tax-product_cat');
if (!isTaxProdCat) return;
// 1) Forzar single-select en la facet "categories"
document.addEventListener('change', function(e){
// Dropdown
var selWrap = e.target.closest('.facetwp-facet-' + DEST_CAT_PARAM + ' select');
if (selWrap && window.FWP) {
var val = e.target.value || '';
FWP.facets[DEST_CAT_PARAM] = val ? [val] : [];
FWP.refresh();
return;
}
}, true);
document.addEventListener('click', function(e){
// Checkboxes / radios
var wrap = e.target.closest('.facetwp-facet-' + DEST_CAT_PARAM);
if (!wrap) return;
if (e.target.matches('input[type="checkbox"]')) {
if (!window.FWP) return;
var val = e.target.value;
// Reemplaza selección por la nueva (single-select)
FWP.facets[DEST_CAT_PARAM] = e.target.checked ? [val] : [];
FWP.refresh();
e.preventDefault(); // evita doble estado visual
} else if (e.target.matches('input[type="radio"]')) {
// Radio ya es single por defecto, pero homogenizamos
if (!window.FWP) return;
var valR = e.target.value;
FWP.facets[DEST_CAT_PARAM] = valR ? [valR] : [];
FWP.refresh();
}
}, true);
// 2) Limpiar _categories / fwp_categories de la URL tras precarga
var cleaned = false;
document.addEventListener('facetwp-loaded', function(){
if (cleaned) return;
try {
var url = new URL(location.href);
var changed = false;
if (url.searchParams.has('_categories')) {
url.searchParams.delete('_categories'); changed = true;
}
if (url.searchParams.has('fwp_' + DEST_CAT_PARAM)) {
// Si vino con fwp_categories también lo limpiamos para evitar "pegado" en barra
url.searchParams.delete('fwp_' + DEST_CAT_PARAM); changed = true;
}
if (changed) {
var finalUrl = url.pathname + (url.search ? '?' + url.search : '') + url.hash;
history.replaceState({}, '', finalUrl);
}
cleaned = true;
} catch(e) {}
});
})();
(function () {
function awiStripOptionCounts(facetName) {
var el = awiGetVisibleFacetEl(facetName);
if (!el) return;
var select = el.querySelector('select');
if (!select) return;
Array.from(select.options).forEach(function (opt) {
// Quita " (1234)" al final del texto
opt.textContent = opt.textContent.replace(/\s*\(\d+\)\s*$/, '');
});
}
// Limpia MAKE y MODEL en carga inicial
document.addEventListener('facetwp-loaded', function () {
awiStripOptionCounts(FACET_MAKE);
awiStripOptionCounts(FACET_MODEL);
awiStripOptionCounts(FACET_CAT_HOME);
});
})();
(function () {
function awiHideSubcatsInCategoriesHome() {
var el = awiGetVisibleFacetEl(FACET_CAT_HOME);
if (!el) return;
var select = el.querySelector('select');
if (!select) return;
Array.from(select.options).forEach(function (opt) {
var t = (opt.textContent || '').trim();
// Detecta subcategorías por prefijo típico: "- ", "— ", "– "
// (Si tu site usa otro patrón, lo ajustamos en el siguiente paso)
var isSubcat =
/^[-–—]\s+/.test(t) || // "- Subcat" / "— Subcat"
/^\s{2,}/.test(opt.textContent || ''); // o muchas sangrías al inicio
// Oculta solo las subcategorías; deja la opción placeholder y las principales
if (isSubcat) {
opt.hidden = true;
opt.disabled = true;
} else {
opt.hidden = false;
opt.disabled = false;
}
});
}
document.addEventListener('facetwp-loaded', function () {
awiHideSubcatsInCategoriesHome();
});
})();