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

Novo confirma Felipe Sabará como candidato à Prefeitura de São Paulo

Candidato disse que uma de suas propostas é fomentar "o micro e nano" empreendedorismo nas periferias da cidade - Reprodução/Facebook
Candidato disse que uma de suas propostas é fomentar "o micro e nano" empreendedorismo nas periferias da cidade Imagem: Reprodução/Facebook

Bruno Ribeiro

05/09/2020 19h26

Em uma convenção que ocorreu em um sistema de drive-thru, em espaço público, o partido Novo confirmou a indicação do ex-secretário da gestão João Doria (PSDB) Filipe Sabará para o cargo de prefeito de São Paulo.

Alinhado às bandeiras defendidas pelo seu partido, que descreve o setor privado como mais eficiente do que o público e que, por isso, deveria servir de exemplo, Sabará disse que uma de suas propostas de governo é fomentar "o micro e nano" empreendedorismo nas periferias da cidade, "que agora estou chamando de zonas de oportunidade", por meio de linhas de crédito privadas. O candidato disse acreditar que, com juros baixos, o mercado teria interesse em investir nos mais pobres.

Os filiados do Novo depositaram seu voto na chapa (que não tinha adversário) sem sair do carro, das 10h às 14h deste sábado. Após a contagem e confirmação do resultado, Sabará fez um breve discurso, exaltando as características do partido de fazer processo seletivo para a escolha dos candidatos, não itir pessoas ficha-suja nem receber recursos públicos para a campanha. O ato ocorreu no estacionamento da Câmara Municipal, espaço público.

Após o discurso, ao falar com o Estadão, o candidato fez críticas a Doria, cuja popularidade é tida como baixa entre os partidos que disputam a eleição. "Trabalhei com o Doria duas vezes, pela proposta (política de Doria). E as duas vezes eu pedi demissão. Não fui demitido. A segunda, inclusive, publiquei uma carta na imprensa agradecendo a oportunidade, mas dizendo que politicamente, não tinha alinhamento", disse.

Sabará afirma ser um liberal conservador e que essa visão política era o que permeou as campanhas que levaram Doria à Prefeitura e ao governo do Estado. Mas, segundo o pré-candidato, o tucano teria abandonado essa visão após eleito.

"Começou com o IncentivAuto. Um incentivo para um setor específico (automotivo), dentro da cartilha do liberalismo, não é interessante. Depois, um ataque a um presidente que ele tinha acabado de se vincular para ser eleito, gratuitamente. Muito antes da pandemia, ele começou a atacar: atacou o discurso do (Jair) Bolsonaro na ONU, atacou várias outras coisas do Bolsonaro antes da pandemia."

Ele complementou: "Doria me frustrou e frustrou os eleitores dele porque não tem demonstrado um viés liberal" e falou também que "a social-democracia (de Doria) se mostrou um socialismo pintado de rosa". A reportagem procurou o Palácio dos Bandeirantes para checar se o governo gostaria de comentar as declarações e aguarda resposta.

Os ataques buscavam mirar no candidato de Doria à Prefeitura, Bruno Covas (PSDB), contra quem Sabará irá concorrer. "Entendo que ele basicamente não sabe o que está fazendo, não tem a menor noção do que é ser prefeito de São Paulo."

A vice de Sabará é a economista Marina Helena, egressa do governo Jair Bolsonaro. Ela já era filiada ao partido e deixou em fevereiro cargo de diretora da Secretaria de Desestatização no Ministério da Economia. Segundo informações da equipe de campanha de Sabará, antes do governo federal ela havia trabalhado 14 anos no mercado financeiro.