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

Alberto Bombig

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Grupo de Rodrigo Garcia negocia com Tarcísio manter o comando da Habitação

Tarcísio (Republicanos) e Bolsonaro (PL) participam de evento no Palácio dos Bandeirantes a convite do governador Rodrigo Garcia (PSDB) - Felipe Pereira/UOL
Tarcísio (Republicanos) e Bolsonaro (PL) participam de evento no Palácio dos Bandeirantes a convite do governador Rodrigo Garcia (PSDB) Imagem: Felipe Pereira/UOL

Colunista do UOL

21/10/2022 10h50Atualizada em 21/10/2022 13h34

O grupo do governador Rodrigo Garcia no PSDB e na União Brasil quer continuar à frente da Secretaria da Habitação de São Paulo se Tarcísio Gomes de Freitas (Republicanos) for eleito no dia 30 para ocupar o lugar do tucano, derrotado no primeiro turno.

O pedido já foi formalizado ao candidato, líder nas mais recentes pesquisas, por interlocutores de ambos. Tarcísio, por ora, tem evitado assumir compromissos com aliados em torno da montagem de um futuro governo. O ex-ministro de Jair Bolsonaro tem dito que pretende formar um primeiro escalão com quadros "técnicos".

Em jantar na quinta-feira (20) no Palácio dos Bandeirantes com Jair Bolsonaro (PL) e Tarcísio, Rodrigo Garcia estava acompanhado, entre outros, de Flávio Amary, o atual secretário da Habitação. A proposta é para que ele permaneça no cargo se Tarcísio vencer o segundo turno contra Fernando Haddad (PT). Mas Amary teria outros planos,

Outros nomes apresentados pelo grupo do governador são os do deputado federal eleito Fernando Marangoni, ex-secretário executivo da Habitação, e o de Geninho Zuliani, que foi candidato a vice de Rodrigo, ambos da União Brasil.

A aliados, Tarcísio disse que o controle da Sabesp e do Metrô ele fará questão de manter com ele. Ou seja, não aceitará indicações para esses cargos. Há forte pressão sobre o candidato do Republicanos para o que o controle da Secretaria de Logística e da Dersa permaneçam com o vereador de São Paulo Milton Leite (União Brasil).

A Secretaria da Habitação está entre as mais cobiçadas na estrutura do governo paulista. Por sua ligação direta com o cidadão, sempre foi compreendida como um instrumento importante para o exercício da política. Por isso, ela seria vital para o grupo de Rodrigo Garcia em São Paulo.

O deputado federal Eduardo Bolsonaro (PL-SP), filho do presidente da República, também participou do jantar no Bandeirantes. Antes de Tarcísio ter sido oficializado candidato, ele procurou Rodrigo Garcia para dizer que o pai gostaria de ter o atual governador como seu nome na eleição no estado. O tucano, porém, recusou o convite porque acreditava ser possível encarnar uma terceira via e derrotar a polarização.

Segundo apurou a coluna, o pedido de Garcia não representa o PSDB-SP e é tratado como "cota pessoal" do governador com o apoio de setores da União Brasil. Rodrigo também estaria trabalhando nos bastidores para ser ministro de Bolsonaro caso o presidente seja reeleito.

Após a publicação da reportagem, a assessoria de Rodrigo Garcia entrou em contato com a coluna para dizer que o governador não tratou de indicações com Tarcísio e com Bolsonaro. Segundo ele, nenhum nome é de sua "cota pessoal".