{"version":3,"file":"8733.0cfe2e68.js","mappings":"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","sources":["webpack://@finviz/website/./js/main/components/ChipSwitch.tsx","webpack://@finviz/website/./js/main/components/chart/Bar.tsx","webpack://@finviz/website/./js/main/components/chart/ChartWrapper.tsx","webpack://@finviz/website/./js/main/components/chart/Cursor.tsx","webpack://@finviz/website/./js/main/components/chart/Line.tsx","webpack://@finviz/website/./js/main/components/chart/LineDot.tsx","webpack://@finviz/website/./js/main/components/chart/Tooltip.tsx","webpack://@finviz/website/./js/main/components/chart/YAxis.tsx","webpack://@finviz/website/./js/main/components/chart/constants.ts","webpack://@finviz/website/./js/main/components/financials-table/FinancialsTableContext.tsx","webpack://@finviz/website/./js/main/components/financials-table/FinancialsTableRow.tsx","webpack://@finviz/website/./js/main/components/financials-table/FinancialsTable.tsx","webpack://@finviz/website/./js/main/components/financials-table/FinancialsWidget.tsx","webpack://@finviz/website/./js/main/components/financials-table/utils.ts"],"sourcesContent":["import classnames from 'classnames'\r\nimport * as React from 'react'\r\n\r\nimport { Button, ButtonComponentProps, ButtonProps } from './button'\r\nimport { Paragraph } from './typography'\r\n\r\ninterface Props {\r\n children: (React.ReactElement | null)[]\r\n label?: string\r\n size?: ButtonProps['size']\r\n rounding?: ButtonProps['rounding']\r\n}\r\n\r\nexport function ChipSwitch({ children, label, size, rounding }: Props) {\r\n return (\r\n
\r\n {label && (\r\n \r\n {label}\r\n \r\n )}\r\n\r\n {React.Children.map(children, (child: React.ReactElement | null) => {\r\n if (React.isValidElement(child) && child.type === Button) {\r\n return React.cloneElement(child, {\r\n size,\r\n rounding,\r\n theme: child.props.theme ?? 'chipTransparent',\r\n className: classnames(child.props.className, {\r\n // @todo - these style should be applied globally onto all chipTransparent buttons\r\n '!text-muted-2': !child.props.disabled && !child.props.active,\r\n '!text-default': !child.props.disabled && child.props.active,\r\n '!text-disabled ': child.props.disabled && !child.props.active,\r\n '!text-disabled !bg-gray-200 !bg-opacity-30 !border-gray-100 dark:!bg-gray-600 dark:!border-gray-500':\r\n child.props.disabled && child.props.active,\r\n }),\r\n })\r\n }\r\n\r\n return child\r\n })}\r\n
\r\n )\r\n}\r\n\r\nexport const ChipSwitchButton = Button\r\n","import classNames from 'classnames'\r\nimport * as React from 'react'\r\nimport { Bar as RechartsBar, BarProps as RechartsBarProps, Rectangle } from 'recharts'\r\nimport { BarRectangleItem } from 'recharts/types/cartesian/Bar'\r\nimport { ActiveShape } from 'recharts/types/util/types'\r\n\r\nimport { ChartWrapperContext } from './ChartWrapper'\r\nimport { CHART_ITEM_COLORS, ChartItemColorType } from './constants'\r\n\r\ninterface ColorProps {\r\n color?: ChartItemColorType | ((value: ValueType | null, payload: PayloadType) => ChartItemColorType)\r\n}\r\n\r\ntype BarInnerProps = ColorProps &\r\n Omit & {\r\n payload?: PayloadType\r\n }\r\n\r\nexport function BarInner({ color = 'blue', ...props }: BarInnerProps) {\r\n const colorResult = typeof color === 'function' ? color(props.value as ValueType, props.payload!) : color\r\n const barColor = CHART_ITEM_COLORS[colorResult] ?? CHART_ITEM_COLORS.blue\r\n\r\n return \r\n}\r\n\r\ntype BarProps = ColorProps &\r\n React.PropsWithoutRef, 'color'>>\r\n\r\nexport class Bar extends React.Component<\r\n BarProps\r\n> {\r\n static getComposedData = RechartsBar.getComposedData\r\n static displayName = RechartsBar.displayName\r\n static contextType = ChartWrapperContext\r\n context!: React.ContextType\r\n\r\n static defaultProps = {\r\n ...RechartsBar.defaultProps,\r\n radius: [2, 2, 0, 0],\r\n activeBar: false,\r\n isAnimationActive: false,\r\n }\r\n\r\n render() {\r\n const { setActiveKey } = this.context\r\n const { color, shape = BarInner, ...props } = this.props\r\n\r\n return (\r\n >, {\r\n color,\r\n }) as ActiveShape)\r\n : undefined\r\n }\r\n onMouseEnter={() => {\r\n setActiveKey(props.dataKey as string)\r\n }}\r\n onMouseLeave={() => {\r\n setActiveKey(null)\r\n }}\r\n />\r\n )\r\n }\r\n}\r\n","import * as React from 'react'\r\nimport { ResponsiveContainer } from 'recharts'\r\n\r\nexport const ChartWrapperContext = React.createContext<{\r\n isTooltipActive: boolean\r\n activeKey: string | null\r\n setActiveKey: (key: string | null) => void\r\n}>({\r\n isTooltipActive: true,\r\n activeKey: null,\r\n setActiveKey: () => {},\r\n})\r\n\r\ninterface ChartContextProps extends React.HTMLProps {\r\n isHoverHighlight?: boolean\r\n}\r\n\r\nexport function ChartContext({ isHoverHighlight = true, ...props }: React.PropsWithChildren) {\r\n const [isTooltipActive, setTooltipActive] = React.useState(false)\r\n const [activeKey, setActiveKey] = React.useState(null)\r\n\r\n const contextValue = React.useMemo(\r\n () => ({\r\n isTooltipActive,\r\n activeKey,\r\n setActiveKey: isHoverHighlight ? setActiveKey : () => {},\r\n }),\r\n [activeKey, isHoverHighlight, isTooltipActive]\r\n )\r\n\r\n return (\r\n setTooltipActive(true)}\r\n onMouseLeave={() => setTooltipActive(false)}\r\n >\r\n {props.children}\r\n \r\n )\r\n}\r\n\r\nexport function ChartWrapper({\r\n isHoverHighlight,\r\n ...props\r\n}: ChartContextProps & React.PropsWithChildren>) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n","import * as React from 'react'\r\nimport { Rectangle, RectangleProps } from 'recharts'\r\n\r\nimport { ChartWrapperContext } from './ChartWrapper'\r\n\r\ninterface CustomCursorProps extends Partial> {\r\n points?: [{ x: number; y: number }]\r\n}\r\n\r\nexport function CursorBar({\r\n numberOfDatapoints,\r\n points,\r\n x: givenX,\r\n y: givenY,\r\n ...props\r\n}: CustomCursorProps & { numberOfDatapoints: number | null }) {\r\n const { isTooltipActive } = React.useContext(ChartWrapperContext)\r\n\r\n if (!isTooltipActive) return null\r\n\r\n const cursorWidth = numberOfDatapoints ? props.width! / numberOfDatapoints : props.width!\r\n const x = givenX ?? points![0].x - cursorWidth / 2\r\n const y = givenY ?? points![0].y\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport function CursorLine({ points, x: givenX, y: givenY, ...props }: CustomCursorProps) {\r\n const { isTooltipActive } = React.useContext(ChartWrapperContext)\r\n\r\n if (!isTooltipActive) return null\r\n\r\n const x = givenX ?? points![0].x - 1\r\n const y = givenY ?? points![0].y\r\n return \r\n}\r\n","import classNames from 'classnames'\r\nimport * as React from 'react'\r\nimport { Line as RechartsLine } from 'recharts'\r\n\r\nimport { LineDot } from './LineDot'\r\nimport { CHART_ITEM_COLORS, ChartItemColorType } from './constants'\r\n\r\ninterface LineProps extends React.PropsWithoutRef> {\r\n color?: ChartItemColorType\r\n}\r\n\r\nexport class Line extends React.Component {\r\n static getComposedData = RechartsLine.getComposedData\r\n static displayName = RechartsLine.displayName\r\n\r\n static defaultProps = {\r\n ...RechartsLine.defaultProps,\r\n type: 'linear',\r\n // Intentionally set to empty string to override defaults\r\n dot: ,\r\n activeDot: false,\r\n isAnimationActive: false,\r\n connectNulls: false,\r\n stroke: null,\r\n }\r\n\r\n render() {\r\n const { color = 'blue', ...props } = this.props\r\n return (\r\n \r\n )\r\n }\r\n}\r\n","import classNames from 'classnames'\r\nimport * as React from 'react'\r\nimport { Dot, DotProps } from 'recharts'\r\n\r\nimport { ChartWrapperContext } from './ChartWrapper'\r\nimport { CHART_ITEM_COLORS, ChartItemColorType } from './constants'\r\n\r\ninterface LineDotProps extends DotProps {\r\n dataKey?: string\r\n value?: unknown\r\n color?: ChartItemColorType\r\n isActive?: boolean\r\n}\r\n\r\nexport function LineDot({ cx, cy, r = 4, dataKey, color, className, isActive, value }: LineDotProps) {\r\n const { setActiveKey } = React.useContext(ChartWrapperContext)\r\n const lineColor = color ? CHART_ITEM_COLORS[color] : undefined\r\n\r\n if (value === null) return null\r\n\r\n return (\r\n setActiveKey(dataKey ?? null)}\r\n onMouseLeave={() => setActiveKey(null)}\r\n />\r\n )\r\n}\r\n\r\nexport function RedGreenDot({ cx, cy, value, isActive }: LineDotProps) {\r\n if (typeof value !== 'number') return null\r\n\r\n return (\r\n 0 ? 'green' : 'red'}\r\n className=\"stroke-bg-primary stroke-1\"\r\n />\r\n )\r\n}\r\n","import classNames from 'classnames'\r\nimport * as React from 'react'\r\nimport { Tooltip as RechartsTooltip } from 'recharts'\r\n\r\nimport { ChartWrapperContext } from './ChartWrapper'\r\nimport { CursorLine } from './Cursor'\r\nimport { CHART_ITEM_COLORS, ChartItemColorType } from './constants'\r\n\r\ntype TooltipPayload = {\r\n color?: string\r\n name?: string | number\r\n value?: ValueType\r\n unit?: React.ReactNode\r\n dataKey?: string | number\r\n payload?: PayloadType\r\n chartType?: string\r\n className?: string\r\n}\r\n\r\ntype TooltipValueFormatter = (\r\n value: ValueType,\r\n extra: {\r\n dataKey: string\r\n payload?: PayloadType & { dataKey: string }\r\n fullTooltipPayload: Array>\r\n }\r\n) => React.ReactNode\r\n\r\ninterface TooltipRowProps {\r\n isActive?: boolean\r\n label: React.ReactNode\r\n dataKey: string\r\n dataKeyPayload?: any\r\n fullTooltipPayload?: any\r\n indicator?: ChartItemColorType | JSX.Element\r\n formatValue?: TooltipValueFormatter\r\n indicatorClass?: string\r\n labelClass?: string\r\n valueClass?: string\r\n}\r\n\r\nexport function TooltipRow({\r\n isActive,\r\n indicator,\r\n label,\r\n dataKey,\r\n dataKeyPayload,\r\n fullTooltipPayload,\r\n formatValue,\r\n indicatorClass,\r\n labelClass,\r\n valueClass,\r\n}: TooltipRowProps) {\r\n return (\r\n <>\r\n
\r\n {!indicator || React.isValidElement(indicator) ? (\r\n indicator\r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n {label}\r\n \r\n
\r\n {formatValue?.(dataKeyPayload?.value, { dataKey, payload: dataKeyPayload ?? {}, fullTooltipPayload }) ??\r\n dataKeyPayload?.value}\r\n
\r\n \r\n )\r\n}\r\n\r\ninterface TooltipInnerProps extends React.ComponentProps {\r\n className?: string\r\n showLabel?: boolean\r\n formatLabel?: (value: any, payload?: Array>) => React.ReactNode\r\n formatValue?: TooltipValueFormatter\r\n}\r\n\r\nexport function TooltipInner({\r\n payload,\r\n label,\r\n formatLabel,\r\n formatValue,\r\n showLabel = !!label,\r\n ...props\r\n}: React.PropsWithChildren>) {\r\n const { isTooltipActive, activeKey } = React.useContext(ChartWrapperContext)\r\n\r\n return (\r\n \r\n {showLabel && (\r\n
\r\n {formatLabel?.(label, payload) ?? label}\r\n
\r\n )}\r\n\r\n
\r\n {React.Children.map(props.children, (child) => {\r\n if (!React.isValidElement(child) || child.type !== TooltipRow) return child\r\n\r\n const dataKeyPayload = payload?.find((payload) => payload.dataKey === child.props.dataKey)\r\n\r\n return React.cloneElement(child, {\r\n isActive: child.props.isActive ?? activeKey === child.props.dataKey,\r\n dataKeyPayload,\r\n fullTooltipPayload: payload,\r\n formatValue: child.props.formatValue ?? formatValue,\r\n } as TooltipRowProps)\r\n })}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport class Tooltip extends React.Component<\r\n React.PropsWithChildren>\r\n> {\r\n static displayName = RechartsTooltip.displayName\r\n\r\n static defaultProps = {\r\n ...RechartsTooltip.defaultProps,\r\n offset: 40,\r\n position: { y: 4 },\r\n isAnimationActive: false,\r\n wrapperStyle: { outline: 'none', zIndex: 10 },\r\n className: 'min-w-70',\r\n cursor: ,\r\n }\r\n\r\n render() {\r\n const { className, showLabel, formatLabel: formatTitle, formatValue, children, ...props } = this.props\r\n\r\n return (\r\n \r\n className={className}\r\n formatLabel={formatTitle}\r\n formatValue={formatValue}\r\n showLabel={showLabel}\r\n >\r\n {children}\r\n \r\n }\r\n {...props}\r\n />\r\n )\r\n }\r\n}\r\n","import * as React from 'react'\r\nimport { YAxis as RechartsYAxis } from 'recharts'\r\n\r\nimport { shortFormatNumber } from '../../util'\r\n\r\nexport class YAxis extends React.Component<\r\n Omit, 'tickCount'> & { tickCount?: number | null }\r\n> {\r\n static displayName = RechartsYAxis.displayName\r\n\r\n static defaultProps = {\r\n ...RechartsYAxis.defaultProps,\r\n className: 'fill-gray-500 dark:fill-gray-300',\r\n tickLine: false,\r\n axisLine: false,\r\n tick: {\r\n fontSize: 10,\r\n fontWeight: 500, // Different from XAxis\r\n fill: '',\r\n },\r\n tickFormatter: shortFormatNumber,\r\n }\r\n\r\n render() {\r\n return \r\n }\r\n}\r\n","export enum ChartItemColor {\r\n gray,\r\n lightGray,\r\n darkGray,\r\n blue,\r\n red,\r\n green,\r\n teal,\r\n purple,\r\n violet,\r\n emerald,\r\n orange,\r\n pink,\r\n lime,\r\n yellow,\r\n}\r\n\r\nexport type ChartItemColorType = keyof typeof ChartItemColor\r\n\r\nexport const CHART_ITEM_COLORS: Record = {\r\n gray: 'text-gray-200 dark:text-gray-700',\r\n lightGray: 'text-gray-400',\r\n darkGray: 'text-gray-700 dark:text-gray-300',\r\n blue: 'text-blue-400',\r\n red: 'text-red-400',\r\n green: 'text-green-400',\r\n teal: 'text-teal-400 dark:text-teal-300',\r\n purple: 'text-purple-400',\r\n violet: 'text-violet-400',\r\n emerald: 'text-emerald-400 dark:text-emerald-300',\r\n orange: 'text-orange-300',\r\n pink: 'text-pink-400',\r\n lime: 'text-lime-400 dark:text-lime-300',\r\n yellow: 'text-yellow-300 dark:text-yellow-200',\r\n}\r\n","import * as React from 'react'\r\n\r\nimport { getCookie } from '../../../app/shared/cookie'\r\nimport { setCookieRequest } from '../../services/api'\r\n\r\n/*\r\n * Context.\r\n */\r\nexport type FinancialsTableSettingsType = Record\r\n\r\nexport type FinancialsTableScrollInfo = {\r\n yPosition: number\r\n}\r\n\r\nexport interface FinancialsTableContextProps {\r\n settings: T\r\n setSettings: (settings: T) => void\r\n scrollInfo?: FinancialsTableScrollInfo\r\n}\r\n\r\nexport const FinancialsTableContext = React.createContext>({\r\n settings: {},\r\n setSettings: () => null,\r\n scrollInfo: undefined,\r\n})\r\n\r\n/*\r\n * Hook.\r\n */\r\n\r\nexport function useFinancialsTableContext() {\r\n return React.useContext(FinancialsTableContext) as FinancialsTableContextProps\r\n}\r\n\r\n/*\r\n * Component.\r\n */\r\n\r\ninterface Props {\r\n children: React.ReactNode\r\n defaultSettings: FinancialsTableSettingsType\r\n cookieKey: string\r\n}\r\n\r\nexport const FinancialsTableContextProvider = ({ children, cookieKey, defaultSettings }: Props) => {\r\n const [scrollInfo, setScrollInfo] = React.useState()\r\n const [settings, setSettings] = React.useState(() => {\r\n const cookieValue = decodeURIComponent(getCookie(cookieKey))\r\n if (cookieValue.length === 0) return defaultSettings\r\n\r\n try {\r\n return { ...defaultSettings, ...JSON.parse(cookieValue) } as FinancialsTableSettingsType\r\n } catch {\r\n return defaultSettings\r\n }\r\n })\r\n\r\n const handleSetSettingsChange = (settings: FinancialsTableSettingsType) => {\r\n setScrollInfo({ yPosition: window.scrollY })\r\n setSettings(settings)\r\n setCookieRequest(cookieKey, JSON.stringify(settings))\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import classNames from 'classnames'\r\n\r\nimport { TableAlign, TableBody, TableCell, TableRow } from '../Table'\r\nimport { Checkbox } from '../checkbox'\r\nimport {\r\n FinancialsColumnDefinition,\r\n FinancialsRowDataType,\r\n FinancialsSubColumnDefinition,\r\n FinancialsSubRowDataType,\r\n} from './types'\r\n\r\ntype FinancialsTableRowProps<\r\n RowDataType extends FinancialsRowDataType,\r\n ColumnDefinition extends FinancialsColumnDefinition,\r\n SubColumnDefinition extends FinancialsSubRowDataType,\r\n> = {\r\n data: RowDataType\r\n columns: ColumnDefinition[]\r\n subColumns?: Record[]>\r\n onVisibilityChange: (area: string, visibility: boolean) => void\r\n isFirst: boolean\r\n isLast: boolean\r\n}\r\n\r\nexport default function FinancialsTableRow<\r\n RowDataType extends FinancialsRowDataType,\r\n ColumnDefinition extends FinancialsColumnDefinition,\r\n SubColumnDefinition extends FinancialsSubRowDataType,\r\n>({\r\n data,\r\n columns,\r\n subColumns,\r\n onVisibilityChange,\r\n isFirst,\r\n isLast,\r\n}: FinancialsTableRowProps) {\r\n const { id, label, labelElement, labelColumnClassName, isSelected, color, subData, isLabelColumnSticky } = data\r\n\r\n return (\r\n {\r\n onVisibilityChange(id, !isSelected)\r\n }}\r\n >\r\n \r\n \r\n {label}}\r\n className=\"cursor-pointer\"\r\n color={color}\r\n size=\"none\"\r\n />\r\n \r\n\r\n {columns.map((column) => (\r\n \r\n {column.renderColumn(data)}\r\n \r\n ))}\r\n \r\n {subData?.map((item, index, array) => (\r\n \r\n \r\n {item.label}\r\n \r\n {subColumns?.[item.id].map((column) => (\r\n \r\n {column.renderColumn(item as SubColumnDefinition)}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import classnames from 'classnames'\r\nimport React from 'react'\r\n\r\nimport { Table } from '../Table'\r\nimport FinancialsTableRow from './FinancialsTableRow'\r\nimport {\r\n FinancialsColumnDefinition,\r\n FinancialsRowDataType,\r\n FinancialsSubColumnDefinition,\r\n FinancialsSubRowDataType,\r\n} from './types'\r\n\r\ntype FinancialsTableProps<\r\n RowDataType extends FinancialsRowDataType,\r\n ColumnDefinition extends FinancialsColumnDefinition,\r\n SubColumnDefinition extends FinancialsSubRowDataType,\r\n> = {\r\n tableHead?: React.ReactNode\r\n tableFooter?: React.ReactNode\r\n data: RowDataType[]\r\n columns: ColumnDefinition[]\r\n subColumns?: Record[]>\r\n isTableFixed?: boolean\r\n onVisibilityChange: (area: string, visibility: boolean) => void\r\n}\r\n\r\nexport default function FinancialsTable<\r\n RowDataType extends FinancialsRowDataType,\r\n ColumnDefinition extends FinancialsColumnDefinition,\r\n SubColumnDefinition extends FinancialsSubRowDataType,\r\n>({\r\n tableHead,\r\n tableFooter,\r\n columns,\r\n subColumns,\r\n data,\r\n isTableFixed = true,\r\n onVisibilityChange,\r\n}: FinancialsTableProps) {\r\n return (\r\n \r\n {tableHead}\r\n {data.map((row, index) => (\r\n \r\n ))}\r\n {tableFooter}\r\n
\r\n )\r\n}\r\n","import * as React from 'react'\r\n\r\nimport { TableStickyColumnWrapper } from '../Table/TableStickyColumnWrapper'\r\nimport FinancialsTable from './FinancialsTable'\r\nimport {\r\n FinancialsColumnDefinition,\r\n FinancialsRowDataType,\r\n FinancialsSubColumnDefinition,\r\n FinancialsSubRowDataType,\r\n} from './types'\r\n\r\ntype FinancialsWidgetProps<\r\n RowDataType extends FinancialsRowDataType,\r\n ColumnDefinition extends FinancialsColumnDefinition,\r\n SubColumnDefinition extends FinancialsSubRowDataType,\r\n> = {\r\n children: React.ReactNode\r\n header?: React.ReactNode\r\n tableHead?: React.ReactNode\r\n tableFooter?: React.ReactNode\r\n data: RowDataType[]\r\n columns: ColumnDefinition[]\r\n hasStickyColumnWrapper?: boolean\r\n subColumns?: Record[]>\r\n isTableFixed?: boolean\r\n onVisibilityChange: (area: string, visibility: boolean) => void\r\n}\r\n\r\nexport function FinancialsWidget<\r\n RowDataType extends FinancialsRowDataType,\r\n ColumnDefinition extends FinancialsColumnDefinition,\r\n SubColumnDefinition extends FinancialsSubRowDataType,\r\n>({\r\n children,\r\n tableHead,\r\n tableFooter,\r\n columns,\r\n subColumns,\r\n header,\r\n data,\r\n isTableFixed,\r\n hasStickyColumnWrapper,\r\n onVisibilityChange,\r\n}: FinancialsWidgetProps) {\r\n const financialsTable = (\r\n \r\n )\r\n return (\r\n
\r\n
\r\n {header}\r\n {children}\r\n
\r\n {hasStickyColumnWrapper ? (\r\n \r\n {financialsTable}\r\n \r\n ) : (\r\n financialsTable\r\n )}\r\n
\r\n )\r\n}\r\n","import { FinancialsRowValue } from './types'\r\n\r\nexport function getYoYData(data: T[]) {\r\n const sortedData = [...data].sort((a, b) => Number.parseInt(a.year) - Number.parseInt(b.year))\r\n return sortedData.reduce<{\r\n change: Record\r\n changePct: Record\r\n }>(\r\n (acc, { year, value }, i) => {\r\n const prev = sortedData[i - 1]?.value ?? null\r\n let change: number | null = null\r\n let changePct: number | null = null\r\n\r\n if (value !== null && prev !== null && value !== 0 && prev !== 0) {\r\n change = value - prev\r\n changePct = ((value - prev) / Math.abs(prev)) * 100\r\n }\r\n\r\n return {\r\n change: {\r\n ...acc.change,\r\n [year]: change,\r\n },\r\n changePct: {\r\n ...acc.changePct,\r\n [year]: changePct,\r\n },\r\n }\r\n },\r\n { change: {}, changePct: {} }\r\n )\r\n}\r\n\r\nexport function getMoMPercentageData(data: T[]) {\r\n const sortedData = [...data].sort((a, b) => Number.parseInt(a.year) - Number.parseInt(b.year))\r\n return sortedData.reduce>((acc, { year, value }, i) => {\r\n const prev = sortedData[i - 1]?.value ?? null\r\n let changePct: number | null = null\r\n\r\n if (value !== null && prev !== null && value !== 0 && prev !== 0) {\r\n changePct = ((value - prev) / Math.abs(prev)) * 100\r\n }\r\n\r\n return {\r\n ...acc,\r\n [year]: changePct,\r\n }\r\n }, {})\r\n}\r\n\r\nexport function getIsCompact(numOfCols: number, barWidth: number) {\r\n // ~1400 is max container width\r\n const maxContainerWidth = Math.min(window.innerWidth, 1400)\r\n\r\n const barsWindowWidthRatio = (barWidth * numOfCols) / maxContainerWidth\r\n return barsWindowWidthRatio > 0.65\r\n}\r\n\r\nexport function getHeatmapClassNames(value: number | null = null) {\r\n if (value === null || value === 0) return 'bg-neutral text-neutral'\r\n\r\n // Negative\r\n if (value < -80) return 'bg-danger-5 text-danger-5'\r\n if (value < -60) return 'bg-danger-4 text-danger-4'\r\n if (value < -40) return 'bg-danger-3 text-danger-3'\r\n if (value < -20) return 'bg-danger-2 text-danger-2'\r\n if (value < 0) return 'bg-danger-1 text-danger-1'\r\n\r\n // Positive\r\n if (value > 80) return 'bg-success-5 text-success-5'\r\n if (value > 60) return 'bg-success-4 text-success-4'\r\n if (value > 40) return 'bg-success-3 text-success-3'\r\n if (value > 20) return 'bg-success-2 text-success-2'\r\n if (value > 0) return 'bg-success-1 text-success-1'\r\n}\r\n"],"names":["ChipSwitch","_ref","children","label","size","rounding","_jsxs","className","_jsx","Paragraph","React","map","child","_child$props$theme","type","Button","theme","props","classnames","disabled","active","ChipSwitchButton","BarInner","_CHART_ITEM_COLORS$co","color","colorResult","value","payload","barColor","CHART_ITEM_COLORS","blue","Rectangle","classNames","Bar","constructor","arguments","_defineProperty","render","setActiveKey","this","context","shape","RechartsBar","fill","undefined","onMouseEnter","dataKey","onMouseLeave","getComposedData","displayName","ChartWrapperContext","defaultProps","radius","activeBar","isAnimationActive","isTooltipActive","activeKey","ChartContext","isHoverHighlight","setTooltipActive","contextValue","Provider","ChartWrapper","_ref2","ResponsiveContainer","width","CursorBar","numberOfDatapoints","points","x","givenX","y","givenY","cursorWidth","CursorLine","Line","RechartsLine","stroke","dot","LineDot","activeDot","connectNulls","cx","cy","r","isActive","lineColor","Dot","RedGreenDot","TooltipRow","_CHART_ITEM_COLORS","_formatValue","indicator","dataKeyPayload","fullTooltipPayload","formatValue","indicatorClass","labelClass","valueClass","_Fragment","TooltipInner","_formatLabel","formatLabel","showLabel","_child$props$isActive","_child$props$formatVa","find","Tooltip","formatTitle","RechartsTooltip","content","offset","position","wrapperStyle","outline","zIndex","cursor","YAxis","RechartsYAxis","tickLine","axisLine","tick","fontSize","fontWeight","tickFormatter","shortFormatNumber","gray","lightGray","darkGray","red","green","teal","purple","violet","emerald","orange","pink","lime","yellow","FinancialsTableContext","settings","setSettings","scrollInfo","useFinancialsTableContext","FinancialsTableContextProvider","cookieKey","defaultSettings","setScrollInfo","cookieValue","decodeURIComponent","getCookie","length","JSON","parse","yPosition","window","scrollY","setCookieRequest","stringify","FinancialsTableRow","data","columns","subColumns","onVisibilityChange","isFirst","isLast","id","labelElement","labelColumnClassName","isSelected","subData","isLabelColumnSticky","TableBody","onMouseDown","TableRow","TableCell","hasLeading","align","TableAlign","Left","isSticky","Checkbox","readOnly","checked","column","_column$getColumnClas","getColumnClassName","call","renderColumn","item","index","array","FinancialsTable","tableHead","tableFooter","isTableFixed","Table","row","_row$id","FinancialsWidget","_data$0$values$length","_data$","header","hasStickyColumnWrapper","financialsTable","TableStickyColumnWrapper","hasBorder","shouldScrollToEnd","values","getYoYData","sortedData","sort","a","b","Number","parseInt","year","reduce","acc","i","_sortedData$value","_sortedData","prev","change","changePct","Math","abs","getMoMPercentageData","_sortedData$value2","_sortedData2","getIsCompact","numOfCols","barWidth","min","innerWidth","getHeatmapClassNames"],"sourceRoot":""}