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

Questionado sobre nepotismo, Tite defende filho em ascensão na seleção

Matheus orienta Everton durante jogo entre Brasil e Venezuela pela Copa América - Lucas Figueiredo/CBF
Matheus orienta Everton durante jogo entre Brasil e Venezuela pela Copa América Imagem: Lucas Figueiredo/CBF

Danilo Lavieri, Gabriel Carneiro, Marcel Rizzo e Gabriel Carneiro

Do UOL, em Salvador (BA)

19/06/2019 01h07

A decisão de Tite de colocar seu próprio filho na comissão técnica da seleção brasileira voltou a ser tema de pergunta na coletiva de imprensa após o empate por 0 a 0 contra a Venezuela em Salvador, pela 2ª rodada da fase de grupos da Copa América. O treinador foi questionado se o nepotismo é um bom exemplo para a sociedade e se isso não contraria o discurso ético dele próprio.

O fato de Matheus Bacchi estar na comissão técnica tem ficado cada vez mais em evidência por conta de sua ascensão na hierarquia. Depois da saída de Sylvinho para dirigir o Lyon, ele ou a ser o número 2 do técnico, só atrás de Cleber Xavier.

Um reflexo dessa mudança é que Matheus ou a ficar no banco de reservas, com contato direto com os jogadores. Antes, ele ficava nas tribunas se comunicando com a comissão pelo rádio, como foi durante a Copa do Mundo da Rússia, em 2018.

"Eu tenho muito orgulho da capacidade que o Matheus tem. Ele está guinado em posições que tem condições para estar", analisou Tite. Pouco depois da resposta, ele olhou para seu filho, que estava sentado na primeira fileira da sala de coletivas.

Quando um outro repórter começava a fazer a pergunta, o gaúcho interrompeu. "Ele foi campeão brasileiro de uma maneira histórica no Corinthians. Tem história comigo", completou.

A presença de Matheus na comissão virou debate desde a entrada de Tite na seleção em 2016. Na época, os bons resultados e os debates sobre a saída de Dunga abafaram o tema.

Vale destacar que a atitude contrariava o código de ética da própria CBF, que não permitia a contratação de parentes. Para diminuir o problema, a entidade "atualizou" suas regras e permitiu a prática no departamento de futebol.