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

Mutirão de emprego com 10 mil vagas tem longas filas no Anhangabaú, em SP

16.mai.2022 -  Fila de pessoas para participar do mutirão do emprego no Vale do Anhangabaú, centro de São Paulo - Roberto Casimiro/Fotoarena/Estadão Conteúdo
16.mai.2022 - Fila de pessoas para participar do mutirão do emprego no Vale do Anhangabaú, centro de São Paulo Imagem: Roberto Casimiro/Fotoarena/Estadão Conteúdo

Do UOL, em São Paulo

16/05/2022 08h01Atualizada em 16/05/2022 11h27

Trabalhadores em busca de emprego formam longas filas em busca de uma vaga no Mutirão do Emprego, realizado hoje no Vale do Anhangabaú, centro de São Paulo. São cerca de 10 mil oportunidades oferecidas.

Organizado pelo Sindicato dos Comerciários de São Paulo, o feirão terá atendimento das 8h às 17h e ocorrerá até sexta-feira. Pouco antes das 9h, mais de 1.300 senhas já haviam sido distribuídas, mas a expectativa é que 5 mil sejam fornecidas só hoje. Muitas pessoas aram a noite na fila em busca de um trabalho.

É obrigatório o uso de máscara de proteção contra a covid-19 dentro do sindicato, localizado na rua Formosa, 99.

Em entrevista à TV Globo, Ricardo Patah, presidente do Sindicato dos Comerciários e da UGT (União Geral dos Trabalhadores), disse que as vagas se concentram nas áreas de comércio e serviços.

"Por conta da pandemia, que represou muitas vagas, eu acho que nós tivemos uma oferta muito grande nesse mutirão, bem maior que nos anteriores. A maior parte é comércio e serviços. Tem muita tecnologia, aplicativos, vendedores, padeiros, açougueiros, uma gama de alternativas para as pessoas terem oportunidade", elencou ele.

Patah pede que os interessados levem um documento de identificação, com RG ou CNH (Carteira Nacional de Habilitação), por exemplo, e um currículo. "Já ajuda para ver qual é o tipo de vaga que a pessoa está qualificada."

Segundo ele, muitas empresas — mais de 100 participam do mutirão — já farão entrevistas ainda hoje, mas isso não significa que as pessoas sairão empregadas do mutirão. "Nós torcemos para isso, pode ocorrer. Pode ocorrer também uma segunda entrevista ou pode ser necessária uma pequena capacitação já combinada com a empresa, fazendo essa capacitação já tem a vaga garantida", explicou.