0
(function () { 'use strict'; var CONTAINER = '.sabia-galeria'; var LIMITE_MS = 12000; var inicio = Date.now(); var feito = false; function normalizar(t) { return (t || '').toString().normalize('NFD').replace(/[\u0300-\u036f]/g, '') .toLowerCase().replace(/[^a-z0-9]+/g, ' ').trim(); } function slugAlvo() { var params = new URLSearchParams(location.search); var chaves = ['product_cat', 'filter_cat', '_category', 'categoria', 'cat']; for (var i = 0; i < chaves.length; i++) { var v = params.get(chaves[i]); if (v && /[a-z]/i.test(v)) return v; } var partes = location.pathname.split('/').filter(Boolean); return partes.length ? partes[partes.length - 1] : ''; } function area() { return document.querySelector(CONTAINER); } function candidatos() { var base = area(); if (!base) return []; var lista = base.querySelectorAll('a, button, li, [role="tab"], [data-term], span'); var saida = []; for (var i = 0; i < lista.length; i++) { var el = lista[i]; var txt = normalizar(el.textContent); if (txt.length < 5 || txt.length > 120) continue; saida.push(el); } return saida; } function disparar(el) { try { ['mousedown', 'mouseup', 'click'].forEach(function (tipo) { el.dispatchEvent(new MouseEvent(tipo, { bubbles: true, cancelable: true, view: window })); }); if (typeof el.click === 'function') el.click(); } catch (e) { console.warn('[SABIA] falha ao clicar:', e); } } function ativou(el) { var atual = el; for (var i = 0; i < 4 && atual; i++) { if (atual.getAttribute && atual.getAttribute('aria-selected') === 'true') return true; if (atual.className && /active|selected|current|is-on/i.test(atual.className)) return true; atual = atual.parentElement; } return false; } function tentar() { if (feito) return true; var busca = normalizar(slugAlvo().replace(/-/g, ' ')); if (!busca) { console.log('[SABIA] pagina sem categoria na URL, nada a fazer'); feito = true; return true; } var lista = candidatos(); if (!lista.length) { if (Date.now() - inicio > LIMITE_MS) { console.warn('[SABIA] container nao encontrado:', CONTAINER); feito = true; return true; } return false; } var ordenados = []; lista.forEach(function (el) { var texto = normalizar(el.textContent); var n = 0; if (texto === busca) n = 100; else if (texto.indexOf(busca) === 0) n = 90; else if (texto.indexOf(busca) !== -1) n = 80; else if (busca.indexOf(texto) !== -1) n = 70; if (n >= 70) ordenados.push({ el: el, nota: n, ordem: texto.length }); }); if (!ordenados.length) { if (Date.now() - inicio > LIMITE_MS) { console.warn('[SABIA] nenhuma aba corresponde a:', busca); console.log('[SABIA] textos encontrados:', lista.map(function (el) { return el.textContent.trim().slice(0, 60); })); feito = true; return true; } return false; } ordenados.sort(function (a, b) { if (b.nota !== a.nota) return b.nota - a.nota; return a.ordem - b.ordem; }); var alvo = ordenados[0].el; var alvoClicavel = alvo; if (alvo.tagName === 'SPAN' || alvo.tagName === 'LI') { var interno = alvo.querySelector('a, button, [role="tab"]'); if (interno) alvoClicavel = interno; else if (alvo.parentElement) alvoClicavel = alvo.parentElement; } disparar(alvoClicavel); setTimeout(function () { if (ativou(alvoClicavel) || ativou(alvo)) { console.log('[SABIA] aba ativada:', alvo.textContent.trim().slice(0, 60)); feito = true; } else if (ordenados.length > 1) { console.log('[SABIA] tentando proxima opcao'); disparar(ordenados[1].el); feito = true; } else { console.warn('[SABIA] clique enviado, mas o widget nao reagiu'); feito = true; } }, 900); return true; } function iniciar() { if (tentar()) return; var timer = setInterval(function () { if (tentar()) clearInterval(timer); }, 300); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', iniciar); } else { iniciar(); } })();