;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Coligação de Marília Arraes pede cassação de Cabral, candidato de Lula

Marília Arraes é deputada federal e candidata ao governo de Pernambuco pelo SD - Ricardo Labastier/Divulgação
Marília Arraes é deputada federal e candidata ao governo de Pernambuco pelo SD Imagem: Ricardo Labastier/Divulgação

Do UOL, em São Paulo

26/09/2022 11h00

A coligação da deputada federal Marília Arraes (SD), candidata ao governo de Pernambuco, entrou com ação para cassar a candidatura de Danilo Cabral (PSB), o nome apoiado pelo ex-presidente Luiz Inácio Lula da Silva (PT) na corrida ao Palácio Campos das Princesas.

Segundo Arraes, o adversário dela está usando a máquina pública para favorecer a própria candidatura. Ela usa como argumento denúncias de que Cabral estaria planejando uma força-tarefa com o objetivo de reunir servidores comissionados e terceirizados para servirem de "voluntários" no dia 2 de outubro, data da eleição, e fazendo ameaças a quem se recusa a participar.

"A estrutura foi organizada de forma cirúrgica, tendo individualizado e dissecado as estatísticas e a geografia de cada Zona Eleitoral, com exposição de quantidade de locais de votação, de seções, de eleitores, de voluntários a serem disponibilizados nas respectivas localidades, bem como também o número de carros disponíveis para locomoção dos funcionários públicos e/ou terceirizados", diz a ação da equipe da deputada.

O pedido de cassação inclui a candidatura de Luciana Santos (PCdoB) a vice-governadora e ainda a solicitação para que tanto Cabral quanto sua colega de chapa sejam declarados inelegíveis.

A ação, por fim, também pede medidas de busca e apreensão nos computadores de Adriano Danzi de Andrade, secretário-executivo de Planejamento de Pernambuco e apontado como o dono das planilhas de funcionários, além de investigações contra o governador Paulo Câmara (PSB) e João Campos (PSB), prefeito de Recife e primo de Marília.

Marília lidera disputa pelo governo de Pernambuco, diz Ipec

Segundo pesquisa do Ipec divulgada na semana ada, Marília Arraes aparece em primeiro lugar na disputa pelo governo de Pernambuco com 33% das intenções de voto na simulação estimulada, quando a lista com nomes dos candidatos é oferecida aos entrevistados.

Na sequência apareceram empatados em segundo Danilo Cabral (PSB), Raquel Lyra (PSDB), Miguel Coelho (União Brasil) e Anderson Ferreira (PL), com 11%, cada. A margem de erro da sondagem é de três pontos percentuais para mais ou para menos.