PageSourceSearch

https://enoticias.com.br/plugins/eleicoes/pocket.js?v=912ee5f6

js enoticias.com.br collected 2026-10-08 12:13:49 UTC 8,792 bytes, 271 lines download raw bytes

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.