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

"Não teremos um posto Ipiranga, teremos vários", diz Doria sobre 2022

João Doria, governador de São Paulo - Divulgação/Governo do estado de São Paulo
João Doria, governador de São Paulo Imagem: Divulgação/Governo do estado de São Paulo

Lucas Borges Teixeira

Do UOL, em São Paulo

14/12/2021 17h28

O governador João Doria (PSDB-SP) disse que irá compor um comitê econômico para elaborar seu programa de governo para as eleições de 2022 —ele é pré-candidato na disputa pela Presidência da República. O anúncio deverá ser feito na próxima quinta-feira (16).

Em coletiva no Palácio dos Bandeirantes hoje, Doria disse que o grupo será composto por seis pessoas. Entre os especulados estão secretários e empresários próximos do tucano.

"Vamos anunciar o comitê econômico, que nos dará todo o assessoramento para a toda a formação da nossa proposta para a campanha de 2022. Teremos seis pessoas de alta qualificação, com uma coordenação", disse Doria.

"Não teremos um posto Ipiranga, teremos vários postos Ipiranga", provocou Doria, em referência ao Ministro da Economia, Paulo Guedes, chamado de "posto Ipiranga" pelo presidente Jair Bolsonaro (PL), desde a campanha eleitoral, em 2018. Supostamente, Bolsonaro, rival político de Doria, recorre a Guedes em caso de dúvidas.

"Esse assunto será prioridade da nossa campanha e certamente será prioridade entre os brasileiros, que estão com fome, estão desempregados, que perderam renda", afirmou o governador paulista.

Segundo o UOL apurou, entre as especulações para este comitê estão os secretários:

  • Patrícia Ellen (Desenvolvimento Econômico), braço direito do governador na área;
  • Rodrigo Maia (Projetos e Ações Estratégicas); e
  • Henrique Meirelles (Fazenda), que tem o aval de Kassab para ajudar Doria mesmo estando no PSD, legenda que lançou o senador Rodrigo Pacheco (MG).

Doria disse ainda que o principal tema de sua campanha será a criação de emprego e renda.

"Em paralelo, [é preciso criar] um esforço na economia, como fazemos em São Paulo. Aqui, temos 8 mil obras em andamento, são 200 mil empregos diretamente vinculados a essas obras, públicas, das áreas de rodovias, programas de saneamento, construção e reforma de escolas e hospitais", declarou o governador.