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

COB anuncia base do Brasil em Paris e libera espaço para família de atletas

Evento de 2 anos para Jogos Olímpicos de Paris 2024 realizado na Casa Itaim em São Paulo - 	William Lucas/COB
Evento de 2 anos para Jogos Olímpicos de Paris 2024 realizado na Casa Itaim em São Paulo Imagem: William Lucas/COB

Beatriz Cesarini

Do UOL, em São Paulo

26/07/2022 17h42

A dois anos das Olimpíadas de Paris, o Comitê Olímpico Brasileiro detalhou o planejamento para os Jogos de 2024. Em evento realizado hoje (26), na zona sul de São Paulo, os dirigentes do COB anunciaram a base do Time Brasil na capital da França e explicaram que terá um espaço reservado para a família dos atletas que estarão em competição, diferentemente do que aconteceu em Tóquio-2020, que precisou limitar o número de pessoas envolvidas por causa da pandemia de covid-19.

A base escolhida para o Time Brasil em Paris-2024 é Saint-Ouen, cidade a 600 metros da Vila Olímpica, que estará localizada em Saint Denis. A sede escolhida pelo COB terá cinco instalações com serviços e especialidades diferentes. Um dos grandes destaques é o monumento histórico Château, que será o ponto de encontro de atletas com familiares e amigos e terá alimentação brasileira.

A Escola Petit Prince funcionará como um centro de saúde para os atletas, tanto para cuidados relacionados ao bem-estar psicológico quanto para os tratamentos físicos. O Brasil também terá espaços exclusivos para o treinamento de vôlei de praia e vôlei de quadra. Por fim, a cidade de Saint-Ouen também terá um lugar exclusivo para a organização das 40 mil peças de uniformes e malas dos atletas da delegação.

"O trabalho do COB para Paris-2024 começou antes das Olimpíadas de Tóquio e essa é a concretização desse planejamento de longo prazo, trabalhado por várias mãos, em busca de oferecer e na preparação dos nossos atletas. Nós criamos estratégias e entendemos ser extremamente importante dar apoio em todos os detalhes para que os nossos atletas só se preocupem em competir", disse Ney Wilson, diretor de Alto Rendimento da entidade brasileira.

Esportes específicos como a vela, handebol, canoagem, remo e surfe, que serão realizados fora de Paris, terão bases específicas. Em Marselha, por exemplo, o COB está prestes a fechar contrato com um clube para a aclimatação dos atletas da vela. Os surfistas do time Brasil terão um local de apoio no Taiti.

Embaixadores e Arena Olímpica

No evento, o COB também anunciou o projeto de Embaixadores do Time Brasil. A entidade escolherá 10 ex-atletas que fizeram história no esporte brasileiro para apoiar os competidores da delegação durante os Jogos e engajarem a torcida nacional.

Durante os Jogos, o COB também montará a Arena Olímpica, um espaço no Brasil onde a torcida poderá se reunir para acompanhar a competição e curtir atrações relacionadas aos esportes olímpicos.

Hall da Fama do Brasil

Gustavo Borges entrou para o Hall da Fama do Brasil - Beatriz Cesarini/UOL - Beatriz Cesarini/UOL
Gustavo Borges entrou para o Hall da Fama do Brasil
Imagem: Beatriz Cesarini/UOL

Além de novidades para Paris-2024, o COB também homenageou dois grandes atletas olímpicos no evento: o ex-nadador Gustavo Borges e o ex-judoca Rogério Sampaio. Ambos entraram para o Hall da Fama do Brasil.

"Hoje é o dia da minha estreia olímpica. 26 de julho. Expectativa muito grande de estar aqui e muito feliz em receber essa homenagem. Uma história que começou em 92 e terminou em 2004. Muita emoção", disse Gustavo Borges.