;(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();
})();
Na cozinha, a influenciadora chamou atenção da neta de Gretchen: "Amiga, na próxima vez que você for grossa comigo igual foi lá na delegação, eu não converso mais com você"
"Eu fui grossa com você na delegação?", questionou Bia. "Foi! Na hora de falar do cavalo. Eu falei: 'Escolhe você' e você falou: 'Ah, é tudo no meu c*".
"Não, eu falei pra você escolher e você aflou que eu era a fazendeira e tinha que escolhe. Mas não é assim, a gente é um grupo. Eu não tô sozinha", justificou Bia.
"Mas aí eu ia ficar me beneficiando?", perguntou Pétala. "Não, você ia falar com Moranguinho pra saber como ia ser. Aí vai fala: Não, Bia, você escolhe. Ai é tudo no meu c* mesmo. Até Deolane falou", rebateu a peoa.
Pétala continuou afirmando que não gostou da grosseria da amiga.
"Você foi na onda de Deolane e falou. Só não seja mal-educada comigo que eu não vou ser com você", avisou a peoa.
A Fazenda 2022: Quem você quer que fique no reality? Vote na enquete
Enquete encerrada
Total de 25142 votos
40,04%
34,05%
25,90%
Total de 25142 votos
A Fazenda 2022: Quem é o fazendeiro da semana? Veja quem já usou o chapéu
1 / 13
A Fazenda 2022: Babi é a última fazendeira da edição
Reprodução/Playplus
2 / 13
12º fazendeiro: Pelé Milflows
A Fazenda 2022: Pelé Milflows usa o chapéu do fazendeiro pela segunda vez
Reprodução/Playplus
3 / 13
11ª fazendeira: Bia Miranda
A Fazenda 2022: Bia Miranda com chapéu de fazendeira pela terceira vez
Reprodução/Playplus
4 / 13
10ª fazendeira: Deolane
A Fazenda 2022: Deolane Bezerra é a 10ª fazendeira da edição
Reprodução/PlayPlus
5 / 13
9ª fazendeira: Bárbara Borges
A Fazenda 2022: Babi e Pétala trocam farpas antes de início de dinâmica
Reprodução/PlayPlus
6 / 13
8ª fazendeira: Bia Miranda
A Fazenda 2022: Bia Miranda é a oitava fazendeira
Reprodução/Playplus
7 / 13
7º fazendeiro: Pelé Milflows
A Fazenda 2022: Pelé Milflows vence prova
Reprodução/Playplus
8 / 13
6º fazendeiro: Lucas Santos
A Fazenda 2022: Lucas na prova do fazendeiro
Reprodução/Playplus
9 / 13
5ª fazendeira: Bia Miranda
A Fazenda 2022: Bia Miranda conquista o chapéu de fazendeira
Reprodução/Playplus
10 / 13
4º fazendeiro: Alex Gallete
A Fazenda 2022: Peões comemoram vitória de Alex
Reprodução/PlayPlus
11 / 13
3º fazendeiro: Vini Buttel
A Fazenda 2022: Vini Buttel é o novo fazendeiro
Reprodução/PlayPlus
12 / 13
2º fazendeiro: Shayan
A Fazenda 2022: Shayan em formação de roça
Reprodução/PlayPlus
13 / 13
1º Fazendeiro: Lucas Santos
A Fazenda 2022: Lucas Santos indica Deborah para a primeira roça
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.