{"version":3,"file":"8733.3b0e0a3f.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-gray-600 dark:!text-gray-400': !child.props.disabled && !child.props.active,\r\n '!text-gray-800 dark:!text-white': !child.props.disabled && child.props.active,\r\n '!text-gray-400 ': child.props.disabled && !child.props.active,\r\n '!text-gray-400 !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","type","Button","theme","props","classnames","disabled","active","ChipSwitchButton","BarInner","color","colorResult","value","payload","barColor","CHART_ITEM_COLORS","blue","Rectangle","classNames","Bar","static","RechartsBar","getComposedData","displayName","ChartWrapperContext","context","defaultProps","radius","activeBar","isAnimationActive","render","setActiveKey","this","shape","fill","undefined","onMouseEnter","dataKey","onMouseLeave","isTooltipActive","activeKey","ChartContext","isHoverHighlight","setTooltipActive","contextValue","Provider","ChartWrapper","_ref2","ResponsiveContainer","width","CursorBar","numberOfDatapoints","points","x","givenX","y","givenY","cursorWidth","CursorLine","Line","RechartsLine","dot","LineDot","activeDot","connectNulls","stroke","cx","cy","r","isActive","lineColor","Dot","RedGreenDot","TooltipRow","indicator","dataKeyPayload","fullTooltipPayload","formatValue","indicatorClass","labelClass","valueClass","_Fragment","TooltipInner","formatLabel","showLabel","find","Tooltip","RechartsTooltip","offset","position","wrapperStyle","outline","zIndex","cursor","formatTitle","content","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","getColumnClassName","renderColumn","item","index","array","FinancialsTable","tableHead","tableFooter","isTableFixed","Table","row","FinancialsWidget","header","hasStickyColumnWrapper","financialsTable","TableStickyColumnWrapper","hasBorder","shouldScrollToEnd","values","getYoYData","sortedData","sort","a","b","Number","parseInt","year","reduce","acc","i","prev","change","changePct","Math","abs","getMoMPercentageData","getIsCompact","numOfCols","barWidth","min","innerWidth","getHeatmapClassNames","arguments"],"sourceRoot":""}