{"version":3,"file":"groups.a373dedf.js","mappings":"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AAKR,UAAU,QAAOO,SAAEvD,EAAIe,UAZvBf,EAAIe,MAaL,QAIZyC,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAAA,WAGN,EAMD1D,EAtIKJ,EAAQ,eAGU,CACpByB,IAAK,KAoIT,S,2ICtKIkD,EAAmB,CACrBC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA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","sources":["webpack://@finviz/website/./js/app/futures/components/BarChart.tsx","webpack://@finviz/website/./js/app/futures/utils.tsx","webpack://@finviz/website/./js/app/groups/performance.tsx","webpack://@finviz/website/./js/app/groups/index.tsx","webpack://@finviz/website/./js/app/maps/types.ts","webpack://@finviz/website/./js/app/shared/components/Ads.tsx","webpack://@finviz/website/./js/app/shared/tracking.ts","webpack://@finviz/website/../node_modules/core-js/internals/array-set-length.js","webpack://@finviz/website/../node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://@finviz/website/../node_modules/core-js/modules/es.array.push.js"],"sourcesContent":["import classnames from 'classnames'\r\nimport * as d3 from 'd3'\r\nimport { CSSProperties, Component, MouseEvent } from 'react'\r\n\r\nimport { GradientDefinition } from '../../shared/gradients'\r\nimport { futuresDomains } from '../utils'\r\nimport { generateColorScale as gcs } from '../utils'\r\n\r\nvar generateColorScale = gcs.bind(null, futuresDomains)\r\n\r\ninterface Bar {\r\n label: string\r\n value: number\r\n isInactive?: boolean\r\n}\r\n\r\ninterface BarChartProps {\r\n width: number\r\n barHeight?: number\r\n period: string\r\n //height: number,\r\n //title: string,\r\n //date: string, // TODO\r\n data: Bar[]\r\n onClick?: (bar: Bar) => void\r\n gap: number\r\n gradient?: GradientDefinition\r\n alignHeaderToBars?: boolean\r\n isHorizontal?: boolean\r\n isWrapper?: boolean\r\n}\r\n\r\nclass BarChart extends Component {\r\n state = { hoveredGroup: null }\r\n\r\n static defaultProps = {\r\n gap: 0.5,\r\n }\r\n\r\n render() {\r\n var rows = this.props.data\r\n var labels = rows.map(function (d) {\r\n return d.label\r\n })\r\n\r\n var width = this.props.width,\r\n barHeight = this.props.barHeight || 12,\r\n height = (barHeight + this.props.gap * 2) * rows.length,\r\n leftWidth = 100\r\n\r\n var x = d3\r\n .scaleLinear()\r\n .domain([0, d3.max(rows, (d: Bar) => Math.abs(d.value))!])\r\n .range([0, width - leftWidth - 40])\r\n .nice(6)\r\n\r\n var xAxisTicks = x.ticks(6)\r\n\r\n var y = d3\r\n .scaleBand()\r\n .domain(labels)\r\n .range([0, (barHeight + 2 * this.props.gap) * labels.length])\r\n\r\n var colorScale = generateColorScale(this.props.period, this.props.gradient)\r\n\r\n // so React won't reorder our elements\r\n rows = rows.slice().sort(function (a, b) {\r\n if (a.label < b.label) {\r\n return -1\r\n }\r\n if (a.label > b.label) {\r\n return 1\r\n }\r\n return 0\r\n })\r\n\r\n var header =\r\n // @ts-ignore\r\n {\r\n d: '1 Day',\r\n w: '1 Week',\r\n m: '1 Month',\r\n mtd: 'Month to date',\r\n q: '3 Month',\r\n hy: 'Half year',\r\n y: '1 Year',\r\n ytd: 'Year to Date',\r\n }[this.props.period] + ' Performance'\r\n\r\n return (\r\n \r\n \r\n {header}\r\n \r\n
\r\n {xAxisTicks.map((tick: any) => (\r\n \r\n
{tick}%
\r\n
\r\n ))}\r\n \r\n \r\n {rows.map((row) => {\r\n var large = x(Math.abs(row.value)) > 40\r\n var width = Math.round(x(Math.abs(row.value)))\r\n var style: CSSProperties = {\r\n position: 'absolute',\r\n top: y(row.label)! + this.props.gap,\r\n left: leftWidth,\r\n width: width,\r\n height: barHeight,\r\n ...(!row.isInactive && { background: colorScale(row.value) }),\r\n }\r\n return (\r\n \r\n \r\n {row.value > 0 ? '+' : ''}\r\n {row.value}\r\n \r\n
{row.label}
\r\n \r\n )\r\n })}\r\n \r\n
\r\n
\r\n \r\n )\r\n }\r\n\r\n _onClick = (row: Bar, e: MouseEvent) => {\r\n e.preventDefault()\r\n this.props.onClick?.(row)\r\n }\r\n}\r\n\r\nexport default BarChart\r\n","import * as d3 from 'd3'\r\n\r\nvar redGreenGradient = {\r\n colors: [\r\n '#fd0001',\r\n '#fd0101',\r\n '#fc0101',\r\n '#fa0101',\r\n '#f90103',\r\n '#f70203',\r\n '#f60203',\r\n '#f40204',\r\n '#f20304',\r\n '#f10304',\r\n '#ef0404',\r\n '#ee0405',\r\n '#ec0405',\r\n '#ea0505',\r\n '#e80505',\r\n '#e70506',\r\n '#e50606',\r\n '#e30706',\r\n '#e20706',\r\n '#e00807',\r\n '#df0708',\r\n '#dd0808',\r\n '#db0808',\r\n '#d90809',\r\n '#d80909',\r\n '#d60909',\r\n '#d40a09',\r\n '#d30a0a',\r\n '#d10a0a',\r\n '#cf0a0a',\r\n '#ce0b0b',\r\n '#cc0b0b',\r\n '#cb0c0b',\r\n '#c90b0c',\r\n '#c70c0c',\r\n '#c60c0c',\r\n '#c40c0d',\r\n '#c20d0d',\r\n '#c10e0e',\r\n '#bf0e0e',\r\n '#be0e0e',\r\n '#bc0f0f',\r\n '#ba0f0f',\r\n '#b90f10',\r\n '#b71010',\r\n '#b51010',\r\n '#b41010',\r\n '#b21111',\r\n '#b11111',\r\n '#af1111',\r\n '#ad1112',\r\n '#ab1212',\r\n '#aa1212',\r\n '#a81313',\r\n '#a61313',\r\n '#a51313',\r\n '#a31413',\r\n '#a21414',\r\n '#a01514',\r\n '#9e1414',\r\n '#9d1515',\r\n '#9b1616',\r\n '#9a1616',\r\n '#981616',\r\n '#961716',\r\n '#951717',\r\n '#931717',\r\n '#911818',\r\n '#8f1818',\r\n '#8e1818',\r\n '#8d1919',\r\n '#8b1919',\r\n '#8a1a1a',\r\n '#881a19',\r\n '#861b1a',\r\n '#841b1b',\r\n '#831b1b',\r\n '#811c1b',\r\n '#801c1b',\r\n '#7e1c1c',\r\n '#7c1d1c',\r\n '#7a1d1d',\r\n '#791d1d',\r\n '#781d1e',\r\n '#761e1e',\r\n '#741f1e',\r\n '#721f1e',\r\n '#711f1f',\r\n '#6f1f1f',\r\n '#6e1f20',\r\n '#6c1f20',\r\n '#6a2020',\r\n '#682020',\r\n '#682221',\r\n '#662222',\r\n '#652222',\r\n '#622323',\r\n '#612223',\r\n '#602323',\r\n '#5e2323',\r\n '#5c2424',\r\n '#5a2425',\r\n '#582424',\r\n '#572525',\r\n '#552525',\r\n '#542626',\r\n '#522627',\r\n '#502626',\r\n '#4e2627',\r\n '#4d2727',\r\n '#4b2728',\r\n '#4a2828',\r\n '#482828',\r\n '#462929',\r\n '#452929',\r\n '#432929',\r\n '#422a29',\r\n '#40292a',\r\n '#3f2a2a',\r\n '#3d2b2b',\r\n '#3b2b2b',\r\n '#3a2b2c',\r\n '#372c2c',\r\n '#362c2c',\r\n '#352d2c',\r\n '#332d2d',\r\n '#312d2e',\r\n '#302e2e',\r\n '#2f2f2f',\r\n '#2e312f',\r\n '#2f322e',\r\n '#2e332e',\r\n '#2e342d',\r\n '#2d372d',\r\n '#2c372c',\r\n '#2d392c',\r\n '#2c3a2b',\r\n '#2b3b2c',\r\n '#2b3d2c',\r\n '#2b3e2b',\r\n '#2a3f2a',\r\n '#2a412a',\r\n '#29432a',\r\n '#294429',\r\n '#294529',\r\n '#284728',\r\n '#284828',\r\n '#284a27',\r\n '#284b27',\r\n '#274d27',\r\n '#264e27',\r\n '#265026',\r\n '#265126',\r\n '#265326',\r\n '#255425',\r\n '#245625',\r\n '#245725',\r\n '#245825',\r\n '#245a24',\r\n '#245b24',\r\n '#245d24',\r\n '#235e23',\r\n '#236023',\r\n '#226123',\r\n '#226322',\r\n '#226421',\r\n '#216621',\r\n '#216721',\r\n '#216821',\r\n '#206920',\r\n '#1f6b20',\r\n '#1f6d1f',\r\n '#1f6f1f',\r\n '#1e701f',\r\n '#1e711e',\r\n '#1d721e',\r\n '#1d741e',\r\n '#1e751e',\r\n '#1d771e',\r\n '#1d781d',\r\n '#1d7a1d',\r\n '#1c7c1c',\r\n '#1c7d1c',\r\n '#1b7e1c',\r\n '#1b801b',\r\n '#1a811b',\r\n '#1a821b',\r\n '#1a841a',\r\n '#1a851b',\r\n '#198719',\r\n '#198819',\r\n '#188919',\r\n '#188b18',\r\n '#188d18',\r\n '#178e18',\r\n '#168f17',\r\n '#169117',\r\n '#179217',\r\n '#169316',\r\n '#159416',\r\n '#159616',\r\n '#159815',\r\n '#159914',\r\n '#149b14',\r\n '#139c14',\r\n '#139e13',\r\n '#129f13',\r\n '#12a013',\r\n '#12a213',\r\n '#12a312',\r\n '#11a411',\r\n '#10a611',\r\n '#10a711',\r\n '#10a911',\r\n '#10ab11',\r\n '#0fac11',\r\n '#0fae10',\r\n '#0faf10',\r\n '#0fb00f',\r\n '#0eb20f',\r\n '#0eb30e',\r\n '#0eb40e',\r\n '#0db60e',\r\n '#0cb70d',\r\n '#0cb90d',\r\n '#0cbb0c',\r\n '#0bbc0d',\r\n '#0bbe0c',\r\n '#0bbf0c',\r\n '#0ac00b',\r\n '#0ac10b',\r\n '#0ac30a',\r\n '#0ac40a',\r\n '#09c609',\r\n '#09c709',\r\n '#09c809',\r\n '#08ca08',\r\n '#07cb08',\r\n '#07cd08',\r\n '#07cf08',\r\n '#06d008',\r\n '#06d107',\r\n '#06d306',\r\n '#05d406',\r\n '#04d505',\r\n '#04d605',\r\n '#04d805',\r\n '#04d904',\r\n '#03da04',\r\n '#03dc03',\r\n '#03dd04',\r\n '#02df03',\r\n '#02e002',\r\n '#01e202',\r\n '#01e302',\r\n '#00e402',\r\n ],\r\n nullColor: '#2f323d',\r\n}\r\n\r\nvar futuresDomains = {\r\n d: 1.5,\r\n w: 2.5,\r\n m: 5,\r\n mtd: 5,\r\n q: 10,\r\n hy: 25,\r\n y: 30,\r\n ytd: 30,\r\n}\r\n\r\nvar forexDomains = {\r\n d: 1,\r\n w: 2.5,\r\n m: 5,\r\n mtd: 5,\r\n q: 10,\r\n hy: 10,\r\n y: 10,\r\n ytd: 10,\r\n}\r\n\r\nvar cryptoDomains = {\r\n d: 5, // TODO refine\r\n w: 2.5,\r\n m: 5,\r\n mtd: 5,\r\n q: 10,\r\n hy: 10,\r\n y: 10,\r\n ytd: 10,\r\n}\r\n\r\nvar generateColorScale = function (domains: Record, domainId: string, gradient = redGreenGradient) {\r\n var domain = {\r\n min: -domains[domainId],\r\n max: +domains[domainId],\r\n }\r\n\r\n var linearScale = d3\r\n .scaleLinear()\r\n .domain([domain.min, domain.max])\r\n .range([0, gradient.colors.length - 1])\r\n\r\n return function (value: number) {\r\n if (typeof value === 'undefined' || value === null) {\r\n return gradient.nullColor\r\n }\r\n\r\n if (value > domain.max) value = domain.max\r\n if (value < domain.min) value = domain.min\r\n\r\n var i = Math.round(linearScale(value))\r\n return gradient.colors[i]\r\n }\r\n}\r\n\r\nvar getCookie = function (name: string) {\r\n var re = new RegExp('(?:(?:^|.*;\\\\s*)' + name + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$')\r\n return document.cookie.replace(re, '$1')\r\n}\r\n\r\nexport const layout = [\r\n ['YM', 'ES', 'NQ', 'ER2', 'NKD', 'EX', 'DY', 'VX'],\r\n ['CL', 'QA', 'RB', 'HO', 'NG', 'ZK'],\r\n ['ZB', 'ZN'],\r\n ['CC', 'CT', 'JO', 'KC', 'LB', 'SB'],\r\n ['ZF', 'ZT'],\r\n ['GC', 'SI', 'PL', 'HG', 'PA'],\r\n ['LC', 'FC', 'LH'],\r\n ['ZS', 'ZM', 'ZL', 'ZC', 'ZW', 'ZR', 'ZO', 'RS'],\r\n ['DX', '6E', '6J', '6B', '6C', '6S', '6A', '6N'],\r\n]\r\n\r\nexport const groups = ['Indices', 'Energy', 'Bonds', 'Softs', 'Metals', 'Meats', 'Grains', 'Currencies'] as const\r\n\r\nexport { generateColorScale, futuresDomains, forexDomains, cryptoDomains, getCookie }\r\n","import classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport BarChart from '../futures/components/BarChart'\r\nimport { AdTag, getInvestingChannelPage } from '../shared/components/Ads'\r\nimport { redGreenGradient } from '../shared/gradients'\r\nimport { GroupRow } from './types'\r\n\r\ninterface GroupsPerformanceProps {\r\n rows: GroupRow[]\r\n}\r\n\r\ninterface PeriodRow {\r\n ticker: string\r\n label: string\r\n group: string\r\n screenerUrl: string\r\n perf: number\r\n}\r\n\r\nclass GroupsPerformance extends React.Component {\r\n declare pageRef: ReturnType\r\n\r\n componentDidMount() {\r\n this.pageRef = getInvestingChannelPage()\r\n this.pageRef.create()\r\n }\r\n\r\n componentWillUnmount() {\r\n this.pageRef?.destroy()\r\n }\r\n\r\n render() {\r\n const periodColumns = {\r\n d: 'perfT',\r\n w: 'perfW',\r\n m: 'perfM',\r\n q: 'perfQ',\r\n hy: 'perfH',\r\n y: 'perfY',\r\n ytd: 'perfYtd',\r\n }\r\n\r\n let data: Record = {}\r\n Object.keys(periodColumns).forEach((period) => {\r\n data[period] = this.props.rows.map((row) => ({\r\n ticker: row.ticker,\r\n label: row.label,\r\n group: row.group,\r\n screenerUrl: row.screenerUrl,\r\n // @ts-ignore\r\n perf: row[periodColumns[period]],\r\n }))\r\n })\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {Object.keys(periodColumns).map((period) => (\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\ninterface GroupsBarChartProps {\r\n period: string\r\n rows: PeriodRow[]\r\n}\r\n\r\nclass GroupsBarChart extends React.Component {\r\n state = {\r\n rows: this.props.rows,\r\n hoveredGroup: null,\r\n }\r\n\r\n componentDidMount() {\r\n // setInterval(() => {\r\n // d3.json('/api/futures_perf.ashx' + window.location.search, (error, data) => {\r\n // if (!error) {\r\n // this.setState({rows: data});\r\n // }\r\n // });\r\n // }, 30 * 1000);\r\n }\r\n\r\n render() {\r\n const isRedesign = !!FinvizSettings.hasRedesignEnabled\r\n var hoveredGroup = this.state.hoveredGroup\r\n var rows = this.state.rows\r\n .map(function (row) {\r\n return {\r\n label: row.label,\r\n value: row.perf,\r\n isInactive: hoveredGroup !== null && hoveredGroup !== row.group,\r\n }\r\n })\r\n .sort(function (a, b) {\r\n return b.value - a.value\r\n })\r\n\r\n return (\r\n \r\n \r\n
\r\n )\r\n }\r\n\r\n _onBarClick = (bar: { label: string; value: number; isInactive?: boolean }) => {\r\n const screenerUrl = this.state.rows.filter((tile) => tile.label === bar.label)[0].screenerUrl\r\n window.open(screenerUrl)\r\n }\r\n}\r\n\r\nexport default GroupsPerformance\r\n","import ReactDOM from 'react-dom'\r\n\r\nimport GroupsPerformance from './performance'\r\nimport { GroupRow } from './types'\r\n\r\nwindow['FinvizInitGroupsPerformance'] = function (rows: GroupRow[]) {\r\n ReactDOM.render(, document.getElementById('groups'))\r\n}\r\n","import { ReactNode } from 'react'\r\n\r\nexport enum MapTypeId {\r\n Sector = 'sec',\r\n World = 'geo',\r\n SectorFull = 'sec_all',\r\n ETF = 'etf',\r\n Screener = 'screener',\r\n Portfolio = 'portfolio',\r\n ETFHoldings = 'etf_holdings',\r\n}\r\n\r\nexport enum MapSubtypeId {\r\n DayPerf = 'd1',\r\n WeekPerf = 'w1',\r\n MonthPerf = 'w4',\r\n ThreeMonthPerf = 'w13',\r\n SixMonthPerf = 'w26',\r\n YearPerf = 'w52',\r\n YearToDatePerf = 'ytd',\r\n RelativeVolume = 'relvol',\r\n PriceToEarnings = 'pe',\r\n ForwardPriceToEearnings = 'fpe',\r\n PriceEarningsToGrowth = 'peg',\r\n PriceToSellsRatio = 'ps',\r\n PriceToBookRatio = 'pb',\r\n DividendYield = 'div',\r\n EPSGrowth5y = 'eps5y',\r\n FloatShort = 'short',\r\n AnalystRecommendation = 'rec',\r\n EarningsPerf = 'earnperf',\r\n EarningsDate = 'earndate',\r\n // Portfolio\r\n PortfolioGainPct = 'portfolioGainPct',\r\n PortfolioGainUsd = 'portfolioGainUsd',\r\n PortfolioChangePct = 'portfolioChangePct',\r\n PortfolioChangeUsd = 'portfolioChangeUsd',\r\n}\r\n\r\nexport enum ScaleId {\r\n DayPerf = 'default',\r\n WeekPerf = '_5',\r\n MonthPerf = '_10',\r\n ThreeMonthPerf = '_15',\r\n SixMonthPerf = '_20',\r\n YearPerf = '_25',\r\n RelativeVolume = '_relvol',\r\n PriceToEarnings = '_pe',\r\n ForwardPriceToEearnings = '_fpe',\r\n PriceEarningsToGrowth = '_peg',\r\n PriceToSellsRatio = '_ps',\r\n PriceToBookRatio = '_pb',\r\n DividendYield = '_div',\r\n EPSGrowth5y = '_eps5y',\r\n FloatShort = '_short',\r\n AnalystRecommendation = '_rec',\r\n EarningsDate = '_earndate',\r\n // Portfolio\r\n PortfolioPct = '_portfolioPct',\r\n PortfolioUsd = '_portfolioUsd',\r\n}\r\n\r\nexport const enum NodeDepth {\r\n Root,\r\n Sector,\r\n Industry,\r\n Node,\r\n}\r\n\r\nexport interface MapDataRow {\r\n name: string\r\n perf?: number\r\n x: number\r\n y: number\r\n dx: number\r\n dy: number\r\n data: any\r\n depth: NodeDepth\r\n}\r\n\r\nexport interface MapDataRoot {\r\n name: string\r\n children: MapDataSector[]\r\n duplicateTickers: number\r\n hash: string\r\n}\r\n\r\nexport interface MapDataSector extends MapDataRow {\r\n children: MapDataIndustry[]\r\n parent: MapDataRoot\r\n}\r\n\r\nexport interface MapDataIndustry extends MapDataRow {\r\n children: MapDataNode[]\r\n parent: MapDataSector\r\n}\r\n\r\nexport interface MapDataNode extends MapDataRow {\r\n parent: MapDataIndustry\r\n additional?: string\r\n description: string\r\n perfText: string\r\n value: number\r\n}\r\n\r\nexport interface MapData {\r\n sectors: MapDataSector[]\r\n industries: MapDataIndustry[]\r\n nodes: MapDataNode[]\r\n}\r\n\r\nexport type PerfData = {\r\n nodes: Record | Array\r\n additional: Record\r\n subtype: MapSubtypeId\r\n version?: number\r\n hash: string\r\n}\r\n\r\nexport interface MapSubtype {\r\n id: MapSubtypeId\r\n name: string\r\n scaleId: ScaleId\r\n tooltip: string\r\n countIndustryPerf: boolean\r\n countSectorPerf: boolean\r\n}\r\n\r\nexport interface MapType {\r\n name: string\r\n pageTitle: string\r\n nameShort?: string\r\n description: string\r\n type: MapTypeId\r\n subtypes: MapSubtype[]\r\n}\r\n\r\nexport interface Scale {\r\n name: string\r\n tooltip: ReactNode\r\n id: ScaleId\r\n}\r\n","import * as React from 'react'\r\n\r\nimport * as tracking from '../tracking'\r\n\r\nexport const IC_PUBLISHER_ID = 'df0d0d52-cc7f-11e8-82a5-0abbb61c4a6a'\r\n\r\nenum AdTagName {\r\n IC_TickerInContent = 'IC_D_3x3',\r\n IC_MapsLeftRail = 'IC_D_125x125',\r\n IC_Statements = 'IC_D_300x60',\r\n IC_Groups = 'IC_D_300x250',\r\n}\r\n\r\nconst tagDefinition = {\r\n [AdTagName.IC_TickerInContent]: { placements: 3, style: { width: 970, minHeight: 250 } },\r\n [AdTagName.IC_MapsLeftRail]: { placements: 2, style: { width: 125, minHeight: 125 } },\r\n [AdTagName.IC_Statements]: { placements: 1, style: { width: 300, minHeight: 60 } },\r\n [AdTagName.IC_Groups]: { placements: 1, style: { width: 336, minHeight: 280 } },\r\n}\r\n\r\nconst hasInvestingChannelAds = tracking.getAdsProvider() === tracking.AdsProvider.InvestingChannel\r\n\r\n/**\r\n * Get create/destroy methods to control ads insertion\r\n */\r\nexport function getInvestingChannelPage() {\r\n var page: ICPageReturn\r\n\r\n function create() {\r\n try {\r\n if (hasInvestingChannelAds) {\r\n window.InvestingChannelQueue?.push(() => {\r\n page = window.InvestingChannel?.UAT.Run(IC_PUBLISHER_ID)\r\n })\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n\r\n function destroy() {\r\n try {\r\n if (hasInvestingChannelAds) {\r\n window.InvestingChannelQueue?.push(() => {\r\n page?.destroy()\r\n })\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n\r\n return { create, destroy }\r\n}\r\n\r\n/**\r\n * Hook which recreates ads on deps change (SPA navigation,…)\r\n */\r\nexport function useInvestingChannelAds(deps: unknown[] = []) {\r\n React.useLayoutEffect(() => {\r\n const page = getInvestingChannelPage()\r\n\r\n page.create()\r\n\r\n return () => page.destroy()\r\n // eslint cannot statically check the dependencies and complains about it\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, deps)\r\n\r\n return hasInvestingChannelAds\r\n}\r\n\r\ninterface AdTagProps extends Omit, 'name'> {\r\n /**\r\n * Name of the ad tag\r\n */\r\n name: keyof typeof AdTagName\r\n\r\n /**\r\n * Manually set the placement position for this tag\r\n *\r\n * @default 1\r\n */\r\n position?: number\r\n\r\n /**\r\n * Additional class names for the wrapper div\r\n */\r\n className?: string\r\n}\r\n\r\nexport function AdTag({ name, position = 1, ...props }: AdTagProps) {\r\n const tagName = AdTagName[name]\r\n const tagProps = tagDefinition[tagName]\r\n const placementName = `${tagName}_${Math.min(Math.max(position, 1), tagProps.placements)}`\r\n\r\n if (!hasInvestingChannelAds) return null\r\n\r\n return
\r\n}\r\n","export enum AdsProvider {\r\n None,\r\n InvestingChannel,\r\n Freestar,\r\n}\r\n\r\nexport function getAdsProvider() {\r\n if (FinvizSettings.hasUserPremium) return AdsProvider.None\r\n\r\n if (FinvizSettings.adsProvider === 2) {\r\n return AdsProvider.Freestar\r\n }\r\n\r\n return AdsProvider.InvestingChannel\r\n}\r\n\r\n/**\r\n * Tracks virtual page views to google analytics and freestar\r\n */\r\nexport function trackPageView(props: { pathname?: string; query?: string; freestarPageView?: boolean }) {\r\n const { pathname = window.location.pathname, query = window.location.search, freestarPageView = true } = props\r\n\r\n window.gtag?.('set', 'page_path', `${pathname}${query.length ? '?' : ''}${query.replace(/^\\?/, '')}`)\r\n window.gtag?.('event', 'page_view')\r\n\r\n if (freestarPageView && getAdsProvider() === AdsProvider.Freestar) {\r\n window.freestar?.queue.push(() => freestar.trackPageview())\r\n }\r\n}\r\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n"],"names":["generateColorScale","gcs","bind","futuresDomains","BarChart","Component","constructor","arguments","_defineProperty","hoveredGroup","row","e","_this$props$onClick","_this$props","preventDefault","this","props","onClick","call","render","rows","data","labels","map","d","label","width","barHeight","height","gap","length","leftWidth","x","d3","domain","Math","abs","value","range","nice","xAxisTicks","ticks","y","colorScale","period","gradient","slice","sort","a","b","header","w","m","mtd","q","hy","ytd","_jsxs","className","classnames","FinvizSettings","hasRedesignEnabled","isHorizontal","isWrapper","style","children","_jsx","alignHeaderToBars","marginLeft","position","tick","top","left","round","large","isInactive","background","_onClick","color","redGreenGradient","colors","nullColor","forexDomains","cryptoDomains","domains","domainId","undefined","min","max","linearScale","i","getCookie","name","re","RegExp","document","cookie","replace","layout","groups","GroupsPerformance","React","componentDidMount","pageRef","getInvestingChannelPage","create","componentWillUnmount","_this$pageRef","destroy","periodColumns","Object","keys","forEach","ticker","group","screenerUrl","perf","GroupsBarChart","AdTag","bar","state","filter","tile","window","open","isRedesign","_onBarClick","ReactDOM","getElementById","MapTypeId","MapSubtypeId","ScaleId","NodeDepth","IC_PUBLISHER_ID","AdTagName","tagDefinition","IC_TickerInContent","placements","minHeight","IC_MapsLeftRail","IC_Statements","IC_Groups","hasInvestingChannelAds","tracking","InvestingChannel","page","_window$InvestingChan","InvestingChannelQueue","push","_window$InvestingChan2","UAT","Run","console","error","_window$InvestingChan3","_page","useInvestingChannelAds","deps","_ref","tagName","tagProps","placementName","concat","id","AdsProvider","getAdsProvider","hasUserPremium","None","adsProvider","Freestar","trackPageView","_window$gtag","_window","_window$gtag2","_window2","pathname","location","query","search","freestarPageView","_window$freestar","gtag","freestar","queue","trackPageview","DESCRIPTORS","isArray","$TypeError","TypeError","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","defineProperty","writable","module","exports","O","it","$","toObject","lengthOfArrayLike","setArrayLength","doesNotExceedSafeInteger","target","proto","arity","forced","fails","properErrorOnNonWritableLength","item","len","argCount"],"sourceRoot":""}