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

Rodrigo: 'Não falo em Doria e Bolsonaro porque não tenho padrinho político'

Do UOL, em São Paulo

13/09/2022 23h18Atualizada em 13/09/2022 23h41

O governador de São Paulo e candidato à reeleição, Rodrigo Garcia (PSDB), se esquivou hoje do "BolsoDoria" e afirmou que não tem "padrinho político" ao responder sobre a distância que mantém para caciques políticos, como o ex-governador João Doria (PSDB) e o presidente Jair Bolsonaro (PL).

Nós precisamos trabalhar, mas trabalhar acordando cedo, dormindo tarde, e buscando o resultado nas nossas atitudes. Eu não falo de Bolsonaro, não falo de João Dória, não falo de candidatos, porque eu não tenho padrinho político. Rodrigo Garcia, durante debate organizado por UOL, TV Cultura e Folha de S.Paulo

Na sequência, Fernando Haddad (PT) rebateu falando sobre a ligação de Rodrigo Garcia com outros políticos como Gilberto Kassab (PSD) e Celso Pitta (1946 - 2009). O tucano participou das duas gestões na Prefeitura de São Paulo. (Assista ao vídeo abaixo)

"Eu queria dizer também que tem, todo mundo tem padrinho, não é bem assim. O Rodrigo se esquece de que o Kassab foi padrinho dele, fez dobrada com ele. Ele serviu ao governo Kassab aqui na Prefeitura. Foi também do governo Pitta, foi secretário do Pitta, rompeu com o Covas, brigou com o Covas, foi demitido, fez campanha para o Pitta e foi secretário do Pitta, e foi secretário do Dória".

Rodrigo tem evocado a imagem e o legado da família Covas e escondido a figura de seu antecessor, o ex-governador João Doria, que, na eleição ada usou a expressão "BolsoDoria" para fazer aliança com o então candidato à Presidência Jair Bolsonaro. Rodrigo foi vice de Doria naquele pleito.

O governador é a principal aposta do PSDB, que enfrenta uma crise interna e não terá um candidato disputando a Presidência pela primeira vez desde sua fundação. O candidato tem como missão conquistar o oitavo mandato consecutivo da legenda no governo paulista.

Segundo pesquisa Datafolha divulgada no início de setembro, Fernando Haddad (PT) lidera a disputa, com 35%. Tarcísio Gomes de Freitas (Republicanos) aparece na sequência com 21% e Rodrigo Garcia, com 15% —no levantamento anterior eram 11%.