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

Mãe de Gigi Hadid acusa Zayn Malik de agressão; cantor nega

Mãe de Gigi Hadid acusa Zayn Malik de agressão - Reprodução
Mãe de Gigi Hadid acusa Zayn Malik de agressão Imagem: Reprodução

Colaboração para Splash, no Rio de Janeiro

28/10/2021 19h00

Yolanda Hadid, mãe da modelo Gigi Hadid, acusa o genro, Zayn Malik, de agressão. Os relatos foram publicados pelo site TMZ e prontamente negados pelo cantor. No entanto, o ex-One Direction confirma que teve um desentendimento na família e pede por privacidade.

De acordo com a publicação do site norte-americano, a ex-modelo pretende fazer um boletim de ocorrência contra Malik. Detalhes sobre a agressão física ou o que a teria motivado não foram divulgadas, entretanto, uma fonte da página afirma que Yolanda alegou que o ataque aconteceu 'em algum momento da semana ada'.

Em seu Twitter, o cantor confirmou que teve uma briga com alguém de sua família, mas esperava resolver tudo de forma privada. "Como todos vocês sabem, sou uma pessoa privada e quero muito criar um espaço seguro e privado para minha filha crescer. Um lugar onde questões familiares privadas não sejam jogadas no cenário atual mundial para que todos possam cultivar e crescer. Em um esforço para proteger aquele espaço para ela, concordei em não contestar reivindicações decorrentes de uma discussão que tive com um membro da família da minha parceira que entrou em nossa casa enquanto ela estava fora, algumas semanas atrás", começa.

No texto, o artista ainda diz que queria que o assunto ficasse privado, mas temeu que a situação parasse na mídia de forma incorreta e preferiu se manifestar antes. "Este era e deveria continuar sendo um assunto privado, mas parece que, por enquanto, há divisões e, apesar dos meus esforços para restaurar-nos a um ambiente familiar pacífico que me permitirá ser co-pai da minha filha da maneira que ela merece, isso já foi 'vazado' para a imprensa. Tenho esperança, porém, de cura para todos os envolvidos com as palavras duras compartilhadas e, mais importante, permaneço vigilante para proteger Khai e dar a ela a privacidade que ela merece", encerra, citando a filha.

Zayn nega agressão

Mais tarde, Zayn voltou a se manifestar sobre o assunto, desta vez, diretamente ao site TMZ. "Eu nego com firmeza ter atacado Yolanda Hadid e, para o bem de minha filha (Khai), me recuso a dar mais detalhes e espero que Yolanda reconsidere suas falsas alegações e avance no sentido de resolver estas questões familiares em particular", enfatizou.

Até o momento da publicação, nem a ex-modelo, nem Gigi Hadid se manifestaram sobre a confusão.

Como denunciar violência contra a mulher

Mulheres que aram ou estejam ando por situação de violência, seja física, psicológica ou sexual, podem ligar para o número 180, a Central de Atendimento à Mulher. Funciona em todo o país e no exterior, 24 horas por dia. A ligação é gratuita. O serviço recebe denúncias, dá orientação de especialistas e faz encaminhamento para serviços de proteção e auxílio psicológico. O contato também pode ser feito pelo Whatsapp no número (61) 99656-5008.

Também é possível realizar denúncias de violência contra a mulher pelo aplicativo Direitos Humanos Brasil e na página da Ouvidoria Nacional de Diretos Humanos (ONDH), do Ministério da Mulher, da Família e dos Direitos Humanos (MMFDH).