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

Palmeiras

PVC: Bragantino aceita reduzir valor para vender Artur; Palmeiras monitora

Do UOL, em São Paulo (SP)

06/03/2023 16h15

O Red Bull Bragantino estuda reduzir o valor exigido para negociar o atacante Artur, um dos destaques da equipe paulista.

De acordo com o colunista do UOL Paulo Vinicius Coelho, o PVC, o Red Bull Bragantino aceita negociar com o Palmeiras, que monitora a situação do atacante, caso o alviverde sinalize com uma proposta de 10 milhões de euros (cerca de R$ 55 milhões, na cotação de hoje). O valor é semelhante ao que havia sido oferecido por um clube do Qatar, mas Artur preferiu seguir no Brasil na ocasião.

A informação foi trazida no programa De Primeira, que vai ao ar de segunda a sexta, às 15h, no canal do UOL Esporte no YouTube.

Perícia rápida demais no Ninho do Urubu

Leo Burlá trouxe bastidores da apuração exclusiva do UOL da tragédia do Ninho do Urubu, do Flamengo.

"Entramos em contato com um professor da Uerj, que confirmou que a perícia em 8 horas por parte da polícia pode ter sido rápida demais"

Flamengo pode aceitar proposta do Bahia por Marinho

Marcelo Hazan trouxe detalhes sobre o possível destino do atacante de 32 anos.

"Nos bastidores a informação é de que que o Fla não topou negociar Marinho em outras oportunidades por ter recebido propostas para dividir o pagamento dos salários do atacante."

Neymar fará cirurgia novamente

Igor Siqueira traz bastidores de como a nova lesão de Neymar pode afetar a seleção brasileira.

"A situação dele demanda um cuidado maior, por isso os 4 meses de recuperação. O médico Rodrigo Lasmar tem esse conhecimento sobre a lesão dele, lá em 2018. Aquela que precisou de um parafuso para estabilizar o tornozelo dele."

Bastidores da volta de Andrey ao Vasco

Igor Siqueira confirma que durante as negociações do Chelsea com o Cruz-Maltino foi colocada na mesa a possibilidade de eventual insucesso na licença de trabalho na Inglaterra.
"O Vasco já tentou se colocar à frente de outros possíveis concorrentes, pedindo ser notificado caso a licença não saísse."

Mata-mata do Paulistão é divulgado

Talisca diz não ao Corinthians

Samir Carvalho traz bastidores de uma sondagem do Timão ao meia atacante do Al Nassr, da Arábia Saudita.

"Ele teria que abaixar muito a pedida salarial para acertar com o Corinthians, sem contar que ele joga hoje com o Cristiano Ronaldo"

Assista ao De Primeira na íntegra

Palmeiras