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

Esse conteúdo é antigo

Josias: Eduardo Leite transforma declaração em ato político necessário

Do UOL, em São Paulo

02/07/2021 09h25

Ao dizer publicamente pela primeira vez que é homossexual, o governador do Rio Grande do Sul, Eduardo Leite (PSDB), transformou sua declaração em um ato político necessário diante do cenário brasileiro, avalia o colunista Josias de Souza em participação no UOL News.

Em entrevista ao programa Conversa com Bial, da TV Globo, Eduardo Leite disse que nunca negou sua orientação sexual, mas que evitou 'criar um personagem' na política em cima do assunto.

Para Josias de Souza, a declaração de Eduardo Leite ganha peso diante do cenário atual do Brasil, governado por Jair Bolsonaro (sem partido).

"Depois que o Bolsonaro introduziu na conjuntura brasileira da macheza ostentação, declarar-se gay ou exaltar a própria orientação sexual tornou-se uma desnecessidade absolutamente necessária. O governador do RS, Eduardo Leite, transforma sua declaração em ato político e necessário nesse momento que vivemos", disse.

No comentário, Josias explicou o termo "macheza ostentação" e lembrou de insinuações do presidente e de seus aliados em relação a Eduardo Leite

"O Bolsonaro já fez insinuação em relação a ele, [o Eduardo Leite] é atacado constantemente nas redes sociais pelo bolsonarismo, Roberto Jefferson também fez declarações homofóbicas. [A declaração] é absolutamente necessária neste ambiente que estamos vivendo", disse.

"Veja o tipo de declaração em relação à pandemia. Ele [Bolsonaro] diz que deve enfrentar o vírus como homem, não como maricas, que o Brasil precisa deixar de ser país de maricas. A isso que me refiro quando digo que o presidente inaugurou o modelo macheza ostentação", completou.

Josias de Souza ainda acredita que a declaração de Eduardo Leite pode ajudar no debate para as próximas eleições presidenciais.

"Neste ambiente, acho que foi um gesto de muita coragem que seria desnecessário, mas nesse momento a desnecessidade se tornou absolutamente necessária. É muito louvável. Seria interessante que esse tema entrasse na pauta da próxima sucessão presidencial. Num país como o nosso em que gays ainda são atacados na rua e até assassinados, seria muito bom que esse tema viesse à tona", disse.