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

Esse conteúdo é antigo

Boris Johnson afirma que entende a revolta dos manifestantes antirracismo

3.jun.2020 - Primeiro-ministro britânico, Boris Johnson - Chris J Ratcliffe / Getty Images
3.jun.2020 - Primeiro-ministro britânico, Boris Johnson Imagem: Chris J Ratcliffe / Getty Images

Em Londres (Inglaterra)

09/06/2020 07h22

O primeiro-ministro britânico, Boris Johnson, afirmou que entende a revolta das pessoas que protestam no Reino Unido pela morte do afro-americano George Floyd nos Estados Unidos, mas advertiu que não vai tolerar a violência nem as infrações ao distanciamento para evitar o coronavírus.

"E então eu digo que sim, vocês estão corretos, nós estamos corretos, ao afirmar que as Vidas dos Negros Importam. E a todos aqueles que escolheram protestar pacificamente e que insistiram no distanciamento social, eu digo, sim, claro que eu escuto vocês, e eu entendo", afirmou o chefe de Governo conservador em uma mensagem de vídeo divulgada na segunda-feira à noite.

As palavras de George Floyd, "Não consigo respirar", enquanto era retido no chão por um policial branco, "despertaram uma raiva e um sentimento inegável e incontroverso de injustiça", completou.

Porém, no momento em que o Reino Unido, o segundo país do mundo mais afetado pelo coronavírus, com mais de 40.000 mortes, sai gradualmente do confinamento, Johnson advertiu que "não apoiará os que desrespeitam as regras de distanciamento social, pela razão óbvia de que corremos o risco de novas infecções neste momento crítico".

"E não, eu não apoiarei nem cederei aos que violam a lei, atacam a polícia polícia ou vandalizam monumentos públicos", completou, em referência à derrubada da estátua de um comerciante de escravos em Bristol, sudoeste da Inglaterra, e aos danos provocados em uma estátua de Winston Churchill (primeiro-ministro durante a II Guerra Mundial) perto do Parlamento de Londres no fim de semana.

Quase 200 manifestações antirracistas mobilizaram mais de 100.000 pessoas no Reino Unido no sábado e domingo. Alguns distúrbios foram registrados e 135 pessoas foram detidas.

O prefeito de Londres, o trabalhista Sadiq Khan, anunciou hoje a criação de uma comissão para que monumentos e ruas da cidade reflitam a diversidade da população.

"A diversidade de nossa capital é nossa maior força, mas nossas estátuas, os nomes de nossas ruas e espaços públicos refletem uma época ada (...) Isto não pode continuar", disse, antes de destacar que os manifestantes antirracistas levaram "com razão este tema à atenção pública".