;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Servidores chamam reforma de 'caixa preta' e dizem que 'agora é guerra'

Proposta de reforma deve ar pelo Congresso Nacional - Pedro Ladeira/Folhapress
Proposta de reforma deve ar pelo Congresso Nacional Imagem: Pedro Ladeira/Folhapress

Lorenna Rodrigues

Brasília

02/09/2020 19h35

Às vésperas do envio da reforma istrativa pelo governo federal, que mudará as regras para novos integrantes do serviço público, os atuais servidores reclamam de falta de diálogo do governo sobre a proposta. As categorias já estão se mobilizando para atuar junto a parlamentares e na Justiça.

"Agora, vai se abrir uma guerra como foi com a reforma da Previdência, com emendas e judicialização. Estamos nos preparando para agir, depende do que vem e como vem", afirmou Rudinei Alves, presidente do Fórum Nacional Permanente de Carreiras Típicas de Estado (Fonacate), que representa 200 mil servidores de áreas como comércio exterior e fiscalização.

O governo deve encaminhar na quinta-feira, 3, uma proposta de reforma istrativa. As mudanças, no entanto, deverão valer apenas para novos servidores.

O presidente do Sindicato Nacional dos Auditores Fiscais (Sindifisco), Kleber Cabral, disse que não houve nenhum diálogo do Executivo com as entidades de classe que representam os servidores públicos. "A chamada reforma istrativa é uma caixa preta", disse ao Broadcast.

O Fonacate também divulgou nota em que diz que em nenhum momento houve "diálogo ou consulta" por parte do governo para "compartilhamento de diagnósticos, alternativas ou caminhos da proposta".

"O governo não chamou ninguém, é uma incógnita pra gente o que será apresentado. Faltou diálogo, teríamos muito a contribuir, mas, infelizmente, não houve espaço", completou Marques.

Estabilidade

Uma das maiores preocupações dos sindicalistas é com o fim da estabilidade para novos servidores públicos. Cabral reforça que a garantia de manutenção do emprego é um instrumento importante de proteção contra interferências político-econômicas.

Marques classificou de "enrolação" falar no fim da estabilidade somente para novos e diz que isso afetará o trabalho de todos os servidores. "Como vai ter um servidor com estabilidade e outro sem em uma mesma equipe? Como vai autuar um bilionário, um político, sem estabilidade?", questionou.