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

Bolsa de Moscou não opera nesta segunda após sanções econômicas à Rússia

28/02/2022 10h09Atualizada em 28/02/2022 15h15

O Banco Central da Rússia anunciou que a Bolsa de Valores de Moscou permanecerá fechada nesta segunda-feira (28) por conta dos efeitos das sanções aplicadas pelos maiores países ocidentais durante o fim de semana.

De manhã, a Bolsa já tinha ficado sem funcionar e o BC informou que avaliaria se haveria abertura de negócios ou não.

Além disso, a instituição anunciou que estava mais do que dobrando a taxa de juros básica do país — de 9,5% para 20% — para reagir à enorme desvalorização do rublo desde o início dos ataques da Rússia contra a Ucrânia no dia 24 de fevereiro. O Banco Central ainda proibiu que corretoras russas executem ordens de venda de valores mobiliários a pedido de estrangeiros.

União Europeia, Estados Unidos e Reino Unido, além de outros países alinhados aos europeus e norte-americanos, anunciaram pesadas sanções financeiras e econômicas contra membros do governo, bancos e grandes empresas russas como uma forma de responder à guerra na Ucrânia.

Entre as medidas mais duras, está a exclusão de bancos russos do sistema financeiro Swift, que permite mensagens instantâneas e a rápida emissão de ordens de pagamento nas transações de compra e venda internacionais, além de congelarem 50% dos ativos no exterior do Banco Central. Além disso, grandes empresas e instituições financeiras foram vetadas de fazer negócios nos países citados.

Nesta segunda-feira, também está previsto que os EUA anunciem mais punições aos russos.

Como era esperado, porém, essas medidas também tiveram impactos nas bolsas europeias, que fecharam em queda nas principais praças. Entre as maiores perdas, aparecem as bolsas de Milão (-1,39%), de Paris (-1,39%), de Frankfurt (-0,73%) e de Londres (-0,42%).

A bolsa italiana também anunciou a suspensão das negociações de todos os instrumentos financeiros feitos no EuroMot e EuroTlx liquidados em rublos.

Já na Ásia, a situação foi menos grave, com algumas bolsas fechando em alta (Tóquio +0,19%, Xangai +0,1%, Seul +0,8% e Shenzen +0,05%). Foram registradas quedas em Hong Kong (-0,9%) e Mumbai (-0,2%).