;(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();
})();
A Fazenda 2021: Victor Igoh publicou comunicado sobre as atitudes da noiva, Sthefane
Imagem: Reprodução/PlayPlus
O empresário começou a nota dizendo que a situação é muito triste, e que ele gostaria que a energia pesada que envolve as pessoas chegasse ao fim. Ele disse que apesar das cobranças do público, não irá criticar a postura de Sthefane nas redes sociais.
"Eu venho recebendo milhares de mensagens de todos os tipos, mas entendam que vocês jamais irão me ver expor em rede social algum tipo de julgamento, ira, maledicência ou quaisquer comportamentos que possam causar danos à vida de alguma pessoa, independente se ela esteja errada ou certa", escreveu.
Apesar disso, Victor afirmou que o comportamento de Sthe não o agradou em alguns momentos.
Sthe teve comportamentos que me desagradaram, teve condutas que eu não concordo como companheiro, mas as atitudes dela no jogo não descaracterizam o ser humano do bem e a grande mãe que ela é. Ela não está aqui para se defender, então irei esperar esse momento chegar. Victor Igoh
"Existe um preço para as pessoas que detém uma vida pública, onde a proporção e a gravidade são maiores e as consequências se tornam mais condenatórias. Por isso eu tento ao máximo me manter equilibrado, sempre em orações", concluiu, acrescentando que Deus está conduzindo a situação.
Juntos há quase dois anos, Victor e Sthe ficaram noivos em agosto deste ano. O rapaz concilia a vida de empresário com os trabalhos como influenciador digital, com mais de 2,6 milhões de seguidores no Instagram. O baiano é dono de um estúdio de tatuagem em Salvador há 7 anos, e já teve mais dois negócios, uma barbearia e uma sorveteria. Hoje está abrindo uma drinkeria temática de caveira na capital baiana.
Além disso, Victor já namorou a ex-panicat e ex-peoa Carol Narizinho. Os dois se conheceram no Réveillon de 2018, mas o romance não foi para a frente, e o ex-casal terminou pouco depois do Carnaval de 2019. No mesmo ano, ele teve uma filha com a também influenciadora Mavi Magalhães.
A Fazenda 2021: Os looks escolhidos por Adriane Galisteu para o reality
1 / 72
A Fazenda 2021: Adriane Galisteu na noite da nona eliminação
Reprodução/PlayPlus
2 / 72
A Fazenda 2021: Adriane Galisteu na noite da formação da oitava roça
Reprodução/PlayPlus
3 / 72
A Fazenda 2021: Adriane Galisteu em noite de festa com show sertanejo
Reprodução/Playplus
4 / 72
Aooo peoa!
A Fazenda 2020: Adriane Galisteu fez a estreia com look da Beyoncé