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

Carlos acompanha Bolsonaro na 1ª semana e mantém controle de redes sociais

Carlos Bolsonaro (de terno azul, ao fundo) acompanha cerimônia na Base Aérea de Brasília - Marcos Corrêa/PR
Carlos Bolsonaro (de terno azul, ao fundo) acompanha cerimônia na Base Aérea de Brasília Imagem: Marcos Corrêa/PR

Gustavo Maia

Do UOL, em Brasília

04/01/2019 16h04

Acompanhante do presidente Jair Bolsonaro (PSL) em boa parte de seus compromissos oficiais, entre eles o desfile no Rolls-Royce durante a posse, o vereador Carlos Bolsonaro (PSC-RJ) se juntou novamente ao pai na manhã desta sexta-feira (4), durante a solenidade de troca de comando da Aeronáutica, na Base Aérea de Brasília.

Na ocasião, o segundo filho mais velho do recém-empossado mandatário da República demonstrou o poder que exerce sobre as redes sociais dele desde antes da campanha rumo ao Palácio do Planalto.

No momento em que o perfil do presidente no Twitter publicou uma foto com a informação de que estava na cerimônia, às 10h59, a reportagem viu que ele estava sem o celular nas mãos, observando o ato da tribuna. 

A alguns metros do pai, Carlos, manuseava o próprio aparelho.

A imagem escolhida para a publicação deixou de fora o vice-presidente, general Hamilton Mourão (PRTB), que estava ao lado direito de Bolsonaro.

Já a foto publicada na página oficial do Palácio do Planalto na rede social mostra perfilados o ministro da Defesa, Fernando Azevedo e Silva, Mourão e Bolsonaro, além do novo e do ex-comandante da Aeronáutica, os tenentes-brigadeiros Antonio Carlos Moretti Bermudez e Nivaldo Rossato. Minutos depois, a assessoria de imprensa do presidente confirmou que Carlos "domina" as redes sociais do pai.

Em novembro, depois se ver no meio de uma polêmica sobre a sua possível indicação para o posto de secretário de comunicação do governo, o vereador disse que havia interrompido a sua participação direta na equipe do pai.

"O meu ciclo de tentar ajudar diretamente chegou ao fim. São 18 anos de vida pública dedicados ao que acredito [...] Complemento aos amigos que desde ontem não tenho mais, por iniciativa própria, qualquer ascensão às redes sociais de Jair Bolsonaro", escreveu, em dois tuítes.

Carlos ou três meses em licença não remunerada da Câmara de Vereadores do Rio de Janeiro para acompanhar a campanha do pai, e retomou o mandato na semana seguinte.

A reportagem pediu para conversar com o vereador, mas foi informada pela assessoria do presidente que ele não fala com a imprensa.

Em outro tuíte publicado no fim da manhã, o filho do presidente divulgou uma foto na qual aparece ao fundo durante a reunião ministerial realizada nesta quinta-feira (3), e disse acompanhar, aprender e "diferente do que muitos lixos da mídia dizem, sem interesse maior algum".

"Somente com intuito natural de estar perto de quem ama, tentando sempre dar um ponto de vista sabendo sempre meu lugar! Algo que provavelmente estes tais boçais não sabem o significado", escreveu.

Nesta quinta-feira (3), Carlos foi visto pela reportagem circulando pelo Palácio do Planalto.