;(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

Em busca de virada em SP, Lula focará no ABC e no interior nesta semana

01.out.22 - O candidato a governador de São Paulo Fernando Haddad e o ex-presidente e candidato à presidência do Brasil Luiz Inácio Lula da Silva cumprimentam as pessoas durante uma marcha silenciosa, em São Paulo - MARIANA GREIF/REUTERS
01.out.22 - O candidato a governador de São Paulo Fernando Haddad e o ex-presidente e candidato à presidência do Brasil Luiz Inácio Lula da Silva cumprimentam as pessoas durante uma marcha silenciosa, em São Paulo Imagem: MARIANA GREIF/REUTERS

Do UOL, em São Paulo

04/10/2022 13h03Atualizada em 04/10/2022 17h33

O ex-presidente Luiz Inácio Lula da Silva (PT) vai focar o início da campanha do segundo turno em São Paulo. O petista perdeu para o presidente Jair Bolsonaro (PL) no maior colégio eleitoral do país, contra projeções das pesquisas —o estado concentra dois a cada dez votos no país.

A agenda de Lula está sendo definida em reunião na capital paulista que começou na manhã desta terça-feira (4). A proposta da campanha é fazer atos na região metropolitana de São Paulo e no interior ainda nesta semana.

No estado, Lula teve 40,86% dos votos, contra 47,71% de Bolsonaro.

Começo por São Paulo. O resultado do primeiro turno no estado mais populoso do país foi a maior surpresa para a campanha lulista. As pesquisas apontavam que o petista tinha uma leve vantagem sobre Bolsonaro, o que não se confirmou nas urnas.

Agora, Lula está programando ir a São Bernardo do Campo, no ABC Paulista, seu reduto, já na quinta-feira (6), a uma outra cidade da região metropolitana na sexta (7) e a Campinas, terceira maior cidade do estado, no sábado (8).

Uma das principais reflexões da campanha no revés em São Paulo é que Lula não incluiu o interior paulista —mais populoso que grande parte dos estados brasileiros— em suas viagens. Só foi a uma ocupação em Sumaré (SP) e à Unicamp (Universidade de Campinas), ainda na pré-campanha.

Só no interior paulista, são 18 milhões de eleitores, mais do que os 16 milhões da Grande São Paulo.

Um novo estilo. Conforme o UOL havia adiantado, o tipo de evento também deverá mudar um pouco. Os grandes comícios, que dominaram a campanha na primeira etapa, deverão dar lugar a caminhadas e eventos setorizados.

Deverão ocorrer caminhadas tanto no ABC, onde Lula tem amplo apoio, quanto no centro de Campinas.

Campanha conjunta. Segundo Luiz Marinho, coordenador da campanha de Fernando Haddad (PT) ao governo de São Paulo e presidente estadual do PT, as duas campanhas deverão ficar ainda mais próximas, em especial no interior.

Haddad, que vinha liderando as pesquisas, também sofreu um revés e ficou atrás do ex-ministro bolsonarista Tarcísio de Freitas (Republicanos).

"A ordem de cem prefeitos é uma meta boa", disse Marinho. Para isso, no entanto, seria muito benéfico que o partido conseguisse apoio do governador Rodrigo Garcia (PSDB) e sua máquina com ampla maioria de prefeitos no estado.

Espera-se, no entanto, que o tucano anuncie apoio a Tarcísio.