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

Dispensado pelo Cruzeiro, volante foi o capitão do Palmeiras na Copinha

Pedro Bicalho foi o capitão do Palmeiras na Copinha - Fabio Menotti/Palmeiras
Pedro Bicalho foi o capitão do Palmeiras na Copinha Imagem: Fabio Menotti/Palmeiras

Victor Martins

Colaboração para o UOL, em Belo Horizonte (MG)

01/02/2022 04h00

Em 1º de março de 2020, o Cruzeiro venceu o Uberlândia por 2 a 1, pela 7ª rodada do Campeonato Mineiro. O goleiro gol celeste foi do volante Pedro Bicalho, então uma das promessas da base cruzeirense, e escalado como titular pelo técnico Adilson Batista. Mas pouco menos de dois anos depois, Bicalho não está mais na Toca da Raposa e é tratado como um dos destaques do Palmeiras sub-20 que conquistou a Copa São Paulo de Futebol Júnior, na semana ada.

Pedro Bicalho chegou ao Palmeiras no começo de 2021, após ser dispensado pelo Cruzeiro. Menos de um ano após estrear pela equipe profissional da Raposa e fazer um gol nas seis partidas que disputou, o volante cometeu um ato de indisciplina numa viagem do time sub-20 estrelado. Após uma derrota para a Chapecoense, no Brasileirão da categoria, em 2020, Pedro Bicalho e outros cinco jogadores teriam levado mulheres ao hotel.

"Tomamos uma atitude que pode ser controversa para muitos, para nós não. Abrimos mão de cinco titulares do time sub-20 do Cruzeiro em razão de gravíssima indisciplina praticada contra a instituição, após uma derrota, o que é ainda mais agravante", explicou o presidente Sérgio Santos Rodrigues à época.

Pedro Bicalho disputou seis jogos pelo profissional do Cruzeiro e marcou um gol - Bruno Haddad/Cruzeiro - Bruno Haddad/Cruzeiro
Pedro Bicalho, meio-campista do Cruzeiro
Imagem: Bruno Haddad/Cruzeiro

Além de Pedro Bicalho, o Cruzeiro também liberou de todos os demais atletas envolvidos no ato de indisciplina: o zagueiro Gabriel Medina, o lateral-direito Israel, os meias Guilherme Liberato e Choco e o atacante Alexandre Jesus.

Pedro Bicalho tinha contrato com o Cruzeiro até abril de 2021 e naquele momento negociava a renovação por mais três temporadas. Apesar de ser considerado um atleta capaz de dar retorno técnico e financeiro ao clube, a diretoria cruzeirense rescindiu o vínculo. Livre no mercado, Bicalho tinha propostas do Atlético-MG e do Palmeiras. A escolha foi pela equipe paulista, que apresentou uma oferta superior. Não demorou para o volante conquistar espaço dentro do clube alviverde, inclusive com alguns minutos na equipe principal.

Capitão do Palmeiras na conquista da Copinha, Pedro Bicalho não pode jogar mais na base palmeirense. Próximo de completar 21 anos, o destino dele deve ser o futebol nordestino. Bahia e Sport, adversários do Cruzeiro na Série B, já demonstraram interesse em receber o volante por empréstimo.

"Vejo com bons olhos. Eu preciso jogar, preciso mostrar meu futebol. Como o Wesley, aqui do nosso profissional, que jogou a Série B pelo Vitória e voltou com mais moral", comentou Bicalho.

O vínculo do jogador com o Palmeiras vai até dezembro de 2022, mas o staff do atleta e o clube paulista já negociam a renovação de contrato.