@redsift/charts 11.6.0 → 11.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_internal/Axis2.js +15 -18
- package/_internal/Axis2.js.map +1 -1
- package/_internal/BarChart.js +1 -1
- package/_internal/BarChart2.js +165 -32
- package/_internal/BarChart2.js.map +1 -1
- package/index.d.ts +15 -1
- package/index.js +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart2.js","sources":["../../src/components/BarChart/types.ts","../../src/components/BarChart/styles.ts","../../src/components/BarChart/utils.ts","../../src/components/BarChart/EmptyBarChart.tsx","../../src/components/BarChart/LoadingBarChart.tsx","../../src/components/BarChart/intl/index.ts","../../src/components/BarChart/context.ts","../../src/components/ChartContainer/context.ts","../../src/components/BarChart/RenderedOrdinalBarChart.tsx","../../src/components/BarChart/BarChartBars.tsx","../../src/components/BarChart/RenderedLinearBarChart.tsx","../../src/components/BarChart/BarChartSection.tsx","../../src/components/BarChart/BarChart.tsx"],"sourcesContent":["import { ComponentProps, ReactElement, ReactNode } from 'react';\nimport {\n ChartDimensions,\n ChartSize,\n ChartTheme,\n BarDatum,\n TooltipVariant,\n CategoryData,\n ChartAxesProps,\n MarginProps,\n LinearData,\n TwoCategoryData,\n Statistics,\n LinearDim,\n} from '../../types';\nimport {\n ScaleTime as d3ScaleTime,\n ScaleLinear as d3ScaleLinear,\n ScaleOrdinal as d3ScaleOrdinal,\n ScalePoint as d3ScalePoint,\n} from 'd3';\nimport { ChartContainerProps } from '../ChartContainer';\nimport { BarDirection, BarOrientation, BarProps } from '../Bar';\nimport { SortingMethod } from '../../utils';\nimport { Theme, ValueOf } from '@redsift/design-system';\nimport { LegendProps } from '../Legend';\nimport { AnchorProps } from '../DataPoint';\nimport { FormatMessage } from '@redsift/design-system/react-aria/react-aria/i18n/useMessageFormatter';\n\n/**\n * Component's labels variant.\n */\nexport const BarChartLegendVariant = {\n none: 'none',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n custom: 'custom',\n} as const;\nexport type BarChartLegendVariant = ValueOf<typeof BarChartLegendVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\nexport type BarChartDimensions = ChartDimensions & {\n fontSize: number;\n minWidth?: number;\n maxWidth?: number;\n};\n\nexport type XScaleType = 'number' | 'Date' | 'dateString' | undefined;\n\n/**\n * Component props.\n */\nexport interface BarChartProps extends ChartContainerProps, ChartAxesProps {\n /** @deprecated: Use xAxisTickRotation instead. Whether the x axis labels are rotated or not. */\n areXLabelsRotated?: boolean;\n /** Native HTML props to forward to each bar. */\n barProps?: Omit<ComponentProps<'g'>, 'onClick' | 'orientation' | 'ref' | 'scale' | 'direction'> & {\n minWidth?: number;\n };\n /** Bar role. If an onClick is provided, the bars will have the role `button`. For a navigation link, please use `getBarAnchorProps` instead. */\n barRole?: BarProps['role'];\n /** Number of categories to use, the rest being put into a new category called \"Others\". */\n caping?: number;\n /** Color palette to use. You can choose among the list of available color palette or also choose to use the success/warning/danger theme for which you have to specify which key corresponds to which status. */\n colorTheme?: ChartTheme;\n /** Dataset to use to generate the chart, should be a list of objects containing a key and a value. */\n data?: CategoryData | LinearData | TwoCategoryData;\n /** Data type override to skip data type inferrence. */\n dataType?: 'TwoCategoryData' | 'LinearData' | 'CategoryData';\n /**\n * Direction of the bars. Only applied when the orientation is vertical. By default bars go \"up\" but can go \"down\".\n * They can also go both ways in which case you need to indicates which category go which direction. The concatenation of the two arrays will be used to determine the order of the categories instead of the sortingMethod prop.\n */\n direction?: BarDirection;\n /** Component to use if the chart is empty (replacing the default one). */\n emptyComponent?: ReactNode;\n /** Method used to define the anchor props to use when the bar is a navigation link. */\n getBarAnchorProps?: (datum: BarDatum) => AnchorProps;\n /** Method to determine whether a bar is selected or not. */\n isBarSelected?: (datum: BarDatum) => void;\n /** Method to override the data labels. */\n labelDecorator?: (\n datum: BarDatum,\n props?: { index?: number; isSelected?: boolean; color?: string }\n ) => string | ReactElement;\n /** Method modifying what's displayed within the legend when the legendVariant is \"custom\". */\n legendDecorator?: (\n datum: BarDatum,\n props?: { index?: number; isSelected?: boolean; color?: string }\n ) => string | ReactElement;\n /** Define whether the labels should be displayed inside or outside the charts and if they should contain raw or percentage values. If set to \"custom\", use `legendDecorator` to customize it. */\n legendVariant?: BarChartLegendVariant;\n /** Props to forward to the Legend block. Can be used to make the legend selectable. */\n legendProps?: Omit<LegendProps, 'data' | 'ref' | 'variant' | 'width'> & { extraLegendItems?: Statistics };\n /** Labels and texts. */\n localeText?: LocaleText;\n /** Custom margins, used to give more space for axes labels and legend for instance. */\n margins?: MarginProps;\n /** Method to be called on a click on a bar. For a navigation link, please use `getBarAnchorProps` instead. */\n onBarClick?: (datum: BarDatum, data: BarDatum[]) => void;\n /** Orientation of the bar. */\n orientation?: BarOrientation;\n /** Whether a category should be displayed for categories that has been removed by the caping option. Optionaly, this prop can be used to change the label of this category. */\n others?: boolean | string;\n /** BarChart size. */\n size?: ChartSize | BarChartDimensions;\n /** Define how to sort categories. */\n sortingMethod?: SortingMethod;\n /** Method modifying what's displayed within the tooltip when the tooltipVariant is \"custom\". */\n tooltipDecorator?: (\n data: BarDatum,\n props?: { index?: number; isSelected?: boolean; color?: string },\n dataset?: ComputedBarProps[],\n groupedData?: ComputedBarProps[]\n ) => string | ReactElement;\n /** Tooltip variant. */\n tooltipVariant?: TooltipVariant | 'grouped';\n /** Theme. */\n theme?: Theme;\n /** X-scale type override to skip x-scale type inferrence. */\n xScaleType?: XScaleType;\n /**\n * In case of a datetime x-axis, if the xAxisTickValues prop is passed with a d3.js method having an offset function (for instance `timeDay`), the following prop will be used as argument.\n * For reference, the line of code using it is: xAxisTickValues.offset(new Date(domain[0]), xAxisStartDateOffset)\n */\n xAxisStartDateOffset?: number;\n /**\n * In case of a datetime x-axis, if the xAxisTickValues prop is passed with a d3.js method having an offset function (for instance `timeDay`), the following prop will be used as argument.\n * For reference, the line of code using it is: xAxisTickValues.offset(new Date(domain[1]), xAxisEndDateOffset)\n */\n xAxisEndDateOffset?: number;\n /** If set, the Y axis will use a logarithmic scale using this base. Set this value to 10 to use a default logarithmic scale. */\n yScaleLogBase?: number;\n}\n\nexport type StyledBarChartProps = BarChartProps & {};\n\nexport interface RenderedLinearBarChartProps extends Omit<BarChartProps, 'data' | 'caping' | 'orientation' | 'others'> {\n data: LinearData | TwoCategoryData;\n}\nexport interface ComputedBarProps {\n category: string;\n key: LinearDim;\n value: number;\n cumulativeValue: number;\n}\n\nexport interface BarChartState\n extends ChartAxesProps,\n Required<Pick<RenderedLinearBarChartProps, 'margins'>>,\n Pick<\n RenderedLinearBarChartProps,\n | 'barProps'\n | 'barRole'\n | 'colorTheme'\n | 'direction'\n | 'disableAnimations'\n | 'getBarAnchorProps'\n | 'id'\n | 'isBarSelected'\n | 'labelDecorator'\n | 'onBarClick'\n | 'tooltipVariant'\n | 'tooltipDecorator'\n > {\n bars: ComputedBarProps[];\n barWidth: number;\n cache: React.MutableRefObject<LinearData | TwoCategoryData | undefined>;\n categories: string[];\n chartHeight: number;\n chartWidth: number;\n colorScale?: d3ScaleOrdinal<string, string>;\n format: FormatMessage;\n gap: number;\n hasCategory: boolean;\n scaleX: d3ScaleLinear<number, number, never> | d3ScaleTime<number, number, never> | d3ScalePoint<string>;\n scaleY: d3ScaleLinear<number, number>;\n sectionHeight?: number;\n xScaleType?: XScaleType;\n}\n\nexport interface BarChartSectionProps extends Omit<ComponentProps<'g'>, 'onClick' | 'role' | 'color'> {\n /** Starting point in percentage of the chart height. */\n from?: number;\n /** Ending point in percentage of the chart height. */\n to?: number;\n /** Color. */\n color?:\n | 'red'\n | 'green'\n | {\n textColor: string;\n backgroundColor?: string;\n };\n /** Section title */\n title?: string;\n /** Title position relative to section */\n titlePosition?: 'left' | 'center' | 'right';\n scaleX?: d3ScaleLinear<number, number, never> | d3ScaleTime<number, number, never> | d3ScalePoint<string>;\n scaleY?: d3ScaleLinear<number, number, never>;\n direction?: BarDirection;\n}\n\nexport interface StyledBarChartSectionProps {\n $theme: Theme;\n $textColor: string;\n}\n\nexport interface BarChartBarsProps extends Omit<ComponentProps<'g'>, 'onClick' | 'role'> {\n category?: string;\n}\n\nexport type StyledBarChartBarsProps = Omit<BarChartBarsProps, 'category'> & {};\n","import styled, { css } from 'styled-components';\nimport { StyledBarChartProps, StyledBarChartSectionProps, StyledBarChartBarsProps } from './types';\nimport { ChartContainer } from '../ChartContainer';\nimport { Theme } from '@redsift/design-system';\n\n/**\n * Component style.\n */\nexport const StyledBarChart = styled(ChartContainer)<StyledBarChartProps>``;\n\nexport const StyledBarChartSection = styled.g<StyledBarChartSectionProps>`\n text.colored {\n ${({ $textColor }) => css`\n fill: ${$textColor};\n `}\n }\n\n .title {\n font-size: 16px;\n font-weight: 600;\n }\n`;\n\nexport const StyledBarChartBars = styled.g<StyledBarChartBarsProps>``;\n\nexport const StyledBarChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $theme: Theme;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > span {\n font-family: var(--redsift-typography-font-family-poppins);\n color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-text-primary)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n","import { SortingMethod, getSortingMethod } from '@redsift/charts/utils';\nimport { ChartSize, LinearData, LinearDatum, Statistics, TwoCategoryData, TwoCategoryDatum } from '../../types';\nimport { BarChartDimensions } from './types';\n\nexport const sizeToDimension = (size: ChartSize | BarChartDimensions): BarChartDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return { width: 300, height: 200, fontSize: 30 };\n case ChartSize.large:\n return { width: 500, height: 400, fontSize: 38 };\n case ChartSize.medium:\n default:\n return { width: 400, height: 300, fontSize: 34 };\n }\n};\n\nexport const statsBy: (arr: LinearData | TwoCategoryData, sortingMethod: SortingMethod) => Statistics = (\n arr,\n sortingMethod\n) => {\n const isKeyArray = Array.isArray(arr[0].key);\n\n const counts = (arr as (LinearDatum | TwoCategoryDatum)[]).reduce((prev, curr) => {\n if (!curr.value) {\n return prev;\n }\n const currentKey = isKeyArray ? ((curr as TwoCategoryDatum).key[1] as string) : 'default';\n if (!prev[currentKey as string]) {\n prev[currentKey as string] = {\n value: curr.value,\n min: curr.value,\n max: curr.value,\n values: [curr.value],\n };\n } else {\n prev[currentKey as string] = {\n value: prev[currentKey as string].value + curr.value,\n min: Math.min(prev[currentKey as string].min, curr.value),\n max: Math.max(prev[currentKey as string].max, curr.value),\n values: [...prev[currentKey as string].values, curr.value],\n };\n }\n return prev;\n }, {} as Record<string, { value: number; min: number; max: number; values: number[] }>);\n\n return Object.keys(counts)\n .map((key) => ({\n key: key,\n value: counts[key].value,\n min: counts[key].min,\n max: counts[key].max,\n values: counts[key].values,\n first: counts[key].values[0],\n last: counts[key].values[counts[key].values.length - 1],\n trending: {\n overall:\n ((counts[key].values[counts[key].values.length - 1] - counts[key].values[0]) * 100) / counts[key].values[0],\n },\n }))\n .sort(getSortingMethod(sortingMethod));\n};\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport { scaleLinear as d3scaleLinear, ScaleLinear as d3ScaleLinear } from 'd3';\n\nimport { AnyScale } from '../../types';\nimport { BarChartProps } from './types';\nimport { StyledBarChart, StyledBarChartEmptyText } from './styles';\nimport { Axis } from '../Axis';\nimport { sizeToDimension } from './utils';\nimport { useTheme } from '@redsift/design-system';\n\nexport const EmptyBarChart = forwardRef<HTMLDivElement, BarChartProps>((props, ref) => {\n const { className, emptyComponent, size, localeText, ...forwardedProps } = props;\n const theme = useTheme();\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: 16, right: 16, bottom: 32 };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n\n const scaleRef = useRef<d3ScaleLinear<number, number>>();\n if (!scaleRef.current) {\n scaleRef.current = d3scaleLinear().domain([]).range([0, chartWidth]);\n }\n\n return (\n <StyledBarChart {...forwardedProps} className={className} ref={ref as RefObject<HTMLDivElement>}>\n {emptyComponent ?? (\n <>\n <StyledBarChartEmptyText $maxWidth={width} $textSize={chartDimensions.fontSize / 2} $theme={theme}>\n <span>{localeText?.emptyChartText}</span>\n </StyledBarChartEmptyText>\n <svg width={width} height={height}>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <Axis\n position=\"bottom\"\n length={chartWidth}\n scale={scaleRef.current as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={4}\n />\n </g>\n </svg>\n </>\n )}\n </StyledBarChart>\n );\n});\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { BarChartProps } from './types';\nimport { StyledBarChart } from './styles';\n\nexport const LoadingBarChart = forwardRef<HTMLDivElement, BarChartProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledBarChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledBarChart>\n );\n }\n);\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { createContext, useContext } from 'react';\nimport { BarChartState } from './types';\n\nexport const BarChartContext = createContext<BarChartState | null>(null);\n\nexport function useBarChartContext() {\n const context = useContext(BarChartContext);\n if (!context) {\n throw new Error('useBarChartContext must be used within a BarChart');\n }\n return context;\n}\n","import React from 'react';\nimport { useBarChartContext } from '../BarChart/context';\n\nexport type ChartType = 'bar' | 'line' | 'area';\n\nexport const ChartTypeContext = React.createContext<ChartType | undefined>(undefined);\n\nexport const useChartType = (): ChartType | undefined => {\n return React.useContext(ChartTypeContext);\n};\n\nexport const useResolvedChartContext = () => {\n const chartType = useChartType();\n\n switch (chartType) {\n case 'bar':\n return useBarChartContext();\n default:\n return undefined;\n }\n};\n\nexport function useResolvedProp<T>(prop: T | undefined, contextValue: T | undefined, defaultValue?: T): T | undefined {\n if (prop !== undefined) return prop;\n if (contextValue !== undefined) return contextValue;\n return defaultValue;\n}\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef } from 'react';\nimport {\n scaleLinear as d3scaleLinear,\n ScaleLinear as d3ScaleLinear,\n scaleBand as d3scaleBand,\n ScaleBand as d3ScaleBand,\n sum as d3sum,\n} from 'd3';\n\nimport { useTheme, useMessageFormatter } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport { AnyScale, CategoryData } from '../../types';\nimport { BarChartProps, BarChartState } from './types';\nimport { StyledBarChart } from './styles';\nimport { Bar, BarOrientation } from '../Bar';\nimport { Axis, AxisVariant } from '../Axis';\nimport { useFormatCategoricalData } from '../../hooks';\nimport { sizeToDimension } from './utils';\nimport { BarChartContext } from './context';\nimport { ChartTypeContext } from '../ChartContainer/context';\n\ninterface RenderedOrdinalBarChartProps extends Required<Pick<BarChartProps, 'data'>>, Omit<BarChartProps, 'data'> {}\n\nexport const RenderedOrdinalBarChart = forwardRef<HTMLDivElement, RenderedOrdinalBarChartProps>((props, ref) => {\n const {\n areXLabelsRotated,\n barProps,\n caping,\n className,\n data: propsData,\n disableAnimations,\n id,\n isBarSelected,\n getBarAnchorProps,\n labelDecorator,\n margins: propsMargins,\n onBarClick,\n orientation,\n others,\n size,\n sortingMethod,\n barRole,\n colorTheme,\n tooltipVariant,\n xAxisVariant: propsXAxisVariant,\n xAxisPlacement,\n xAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n yAxisVariant: propsYAxisVariant,\n yAxisPlacement,\n yAxisTickFormat,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickValues,\n ...forwardedProps\n } = props;\n\n const cache = useRef<CategoryData>();\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const { data, colorScale } = useFormatCategoricalData({\n data: propsData as CategoryData,\n colorTheme: colorTheme!,\n sortingMethod: sortingMethod!,\n caping,\n others,\n theme,\n });\n\n useEffect(() => {\n cache.current = data;\n });\n\n const isHorizontal = orientation === BarOrientation.horizontal;\n const xAxisVariant = propsXAxisVariant\n ? propsXAxisVariant\n : isHorizontal\n ? AxisVariant.default\n : AxisVariant.tickValue;\n const yAxisVariant = propsYAxisVariant ? propsYAxisVariant : isHorizontal ? AxisVariant.none : AxisVariant.default;\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: isHorizontal ? 16 : 64, right: 16, bottom: 32, ...propsMargins };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n const numberOfRows = data.filter((datum) => datum.value).length;\n const gap = 5;\n\n const barHeight = chartHeight / numberOfRows - gap;\n const barWidth = chartWidth / numberOfRows - gap;\n const total = d3sum(data, (d) => d.value);\n\n const scale = useMemo<d3ScaleLinear<number, number>>(\n () =>\n d3scaleLinear()\n .domain([0, Math.max(...data.map(({ value }) => value))])\n .range(isHorizontal ? [0, chartWidth] : [chartHeight, 0]),\n [size]\n );\n const scaleCategory = useMemo<d3ScaleBand<string>>(\n () =>\n d3scaleBand()\n .domain(data.filter((datum) => datum.value).map((datum) => datum.key))\n .range([0, isHorizontal ? chartHeight : chartWidth]),\n [size]\n );\n\n const bars = data.filter((datum) => datum.value);\n\n return (\n <ChartTypeContext.Provider value=\"bar\">\n <BarChartContext.Provider value={{} as BarChartState}>\n <StyledBarChart\n mode={typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={format('definition-ordinal', { barLength: bars.length })}\n xAxisDefinition={\n isHorizontal\n ? format('x-axis-numbers-definition', {\n numAxis: xAxisPlacement === 'both' ? 2 : 1,\n start: scale.domain()[0],\n end: scale.domain()[1],\n })\n : format('x-axis-categories-definition', { numAxis: xAxisPlacement === 'both' ? 2 : 1 })\n }\n yAxisDefinition={\n isHorizontal\n ? format('y-axis-categories-definition', { numAxis: yAxisPlacement === 'both' ? 2 : 1 })\n : format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: scale.domain()[0],\n end: scale.domain()[1],\n })\n }\n dataTableRepresentation={{\n header: (\n <thead>\n <tr>\n <th scope=\"col\">Key</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {bars.map((datum) => (\n <tr key={datum.key}>\n <th scope=\"row\">{datum.key}</th>\n <td>{datum.value}</td>\n </tr>\n ))}\n </tbody>\n ),\n }}\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <svg\n width={width}\n height={height}\n aria-label={\n typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n aria-hidden=\"false\"\n >\n <g transform={`translate(${margins.left},${margins.top})`}>\n {['bottom', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"bottom\"\n length={chartWidth}\n scale={isHorizontal ? (scale as AnyScale) : (scaleCategory as AnyScale)}\n x={0}\n y={chartHeight}\n tickValues={xAxisTickValues ?? 4}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n variant={xAxisVariant}\n />\n ) : null}\n {['top', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"top\"\n length={chartWidth}\n scale={isHorizontal ? (scale as AnyScale) : (scaleCategory as AnyScale)}\n x={0}\n y={0}\n tickValues={xAxisTickValues ?? 4}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation ? xAxisTickRotation : areXLabelsRotated ? -45 : 0}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n variant={xAxisVariant}\n />\n ) : null}\n {['left', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"left\"\n length={chartHeight}\n scale={isHorizontal ? (scaleCategory as AnyScale) : (scale as AnyScale)}\n x={0}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 4}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n variant={yAxisVariant}\n />\n ) : null}\n {['right', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"right\"\n length={chartHeight}\n scale={isHorizontal ? (scaleCategory as AnyScale) : (scale as AnyScale)}\n x={chartWidth}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 4}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n variant={yAxisVariant}\n />\n ) : null}\n </g>\n <g transform={`translate(${margins.left},${margins.top})`}>\n {bars.map((datum, index) => {\n const percent = datum.value / total;\n const to = {\n data: {\n ...datum,\n percent,\n },\n };\n const from = cache.current ? { data: cache.current[index] } : undefined;\n\n return (\n <Bar\n color={colorScale?.(to.data.key)!}\n data={to}\n dataset={bars}\n disableAnimations={disableAnimations}\n gap={gap}\n id={`id${id}__bar-${index}`}\n index={index}\n isSelected={Boolean(isBarSelected!(to))}\n key={`bar _${index}`}\n labelDecorator={labelDecorator}\n maxHeight={isHorizontal ? undefined : chartHeight}\n anchorProps={getBarAnchorProps ? getBarAnchorProps(to) : undefined}\n onClick={onBarClick}\n orientation={orientation}\n previousData={from!}\n scale={scale!}\n scalePosition={scaleCategory}\n tooltipVariant={tooltipVariant}\n {...barProps}\n width={\n isHorizontal\n ? undefined\n : barProps?.width && typeof barProps.width === 'number'\n ? barProps.width\n : barWidth\n }\n height={\n isHorizontal\n ? barProps?.height && typeof barProps.height === 'number'\n ? barProps.height\n : barHeight\n : undefined\n }\n role={barRole}\n />\n );\n })}\n </g>\n </svg>\n </StyledBarChart>\n </BarChartContext.Provider>\n </ChartTypeContext.Provider>\n );\n});\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { Comp, Flexbox, Text } from '@redsift/design-system';\n\nimport { BarChartBarsProps, ComputedBarProps } from './types';\nimport { StyledBarChartBars } from './styles';\nimport { useBarChartContext } from './context';\nimport { BarDatum } from '../../types';\nimport { Bar, BarOrientation } from '../Bar';\n\nconst COMPONENT_NAME = 'BarChartBars';\nconst CLASSNAME = 'redsift-bars';\n\nexport const BarChartBars: Comp<BarChartBarsProps, SVGGElement> = forwardRef((props, ref) => {\n const { category = 'default', ...forwardedProps } = props;\n\n const {\n barProps,\n barRole,\n bars,\n barWidth,\n cache,\n categories,\n colorScale,\n direction,\n disableAnimations,\n format,\n gap,\n getBarAnchorProps,\n hasCategory,\n id,\n isBarSelected,\n labelDecorator,\n onBarClick,\n scaleX,\n scaleY,\n tooltipVariant,\n tooltipDecorator,\n xScaleType,\n } = useBarChartContext();\n\n const filteredBarChartBars = bars.filter((bar) => bar.category === category && bar.value > 0);\n const categoryIndex = categories.indexOf(category);\n const categoryLength = categories.length;\n\n return (\n <StyledBarChartBars\n key={`${id}-series-${category}`}\n aria-hidden=\"false\"\n role=\"region\"\n {...(hasCategory\n ? {\n 'aria-label': format('series-legend', {\n category,\n categoryIndex: categoryIndex + 1,\n categoryLength,\n barLength: filteredBarChartBars.length,\n }),\n }\n : {})}\n {...forwardedProps}\n ref={ref as RefObject<SVGGElement>}\n >\n {filteredBarChartBars.map((bar, index: number) => {\n const to = {\n data: bar,\n category,\n };\n const from = cache.current ? { data: cache.current[index] } : undefined;\n\n const groupedBars = bars.filter((b) => {\n return xScaleType === 'Date' || xScaleType === 'dateString'\n ? (b.key as Date).getTime() === (bar.key as Date).getTime()\n : b.key === bar.key;\n });\n\n return (\n <Bar\n color={colorScale?.(to.data.category)!}\n data={to as BarDatum}\n dataset={bars}\n groupedData={groupedBars}\n disableAnimations={disableAnimations}\n gap={gap}\n id={`id${id}__bar-${categoryIndex}.${index}`}\n index={index}\n isSelected={Boolean(isBarSelected!(to as BarDatum))}\n key={`bar _${categoryIndex}.${index}`}\n labelDecorator={labelDecorator}\n maxHeight={scaleY(bar.cumulativeValue - bar.value)}\n anchorProps={getBarAnchorProps ? getBarAnchorProps(to) : undefined}\n onClick={onBarClick}\n orientation={BarOrientation.vertical}\n direction={direction}\n previousData={from! as BarDatum}\n scale={scaleY}\n scalePosition={scaleX}\n tooltipVariant={tooltipVariant}\n tooltipDecorator={tooltipDecorator}\n {...barProps}\n width={barProps?.width && typeof barProps.width === 'number' ? barProps.width : barWidth}\n height={undefined}\n role={barRole}\n />\n );\n })}\n </StyledBarChartBars>\n );\n});\n\nBarChartBars.className = CLASSNAME;\nBarChartBars.displayName = COMPONENT_NAME;\n\nexport const BarChartGroupedTooltip: React.FC<{\n dateFormatter: (date: Date) => string;\n categories: string[];\n categoryDecorator?: (category: string) => string;\n categoryColor: (category: string) => string;\n datum: BarDatum;\n groupedData: ComputedBarProps[] | undefined;\n}> = ({ dateFormatter, categories, categoryDecorator, categoryColor, datum, groupedData }) => (\n <Flexbox flexDirection=\"column\" margin=\"16px\" gap=\"0\">\n <Flexbox flexDirection=\"row\" gap=\"8px\">\n <Text fontWeight=\"400\" fontSize=\"14px\">\n Date:\n </Text>\n <Text fontWeight=\"700\" fontSize=\"14px\">\n {dateFormatter(datum.data.key as Date)}\n </Text>\n </Flexbox>\n <div style={{ width: '100%', height: '1px', backgroundColor: '#858585', margin: '8px 0' }} />\n <Flexbox flexDirection=\"row\" gap=\"8px\">\n <Text fontWeight=\"400\" fontSize=\"14px\">\n Total:\n </Text>\n <Text fontWeight=\"600\" fontSize=\"14px\">\n {groupedData?.reduce((acc, d) => acc + d.value, 0)}\n </Text>\n </Flexbox>\n <Flexbox flexDirection=\"column\" marginTop=\"4px\" gap=\"8px\">\n {categories.map((category) => {\n const value = groupedData?.find((d) => d.category === category)?.value;\n const color = categoryColor(category);\n return value ? (\n <Flexbox key={category} alignItems=\"center\" gap=\"8px\">\n <div style={{ width: '16px', height: '16px', backgroundColor: color }} />\n <Text fontWeight=\"400\" fontSize=\"14px\" lineHeight=\"18px\">\n {categoryDecorator ? categoryDecorator(category) : category}\n </Text>\n <Text fontWeight=\"600\" fontSize=\"14px\" lineHeight=\"18px\">\n {value}\n </Text>\n </Flexbox>\n ) : null;\n })}\n </Flexbox>\n </Flexbox>\n);\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef } from 'react';\nimport {\n extent as d3extent,\n scaleLinear as d3scaleLinear,\n scaleLog as d3scaleLog,\n scalePoint as d3scalePoint,\n scaleUtc as d3scaleUtc,\n ScaleTime as d3ScaleTime,\n utcParse as d3utcParse,\n ScaleLinear as d3ScaleLinear,\n} from 'd3';\n\nimport { Flexbox, useTheme, useMessageFormatter, isComponent } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport {\n AnyScale,\n BarDatum,\n LegendItemDatum,\n LegendVariant,\n LinearData,\n LinearDatum,\n LinearDim,\n TwoCategoryData,\n TwoCategoryDatum,\n} from '../../types';\nimport { BarChartLegendVariant, ComputedBarProps, RenderedLinearBarChartProps, XScaleType } from './types';\nimport { StyledBarChart } from './styles';\nimport { BarDirection } from '../Bar';\nimport { Axis, AxisVariant, getAxisType } from '../Axis';\nimport { sizeToDimension, statsBy } from './utils';\nimport { getSortingMethod, isValidDate, mergeLegends } from '../../utils';\nimport { useColor } from '../../hooks';\nimport { BarChartContext } from './context';\nimport { ChartTypeContext } from '../ChartContainer/context';\nimport { BarChartBars } from './BarChartBars';\nimport { Legend } from '../Legend';\n\nexport const COMPONENT_TYPES = {\n AXES: 'Axis',\n SECTIONS: 'BarChartSection',\n BARS: 'BarChartBars',\n LEGENDS: 'Legend',\n} as const;\n\nexport const getComponentPosition = (child: React.ReactNode) => {\n if (!React.isValidElement(child)) return null;\n\n const displayName = (child.type as any)?.displayName;\n\n if (COMPONENT_TYPES.AXES === displayName) return 'axes';\n if (COMPONENT_TYPES.SECTIONS === displayName) return 'sections';\n if (COMPONENT_TYPES.BARS === displayName) return 'bars';\n if (COMPONENT_TYPES.LEGENDS === displayName) return 'legend';\n\n return null;\n};\n\nconst getKey = (datum: LinearDatum | TwoCategoryDatum) => (Array.isArray(datum.key) ? datum.key[0] : datum.key);\n\nconst filterData = (hasCategory: boolean, data: LinearData | TwoCategoryData, filterFn: any) => {\n if (hasCategory) {\n return (data as TwoCategoryData).filter(filterFn);\n }\n return (data as LinearData).filter(filterFn);\n};\n\nconst reduceData = (hasCategory: boolean, data: LinearData | TwoCategoryData, reduceFn: any, initialValue: any) => {\n if (hasCategory) {\n return (data as TwoCategoryData).reduce(reduceFn, initialValue) as any;\n }\n return (data as LinearData).reduce(reduceFn, initialValue) as any;\n};\n\nconst isSameKey = (key: LinearDim, previousKey: LinearDim, xScaleType: XScaleType) =>\n xScaleType === 'Date' || xScaleType === 'dateString'\n ? (key as Date).getTime() === (previousKey as Date).getTime()\n : key === previousKey;\n\nexport const RenderedLinearBarChart = forwardRef<HTMLDivElement, RenderedLinearBarChartProps>((props, ref) => {\n const {\n barProps,\n children,\n className,\n data: propsData,\n direction = BarDirection.up,\n disableAnimations,\n id,\n getBarAnchorProps,\n isBarSelected,\n labelDecorator,\n legendDecorator,\n legendVariant,\n legendProps,\n margins: propsMargins,\n onBarClick,\n size,\n sortingMethod: propsSortingMethod,\n barRole,\n colorTheme,\n tooltipVariant,\n tooltipDecorator,\n xAxisVariant: propsXAxisVariant,\n xAxisPlacement,\n xAxisTickFormat: propsXAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n xAxisMinValue,\n xAxisMaxValue,\n xAxisTickRemodelling,\n xAxisStartDateOffset = -1,\n xAxisEndDateOffset = 1,\n yAxisVariant: propsYAxisVariant,\n yAxisPlacement,\n yAxisTickFormat,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickValues,\n yAxisMinValue,\n yAxisMaxValue,\n yAxisTickRemodelling,\n xScaleType: propsXScaleType,\n yScaleLogBase,\n dateParser,\n ...forwardedProps\n } = props;\n\n const cache = useRef<LinearData | TwoCategoryData>();\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const hasCategory =\n propsData[0] &&\n Array.isArray(propsData[0].key) &&\n propsData[0].key.length >= 2 &&\n propsData[0].key[1] !== null &&\n propsData[0].key[1] !== undefined;\n\n const sections = useMemo(() => {\n const sectionList: string[][] = [];\n\n React.Children.forEach(children, (child) => {\n if (isComponent('BarChartSection')(child)) {\n const categories = React.Children.toArray(child.props.children)\n .filter((c) => isComponent('BarChartBars')(c))\n .map((c) => (c as React.ReactElement).props.category);\n\n sectionList.push(categories);\n }\n });\n\n return sectionList;\n }, [children]);\n\n const hasSections = sections.length > 0;\n const sortingMethod = hasSections ? sections.flat() : propsSortingMethod;\n\n const xScaleType: XScaleType = propsXScaleType\n ? propsXScaleType\n : getKey(propsData[0]) instanceof Date\n ? 'Date'\n : typeof getKey(propsData[0]) === 'number'\n ? 'number'\n : typeof getKey(propsData[0]) === 'string' && isValidDate(getKey(propsData[0]) as string)\n ? 'dateString'\n : undefined;\n\n const data =\n xScaleType === 'number'\n ? filterData(\n hasCategory,\n propsData,\n (datum: LinearDatum | TwoCategoryDatum) => typeof getKey(datum) === 'number' && !Number.isNaN(getKey(datum))\n )\n : xScaleType === 'dateString'\n ? filterData(hasCategory, propsData, (datum: LinearDatum | TwoCategoryDatum) =>\n isValidDate(getKey(datum) as string)\n )\n : xScaleType === 'Date'\n ? filterData(hasCategory, propsData, (datum: LinearDatum | TwoCategoryDatum) => getKey(datum) instanceof Date)\n : propsData;\n\n useEffect(() => {\n cache.current = data;\n });\n\n const svgRef = useRef<SVGSVGElement>();\n\n const xAxisVariant = propsXAxisVariant ? propsXAxisVariant : AxisVariant.tickValue;\n const yAxisVariant = propsYAxisVariant ? propsYAxisVariant : AxisVariant.default;\n\n const chartDimensions = sizeToDimension(size!);\n const width = Math.max(\n Math.min(chartDimensions.width, chartDimensions.maxWidth ?? Infinity),\n chartDimensions.minWidth ?? -Infinity\n );\n const height = chartDimensions.height;\n const margins = {\n top: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8,\n left: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,\n right: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,\n bottom: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8,\n ...propsMargins,\n };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n const numberOfBars = filterData(hasCategory, data, (datum: LinearDatum | TwoCategoryDatum) => datum.value).length;\n const gap = 5;\n\n let barWidth = chartWidth / (numberOfBars * 2) - gap;\n\n const scaleX = (() => {\n if (xScaleType === 'number') {\n const domain = d3extent<LinearDatum | TwoCategoryDatum, number>(data, (d) => getKey(d) as number) as [\n number,\n number\n ];\n domain[0] = (xAxisMinValue as number) ?? domain[0];\n domain[1] = (xAxisMaxValue as number) ?? domain[1];\n const gap = domain[1] - domain[0];\n domain[0] -= gap * 0.1;\n domain[1] += gap * 0.1;\n return d3scaleLinear().domain(domain).range([0, chartWidth]).nice();\n } else if (xScaleType === 'dateString' || xScaleType === 'Date') {\n const domain =\n xScaleType === 'dateString'\n ? (d3extent<LinearDatum | TwoCategoryDatum, number>(data, (d) => Date.parse(getKey(d) as string)) as [\n number,\n number\n ])\n : (d3extent<LinearDatum | TwoCategoryDatum, number>(data, (d) => (getKey(d) as Date).valueOf()) as [\n number,\n number\n ]);\n domain[0] = (xAxisMinValue as number) ?? domain[0];\n domain[1] = (xAxisMaxValue as number) ?? domain[1];\n const startDate =\n xAxisTickValues && typeof xAxisTickValues === 'function' && typeof xAxisTickValues.offset === 'function'\n ? xAxisTickValues.offset(new Date(domain[0]), xAxisStartDateOffset)\n : new Date(domain[0]);\n const endDate =\n xAxisTickValues && typeof xAxisTickValues === 'function' && typeof xAxisTickValues.offset === 'function'\n ? xAxisTickValues.offset(new Date(domain[1]), xAxisEndDateOffset)\n : new Date(domain[1]);\n\n return barProps?.width && typeof barProps.width === 'number'\n ? d3scaleUtc()\n .domain([startDate, endDate])\n .range([barProps.width / 2 + 10, chartWidth - (barProps.width / 2 + 5)])\n : d3scaleUtc()\n .domain([startDate, endDate])\n .range([barWidth, chartWidth - barWidth])\n .nice();\n } else {\n const domain =\n xAxisTickValues && Array.isArray(xAxisTickValues)\n ? (xAxisTickValues as string[])\n : data.map((d) => getKey(d) as string);\n domain[0] = (xAxisMinValue as string) ?? domain[0];\n domain[1] = (xAxisMaxValue as string) ?? domain[1];\n return d3scalePoint().domain(domain).range([0, chartWidth]);\n }\n })();\n\n const xAxisTickFormat =\n propsXAxisTickFormat ??\n (xScaleType === 'Date' || xScaleType === 'dateString'\n ? (scaleX as d3ScaleTime<number, number, never>).tickFormat()\n : undefined);\n\n const statsByCategory = statsBy(data as LinearData | TwoCategoryData, sortingMethod!);\n const colorScale = useColor({\n data: statsByCategory,\n colorTheme: colorTheme!,\n category: (d) => d.key as string,\n theme,\n });\n\n const bars: ComputedBarProps[] = reduceData(\n hasCategory,\n filterData(\n hasCategory,\n data.sort((a, b) => {\n const currentKeyA = hasCategory ? (a as TwoCategoryDatum).key[0] : (a as LinearDatum).key;\n const currentKeyB = hasCategory ? (b as TwoCategoryDatum).key[0] : (b as LinearDatum).key;\n if (xScaleType === 'number') {\n if (currentKeyA < currentKeyB) return -1;\n if (currentKeyA > currentKeyB) return 1;\n } else if (xScaleType === 'dateString') {\n if (Date.parse(currentKeyA as string) < Date.parse(currentKeyB as string)) return -1;\n if (Date.parse(currentKeyA as string) > Date.parse(currentKeyB as string)) return 1;\n } else if (xScaleType === 'Date') {\n if ((currentKeyA as Date).valueOf() < (currentKeyB as Date).valueOf()) return -1;\n if ((currentKeyA as Date).valueOf() > (currentKeyB as Date).valueOf()) return 1;\n } else if (xScaleType === 'string' && xAxisTickValues && Array.isArray(xAxisTickValues)) {\n if (xAxisTickValues.indexOf(currentKeyA) < xAxisTickValues.indexOf(currentKeyB)) return -1;\n if (xAxisTickValues.indexOf(currentKeyA) > xAxisTickValues.indexOf(currentKeyB)) return 1;\n }\n return hasCategory\n ? getSortingMethod(sortingMethod ?? 'asc-key')(\n { key: (a as TwoCategoryDatum).key[1]!, value: a.value! },\n { key: (b as TwoCategoryDatum).key[1]!, value: b.value! }\n )\n : 0;\n }),\n (d: LinearDatum | TwoCategoryDatum) => d.value !== null\n ),\n (previousValue: ComputedBarProps[], currentValue: LinearDatum | TwoCategoryDatum, currentIndex: number) => {\n const currentKeyD = hasCategory ? (currentValue as TwoCategoryDatum).key[0] : (currentValue as LinearDatum).key;\n const formattedKeyD =\n xScaleType === 'dateString'\n ? dateParser\n ? dateParser(currentKeyD as string)\n : (d3utcParse('%Y-%m-%d')(currentKeyD as string) as Date)\n : currentKeyD;\n const category = hasCategory ? (currentValue as TwoCategoryDatum).key[1] ?? 'default' : 'default';\n const isSameSection = !hasSections\n ? true\n : (() => {\n const findSectionIndex = (cat: string) => sections.findIndex((section) => section.includes(cat));\n const currentSection = findSectionIndex(category);\n const prevSection = findSectionIndex(previousValue[currentIndex - 1]?.category);\n return currentSection !== -1 && currentSection === prevSection;\n })();\n\n previousValue.push({\n category,\n key: formattedKeyD,\n value: currentValue.value as number,\n cumulativeValue: currentValue.value as number,\n });\n\n if (\n hasCategory &&\n currentIndex > 0 &&\n isSameKey(formattedKeyD, previousValue[currentIndex - 1].key, xScaleType) &&\n isSameSection\n ) {\n previousValue[currentIndex].cumulativeValue =\n previousValue[currentIndex].cumulativeValue + previousValue[currentIndex - 1].cumulativeValue;\n }\n\n return previousValue;\n },\n [] as ComputedBarProps[]\n ).filter((bar: ComputedBarProps) => yScaleLogBase === undefined || bar.cumulativeValue !== 0);\n\n const getScaleY = (\n direction: BarDirection,\n from: number = 0,\n to: number = 1,\n categories: string[] = ['default'],\n hasSectionTitle = false\n ) => {\n const domain = d3extent(\n bars.filter((bar) => categories.includes(bar.category)),\n (d) => d.cumulativeValue as number\n ) as [number, number];\n domain[0] = (yAxisMinValue as number) ?? domain[0];\n domain[1] = (yAxisMaxValue as number) ?? domain[1] * (hasSectionTitle ? 1.2 : 1);\n if (domain[1] === 0 && domain[0] === 0) {\n domain[1] = 1;\n }\n return (yScaleLogBase ? d3scaleLog().clamp(true).base(yScaleLogBase) : d3scaleLinear())\n .domain(domain)\n .range(\n direction === 'down' ? [0, chartHeight * to - chartHeight * from] : [chartHeight * to - chartHeight * from, 0]\n )\n .nice();\n };\n\n if (xScaleType) {\n const minimalGap =\n Math.min(\n ...(bars\n .map((bar, i) => (i > 0 ? Math.abs((bar.key as number) - (bars[i - 1].key as number)) : undefined))\n .filter((k) => k) as number[])\n ) * 0.9;\n barWidth = Math.min(\n barWidth,\n chartWidth / (((scaleX.domain()[1] as number) - (scaleX.domain()[0] as number)) / minimalGap),\n chartWidth /\n (xAxisTickValues && typeof xAxisTickValues !== 'string'\n ? typeof xAxisTickValues === 'number'\n ? xAxisTickValues\n : Array.isArray(xAxisTickValues)\n ? xAxisTickValues.length\n : xAxisTickValues.range(scaleX.domain()[0] as Date, scaleX.domain()[1] as Date).length\n : 1)\n );\n }\n\n const categories: string[] = sortingMethod && Array.isArray(sortingMethod) ? sortingMethod : [];\n const pivotedTable = bars.reduce((acc, item) => {\n const { key, category, value } = item;\n if (!categories.includes(category)) {\n categories.push(category);\n }\n const formattedKey = xAxisTickFormat ? xAxisTickFormat(key as any) : key.toString();\n\n let entry = acc.find((e) => e.key === formattedKey);\n if (!entry) {\n entry = { key: formattedKey };\n acc.push(entry);\n }\n\n entry[category] = value;\n\n return acc;\n }, [] as Array<Record<string, string | number> & { key: string }>);\n\n const scaleY = getScaleY(direction, 0, 1, categories);\n\n const { extraLegendItems, ...forwardedLegendProps } = legendProps || {};\n\n const {\n axisComponents,\n sectionComponents,\n barsComponents,\n legendComponents,\n titleComponent,\n descriptionComponent,\n multipleScaleY,\n } = useMemo(() => {\n const axisComponents: React.ReactElement[] = [];\n const sectionComponents: React.ReactElement[] = [];\n const barsComponents: React.ReactElement[] = [];\n const legendComponents: React.ReactElement[] = [];\n let titleComponent: React.ReactElement | undefined;\n let descriptionComponent: React.ReactElement | undefined;\n const multipleScaleY: d3ScaleLinear<number, number, never>[] = [];\n\n React.Children.forEach(children, (child, index) => {\n const position = getComponentPosition(child);\n\n if (isComponent('ChartContainerTitle')(child)) {\n titleComponent = child;\n }\n if (isComponent('ChartContainerDescription')(child)) {\n descriptionComponent = child;\n }\n\n if (!position || !React.isValidElement(child)) return;\n\n let enhancedChild = child;\n\n if (isComponent('BarChartSection')(child)) {\n const categories = React.Children.toArray(child.props.children)\n .filter((c) => isComponent('BarChartBars')(c))\n .map((c) => (c as React.ReactElement).props.category);\n\n const scaleY = getScaleY(\n child.props.direction || 'up',\n child.props.from,\n child.props.to,\n categories,\n child.props.title !== ''\n );\n multipleScaleY.push(scaleY);\n\n enhancedChild = React.cloneElement(child, {\n scaleX: scaleX,\n scaleY: scaleY,\n key: child.key || `section-${child.props.from}-${child.props.to}-${categories.join('-')}`,\n ...child.props,\n });\n }\n if (isComponent('Axis')(child)) {\n const isX = getAxisType(child.props.position) === 'x';\n\n enhancedChild = React.cloneElement(child, {\n key: child.key || `axis-${child.props.position}-${index}`,\n chartWidth,\n chartHeight,\n scale: isX ? scaleX : scaleY,\n x: child.props.position === 'right' ? chartWidth : 0,\n y: child.props.position === 'bottom' ? chartHeight : child.props.position === 'top' ? 0 : chartHeight,\n disableAnimations,\n length: isX ? chartWidth : chartHeight,\n tickValues: (isX ? xAxisTickValues : yAxisTickValues) ?? 8,\n tickPadding: isX ? xAxisTickPadding : yAxisTickPadding,\n tickRotation: isX ? xAxisTickRotation : yAxisTickRotation,\n tickSize: isX ? xAxisTickSize : yAxisTickSize,\n tickFormat: isX ? xAxisTickFormat : yAxisTickFormat,\n tickRemodelling: isX ? xAxisTickRemodelling : yAxisTickRemodelling,\n variant: isX ? xAxisVariant : yAxisVariant,\n ...child.props,\n });\n }\n\n if (isComponent('Legend')(child)) {\n enhancedChild = React.cloneElement(child, {\n key: child.key || `legend-${index}`,\n data: (extraLegendItems\n ? mergeLegends(extraLegendItems, statsByCategory).sort(getSortingMethod(sortingMethod!))\n : statsByCategory\n ).map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n })),\n ...child.props,\n });\n }\n\n switch (position) {\n case 'axes':\n axisComponents.push(enhancedChild);\n break;\n case 'sections':\n sectionComponents.push(enhancedChild);\n break;\n case 'bars':\n barsComponents.push(enhancedChild);\n break;\n case 'legend':\n legendComponents.push(enhancedChild);\n break;\n }\n });\n\n return {\n axisComponents,\n sectionComponents,\n barsComponents,\n legendComponents,\n titleComponent,\n descriptionComponent,\n multipleScaleY,\n };\n }, [children]);\n\n return (\n <ChartTypeContext.Provider value=\"bar\">\n <BarChartContext.Provider\n value={{\n barProps,\n barRole,\n bars: bars as ComputedBarProps[],\n barWidth,\n cache,\n categories,\n chartHeight,\n chartWidth,\n colorScale,\n direction,\n disableAnimations,\n format,\n gap,\n getBarAnchorProps,\n hasCategory,\n id,\n isBarSelected,\n labelDecorator,\n margins,\n onBarClick,\n scaleX,\n scaleY,\n tooltipVariant,\n tooltipDecorator,\n xAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRemodelling,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n xAxisVariant,\n xScaleType,\n yAxisTickValues,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickFormat,\n yAxisTickRemodelling,\n yAxisVariant,\n }}\n >\n <StyledBarChart\n mode={typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={\n hasCategory\n ? format('definition-linear-with-categories', {\n categoryLength: categories.length,\n barLength: bars.length,\n })\n : format('definition-linear', { barLength: bars.length })\n }\n xAxisDefinition={format(`x-axis-${xScaleType === 'number' ? 'numbers' : 'dates'}-definition`, {\n numAxis: xAxisPlacement === 'both' ? 2 : 1,\n start: xAxisTickFormat ? xAxisTickFormat(scaleX.domain()[0] as any) : scaleX.domain()[0],\n end: xAxisTickFormat ? xAxisTickFormat(scaleX.domain()[1] as any) : scaleX.domain()[1],\n })}\n yAxisDefinition={\n multipleScaleY.length > 0\n ? multipleScaleY\n .map((scale) =>\n format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: (scale as d3ScaleLinear<number, number, never>).domain()[0],\n end: (scale as d3ScaleLinear<number, number, never>).domain()[1],\n })\n )\n .join(' ')\n : format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: (scaleY as d3ScaleLinear<number, number, never>).domain()[0],\n end: (scaleY as d3ScaleLinear<number, number, never>).domain()[1],\n })\n }\n dataTableRepresentation={\n hasCategory\n ? {\n header: (\n <thead>\n <tr>\n <th scope=\"col\">{xScaleType === 'Date' || xScaleType === 'dateString' ? 'Date' : 'Key'}</th>\n {categories.map((category) => (\n <th key={category} scope=\"col\">\n {category}\n </th>\n ))}\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {pivotedTable.map((row) => (\n <tr key={row.key}>\n <th scope=\"row\">{row.key}</th>\n {categories.map((category) => (\n <th key={`${row.key}-${category}-${row[category]}`} scope=\"col\">\n {row[category]}\n </th>\n ))}\n </tr>\n ))}\n </tbody>\n ),\n }\n : {\n header: (\n <thead>\n <tr>\n <th scope=\"col\">{xScaleType === 'Date' || xScaleType === 'dateString' ? 'Date' : 'Key'}</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {bars.map((datum) => {\n const key = xAxisTickFormat ? xAxisTickFormat(datum.key as any) : datum.key.toString();\n return (\n <tr key={key}>\n <th scope=\"row\">{key}</th>\n <td>{datum.value}</td>\n </tr>\n );\n })}\n </tbody>\n ),\n }\n }\n title={titleComponent}\n description={descriptionComponent}\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <Flexbox flexDirection=\"column\" alignItems=\"center\" gap=\"8\">\n <svg\n ref={svgRef as RefObject<SVGSVGElement>}\n width={width}\n height={height}\n aria-label={\n typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n aria-hidden=\"false\"\n >\n {axisComponents.length === 0 && sectionComponents.length === 0 ? (\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {['bottom', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"bottom\"\n length={chartWidth}\n scale={scaleX as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={xAxisTickValues ?? 8}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n tickRemodelling={xAxisTickRemodelling}\n variant={xAxisVariant}\n />\n ) : null}\n {['top', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"top\"\n length={chartWidth}\n scale={scaleX as AnyScale}\n x={0}\n y={0}\n tickValues={xAxisTickValues ?? 8}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n tickRemodelling={xAxisTickRemodelling}\n variant={xAxisVariant}\n />\n ) : null}\n {['left', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"left\"\n length={chartHeight}\n scale={scaleY as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 8}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n tickRemodelling={yAxisTickRemodelling}\n variant={yAxisVariant}\n />\n ) : null}\n {['right', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"right\"\n length={chartHeight}\n scale={scaleY as AnyScale}\n x={chartWidth}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 8}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n tickRemodelling={yAxisTickRemodelling}\n variant={yAxisVariant}\n />\n ) : null}\n </g>\n ) : (\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {axisComponents}\n </g>\n )}\n\n {sectionComponents}\n\n {barsComponents.length === 0 && sectionComponents.length === 0 ? (\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {(hasSections ? sections : [categories]).map((section) =>\n section.map((category) => <BarChartBars key={category} category={category} />)\n )}{' '}\n </g>\n ) : (\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {barsComponents}\n </g>\n )}\n </svg>\n </Flexbox>\n {legendComponents.length === 0 && hasCategory && legendVariant !== BarChartLegendVariant.none ? (\n <Legend\n data={(extraLegendItems\n ? mergeLegends(extraLegendItems, statsByCategory).sort(getSortingMethod(sortingMethod!))\n : statsByCategory\n ).map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n }))}\n variant={\n legendVariant === BarChartLegendVariant.externalLabelValue\n ? LegendVariant.value\n : legendVariant === BarChartLegendVariant.externalLabelPercent\n ? LegendVariant.percent\n : legendVariant === BarChartLegendVariant.externalLabel\n ? LegendVariant.label\n : LegendVariant.custom\n }\n legendDecorator={\n legendDecorator\n ? (datum: LegendItemDatum, props) => legendDecorator(datum as unknown as BarDatum, props)\n : undefined\n }\n {...forwardedLegendProps}\n />\n ) : (\n legendComponents\n )}\n </StyledBarChart>\n </BarChartContext.Provider>\n </ChartTypeContext.Provider>\n );\n});\n","import React, { forwardRef, RefObject, useMemo } from 'react';\nimport classNames from 'classnames';\n\nimport {\n Comp,\n isComponent,\n RedsiftColorGreenD1,\n RedsiftColorNeutralBlack,\n RedsiftColorRedD1,\n useTheme,\n} from '@redsift/design-system';\n\nimport { BarChartSectionProps } from './types';\nimport { StyledBarChartSection } from './styles';\nimport { BarChartContext, useBarChartContext } from './context';\nimport { getAxisType } from '../Axis';\n\nconst COMPONENT_NAME = 'BarChartSection';\nconst CLASSNAME = 'redsift-barchart-section';\n\nexport const BarChartSection: Comp<BarChartSectionProps, SVGGElement> = forwardRef((props, ref) => {\n const {\n className,\n from = 0,\n to = 1,\n color,\n title,\n titlePosition = 'center',\n scaleX,\n scaleY,\n children: propsChildren,\n direction,\n ...forwardedProps\n } = props;\n\n const { textColor, backgroundColor } = useMemo(() => {\n if (color === 'green') {\n return {\n textColor: RedsiftColorGreenD1,\n backgroundColor: '#F7FBF9',\n };\n } else if (color === 'red') {\n return {\n textColor: RedsiftColorRedD1,\n backgroundColor: '#FFF7F7',\n };\n } else if (color === undefined) {\n return {\n textColor: RedsiftColorNeutralBlack,\n backgroundColor: undefined,\n };\n }\n return color;\n }, [color]);\n\n const theme = useTheme();\n\n const context = useBarChartContext();\n const {\n chartHeight,\n chartWidth,\n margins,\n disableAnimations,\n xAxisTickValues,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickFormat,\n xAxisTickRemodelling,\n xAxisVariant,\n yAxisTickValues,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickFormat,\n yAxisTickRemodelling,\n yAxisVariant,\n } = context;\n\n const sectionHeight = Math.max(0, Math.min(1, to - from)) * chartHeight;\n const sectionY = Math.max(0, Math.min(1, from)) * chartHeight;\n\n const titleX = titlePosition === 'center' ? chartWidth / 2 : titlePosition === 'right' ? chartWidth - 10 : 10;\n\n const titleAnchor = titlePosition === 'center' ? 'middle' : titlePosition === 'right' ? 'end' : 'start';\n\n const children = useMemo(() => {\n const renderedChildren: React.ReactElement[] = [];\n\n React.Children.forEach(propsChildren, (child) => {\n if (!React.isValidElement(child)) return;\n const isX = getAxisType(child.props.position) === 'x';\n\n let enhancedChild = child;\n\n if (isComponent('Axis')(child)) {\n enhancedChild = React.cloneElement(child, {\n key: child.key || `axis-${child.props.position}`,\n chartWidth,\n chartHeight,\n sectionHeight,\n scale: isX ? scaleX : scaleY,\n x: child.props.position === 'right' ? chartWidth : 0,\n y: child.props.position === 'bottom' ? sectionHeight : child.props.position === 'top' ? 0 : sectionHeight,\n disableAnimations,\n length: isX ? chartWidth : sectionHeight,\n tickValues: (isX ? xAxisTickValues : yAxisTickValues) ?? 8,\n tickPadding: isX ? xAxisTickPadding : yAxisTickPadding,\n tickRotation: isX ? xAxisTickRotation : yAxisTickRotation,\n tickSize: isX ? xAxisTickSize : yAxisTickSize,\n tickFormat: isX ? xAxisTickFormat : yAxisTickFormat,\n tickRemodelling: isX ? xAxisTickRemodelling : yAxisTickRemodelling,\n variant: isX ? xAxisVariant : yAxisVariant,\n textColor: isX ? undefined : color,\n tickToColor: (_: never, index: number) => index !== 0,\n ...child.props,\n });\n }\n\n renderedChildren.push(enhancedChild);\n });\n\n return renderedChildren;\n }, [propsChildren]);\n\n return (\n <BarChartContext.Provider\n value={{\n ...context,\n scaleX: scaleX!,\n scaleY: scaleY!,\n direction,\n sectionHeight,\n }}\n >\n <StyledBarChartSection\n {...forwardedProps}\n className={classNames(BarChartSection.className, className)}\n transform={`translate(${margins.left},${(margins.top || 0) + sectionY})`}\n ref={ref as RefObject<SVGGElement>}\n $theme={theme}\n $textColor={textColor}\n >\n {backgroundColor ? <rect x={0} y={0} width={chartWidth} height={sectionHeight} fill={backgroundColor} /> : null}\n {title && (\n <text\n className=\"title colored\"\n x={titleX}\n y={direction === 'up' ? 8 : direction === 'down' ? sectionHeight - 8 : sectionHeight / 2}\n textAnchor={titleAnchor}\n fontSize={12}\n dominantBaseline={direction === 'up' ? 'hanging' : direction === 'down' ? 'auto' : 'middle'}\n >\n {title}\n </text>\n )}\n {children}\n </StyledBarChartSection>\n </BarChartContext.Provider>\n );\n});\n\nBarChartSection.className = CLASSNAME;\nBarChartSection.displayName = COMPONENT_NAME;\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp, useId } from '@redsift/design-system';\n\nimport { ChartSize, ColorTheme, LinearData, TooltipVariant } from '../../types';\nimport { BarChartLegendVariant, BarChartProps } from './types';\nimport { EmptyBarChart } from './EmptyBarChart';\nimport { LoadingBarChart } from './LoadingBarChart';\nimport { RenderedOrdinalBarChart } from './RenderedOrdinalBarChart';\nimport { RenderedLinearBarChart } from './RenderedLinearBarChart';\nimport { BarOrientation } from '../Bar';\nimport { isValidDate } from '../../utils';\nimport { BarChartSection } from './BarChartSection';\nimport { BarChartBars, BarChartGroupedTooltip } from './BarChartBars';\nimport { Axis } from '../Axis';\nimport { Legend } from '../Legend';\nimport { LegendItem } from '../LegendItem';\nimport { ChartContainerDescription, ChartContainerTitle } from '../ChartContainer';\n\nconst COMPONENT_NAME = 'BarChart';\nconst CLASSNAME = 'redsift-barchart';\n\nexport const BaseBarChart: Comp<BarChartProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n barRole,\n caping,\n chartRef,\n className,\n colorTheme = ColorTheme.default,\n data: propsData,\n dataType: propsDataType,\n emptyComponent,\n id: propsId,\n isBarSelected = () => true,\n labelDecorator,\n legendDecorator,\n legendVariant: propsLegendVariant,\n localeText = { emptyChartText: 'No Data' },\n onBarClick,\n orientation = BarOrientation.horizontal,\n others = true,\n size = ChartSize.medium,\n sortingMethod = 'desc-value',\n theme,\n tooltipDecorator,\n tooltipVariant = TooltipVariant.value,\n xAxisPlacement = 'bottom',\n yAxisPlacement = 'left',\n ...forwardedProps\n } = props;\n const [_id] = useId();\n const id = propsId ?? _id;\n\n const legendVariant = propsLegendVariant ?? BarChartLegendVariant.externalLabel;\n\n if (propsData === undefined || propsData === null) {\n return <LoadingBarChart id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyBarChart\n data={propsData}\n emptyComponent={emptyComponent}\n id={id}\n localeText={localeText}\n size={size}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n const dataType = propsDataType\n ? propsDataType\n : Array.isArray(propsData[0].key)\n ? 'TwoCategoryData'\n : propsData[0].key instanceof Date\n ? 'LinearData'\n : typeof propsData[0].key === 'number'\n ? 'LinearData'\n : typeof propsData[0].key === 'string' && isValidDate(propsData[0].key)\n ? 'LinearData'\n : typeof propsData[0].key === 'string'\n ? 'CategoryData'\n : 'CategoryData';\n\n if (dataType === 'CategoryData') {\n return (\n <RenderedOrdinalBarChart\n barRole={barRole}\n caping={caping}\n chartRef={chartRef}\n className={classNames(BaseBarChart.className, className)}\n data={propsData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n onBarClick={onBarClick}\n orientation={orientation}\n others={others}\n size={size}\n sortingMethod={sortingMethod}\n theme={theme}\n tooltipDecorator={tooltipDecorator}\n colorTheme={colorTheme}\n tooltipVariant={tooltipVariant}\n xAxisPlacement={xAxisPlacement}\n yAxisPlacement={yAxisPlacement}\n {...forwardedProps}\n ref={ref}\n />\n );\n } else if (dataType === 'LinearData' || dataType === 'TwoCategoryData') {\n return (\n <RenderedLinearBarChart\n barRole={barRole}\n chartRef={chartRef}\n className={classNames(BaseBarChart.className, className)}\n data={propsData as LinearData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n legendDecorator={legendDecorator}\n legendVariant={legendVariant}\n onBarClick={onBarClick}\n size={size}\n sortingMethod={sortingMethod}\n theme={theme}\n tooltipDecorator={tooltipDecorator}\n colorTheme={colorTheme}\n tooltipVariant={tooltipVariant}\n xAxisPlacement={xAxisPlacement}\n yAxisPlacement={yAxisPlacement}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return null;\n});\nBaseBarChart.className = CLASSNAME;\nBaseBarChart.displayName = COMPONENT_NAME;\n\nexport const BarChart = Object.assign(BaseBarChart, {\n Section: BarChartSection,\n Bars: BarChartBars,\n Axis: Axis,\n GroupedTooltip: BarChartGroupedTooltip,\n Legend: Legend,\n LegendItem: LegendItem,\n Title: ChartContainerTitle,\n Description: ChartContainerDescription,\n});\n"],"names":["BarChartLegendVariant","none","externalLabel","externalLabelValue","externalLabelPercent","custom","StyledBarChart","styled","ChartContainer","StyledBarChartSection","g","_ref","$textColor","css","StyledBarChartBars","StyledBarChartEmptyText","div","_ref2","$maxWidth","_ref3","$theme","_ref4","$textSize","_ref5","sizeToDimension","size","ChartSize","small","width","height","fontSize","large","medium","statsBy","arr","sortingMethod","isKeyArray","Array","isArray","key","counts","reduce","prev","curr","value","currentKey","min","max","values","Math","Object","keys","map","first","last","length","trending","overall","sort","getSortingMethod","EmptyBarChart","forwardRef","props","ref","className","emptyComponent","localeText","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","chartDimensions","margins","top","left","right","bottom","chartHeight","chartWidth","scaleRef","useRef","current","d3scaleLinear","domain","range","React","createElement","_extends","Fragment","emptyChartText","transform","Axis","position","scale","x","y","tickValues","LoadingBarChart","enUS","frFR","BarChartContext","createContext","useBarChartContext","context","useContext","Error","ChartTypeContext","undefined","RenderedOrdinalBarChart","areXLabelsRotated","barProps","caping","data","propsData","disableAnimations","id","isBarSelected","getBarAnchorProps","labelDecorator","propsMargins","onBarClick","orientation","others","barRole","colorTheme","tooltipVariant","xAxisVariant","propsXAxisVariant","xAxisPlacement","xAxisTickFormat","xAxisTickPadding","xAxisTickRotation","xAxisTickSize","xAxisTickValues","yAxisVariant","propsYAxisVariant","yAxisPlacement","yAxisTickFormat","yAxisTickPadding","yAxisTickRotation","yAxisTickSize","yAxisTickValues","cache","format","useMessageFormatter","intlMessages","colorScale","useFormatCategoricalData","useEffect","isHorizontal","BarOrientation","horizontal","AxisVariant","default","tickValue","_objectSpread","numberOfRows","filter","datum","gap","barHeight","barWidth","total","d3sum","d","useMemo","scaleCategory","d3scaleBand","bars","Provider","mode","definition","barLength","xAxisDefinition","numAxis","start","end","yAxisDefinition","dataTableRepresentation","header","scope","body","includes","tickPadding","tickRotation","tickSize","tickFormat","variant","index","percent","to","from","Bar","color","dataset","isSelected","Boolean","maxHeight","anchorProps","onClick","previousData","scalePosition","role","COMPONENT_NAME","CLASSNAME","BarChartBars","category","categories","direction","hasCategory","scaleX","scaleY","tooltipDecorator","xScaleType","filteredBarChartBars","bar","categoryIndex","indexOf","categoryLength","groupedBars","b","getTime","groupedData","cumulativeValue","vertical","displayName","BarChartGroupedTooltip","dateFormatter","categoryDecorator","categoryColor","Flexbox","flexDirection","margin","Text","fontWeight","style","backgroundColor","acc","marginTop","_groupedData$find","find","alignItems","lineHeight","COMPONENT_TYPES","AXES","SECTIONS","BARS","LEGENDS","getComponentPosition","child","_child$type","isValidElement","type","getKey","filterData","filterFn","reduceData","reduceFn","initialValue","isSameKey","previousKey","RenderedLinearBarChart","_chartDimensions$maxW","_chartDimensions$minW","children","BarDirection","up","legendDecorator","legendVariant","legendProps","propsSortingMethod","propsXAxisTickFormat","xAxisMinValue","xAxisMaxValue","xAxisTickRemodelling","xAxisStartDateOffset","xAxisEndDateOffset","yAxisMinValue","yAxisMaxValue","yAxisTickRemodelling","propsXScaleType","yScaleLogBase","dateParser","sections","sectionList","Children","forEach","isComponent","toArray","c","push","hasSections","flat","Date","isValidDate","Number","isNaN","svgRef","maxWidth","Infinity","minWidth","numberOfBars","d3extent","nice","parse","valueOf","startDate","offset","endDate","d3scaleUtc","_ref6","d3scalePoint","statsByCategory","useColor","a","currentKeyA","currentKeyB","previousValue","currentValue","currentIndex","_key$","currentKeyD","formattedKeyD","d3utcParse","isSameSection","_previousValue","findSectionIndex","cat","findIndex","section","currentSection","prevSection","getScaleY","_ref7","_ref8","arguments","hasSectionTitle","d3scaleLog","clamp","base","minimalGap","i","abs","k","pivotedTable","item","formattedKey","toString","entry","e","_ref9","extraLegendItems","forwardedLegendProps","_excluded2","axisComponents","sectionComponents","barsComponents","legendComponents","titleComponent","descriptionComponent","multipleScaleY","enhancedChild","title","cloneElement","join","_ref10","isX","getAxisType","tickRemodelling","mergeLegends","row","description","Legend","LegendVariant","label","BarChartSection","titlePosition","propsChildren","textColor","RedsiftColorGreenD1","RedsiftColorRedD1","RedsiftColorNeutralBlack","sectionHeight","sectionY","titleX","titleAnchor","renderedChildren","tickToColor","_","classNames","fill","textAnchor","dominantBaseline","BaseBarChart","chartRef","ColorTheme","dataType","propsDataType","propsId","propsLegendVariant","TooltipVariant","_id","useId","BarChart","assign","Section","Bars","GroupedTooltip","LegendItem","Title","ChartContainerTitle","Description","ChartContainerDescription"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BarChart2.js","sources":["../../src/components/BarChart/types.ts","../../src/components/BarChart/styles.ts","../../src/components/BarChart/utils.ts","../../src/components/BarChart/EmptyBarChart.tsx","../../src/components/BarChart/LoadingBarChart.tsx","../../src/components/BarChart/intl/index.ts","../../src/components/BarChart/context.ts","../../src/components/ChartContainer/context.ts","../../src/components/BarChart/RenderedOrdinalBarChart.tsx","../../src/components/BarChart/BarChartBars.tsx","../../src/components/BarChart/RenderedLinearBarChart.tsx","../../src/components/BarChart/BarChartSection.tsx","../../src/components/BarChart/BarChartOverlay.tsx","../../src/components/BarChart/BarChart.tsx"],"sourcesContent":["import { ComponentProps, ReactElement, ReactNode } from 'react';\nimport {\n ChartDimensions,\n ChartSize,\n ChartTheme,\n BarDatum,\n TooltipVariant,\n CategoryData,\n ChartAxesProps,\n MarginProps,\n LinearData,\n TwoCategoryData,\n Statistics,\n LinearDim,\n} from '../../types';\nimport {\n ScaleTime as d3ScaleTime,\n ScaleLinear as d3ScaleLinear,\n ScaleOrdinal as d3ScaleOrdinal,\n ScalePoint as d3ScalePoint,\n} from 'd3';\nimport { ChartContainerProps } from '../ChartContainer';\nimport { BarDirection, BarOrientation, BarProps } from '../Bar';\nimport { SortingMethod } from '../../utils';\nimport { Theme, ValueOf } from '@redsift/design-system';\nimport { LegendProps } from '../Legend';\nimport { AnchorProps } from '../DataPoint';\nimport { FormatMessage } from '@redsift/design-system/react-aria/react-aria/i18n/useMessageFormatter';\n\n/**\n * Component's labels variant.\n */\nexport const BarChartLegendVariant = {\n none: 'none',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n custom: 'custom',\n} as const;\nexport type BarChartLegendVariant = ValueOf<typeof BarChartLegendVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\nexport type BarChartDimensions = ChartDimensions & {\n fontSize: number;\n minWidth?: number;\n maxWidth?: number;\n};\n\nexport type XScaleType = 'number' | 'Date' | 'dateString' | undefined;\n\n/**\n * Component props.\n */\nexport interface BarChartProps extends ChartContainerProps, ChartAxesProps {\n /** @deprecated: Use xAxisTickRotation instead. Whether the x axis labels are rotated or not. */\n areXLabelsRotated?: boolean;\n /** Native HTML props to forward to each bar. */\n barProps?: Omit<ComponentProps<'g'>, 'onClick' | 'orientation' | 'ref' | 'scale' | 'direction'> & {\n minWidth?: number;\n };\n /** Bar role. If an onClick is provided, the bars will have the role `button`. For a navigation link, please use `getBarAnchorProps` instead. */\n barRole?: BarProps['role'];\n /** Number of categories to use, the rest being put into a new category called \"Others\". */\n caping?: number;\n /** Color palette to use. You can choose among the list of available color palette or also choose to use the success/warning/danger theme for which you have to specify which key corresponds to which status. */\n colorTheme?: ChartTheme;\n /** Dataset to use to generate the chart, should be a list of objects containing a key and a value. */\n data?: CategoryData | LinearData | TwoCategoryData;\n /** Data type override to skip data type inferrence. */\n dataType?: 'TwoCategoryData' | 'LinearData' | 'CategoryData';\n /**\n * Direction of the bars. Only applied when the orientation is vertical. By default bars go \"up\" but can go \"down\".\n * They can also go both ways in which case you need to indicates which category go which direction. The concatenation of the two arrays will be used to determine the order of the categories instead of the sortingMethod prop.\n */\n direction?: BarDirection;\n /** Component to use if the chart is empty (replacing the default one). */\n emptyComponent?: ReactNode;\n /** Method used to define the anchor props to use when the bar is a navigation link. */\n getBarAnchorProps?: (datum: BarDatum) => AnchorProps;\n /** Method to determine whether a bar is selected or not. */\n isBarSelected?: (datum: BarDatum) => void;\n /** Method to override the data labels. */\n labelDecorator?: (\n datum: BarDatum,\n props?: { index?: number; isSelected?: boolean; color?: string }\n ) => string | ReactElement;\n /** Method modifying what's displayed within the legend when the legendVariant is \"custom\". */\n legendDecorator?: (\n datum: BarDatum,\n props?: { index?: number; isSelected?: boolean; color?: string }\n ) => string | ReactElement;\n /** Define whether the labels should be displayed inside or outside the charts and if they should contain raw or percentage values. If set to \"custom\", use `legendDecorator` to customize it. */\n legendVariant?: BarChartLegendVariant;\n /** Props to forward to the Legend block. Can be used to make the legend selectable. */\n legendProps?: Omit<LegendProps, 'data' | 'ref' | 'variant' | 'width'> & { extraLegendItems?: Statistics };\n /** Labels and texts. */\n localeText?: LocaleText;\n /** Custom margins, used to give more space for axes labels and legend for instance. */\n margins?: MarginProps;\n /** Method to be called on a click on a bar. For a navigation link, please use `getBarAnchorProps` instead. */\n onBarClick?: (datum: BarDatum, data: BarDatum[]) => void;\n /** Orientation of the bar. */\n orientation?: BarOrientation;\n /** Whether a category should be displayed for categories that has been removed by the caping option. Optionaly, this prop can be used to change the label of this category. */\n others?: boolean | string;\n /** BarChart size. */\n size?: ChartSize | BarChartDimensions;\n /** Define how to sort categories. */\n sortingMethod?: SortingMethod;\n /** Method modifying what's displayed within the tooltip when the tooltipVariant is \"custom\". */\n tooltipDecorator?: (\n data: BarDatum,\n props?: { index?: number; isSelected?: boolean; color?: string },\n dataset?: ComputedBarProps[],\n groupedData?: ComputedBarProps[]\n ) => string | ReactElement;\n /** Tooltip variant. */\n tooltipVariant?: TooltipVariant | 'grouped';\n /** Theme. */\n theme?: Theme;\n /** X-scale type override to skip x-scale type inferrence. */\n xScaleType?: XScaleType;\n /**\n * In case of a datetime x-axis, if the xAxisTickValues prop is passed with a d3.js method having an offset function (for instance `timeDay`), the following prop will be used as argument.\n * For reference, the line of code using it is: xAxisTickValues.offset(new Date(domain[0]), xAxisStartDateOffset)\n */\n xAxisStartDateOffset?: number;\n /**\n * In case of a datetime x-axis, if the xAxisTickValues prop is passed with a d3.js method having an offset function (for instance `timeDay`), the following prop will be used as argument.\n * For reference, the line of code using it is: xAxisTickValues.offset(new Date(domain[1]), xAxisEndDateOffset)\n */\n xAxisEndDateOffset?: number;\n /** If set, the Y axis will use a logarithmic scale using this base. Set this value to 10 to use a default logarithmic scale. */\n yScaleLogBase?: number;\n}\n\nexport type StyledBarChartProps = BarChartProps & {};\n\nexport interface RenderedLinearBarChartProps extends Omit<BarChartProps, 'data' | 'caping' | 'orientation' | 'others'> {\n data: LinearData | TwoCategoryData;\n}\nexport interface ComputedBarProps {\n category: string;\n key: LinearDim;\n value: number;\n cumulativeValue: number;\n}\n\nexport interface BarChartState\n extends ChartAxesProps,\n Required<Pick<RenderedLinearBarChartProps, 'margins'>>,\n Pick<\n RenderedLinearBarChartProps,\n | 'barProps'\n | 'barRole'\n | 'colorTheme'\n | 'direction'\n | 'disableAnimations'\n | 'getBarAnchorProps'\n | 'id'\n | 'isBarSelected'\n | 'labelDecorator'\n | 'onBarClick'\n | 'tooltipVariant'\n | 'tooltipDecorator'\n > {\n bars: ComputedBarProps[];\n barWidth: number;\n cache: React.MutableRefObject<LinearData | TwoCategoryData | undefined>;\n categories: string[];\n chartHeight: number;\n chartWidth: number;\n colorScale?: d3ScaleOrdinal<string, string>;\n format: FormatMessage;\n gap: number;\n hasCategory: boolean;\n scaleX: d3ScaleLinear<number, number, never> | d3ScaleTime<number, number, never> | d3ScalePoint<string>;\n scaleY: d3ScaleLinear<number, number>;\n sectionHeight?: number;\n xScaleType?: XScaleType;\n}\n\nexport interface BarChartSectionProps extends Omit<ComponentProps<'g'>, 'onClick' | 'role' | 'color'> {\n /** Starting point in percentage of the chart height. */\n from?: number;\n /** Ending point in percentage of the chart height. */\n to?: number;\n /** Color. */\n color?:\n | 'red'\n | 'green'\n | {\n textColor: string;\n backgroundColor?: string;\n };\n /** Section title */\n title?: string;\n /** Title position relative to section */\n titlePosition?: 'left' | 'center' | 'right';\n scaleX?: d3ScaleLinear<number, number, never> | d3ScaleTime<number, number, never> | d3ScalePoint<string>;\n scaleY?: d3ScaleLinear<number, number, never>;\n direction?: BarDirection;\n /** Regions for highlighting a specific area by changing the background color. Only works with datestrings for X axis. */\n regions?: { from: string; to: string; color: string; opacity?: number }[];\n}\n\nexport interface StyledBarChartSectionProps {\n $theme: Theme;\n $textColor: string;\n}\n\nexport interface BarChartBarsProps extends Omit<ComponentProps<'g'>, 'onClick' | 'role'> {\n category?: string;\n}\n\nexport type StyledBarChartBarsProps = Omit<BarChartBarsProps, 'category'> & {};\n\nexport interface BarChartOverlayProps extends Omit<ComponentProps<'g'>, 'onClick' | 'role'> {\n from?: number;\n to?: number;\n}\n\nexport type StyledBarChartOverlayProps = Omit<BarChartOverlayProps, 'category'> & {};\n","import styled, { css } from 'styled-components';\nimport { StyledBarChartProps, StyledBarChartSectionProps, StyledBarChartBarsProps } from './types';\nimport { ChartContainer } from '../ChartContainer';\nimport { Theme } from '@redsift/design-system';\n\n/**\n * Component style.\n */\nexport const StyledBarChart = styled(ChartContainer)<StyledBarChartProps>``;\n\nexport const StyledBarChartSection = styled.g<StyledBarChartSectionProps>`\n text.colored {\n ${({ $textColor }) => css`\n fill: ${$textColor};\n `}\n }\n\n .title {\n font-size: 16px;\n font-weight: 600;\n }\n`;\n\nexport const StyledBarChartBars = styled.g<StyledBarChartBarsProps>``;\n\nexport const StyledBarChartOverlay = styled.g<StyledBarChartBarsProps>`\n .redsift-overlay-bar:hover rect {\n fill: rgba(0, 0, 0, 0.1);\n }\n`;\n\nexport const StyledBarChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $theme: Theme;\n}>`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n pointer-events: none;\n\n > * {\n max-width: ${({ $maxWidth }) => $maxWidth}px;\n }\n\n > span {\n font-family: var(--redsift-typography-font-family-poppins);\n color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-text-primary)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n","import { SortingMethod, getSortingMethod } from '@redsift/charts/utils';\nimport { ChartSize, LinearData, LinearDatum, Statistics, TwoCategoryData, TwoCategoryDatum } from '../../types';\nimport { BarChartDimensions } from './types';\n\nexport const sizeToDimension = (size: ChartSize | BarChartDimensions): BarChartDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return { width: 300, height: 200, fontSize: 30 };\n case ChartSize.large:\n return { width: 500, height: 400, fontSize: 38 };\n case ChartSize.medium:\n default:\n return { width: 400, height: 300, fontSize: 34 };\n }\n};\n\nexport const statsBy: (arr: LinearData | TwoCategoryData, sortingMethod: SortingMethod) => Statistics = (\n arr,\n sortingMethod\n) => {\n const isKeyArray = Array.isArray(arr[0].key);\n\n const counts = (arr as (LinearDatum | TwoCategoryDatum)[]).reduce((prev, curr) => {\n if (!curr.value) {\n return prev;\n }\n const currentKey = isKeyArray ? ((curr as TwoCategoryDatum).key[1] as string) : 'default';\n if (!prev[currentKey as string]) {\n prev[currentKey as string] = {\n value: curr.value,\n min: curr.value,\n max: curr.value,\n values: [curr.value],\n };\n } else {\n prev[currentKey as string] = {\n value: prev[currentKey as string].value + curr.value,\n min: Math.min(prev[currentKey as string].min, curr.value),\n max: Math.max(prev[currentKey as string].max, curr.value),\n values: [...prev[currentKey as string].values, curr.value],\n };\n }\n return prev;\n }, {} as Record<string, { value: number; min: number; max: number; values: number[] }>);\n\n return Object.keys(counts)\n .map((key) => ({\n key: key,\n value: counts[key].value,\n min: counts[key].min,\n max: counts[key].max,\n values: counts[key].values,\n first: counts[key].values[0],\n last: counts[key].values[counts[key].values.length - 1],\n trending: {\n overall:\n ((counts[key].values[counts[key].values.length - 1] - counts[key].values[0]) * 100) / counts[key].values[0],\n },\n }))\n .sort(getSortingMethod(sortingMethod));\n};\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport { scaleLinear as d3scaleLinear, ScaleLinear as d3ScaleLinear } from 'd3';\n\nimport { AnyScale } from '../../types';\nimport { BarChartProps } from './types';\nimport { StyledBarChart, StyledBarChartEmptyText } from './styles';\nimport { Axis } from '../Axis';\nimport { sizeToDimension } from './utils';\nimport { useTheme } from '@redsift/design-system';\n\nexport const EmptyBarChart = forwardRef<HTMLDivElement, BarChartProps>((props, ref) => {\n const { className, emptyComponent, size, localeText, ...forwardedProps } = props;\n const theme = useTheme();\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: 16, right: 16, bottom: 32 };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n\n const scaleRef = useRef<d3ScaleLinear<number, number>>();\n if (!scaleRef.current) {\n scaleRef.current = d3scaleLinear().domain([]).range([0, chartWidth]);\n }\n\n return (\n <StyledBarChart {...forwardedProps} className={className} ref={ref as RefObject<HTMLDivElement>}>\n {emptyComponent ?? (\n <>\n <StyledBarChartEmptyText $maxWidth={width} $textSize={chartDimensions.fontSize / 2} $theme={theme}>\n <span>{localeText?.emptyChartText}</span>\n </StyledBarChartEmptyText>\n <svg width={width} height={height}>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <Axis\n position=\"bottom\"\n length={chartWidth}\n scale={scaleRef.current as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={4}\n />\n </g>\n </svg>\n </>\n )}\n </StyledBarChart>\n );\n});\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { BarChartProps } from './types';\nimport { StyledBarChart } from './styles';\n\nexport const LoadingBarChart = forwardRef<HTMLDivElement, BarChartProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledBarChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledBarChart>\n );\n }\n);\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { createContext, useContext } from 'react';\nimport { BarChartState } from './types';\n\nexport const BarChartContext = createContext<BarChartState | null>(null);\n\nexport function useBarChartContext() {\n const context = useContext(BarChartContext);\n if (!context) {\n throw new Error('useBarChartContext must be used within a BarChart');\n }\n return context;\n}\n","import React from 'react';\nimport { useBarChartContext } from '../BarChart/context';\n\nexport type ChartType = 'bar' | 'line' | 'area';\n\nexport const ChartTypeContext = React.createContext<ChartType | undefined>(undefined);\n\nexport const useChartType = (): ChartType | undefined => {\n return React.useContext(ChartTypeContext);\n};\n\nexport const useResolvedChartContext = () => {\n const chartType = useChartType();\n\n switch (chartType) {\n case 'bar':\n return useBarChartContext();\n default:\n return undefined;\n }\n};\n\nexport function useResolvedProp<T>(prop: T | undefined, contextValue: T | undefined, defaultValue?: T): T | undefined {\n if (prop !== undefined) return prop;\n if (contextValue !== undefined) return contextValue;\n return defaultValue;\n}\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef } from 'react';\nimport {\n scaleLinear as d3scaleLinear,\n ScaleLinear as d3ScaleLinear,\n scaleBand as d3scaleBand,\n ScaleBand as d3ScaleBand,\n sum as d3sum,\n} from 'd3';\n\nimport { useTheme, useMessageFormatter } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport { AnyScale, CategoryData } from '../../types';\nimport { BarChartProps, BarChartState } from './types';\nimport { StyledBarChart } from './styles';\nimport { Bar, BarOrientation } from '../Bar';\nimport { Axis, AxisVariant } from '../Axis';\nimport { useFormatCategoricalData } from '../../hooks';\nimport { sizeToDimension } from './utils';\nimport { BarChartContext } from './context';\nimport { ChartTypeContext } from '../ChartContainer/context';\n\ninterface RenderedOrdinalBarChartProps extends Required<Pick<BarChartProps, 'data'>>, Omit<BarChartProps, 'data'> {}\n\nexport const RenderedOrdinalBarChart = forwardRef<HTMLDivElement, RenderedOrdinalBarChartProps>((props, ref) => {\n const {\n areXLabelsRotated,\n barProps,\n caping,\n className,\n data: propsData,\n disableAnimations,\n id,\n isBarSelected,\n getBarAnchorProps,\n labelDecorator,\n margins: propsMargins,\n onBarClick,\n orientation,\n others,\n size,\n sortingMethod,\n barRole,\n colorTheme,\n tooltipVariant,\n xAxisVariant: propsXAxisVariant,\n xAxisPlacement,\n xAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n yAxisVariant: propsYAxisVariant,\n yAxisPlacement,\n yAxisTickFormat,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickValues,\n ...forwardedProps\n } = props;\n\n const cache = useRef<CategoryData>();\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const { data, colorScale } = useFormatCategoricalData({\n data: propsData as CategoryData,\n colorTheme: colorTheme!,\n sortingMethod: sortingMethod!,\n caping,\n others,\n theme,\n });\n\n useEffect(() => {\n cache.current = data;\n });\n\n const isHorizontal = orientation === BarOrientation.horizontal;\n const xAxisVariant = propsXAxisVariant\n ? propsXAxisVariant\n : isHorizontal\n ? AxisVariant.default\n : AxisVariant.tickValue;\n const yAxisVariant = propsYAxisVariant ? propsYAxisVariant : isHorizontal ? AxisVariant.none : AxisVariant.default;\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: isHorizontal ? 16 : 64, right: 16, bottom: 32, ...propsMargins };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n const numberOfRows = data.filter((datum) => datum.value).length;\n const gap = 5;\n\n const barHeight = chartHeight / numberOfRows - gap;\n const barWidth = chartWidth / numberOfRows - gap;\n const total = d3sum(data, (d) => d.value);\n\n const scale = useMemo<d3ScaleLinear<number, number>>(\n () =>\n d3scaleLinear()\n .domain([0, Math.max(...data.map(({ value }) => value))])\n .range(isHorizontal ? [0, chartWidth] : [chartHeight, 0]),\n [size]\n );\n const scaleCategory = useMemo<d3ScaleBand<string>>(\n () =>\n d3scaleBand()\n .domain(data.filter((datum) => datum.value).map((datum) => datum.key))\n .range([0, isHorizontal ? chartHeight : chartWidth]),\n [size]\n );\n\n const bars = data.filter((datum) => datum.value);\n\n return (\n <ChartTypeContext.Provider value=\"bar\">\n <BarChartContext.Provider value={{} as BarChartState}>\n <StyledBarChart\n mode={typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={format('definition-ordinal', { barLength: bars.length })}\n xAxisDefinition={\n isHorizontal\n ? format('x-axis-numbers-definition', {\n numAxis: xAxisPlacement === 'both' ? 2 : 1,\n start: scale.domain()[0],\n end: scale.domain()[1],\n })\n : format('x-axis-categories-definition', { numAxis: xAxisPlacement === 'both' ? 2 : 1 })\n }\n yAxisDefinition={\n isHorizontal\n ? format('y-axis-categories-definition', { numAxis: yAxisPlacement === 'both' ? 2 : 1 })\n : format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: scale.domain()[0],\n end: scale.domain()[1],\n })\n }\n dataTableRepresentation={{\n header: (\n <thead>\n <tr>\n <th scope=\"col\">Key</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {bars.map((datum) => (\n <tr key={datum.key}>\n <th scope=\"row\">{datum.key}</th>\n <td>{datum.value}</td>\n </tr>\n ))}\n </tbody>\n ),\n }}\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <svg\n width={width}\n height={height}\n aria-label={\n typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n aria-hidden=\"false\"\n >\n <g transform={`translate(${margins.left},${margins.top})`}>\n {['bottom', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"bottom\"\n length={chartWidth}\n scale={isHorizontal ? (scale as AnyScale) : (scaleCategory as AnyScale)}\n x={0}\n y={chartHeight}\n tickValues={xAxisTickValues ?? 4}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n variant={xAxisVariant}\n />\n ) : null}\n {['top', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"top\"\n length={chartWidth}\n scale={isHorizontal ? (scale as AnyScale) : (scaleCategory as AnyScale)}\n x={0}\n y={0}\n tickValues={xAxisTickValues ?? 4}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation ? xAxisTickRotation : areXLabelsRotated ? -45 : 0}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n variant={xAxisVariant}\n />\n ) : null}\n {['left', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"left\"\n length={chartHeight}\n scale={isHorizontal ? (scaleCategory as AnyScale) : (scale as AnyScale)}\n x={0}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 4}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n variant={yAxisVariant}\n />\n ) : null}\n {['right', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"right\"\n length={chartHeight}\n scale={isHorizontal ? (scaleCategory as AnyScale) : (scale as AnyScale)}\n x={chartWidth}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 4}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n variant={yAxisVariant}\n />\n ) : null}\n </g>\n <g transform={`translate(${margins.left},${margins.top})`}>\n {bars.map((datum, index) => {\n const percent = datum.value / total;\n const to = {\n data: {\n ...datum,\n percent,\n },\n };\n const from = cache.current ? { data: cache.current[index] } : undefined;\n\n return (\n <Bar\n color={colorScale?.(to.data.key)!}\n data={to}\n dataset={bars}\n disableAnimations={disableAnimations}\n gap={gap}\n id={`id${id}__bar-${index}`}\n index={index}\n isSelected={Boolean(isBarSelected!(to))}\n key={`bar _${index}`}\n labelDecorator={labelDecorator}\n maxHeight={isHorizontal ? undefined : chartHeight}\n anchorProps={getBarAnchorProps ? getBarAnchorProps(to) : undefined}\n onClick={onBarClick}\n orientation={orientation}\n previousData={from!}\n scale={scale!}\n scalePosition={scaleCategory}\n tooltipVariant={tooltipVariant}\n {...barProps}\n width={\n isHorizontal\n ? undefined\n : barProps?.width && typeof barProps.width === 'number'\n ? barProps.width\n : barWidth\n }\n height={\n isHorizontal\n ? barProps?.height && typeof barProps.height === 'number'\n ? barProps.height\n : barHeight\n : undefined\n }\n role={barRole}\n />\n );\n })}\n </g>\n </svg>\n </StyledBarChart>\n </BarChartContext.Provider>\n </ChartTypeContext.Provider>\n );\n});\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { Comp, Flexbox, Text } from '@redsift/design-system';\n\nimport { BarChartBarsProps, ComputedBarProps } from './types';\nimport { StyledBarChartBars } from './styles';\nimport { useBarChartContext } from './context';\nimport { BarDatum } from '../../types';\nimport { Bar, BarOrientation } from '../Bar';\n\nconst COMPONENT_NAME = 'BarChartBars';\nconst CLASSNAME = 'redsift-barchart-bars';\n\nexport const BarChartBars: Comp<BarChartBarsProps, SVGGElement> = forwardRef((props, ref) => {\n const { category = 'default', ...forwardedProps } = props;\n\n const {\n barProps,\n barRole,\n bars,\n barWidth,\n cache,\n categories,\n colorScale,\n direction,\n disableAnimations,\n format,\n gap,\n getBarAnchorProps,\n hasCategory,\n id,\n isBarSelected,\n labelDecorator,\n onBarClick,\n scaleX,\n scaleY,\n tooltipVariant,\n tooltipDecorator,\n xScaleType,\n } = useBarChartContext();\n\n const filteredBarChartBars = bars.filter((bar) => bar.category === category && bar.value > 0);\n const categoryIndex = categories.indexOf(category);\n const categoryLength = categories.length;\n\n return (\n <StyledBarChartBars\n key={`${id}-series-${category}`}\n aria-hidden=\"false\"\n role=\"region\"\n {...(hasCategory\n ? {\n 'aria-label': format('series-legend', {\n category,\n categoryIndex: categoryIndex + 1,\n categoryLength,\n barLength: filteredBarChartBars.length,\n }),\n }\n : {})}\n {...forwardedProps}\n ref={ref as RefObject<SVGGElement>}\n >\n {filteredBarChartBars.map((bar, index: number) => {\n const to = {\n data: bar,\n category,\n };\n const from = cache.current ? { data: cache.current[index] } : undefined;\n\n const groupedBars = bars.filter((b) => {\n return xScaleType === 'Date' || xScaleType === 'dateString'\n ? (b.key as Date).getTime() === (bar.key as Date).getTime()\n : b.key === bar.key;\n });\n\n return [\n <Bar\n color={colorScale?.(to.data.category)!}\n data={to as BarDatum}\n dataset={bars}\n groupedData={groupedBars}\n disableAnimations={disableAnimations}\n gap={gap}\n id={`id${id}__bar-${categoryIndex}.${index}`}\n index={index}\n isSelected={Boolean(isBarSelected!(to as BarDatum))}\n key={`bar _${categoryIndex}.${index}`}\n labelDecorator={labelDecorator}\n maxHeight={scaleY(bar.cumulativeValue - bar.value)}\n anchorProps={getBarAnchorProps ? getBarAnchorProps(to) : undefined}\n onClick={onBarClick}\n orientation={BarOrientation.vertical}\n direction={direction}\n previousData={from! as BarDatum}\n scale={scaleY}\n scalePosition={scaleX}\n tooltipVariant={tooltipVariant}\n tooltipDecorator={tooltipDecorator}\n {...barProps}\n width={barProps?.width && typeof barProps.width === 'number' ? barProps.width : barWidth}\n height={undefined}\n role={barRole}\n />,\n ];\n })}\n </StyledBarChartBars>\n );\n});\n\nBarChartBars.className = CLASSNAME;\nBarChartBars.displayName = COMPONENT_NAME;\n\nexport const BarChartGroupedTooltip: React.FC<{\n dateFormatter: (date: Date) => string;\n categories: string[];\n categoryDecorator?: (category: string) => string;\n categoryColor: (category: string) => string;\n datum: BarDatum;\n groupedData: ComputedBarProps[] | undefined;\n}> = ({ dateFormatter, categories, categoryDecorator, categoryColor, datum, groupedData }) => {\n const { format } = useBarChartContext();\n\n return (\n <Flexbox flexDirection=\"column\" margin=\"16px\" gap=\"0\">\n <Flexbox flexDirection=\"row\" gap=\"8px\">\n <Text fontWeight=\"700\" fontSize=\"14px\">\n {dateFormatter(datum.data.key as Date)}\n </Text>\n </Flexbox>\n <div style={{ width: '100%', height: '1px', backgroundColor: '#858585', margin: '8px 0' }} />\n <Flexbox flexDirection=\"row\" gap=\"8px\">\n <Text fontWeight=\"400\" fontSize=\"14px\">\n {format('total')}\n </Text>\n <Text fontWeight=\"600\" fontSize=\"14px\">\n {groupedData?.reduce((acc, d) => acc + d.value, 0)}\n </Text>\n </Flexbox>\n <Flexbox flexDirection=\"column\" marginTop=\"4px\" gap=\"8px\">\n {categories.map((category) => {\n const value = groupedData?.find((d) => d.category === category)?.value;\n const color = categoryColor(category);\n return value ? (\n <Flexbox key={category} alignItems=\"center\" gap=\"8px\">\n <div style={{ width: '16px', height: '16px', backgroundColor: color }} />\n <Text fontWeight=\"400\" fontSize=\"14px\" lineHeight=\"18px\">\n {categoryDecorator ? categoryDecorator(category) : category}\n </Text>\n <Text fontWeight=\"600\" fontSize=\"14px\" lineHeight=\"18px\">\n {value}\n </Text>\n </Flexbox>\n ) : null;\n })}\n </Flexbox>\n </Flexbox>\n );\n};\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef } from 'react';\nimport {\n extent as d3extent,\n scaleLinear as d3scaleLinear,\n scaleLog as d3scaleLog,\n scalePoint as d3scalePoint,\n scaleUtc as d3scaleUtc,\n ScaleTime as d3ScaleTime,\n utcParse as d3utcParse,\n ScaleLinear as d3ScaleLinear,\n} from 'd3';\n\nimport { Flexbox, useTheme, useMessageFormatter, isComponent } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport {\n AnyScale,\n BarDatum,\n LegendItemDatum,\n LegendVariant,\n LinearData,\n LinearDatum,\n LinearDim,\n TwoCategoryData,\n TwoCategoryDatum,\n} from '../../types';\nimport { BarChartLegendVariant, ComputedBarProps, RenderedLinearBarChartProps, XScaleType } from './types';\nimport { StyledBarChart } from './styles';\nimport { BarDirection } from '../Bar';\nimport { Axis, AxisVariant, getAxisType } from '../Axis';\nimport { sizeToDimension, statsBy } from './utils';\nimport { getSortingMethod, isValidDate, mergeLegends } from '../../utils';\nimport { useColor } from '../../hooks';\nimport { BarChartContext } from './context';\nimport { ChartTypeContext } from '../ChartContainer/context';\nimport { BarChartBars } from './BarChartBars';\nimport { Legend } from '../Legend';\n\nexport const COMPONENT_TYPES = {\n AXES: 'Axis',\n SECTIONS: 'BarChartSection',\n OVERLAY: 'BarChartOverlay',\n BARS: 'BarChartBars',\n LEGENDS: 'Legend',\n} as const;\n\nexport const getComponentPosition = (child: React.ReactNode) => {\n if (!React.isValidElement(child)) return null;\n\n const displayName = (child.type as any)?.displayName;\n\n if (COMPONENT_TYPES.AXES === displayName) return 'axes';\n if (COMPONENT_TYPES.SECTIONS === displayName) return 'sections';\n if (COMPONENT_TYPES.OVERLAY === displayName) return 'columns';\n if (COMPONENT_TYPES.BARS === displayName) return 'bars';\n if (COMPONENT_TYPES.LEGENDS === displayName) return 'legend';\n\n return null;\n};\n\nconst getKey = (datum: LinearDatum | TwoCategoryDatum) => (Array.isArray(datum.key) ? datum.key[0] : datum.key);\n\nconst filterData = (hasCategory: boolean, data: LinearData | TwoCategoryData, filterFn: any) => {\n if (hasCategory) {\n return (data as TwoCategoryData).filter(filterFn);\n }\n return (data as LinearData).filter(filterFn);\n};\n\nconst reduceData = (hasCategory: boolean, data: LinearData | TwoCategoryData, reduceFn: any, initialValue: any) => {\n if (hasCategory) {\n return (data as TwoCategoryData).reduce(reduceFn, initialValue) as any;\n }\n return (data as LinearData).reduce(reduceFn, initialValue) as any;\n};\n\nconst isSameKey = (key: LinearDim, previousKey: LinearDim, xScaleType: XScaleType) =>\n xScaleType === 'Date' || xScaleType === 'dateString'\n ? (key as Date).getTime() === (previousKey as Date).getTime()\n : key === previousKey;\n\nexport const RenderedLinearBarChart = forwardRef<HTMLDivElement, RenderedLinearBarChartProps>((props, ref) => {\n const {\n barProps,\n children,\n className,\n data: propsData,\n direction = BarDirection.up,\n disableAnimations,\n id,\n getBarAnchorProps,\n isBarSelected,\n labelDecorator,\n legendDecorator,\n legendVariant,\n legendProps,\n margins: propsMargins,\n onBarClick,\n size,\n sortingMethod: propsSortingMethod,\n barRole,\n colorTheme,\n tooltipVariant,\n tooltipDecorator,\n xAxisVariant: propsXAxisVariant,\n xAxisPlacement,\n xAxisTickFormat: propsXAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n xAxisMinValue,\n xAxisMaxValue,\n xAxisTickRemodelling,\n xAxisStartDateOffset = -1,\n xAxisEndDateOffset = 1,\n yAxisVariant: propsYAxisVariant,\n yAxisPlacement,\n yAxisTickFormat,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickValues,\n yAxisMinValue,\n yAxisMaxValue,\n yAxisTickRemodelling,\n xScaleType: propsXScaleType,\n yScaleLogBase,\n dateParser,\n ...forwardedProps\n } = props;\n\n const cache = useRef<LinearData | TwoCategoryData>();\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const hasCategory =\n propsData[0] &&\n Array.isArray(propsData[0].key) &&\n propsData[0].key.length >= 2 &&\n propsData[0].key[1] !== null &&\n propsData[0].key[1] !== undefined;\n\n const sections = useMemo(() => {\n const sectionList: string[][] = [];\n\n React.Children.forEach(children, (child) => {\n if (isComponent('BarChartSection')(child)) {\n const categories = React.Children.toArray(child.props.children)\n .filter((c) => isComponent('BarChartBars')(c))\n .map((c) => (c as React.ReactElement).props.category);\n\n sectionList.push(categories);\n }\n });\n\n return sectionList;\n }, [children]);\n\n const hasSections = sections.length > 0;\n const sortingMethod = hasSections ? sections.flat() : propsSortingMethod;\n\n const xScaleType: XScaleType = propsXScaleType\n ? propsXScaleType\n : getKey(propsData[0]) instanceof Date\n ? 'Date'\n : typeof getKey(propsData[0]) === 'number'\n ? 'number'\n : typeof getKey(propsData[0]) === 'string' && isValidDate(getKey(propsData[0]) as string)\n ? 'dateString'\n : undefined;\n\n const data =\n xScaleType === 'number'\n ? filterData(\n hasCategory,\n propsData,\n (datum: LinearDatum | TwoCategoryDatum) => typeof getKey(datum) === 'number' && !Number.isNaN(getKey(datum))\n )\n : xScaleType === 'dateString'\n ? filterData(hasCategory, propsData, (datum: LinearDatum | TwoCategoryDatum) =>\n isValidDate(getKey(datum) as string)\n )\n : xScaleType === 'Date'\n ? filterData(hasCategory, propsData, (datum: LinearDatum | TwoCategoryDatum) => getKey(datum) instanceof Date)\n : propsData;\n\n useEffect(() => {\n cache.current = data;\n });\n\n const svgRef = useRef<SVGSVGElement>();\n\n const xAxisVariant = propsXAxisVariant ? propsXAxisVariant : AxisVariant.tickValue;\n const yAxisVariant = propsYAxisVariant ? propsYAxisVariant : AxisVariant.default;\n\n const chartDimensions = sizeToDimension(size!);\n const width = Math.max(\n Math.min(chartDimensions.width, chartDimensions.maxWidth ?? Infinity),\n chartDimensions.minWidth ?? -Infinity\n );\n const height = chartDimensions.height;\n const margins = {\n top: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8,\n left: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,\n right: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,\n bottom: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8,\n ...propsMargins,\n };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n const numberOfBars = filterData(hasCategory, data, (datum: LinearDatum | TwoCategoryDatum) => datum.value).length;\n const gap = 5;\n\n let barWidth = chartWidth / (numberOfBars * 2) - gap;\n\n const scaleX = (() => {\n if (xScaleType === 'number') {\n const domain = d3extent<LinearDatum | TwoCategoryDatum, number>(data, (d) => getKey(d) as number) as [\n number,\n number\n ];\n domain[0] = (xAxisMinValue as number) ?? domain[0];\n domain[1] = (xAxisMaxValue as number) ?? domain[1];\n const gap = domain[1] - domain[0];\n domain[0] -= gap * 0.1;\n domain[1] += gap * 0.1;\n return d3scaleLinear().domain(domain).range([0, chartWidth]).nice();\n } else if (xScaleType === 'dateString' || xScaleType === 'Date') {\n const domain =\n xScaleType === 'dateString'\n ? (d3extent<LinearDatum | TwoCategoryDatum, number>(data, (d) => Date.parse(getKey(d) as string)) as [\n number,\n number\n ])\n : (d3extent<LinearDatum | TwoCategoryDatum, number>(data, (d) => (getKey(d) as Date).valueOf()) as [\n number,\n number\n ]);\n domain[0] = (xAxisMinValue as number) ?? domain[0];\n domain[1] = (xAxisMaxValue as number) ?? domain[1];\n const startDate =\n xAxisTickValues && typeof xAxisTickValues === 'function' && typeof xAxisTickValues.offset === 'function'\n ? xAxisTickValues.offset(new Date(domain[0]), xAxisStartDateOffset)\n : new Date(domain[0]);\n const endDate =\n xAxisTickValues && typeof xAxisTickValues === 'function' && typeof xAxisTickValues.offset === 'function'\n ? xAxisTickValues.offset(new Date(domain[1]), xAxisEndDateOffset)\n : new Date(domain[1]);\n\n return barProps?.width && typeof barProps.width === 'number'\n ? d3scaleUtc()\n .domain([startDate, endDate])\n .range([barProps.width / 2 + 10, chartWidth - (barProps.width / 2 + 5)])\n : d3scaleUtc()\n .domain([startDate, endDate])\n .range([barWidth, chartWidth - barWidth])\n .nice();\n } else {\n const domain =\n xAxisTickValues && Array.isArray(xAxisTickValues)\n ? (xAxisTickValues as string[])\n : data.map((d) => getKey(d) as string);\n domain[0] = (xAxisMinValue as string) ?? domain[0];\n domain[1] = (xAxisMaxValue as string) ?? domain[1];\n return d3scalePoint().domain(domain).range([0, chartWidth]);\n }\n })();\n\n const xAxisTickFormat =\n propsXAxisTickFormat ??\n (xScaleType === 'Date' || xScaleType === 'dateString'\n ? (scaleX as d3ScaleTime<number, number, never>).tickFormat()\n : undefined);\n\n const statsByCategory = statsBy(data as LinearData | TwoCategoryData, sortingMethod!);\n const colorScale = useColor({\n data: statsByCategory,\n colorTheme: colorTheme!,\n category: (d) => d.key as string,\n theme,\n });\n\n const bars: ComputedBarProps[] = reduceData(\n hasCategory,\n filterData(\n hasCategory,\n data.sort((a, b) => {\n const currentKeyA = hasCategory ? (a as TwoCategoryDatum).key[0] : (a as LinearDatum).key;\n const currentKeyB = hasCategory ? (b as TwoCategoryDatum).key[0] : (b as LinearDatum).key;\n if (xScaleType === 'number') {\n if (currentKeyA < currentKeyB) return -1;\n if (currentKeyA > currentKeyB) return 1;\n } else if (xScaleType === 'dateString') {\n if (Date.parse(currentKeyA as string) < Date.parse(currentKeyB as string)) return -1;\n if (Date.parse(currentKeyA as string) > Date.parse(currentKeyB as string)) return 1;\n } else if (xScaleType === 'Date') {\n if ((currentKeyA as Date).valueOf() < (currentKeyB as Date).valueOf()) return -1;\n if ((currentKeyA as Date).valueOf() > (currentKeyB as Date).valueOf()) return 1;\n } else if (xScaleType === 'string' && xAxisTickValues && Array.isArray(xAxisTickValues)) {\n if (xAxisTickValues.indexOf(currentKeyA) < xAxisTickValues.indexOf(currentKeyB)) return -1;\n if (xAxisTickValues.indexOf(currentKeyA) > xAxisTickValues.indexOf(currentKeyB)) return 1;\n }\n return hasCategory\n ? getSortingMethod(sortingMethod ?? 'asc-key')(\n { key: (a as TwoCategoryDatum).key[1]!, value: a.value! },\n { key: (b as TwoCategoryDatum).key[1]!, value: b.value! }\n )\n : 0;\n }),\n (d: LinearDatum | TwoCategoryDatum) => d.value !== null\n ),\n (previousValue: ComputedBarProps[], currentValue: LinearDatum | TwoCategoryDatum, currentIndex: number) => {\n const currentKeyD = hasCategory ? (currentValue as TwoCategoryDatum).key[0] : (currentValue as LinearDatum).key;\n const formattedKeyD =\n xScaleType === 'dateString'\n ? dateParser\n ? dateParser(currentKeyD as string)\n : (d3utcParse('%Y-%m-%d')(currentKeyD as string) as Date)\n : currentKeyD;\n const category = hasCategory ? (currentValue as TwoCategoryDatum).key[1] ?? 'default' : 'default';\n const isSameSection = !hasSections\n ? true\n : (() => {\n const findSectionIndex = (cat: string) => sections.findIndex((section) => section.includes(cat));\n const currentSection = findSectionIndex(category);\n const prevSection = findSectionIndex(previousValue[currentIndex - 1]?.category);\n return currentSection !== -1 && currentSection === prevSection;\n })();\n\n previousValue.push({\n category,\n key: formattedKeyD,\n value: currentValue.value as number,\n cumulativeValue: currentValue.value as number,\n });\n\n if (\n hasCategory &&\n currentIndex > 0 &&\n isSameKey(formattedKeyD, previousValue[currentIndex - 1].key, xScaleType) &&\n isSameSection\n ) {\n previousValue[currentIndex].cumulativeValue =\n previousValue[currentIndex].cumulativeValue + previousValue[currentIndex - 1].cumulativeValue;\n }\n\n return previousValue;\n },\n [] as ComputedBarProps[]\n ).filter((bar: ComputedBarProps) => yScaleLogBase === undefined || bar.cumulativeValue !== 0);\n\n const getScaleY = (\n direction: BarDirection,\n from: number = 0,\n to: number = 1,\n categories: string[] = ['default'],\n hasSectionTitle = false\n ) => {\n const domain = d3extent(\n bars.filter((bar) => categories.includes(bar.category)),\n (d) => d.cumulativeValue as number\n ) as [number, number];\n domain[0] = (yAxisMinValue as number) ?? domain[0];\n domain[1] = (yAxisMaxValue as number) ?? domain[1] * (hasSectionTitle ? 1.2 : 1);\n if (domain[1] === 0 && domain[0] === 0) {\n domain[1] = 1;\n }\n return (yScaleLogBase ? d3scaleLog().clamp(true).base(yScaleLogBase) : d3scaleLinear())\n .domain(domain)\n .range(\n direction === 'down' ? [0, chartHeight * to - chartHeight * from] : [chartHeight * to - chartHeight * from, 0]\n )\n .nice();\n };\n\n if (xScaleType) {\n const minimalGap =\n Math.min(\n ...(bars\n .map((bar, i) => (i > 0 ? Math.abs((bar.key as number) - (bars[i - 1].key as number)) : undefined))\n .filter((k) => k) as number[])\n ) * 0.9;\n barWidth = Math.min(\n barWidth,\n chartWidth / (((scaleX.domain()[1] as number) - (scaleX.domain()[0] as number)) / minimalGap),\n chartWidth /\n (xAxisTickValues && typeof xAxisTickValues !== 'string'\n ? typeof xAxisTickValues === 'number'\n ? xAxisTickValues\n : Array.isArray(xAxisTickValues)\n ? xAxisTickValues.length\n : xAxisTickValues.range(scaleX.domain()[0] as Date, scaleX.domain()[1] as Date).length\n : 1)\n );\n }\n\n const categories: string[] = sortingMethod && Array.isArray(sortingMethod) ? sortingMethod : [];\n const pivotedTable = bars.reduce((acc, item) => {\n const { key, category, value } = item;\n if (!categories.includes(category)) {\n categories.push(category);\n }\n const formattedKey = xAxisTickFormat ? xAxisTickFormat(key as any) : key.toString();\n\n let entry = acc.find((e) => e.key === formattedKey);\n if (!entry) {\n entry = { key: formattedKey };\n acc.push(entry);\n }\n\n entry[category] = value;\n\n return acc;\n }, [] as Array<Record<string, string | number> & { key: string }>);\n\n const scaleY = getScaleY(direction, 0, 1, categories);\n\n const { extraLegendItems, ...forwardedLegendProps } = legendProps || {};\n\n const {\n axisComponents,\n sectionComponents,\n overlayComponents,\n barsComponents,\n legendComponents,\n titleComponent,\n descriptionComponent,\n multipleScaleY,\n } = useMemo(() => {\n const axisComponents: React.ReactElement[] = [];\n const sectionComponents: React.ReactElement[] = [];\n const overlayComponents: React.ReactElement[] = [];\n const barsComponents: React.ReactElement[] = [];\n const legendComponents: React.ReactElement[] = [];\n let titleComponent: React.ReactElement | undefined;\n let descriptionComponent: React.ReactElement | undefined;\n const multipleScaleY: d3ScaleLinear<number, number, never>[] = [];\n\n React.Children.forEach(children, (child, index) => {\n const position = getComponentPosition(child);\n\n if (isComponent('ChartContainerTitle')(child)) {\n titleComponent = child;\n }\n if (isComponent('ChartContainerDescription')(child)) {\n descriptionComponent = child;\n }\n\n if (!position || !React.isValidElement(child)) return;\n\n let enhancedChild = child;\n\n if (isComponent('BarChartSection')(child)) {\n const categories = React.Children.toArray(child.props.children)\n .filter((c) => isComponent('BarChartBars')(c))\n .map((c) => (c as React.ReactElement).props.category);\n\n const scaleY = getScaleY(\n child.props.direction || 'up',\n child.props.from,\n child.props.to,\n categories,\n child.props.title !== ''\n );\n multipleScaleY.push(scaleY);\n\n enhancedChild = React.cloneElement(child, {\n scaleX: scaleX,\n scaleY: scaleY,\n key: child.key || `section-${child.props.from}-${child.props.to}-${categories.join('-')}`,\n ...child.props,\n });\n }\n\n if (isComponent('Axis')(child)) {\n const isX = getAxisType(child.props.position) === 'x';\n\n enhancedChild = React.cloneElement(child, {\n key: child.key || `axis-${child.props.position}-${index}`,\n chartWidth,\n chartHeight,\n scale: isX ? scaleX : scaleY,\n x: child.props.position === 'right' ? chartWidth : 0,\n y: child.props.position === 'bottom' ? chartHeight : child.props.position === 'top' ? 0 : chartHeight,\n disableAnimations,\n length: isX ? chartWidth : chartHeight,\n tickValues: (isX ? xAxisTickValues : yAxisTickValues) ?? 8,\n tickPadding: isX ? xAxisTickPadding : yAxisTickPadding,\n tickRotation: isX ? xAxisTickRotation : yAxisTickRotation,\n tickSize: isX ? xAxisTickSize : yAxisTickSize,\n tickFormat: isX ? xAxisTickFormat : yAxisTickFormat,\n tickRemodelling: isX ? xAxisTickRemodelling : yAxisTickRemodelling,\n variant: isX ? xAxisVariant : yAxisVariant,\n ...child.props,\n });\n }\n\n if (isComponent('BarChartOverlay')(child)) {\n enhancedChild = React.cloneElement(child, {\n key: child.key || `overlay-${0}-${1}`,\n from: 0,\n to: 1,\n ...child.props,\n });\n }\n\n if (isComponent('Legend')(child)) {\n enhancedChild = React.cloneElement(child, {\n key: child.key || `legend-${index}`,\n data: (extraLegendItems\n ? mergeLegends(extraLegendItems, statsByCategory).sort(getSortingMethod(sortingMethod!))\n : statsByCategory\n ).map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n })),\n ...child.props,\n });\n }\n\n switch (position) {\n case 'axes':\n axisComponents.push(enhancedChild);\n break;\n case 'sections':\n sectionComponents.push(enhancedChild);\n break;\n case 'columns':\n overlayComponents.push(enhancedChild);\n break;\n case 'bars':\n barsComponents.push(enhancedChild);\n break;\n case 'legend':\n legendComponents.push(enhancedChild);\n break;\n }\n });\n\n return {\n axisComponents,\n sectionComponents,\n overlayComponents,\n barsComponents,\n legendComponents,\n titleComponent,\n descriptionComponent,\n multipleScaleY,\n };\n }, [children]);\n\n return (\n <ChartTypeContext.Provider value=\"bar\">\n <BarChartContext.Provider\n value={{\n barProps,\n barRole,\n bars: bars as ComputedBarProps[],\n barWidth,\n cache,\n categories,\n chartHeight,\n chartWidth,\n colorScale,\n direction,\n disableAnimations,\n format,\n gap,\n getBarAnchorProps,\n hasCategory,\n id,\n isBarSelected,\n labelDecorator,\n margins,\n onBarClick,\n scaleX,\n scaleY,\n tooltipVariant,\n tooltipDecorator,\n xAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRemodelling,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n xAxisVariant,\n xScaleType,\n yAxisTickValues,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickFormat,\n yAxisTickRemodelling,\n yAxisVariant,\n }}\n >\n <StyledBarChart\n mode={typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={\n hasCategory\n ? format('definition-linear-with-categories', {\n categoryLength: categories.length,\n barLength: bars.length,\n })\n : format('definition-linear', { barLength: bars.length })\n }\n xAxisDefinition={format(`x-axis-${xScaleType === 'number' ? 'numbers' : 'dates'}-definition`, {\n numAxis: xAxisPlacement === 'both' ? 2 : 1,\n start: xAxisTickFormat ? xAxisTickFormat(scaleX.domain()[0] as any) : scaleX.domain()[0],\n end: xAxisTickFormat ? xAxisTickFormat(scaleX.domain()[1] as any) : scaleX.domain()[1],\n })}\n yAxisDefinition={\n multipleScaleY.length > 0\n ? multipleScaleY\n .map((scale) =>\n format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: (scale as d3ScaleLinear<number, number, never>).domain()[0],\n end: (scale as d3ScaleLinear<number, number, never>).domain()[1],\n })\n )\n .join(' ')\n : format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: (scaleY as d3ScaleLinear<number, number, never>).domain()[0],\n end: (scaleY as d3ScaleLinear<number, number, never>).domain()[1],\n })\n }\n dataTableRepresentation={\n hasCategory\n ? {\n header: (\n <thead>\n <tr>\n <th scope=\"col\">{xScaleType === 'Date' || xScaleType === 'dateString' ? 'Date' : 'Key'}</th>\n {categories.map((category) => (\n <th key={category} scope=\"col\">\n {category}\n </th>\n ))}\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {pivotedTable.map((row) => (\n <tr key={row.key}>\n <th scope=\"row\">{row.key}</th>\n {categories.map((category) => (\n <th key={`${row.key}-${category}-${row[category]}`} scope=\"col\">\n {row[category]}\n </th>\n ))}\n </tr>\n ))}\n </tbody>\n ),\n }\n : {\n header: (\n <thead>\n <tr>\n <th scope=\"col\">{xScaleType === 'Date' || xScaleType === 'dateString' ? 'Date' : 'Key'}</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {bars.map((datum) => {\n const key = xAxisTickFormat ? xAxisTickFormat(datum.key as any) : datum.key.toString();\n return (\n <tr key={key}>\n <th scope=\"row\">{key}</th>\n <td>{datum.value}</td>\n </tr>\n );\n })}\n </tbody>\n ),\n }\n }\n title={titleComponent}\n description={descriptionComponent}\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <Flexbox flexDirection=\"column\" alignItems=\"center\" gap=\"8\">\n <svg\n ref={svgRef as RefObject<SVGSVGElement>}\n width={width}\n height={height}\n aria-label={\n typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n aria-hidden=\"false\"\n >\n {axisComponents.length === 0 && sectionComponents.length === 0 ? (\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {['bottom', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"bottom\"\n length={chartWidth}\n scale={scaleX as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={xAxisTickValues ?? 8}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n tickRemodelling={xAxisTickRemodelling}\n variant={xAxisVariant}\n />\n ) : null}\n {['top', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"top\"\n length={chartWidth}\n scale={scaleX as AnyScale}\n x={0}\n y={0}\n tickValues={xAxisTickValues ?? 8}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n tickRemodelling={xAxisTickRemodelling}\n variant={xAxisVariant}\n />\n ) : null}\n {['left', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"left\"\n length={chartHeight}\n scale={scaleY as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 8}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n tickRemodelling={yAxisTickRemodelling}\n variant={yAxisVariant}\n />\n ) : null}\n {['right', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"right\"\n length={chartHeight}\n scale={scaleY as AnyScale}\n x={chartWidth}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 8}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n tickRemodelling={yAxisTickRemodelling}\n variant={yAxisVariant}\n />\n ) : null}\n </g>\n ) : (\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {axisComponents}\n </g>\n )}\n\n {sectionComponents}\n {overlayComponents}\n\n {barsComponents.length === 0 && sectionComponents.length === 0 ? (\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {(hasSections ? sections : [categories]).map((section) =>\n section.map((category) => <BarChartBars key={category} category={category} />)\n )}{' '}\n </g>\n ) : (\n <g transform={`translate(${margins.left},${margins.top})`} aria-hidden=\"true\">\n {barsComponents}\n </g>\n )}\n </svg>\n </Flexbox>\n {legendComponents.length === 0 && hasCategory && legendVariant !== BarChartLegendVariant.none ? (\n <Legend\n data={(extraLegendItems\n ? mergeLegends(extraLegendItems, statsByCategory).sort(getSortingMethod(sortingMethod!))\n : statsByCategory\n ).map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n }))}\n variant={\n legendVariant === BarChartLegendVariant.externalLabelValue\n ? LegendVariant.value\n : legendVariant === BarChartLegendVariant.externalLabelPercent\n ? LegendVariant.percent\n : legendVariant === BarChartLegendVariant.externalLabel\n ? LegendVariant.label\n : LegendVariant.custom\n }\n legendDecorator={\n legendDecorator\n ? (datum: LegendItemDatum, props) => legendDecorator(datum as unknown as BarDatum, props)\n : undefined\n }\n {...forwardedLegendProps}\n />\n ) : (\n legendComponents\n )}\n </StyledBarChart>\n </BarChartContext.Provider>\n </ChartTypeContext.Provider>\n );\n});\n","import React, { forwardRef, RefObject, useMemo } from 'react';\nimport classNames from 'classnames';\n\nimport {\n Comp,\n isComponent,\n RedsiftColorGreenD1,\n RedsiftColorNeutralBlack,\n RedsiftColorRedD1,\n useTheme,\n} from '@redsift/design-system';\n\nimport { BarChartSectionProps } from './types';\nimport { StyledBarChartSection } from './styles';\nimport { BarChartContext, useBarChartContext } from './context';\nimport { getAxisType } from '../Axis';\n\nconst COMPONENT_NAME = 'BarChartSection';\nconst CLASSNAME = 'redsift-barchart-section';\n\nexport const BarChartSection: Comp<BarChartSectionProps, SVGGElement> = forwardRef((props, ref) => {\n const {\n className,\n from = 0,\n to = 1,\n color,\n title,\n titlePosition = 'center',\n scaleX,\n scaleY,\n children: propsChildren,\n direction,\n regions,\n ...forwardedProps\n } = props;\n\n const { textColor, backgroundColor } = useMemo(() => {\n if (color === 'green') {\n return {\n textColor: RedsiftColorGreenD1,\n backgroundColor: '#F7FBF9',\n };\n } else if (color === 'red') {\n return {\n textColor: RedsiftColorRedD1,\n backgroundColor: '#FFF7F7',\n };\n } else if (color === undefined) {\n return {\n textColor: RedsiftColorNeutralBlack,\n backgroundColor: undefined,\n };\n }\n return color;\n }, [color]);\n\n const theme = useTheme();\n\n const context = useBarChartContext();\n const {\n chartHeight,\n chartWidth,\n margins,\n disableAnimations,\n xAxisTickValues,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickFormat,\n xAxisTickRemodelling,\n xAxisVariant,\n yAxisTickValues,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickFormat,\n yAxisTickRemodelling,\n yAxisVariant,\n } = context;\n\n const sectionHeight = Math.max(0, Math.min(1, to - from)) * chartHeight;\n const sectionY = Math.max(0, Math.min(1, from)) * chartHeight;\n\n const titleX = titlePosition === 'center' ? chartWidth / 2 : titlePosition === 'right' ? chartWidth - 10 : 10;\n\n const titleAnchor = titlePosition === 'center' ? 'middle' : titlePosition === 'right' ? 'end' : 'start';\n\n const children = useMemo(() => {\n const renderedChildren: React.ReactElement[] = [];\n\n React.Children.forEach(propsChildren, (child) => {\n if (!React.isValidElement(child)) return;\n const isX = getAxisType(child.props.position) === 'x';\n\n let enhancedChild = child;\n\n if (isComponent('Axis')(child)) {\n enhancedChild = React.cloneElement(child, {\n key: child.key || `axis-${from}-${to}-${child.props.position}`,\n chartWidth,\n chartHeight,\n sectionHeight,\n scale: isX ? scaleX : scaleY,\n x: child.props.position === 'right' ? chartWidth : 0,\n y: child.props.position === 'bottom' ? sectionHeight : child.props.position === 'top' ? 0 : sectionHeight,\n disableAnimations,\n length: isX ? chartWidth : sectionHeight,\n tickValues: (isX ? xAxisTickValues : yAxisTickValues) ?? 8,\n tickPadding: isX ? xAxisTickPadding : yAxisTickPadding,\n tickRotation: isX ? xAxisTickRotation : yAxisTickRotation,\n tickSize: isX ? xAxisTickSize : yAxisTickSize,\n tickFormat: isX ? xAxisTickFormat : yAxisTickFormat,\n tickRemodelling: isX ? xAxisTickRemodelling : yAxisTickRemodelling,\n variant: isX ? xAxisVariant : yAxisVariant,\n textColor: isX ? undefined : color,\n tickToColor: (_: never, index: number) => index !== 0,\n ...child.props,\n });\n }\n\n if (isComponent('BarChartOverlay')(child)) {\n enhancedChild = React.cloneElement(child, {\n key: child.key || `overlay-${from}-${to}`,\n from,\n to,\n ...child.props,\n });\n }\n\n renderedChildren.push(enhancedChild);\n });\n\n return renderedChildren;\n }, [propsChildren]);\n\n return (\n <BarChartContext.Provider\n value={{\n ...context,\n scaleX: scaleX!,\n scaleY: scaleY!,\n direction,\n sectionHeight,\n }}\n >\n <StyledBarChartSection\n {...forwardedProps}\n className={classNames(BarChartSection.className, className)}\n transform={`translate(${margins.left},${(margins.top || 0) + sectionY})`}\n ref={ref as RefObject<SVGGElement>}\n $theme={theme}\n $textColor={textColor}\n >\n {backgroundColor ? <rect x={0} y={0} width={chartWidth} height={sectionHeight} fill={backgroundColor} /> : null}\n {regions\n ? regions.map((region, index) => {\n // Calculate previous and next day in ms\n const DAY_MS = 24 * 60 * 60 * 1000;\n const fromTime = Date.parse(region.from as string);\n const toTime = Date.parse(region.to as string);\n const prevTime = fromTime - DAY_MS;\n const nextTime = toTime + DAY_MS;\n // Midpoints\n const midFrom = (fromTime + prevTime) / 2;\n const midTo = (toTime + nextTime) / 2;\n const regionFrom = typeof region.from === 'number' ? region.from : scaleX?.(midFrom as any);\n const regionTo = typeof region.to === 'number' ? region.to : scaleX?.(midTo as any);\n if (regionFrom === undefined || regionTo === undefined) {\n return null;\n }\n const x = Math.min(regionFrom, regionTo);\n const width = Math.abs(regionTo - regionFrom);\n return (\n <rect\n key={`region-${index}`}\n x={x}\n y={0}\n width={width}\n height={sectionHeight}\n fill={region.color}\n opacity={region.opacity || 0.05}\n />\n );\n })\n : null}\n {title && (\n <text\n className=\"title colored\"\n x={titleX}\n y={direction === 'up' ? 8 : direction === 'down' ? sectionHeight - 8 : sectionHeight / 2}\n textAnchor={titleAnchor}\n fontSize={12}\n dominantBaseline={direction === 'up' ? 'hanging' : direction === 'down' ? 'auto' : 'middle'}\n >\n {title}\n </text>\n )}\n {children}\n </StyledBarChartSection>\n </BarChartContext.Provider>\n );\n});\n\nBarChartSection.className = CLASSNAME;\nBarChartSection.displayName = COMPONENT_NAME;\n","import React, { forwardRef, RefObject } from 'react';\nimport { scaleLinear as d3scaleLinear } from 'd3';\n\nimport { Comp } from '@redsift/design-system';\n\nimport { BarChartOverlayProps } from './types';\nimport { StyledBarChartOverlay } from './styles';\nimport { useBarChartContext } from './context';\nimport { BarDatum } from '../../types';\nimport { Bar, BarOrientation } from '../Bar';\n\nconst COMPONENT_NAME = 'BarChartOverlay';\nconst CLASSNAME = 'redsift-barchart-overlay';\n\nexport const BarChartOverlay: Comp<BarChartOverlayProps, SVGGElement> = forwardRef((props, ref) => {\n const { from, to, ...forwardedProps } = props;\n\n const {\n barProps,\n barRole,\n bars,\n barWidth,\n chartHeight,\n disableAnimations,\n gap,\n id,\n labelDecorator,\n margins,\n onBarClick,\n scaleX,\n scaleY,\n tooltipVariant,\n tooltipDecorator,\n xScaleType,\n } = useBarChartContext();\n\n const filteredBarChartBars = bars.filter((bar) => bar.category === bars[0].category && bar.value > 0);\n\n const sectionHeight = Math.max(0, Math.min(1, to! - from!)) * chartHeight;\n const sectionY = Math.max(0, Math.min(1, from!)) * chartHeight;\n\n const constantY = d3scaleLinear().domain(scaleY.domain()).range([sectionHeight, sectionHeight]);\n\n return (\n <StyledBarChartOverlay\n key={`${id}-series-overlay`}\n aria-hidden=\"false\"\n role=\"region\"\n {...forwardedProps}\n ref={ref as RefObject<SVGGElement>}\n transform={from === 0 && to === 1 ? `translate(${margins.left},${(margins.top || 0) + sectionY})` : undefined}\n >\n {filteredBarChartBars.map((bar, index: number) => {\n const groupedBars = bars.filter((b) => {\n return xScaleType === 'Date' || xScaleType === 'dateString'\n ? (b.key as Date).getTime() === (bar.key as Date).getTime()\n : b.key === bar.key;\n });\n\n return (\n <Bar\n color=\"transparent\"\n data={{\n data: bar as BarDatum['data'],\n }}\n className=\"redsift-overlay-bar\"\n dataset={bars}\n groupedData={groupedBars}\n disableAnimations={disableAnimations}\n gap={gap}\n id={`id${id}__bar-${index}`}\n index={index}\n key={`bar _.${index}`}\n labelDecorator={labelDecorator}\n maxHeight={0}\n onClick={onBarClick}\n orientation={BarOrientation.vertical}\n direction=\"down\"\n scale={constantY}\n scalePosition={scaleX}\n tooltipVariant={tooltipVariant}\n tooltipDecorator={tooltipDecorator}\n {...barProps}\n width={barProps?.width && typeof barProps.width === 'number' ? barProps.width : barWidth}\n height={undefined}\n role={barRole}\n />\n );\n })}\n </StyledBarChartOverlay>\n );\n});\n\nBarChartOverlay.className = CLASSNAME;\nBarChartOverlay.displayName = COMPONENT_NAME;\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp, useId } from '@redsift/design-system';\n\nimport { ChartSize, ColorTheme, LinearData, TooltipVariant } from '../../types';\nimport { BarChartLegendVariant, BarChartProps } from './types';\nimport { EmptyBarChart } from './EmptyBarChart';\nimport { LoadingBarChart } from './LoadingBarChart';\nimport { RenderedOrdinalBarChart } from './RenderedOrdinalBarChart';\nimport { RenderedLinearBarChart } from './RenderedLinearBarChart';\nimport { BarOrientation } from '../Bar';\nimport { isValidDate } from '../../utils';\nimport { BarChartSection } from './BarChartSection';\nimport { BarChartBars, BarChartGroupedTooltip } from './BarChartBars';\nimport { Axis } from '../Axis';\nimport { Legend } from '../Legend';\nimport { LegendItem } from '../LegendItem';\nimport { ChartContainerDescription, ChartContainerTitle } from '../ChartContainer';\nimport { BarChartOverlay } from './BarChartOverlay';\n\nconst COMPONENT_NAME = 'BarChart';\nconst CLASSNAME = 'redsift-barchart';\n\nexport const BaseBarChart: Comp<BarChartProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n barRole,\n caping,\n chartRef,\n className,\n colorTheme = ColorTheme.default,\n data: propsData,\n dataType: propsDataType,\n emptyComponent,\n id: propsId,\n isBarSelected = () => true,\n labelDecorator,\n legendDecorator,\n legendVariant: propsLegendVariant,\n localeText = { emptyChartText: 'No Data' },\n onBarClick,\n orientation = BarOrientation.horizontal,\n others = true,\n size = ChartSize.medium,\n sortingMethod = 'desc-value',\n theme,\n tooltipDecorator,\n tooltipVariant = TooltipVariant.value,\n xAxisPlacement = 'bottom',\n yAxisPlacement = 'left',\n ...forwardedProps\n } = props;\n const [_id] = useId();\n const id = propsId ?? _id;\n\n const legendVariant = propsLegendVariant ?? BarChartLegendVariant.externalLabel;\n\n if (propsData === undefined || propsData === null) {\n return <LoadingBarChart id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyBarChart\n data={propsData}\n emptyComponent={emptyComponent}\n id={id}\n localeText={localeText}\n size={size}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n const dataType = propsDataType\n ? propsDataType\n : Array.isArray(propsData[0].key)\n ? 'TwoCategoryData'\n : propsData[0].key instanceof Date\n ? 'LinearData'\n : typeof propsData[0].key === 'number'\n ? 'LinearData'\n : typeof propsData[0].key === 'string' && isValidDate(propsData[0].key)\n ? 'LinearData'\n : typeof propsData[0].key === 'string'\n ? 'CategoryData'\n : 'CategoryData';\n\n if (dataType === 'CategoryData') {\n return (\n <RenderedOrdinalBarChart\n barRole={barRole}\n caping={caping}\n chartRef={chartRef}\n className={classNames(BaseBarChart.className, className)}\n data={propsData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n onBarClick={onBarClick}\n orientation={orientation}\n others={others}\n size={size}\n sortingMethod={sortingMethod}\n theme={theme}\n tooltipDecorator={tooltipDecorator}\n colorTheme={colorTheme}\n tooltipVariant={tooltipVariant}\n xAxisPlacement={xAxisPlacement}\n yAxisPlacement={yAxisPlacement}\n {...forwardedProps}\n ref={ref}\n />\n );\n } else if (dataType === 'LinearData' || dataType === 'TwoCategoryData') {\n return (\n <RenderedLinearBarChart\n barRole={barRole}\n chartRef={chartRef}\n className={classNames(BaseBarChart.className, className)}\n data={propsData as LinearData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n legendDecorator={legendDecorator}\n legendVariant={legendVariant}\n onBarClick={onBarClick}\n size={size}\n sortingMethod={sortingMethod}\n theme={theme}\n tooltipDecorator={tooltipDecorator}\n colorTheme={colorTheme}\n tooltipVariant={tooltipVariant}\n xAxisPlacement={xAxisPlacement}\n yAxisPlacement={yAxisPlacement}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return null;\n});\nBaseBarChart.className = CLASSNAME;\nBaseBarChart.displayName = COMPONENT_NAME;\n\nexport const BarChart = Object.assign(BaseBarChart, {\n Section: BarChartSection,\n Bars: BarChartBars,\n Overlay: BarChartOverlay,\n Axis: Axis,\n GroupedTooltip: BarChartGroupedTooltip,\n Legend: Legend,\n LegendItem: LegendItem,\n Title: ChartContainerTitle,\n Description: ChartContainerDescription,\n});\n"],"names":["BarChartLegendVariant","none","externalLabel","externalLabelValue","externalLabelPercent","custom","StyledBarChart","styled","ChartContainer","StyledBarChartSection","g","_ref","$textColor","css","StyledBarChartBars","StyledBarChartOverlay","StyledBarChartEmptyText","div","_ref2","$maxWidth","_ref3","$theme","_ref4","$textSize","_ref5","sizeToDimension","size","ChartSize","small","width","height","fontSize","large","medium","statsBy","arr","sortingMethod","isKeyArray","Array","isArray","key","counts","reduce","prev","curr","value","currentKey","min","max","values","Math","Object","keys","map","first","last","length","trending","overall","sort","getSortingMethod","EmptyBarChart","forwardRef","props","ref","className","emptyComponent","localeText","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","chartDimensions","margins","top","left","right","bottom","chartHeight","chartWidth","scaleRef","useRef","current","d3scaleLinear","domain","range","React","createElement","_extends","Fragment","emptyChartText","transform","Axis","position","scale","x","y","tickValues","LoadingBarChart","enUS","frFR","BarChartContext","createContext","useBarChartContext","context","useContext","Error","ChartTypeContext","undefined","RenderedOrdinalBarChart","areXLabelsRotated","barProps","caping","data","propsData","disableAnimations","id","isBarSelected","getBarAnchorProps","labelDecorator","propsMargins","onBarClick","orientation","others","barRole","colorTheme","tooltipVariant","xAxisVariant","propsXAxisVariant","xAxisPlacement","xAxisTickFormat","xAxisTickPadding","xAxisTickRotation","xAxisTickSize","xAxisTickValues","yAxisVariant","propsYAxisVariant","yAxisPlacement","yAxisTickFormat","yAxisTickPadding","yAxisTickRotation","yAxisTickSize","yAxisTickValues","cache","format","useMessageFormatter","intlMessages","colorScale","useFormatCategoricalData","useEffect","isHorizontal","BarOrientation","horizontal","AxisVariant","default","tickValue","_objectSpread","numberOfRows","filter","datum","gap","barHeight","barWidth","total","d3sum","d","useMemo","scaleCategory","d3scaleBand","bars","Provider","mode","definition","barLength","xAxisDefinition","numAxis","start","end","yAxisDefinition","dataTableRepresentation","header","scope","body","includes","tickPadding","tickRotation","tickSize","tickFormat","variant","index","percent","to","from","Bar","color","dataset","isSelected","Boolean","maxHeight","anchorProps","onClick","previousData","scalePosition","role","COMPONENT_NAME","CLASSNAME","BarChartBars","category","categories","direction","hasCategory","scaleX","scaleY","tooltipDecorator","xScaleType","filteredBarChartBars","bar","categoryIndex","indexOf","categoryLength","groupedBars","b","getTime","groupedData","cumulativeValue","vertical","displayName","BarChartGroupedTooltip","dateFormatter","categoryDecorator","categoryColor","Flexbox","flexDirection","margin","Text","fontWeight","style","backgroundColor","acc","marginTop","_groupedData$find","find","alignItems","lineHeight","COMPONENT_TYPES","AXES","SECTIONS","OVERLAY","BARS","LEGENDS","getComponentPosition","child","_child$type","isValidElement","type","getKey","filterData","filterFn","reduceData","reduceFn","initialValue","isSameKey","previousKey","RenderedLinearBarChart","_chartDimensions$maxW","_chartDimensions$minW","children","BarDirection","up","legendDecorator","legendVariant","legendProps","propsSortingMethod","propsXAxisTickFormat","xAxisMinValue","xAxisMaxValue","xAxisTickRemodelling","xAxisStartDateOffset","xAxisEndDateOffset","yAxisMinValue","yAxisMaxValue","yAxisTickRemodelling","propsXScaleType","yScaleLogBase","dateParser","sections","sectionList","Children","forEach","isComponent","toArray","c","push","hasSections","flat","Date","isValidDate","Number","isNaN","svgRef","maxWidth","Infinity","minWidth","numberOfBars","d3extent","nice","parse","valueOf","startDate","offset","endDate","d3scaleUtc","_ref6","d3scalePoint","statsByCategory","useColor","a","currentKeyA","currentKeyB","previousValue","currentValue","currentIndex","_key$","currentKeyD","formattedKeyD","d3utcParse","isSameSection","_previousValue","findSectionIndex","cat","findIndex","section","currentSection","prevSection","getScaleY","_ref7","_ref8","arguments","hasSectionTitle","d3scaleLog","clamp","base","minimalGap","i","abs","k","pivotedTable","item","formattedKey","toString","entry","e","_ref9","extraLegendItems","forwardedLegendProps","_excluded2","axisComponents","sectionComponents","overlayComponents","barsComponents","legendComponents","titleComponent","descriptionComponent","multipleScaleY","enhancedChild","title","cloneElement","join","_ref10","isX","getAxisType","tickRemodelling","mergeLegends","row","description","Legend","LegendVariant","label","BarChartSection","titlePosition","propsChildren","regions","textColor","RedsiftColorGreenD1","RedsiftColorRedD1","RedsiftColorNeutralBlack","sectionHeight","sectionY","titleX","titleAnchor","renderedChildren","tickToColor","_","classNames","fill","region","DAY_MS","fromTime","toTime","prevTime","nextTime","midFrom","midTo","regionFrom","regionTo","opacity","textAnchor","dominantBaseline","BarChartOverlay","constantY","BaseBarChart","chartRef","ColorTheme","dataType","propsDataType","propsId","propsLegendVariant","TooltipVariant","_id","useId","BarChart","assign","Section","Bars","Overlay","GroupedTooltip","LegendItem","Title","ChartContainerTitle","Description","ChartContainerDescription"],"mappings":"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"}
|