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

Bolsas da Europa operam mistas e sem força, à espera de novidades de diálogo entre EUA e China

10/06/2025 07h08

Por Sergio Caldas

São Paulo, 10/06/2025 - As bolsas europeias operam mistas e sem força na manhã desta terça-feira, enquanto investidores aguardam novidades do segundo dia de negociações comerciais entre EUA e China.

Por volta das 6h50 (de Brasília), o índice pan-europeu Stoxx 600 tinha baixa marginal de 0,09%, 552,74 pontos.

Representantes dos EUA e da China retomaram discussões em Londres agora pela manhã na tentativa de fechar um acordo comercial, após os dois países recentemente trocarem acusações de violação da atual pausa nas tarifas bilaterais. Ontem, após o primeiro dia de conversas, o presidente Donald Trump comentou que a China "não é um país fácil", mas ressaltou que as negociações estão "indo bem".

Na Alemanha, as ações das empresas de defesa Renk e Rheinmetall amargavam perdas de 8,8% e 2,7%, respectivamente, à espera de detalhes das conversas sino-americanas, que devem em boa parte focar o comércio de terras raras, minerais que são cruciais para a manufatura de armas e outras tecnologias de defesa.

Já em Zurique, o UBS tombava 6,6%, dias após o governo da Suíça propor regras mais severas que poderá forçar o banco suíço a reservar mais US$ 26 bilhões em capital.

A Novo Nordisk, por outro lado, saltava 2,4% em Copenhague, após relatos de que o fundo de hedge ativista Parvus Asset Management está buscando conquistar uma participação relevante na farmacêutica dinamarquesa para influenciar a escolha de seu novo CEO.

Às 7h05 (de Brasília), a Bolsa de Londres subia 0,44%, a de Paris se mantinha estável e a de Frankfurt caía 0,42%. Entre mercados europeus menores, a de Milão cedia 0,07%, a de Madri avançava 0,13% e a de Lisboa tinha ganho de 0,15%.

Contato: [email protected]

Notícias