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

Márcio França acena a Bolsonaro e PDT cogita veto a aliança com o PSB

Aproximação de Márcio França com o presidente Jair Bolsonaro afasta aliados - Fernando Moraes/UOL
Aproximação de Márcio França com o presidente Jair Bolsonaro afasta aliados Imagem: Fernando Moraes/UOL

Ricardo Galhardo e Pedro Venceslau

12/08/2020 09h07

A ida do ex-governador paulista e pré-candidato a prefeito da capital pelo PSB, Márcio França, a um evento com o presidente Jair Bolsonaro (sem partido), na sexta-feira ada (7), em São Vicente, constrangeu o PDT e ameaça uma aliança entre os partidos em São Paulo. Sem citar nomes, o presidente do PDT, Carlos Lupi, mandou um recado claro ontem por meio de suas redes sociais.

"O PDT não irá tolerar pré-candidato vinculado ao bolsonarismo. Se houver algum caso, terá sua pré-candidatura suspensa. Estaremos atentos se houver qualquer denúncia", escreveu o dirigente.

O post de Lupi também foi interpretado como um contraponto ao PT, que, na semana ada, aprovou uma aliança com o prefeito de Belford Roxo (RJ), Wagner Carneiro, o Waguinho (MDB), aliado de Bolsonaro.

França participou de um evento oficial da Presidência da República em São Vicente, no litoral paulista, sua base eleitoral. Bolsonaro foi à cidade vistoriar a reforma de uma ponte cuja obra foi alvo de disputa entre o prefeito Pedro Gouvêa (MDB), cunhado de França, e o governador João Doria (PSDB).

O pré-candidato do PSB foi convidado na véspera pelo próprio Bolsonaro por meio de uma chamada de vídeo para o celular de Paulo Skaf, presidente da Fiesp (Federação das Indústrias do Estado de São Paulo) — e atualmente um dos principais aliados do Palácio do Planalto no Estado.

Na chamada, França disse que está arrecadando donativos para os moradores de Beirute, capital do Líbano, abalada por uma série de explosões na região portuária, na semana ada. Bolsonaro se comprometeu a conseguir um avião para transportar o material. A mulher de França, Lúcia, é descendente de libaneses.

O encontro, no entanto, foi interpretado como um sinal político. O ex-governador de São Paulo usa como referência para sua estratégia de campanha o mapa dos votos que obteve na capital no 2° turno da disputa para o governo.

O pessebista venceu com folga nas franjas da cidade e avançou sobre o eleitorado "azul do centro", que, historicamente, vota contra o PT. Para atrair o eleitor bolsonarista, França vai repetir a estratégia de resgatar sua bandeira de campanha do alistamento cívico ao mesmo tempo em que já se coloca como o candidato "anti-Doria".

O presidente nacional do PSB, Carlos Siqueira, disse que foi avisado previamente por França do encontro e rechaçou de forma veemente que exista uma aproximação entre França e Bolsonaro.

'Sectarismo'

"Isso é completamente improcedente. Ele (França) estava junto com a comunidade libanesa (Skaf também é descendente de libaneses) e queria tratar de uma questão humanística. Não tem nada mais do que isso e nem poderia ter. Não há nenhuma identidade que possa nos aproximar", declarou o presidente do PSB.

Segundo ele, o fato de França ter aceitado o convite de Bolsonaro "não significa nada". "Minha preocupação com isso é zero. Acho que é especulação daqueles que estão com receio de disputar com ele. Este tipo de sectarismo já foi faz muito tempo."

'Dois senhores'

O episódio animou o PCdoB — cujo pré-candidato em São Paulo é o deputado federal Orlando Silva — a tentar uma aproximação com o partido do ex-ministro e ex-governador Ciro Gomes.

O PCdoB viu no gesto de França uma chance. "Márcio França não pode servir a dois senhores. Ele está, como dizia Brizola, costeando o alambrado. Se tem um tema de convergência no campo democrático é a crítica ao Bolsonaro", disse o pré-candidato do PCdoB, Orlando Silva.

Presidente municipal do PDT e pré-candidato a vice na chapa de França, Antonio Neto minimizou. "Não houve intenção de fazer um gesto político. França é, com certeza, um pré-candidato de centro esquerda", disse Neto. "Em 2012, o PCdoB não se importou quando (Paulo) Maluf apoiou (Fernando) Haddad."

As informações são do jornal O Estado de S. Paulo.