;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

OPINIÃO

Josias: Debate sobre moeda única gera mal-estar e interessa pouco ao Brasil

Colaboração para o UOL, em São Paulo

23/01/2023 09h48

A viagem de Lula à Argentina começou com uma polêmica em torno dos planos de criação de uma moeda única para transações comerciais dentro do Mercosul. Há um debate se essa nova moeda também substituiria o real e o peso, nos mesmos moldes em que o euro foi adotado pelos países da União Europeia.

No UOL News - Manhã desta segunda, Josias de Souza apontou como essa discussão confusa não interessa ao Brasil. O colunista citou a entrevista de Sergio Massa, ministro da Economia da Argentina, ao Financial Times e disse que este debate sobre a criação de moeda única semelhante ao euro vale mais para o país vizinho.

Essa visita começou com um ruído e causou um certo mal-estar na chegada do Lula. Há uma grande confusão, que aparentemente interessa aos argentinos. Até do ponto de vista eleitoral. O que está em discussão, que é uma moeda comum para as transações comerciais, é muito interessante para a Argentina, que tem reservas baixíssimas. Não faz o menor sentido abandonarmos o real. Josias de Souza, colunista do UOL

Josias: Por contorno político do 8/1, militares deveriam ir à Justiça comum

A punição a militares e parlamentares envolvidos nos atos golpistas de 8 de janeiro esbarra em vetos de Jair Bolsonaro (PL) a trechos da Lei do Estado Democrático de Direito. Josias cobrou a derrubada dessas medidas e que todos os envolvidos, sejam militares ou políticos, sejam investigados pela Justiça comum.

Esses vetos precisam ser derrubados. Isso é inquestionável. Não há que se falar nesse momento em atenuar pena de militares e facilitar a vida de políticos que difundiram mensagens que estimularam o 8 de janeiro. Esses crimes têm contorno político e não faz sentido deixar os militares sendo cuidados por seus pares. Todos têm que ser julgados pela Justiça comum. Josias de Souza, colunista do UOL

Perda de soberania da Amazônia no governo Bolsonaro foi para o crime organizado, diz Jamil Chade

A crise humanitária dos ianomâmis chocou o mundo. Jamil Chade chamou a atenção para o descaso de Jair Bolsonaro com os povos indígenas e como o governo dele teve contribuição decisiva para a perda de soberania sobre a Amazônia - e não para países ricos, mas sim criminosos. O colunista também mostrou como a viagem de Lula à Argentina sinaliza que o Brasil voltou a se preocupar com questões ambientais.

Nos últimos quatro anos, enquanto o governo Bolsonaro falou de soberania da Amazônia, ela nunca foi tão ameaçada quanto nesses quatro anos. Por quem? Por potências estrangeiras? Não; pelo crime organizado, que a a dominar uma área que é do Estado. Jamil Chade, colunista do UOL

O UOL News vai ao ar de segunda a sexta-feira em três edições: às 8h, às 12h e às 18h. O programa é sempre ao vivo.

Quando: de segunda a sexta, às 8h, às 12h e 18h.

Onde assistir: Ao vivo na home UOL, UOL no YouTube e Facebook do UOL.

Veja a íntegra do programa: