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

Parlamentares do NE criticam Bolsonaro; no Twitter, ele chama general de 'melancia'

Jair Bolsonaro em café da manhã com correspondentes internacionais - Marcos Correa/Presidência/Divulgação
Jair Bolsonaro em café da manhã com correspondentes internacionais Imagem: Marcos Correa/Presidência/Divulgação

Thaís Barcellos

São Paulo

21/07/2019 11h24Atualizada em 21/07/2019 14h32

O Colegiado de Presidentes de Assembleias Legislativas dos Estados do Nordeste (ParlaNordeste) divulgou nota em que classifica como preconceituosas as declarações do presidente Jair Bolsonaro, que se referiu aos governadores da região com o termo "paraíbas".

Na sexta-feira (19), em conversa com o ministro da Casa Civil, Onyx Lorenzoni, sem saber que estava sendo gravado, Bolsonaro disse: "Daqueles governadores de Paraíba, o pior é o do Maranhão. Não tem que ter nada para esse cara".

A conversa ocorreu pouco antes de começar o café da manhã do presidente com jornalistas de veículos internacionais, e o áudio foi captado pela TV Brasil, canal oficial do governo, que transmitiu o encontro na íntegra.

"O Colegiado de Presidentes de Assembleias Legislativas dos Estados do Nordeste (ParlaNordeste) recebeu, com repulsa, as declarações preconceituosas do presidente da República, Jair Bolsonaro", disse o ParlaNordeste em nota.

Na nota, o colegiado destaca que a região é a terceira maior economia do país e que seus 53 milhões de habitantes têm orgulho de viver "não só na Paraíba, mas também no Maranhão, em Pernambuco, Alagoas, Sergipe, Bahia, Rio Grande do Norte, Ceará e Piauí".

O ParlaNordeste disse que ainda saúda o trabalho realizado pelos nove governadores da região e disse que vai lutar contra todo tipo de retaliação e função de diferenças políticas ou preconceito. "Exigimos respeito e não abriremos mão do cumprimento dos deveres do Governo Federal para com a nossa região", finaliza a nota.

Bolsonaro chama general de 'melancia'

Hoje, em sua página oficial no Twitter, Bolsonaro voltou a dizer que não fez nenhuma crítica ao povo nordestino. "'Daqueles GOVERNADORES... o pior é o do Maranhão'. Foi o que falei reservadamente para um ministro. NENHUMA crítica ao povo nordestino, meus irmãos."

O presidente ainda ironizou o general da reserva Luiz Rocha Paiva, que chamou o comentário de Bolsonaro de "antipatriótico" e "incoerente".

"Mas o melhor de tudo foi ver um único general, Luiz Rocha Paiva, se aliar ao PCdoB de Flávio Dino, para me chamar de antipatriótico. Sem querer descobrimos um melancia, defensor da Guerrilha do Araguaia, em pleno século XXI", completou Bolsonaro no Twitter.

Ainda no mesmo assunto, em outra publicação na rede social, o presidente mencionou que, em dois anos, o porto de Itaqui, no Maranhão, estará ligado, por ferrovia, ao porto de Santos, e aproveitou para dizer que fará muito pelo Nordeste em seu mandato "apesar da mídia e alguns governadores".

Sem saber que era gravado, Bolsonaro critica governadores do Nordeste

UOL Notícias