@redsift/charts 12.5.1 → 12.5.2-alpha.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/BarChart2.js
CHANGED
|
@@ -1622,6 +1622,7 @@ const BaseBarChart = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
1622
1622
|
}));
|
|
1623
1623
|
} else if (dataType === 'LinearData' || dataType === 'TwoCategoryData') {
|
|
1624
1624
|
return /*#__PURE__*/React__default.createElement(RenderedLinearBarChart, _extends({
|
|
1625
|
+
barProps: barProps,
|
|
1625
1626
|
barRole: barRole,
|
|
1626
1627
|
chartRef: chartRef,
|
|
1627
1628
|
className: classNames(BaseBarChart.className, className),
|
|
@@ -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/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 { FormatMessage, Theme, ValueOf } from '@redsift/design-system';\nimport { LegendProps } from '../Legend';\nimport { AnchorProps } from '../DataPoint';\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 gap?: 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 regions?: BarChartSectionProps['regions'];\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?: {\n from: string;\n to: string;\n backgroundColor?: string;\n backgroundOpacity?: number;\n colorTheme?: Record<string, string>;\n tooltipDecorator?: BarChartProps['tooltipDecorator'];\n }[];\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 regions?: BarChartSectionProps['regions'];\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 '../../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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dataType: _dataType,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n direction: _direction,\n disableAnimations,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n emptyComponent: _emptyComponent,\n id,\n isBarSelected,\n getBarAnchorProps,\n labelDecorator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n legendDecorator: _legendDecorator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n legendProps: _legendProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n legendVariant: _legendVariant,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n localeText: _localeText,\n margins: propsMargins,\n onBarClick,\n orientation,\n others,\n size,\n sortingMethod,\n barRole,\n colorTheme,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tooltipDecorator: _tooltipDecorator,\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 // When barRole is 'option' (selection mode), keep 0-value bars visible on the axis\n // so that unselected bars remain in place (greyed out) instead of disappearing.\n const isSelectionMode = barRole === 'option';\n const visibleData = isSelectionMode ? data : data.filter((datum) => datum.value);\n const numberOfRows = visibleData.length;\n const gap = barProps?.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 [data, size, isHorizontal]\n );\n const scaleCategory = useMemo<d3ScaleBand<string>>(\n () =>\n d3scaleBand()\n .domain(visibleData.map((datum) => datum.key))\n .range([0, isHorizontal ? chartHeight : chartWidth]),\n [data, size, isSelectionMode, isHorizontal]\n );\n\n const bars = visibleData;\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, Number, Text } from '@redsift/design-system';\nimport { scaleOrdinal as d3scaleOrdinal, ScaleOrdinal as d3ScaleOrdinal } from 'd3';\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 regions,\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 region = regions?.find((r) => {\n return xScaleType === 'Date' || xScaleType === 'dateString'\n ? new Date(r.from).getTime() <= (bar.key as Date).getTime() &&\n new Date(r.to).getTime() >= (bar.key as Date).getTime()\n : r.from <= bar.key && r.to >= bar.key;\n });\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={\n region && region.colorTheme\n ? (\n d3scaleOrdinal()\n .domain(Object.keys(region.colorTheme))\n .range(Object.values(region.colorTheme)) as d3ScaleOrdinal<string, string>\n )?.(to.data.category)\n : colorScale?.(to.data.category)!\n }\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={region && region.tooltipDecorator ? region.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 children?: React.ReactNode;\n datum: BarDatum;\n groupedData: ComputedBarProps[] | undefined;\n}> = ({ dateFormatter, categories, categoryDecorator, categoryColor, children, datum, groupedData }) => {\n const { format } = useBarChartContext();\n\n const categoriesWithValue = categories.filter(\n (category) => (groupedData?.find((d) => d.category === category)?.value ?? 0) > 0\n );\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 <Number fontWeight=\"600\" fontSize=\"14px\" value={groupedData?.reduce((acc, d) => acc + d.value, 0) ?? 0} />\n </Flexbox>\n {categoriesWithValue.length > 0 ? (\n <Flexbox flexDirection=\"column\" gap=\"8px\" margin=\"4px 0\">\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 <Number fontWeight=\"600\" fontSize=\"14px\" lineHeight=\"18px\" value={value} />\n </Flexbox>\n ) : null;\n })}\n </Flexbox>\n ) : null}\n {children}\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 = barProps?.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 let formattedKey = xAxisTickFormat ? xAxisTickFormat(key as any) : key.toString();\n formattedKey = Array.isArray(formattedKey) ? formattedKey.join(' ') : formattedKey;\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 let key = xAxisTickFormat ? xAxisTickFormat(datum.key as any) : datum.key.toString();\n key = Array.isArray(key) ? key.join(' ') : key;\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 regions,\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.backgroundColor || 'transparent'}\n opacity={region.backgroundOpacity || 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, regions, ...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 regions: contextRegions,\n } = useBarChartContext();\n\n const filteredBarChartBars = bars.filter((bar) => bar.category === bars[0].category);\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 region = (regions || contextRegions)?.find((r) => {\n return xScaleType === 'Date' || xScaleType === 'dateString'\n ? new Date(r.from).getTime() <= (bar.key as Date).getTime() &&\n new Date(r.to).getTime() >= (bar.key as Date).getTime()\n : r.from <= bar.key && r.to >= bar.key;\n });\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=\"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={region && region.tooltipDecorator ? region.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\n/**\n * BarChart visualizes categorical data with rectangular bars.\n * Built on D3.js with responsive sizing and interactive tooltips.\n *\n * Supports horizontal/vertical orientation, stacked/grouped bars,\n * and various legend placements.\n *\n * Data format: `CategoryData` `[{ key: string, value: number }]`\n *\n * @example\n * // Basic horizontal bar chart with CategoryData\n * const data = [\n * { key: 'Product A', value: 120 },\n * { key: 'Product B', value: 85 },\n * { key: 'Product C', value: 200 },\n * ];\n * <BarChart data={data} size=\"medium\" />\n *\n * @example\n * // Vertical bar chart with tooltips and click handler\n * <BarChart\n * data={salesData}\n * orientation=\"vertical\"\n * tooltipVariant=\"value\"\n * onBarClick={(d) => handleBarClick(d.key)}\n * />\n *\n * @example\n * // Semantic colorTheme (maps keys to status colors)\n * <BarChart\n * data={[\n * { key: 'Passed', value: 45 },\n * { key: 'Warning', value: 12 },\n * { key: 'Failed', value: 8 },\n * ]}\n * colorTheme={{\n * success: 'Passed',\n * warning: 'Warning',\n * danger: 'Failed',\n * }}\n * />\n *\n * @example\n * // Grouped bar chart with legend\n * <BarChart\n * data={groupedData}\n * dataType=\"TwoCategoryData\"\n * legendVariant=\"externalLabel\"\n * colorTheme=\"dark\"\n * />\n *\n * @example\n * // With custom label formatter and capping\n * <BarChart\n * data={percentages}\n * labelDecorator={(value) => `${value}%`}\n * caping={10}\n * others={true}\n * />\n */\n\nexport const BaseBarChart: Comp<BarChartProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n barProps,\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 legendProps,\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 xAxisVariant,\n yAxisPlacement = 'left',\n yAxisVariant,\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 barProps={barProps}\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 xAxisVariant={xAxisVariant}\n yAxisPlacement={yAxisPlacement}\n yAxisVariant={yAxisVariant}\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 legendProps={legendProps}\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 xAxisVariant={xAxisVariant}\n yAxisPlacement={yAxisPlacement}\n yAxisVariant={yAxisVariant}\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","_barProps$gap","areXLabelsRotated","barProps","caping","data","propsData","dataType","_dataType","direction","_direction","disableAnimations","_emptyComponent","id","isBarSelected","getBarAnchorProps","labelDecorator","legendDecorator","_legendDecorator","legendProps","_legendProps","legendVariant","_legendVariant","_localeText","propsMargins","onBarClick","orientation","others","barRole","colorTheme","tooltipDecorator","_tooltipDecorator","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","isSelectionMode","visibleData","filter","datum","numberOfRows","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","hasCategory","scaleX","scaleY","xScaleType","regions","filteredBarChartBars","bar","categoryIndex","indexOf","categoryLength","_d3scaleOrdinal$domai","region","find","r","Date","getTime","groupedBars","b","d3scaleOrdinal","groupedData","cumulativeValue","vertical","displayName","BarChartGroupedTooltip","_groupedData$reduce","dateFormatter","categoryDecorator","categoryColor","children","categoriesWithValue","_groupedData$find$val","_groupedData$find","Flexbox","flexDirection","margin","Text","fontWeight","style","backgroundColor","Number","acc","_groupedData$find2","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","BarDirection","up","propsSortingMethod","propsXAxisTickFormat","xAxisMinValue","xAxisMaxValue","xAxisTickRemodelling","xAxisStartDateOffset","xAxisEndDateOffset","yAxisMinValue","yAxisMaxValue","yAxisTickRemodelling","propsXScaleType","yScaleLogBase","dateParser","sections","sectionList","Children","forEach","isComponent","toArray","c","push","hasSections","flat","isValidDate","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","join","entry","e","_ref9","extraLegendItems","forwardedLegendProps","_excluded2","axisComponents","sectionComponents","overlayComponents","barsComponents","legendComponents","titleComponent","descriptionComponent","multipleScaleY","enhancedChild","title","cloneElement","_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","DAY_MS","fromTime","toTime","prevTime","nextTime","midFrom","midTo","regionFrom","regionTo","opacity","backgroundOpacity","textAnchor","dominantBaseline","BarChartOverlay","contextRegions","constantY","BaseBarChart","chartRef","ColorTheme","propsDataType","propsId","propsLegendVariant","TooltipVariant","_id","useId","BarChart","assign","Section","Bars","Overlay","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 { FormatMessage, Theme, ValueOf } from '@redsift/design-system';\nimport { LegendProps } from '../Legend';\nimport { AnchorProps } from '../DataPoint';\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 gap?: 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 regions?: BarChartSectionProps['regions'];\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?: {\n from: string;\n to: string;\n backgroundColor?: string;\n backgroundOpacity?: number;\n colorTheme?: Record<string, string>;\n tooltipDecorator?: BarChartProps['tooltipDecorator'];\n }[];\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 regions?: BarChartSectionProps['regions'];\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 '../../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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dataType: _dataType,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n direction: _direction,\n disableAnimations,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n emptyComponent: _emptyComponent,\n id,\n isBarSelected,\n getBarAnchorProps,\n labelDecorator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n legendDecorator: _legendDecorator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n legendProps: _legendProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n legendVariant: _legendVariant,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n localeText: _localeText,\n margins: propsMargins,\n onBarClick,\n orientation,\n others,\n size,\n sortingMethod,\n barRole,\n colorTheme,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tooltipDecorator: _tooltipDecorator,\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 // When barRole is 'option' (selection mode), keep 0-value bars visible on the axis\n // so that unselected bars remain in place (greyed out) instead of disappearing.\n const isSelectionMode = barRole === 'option';\n const visibleData = isSelectionMode ? data : data.filter((datum) => datum.value);\n const numberOfRows = visibleData.length;\n const gap = barProps?.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 [data, size, isHorizontal]\n );\n const scaleCategory = useMemo<d3ScaleBand<string>>(\n () =>\n d3scaleBand()\n .domain(visibleData.map((datum) => datum.key))\n .range([0, isHorizontal ? chartHeight : chartWidth]),\n [data, size, isSelectionMode, isHorizontal]\n );\n\n const bars = visibleData;\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, Number, Text } from '@redsift/design-system';\nimport { scaleOrdinal as d3scaleOrdinal, ScaleOrdinal as d3ScaleOrdinal } from 'd3';\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 regions,\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 region = regions?.find((r) => {\n return xScaleType === 'Date' || xScaleType === 'dateString'\n ? new Date(r.from).getTime() <= (bar.key as Date).getTime() &&\n new Date(r.to).getTime() >= (bar.key as Date).getTime()\n : r.from <= bar.key && r.to >= bar.key;\n });\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={\n region && region.colorTheme\n ? (\n d3scaleOrdinal()\n .domain(Object.keys(region.colorTheme))\n .range(Object.values(region.colorTheme)) as d3ScaleOrdinal<string, string>\n )?.(to.data.category)\n : colorScale?.(to.data.category)!\n }\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={region && region.tooltipDecorator ? region.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 children?: React.ReactNode;\n datum: BarDatum;\n groupedData: ComputedBarProps[] | undefined;\n}> = ({ dateFormatter, categories, categoryDecorator, categoryColor, children, datum, groupedData }) => {\n const { format } = useBarChartContext();\n\n const categoriesWithValue = categories.filter(\n (category) => (groupedData?.find((d) => d.category === category)?.value ?? 0) > 0\n );\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 <Number fontWeight=\"600\" fontSize=\"14px\" value={groupedData?.reduce((acc, d) => acc + d.value, 0) ?? 0} />\n </Flexbox>\n {categoriesWithValue.length > 0 ? (\n <Flexbox flexDirection=\"column\" gap=\"8px\" margin=\"4px 0\">\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 <Number fontWeight=\"600\" fontSize=\"14px\" lineHeight=\"18px\" value={value} />\n </Flexbox>\n ) : null;\n })}\n </Flexbox>\n ) : null}\n {children}\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 = barProps?.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 let formattedKey = xAxisTickFormat ? xAxisTickFormat(key as any) : key.toString();\n formattedKey = Array.isArray(formattedKey) ? formattedKey.join(' ') : formattedKey;\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 let key = xAxisTickFormat ? xAxisTickFormat(datum.key as any) : datum.key.toString();\n key = Array.isArray(key) ? key.join(' ') : key;\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 regions,\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.backgroundColor || 'transparent'}\n opacity={region.backgroundOpacity || 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, regions, ...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 regions: contextRegions,\n } = useBarChartContext();\n\n const filteredBarChartBars = bars.filter((bar) => bar.category === bars[0].category);\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 region = (regions || contextRegions)?.find((r) => {\n return xScaleType === 'Date' || xScaleType === 'dateString'\n ? new Date(r.from).getTime() <= (bar.key as Date).getTime() &&\n new Date(r.to).getTime() >= (bar.key as Date).getTime()\n : r.from <= bar.key && r.to >= bar.key;\n });\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=\"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={region && region.tooltipDecorator ? region.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\n/**\n * BarChart visualizes categorical data with rectangular bars.\n * Built on D3.js with responsive sizing and interactive tooltips.\n *\n * Supports horizontal/vertical orientation, stacked/grouped bars,\n * and various legend placements.\n *\n * Data format: `CategoryData` `[{ key: string, value: number }]`\n *\n * @example\n * // Basic horizontal bar chart with CategoryData\n * const data = [\n * { key: 'Product A', value: 120 },\n * { key: 'Product B', value: 85 },\n * { key: 'Product C', value: 200 },\n * ];\n * <BarChart data={data} size=\"medium\" />\n *\n * @example\n * // Vertical bar chart with tooltips and click handler\n * <BarChart\n * data={salesData}\n * orientation=\"vertical\"\n * tooltipVariant=\"value\"\n * onBarClick={(d) => handleBarClick(d.key)}\n * />\n *\n * @example\n * // Semantic colorTheme (maps keys to status colors)\n * <BarChart\n * data={[\n * { key: 'Passed', value: 45 },\n * { key: 'Warning', value: 12 },\n * { key: 'Failed', value: 8 },\n * ]}\n * colorTheme={{\n * success: 'Passed',\n * warning: 'Warning',\n * danger: 'Failed',\n * }}\n * />\n *\n * @example\n * // Grouped bar chart with legend\n * <BarChart\n * data={groupedData}\n * dataType=\"TwoCategoryData\"\n * legendVariant=\"externalLabel\"\n * colorTheme=\"dark\"\n * />\n *\n * @example\n * // With custom label formatter and capping\n * <BarChart\n * data={percentages}\n * labelDecorator={(value) => `${value}%`}\n * caping={10}\n * others={true}\n * />\n */\n\nexport const BaseBarChart: Comp<BarChartProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n barProps,\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 legendProps,\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 xAxisVariant,\n yAxisPlacement = 'left',\n yAxisVariant,\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 barProps={barProps}\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 xAxisVariant={xAxisVariant}\n yAxisPlacement={yAxisPlacement}\n yAxisVariant={yAxisVariant}\n {...forwardedProps}\n ref={ref}\n />\n );\n } else if (dataType === 'LinearData' || dataType === 'TwoCategoryData') {\n return (\n <RenderedLinearBarChart\n barProps={barProps}\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 legendProps={legendProps}\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 xAxisVariant={xAxisVariant}\n yAxisPlacement={yAxisPlacement}\n yAxisVariant={yAxisVariant}\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","_barProps$gap","areXLabelsRotated","barProps","caping","data","propsData","dataType","_dataType","direction","_direction","disableAnimations","_emptyComponent","id","isBarSelected","getBarAnchorProps","labelDecorator","legendDecorator","_legendDecorator","legendProps","_legendProps","legendVariant","_legendVariant","_localeText","propsMargins","onBarClick","orientation","others","barRole","colorTheme","tooltipDecorator","_tooltipDecorator","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","isSelectionMode","visibleData","filter","datum","numberOfRows","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","hasCategory","scaleX","scaleY","xScaleType","regions","filteredBarChartBars","bar","categoryIndex","indexOf","categoryLength","_d3scaleOrdinal$domai","region","find","r","Date","getTime","groupedBars","b","d3scaleOrdinal","groupedData","cumulativeValue","vertical","displayName","BarChartGroupedTooltip","_groupedData$reduce","dateFormatter","categoryDecorator","categoryColor","children","categoriesWithValue","_groupedData$find$val","_groupedData$find","Flexbox","flexDirection","margin","Text","fontWeight","style","backgroundColor","Number","acc","_groupedData$find2","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","BarDirection","up","propsSortingMethod","propsXAxisTickFormat","xAxisMinValue","xAxisMaxValue","xAxisTickRemodelling","xAxisStartDateOffset","xAxisEndDateOffset","yAxisMinValue","yAxisMaxValue","yAxisTickRemodelling","propsXScaleType","yScaleLogBase","dateParser","sections","sectionList","Children","forEach","isComponent","toArray","c","push","hasSections","flat","isValidDate","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","join","entry","e","_ref9","extraLegendItems","forwardedLegendProps","_excluded2","axisComponents","sectionComponents","overlayComponents","barsComponents","legendComponents","titleComponent","descriptionComponent","multipleScaleY","enhancedChild","title","cloneElement","_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","DAY_MS","fromTime","toTime","prevTime","nextTime","midFrom","midTo","regionFrom","regionTo","opacity","backgroundOpacity","textAnchor","dominantBaseline","BarChartOverlay","contextRegions","constantY","BaseBarChart","chartRef","ColorTheme","propsDataType","propsId","propsLegendVariant","TooltipVariant","_id","useId","BarChart","assign","Section","Bars","Overlay","GroupedTooltip","LegendItem","Title","ChartContainerTitle","Description","ChartContainerDescription"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"test": "yarn test:unit && yarn test:storybook"
|
|
31
31
|
},
|
|
32
32
|
"types": "index.d.ts",
|
|
33
|
-
"version": "12.5.
|
|
33
|
+
"version": "12.5.2-alpha.0",
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@emotion/react": "^11.10.4",
|
|
36
36
|
"@emotion/styled": "^11.10.4",
|
|
@@ -86,11 +86,11 @@
|
|
|
86
86
|
"ts-jest": "^29.2.0"
|
|
87
87
|
},
|
|
88
88
|
"peerDependencies": {
|
|
89
|
-
"@redsift/design-system": "^12.5.
|
|
90
|
-
"@redsift/popovers": "^12.5.
|
|
89
|
+
"@redsift/design-system": "^12.5.2-0",
|
|
90
|
+
"@redsift/popovers": "^12.5.2-0",
|
|
91
91
|
"react": ">=17",
|
|
92
92
|
"react-dom": ">=17",
|
|
93
93
|
"styled-components": "6.1.19"
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "11ccc72b4ed9841302758e38d480bb6acebfc656"
|
|
96
96
|
}
|