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

Cidade italiana vende casas por 1 euro sem depósito e com menos burocracia

Seguindo o mesmo planos de outras cidades no interior da Itália, Laurenzana também entrou no plano conhecido como "Case a un euro" - Reprodução
Seguindo o mesmo planos de outras cidades no interior da Itália, Laurenzana também entrou no plano conhecido como "Case a un euro"
Imagem: Reprodução

De Nossa

10/03/2021 15h30

Procurando reabitar os pequenos vilarejos no interior do país, a Itália recentemente tem colocado diversas casas à venda pelo preço simbólico de 1 euro — valor atraente, mas que exige a atenção do comprador para não cair em uma cilada. A mais recente cidade que aderiu ao plano é Laurenzana, localizada na região de Basilicata, no sul da Itália,

O que está a diferenciando dos outros vilarejos com a mesma iniciativa é o fato de que, em Laurenzana, não será preciso fazer um depósito prévio, que normalmente custa entre 2 mil euros e 5 mil euros, R$ 13 mil e R$ 34 mil, respectivamente, na conversão atual.

A quantia em questão costuma ser devolvida ao comprador quando a reforma na propriedade é concluída.

"Queremos ajudar os recém-chegados a comprar a casa dos seus sonhos sem dificultar o cumprimento de procedimentos tediosos e requisitos rígidos", explicou o prefeito Michele Ungaro em entrevista à CNN Travel.

Laurenzana é uma cidade na região da Basilicata, província de Potenza, com cerca de 2.246 habitantes - Getty Images - Getty Images
Laurenzana é uma cidade na região da Basilicata, província de Potenza, com cerca de 2.246 habitantes
Imagem: Getty Images

A ideia, segundo a chefe de governo local, é facilitar o processo para estrangeiros e tornar a "nova vida" um prazer, não um fardo.

"Contamos com a boa-fé e o comprometimento dos compradores, mas estaremos monitorando constantemente o trabalho em andamento e o status da reforma", complementou.

Além de dispensar o depósito, a cidade no sul da Itália optou também por manter os custos com as papeladas no menor valor possível, enquanto os compradores também se beneficiarão dos impostos locais relativamente baixos da região.

Prefeita de Laurenzana busca atrair maior número de estrangeiros com menores burocracias - Getty Images - Getty Images
Prefeito de Laurenzana busca atrair maior número de estrangeiros com menores burocracias
Imagem: Getty Images

Para a compra ser aprovada, os novos moradores devem concordar em concluir as reformas em sua propriedade dentro de um determinado prazo estipulado pelo governo local. Em Laurenzana, o comprador tem até três meses após a compra para começar e o período de três anos para encerrar os trabalhos.

Vale lembrar que, antes disso, um plano detalhado sobre a reforma precisa ser enviado para os responsáveis antes que a oferta seja aprovada.