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

Após polêmica, iniciativa de Magazine Luiza para recrutar trainees negros vira alvo de ação

06/10/2020 20h59

Por Carolina Mandl

SÃO PAULO (Reuters) - Uma tentativa de uma das maiores varejistas do Brasil de combater disparidades raciais em cargos gerenciais desencadeou uma ação civil pública por parte da Defensoria Pública da União acusando a empresa de discriminação, com pedido de pagamento de indenização no valor de 10 milhões de reais. O Magazine Luiza SA lançou no mês ado um programa de trainees voltado exclusivamente para o recrutamento de negros, com o objetivo de aumentar a diversidade de seus quadros executivos, de acordo com a empresa.

A varejista está oferecendo um salário mensal de 6.600 reais, cerca de seis salários mínimos do país, além de benefícios como seguro saúde e odontológico, para um máximo de 20 candidatos que concluíram o ensino superior entre 2017 e 2020. Mas o defensor público Jovino Bento Junior disse que a varejista estaria realizando "seleção exclusivamente baseada na cor da pele" e que isso seria discriminatório, segundo documento de 28 de setembro, no qual propõe ação contra a empresa.

"Nada justifica juridicamente a discriminação promovida, sendo certo que existem outros meios de promover direitos sociais e de inclusão racial, com o menor prejuízo aos demais trabalhadores", afirmou o defensor no documento.

Bento expressou preocupação de que outras empresas possam seguir o exemplo do Magazine Luiza, "limitando fortemente o o a trabalho e renda" para candidatos não pertencentes a minorias, acrescentou, acusando a empresa de ser focada em "marketing corporativo". Um grupo reunindo outros 11 defensores públicos focados em questões étnicas e raciais, porém, manifestou repúdio à ação, e a Defensoria Pública da União defendeu, em nota oficial, medidas do poder público e da iniciativa privada que proporcionem redução de carências e de vulnerabilidade. Ressaltou, no entanto, que defende, de forma intransigente, a independência funcional de seus membros.

O Magazine Luiza não quis comentar o assunto. Na segunda-feira, a fundadora e presidente da rede, Luiza Trajano, disse em entrevista à TV Cultura que lançou o programa de trainees depois de perceber que a liderança da empresa era largamente composta por brasileiros brancos. “O Brasil teve uma escravidão de 350 anos, a maioria é de negros, a maioria na periferia. Essa é a real, então, não entram naquilo [no processo]”, disse. "Quando entendi o que é racismo estrutural, até chorei."

Questões raciais raramente provocam no Brasil grandes manifestações populares como tem acontecido nos Estados Unidos, embora, este ano, várias cidades do país tenham registrado manifestações na esteira da morte do norte-americano George Floyd pela polícia.

As estatísticas brasileiras mostram amplos sinais de discriminação. A grande população negra do país está sub-representada no mercado de trabalho, já que os negros ganham cerca de 56% da remuneração dos brancos, de acordo com o IBGE.

(Reportagem adicional de Ricardo Brito, em Brasília)