{"version":3,"file":"recent_quotes.81e20862.js","mappings":"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","sources":["webpack://@finviz/website/./js/app/shared/hover-chart.ts","webpack://@finviz/website/./js/app/shared/recent_quotes.ts"],"sourcesContent":["import { HTMLAttributeReferrerPolicy } from 'react'\r\n\r\nimport { encodeQueryString } from '../queryString'\r\n\r\nconst DEFAULT_OVERLAYS =\r\n '&o[0][ot]=sma&o[0][op]=50&o[0][oc]=FF8F33C6&o[1][ot]=sma&o[1][op]=200&o[1][oc]=DCB3326D&o[2][ot]=patterns&o[2][op]=&o[2][oc]=000'\r\n\r\nexport function getHoverChartUrl(\r\n ticker: string,\r\n escaped: boolean = false,\r\n timeframe = FinvizSettings.hoverCharts?.stock?.timeframe,\r\n dateRange = FinvizSettings.hoverCharts?.stock?.dateRange\r\n): string {\r\n const theme = FinvizSettings.hasDarkTheme ? 'd' : undefined\r\n const overlays = FinvizSettings.hasUserPremium && FinvizSettings.hoverCharts?.stock?.patterns ? DEFAULT_OVERLAYS : ''\r\n const query = encodeQueryString({\r\n cs: 'm',\r\n t: ticker,\r\n tf: timeframe ?? 'd',\r\n ct: 'candle_stick',\r\n r: dateRange,\r\n tm: theme,\r\n })\r\n\r\n let imgUrl = `${FinvizSettings.nodeChartsDomain}/chart.ashx?${query}${overlays}`\r\n\r\n if (escaped) {\r\n // \"Escaping\" [ and ] because of how boxover.js works\r\n imgUrl = imgUrl.replace(/\\[/g, '[[').replace(/]/g, ']]')\r\n }\r\n return imgUrl\r\n}\r\n\r\nexport function getHoverChartDimensions() {\r\n switch (FinvizSettings.hoverCharts?.stock?.timeframe) {\r\n case 'i3':\r\n case 'i15':\r\n return { width: 584, height: 180 }\r\n case 'i5':\r\n return { width: 376, height: 180 }\r\n case 'd':\r\n if (FinvizSettings.hoverCharts?.stock?.patterns) return { width: 464, height: 230 }\r\n return { width: 324, height: 180 }\r\n default:\r\n return { width: 324, height: 180 }\r\n }\r\n}\r\n\r\nexport function getReferrerPolicy(): HTMLAttributeReferrerPolicy {\r\n return 'no-referrer-when-downgrade'\r\n}\r\n\r\nexport function getHoverChartImg(\r\n ticker: string,\r\n escaped: boolean = false,\r\n timeframe = FinvizSettings.hoverCharts?.stock?.timeframe,\r\n dateRange?: string\r\n) {\r\n const chartSize = getHoverChartDimensions()\r\n const referrerPolicy = getReferrerPolicy()\r\n const url = getHoverChartUrl(ticker, escaped, timeframe, dateRange)\r\n const srcSet = getSrcSet(url)\r\n const srcsetString = srcSet?.length ? ` srcset='${srcSet}'` : ''\r\n\r\n return {\r\n img: ``,\r\n ...chartSize,\r\n }\r\n}\r\n\r\nexport function getSrcSet(url: string) {\r\n // You must keep a space after , for refresh to work\r\n return `${url} 1x, ${url}&sf=2 2x`\r\n}\r\n","import { apiRequest } from '../../main/services/api'\r\nimport { getHoverChartImg } from './hover-chart'\r\n\r\nvar RECENT_QUOTES_TO_RENDER = 16\r\nvar MAX_RECENT_QUOTES = 16\r\nvar RECENT_QUOTES_KEY = 'recentQuotes'\r\n\r\nexport function RenderRecentQuotes() {\r\n var recentQuotes = getRecentQuotes()\r\n\r\n if (window.location.pathname === '/quote.ashx') {\r\n const tickerElements = document.querySelectorAll('.js-recent-quote-ticker')\r\n if (tickerElements !== null) {\r\n for (var index = tickerElements.length - 1; index >= 0; index--) {\r\n var ticker = tickerElements[index].dataset.ticker\r\n if (ticker === undefined) {\r\n continue\r\n }\r\n var tickerPosition = recentQuotes.indexOf(ticker)\r\n if (tickerPosition !== -1) {\r\n recentQuotes.splice(tickerPosition, 1)\r\n } else if (recentQuotes.length === MAX_RECENT_QUOTES) {\r\n recentQuotes.splice(0, 1)\r\n }\r\n recentQuotes.push(ticker)\r\n }\r\n\r\n setRecentQuotes(recentQuotes)\r\n }\r\n }\r\n\r\n if (window.location.pathname === '/' || window.location.pathname === '/index.ashx') {\r\n var isSmallTable = !!document.getElementById('js-small-recent-quotes-table')\r\n var QUOTES_PER_ROW = isSmallTable ? 3 : 4\r\n if (recentQuotes.length === 0) {\r\n // used to distinguish between old/new index\r\n var recentQuotesTablePlaceholder = document.getElementById('js-recent-quotes-table')\r\n if (recentQuotesTablePlaceholder) {\r\n var html = ''\r\n html +=\r\n ''\r\n html += '
Recent quotes
'\r\n recentQuotesTablePlaceholder.innerHTML = html\r\n }\r\n return\r\n }\r\n\r\n apiRequest('/request_quote_full.ashx', {\r\n query: { t: recentQuotes.slice(-(isSmallTable ? 6 : MAX_RECENT_QUOTES)).join(',') },\r\n }).then(function (dataRaw: string | undefined) {\r\n if (dataRaw === undefined) {\r\n return\r\n }\r\n const data = processAJAXResponse(dataRaw)\r\n for (let i = 0; i < recentQuotes.length; i++) {\r\n if (typeof data[recentQuotes[i]] === 'undefined') {\r\n // ticker no longer exists\r\n recentQuotes.splice(i, 1)\r\n i--\r\n }\r\n }\r\n setRecentQuotes(recentQuotes)\r\n\r\n // also used to distinguish between old/new index\r\n var recentQuotesTablePlaceholder = document.getElementById('js-recent-quotes-table')\r\n\r\n var recentQuotesEl = document.getElementById('recent-quotes')\r\n recentQuotesEl?.parentNode?.removeChild(recentQuotesEl)\r\n\r\n var tr = document.createElement('tr')\r\n tr.id = 'recent-quotes'\r\n var td = document.createElement('td')\r\n if (isSmallTable) {\r\n td.classList.add('is-small')\r\n }\r\n td.classList.add('recent-quotes-body')\r\n tr.appendChild(td)\r\n //var html = '';\r\n const hasRedesignEnabled = window.FinvizSettings.hasRedesignEnabled\r\n let html = ``\r\n\r\n if (recentQuotesTablePlaceholder !== null) {\r\n html +=\r\n ''\r\n }\r\n\r\n recentQuotes.reverse()\r\n var emptyCells = recentQuotes.length % QUOTES_PER_ROW\r\n var renderedQuotes = recentQuotes.length + (emptyCells === 0 ? 0 : QUOTES_PER_ROW - emptyCells)\r\n for (let i = 0; i < Math.min(renderedQuotes, RECENT_QUOTES_TO_RENDER); i++) {\r\n var item = data[recentQuotes[i]]\r\n\r\n if (i % QUOTES_PER_ROW === 0) {\r\n html += ``\r\n }\r\n\r\n if (!item) {\r\n html += ''\r\n continue\r\n }\r\n\r\n const chart = getHoverChartImg(item.ticker, true)\r\n\r\n html +=\r\n ''\r\n\r\n if (i % QUOTES_PER_ROW === QUOTES_PER_ROW - 1) {\r\n html += ''\r\n }\r\n }\r\n html += ''\r\n html += '
Recent quotes
 ' +\r\n item.company +\r\n '' +\r\n item.industry +\r\n ' | ' +\r\n item.country +\r\n ' | ' +\r\n item.marketCap +\r\n `] offsetx=[${chart.width * -1 - 105}] offsety=[${chart.height * -1 - 95}] delay=[250]\">`\r\n html += '
'\r\n html += '' + item.ticker + ' '\r\n html +=\r\n (hasRedesignEnabled ? '' : '') +\r\n formatLastChange(item.lastChange) +\r\n (hasRedesignEnabled ? '' : '')\r\n html += '
'\r\n html += '
'\r\n\r\n td.innerHTML = html\r\n\r\n // document.getElementById('recent-quotes-heading').parentNode.appendChild(tr);\r\n var recentQuotesHeadingElement = document.getElementById('recent-quotes-heading')\r\n\r\n if (recentQuotes.length > 0) {\r\n recentQuotesHeadingElement?.classList.remove('hidden')\r\n\r\n var recentQuotesBottomSpacerElement = document.getElementById('js-recent-quotes-bottom-spacer')\r\n\r\n if (recentQuotesBottomSpacerElement) {\r\n recentQuotesBottomSpacerElement.classList.remove('hidden')\r\n }\r\n }\r\n\r\n if (recentQuotesTablePlaceholder !== null) {\r\n recentQuotesTablePlaceholder.innerHTML = html\r\n } else {\r\n recentQuotesHeadingElement?.parentNode?.insertBefore(tr, recentQuotesHeadingElement.nextSibling)\r\n }\r\n\r\n const anchor = document.getElementById('recent-quotes-anchor') as HTMLAnchorElement | null\r\n if (anchor) {\r\n anchor.href = '/screener.ashx?v=320&t=' + recentQuotes.slice().reverse().join(',')\r\n }\r\n })\r\n }\r\n}\r\n\r\n// http://stackoverflow.com/questions/13102116/access-denied-for-localstorage-in-ie10\r\nfunction getRecentQuotes() {\r\n try {\r\n var tickers = localStorage.getItem(RECENT_QUOTES_KEY)\r\n return tickers ? tickers.split('|') : []\r\n } catch {\r\n return []\r\n }\r\n}\r\n\r\nfunction setRecentQuotes(quotes: string[]) {\r\n localStorage.setItem(RECENT_QUOTES_KEY, quotes.join('|'))\r\n}\r\n\r\nfunction processAJAXResponse(data: string) {\r\n const lines = data.split('\\n')\r\n\r\n const tickers: Record<\r\n string,\r\n {\r\n ticker: string\r\n lastChange: string\r\n company: string\r\n industry: string\r\n country: string\r\n marketCap: string\r\n }\r\n > = {}\r\n for (var i = 0; i < lines.length; i++) {\r\n var line = lines[i]\r\n if (line === '') {\r\n continue\r\n }\r\n\r\n var cols = line.split('|')\r\n var ticker = cols[0]\r\n var lastChange = cols[2]\r\n var company = cols[3]\r\n var industry = cols[4]\r\n var country = cols[5]\r\n var marketCap = cols[6]\r\n tickers[ticker] = {\r\n ticker: ticker,\r\n lastChange: lastChange,\r\n company: company,\r\n industry: industry,\r\n country: country,\r\n marketCap: marketCap,\r\n }\r\n }\r\n return tickers\r\n}\r\n\r\nfunction formatLastChange(change: string) {\r\n var value = parseFloat(change),\r\n below = 0,\r\n above = 0,\r\n background = 5,\r\n bold = 10,\r\n className = '',\r\n str = '= bold) className = 'negative-200'\r\n else if (value < -background) className = 'negative-100'\r\n else className = 'negative-50'\r\n } else if (value > above) {\r\n if (value >= bold) className = 'positive-200'\r\n else if (value > background) className = 'positive-100'\r\n else className = 'positive-50'\r\n }\r\n\r\n str += `${className} fv-label is-${className} hp_label\">${change}`\r\n return str\r\n}\r\n"],"names":["DEFAULT_OVERLAYS","getHoverChartUrl","ticker","_FinvizSettings$hover","_FinvizSettings$hover2","_FinvizSettings$hover3","escaped","arguments","length","undefined","timeframe","FinvizSettings","hoverCharts","stock","dateRange","theme","hasDarkTheme","overlays","hasUserPremium","patterns","query","encodeQueryString","cs","t","tf","ct","r","tm","imgUrl","concat","nodeChartsDomain","replace","getHoverChartDimensions","_FinvizSettings$hover4","_FinvizSettings$hover5","width","height","getReferrerPolicy","getHoverChartImg","_FinvizSettings$hover6","chartSize","url","srcSet","getSrcSet","srcsetString","img","RECENT_QUOTES_TO_RENDER","MAX_RECENT_QUOTES","RECENT_QUOTES_KEY","RenderRecentQuotes","recentQuotes","tickers","localStorage","getItem","split","getRecentQuotes","window","location","pathname","tickerElements","document","querySelectorAll","index","dataset","tickerPosition","indexOf","splice","push","setRecentQuotes","isSmallTable","getElementById","QUOTES_PER_ROW","recentQuotesTablePlaceholder","html","innerHTML","apiRequest","slice","join","then","dataRaw","_recentQuotesEl$paren","data","lines","i","line","cols","lastChange","company","industry","country","marketCap","processAJAXResponse","recentQuotesEl","parentNode","removeChild","tr","createElement","id","td","classList","add","appendChild","hasRedesignEnabled","reverse","emptyCells","renderedQuotes","Math","min","item","chart","formatLastChange","_recentQuotesHeadingE","recentQuotesHeadingElement","remove","recentQuotesBottomSpacerElement","insertBefore","nextSibling","anchor","href","quotes","setItem","change","value","parseFloat","className","str","abs"],"sourceRoot":""}