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

Vasco

Vasco estreita laços com Grupo City após venda de Talles Magno

Encontro dos CEO"s: Brad Sims, do New York City (esq.) e Luiz Mello, do Vasco da Gama (dir.) - Divulgação / NYCFC
Encontro dos CEO's: Brad Sims, do New York City (esq.) e Luiz Mello, do Vasco da Gama (dir.) Imagem: Divulgação / NYCFC

Do UOL, no Rio de Janeiro

21/05/2021 20h24

Além de um negócio que rendeu R$ 42 milhões e que pode chegar a R$ 63 milhões, a venda de Talles Magno pode gerar mais frutos ao Vasco. Com elogios mútuos por conta da condução das tratativas ao longo de dois meses, a relação entre o clube e o "Grupo City" se estreitou ainda mais com o acompanhamento do CEO cruzmaltino, Luiz Mello, ao jovem atacante em sua chegada ao New York City (EUA).

Em nota oficial, o Vasco explicou o que classificou de "benchmarking" (avaliação corporativa) com a empresa que gerencia o Manchester City, o New York City, o Melbourne City, entre outros.

"O Vasco da Gama busca as melhores referências em futebol no mundo e o New York City é uma delas. Aproveitando essa nossa negociação bem sucedida do Talles, eu tive a oportunidade de conversar bastante com várias pessoas da área de gestão deles, incluindo o CEO do City, o Brad (Sims), e tivemos a oportunidade de tocar em diferentes tópicos relativos a istração", declarou Luiz Mello.

O CEO vascaíno também revelou que já houve um trabalho conjunto entre os clubes no ato da venda de Talles Magno para o New York City:

"Na prática, a gente já conseguiu fazer um anúncio casado (do Talles) entre as equipes de Comunicação deles e nossos departamentos de Relações Públicas e Marketing, as informações técnicas entre os departamentos de Futebol dos dois lados fluíram bem também, como informações médicas, estatísticas, de performance, etc. Nós temos conversado sobre outros tipos de parcerias, então foi um prazer ar essa semana em Nova Iorque junto com o Talles e com toda a equipe istrativa do NYC FC. Nosso objetivo é conseguir parcerias cada vez mais concretas a partir dessa visita".

Diretor-esportivo do NYCFC elogiou "profissionalismo" do Vasco

Em entrevista ao site oficial do New York City, o diretor-esportivo do clube, David Lee, já havia elogiado o "profissionalismo" do diretor-executivo de futebol, Alexandre Pássaro, e do CEO, Luiz Mello:

"Agradeço também aos dirigentes do Vasco da Gama, Alexandre Pássaro e Luiz Mello, pelo profissionalismo ao longo deste processo. Desejamos a eles muita sorte para a próxima temporada, pois eles buscam ser promovidos de volta à Série A".

Vasco