/* Galeria AMCI 2027 (pagina 7154) - agrupacion del lightbox + filtros por categoria.
*
* El widget `image` del core de Elementor llama a add_lightbox_data_attributes()
* SIN pasar $group_id (elementor/includes/widgets/image.php::render()), de modo
* que nunca emite `data-elementor-lightbox-slideshow` y cada foto se abriria
* sola, sin flechas de anterior/siguiente. El lightbox agrupa exactamente por
* ese atributo y lo lee del DOM en el momento del clic
* (assets/js/frontend.js -> selectors.slideshow), asi que lo asignamos aqui.
*
* Al filtrar por categoria se reescribe el atributo para que las flechas
* recorran unicamente las fotos visibles.
*/
(function () {
'use strict'; var GROUP = 'galeria-amci'; function init() {
var gal = document.querySelector('.amci-gal');
if (!gal) { return; } var tiles = [].slice.call(gal.querySelectorAll('.amci-tile'));
var boxes = [].slice.call(gal.querySelectorAll('.amci-row, .amci-col'));
var chips = [].slice.call(document.querySelectorAll('.amci-chip'));
var count = document.querySelector('.amci-count .elementor-icon-list-text'); if (!tiles.length) { return; } function catOf(el) {
var m = /amci-chip-([a-z]+)/.exec(el.className || '');
return m ? m[1] : 'all';
} function apply(cat) {
var shown = 0; tiles.forEach(function (t) {
var ok = (cat === 'all') || t.classList.contains('amci-cat-' + cat);
t.classList.toggle('amci-off', !ok);
if (ok) { shown++; } var a = t.querySelector('a[data-elementor-open-lightbox]');
if (!a) { return; }
if (ok) {
a.setAttribute('data-elementor-lightbox-slideshow', GROUP);
} else {
a.removeAttribute('data-elementor-lightbox-slideshow');
}
}); boxes.forEach(function (b) {
b.classList.toggle('amci-off', !b.querySelector('.amci-tile:not(.amci-off)'));
}); chips.forEach(function (c) {
var on = catOf(c) === cat;
c.classList.toggle('amci-chip--on', on);
var l = c.querySelector('a, button');
if (l) { l.setAttribute('aria-pressed', on ? 'true' : 'false'); }
}); if (count) {
count.textContent = shown + (shown === 1 ? ' imagen' : ' imágenes') + ' · XVII Congreso, Cali';
}
} chips.forEach(function (c) {
c.addEventListener('click', function (e) {
if (e.target.closest('a')) { e.preventDefault(); }
apply(catOf(c));
});
}); apply('all');
} if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
})();