{"mappings":"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","sources":["src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-44ac43213d2c73c7.js"],"sourcesContent":["/* eslint-disable */\n\nimport css from 'bundle-text:./style.scss'\n\n(function () {\n //variaveis de configuração do componente\n window._elections = {\n newState: {\n uf: \"\",\n name: \"\"\n },\n socketChannel: \"rtevent.uol.com\",\n isMobile: null,\n apurationLink: \"\",\n linkParam: \"\",\n type: \"apuração\",\n scope: \"\",\n socket: \"\",\n config: \"\"\n };\n\n window._elections.scope = checkPartner().length ? 'Partners' : 'UOL';\n\n //verifica se a página já foi carregada se nao aguarda o carregamento\n if (document.readyState == \"complete\") {\n\n runScript();\n\n } else {\n\n window.addEventListener(\"load\", function() {\n \n runScript();\n });\n }\n})();\n\n/*\n * roda script após carregamento da página\n */\nfunction runScript(){\n //valida se há LGPD ou se o anchorAds está ativo\n if (window._elections.scope == 'UOL' && (document.querySelector(\".banner-lgpd-consent-container\") || document.body.dataset.anchorads == true)) return;\n\n //requisição para o componente de configuração\n const commonsPath=\"//c.jsuol.com.br/service?loadComponent=projects/election-2022/election-2022-ticker-config&data={%22jsonp%22:false}\";\n fetch(commonsPath, {cache: \"no-cache\"})\n .then(data => {\n return data.json()\n })\n .then((response) =>{ \n\n window._elections.type = response.type;\n window._elections.socket = response.socket;\n window._elections.interval = response.interval;\n\n return {\n dataAnalysis: response.analyses,\n statusUOL: response.statusUOL,\n statusPartners: response.statusPartners\n }\n\n }).then((config) =>{\n //controla chaveamento de entraga UOL/Parceiros\n if (!config[`status${window._elections.scope}`]) {\n console.info('Election Ticker disabled');\n return;\n }\n\n //insere style inline\n const style=document.createElement('style');\n style.type = 'text/css'\n style.appendChild(document.createTextNode(css));\n document.head.appendChild(style);\n \n //insere script de usocket\n const uscoketScript=document.createElement(\"script\");\n uscoketScript.setAttribute(\"src\", \"//c.jsuol.com.br/assets/?loadComponent=media&contentType=js&tpl=assets/dist/libs/usocket\");\n uscoketScript.setAttribute(\"async\", \"\");\n document.head.appendChild(uscoketScript);\n \n //insere script de audience\n const audienceScript=document.createElement(\"script\");\n audienceScript.setAttribute(\"src\", \"//c.jsuol.com.br/assets/?loadComponent=media&contentType=js&tpl=assets/dist/audience/audience.min\");\n audienceScript.setAttribute(\"async\", \"\");\n document.head.appendChild(audienceScript);\n \n //lida com disparos de métricas\n window.handleAudience = function(category, action, position, reference){\n window.hitAudience.countClick({\n \"area\": \"footer-flutuante\",\n \"component\" : category,\n \"position\": position,\n \"action\": action,\n \"reference\": slugify(reference),\n });\n }\n\n if (window._elections.type == \"analise\" && config.dataAnalysis) {\n startTicker(config.dataAnalysis);\n \n } else {\n\n if (window._elections.socket) {\n waitWsSocket(startTicker);\n } else {\n console.info('Ticker - Getting DATA from Polling');\n runPolling(startTicker);\n }\n }\n }).catch(err => console.info('Error loading TICKER', err));\n}\n\n/*\n * Faz a chamada do polling\n */\nfunction runPolling(callback){\n getCity(function () {\n return new Promise(resolve =>{\n\n //realiza a conexão para presidente e governador de acordo com estado\n Promise.all([connectPolling(\"br\",\"br-c1\"), connectPolling(window._elections.newState.uf,`${window._elections.newState.uf}-c3`)]).then((values) => {\n\n resolve(values);\n });\n\n }).then(callback);\n });\n}\n\n/*\n * Realiza consulta aos dados estáticos\n */\nfunction connectPolling(uf,path){\n return new Promise((resolve) => {\n fetch(`//stc.eleicoes2022.uol.com/2022/2turno/${uf}/${path}.json`).then(data => data.json()).then(data =>{\n //alterado polling para endpoint de teste\n // fetch(`//stc-dev.eleicoes2022.uol.com.s3-sa-east-1.amazonaws.com/2022/2turno/${uf}/${path}.json`).then(data => data.json()).then(data =>{\n //valida se ha candidatos\n if (!data.ca) {\n console.info('Missing essential data, retrying conection with POlling: ');\n setTimeout(() => {\n runPolling(startTicker);\n }, 60000);\n }\n\n if (data.ca && data.ca.length > 2) {\n data.ca = data.ca.slice(0,2);\n }\n\n //caso um candidato seja eleito desativa o outro\n const elected=data.ca.find(candidate => candidate.s == 1 || candidate.s == 2);\n if(elected){\n data.ca.map(item =>{\n if(item.nu != elected.nu){\n item.s = 9;\n } \n });\n }\n\n resolve(data);\n }).catch(err => console.info('Error getting Polling data - TICKER', err));\n });\n}\n\n\n/*\n * Espera pelo socket para iniciar\n */\nfunction waitWsSocket(callback) {\n setTimeout(function () {\n if (window.usocket !== undefined) {\n\n getCity(function () {\n return new Promise(resolve =>{\n\n //realiza a conexão para presidente e governador de acordo com estado\n Promise.all([connectSocket(window._elections.socketChannel, \"eleicoes-placar-br-c1\"), connectSocket(window._elections.socketChannel, `eleicoes-placar-${window._elections.newState.uf}-c3`)]).then((values) => {\n\n resolve(values);\n });\n\n }).then(callback);\n });\n } else {\n waitWsSocket(startTicker);\n }\n }, 500);\n};\n\n/** \n * Realiza conexão do socket\n **/\n function connectSocket(domain, channel) {\n console.info('Ticker - Getting DATA from Socket')\n return new Promise((resolve) => {\n\n var requestedData={};\n if( !window.usocket.isConnected() ) window.usocket.config({ domain });\n\n const ws=window.usocket.connect(channel);\n\n const connectionRetry=function(){\n if (window.channelTryConnection) {\n window.channelTryConnection -= 1;\n \n window.setTimeout(() => {\n console.info('Trying to connect socket, channel: ', channel);\n connectSocket( domain, channel);\n }, 60000);\n }\n }\n \n ws.on('error', () => {\n console.info(\"connectSocket ERROR ~ domain, channel \", domain, channel);\n connectionRetry();\n });\n \n // MESSAGE do Socket para dados lives\n ws.on('message', data=> {\n\n if (!data || !data.ca) {\n console.info('Missing essential data, retrying conection with socket: ', channel);\n connectionRetry();\n resolve();\n return;\n }\n\n if (data.ca && data.ca.length > 2) {\n data.ca = data.ca.slice(0,2);\n }\n\n //caso um candidato seja eleito desativa o outro\n const elected=data.ca.find(candidate => candidate.s == 1 || candidate.s == 2);\n if(elected){\n data.ca.map(item =>{\n if(item.nu != elected.nu){\n item.s = 9;\n } \n });\n }\n\n requestedData=data;\n\n if(document.querySelector(\"#UOLTickerEleicoes\")){\n const newData=[];\n newData.push(requestedData);\n updateDOM(newData);\n resolve();\n }else{\n\n resolve(requestedData);\n }\n \n if (data.invalidChannel) {\n connectionRetry();\n }\n });\n \n ws.on('open', data=> {\n console.info('SOCKET OPEN', data);\n window.channelTryConnection = 3\n });\n \n ws.on('close', data=> {\n console.info('SOCKET', data);\n\n if(window._elections.socket){\n connectionRetry();\n } \n });\n })\n};\n\n/** \n * Faz consulta de geolocation\n **/\nasync function getCity(callback) {\n\n if(window._elections.newState.uf){\n callback();\n return;\n } \n\n const GEOIP_API=\"https://geoip.canais.uol.com/index.json\";\n\n const [isPartner] = checkPartner();\n\n if(isPartner && isPartner.uf){\n window._elections.newState.uf = isPartner.uf;\n window._elections.newState.name = isPartner.name\n callback();\n return;\n }\n\n const allStates=[{\n id: \"01\",\n uf: \"ac\",\n blacklist: true\n },\n {\n id: \"02\",\n uf: \"al\"\n },\n {\n id: \"03\",\n uf: \"ap\",\n blacklist: true\n },\n {\n id: \"04\",\n uf: \"am\"\n },\n {\n id: \"05\",\n uf: \"ba\"\n },\n {\n id: \"06\",\n uf: \"ce\",\n blacklist: true\n },\n {\n id: \"07\",\n uf: \"df\",\n blacklist: true\n },\n {\n id: \"08\",\n uf: \"es\"\n },\n {\n id: \"29\",\n uf: \"go\",\n blacklist: true\n },\n {\n id: \"13\",\n uf: \"ma\",\n blacklist: true\n },\n {\n id: \"14\",\n uf: \"mt\",\n blacklist: true\n },\n {\n id: \"11\",\n uf: \"ms\"\n },\n {\n id: \"15\",\n uf: \"mg\",\n blacklist: true\n },\n {\n id: \"16\",\n uf: \"pa\",\n blacklist: true\n },\n {\n id: \"17\",\n uf: \"pb\"\n },\n {\n id: \"18\",\n uf: \"pr\",\n blacklist: true\n },\n {\n id: \"30\",\n uf: \"pe\"\n },\n {\n id: \"20\",\n uf: \"pi\",\n blacklist: true\n },\n {\n id: \"21\",\n uf: \"rj\",\n blacklist: true\n },\n {\n id: \"22\",\n uf: \"rn\",\n blacklist: true\n },\n {\n id: \"23\",\n uf: \"rs\"\n },\n {\n id: \"24\",\n uf: \"ro\"\n },\n {\n id: \"25\",\n uf: \"rr\",\n blacklist: true\n },\n {\n id: \"26\",\n uf: \"sc\"\n },\n {\n id: \"27\",\n uf: \"sp\"\n },\n {\n id: \"28\",\n uf: \"se\"\n },\n {\n\n id: \"31\",\n uf: \"to\",\n blacklist: true\n },\n ];\n\n const geoCookie=getCookie(\"uolgeoloc\");\n\n await fetch(GEOIP_API)\n .then((response) => {\n response.json().then(function(responseJson){\n\n if (responseJson[1] != \"BR\") return;\n\n const newState=geoCookie ? allStates.find(state => state.id == geoCookie) : allStates.find(state => state.id == responseJson[2]);\n\n if (!newState || newState.blacklist) {\n window._elections.newState.uf = \"sp\";\n window._elections.newState.name = \"sao-paulo/\";\n \n } else {\n window._elections.newState.uf = newState.uf;\n\n }\n\n }).then(callback);\n\n });\n}\n\n/**\n * Retorna o conteúdo de um cookie\n * @param {String} name Nome da chave\n * @return {String}\n */\nfunction getCookie(name){\n const re1=new RegExp(name + \"=\", \"g\");\n const re2=new RegExp(\".*?\" + name + \"=(.*?)(;.*?$|$)\", \"g\");\n if (document.cookie.match(re1)) {\n const value=document.cookie.replace(re2, \"$1\");\n try {\n return JSON.parse(unescape(value));\n } catch (e) {\n return unescape(value);\n }\n }\n return null;\n};\n\n\n/** \n * Verifica se a entrega é em parceiros\n **/\n function checkPartner(){\n\n const partners=[\n {\n urls: [\"lupa.uol.com.br\", \"mediatalks.uol.com.br\", \"operamundi.uol.com.br\", \"oantagonista.uol.com.br\", \"paranaportal.uol.com.br\", \"tnonline.uol.com.br\", \"crusoe.uol.com.br\"],\n uf: \"\"\n },\n {\n urls: [\"bnews.com.br\"],\n uf: \"ba\",\n name: \"bahia/\"\n },\n {\n urls: [\"midiamax.uol.com.br\"],\n uf: \"ms\",\n name: \"mato-grosso-do-sul/\"\n },\n {\n urls: [\"ne10.uol.com.br\"],\n uf: \"pe\",\n name: \"pernambuco/\"\n },\n {\n urls: [\"congressoemfoco.uol.com.br\", \"band.uol.com.br\", \"costanorte.com.br\", \"redetv.uol.com.br\", \"cultura.uol.com.br\"],\n uf: \"sp\",\n name: \"sao-paulo/\"\n }\n ]\n\n return partners.filter(item =>{\n const partnerURL=item.urls.find(url => window.location.href.indexOf(url) != -1);\n\n if(partnerURL){\n window._elections.socketChannel = \"rtpartner.uol.com\";\n window._elections.linkParam = `?utm_source=${partnerURL}&utm_medium=ticker&utm_campaign=eleicoes-2022&utm_content=${window._elections.type}`;\n return true;\n }\n\n return false;\n });\n}\n\n\n/** \n * Inicializa a construção do Ticker\n **/\nfunction startTicker(data) {\n\n /**declaração de variaveis globais/svgs**/\n window._elections.isMobile = window.innerWidth < 1230;\n\n const tickerStatus = window._elections.isMobile ? localStorage.getItem(\"electionTicker\") || \"opened\" : \"opened\";\n\n const metricsLogo = {\n \"category\": `ticker-${window._elections.type}`,\n \"action\": \"https://www.uol.com.br\",\n \"position\": 1,\n \"reference\": \"logo-uol\"\n }\n\n const UOLlogoSVG = ``;\n\n const arrowVertical = '';\n\n const sashSVG = '';\n\n const arrowRight = '';\n\n window._elections.apurationLink = `https://noticias.uol.com.br/eleicoes/2022/apuracao/${data[0].t}turno/${window._elections.newState.name}${window._elections.linkParam}`;\n\n var tickerElement = \"\";\n /**fim da declaração de constantes globais svgs**/\n \n /**Criação de elementos do DOM**/\n const tickerHeader =\n '
' +\n `\" +\n \"
\";\n\n const footerClosed = '
  • ' +\n UOLlogoSVG +\n '
    ' +\n \"Eleições\" +\n sashSVG +\n \"
    2022
    \" +\n \"
    \" +\n \"
  • \";\n\n const navIndicator=data.length > 1 ? '
    ' : \"\";\n\n const footerOpened = '
  • ' +\n UOLlogoSVG +\n '
    ' +\n navIndicator +\n \"
    \" +\n '
    FONTE: TSE
    ' +\n \"
  • \";\n\n const finalFooter = tickerStatus.indexOf('closed') != -1 ? footerClosed + footerOpened : footerOpened + footerClosed;\n\n const bodyFooter =\n '
    ' +\n `' +\n \"
    \";\n\n //modelo apuracao\n if(window._elections.type == \"apuracao\"){\n\n const metrics = {\n category: 'ticker-apuração',\n action: window._elections.apurationLink,\n position: 1,\n reference: 'content'\n }\n\n const links = '\";\n \n const tooltipMobile = window._elections.isMobile ? '
    O TSE considera os votos recebidos como \"votos anulados\" porque a candidatura tem pendências ainda não julgadas.
    ': \"\";\n \n const tickerBody =\n tooltipMobile +\n `
    ` +\n \"
      \" +\n data.map(item => liFactory(item)).join(\"\") +\n \"
    \" +\n \"
    \";\n \n tickerElement =\n tickerHeader +\n links +\n tickerBody +\n bodyFooter;\n \n } else {\n //modelo analise\n const analysisBody = `
    ` +\n \"
      \" +\n data.map((item, index) => newsFactory(item, index)).join(\"\") +\n \"
    \" +\n '\" +\n \"
    \";\n\n tickerElement = \n tickerHeader +\n `
    ` +\n UOLlogoSVG +\n '
    ' +\n \"Eleições\" +\n sashSVG +\n \"
    2022
    \" +\n \"
    \" +\n '
    ' +\n '\" +\n analysisBody ;\n }\n\n //cria div base de ticker\n const tickerEl=document.createElement(\"div\");\n tickerEl.classList.add(\"election-2022-ticker\");\n tickerEl.classList.add(window._elections.type);\n tickerEl.id = \"UOLTickerEleicoes\";\n\n //ajuste para parceiro paranaportal\n if (window.location.href.includes(\"paranaportal.uol.com.br\")) tickerEl.classList.add(\"is-fixed\");\n\n tickerEl.innerHTML = tickerElement;\n\n const [...ulArray] = tickerEl.querySelectorAll(\"ul\");\n const [...liArray] = tickerEl.querySelectorAll(\"li\");\n const liArrayLenght=liArray.length;\n\n //options para os observers\n const options={\n root: null,\n rootMargin: \"100% -10% 100% 10%\",\n threshold: 0.3\n };\n\n //exceções para modelo analise\n if(window._elections.type == \"analise\" && window.innerWidth > 992){\n const analysisUl=tickerEl.querySelector(\".ticker-body.analise\");\n const [...nav] = tickerEl.querySelectorAll('[class*=\"nav-\"]');\n\n const firstLastCards=[liArray[0], liArray[liArrayLenght-1]];\n\n const hideArrow=function (entries, observer){\n const visibleElement=entries.find(entry => entry.isIntersecting);\n const navLeft=nav.find(element => element.className.indexOf('left') != -1);\n const navRight=nav.find(element => element.className.indexOf('right') != -1);\n \n if(visibleElement){\n \n if(visibleElement.target.className.indexOf(\"-0\") != -1){\n navLeft.classList.add('faded');\n\n }else{\n navRight.classList.add('faded')\n \n }\n }\n if(!visibleElement){\n navLeft.classList.remove('faded');\n navRight.classList.remove('faded');\n }\n }\n\n var observerForCards=new IntersectionObserver(hideArrow, options);\n\n firstLastCards.map(element =>{\n observerForCards.observe(element);\n });\n\n nav.forEach(element =>{\n element.addEventListener(\"click\", function(event){\n //width do container + gap\n var slide=firstLastCards[0].clientWidth + 32;\n\n const side=event.target.classList[1];\n\n const metrics={\n category: `interaction-${side}`,\n action: \"ticker-analise\",\n position: 1,\n reference: `arrow-${side}`\n }\n\n window.handleAudience(metrics.category, metrics.action, metrics.position, metrics.reference);\n\n if(side == \"left\" ){\n slide=-slide;\n }\n\n analysisUl.scrollBy({\n left: slide,\n behavior: 'smooth'\n });\n });\n })\n\n }\n\n if (window._elections.isMobile) {\n const tickerBody=tickerEl.querySelector(\".ticker-body\");\n const tickerFooter=tickerEl.querySelector(\".body-footer\")\n\n //trata ul's/li's para inserção de width dinâmico carrossel apuracao\n if(window._elections.type == \"apuracao\"){\n const screenWidth=window.innerWidth;\n liArray.forEach(item => {\n item.style.width = screenWidth + 'px';\n });\n \n ulArray.forEach((item, index) => {\n if(data.length < 2 && index=== 0) {\n item.style.width = screenWidth + 'px';\n } else {\n item.style.width = (screenWidth * 2) + 'px';\n }\n });\n }\n\n var previusIndex=0;\n //Lógica de observer para animação de carrossel e navegador footer\n const callback=function (entries, observer) {\n const isVisible=entries.find(el => el.isIntersecting);\n\n if (isVisible) {\n\n if(tickerFooter){\n\n const [...navigationElts] = tickerFooter.querySelectorAll(\".navigation div\");\n \n navigationElts.map(el => {\n if (el.className.indexOf(isVisible.target.className) != -1) {\n el.classList.add(\"active\");\n } else {\n el.classList.remove(\"active\");\n }\n });\n\n tickerBody.scrollBy({\n left: isVisible.boundingClientRect.x - 8,\n behavior: 'smooth'\n });\n }else{\n //captura direção do swipe e dispara métrica\n const isVisibleClass=isVisible.target.className.split(\"-\");\n const currentIndex=parseInt(isVisibleClass[1]);\n\n const metrics={\n category: \"ticker-analise\",\n action: \"\",\n position: 1,\n reference: \"\"\n }\n if(currentIndex > previusIndex){\n metrics.action = \"interaction-right\";\n metrics.reference = \"swipe-right\";\n }\n if(currentIndex < previusIndex){\n metrics.action = \"interaction-left\";\n metrics.reference = \"swipe-left\";\n }\n if(currentIndex+previusIndex == 0){\n return\n }else{\n window.handleAudience(metrics.category, metrics.action, metrics.position, metrics.reference);\n }\n previusIndex=currentIndex;\n }\n }\n }\n\n const optionsApuration={\n root: null,\n rootMargin: \"100% 0% 100% 0%\",\n threshold: 0.3\n };\n\n var observer=new IntersectionObserver(callback, optionsApuration);\n\n const [...rolesCard] = tickerBody.querySelectorAll(\".ticker-body li\");\n\n \n //ativa observer sobre li's do card interno\n rolesCard.map(item => {\n observer.observe(item);\n });\n\n const button = tickerEl.querySelector(\".ticker-tab\");\n \n const handleTab = function (event) {\n const _self = this;\n \n if (_self.className.indexOf('opened') == -1 && localStorage.getItem(\"electionTicker\") == null) {\n localStorage.setItem(\"electionTicker\", \"closed\");\n }\n\n const metrics = {\n category: `ticker-${window._elections.type}`,\n position: 1,\n action: \"fechar\",\n reference: _self.classList[1] == \"closed\" ? \"abrir\" : \"esconder\" \n }\n\n if(tickerFooter){\n const [...footerLi] = tickerFooter.querySelectorAll(\"li\");\n \n const wichFooter = _self.className.indexOf(tickerStatus) != -1 ? footerLi[1] : footerLi[0];\n tickerFooter.scrollBy({\n left: wichFooter.getBoundingClientRect().x,\n behavior: \"smooth\"\n });\n }\n\n window.handleAudience(metrics.category, metrics.action, metrics.position, metrics.reference);\n const logoAnalyses = tickerEl.querySelector('.logoUOL-analysis');\n \n if(logoAnalyses) logoAnalyses.classList.toggle(\"closed\");\n tickerBody.classList.toggle(\"opened\");\n tickerBody.classList.toggle(\"closed\");\n\n _self.classList.toggle(\"opened\");\n _self.classList.toggle(\"closed\");\n\n }\n\n button.addEventListener(\"click\", handleTab);\n if(tickerBody.querySelector(\".tooltip-container\")) tooltipWatcherMobile(tickerEl);\n\n }\n\n document.body.appendChild(tickerEl);\n configWatcher();\n}\n\n/** \n * Fabrica de cards de cargo/candidatos\n **/\nfunction liFactory(cardData, returnLi=true) {\n //svg de link veja mais\n const arrowRight = '';\n\n const geoLocation = cardData.cn.indexOf('Governador') == -1 ? \"\" :\n `
    ${window._elections.newState.uf}
    `;\n\n const metrics = {\n category: \"ticker-apuração\",\n action: window._elections.apurationLink,\n position: 1,\n reference: \"content\"\n }\n\n const imageData ={\n uf: cardData.ac,\n cc: cardData.cc\n }\n\n const candidatesNode =\n '
    ' +\n `
    ${cardData.cn}${geoLocation}
    ` +\n `
    ${cardData.sap}%` +\n \"
    \" +\n \"
    \" +\n '
    ' +\n cardData.ca.map((item, index) => candidatesFactory(item, imageData, index)).join(\"\") +\n '
    ' +\n '\";\n\n const factoredLi = `
  • ` +\n candidatesNode +\n \"
  • \";\n\n return returnLi ? factoredLi : candidatesNode;\n\n}\n\n/*\n * Fabrica de cards de candidatos\n */\nfunction candidatesFactory(item, imageData, index) {\n\n const tooltipContainer = item.van == 1 ? `
    iO TSE considera os votos recebidos como \"votos anulados\" porque a candidatura tem pendências ainda não julgadas.
    ` : \"\";\n\n var candidateStatus = \"\";\n var status = \"\";\n\n if(item.s){\n switch(item.s){\n case 1:\n status = 'e'\n break;\n case 2:\n status = 're'\n break;\n case 3:\n status = '2ºt'\n break;\n case 9:\n status = 'disabled'\n break;\n default:\n break;\n };\n\n candidateStatus = status != \"disabled\" ? `
    ${status}
    ` : \"\";\n }\n\n const candidateEl =\n `
    ` +\n '
    ' +\n `\"${item.no}\"` +\n candidateStatus +\n '
    ' +\n '
    ' +\n `
    ${item.nu}
    ` +\n `
    ${item.vp}%
    ` +\n '
    ' +\n tooltipContainer +\n \"
    \";\n\n return candidateEl;\n};\n\n\n/** \n * Fabrica de cards para news\n **/\nfunction newsFactory(item, index){\n\n const metrics = {\n category: \"ticker-analise\",\n action: item.link,\n position: index,\n reference: \"chamada\"\n }\n\n const img = item.imagem.src ? `\"\"` : \"\";\n\n const newsElement = \n `
  • ` +\n `` + \n img +\n `
    ${item.titulo}
    ` +\n \"
    \" +\n \"
  • \";\n return newsElement;\n}\n\n/** \n * Realiza update do dom de acordo com socket\n **/\n function updateDOM(data){\n if (!data[0]) return\n const ticker=document.querySelector(\"#UOLTickerEleicoes\");\n const tickerBodyUl=ticker.querySelector(\".ticker-body ul\");\n \n data.forEach(data =>{\n const newBodyList=liFactory(data, false);\n \n //captura somente o card q recebeu alteração\n const cardToChange=tickerBodyUl.querySelector(`.${data.cn}`);\n \n cardToChange.innerHTML = newBodyList;\n });\n\n if(window._elections.isMobile) tooltipWatcherMobile(ticker);\n}\n\n\n/** \n * binds de tooltip Mobile\n **/\nfunction tooltipWatcherMobile(ticker){\n\n const tooltipText=ticker.querySelector('.tooltip-text-mobile');\n tooltipText.style.left = (100-(243*100/window.innerWidth))/2+'%';\n\n const handleTooltip=function(event){\n\n const removeTooltipText=function(scope){\n if (!event.target.contains(scope.target)) {\n tooltipText.classList.remove(\"visible\");\n document.removeEventListener('click', removeTooltipText);\n }\n }\n\n document.addEventListener('click', removeTooltipText);\n\n if(event.srcElement.className.indexOf(\"1\") != -1){\n tooltipText.classList.add(\"left\");\n\n } else {\n tooltipText.classList.remove(\"left\");\n }\n\n tooltipText.classList.toggle(\"visible\");\n }\n\n const tooltipIcon=ticker.querySelectorAll('[class*=\"tooltip-i-\"]');\n\n tooltipIcon.forEach(element =>{\n element.addEventListener(\"click\", handleTooltip);\n \n });\n}\n\n/*\n * Watcher de configurações editoriais\n */\nfunction configWatcher(){\n var pollingWatcher=null;\n setInterval(() => {\n const _self=this;\n\n fetch(\"//c.jsuol.com.br/service?loadComponent=projects/election-2022/election-2022-ticker-config&data={%22jsonp%22:false}\", {cache: \"no-cache\"}).then(data => data.json()).then(config =>{\n\n const {analyses, ...configData} = config;\n\n const actualConfig=JSON.stringify(configData);\n\n window._elections.socket = configData.socket;\n\n if (actualConfig==window._elections.config) {\n return;\n\n } else {\n\n if (!config.socket) {\n\n if (window.usocket.isConnected()) {\n window.usocket.disconnect(window._elections.socketChannel);\n console.info('Ticker - Disconnecting from socket');\n } \n pollingWatcher=setInterval(() => {\n runPolling(updateDOM);\n \n }, configData.interval || 10000);\n console.info('Ticker - Getting DATA from Polling');\n\n } else {\n clearInterval(pollingWatcher);\n\n if(!window.usocket.isConnected()) {\n console.info('Ticker - Destroying Polling');\n waitWsSocket(updateDOM);\n }\n }\n window._elections.config = actualConfig;\n }\n }).catch(err =>{\n console.info('Error loading Ticker Config File', err);\n _self.clearInterval();\n configWatcher();\n });\n }, 30000);\n}\n\n/*\n * método slugfy\n */\nfunction slugify(value){\n if(value){\n return value\n .toLowerCase()\n .replace(/[áãâà]/g, \"a\")\n .replace(/[éẽêè]/g, \"e\")\n .replace(/[íĩîì]/g, \"i\")\n .replace(/[óõôò]/g, \"o\")\n .replace(/[úũûù]/g, \"u\")\n .replace(/[ç]/g, \"c\")\n .replace(/ /g, \"-\")\n .replace(/[\"'!?()]/g, \"\");\n }\n\n return value;\n}","module.exports = \"d473df64c2611d9c\";"],"names":["$dbd71384e24028a9$var$runScript","window","_elections","scope","document","querySelector","body","dataset","anchorads","fetch","cache","then","data","json","response","type","socket","interval","dataAnalysis","analyses","statusUOL","statusPartners","config","console","info","style","createElement","appendChild","createTextNode","$parcel$interopDefault","head","uscoketScript","setAttribute","audienceScript","handleAudience","category","action","position","reference","hitAudience","countClick","area","component","$dbd71384e24028a9$var$slugify","$dbd71384e24028a9$var$startTicker","$dbd71384e24028a9$var$waitWsSocket","$dbd71384e24028a9$var$runPolling","catch","err","callback","$dbd71384e24028a9$var$getCity","Promise","resolve","all","$dbd71384e24028a9$var$connectPolling","newState","uf","values","path","ca","setTimeout","length","slice","elected","find","candidate","s","map","item","nu","undefined","usocket","$dbd71384e24028a9$var$connectSocket","socketChannel","domain","channel","requestedData","isConnected","ws","connect","connectionRetry","channelTryConnection","on","newData","push","$dbd71384e24028a9$var$updateDOM","invalidChannel","async","isPartner","$dbd71384e24028a9$var$checkPartner","name","allStates","id","blacklist","geoCookie","re1","RegExp","re2","cookie","match","value","replace","JSON","parse","unescape","e","$dbd71384e24028a9$var$getCookie","responseJson","state","urls","filter","partnerURL","url","location","href","indexOf","linkParam","isMobile","innerWidth","tickerStatus","localStorage","getItem","UOLlogoSVG","sashSVG","arrowRight","apurationLink","t","tickerElement","tickerHeader","footerClosed","footerOpened","bodyFooter","metrics","$dbd71384e24028a9$var$liFactory","join","tooltipMobile","analysisBody","index","link","img","imagem","src","titulo","$dbd71384e24028a9$var$newsFactory","tickerEl","classList","add","includes","innerHTML","ulArray","querySelectorAll","liArray","liArrayLenght","options","root","rootMargin","threshold","analysisUl","nav","firstLastCards","observerForCards","IntersectionObserver","entries","observer","visibleElement","entry","isIntersecting","navLeft","element","className","navRight","target","remove","observe","forEach","addEventListener","event","slide","clientWidth","side","scrollBy","left","behavior","tickerBody1","tickerFooter","screenWidth","width","previusIndex","isVisible","el","navigationElts","boundingClientRect","x","isVisibleClass","split","currentIndex","parseInt","rolesCard","handleTab","_self","this","setItem","footerLi","wichFooter","getBoundingClientRect","logoAnalyses","toggle","$dbd71384e24028a9$var$tooltipWatcherMobile","$dbd71384e24028a9$var$configWatcher","cardData","returnLi","geoLocation","cn","imageData","ac","cc","candidatesNode","sap","tooltipContainer","van","candidateStatus","status","num","no","vp","$dbd71384e24028a9$var$candidatesFactory","factoredLi","ticker","tickerBodyUl","newBodyList","tooltipText","handleTooltip","removeTooltipText","contains","removeEventListener","srcElement","pollingWatcher","setInterval","configData","actualConfig","stringify","clearInterval","disconnect","toLowerCase","readyState"],"version":3,"file":"index.js.map"}