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

Corinthians

Corinthians: Burocracia do Brasileiro dá a Giuliano 3 semanas de preparação

Corinthians anunciou a contratação de Giuliano - Divulgação/Corinthians
Corinthians anunciou a contratação de Giuliano Imagem: Divulgação/Corinthians

Yago Rudá

Do UOL, em São Paulo

17/07/2021 04h00

Primeiro reforço do Corinthians para a temporada 2021, o meia Giuliano terá duas a três semanas para se readaptar ao futebol brasileiro e conhecer seus novos companheiros de trabalho no CT Joaquim Grava. Embora estivesse livre no mercado, o último clube do jogador foi o Istambul Basaksehir, da Turquia, e por conta disso, sua estreia apenas poderá acontecer a partir do dia 1º de agosto — data de abertura da janela de transferências da Europa. O próximo jogo após esta data, é contra o Santos, na Vila Belmiro, pela 15ª rodada do Campeonato Brasileiro, em7 de agosto.

De acordo com o artigo sétimo do regulamento do torneio, os atletas recém-chegados poderão participar dos jogos com a condição de que seus nomes tenham sido publicados no BID (Boletim Diário Informativo) no último dia útil que anteceder a cada partida. Como o dia 1º de agosto é um domingo, Giuliano apenas poderá ser regularizado no dia seguinte. Portanto, o meia está fora do duelo com o Flamengo, na Neo Química Arena, que acontece justamente no dia que abre o mês.

Na tarde de ontem, quando chegou ao CT Joaquim Grava para conhecer as instalações do Corinthians, Giuliano foi submetido a uma série de exames e testes físicos pelos médicos, fisiologistas e preparadores do clube. Os resultados definirão o cronograma da comissão técnica para a integração do jogador ao grupo, a estreia deve mesmo acontecer na Vila Belmiro, em três semanas, pelo Brasileirão,

O último jogo do meia no futebol turco aconteceu no dia 25 de abril. Dali em diante, o reforço do Corinthians rescindiu com o Istambul Basaksehir, retornou ao Brasil, focou na decisão sobre o futuro de sua carreira ao analisar as propostas que tinha em mesa, mas não deixou de cuidar da parte física, realizando alguns treinamentos no período.

Ainda não há uma data definida pelo Corinthians para que o meia seja apresentado no CT Joaquim Grava, mas já na próxima segunda-feira (19) o reforço estará trabalhando com o restante do elenco.

Corinthians