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

Carla Araújo

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.

Rui Costa diz que entregará 'kit ministro' para novatos da Esplanada

Lula anuncia o governador baiano Rui Costa (PT) como ministro-chefe da Casa Civil - MATEUS BONOMI/AGIF - AGÊNCIA DE FOTOGRAFIA/AGIF - AGÊNCIA DE FOTOGRAFIA/ESTADÃO CONTEÚDO
Lula anuncia o governador baiano Rui Costa (PT) como ministro-chefe da Casa Civil Imagem: MATEUS BONOMI/AGIF - AGÊNCIA DE FOTOGRAFIA/AGIF - AGÊNCIA DE FOTOGRAFIA/ESTADÃO CONTEÚDO

Do UOL, em Brasília

20/12/2022 17h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Indicado pelo presidente eleito Luiz Inácio Lula da Silva (PT) para assumir a Casa Civil, o futuro ministro Rui Costa (PT) afirmou nesta terça-feira (20) que já concluiu o formato dos 37 ministérios que formarão o governo a partir de 2023.

Segundo Costa, os novos ocupantes da Esplanada receberão um "kit ministro" nos próximos dias.

"Está tudo organizado e o organograma de todos os ministérios será divulgado essa semana. Todas as estruturas com definição de cargos estão estabelecidas reforçando que não teremos elevação de custos. Quero dar a boa notícia de que esse trabalho está feito sem a criação de cargos, exceto dos cargos de ministro, como prevê a legislação", afirmou, em nota.

De acordo com Costa, o "Kit ministro" terá o organograma de cada ministério, com definição de espaço físico e todas informações necessárias para que os ministros novatos possam trabalhar a partir do dia 2 de janeiro.

O futuro ministro repetiu que a equipe de transição fez "um grande esforço" para atender a estrutura do modelo do governo Lula em 2010, mas sem aumento do número de cargos. Segundo ele, foi realizado um remanejamento das estruturas existentes.

Foco no Pacto Federativo

Rui Costa, que deixará o governo da Bahia no dia 31 de dezembro, também afirmou que pretende logo no início do governo Lula manter um diálogo permanente com os governadores.

"Nós ajudaremos a construir essa agenda junto com o Ministério das Relações Institucionais e a Secretaria de Governo. O fortalecimento do pacto federativo é uma pauta importante e tem um valor grande para nós e queremos restabelecer essa relação", afirmou.

Segundo ele, nos últimos anos, houve "muita perseguição aos estados". "Teremos um novo padrão de diálogo com discussão das ações de governo com os entes federados".