;(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; // 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(); })();
Topo
Notícias

Ações europeias fecham em queda leve com negociações comerciais entre EUA e China em foco

09/06/2025 14h25

Por Purvi Agarwal e Pranav Kashyap

(Reuters) - As ações europeias registraram variação negativa em uma sessão pautada por cautela nesta segunda-feira, com investidores evitando fazer grandes apostas enquanto aguardam o resultado de negociações comerciais entre a China e os Estados Unidos em Londres.

O índice pan-europeu STOXX 600 fechou em queda de 0,07%, a 553,24 pontos, após quatro sessões consecutivas de alta, sua mais longa sequência de ganhos seguidos em três semanas.

Todas as outras principais bolsas fecharam em baixa.

As negociações foram fracas, já que vários mercados, incluindo os da Suíça, Dinamarca e Noruega, estavam fechados devido a um feriado.

O setor de serviços públicos, frequentemente monitorado como um indicador de títulos, foi um dos que mais perderam, pressionado por uma queda nos títulos da zona do euro [GVD/EUR].

Com o desenrolar de uma reunião entre autoridades norte-americanas e chinesas em Londres, os mercados buscaram quaisquer sinais tangíveis de progresso que possam diminuir as tensões comerciais entre as duas economias.

"As negociações comerciais podem mudar rapidamente, em termos de um minuto, você acha que tudo está indo bem e no minuto seguinte, algo diferente aparece e, portanto, investidores estão definitivamente adotando uma abordagem muito cautelosa", disse Daniel Coatsworth, analista de investimentos da AJ Bell.

A China disse na sexta-feira que está disposta a acelerar a avaliação e a aprovação das exportações de terras raras para as empresas da União Europeia.

O setor de montadoras de automóveis --  que é mais vulnerável a quaisquer interrupções no fornecimento de terras raras -- ficou estável.

Em LONDRES, o índice Financial Times registrou variação negativa de 0,06%, a 8.832,28 pontos.

Em FRANKFURT, o índice DAX caiu 0,54%, a 24.174,32 pontos.

Em PARIS, o índice CAC-40 perdeu 0,17%, a 7.791,47 pontos.

Em MILÃO, o índice Ftse/Mib teve desvalorização de 0,35%, a 40.461,79 pontos.

Em MADRI, o índice Ibex-35 registrou baixa de 0,03%, a 14.251,30 pontos.

Em LISBOA, o índice PSI20 desvalorizou-se 0,38%, a 7.425,75 pontos.

Notícias