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

Carolina Brígido

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

STJ vai mudar sistema para dar mais publicidade a julgamentos virtuais

Plenário do STJ -  O Antagonista
Plenário do STJ Imagem: O Antagonista

Colunista do UOL

22/02/2023 08h39

O STJ (Superior Tribunal de Justiça) deve dar mais transparência aos julgamentos do plenário virtual. Pelo sistema, os ministros não precisam se encontrar, eles postam seus votos por escrito e, ao fim de uma semana, o resultado é divulgado.

A principal reclamação dos advogados é que os votos não são divulgados na mesma hora que são postados, mas apenas ao fim de uma semana, quando o julgamento é concluído. Portanto, não é possível acompanhar o resultado parcial do julgamento, como acontece no sistema virtual do STF (Supremo Tribunal Federal). Agora, a divulgação deverá ser feita voto a voto também no STJ.

Inicialmente, a mudança vai acontecer nas discussões sobre o filtro de recebimento de processos que chegam ao tribunal. Ministros do STJ disseram à coluna em caráter reservado que, em breve, o sistema vai permitir o acompanhamento em tempo real de todos os julgamentos.

O STJ esclareceu que "o filtro da relevância, ainda a ser regulamentado pelo Congresso Nacional, implicará alteração do sistema de julgamentos do plenário virtual, e que, atualmente, a única expectativa de alteração do sistema de julgamentos do plenário virtual refere-se a implementação de tal filtro".

Nos bastidores, ministros do STJ reclamaram da mudança. Segundo eles, apenas os advogados estão interessados na divulgação voto a voto, para procurarem os ministros que já votaram, com o objetivo de tentar modificar o entendimento antes do fim do julgamento. Ainda não há previsão de quando o novo sistema ará a vigorar para todos os processos.

No início de 2020, com a pandemia de covid-19 e a adoção de medidas de distanciamento, o STF ou a realizar julgamentos por videoconferência e aumentou as votações pelo plenário virtual. O STJ seguiu o mesmo caminho.

Os dois tribunais voltaram a julgar processos no plenário presencial, mas a dinâmica dos julgamentos virtuais continuou. Os ministros consideram o método eficaz para baixar a montanha de processos aguardando decisão - e, por isso, a tendência é que as decisões tomadas em plenário virtual continuem crescendo no STF e no STJ.