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

Tales Faria

Na briga pelo Congresso Arthur Lira acena ao PT e o DEM, para Bolsonaro

Rodrigo Maia (à esq.) e Arthur Lira (centro) buscam "o avesso do avesso do avesso" na eleição da Câmara - Agência Câmara
Rodrigo Maia (à esq.) e Arthur Lira (centro) buscam "o avesso do avesso do avesso" na eleição da Câmara Imagem: Agência Câmara

Chefe da Sucursal de Brasília do UOL

09/12/2020 10h01

Receba os novos posts desta coluna no seu e-mail

Email inválido

Os pobres mortais apostam no óbvio: na disputa pela presidência da Câmara, a esquerda deve se aliar ao candidato escolhido por Rodrigo Maia (DEM-RJ) —que faz oposição ao presidente Bolsonaro— e não ao candidato do governo, Arthur Lira (PP-AL).

Mas vale para a política aquela música do Caetano Veloso sobre São Paulo. Dizia: "Porque és o avesso do avesso do avesso do avesso/ do povo oprimido nas filas, nas vilas, favelas/ da força da grana que ergue e destrói coisas belas".

Arthur Lira, que lança formalmente hoje sua candidatura, está em plena conversa com as oposições. Tem prometido que não fará da Câmara um anexo do Palácio do Planalto. Oferece, caso seja eleito, apoio a um projeto com novas formas de financiamento dos sindicatos, mudanças na Lei da Ficha Limpa e até não levar adiante pautas de costumes conservadores defendidas pelo governo Bolsonaro.

Já conversou com o líder do PT, Enio Verri (PR), e o líder da Minoria, José Guimarães (PT-CE). Ele manteve uma vídeoconferência com a bancada do PCdoB que durou uma hora e esteve com o governador de Pernambuco, Paulo Câmara, do PSB.

As promessas de combate ao lavajatismo e financiamento aos sindicatos podem seduzir a esquerda e deixam o grupo de Rodrigo Maia de orelha em pé.

Mas o DEM não está parado. Maia também já ofereceu uma pauta de projetos de interesse da esquerda que seria seguida pelo candidato que vier a anunciar à sua sucessão.

E o presidente nacional do partido e prefeito de Salvador, ACM Neto, também está trabalhando. Em um tour por Brasília tem acenado para "o avesso do avesso do avesso". Ele defende, por exemplo, que é hora de Bolsonaro "abandonar o radicalismo" e que, se isso ocorrer, poderá contar com a ajuda do DEM.

ACM Neto não ofereceu ao Planalto a adesão formal de seu partido ao governo. Mas aponta para algo mais precioso: 2022. Se Bolsonaro se converter, o próprio prefeito pode vir a ser uma opção para vice em aliança com o atual presidente da República repaginado.

Com a saída de Rodrigo Maia do comando da Câmara, ACM Neto deverá assumir um protagonismo maior no partido. Não quer dizer que ele e Rodrigo estejam jogando separados. Apenas preparando a legenda para o caminho que se desenhar melhor nos próximos dois anos.

Rodrigo e ACM Neto apontam que o partido tanto pode fechar uma candidatura do autodenominado "Centro democrático" (DEM, Cidadania, MDB, Solidariedade e uma parcela do PSDB), tipo Luciano Huck, como pode ir com o tucano João Doria de cabeça de chapa, ou o PDT de Ciro Gomes e, até, com o atual presidente da República, se ele amainar o radicalismo dos bolsonaristas.

Rodrigo e ACM Neto são opções para chapas em qualquer dessas direções. Quanto a Arthur Lira, há na oposição quem avalie que ele pode se tornar o Eduardo Cunha de Dilma Roussef. Ou seja, o presidente da Câmara, então aliado pelo centrão, que rompeu e destruiu o governo do PT.

A conclusão de tudo isso é que ainda é cedo para adivinhar onde vai parar "o avesso, do avesso, do avesso" na política.