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

Madeleine Lacsko

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Tarcísio encerra os quase 30 anos de dobradinha PT e PSDB em São Paulo

Lula e Tarcísio se reúnem em Brasília - 11.jan.2023 - Ricardo Stuckert/Divulgação
Lula e Tarcísio se reúnem em Brasília Imagem: 11.jan.2023 - Ricardo Stuckert/Divulgação

Colunista do UOL

13/03/2023 18h46

Tarcísio de Freitas encontrará em São Paulo uma realidade parlamentar exatamente oposta àquela que se impôs ao presidente Lula.

No plano federal, foi mandatório fazer concessões importantes. O presidente da Câmara, Arthur Lira, era bolsonarista de quatro costados, de receber elogio em palanque eleitoral da campanha. Houve a necessidade de compor e apoiar a candidatura. Não havia nenhum nome que Lula pudesse lançar com sucesso.

Em São Paulo, o governador consegue lançar o próprio nome, que deve chegar carimbado como líder de sua tropa de choque. Segundo reportagem de Saulo Pereira Guimarães aqui no UOL, André do Prado deve ter mais de 80 dos 94 votos de deputados estaduais paulistas.

É uma situação bem favorável para que o plano de governo do Poder Executivo seja levado adiante sem grandes empecilhos. O presidente da casa legislativa tem o condão de pautar literalmente o que quiser, estabelecer as prioridades dos projetos.

Arthur Lira cobra caríssimo para manter as prioridades do governo Lula no topo da lista. André do Prado está lá justamente para levar adiante as prioridades do governo.

Além disso, se encerra uma situação de acomodação que persistia desde o primeiro governo de Mário Covas, em 1995. São quase 30 anos em que o presidente da Assembleia Legislativa era do PSDB ou quase isso. A única exceção à regra foi Rodrigo Garcia, que era do DEM, mas estava na copa e cozinha do governo estadual e agora é tucano.

Em todas essas legislaturas, a oposição foi acomodada com cargos na mesa diretora. A poderosa Primeira Secretaria, responsável por atos fundamentais da organização da casa, era mantida sistematicamente com o PT, principal partido da oposição.

Esse equilíbrio funcionou favoravelmente em todos os governos do PSDB. O PT sempre fez oposição com muitos deputados aguerridos, mas nenhum governo foi inviabilizado. Havia interesse em demonstrar a oposição, mas mantendo o poder que viabilizava a atuação de muitos deputados no Estado.

O fim dessa era não é derrota do PT, mas a oficialização do derretimento do PSDB, atropelado pelo fenômeno Bolsodória. O fato mais significativo nesse movimento é Geraldo Alckmin ter se tornado o vice de Lula. Na verdade, os tucanos já haviam começado a se desmantelar nas prévias que escolheram João Dória para candidato a prefeito de São Paulo.

Naquela época, quadros históricos do PSDB buscaram novas alternativas políticas, reclamando de injustiça. Andrea Matarazzo foi o nome mais significativo que inaugurou uma verdadeira romaria de tucanos descontentes para o ninho de Gilberto Kassab, o PSD. Na época, a análise era que o político teve uma reação emocional, o PSD afundaria e o PSDB seguiria todo-poderoso no Estado. Hoje sabemos que ele fez o cálculo correto.

Diversos quadros parlamentares valiosos foram perdidos pelo PSDB ao longo dos anos ao verem tesourados seus anseios de ir para o Poder Executivo. Eduardo Paes e Gustavo Fruet mostraram que eram viáveis nas urnas depois de deixar o partido.

Essa foi exatamente a ambição do vice de Tarcísio de Freitas, o ex-prefeito de São José dos Campos Felício Ramuth. Tucano raiz, com 28 anos de trabalho organizando campanhas vitoriosas e bom trâmite no Estado, deixou o PSDB pelo PSD com a ambição de ser candidato ao Executivo.

Não seria viável na cabeça de chapa mas, nas mãos hábeis de Gilberto Kassab, conseguiu ser um vice com espaço de ação no governo de Tarcísio de Freitas, que não tinha raízes em São Paulo. O PSDB descontente, agora abrigado pelo PSD, acabou virando essa base.

Muita gente especula se o governador de São Paulo pode se qualificar a herdeiro do bolsonarismo. É, no entanto, uma herança maldita. O espólio da oposição ao PT sem os delírios do bolsonarismo é muito mais interessante.