1(function ($) { 2 var UF_NOMES = { 3 AC: "Acre", AL: "Alagoas", AP: "Amapá", AM: "Amazonas", BA: "Bahia", 4 CE: "Ceará", DF: "Distrito Federal", ES: "EspÃrito Santo", GO: "Goiás", 5 MA: "Maranhão", MT: "Mato Grosso", MS: "Mato Grosso do Sul", MG: "Minas Gerais", 6 PA: "Pará", PB: "ParaÃba", PR: "Paraná", PE: "Pernambuco", PI: "PiauÃ", 7 RJ: "Rio de Janeiro", RN: "Rio Grande do Norte", RS: "Rio Grande do Sul", 8 RO: "Rondônia", RR: "Roraima", SC: "Santa Catarina", SP: "São Paulo", 9 SE: "Sergipe", TO: "Tocantins" 10 }; 11 12 var SITUACAO_LABEL = { 13 apurando: "Apurando", 14 eleito: "Eleito(a)", 15 eleito_qp: "Eleito(a) por QP", 16 eleito_media: "Eleito(a) por média", 17 segundo_turno: "2º turno", 18 suplente: "Suplente", 19 nao_eleito: "Não eleito(a)", 20 anulado: "Anulado", 21 anulado_sub_judice: "Anulado Sub Judice" 22 }; 23 24 var ICONE_LOCAL = '<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C7.6 2 4 5.6 4 10c0 5.5 7 11.5 7.3 11.7a1 1 0 0 0 1.4 0C13 21.5 20 15.5 20 10c0-4.4-3.6-8-8-8zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"/></svg>'; 25 26 function hexParaRgb(hex) { 27 var limpo = String(hex).trim().replace("#", ""); 28 if (limpo.length === 3) { 29 limpo = limpo[0] + limpo[0] + limpo[1] + limpo[1] + limpo[2] + limpo[2]; 30 } 31 var r = parseInt(limpo.substring(0, 2), 16); 32 var g = parseInt(limpo.substring(2, 4), 16); 33 var b = parseInt(limpo.substring(4, 6), 16); 34 return { r: r, g: g, b: b }; 35 } 36 37 function corTextoLegivel(rgb) { 38 var yiq = ((rgb.r * 299) + (rgb.g * 587) + (rgb.b * 114)) / 1000; 39 return yiq >= 150 ? "#1A1400" : "#FFFFFF"; 40 } 41 42 var ICONE_SETA = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg>'; 43 44 function iniciar() { 45 46 if(tema == 7){ 47 48 var Alvo = $(".pos-topo"); 49 50 } 51 52 if(tema == 8){ 53 54 var Alvo = $(".pos-topo"); 55 56 } 57 58 if(tema == 9){ 59 60 var Alvo = $(".topo-site"); 61 62 } 63 64 if(tema == 10){ 65 66 var Alvo = $(".pos-topo"); 67 68 } 69 70 if(tema == 11){ 71 72 var Alvo = $(".topo-site"); 73 74 } 75 76 var $alvo = Alvo; 77 if ($alvo.length === 0) { 78 console.warn("[pocket.js] elemento .topo-site não encontrado na página â widget não inserido."); 79 return; 80 } 81 82 var rgbMarca = hexParaRgb(corDestaquePocket); 83 document.documentElement.style.setProperty("--pocket-brand", corDestaquePocket); 84 document.documentElement.style.setProperty("--pocket-brand-rgb", rgbMarca.r + ", " + rgbMarca.g + ", " + rgbMarca.b); 85 document.documentElement.style.setProperty("--pocket-brand-texto", corTextoLegivel(rgbMarca)); 86
87 var $container = $('<div id="eleicoes-pocket-widget" class="eleicoes-pocket"></div>').css({ 88 display: "flex", 89 width: "100%", 90 boxSizing: "border-box" 91 }); 92 var $wrapper = $('<div class="conteudo"></div>').append($container); 93 $alvo.after($wrapper); 94 95 function habilitarArraste(el) { 96 var arrastando = false; 97 var moveuBastante = false; 98 var inicioX = 0; 99 var scrollInicial = 0; 100 101 el.addEventListener("mousedown", function (e) { 102 arrastando = true; 103 moveuBastante = false; 104 el.classList.add("eleicoes-pocket--arrastando"); 105 inicioX = e.pageX; 106 scrollInicial = el.scrollLeft; 107 }); 108 109 window.addEventListener("mousemove", function (e) { 110 if (!arrastando) return; 111 var distancia = e.pageX - inicioX; 112 if (Math.abs(distancia) > 5) moveuBastante = true; 113 el.scrollLeft = scrollInicial - distancia; 114 }); 115 116 function soltar() { 117 arrastando = false; 118 el.classList.remove("eleicoes-pocket--arrastando"); 119 } 120 window.addEventListener("mouseup", soltar); 121 el.addEventListener("mouseleave", soltar); 122 123 el.addEventListener("click", function (e) { 124 if (moveuBastante) { 125 e.preventDefault(); 126 e.stopPropagation(); 127 moveuBastante = false; 128 } 129 }, true); 130 } 131 132 habilitarArraste($container.get(0)); 133 134 function paraNumero(valor) { 135 if (typeof valor === "number") return valor; 136 if (typeof valor === "string") { 137 var normalizado = parseFloat(valor.replace(",", ".")); 138 return isNaN(normalizado) ? 0 : normalizado; 139 } 140 return 0; 141 } 142 143 function formatarPercentual(n) { 144 return paraNumero(n).toString().replace(".", ","); 145 } 146 147 function localHtml() { 148 var nomeUf = UF_NOMES[ufPocket.toUpperCase()] || ufPocket.toUpperCase(); 149 return ( 150 '<div class="eleicoes-pocket__local">' + 151 ICONE_LOCAL + 152 "<span>" + nomeUf + "</span>" + 153 "</div>" 154 ); 155 } 156 157 function montarUrl(base, sufixo) { 158 if (!sufixo) return ""; 159 if (/^https?:\/\//i.test(sufixo)) return sufixo; 160 return (base || "") + sufixo; 161 } 162 163 function candidatoHtml(c, param) { 164 var foto = montarUrl(param && param.foto, c.foto); 165 var situacao = (c.situacao && typeof c.situacao === "object") ? (c.situacao.resultado || "apurando") : (c.situacao || "apurando"); 166 var pct = paraNumero(c.porcentagem); 167 var rotuloSituacao = SITUACAO_LABEL[situacao] || situacao; 168 169 return ( 170 '<div class="eleicoes-pocket__candidato">' + 171 '<div class="eleicoes-pocket__avatar-ring" style="--pct: ' + pct + '">' + 172 '<div class="eleicoes-pocket__avatar">' + 173 '<img src="' + foto + '" alt="' + c.nome + '" loading="lazy" onerror="this.style.visibility=\'hidden\'">' + 174 "</div>" + 175 "</div>" + 176 '<div class="eleicoes-pocket__info">' + 177 '<span class="eleicoes-pocket__nome">' + c.nome + "</span>" + 178 '<span class="eleicoes-pocket__partido">' + c.partido + " · " + formatarPercentual(pct) + "%</span>" + 179 '<span class="eleicoes-pocket__badge eleicoes-pocket__badge--' + situacao + '">' + rotuloSituacao + "</span>" + 180 "</div>" + 181 "</div>" 182 ); 183 } 184 185 function grupoHtml(rotulo, candidatos, param) { 186 var top2 = candidatos 187 .slice() 188 .sort(function (a, b) { return (a.ordem ?? 999) - (b.ordem ?? 999); }) 189 .slice(0, 2); 190 191 return ( 192 '<div class="eleicoes-pocket__grupo">' + 193 '<span class="eleicoes-pocket__rotulo">' + rotulo + "</span>" + 194 top2.map(function (c) { return candidatoHtml(c, param); }).join("") + 195 "</div>" 196 ); 197 } 198 199 function botaoResultadoHtml() { 200 var link = typeof linkResultadoCompleto !== "undefined" ? linkResultadoCompleto : null; 201 if (!link) { 202 console.warn("[pocket.js] variável linkResultadoCompleto não definida â botão não exibido."); 203 return ""; 204 } 205 return ( 206 '<a class="eleicoes-pocket__cta" href="' + link + '">' + 207 "<span>Ver resultado completo</span>" + 208 ICONE_SETA + 209 "</a>" 210 ); 211 } 212 213 var intervaloId = null; 214 215 function pararAtualizacaoPeriodica() { 216 if (intervaloId) { 217 clearInterval(intervaloId); 218 intervaloId = null; 219 } 220 } 221 222 function iniciarAtualizacaoPeriodica() { 223 pararAtualizacaoPeriodica(); 224 intervaloId = setInterval(carregar, intervaloAtualizacaoPocketMs); 225 } 226 227 function apuracaoCompleta(dados) { 228 return dados.totalizado === "S"; 229 } 230 231 function carregar() { 232 $.ajax({ 233 url: caminhoApiPocket + "/api.php?uf=" + ufPocket.toLowerCase(), 234 method: "GET", 235 dataType: "json", 236 cache: false 237 }) 238 .done(function (json) { 239 if (!json || json.success !== 1 || !json.dados) { 240 console.warn("[pocket.js] resposta sem dados válidos:", json); 241 return; 242 } 243 244 if (apuracaoCompleta(json.dados)) { 245 pararAtualizacaoPeriodica(); 246 } else { 247 iniciarAtualizacaoPeriodica(); 248 } 249 250 var presidente = (json.dados.nacional && json.dados.nacional.candidatos && json.dados.nacional.candidatos.presidente) || []; 251 var governador = (json.dados.local && json.dados.local.candidatos && json.dados.local.candidatos.governador) || []; 252 253 $container.html( 254 localHtml() + 255 grupoHtml("Presidente", presidente, json.dados.param_presidente) + 256 grupoHtml("Governador", governador, json.dados.param_local) + 257 botaoResultadoHtml() 258 ); 259 $wrapper.show(); 260 }) 261 .fail(function (jqXHR, textStatus, errorThrown) { 262 console.warn("[pocket.js] falha ao buscar dados:", textStatus, errorThrown); 263 iniciarAtualizacaoPeriodica(); 264 }); 265 } 266 267 carregar(); 268 } 269 270 $(iniciar); 271})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.