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

Bolsonaro autoriza nomeação de 1.250 aprovados para PF e PRF

Bolsonaro tenta conceder um reajuste maior para as carreiras de segurança, beneficiando um grupo que compõe sua base eleitoral - Reuters
Bolsonaro tenta conceder um reajuste maior para as carreiras de segurança, beneficiando um grupo que compõe sua base eleitoral Imagem: Reuters

Pedro Vilas Boas

Colaboração para o UOL

26/05/2022 08h52Atualizada em 26/05/2022 09h43

O presidente Jair Bolsonaro (PL) aprovou, de acordo com publicação no Diário Oficial da União de hoje, a nomeação de 1.250 aprovados em concursos da PF (Polícia Federal) e PRF (Polícia Rodoviária Federal).

São 625 nomeações autorizadas para cada órgão. No caso da PF serão ocupados os cargos de delegado, agente, escrivão e papiloscopista.

Ontem, em vídeo publicado nas redes sociais ao lado do ministro da Justiça e Segurança Pública, Anderson Torres, o presidente já havia anunciado a autorização para as nomeações.

"Acabei de dois decretos que autorizam, por parte da PF e da PRF, iniciar o curso de formação para 625 policiais rodoviários federais e 625 policiais federais. Eu sempre digo que o trabalho deles é excepcional para o Brasil e merecem um reconhecimento por tudo isso", disse Bolsonaro.

Em meio às discussões sobre reajuste salarial para essas categorias, o presidente ainda diz no vídeo que espera, em breve, garantir o reconhecimento dos policiais.

"Eles são lucrativos para o Brasil. O reconhecimento é uma coisa importante e a gente espera, no momento certo, poder garantir, materialmente até, o reconhecimento aos policiais federais e aos policiais rodoviários federais".

Bolsonaro quer reajuste acima de 5%

Reportagem do jornal Folha de S.Paulo mostra que Bolsonaro tenta conceder um reajuste maior para as carreiras de segurança, beneficiando um grupo que compõe sua base eleitoral. Os demais servidores teriam aumento de 5%.

Ontem, em Davos, o ministro da Economia, Paulo Guedes, disse que o aumento de 5% para o funcionalismo público federal é o único possível e que seria factível dentro do atual Orçamento.

"O presidente gostaria de dar aumento aos policiais mas não pode, é visto como aliciamento", afirmou Guedes a jornalistas durante o encontro do Fórum Econômico Mundial em Davos.