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

Exército fica na Bahia por mais uma semana; "sequela ficou", diz Wagner

Jaques Wagner (PT) afirmou que o Exército ficará no Estado por mais uma semana - Manu Dias/GOVBA
Jaques Wagner (PT) afirmou que o Exército ficará no Estado por mais uma semana Imagem: Manu Dias/GOVBA

Do UOL, em Maceió

17/04/2014 16h34

O governador da Bahia, Jaques Wagner (PT), afirmou que o comando das operações de segurança no Estado continuará com o Exército pelo menos até a próxima semana, mesmo com a decisão, nesta quinta-feira (17), do retorno ao trabalho dos policiais militares em greve.

Os cerca 6.000 militares que chegaram ao Estado também vão permanecer. “Espero que até o meio da semana que vem tenhamos a normalidade absoluta de volta. Até lá, as tropas permanecem em solo baniano, e espero que seja possível levantar a garantia da lei e da ordem até a terça, quarta da próxima semana”, disse, em entrevista à Globo News.

Apesar do fim da paralisação, que durou menos de 48 horas, o governador deixou claro sua insatisfação com a greve e disse que ficaram marcas ao Estado.

“A sequela ficou, as sequelas de assaltos, de aumento de homicídios. Estamos num esforço muito grande para reduzir mortes. Conseguimos reduzir 8% no ano ado. Nesse primeiro trimestre caiu mais 16%. É uma irresponsabilidade muito grande deixar a cidade abandonada. O texto constitucional é claro que eles não podem fazer greve”, afirmou.

Somente nesta quarta-feira (16), 21 pessoas foram mortas na Grande Salvador. Na terça-feira (15), foram 60 roubos ou furtos de carros. Dezenas de lojas e estabelecimentos foram saqueados no período de paralisação da PM.

Para Jaques Wagner, a declaração de ilegalidade da greve foi fundamenta para o fim da paralisação. “Acho que foi fundamental a ação rápida do governo federal, dos ministérios público estadual e federal, da Justiça que determinou a ilealidade da greve, com multas pesadas para as associações e a própria condenação da opinião pública, que viu que não se pode deixar a cidade abandonada. É claro que isso fez com que percebessem o caminho aberto e tomassem a decisão de retorno”, alegou.

Sobre a proposta, o governador disse que nada foi oferecido de novo aos militares e que 98% do que foi assinado pelas associações já havia sido apresentado na terça-feira, justamente para evitar a paralisação.

Wagner também disse que não descarta punição aos líderes da greve. “Não estamos inspirados em rancor, mas os excessos serão punidos. Em 2012, tivemos várias excessos. Nessa, além do excesso da paralisação, não teve nenhuma manifestação desse tipo, mas você está vendo as imagens sobre o que se abateu em Salvador. Foi um mal intolerável”, afirmou.