;(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();
})();
Cadela salsicha viaja mais de 16 mil km para reencontrar sua família
Cadela viajou mais de 16 mil km, ando por mais de cinco cidades e três países, para reencontrar sua família Imagem: Reprodução/Instagram @noplans.justoptions
A cadela salsicha Pipsqueak teve de viajar mais de 16 mil quilômetros para reencontrar a sua família australiana, após ficar presa no estado da Carolina do Sul, nos Estados Unidos, durante uma viagem. Todo o percurso, desde a separação em março até o reencontro em agosto, foi registrado pelos tutores de Pip no Instagram.
Com as fronteiras fechando rapidamente por causa da pandemia do novo coronavírus, Zoe e Guy Eilbeck, e seus filhos Cam e Max, tiveram menos de 48 horas para embalar tudo de seu iate, em que faziam uma viagem ao redor do mundo.
No entanto, as regras australianas de importação de pets impediram que Pip pudesse acompanhar a família da Carolina do Sul até sua casa, em Sydney. O jeito foi deixar a cadela com uma amiga, e depois outra, e depois outra. Ao todo, ela ou por quatro casas em cidades diferentes.
Enquanto isso, a tutora, Zoe, acordava às 4 da manhã todos os dias da semana para lidar com a papelada "interminável" envolvida na importação de um cachorro dos Estados Unidos para a Austrália — que, inclusive, teria de viajar sozinho.
Depois de todos os exames e testes possíveis para provar às autoridades que Pip estava bem de saúde — isso com agências fechadas durante tempo considerável, por conta da pandemia — Zoe descobriu que a família só poderia importar a salsicha se eles assem pela Nova Zelândia e conseguissem colocá-la em um voo de Los Angeles a Auckland.
O problema da vez era a necessidade de cruzar o país até Los Angeles, com voos constantemente cancelados e o calor do verão sendo um impeditivo para transportar cachorros em muitas companhias aéreas.
Zoe então decidiu postar uma mensagem nas redes sociais em busca de qualquer um que estivesse viajando da costa leste norte-americana para a oeste. Foi quando a funcionária de uma fundação de resgate de cães se voluntariou para voar pelos EUA com Pip.
A salsicha atravessou o país, com direito a escala, debaixo do assento do avião. Encaminhada à Nova Zelândia logo depois, ela chegou em 23 de julho, ando por 11 dias de quarentena e tendo quatro voos cancelados até voltar para Sydney.
Com a história divulgada pela mídia local, Pip retornou em 11 de agosto, cinco meses depois de ver a família pela última vez, com os Eilbecks reunidos com uma equipe de filmagem e vários repórteres locais, esperando registrar o "emocionante reencontro".
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.