@redsift/charts 11.8.1 → 11.8.2

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.
@@ -601,6 +601,10 @@ const BarChartGroupedTooltip = _ref => {
601
601
  const {
602
602
  format
603
603
  } = useBarChartContext();
604
+ const categoriesWithValue = categories.filter(category => {
605
+ var _groupedData$find$val, _groupedData$find;
606
+ return ((_groupedData$find$val = groupedData === null || groupedData === void 0 ? void 0 : (_groupedData$find = groupedData.find(d => d.category === category)) === null || _groupedData$find === void 0 ? void 0 : _groupedData$find.value) !== null && _groupedData$find$val !== void 0 ? _groupedData$find$val : 0) > 0;
607
+ });
604
608
  return /*#__PURE__*/React__default.createElement(Flexbox, {
605
609
  flexDirection: "column",
606
610
  margin: "16px",
@@ -628,13 +632,13 @@ const BarChartGroupedTooltip = _ref => {
628
632
  fontWeight: "600",
629
633
  fontSize: "14px",
630
634
  value: (_groupedData$reduce = groupedData === null || groupedData === void 0 ? void 0 : groupedData.reduce((acc, d) => acc + d.value, 0)) !== null && _groupedData$reduce !== void 0 ? _groupedData$reduce : 0
631
- })), /*#__PURE__*/React__default.createElement(Flexbox, {
635
+ })), categoriesWithValue.length > 0 ? /*#__PURE__*/React__default.createElement(Flexbox, {
632
636
  flexDirection: "column",
633
- marginTop: "4px",
634
- gap: "8px"
637
+ gap: "8px",
638
+ margin: "4px 0"
635
639
  }, categories.map(category => {
636
- var _groupedData$find;
637
- const value = groupedData === null || groupedData === void 0 ? void 0 : (_groupedData$find = groupedData.find(d => d.category === category)) === null || _groupedData$find === void 0 ? void 0 : _groupedData$find.value;
640
+ var _groupedData$find2;
641
+ const value = groupedData === null || groupedData === void 0 ? void 0 : (_groupedData$find2 = groupedData.find(d => d.category === category)) === null || _groupedData$find2 === void 0 ? void 0 : _groupedData$find2.value;
638
642
  const color = categoryColor(category);
639
643
  return value ? /*#__PURE__*/React__default.createElement(Flexbox, {
640
644
  key: category,
@@ -656,7 +660,7 @@ const BarChartGroupedTooltip = _ref => {
656
660
  lineHeight: "18px",
657
661
  value: value
658
662
  })) : null;
659
- })), children);
663
+ })) : null, children);
660
664
  };
661
665
 
662
666
  const _excluded$3 = ["barProps", "children", "className", "data", "direction", "disableAnimations", "id", "getBarAnchorProps", "isBarSelected", "labelDecorator", "legendDecorator", "legendVariant", "legendProps", "margins", "onBarClick", "size", "sortingMethod", "barRole", "colorTheme", "tooltipVariant", "tooltipDecorator", "xAxisVariant", "xAxisPlacement", "xAxisTickFormat", "xAxisTickPadding", "xAxisTickRotation", "xAxisTickSize", "xAxisTickValues", "xAxisMinValue", "xAxisMaxValue", "xAxisTickRemodelling", "xAxisStartDateOffset", "xAxisEndDateOffset", "yAxisVariant", "yAxisPlacement", "yAxisTickFormat", "yAxisTickPadding", "yAxisTickRotation", "yAxisTickSize", "yAxisTickValues", "yAxisMinValue", "yAxisMaxValue", "yAxisTickRemodelling", "xScaleType", "yScaleLogBase", "dateParser"],
@@ -1397,7 +1401,7 @@ const BarChartOverlay = /*#__PURE__*/forwardRef((props, ref) => {
1397
1401
  xScaleType,
1398
1402
  regions: contextRegions
1399
1403
  } = useBarChartContext();
1400
- const filteredBarChartBars = bars.filter(bar => bar.category === bars[0].category && bar.value > 0);
1404
+ const filteredBarChartBars = bars.filter(bar => bar.category === bars[0].category);
1401
1405
  const sectionHeight = Math.max(0, Math.min(1, to - from)) * chartHeight;
1402
1406
  const sectionY = Math.max(0, Math.min(1, from)) * chartHeight;
1403
1407
  const constantY = scaleLinear().domain(scaleY.domain()).range([sectionHeight, sectionHeight]);
@@ -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 { Theme, ValueOf } from '@redsift/design-system';\nimport { LegendProps } from '../Legend';\nimport { AnchorProps } from '../DataPoint';\nimport { FormatMessage } from '@redsift/design-system/react-aria/react-aria/i18n/useMessageFormatter';\n\n/**\n * Component's labels variant.\n */\nexport const BarChartLegendVariant = {\n none: 'none',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n custom: 'custom',\n} as const;\nexport type BarChartLegendVariant = ValueOf<typeof BarChartLegendVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\nexport type BarChartDimensions = ChartDimensions & {\n fontSize: number;\n minWidth?: number;\n maxWidth?: number;\n};\n\nexport type XScaleType = 'number' | 'Date' | 'dateString' | undefined;\n\n/**\n * Component props.\n */\nexport interface BarChartProps extends ChartContainerProps, ChartAxesProps {\n /** @deprecated: Use xAxisTickRotation instead. Whether the x axis labels are rotated or not. */\n areXLabelsRotated?: boolean;\n /** Native HTML props to forward to each bar. */\n barProps?: Omit<ComponentProps<'g'>, 'onClick' | 'orientation' | 'ref' | 'scale' | 'direction'> & {\n minWidth?: number;\n 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 '@redsift/charts/utils';\nimport { ChartSize, LinearData, LinearDatum, Statistics, TwoCategoryData, TwoCategoryDatum } from '../../types';\nimport { BarChartDimensions } from './types';\n\nexport const sizeToDimension = (size: ChartSize | BarChartDimensions): BarChartDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return { width: 300, height: 200, fontSize: 30 };\n case ChartSize.large:\n return { width: 500, height: 400, fontSize: 38 };\n case ChartSize.medium:\n default:\n return { width: 400, height: 300, fontSize: 34 };\n }\n};\n\nexport const statsBy: (arr: LinearData | TwoCategoryData, sortingMethod: SortingMethod) => Statistics = (\n arr,\n sortingMethod\n) => {\n const isKeyArray = Array.isArray(arr[0].key);\n\n const counts = (arr as (LinearDatum | TwoCategoryDatum)[]).reduce((prev, curr) => {\n if (!curr.value) {\n return prev;\n }\n const currentKey = isKeyArray ? ((curr as TwoCategoryDatum).key[1] as string) : 'default';\n if (!prev[currentKey as string]) {\n prev[currentKey as string] = {\n value: curr.value,\n min: curr.value,\n max: curr.value,\n values: [curr.value],\n };\n } else {\n prev[currentKey as string] = {\n value: prev[currentKey as string].value + curr.value,\n min: Math.min(prev[currentKey as string].min, curr.value),\n max: Math.max(prev[currentKey as string].max, curr.value),\n values: [...prev[currentKey as string].values, curr.value],\n };\n }\n return prev;\n }, {} as Record<string, { value: number; min: number; max: number; values: number[] }>);\n\n return Object.keys(counts)\n .map((key) => ({\n key: key,\n value: counts[key].value,\n min: counts[key].min,\n max: counts[key].max,\n values: counts[key].values,\n first: counts[key].values[0],\n last: counts[key].values[counts[key].values.length - 1],\n trending: {\n overall:\n ((counts[key].values[counts[key].values.length - 1] - counts[key].values[0]) * 100) / counts[key].values[0],\n },\n }))\n .sort(getSortingMethod(sortingMethod));\n};\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport { scaleLinear as d3scaleLinear, ScaleLinear as d3ScaleLinear } from 'd3';\n\nimport { AnyScale } from '../../types';\nimport { BarChartProps } from './types';\nimport { StyledBarChart, StyledBarChartEmptyText } from './styles';\nimport { Axis } from '../Axis';\nimport { sizeToDimension } from './utils';\nimport { useTheme } from '@redsift/design-system';\n\nexport const EmptyBarChart = forwardRef<HTMLDivElement, BarChartProps>((props, ref) => {\n const { className, emptyComponent, size, localeText, ...forwardedProps } = props;\n const theme = useTheme();\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: 16, right: 16, bottom: 32 };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n\n const scaleRef = useRef<d3ScaleLinear<number, number>>();\n if (!scaleRef.current) {\n scaleRef.current = d3scaleLinear().domain([]).range([0, chartWidth]);\n }\n\n return (\n <StyledBarChart {...forwardedProps} className={className} ref={ref as RefObject<HTMLDivElement>}>\n {emptyComponent ?? (\n <>\n <StyledBarChartEmptyText $maxWidth={width} $textSize={chartDimensions.fontSize / 2} $theme={theme}>\n <span>{localeText?.emptyChartText}</span>\n </StyledBarChartEmptyText>\n <svg width={width} height={height}>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <Axis\n position=\"bottom\"\n length={chartWidth}\n scale={scaleRef.current as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={4}\n />\n </g>\n </svg>\n </>\n )}\n </StyledBarChart>\n );\n});\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { BarChartProps } from './types';\nimport { StyledBarChart } from './styles';\n\nexport const LoadingBarChart = forwardRef<HTMLDivElement, BarChartProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledBarChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledBarChart>\n );\n }\n);\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { createContext, useContext } from 'react';\nimport { BarChartState } from './types';\n\nexport const BarChartContext = createContext<BarChartState | null>(null);\n\nexport function useBarChartContext() {\n const context = useContext(BarChartContext);\n if (!context) {\n throw new Error('useBarChartContext must be used within a BarChart');\n }\n return context;\n}\n","import React from 'react';\nimport { useBarChartContext } from '../BarChart/context';\n\nexport type ChartType = 'bar' | 'line' | 'area';\n\nexport const ChartTypeContext = React.createContext<ChartType | undefined>(undefined);\n\nexport const useChartType = (): ChartType | undefined => {\n return React.useContext(ChartTypeContext);\n};\n\nexport const useResolvedChartContext = () => {\n const chartType = useChartType();\n\n switch (chartType) {\n case 'bar':\n return useBarChartContext();\n default:\n return undefined;\n }\n};\n\nexport function useResolvedProp<T>(prop: T | undefined, contextValue: T | undefined, defaultValue?: T): T | undefined {\n if (prop !== undefined) return prop;\n if (contextValue !== undefined) return contextValue;\n return defaultValue;\n}\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef } from 'react';\nimport {\n scaleLinear as d3scaleLinear,\n ScaleLinear as d3ScaleLinear,\n scaleBand as d3scaleBand,\n ScaleBand as d3ScaleBand,\n sum as d3sum,\n} from 'd3';\n\nimport { useTheme, useMessageFormatter } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport { AnyScale, CategoryData } from '../../types';\nimport { BarChartProps, BarChartState } from './types';\nimport { StyledBarChart } from './styles';\nimport { Bar, BarOrientation } from '../Bar';\nimport { Axis, AxisVariant } from '../Axis';\nimport { useFormatCategoricalData } from '../../hooks';\nimport { sizeToDimension } from './utils';\nimport { BarChartContext } from './context';\nimport { ChartTypeContext } from '../ChartContainer/context';\n\ninterface RenderedOrdinalBarChartProps extends Required<Pick<BarChartProps, 'data'>>, Omit<BarChartProps, 'data'> {}\n\nexport const RenderedOrdinalBarChart = forwardRef<HTMLDivElement, RenderedOrdinalBarChartProps>((props, ref) => {\n const {\n areXLabelsRotated,\n barProps,\n caping,\n className,\n data: propsData,\n disableAnimations,\n id,\n isBarSelected,\n getBarAnchorProps,\n labelDecorator,\n margins: propsMargins,\n onBarClick,\n orientation,\n others,\n size,\n sortingMethod,\n barRole,\n colorTheme,\n tooltipVariant,\n xAxisVariant: propsXAxisVariant,\n xAxisPlacement,\n xAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n yAxisVariant: propsYAxisVariant,\n yAxisPlacement,\n yAxisTickFormat,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickValues,\n ...forwardedProps\n } = props;\n\n const cache = useRef<CategoryData>();\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const { data, colorScale } = useFormatCategoricalData({\n data: propsData as CategoryData,\n colorTheme: colorTheme!,\n sortingMethod: sortingMethod!,\n caping,\n others,\n theme,\n });\n\n useEffect(() => {\n cache.current = data;\n });\n\n const isHorizontal = orientation === BarOrientation.horizontal;\n const xAxisVariant = propsXAxisVariant\n ? propsXAxisVariant\n : isHorizontal\n ? AxisVariant.default\n : AxisVariant.tickValue;\n const yAxisVariant = propsYAxisVariant ? propsYAxisVariant : isHorizontal ? AxisVariant.none : AxisVariant.default;\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: isHorizontal ? 16 : 64, right: 16, bottom: 32, ...propsMargins };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n const numberOfRows = data.filter((datum) => datum.value).length;\n const gap = 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 [size]\n );\n const scaleCategory = useMemo<d3ScaleBand<string>>(\n () =>\n d3scaleBand()\n .domain(data.filter((datum) => datum.value).map((datum) => datum.key))\n .range([0, isHorizontal ? chartHeight : chartWidth]),\n [size]\n );\n\n const bars = data.filter((datum) => datum.value);\n\n return (\n <ChartTypeContext.Provider value=\"bar\">\n <BarChartContext.Provider value={{} as BarChartState}>\n <StyledBarChart\n mode={typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={format('definition-ordinal', { barLength: bars.length })}\n xAxisDefinition={\n isHorizontal\n ? format('x-axis-numbers-definition', {\n numAxis: xAxisPlacement === 'both' ? 2 : 1,\n start: scale.domain()[0],\n end: scale.domain()[1],\n })\n : format('x-axis-categories-definition', { numAxis: xAxisPlacement === 'both' ? 2 : 1 })\n }\n yAxisDefinition={\n isHorizontal\n ? format('y-axis-categories-definition', { numAxis: yAxisPlacement === 'both' ? 2 : 1 })\n : format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: scale.domain()[0],\n end: scale.domain()[1],\n })\n }\n dataTableRepresentation={{\n header: (\n <thead>\n <tr>\n <th scope=\"col\">Key</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {bars.map((datum) => (\n <tr key={datum.key}>\n <th scope=\"row\">{datum.key}</th>\n <td>{datum.value}</td>\n </tr>\n ))}\n </tbody>\n ),\n }}\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <svg\n width={width}\n height={height}\n aria-label={\n typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n aria-hidden=\"false\"\n >\n <g transform={`translate(${margins.left},${margins.top})`}>\n {['bottom', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"bottom\"\n length={chartWidth}\n scale={isHorizontal ? (scale as AnyScale) : (scaleCategory as AnyScale)}\n x={0}\n y={chartHeight}\n tickValues={xAxisTickValues ?? 4}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n variant={xAxisVariant}\n />\n ) : null}\n {['top', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"top\"\n length={chartWidth}\n scale={isHorizontal ? (scale as AnyScale) : (scaleCategory as AnyScale)}\n x={0}\n y={0}\n tickValues={xAxisTickValues ?? 4}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation ? xAxisTickRotation : areXLabelsRotated ? -45 : 0}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n variant={xAxisVariant}\n />\n ) : null}\n {['left', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"left\"\n length={chartHeight}\n scale={isHorizontal ? (scaleCategory as AnyScale) : (scale as AnyScale)}\n x={0}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 4}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n variant={yAxisVariant}\n />\n ) : null}\n {['right', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"right\"\n length={chartHeight}\n scale={isHorizontal ? (scaleCategory as AnyScale) : (scale as AnyScale)}\n x={chartWidth}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 4}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n variant={yAxisVariant}\n />\n ) : null}\n </g>\n <g transform={`translate(${margins.left},${margins.top})`}>\n {bars.map((datum, index) => {\n const percent = datum.value / total;\n const to = {\n data: {\n ...datum,\n percent,\n },\n };\n const from = cache.current ? { data: cache.current[index] } : undefined;\n\n return (\n <Bar\n color={colorScale?.(to.data.key)!}\n data={to}\n dataset={bars}\n disableAnimations={disableAnimations}\n gap={gap}\n id={`id${id}__bar-${index}`}\n index={index}\n isSelected={Boolean(isBarSelected!(to))}\n key={`bar _${index}`}\n labelDecorator={labelDecorator}\n maxHeight={isHorizontal ? undefined : chartHeight}\n anchorProps={getBarAnchorProps ? getBarAnchorProps(to) : undefined}\n onClick={onBarClick}\n orientation={orientation}\n previousData={from!}\n scale={scale!}\n scalePosition={scaleCategory}\n tooltipVariant={tooltipVariant}\n {...barProps}\n width={\n isHorizontal\n ? undefined\n : barProps?.width && typeof barProps.width === 'number'\n ? barProps.width\n : barWidth\n }\n height={\n isHorizontal\n ? barProps?.height && typeof barProps.height === 'number'\n ? barProps.height\n : barHeight\n : undefined\n }\n role={barRole}\n />\n );\n })}\n </g>\n </svg>\n </StyledBarChart>\n </BarChartContext.Provider>\n </ChartTypeContext.Provider>\n );\n});\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { Comp, Flexbox, 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 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 <Flexbox flexDirection=\"column\" marginTop=\"4px\" gap=\"8px\">\n {categories.map((category) => {\n const value = groupedData?.find((d) => d.category === category)?.value;\n const color = categoryColor(category);\n return value ? (\n <Flexbox key={category} alignItems=\"center\" gap=\"8px\">\n <div style={{ width: '16px', height: '16px', backgroundColor: color }} />\n <Text fontWeight=\"400\" fontSize=\"14px\" lineHeight=\"18px\">\n {categoryDecorator ? categoryDecorator(category) : category}\n </Text>\n <Number fontWeight=\"600\" fontSize=\"14px\" lineHeight=\"18px\" value={value} />\n </Flexbox>\n ) : null;\n })}\n </Flexbox>\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 && bar.value > 0);\n\n const sectionHeight = Math.max(0, Math.min(1, to! - from!)) * chartHeight;\n const sectionY = Math.max(0, Math.min(1, from!)) * chartHeight;\n\n const constantY = d3scaleLinear().domain(scaleY.domain()).range([sectionHeight, sectionHeight]);\n\n return (\n <StyledBarChartOverlay\n key={`${id}-series-overlay`}\n aria-hidden=\"false\"\n role=\"region\"\n {...forwardedProps}\n ref={ref as RefObject<SVGGElement>}\n transform={from === 0 && to === 1 ? `translate(${margins.left},${(margins.top || 0) + sectionY})` : undefined}\n >\n {filteredBarChartBars.map((bar, index: number) => {\n const 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\nexport const BaseBarChart: Comp<BarChartProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n barRole,\n caping,\n chartRef,\n className,\n colorTheme = ColorTheme.default,\n data: propsData,\n dataType: propsDataType,\n emptyComponent,\n id: propsId,\n isBarSelected = () => true,\n labelDecorator,\n legendDecorator,\n legendVariant: propsLegendVariant,\n localeText = { emptyChartText: 'No Data' },\n onBarClick,\n orientation = BarOrientation.horizontal,\n others = true,\n size = ChartSize.medium,\n sortingMethod = 'desc-value',\n theme,\n tooltipDecorator,\n tooltipVariant = TooltipVariant.value,\n xAxisPlacement = 'bottom',\n yAxisPlacement = 'left',\n ...forwardedProps\n } = props;\n const [_id] = useId();\n const id = propsId ?? _id;\n\n const legendVariant = propsLegendVariant ?? BarChartLegendVariant.externalLabel;\n\n if (propsData === undefined || propsData === null) {\n return <LoadingBarChart id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyBarChart\n data={propsData}\n emptyComponent={emptyComponent}\n id={id}\n localeText={localeText}\n size={size}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n const dataType = propsDataType\n ? propsDataType\n : Array.isArray(propsData[0].key)\n ? 'TwoCategoryData'\n : propsData[0].key instanceof Date\n ? 'LinearData'\n : typeof propsData[0].key === 'number'\n ? 'LinearData'\n : typeof propsData[0].key === 'string' && isValidDate(propsData[0].key)\n ? 'LinearData'\n : typeof propsData[0].key === 'string'\n ? 'CategoryData'\n : 'CategoryData';\n\n if (dataType === 'CategoryData') {\n return (\n <RenderedOrdinalBarChart\n barRole={barRole}\n caping={caping}\n chartRef={chartRef}\n className={classNames(BaseBarChart.className, className)}\n data={propsData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n onBarClick={onBarClick}\n orientation={orientation}\n others={others}\n size={size}\n sortingMethod={sortingMethod}\n theme={theme}\n tooltipDecorator={tooltipDecorator}\n colorTheme={colorTheme}\n tooltipVariant={tooltipVariant}\n xAxisPlacement={xAxisPlacement}\n yAxisPlacement={yAxisPlacement}\n {...forwardedProps}\n ref={ref}\n />\n );\n } else if (dataType === 'LinearData' || dataType === 'TwoCategoryData') {\n return (\n <RenderedLinearBarChart\n barRole={barRole}\n chartRef={chartRef}\n className={classNames(BaseBarChart.className, className)}\n data={propsData as LinearData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n legendDecorator={legendDecorator}\n legendVariant={legendVariant}\n onBarClick={onBarClick}\n size={size}\n sortingMethod={sortingMethod}\n theme={theme}\n tooltipDecorator={tooltipDecorator}\n colorTheme={colorTheme}\n tooltipVariant={tooltipVariant}\n xAxisPlacement={xAxisPlacement}\n yAxisPlacement={yAxisPlacement}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return null;\n});\nBaseBarChart.className = CLASSNAME;\nBaseBarChart.displayName = COMPONENT_NAME;\n\nexport const BarChart = Object.assign(BaseBarChart, {\n Section: BarChartSection,\n Bars: BarChartBars,\n Overlay: BarChartOverlay,\n Axis: Axis,\n GroupedTooltip: BarChartGroupedTooltip,\n Legend: Legend,\n LegendItem: LegendItem,\n Title: ChartContainerTitle,\n Description: ChartContainerDescription,\n});\n"],"names":["BarChartLegendVariant","none","externalLabel","externalLabelValue","externalLabelPercent","custom","StyledBarChart","styled","ChartContainer","StyledBarChartSection","g","_ref","$textColor","css","StyledBarChartBars","StyledBarChartOverlay","StyledBarChartEmptyText","div","_ref2","$maxWidth","_ref3","$theme","_ref4","$textSize","_ref5","sizeToDimension","size","ChartSize","small","width","height","fontSize","large","medium","statsBy","arr","sortingMethod","isKeyArray","Array","isArray","key","counts","reduce","prev","curr","value","currentKey","min","max","values","Math","Object","keys","map","first","last","length","trending","overall","sort","getSortingMethod","EmptyBarChart","forwardRef","props","ref","className","emptyComponent","localeText","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","chartDimensions","margins","top","left","right","bottom","chartHeight","chartWidth","scaleRef","useRef","current","d3scaleLinear","domain","range","React","createElement","_extends","Fragment","emptyChartText","transform","Axis","position","scale","x","y","tickValues","LoadingBarChart","enUS","frFR","BarChartContext","createContext","useBarChartContext","context","useContext","Error","ChartTypeContext","undefined","RenderedOrdinalBarChart","_barProps$gap","areXLabelsRotated","barProps","caping","data","propsData","disableAnimations","id","isBarSelected","getBarAnchorProps","labelDecorator","propsMargins","onBarClick","orientation","others","barRole","colorTheme","tooltipVariant","xAxisVariant","propsXAxisVariant","xAxisPlacement","xAxisTickFormat","xAxisTickPadding","xAxisTickRotation","xAxisTickSize","xAxisTickValues","yAxisVariant","propsYAxisVariant","yAxisPlacement","yAxisTickFormat","yAxisTickPadding","yAxisTickRotation","yAxisTickSize","yAxisTickValues","cache","format","useMessageFormatter","intlMessages","colorScale","useFormatCategoricalData","useEffect","isHorizontal","BarOrientation","horizontal","AxisVariant","default","tickValue","_objectSpread","numberOfRows","filter","datum","gap","barHeight","barWidth","total","d3sum","d","useMemo","scaleCategory","d3scaleBand","bars","Provider","mode","definition","barLength","xAxisDefinition","numAxis","start","end","yAxisDefinition","dataTableRepresentation","header","scope","body","includes","tickPadding","tickRotation","tickSize","tickFormat","variant","index","percent","to","from","Bar","color","dataset","isSelected","Boolean","maxHeight","anchorProps","onClick","previousData","scalePosition","role","COMPONENT_NAME","CLASSNAME","BarChartBars","category","categories","direction","hasCategory","scaleX","scaleY","tooltipDecorator","xScaleType","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","Flexbox","flexDirection","margin","Text","fontWeight","style","backgroundColor","Number","acc","marginTop","_groupedData$find","alignItems","lineHeight","COMPONENT_TYPES","AXES","SECTIONS","OVERLAY","BARS","LEGENDS","getComponentPosition","child","_child$type","isValidElement","type","getKey","filterData","filterFn","reduceData","reduceFn","initialValue","isSameKey","previousKey","RenderedLinearBarChart","_chartDimensions$maxW","_chartDimensions$minW","BarDirection","up","legendDecorator","legendVariant","legendProps","propsSortingMethod","propsXAxisTickFormat","xAxisMinValue","xAxisMaxValue","xAxisTickRemodelling","xAxisStartDateOffset","xAxisEndDateOffset","yAxisMinValue","yAxisMaxValue","yAxisTickRemodelling","propsXScaleType","yScaleLogBase","dateParser","sections","sectionList","Children","forEach","isComponent","toArray","c","push","hasSections","flat","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","dataType","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 { Theme, ValueOf } from '@redsift/design-system';\nimport { LegendProps } from '../Legend';\nimport { AnchorProps } from '../DataPoint';\nimport { FormatMessage } from '@redsift/design-system/react-aria/react-aria/i18n/useMessageFormatter';\n\n/**\n * Component's labels variant.\n */\nexport const BarChartLegendVariant = {\n none: 'none',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n custom: 'custom',\n} as const;\nexport type BarChartLegendVariant = ValueOf<typeof BarChartLegendVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\nexport type BarChartDimensions = ChartDimensions & {\n fontSize: number;\n minWidth?: number;\n maxWidth?: number;\n};\n\nexport type XScaleType = 'number' | 'Date' | 'dateString' | undefined;\n\n/**\n * Component props.\n */\nexport interface BarChartProps extends ChartContainerProps, ChartAxesProps {\n /** @deprecated: Use xAxisTickRotation instead. Whether the x axis labels are rotated or not. */\n areXLabelsRotated?: boolean;\n /** Native HTML props to forward to each bar. */\n barProps?: Omit<ComponentProps<'g'>, 'onClick' | 'orientation' | 'ref' | 'scale' | 'direction'> & {\n minWidth?: number;\n 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 '@redsift/charts/utils';\nimport { ChartSize, LinearData, LinearDatum, Statistics, TwoCategoryData, TwoCategoryDatum } from '../../types';\nimport { BarChartDimensions } from './types';\n\nexport const sizeToDimension = (size: ChartSize | BarChartDimensions): BarChartDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return { width: 300, height: 200, fontSize: 30 };\n case ChartSize.large:\n return { width: 500, height: 400, fontSize: 38 };\n case ChartSize.medium:\n default:\n return { width: 400, height: 300, fontSize: 34 };\n }\n};\n\nexport const statsBy: (arr: LinearData | TwoCategoryData, sortingMethod: SortingMethod) => Statistics = (\n arr,\n sortingMethod\n) => {\n const isKeyArray = Array.isArray(arr[0].key);\n\n const counts = (arr as (LinearDatum | TwoCategoryDatum)[]).reduce((prev, curr) => {\n if (!curr.value) {\n return prev;\n }\n const currentKey = isKeyArray ? ((curr as TwoCategoryDatum).key[1] as string) : 'default';\n if (!prev[currentKey as string]) {\n prev[currentKey as string] = {\n value: curr.value,\n min: curr.value,\n max: curr.value,\n values: [curr.value],\n };\n } else {\n prev[currentKey as string] = {\n value: prev[currentKey as string].value + curr.value,\n min: Math.min(prev[currentKey as string].min, curr.value),\n max: Math.max(prev[currentKey as string].max, curr.value),\n values: [...prev[currentKey as string].values, curr.value],\n };\n }\n return prev;\n }, {} as Record<string, { value: number; min: number; max: number; values: number[] }>);\n\n return Object.keys(counts)\n .map((key) => ({\n key: key,\n value: counts[key].value,\n min: counts[key].min,\n max: counts[key].max,\n values: counts[key].values,\n first: counts[key].values[0],\n last: counts[key].values[counts[key].values.length - 1],\n trending: {\n overall:\n ((counts[key].values[counts[key].values.length - 1] - counts[key].values[0]) * 100) / counts[key].values[0],\n },\n }))\n .sort(getSortingMethod(sortingMethod));\n};\n","import React, { forwardRef, RefObject, useRef } from 'react';\nimport { scaleLinear as d3scaleLinear, ScaleLinear as d3ScaleLinear } from 'd3';\n\nimport { AnyScale } from '../../types';\nimport { BarChartProps } from './types';\nimport { StyledBarChart, StyledBarChartEmptyText } from './styles';\nimport { Axis } from '../Axis';\nimport { sizeToDimension } from './utils';\nimport { useTheme } from '@redsift/design-system';\n\nexport const EmptyBarChart = forwardRef<HTMLDivElement, BarChartProps>((props, ref) => {\n const { className, emptyComponent, size, localeText, ...forwardedProps } = props;\n const theme = useTheme();\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: 16, right: 16, bottom: 32 };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n\n const scaleRef = useRef<d3ScaleLinear<number, number>>();\n if (!scaleRef.current) {\n scaleRef.current = d3scaleLinear().domain([]).range([0, chartWidth]);\n }\n\n return (\n <StyledBarChart {...forwardedProps} className={className} ref={ref as RefObject<HTMLDivElement>}>\n {emptyComponent ?? (\n <>\n <StyledBarChartEmptyText $maxWidth={width} $textSize={chartDimensions.fontSize / 2} $theme={theme}>\n <span>{localeText?.emptyChartText}</span>\n </StyledBarChartEmptyText>\n <svg width={width} height={height}>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <Axis\n position=\"bottom\"\n length={chartWidth}\n scale={scaleRef.current as AnyScale}\n x={0}\n y={chartHeight}\n tickValues={4}\n />\n </g>\n </svg>\n </>\n )}\n </StyledBarChart>\n );\n});\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { BarChartProps } from './types';\nimport { StyledBarChart } from './styles';\n\nexport const LoadingBarChart = forwardRef<HTMLDivElement, BarChartProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledBarChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledBarChart>\n );\n }\n);\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import { createContext, useContext } from 'react';\nimport { BarChartState } from './types';\n\nexport const BarChartContext = createContext<BarChartState | null>(null);\n\nexport function useBarChartContext() {\n const context = useContext(BarChartContext);\n if (!context) {\n throw new Error('useBarChartContext must be used within a BarChart');\n }\n return context;\n}\n","import React from 'react';\nimport { useBarChartContext } from '../BarChart/context';\n\nexport type ChartType = 'bar' | 'line' | 'area';\n\nexport const ChartTypeContext = React.createContext<ChartType | undefined>(undefined);\n\nexport const useChartType = (): ChartType | undefined => {\n return React.useContext(ChartTypeContext);\n};\n\nexport const useResolvedChartContext = () => {\n const chartType = useChartType();\n\n switch (chartType) {\n case 'bar':\n return useBarChartContext();\n default:\n return undefined;\n }\n};\n\nexport function useResolvedProp<T>(prop: T | undefined, contextValue: T | undefined, defaultValue?: T): T | undefined {\n if (prop !== undefined) return prop;\n if (contextValue !== undefined) return contextValue;\n return defaultValue;\n}\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef } from 'react';\nimport {\n scaleLinear as d3scaleLinear,\n ScaleLinear as d3ScaleLinear,\n scaleBand as d3scaleBand,\n ScaleBand as d3ScaleBand,\n sum as d3sum,\n} from 'd3';\n\nimport { useTheme, useMessageFormatter } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport { AnyScale, CategoryData } from '../../types';\nimport { BarChartProps, BarChartState } from './types';\nimport { StyledBarChart } from './styles';\nimport { Bar, BarOrientation } from '../Bar';\nimport { Axis, AxisVariant } from '../Axis';\nimport { useFormatCategoricalData } from '../../hooks';\nimport { sizeToDimension } from './utils';\nimport { BarChartContext } from './context';\nimport { ChartTypeContext } from '../ChartContainer/context';\n\ninterface RenderedOrdinalBarChartProps extends Required<Pick<BarChartProps, 'data'>>, Omit<BarChartProps, 'data'> {}\n\nexport const RenderedOrdinalBarChart = forwardRef<HTMLDivElement, RenderedOrdinalBarChartProps>((props, ref) => {\n const {\n areXLabelsRotated,\n barProps,\n caping,\n className,\n data: propsData,\n disableAnimations,\n id,\n isBarSelected,\n getBarAnchorProps,\n labelDecorator,\n margins: propsMargins,\n onBarClick,\n orientation,\n others,\n size,\n sortingMethod,\n barRole,\n colorTheme,\n tooltipVariant,\n xAxisVariant: propsXAxisVariant,\n xAxisPlacement,\n xAxisTickFormat,\n xAxisTickPadding,\n xAxisTickRotation,\n xAxisTickSize,\n xAxisTickValues,\n yAxisVariant: propsYAxisVariant,\n yAxisPlacement,\n yAxisTickFormat,\n yAxisTickPadding,\n yAxisTickRotation,\n yAxisTickSize,\n yAxisTickValues,\n ...forwardedProps\n } = props;\n\n const cache = useRef<CategoryData>();\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const { data, colorScale } = useFormatCategoricalData({\n data: propsData as CategoryData,\n colorTheme: colorTheme!,\n sortingMethod: sortingMethod!,\n caping,\n others,\n theme,\n });\n\n useEffect(() => {\n cache.current = data;\n });\n\n const isHorizontal = orientation === BarOrientation.horizontal;\n const xAxisVariant = propsXAxisVariant\n ? propsXAxisVariant\n : isHorizontal\n ? AxisVariant.default\n : AxisVariant.tickValue;\n const yAxisVariant = propsYAxisVariant ? propsYAxisVariant : isHorizontal ? AxisVariant.none : AxisVariant.default;\n\n const chartDimensions = sizeToDimension(size!);\n const width = chartDimensions.width;\n const height = chartDimensions.height;\n const margins = { top: 16, left: isHorizontal ? 16 : 64, right: 16, bottom: 32, ...propsMargins };\n const chartHeight = height - margins.top - margins.bottom;\n const chartWidth = width - margins.left - margins.right;\n const numberOfRows = data.filter((datum) => datum.value).length;\n const gap = 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 [size]\n );\n const scaleCategory = useMemo<d3ScaleBand<string>>(\n () =>\n d3scaleBand()\n .domain(data.filter((datum) => datum.value).map((datum) => datum.key))\n .range([0, isHorizontal ? chartHeight : chartWidth]),\n [size]\n );\n\n const bars = data.filter((datum) => datum.value);\n\n return (\n <ChartTypeContext.Provider value=\"bar\">\n <BarChartContext.Provider value={{} as BarChartState}>\n <StyledBarChart\n mode={typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={format('definition-ordinal', { barLength: bars.length })}\n xAxisDefinition={\n isHorizontal\n ? format('x-axis-numbers-definition', {\n numAxis: xAxisPlacement === 'both' ? 2 : 1,\n start: scale.domain()[0],\n end: scale.domain()[1],\n })\n : format('x-axis-categories-definition', { numAxis: xAxisPlacement === 'both' ? 2 : 1 })\n }\n yAxisDefinition={\n isHorizontal\n ? format('y-axis-categories-definition', { numAxis: yAxisPlacement === 'both' ? 2 : 1 })\n : format('y-axis-numbers-definition', {\n numAxis: yAxisPlacement === 'both' ? 2 : 1,\n start: scale.domain()[0],\n end: scale.domain()[1],\n })\n }\n dataTableRepresentation={{\n header: (\n <thead>\n <tr>\n <th scope=\"col\">Key</th>\n <th scope=\"col\">Value</th>\n </tr>\n </thead>\n ),\n body: (\n <tbody>\n {bars.map((datum) => (\n <tr key={datum.key}>\n <th scope=\"row\">{datum.key}</th>\n <td>{datum.value}</td>\n </tr>\n ))}\n </tbody>\n ),\n }}\n {...forwardedProps}\n id={id}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <svg\n width={width}\n height={height}\n aria-label={\n typeof onBarClick === 'function' || typeof getBarAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n aria-hidden=\"false\"\n >\n <g transform={`translate(${margins.left},${margins.top})`}>\n {['bottom', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"bottom\"\n length={chartWidth}\n scale={isHorizontal ? (scale as AnyScale) : (scaleCategory as AnyScale)}\n x={0}\n y={chartHeight}\n tickValues={xAxisTickValues ?? 4}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n variant={xAxisVariant}\n />\n ) : null}\n {['top', 'both'].includes(xAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"top\"\n length={chartWidth}\n scale={isHorizontal ? (scale as AnyScale) : (scaleCategory as AnyScale)}\n x={0}\n y={0}\n tickValues={xAxisTickValues ?? 4}\n tickPadding={xAxisTickPadding}\n tickRotation={xAxisTickRotation ? xAxisTickRotation : areXLabelsRotated ? -45 : 0}\n tickSize={xAxisTickSize}\n tickFormat={xAxisTickFormat}\n variant={xAxisVariant}\n />\n ) : null}\n {['left', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"left\"\n length={chartHeight}\n scale={isHorizontal ? (scaleCategory as AnyScale) : (scale as AnyScale)}\n x={0}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 4}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n variant={yAxisVariant}\n />\n ) : null}\n {['right', 'both'].includes(yAxisPlacement!) ? (\n <Axis\n disableAnimations={disableAnimations}\n position=\"right\"\n length={chartHeight}\n scale={isHorizontal ? (scaleCategory as AnyScale) : (scale as AnyScale)}\n x={chartWidth}\n y={chartHeight}\n tickValues={yAxisTickValues ?? 4}\n tickPadding={yAxisTickPadding}\n tickRotation={yAxisTickRotation}\n tickSize={yAxisTickSize}\n tickFormat={yAxisTickFormat}\n variant={yAxisVariant}\n />\n ) : null}\n </g>\n <g transform={`translate(${margins.left},${margins.top})`}>\n {bars.map((datum, index) => {\n const percent = datum.value / total;\n const to = {\n data: {\n ...datum,\n percent,\n },\n };\n const from = cache.current ? { data: cache.current[index] } : undefined;\n\n return (\n <Bar\n color={colorScale?.(to.data.key)!}\n data={to}\n dataset={bars}\n disableAnimations={disableAnimations}\n gap={gap}\n id={`id${id}__bar-${index}`}\n index={index}\n isSelected={Boolean(isBarSelected!(to))}\n key={`bar _${index}`}\n labelDecorator={labelDecorator}\n maxHeight={isHorizontal ? undefined : chartHeight}\n anchorProps={getBarAnchorProps ? getBarAnchorProps(to) : undefined}\n onClick={onBarClick}\n orientation={orientation}\n previousData={from!}\n scale={scale!}\n scalePosition={scaleCategory}\n tooltipVariant={tooltipVariant}\n {...barProps}\n width={\n isHorizontal\n ? undefined\n : barProps?.width && typeof barProps.width === 'number'\n ? barProps.width\n : barWidth\n }\n height={\n isHorizontal\n ? barProps?.height && typeof barProps.height === 'number'\n ? barProps.height\n : barHeight\n : undefined\n }\n role={barRole}\n />\n );\n })}\n </g>\n </svg>\n </StyledBarChart>\n </BarChartContext.Provider>\n </ChartTypeContext.Provider>\n );\n});\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { Comp, Flexbox, 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\nexport const BaseBarChart: Comp<BarChartProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n barRole,\n caping,\n chartRef,\n className,\n colorTheme = ColorTheme.default,\n data: propsData,\n dataType: propsDataType,\n emptyComponent,\n id: propsId,\n isBarSelected = () => true,\n labelDecorator,\n legendDecorator,\n legendVariant: propsLegendVariant,\n localeText = { emptyChartText: 'No Data' },\n onBarClick,\n orientation = BarOrientation.horizontal,\n others = true,\n size = ChartSize.medium,\n sortingMethod = 'desc-value',\n theme,\n tooltipDecorator,\n tooltipVariant = TooltipVariant.value,\n xAxisPlacement = 'bottom',\n yAxisPlacement = 'left',\n ...forwardedProps\n } = props;\n const [_id] = useId();\n const id = propsId ?? _id;\n\n const legendVariant = propsLegendVariant ?? BarChartLegendVariant.externalLabel;\n\n if (propsData === undefined || propsData === null) {\n return <LoadingBarChart id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyBarChart\n data={propsData}\n emptyComponent={emptyComponent}\n id={id}\n localeText={localeText}\n size={size}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n const dataType = propsDataType\n ? propsDataType\n : Array.isArray(propsData[0].key)\n ? 'TwoCategoryData'\n : propsData[0].key instanceof Date\n ? 'LinearData'\n : typeof propsData[0].key === 'number'\n ? 'LinearData'\n : typeof propsData[0].key === 'string' && isValidDate(propsData[0].key)\n ? 'LinearData'\n : typeof propsData[0].key === 'string'\n ? 'CategoryData'\n : 'CategoryData';\n\n if (dataType === 'CategoryData') {\n return (\n <RenderedOrdinalBarChart\n barRole={barRole}\n caping={caping}\n chartRef={chartRef}\n className={classNames(BaseBarChart.className, className)}\n data={propsData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n onBarClick={onBarClick}\n orientation={orientation}\n others={others}\n size={size}\n sortingMethod={sortingMethod}\n theme={theme}\n tooltipDecorator={tooltipDecorator}\n colorTheme={colorTheme}\n tooltipVariant={tooltipVariant}\n xAxisPlacement={xAxisPlacement}\n yAxisPlacement={yAxisPlacement}\n {...forwardedProps}\n ref={ref}\n />\n );\n } else if (dataType === 'LinearData' || dataType === 'TwoCategoryData') {\n return (\n <RenderedLinearBarChart\n barRole={barRole}\n chartRef={chartRef}\n className={classNames(BaseBarChart.className, className)}\n data={propsData as LinearData}\n id={id}\n isBarSelected={isBarSelected}\n labelDecorator={labelDecorator}\n legendDecorator={legendDecorator}\n legendVariant={legendVariant}\n onBarClick={onBarClick}\n size={size}\n sortingMethod={sortingMethod}\n theme={theme}\n tooltipDecorator={tooltipDecorator}\n colorTheme={colorTheme}\n tooltipVariant={tooltipVariant}\n xAxisPlacement={xAxisPlacement}\n yAxisPlacement={yAxisPlacement}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return null;\n});\nBaseBarChart.className = CLASSNAME;\nBaseBarChart.displayName = COMPONENT_NAME;\n\nexport const BarChart = Object.assign(BaseBarChart, {\n Section: BarChartSection,\n Bars: BarChartBars,\n Overlay: BarChartOverlay,\n Axis: Axis,\n GroupedTooltip: BarChartGroupedTooltip,\n Legend: Legend,\n LegendItem: LegendItem,\n Title: ChartContainerTitle,\n Description: ChartContainerDescription,\n});\n"],"names":["BarChartLegendVariant","none","externalLabel","externalLabelValue","externalLabelPercent","custom","StyledBarChart","styled","ChartContainer","StyledBarChartSection","g","_ref","$textColor","css","StyledBarChartBars","StyledBarChartOverlay","StyledBarChartEmptyText","div","_ref2","$maxWidth","_ref3","$theme","_ref4","$textSize","_ref5","sizeToDimension","size","ChartSize","small","width","height","fontSize","large","medium","statsBy","arr","sortingMethod","isKeyArray","Array","isArray","key","counts","reduce","prev","curr","value","currentKey","min","max","values","Math","Object","keys","map","first","last","length","trending","overall","sort","getSortingMethod","EmptyBarChart","forwardRef","props","ref","className","emptyComponent","localeText","forwardedProps","_objectWithoutProperties","_excluded","theme","useTheme","chartDimensions","margins","top","left","right","bottom","chartHeight","chartWidth","scaleRef","useRef","current","d3scaleLinear","domain","range","React","createElement","_extends","Fragment","emptyChartText","transform","Axis","position","scale","x","y","tickValues","LoadingBarChart","enUS","frFR","BarChartContext","createContext","useBarChartContext","context","useContext","Error","ChartTypeContext","undefined","RenderedOrdinalBarChart","_barProps$gap","areXLabelsRotated","barProps","caping","data","propsData","disableAnimations","id","isBarSelected","getBarAnchorProps","labelDecorator","propsMargins","onBarClick","orientation","others","barRole","colorTheme","tooltipVariant","xAxisVariant","propsXAxisVariant","xAxisPlacement","xAxisTickFormat","xAxisTickPadding","xAxisTickRotation","xAxisTickSize","xAxisTickValues","yAxisVariant","propsYAxisVariant","yAxisPlacement","yAxisTickFormat","yAxisTickPadding","yAxisTickRotation","yAxisTickSize","yAxisTickValues","cache","format","useMessageFormatter","intlMessages","colorScale","useFormatCategoricalData","useEffect","isHorizontal","BarOrientation","horizontal","AxisVariant","default","tickValue","_objectSpread","numberOfRows","filter","datum","gap","barHeight","barWidth","total","d3sum","d","useMemo","scaleCategory","d3scaleBand","bars","Provider","mode","definition","barLength","xAxisDefinition","numAxis","start","end","yAxisDefinition","dataTableRepresentation","header","scope","body","includes","tickPadding","tickRotation","tickSize","tickFormat","variant","index","percent","to","from","Bar","color","dataset","isSelected","Boolean","maxHeight","anchorProps","onClick","previousData","scalePosition","role","COMPONENT_NAME","CLASSNAME","BarChartBars","category","categories","direction","hasCategory","scaleX","scaleY","tooltipDecorator","xScaleType","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","legendDecorator","legendVariant","legendProps","propsSortingMethod","propsXAxisTickFormat","xAxisMinValue","xAxisMaxValue","xAxisTickRemodelling","xAxisStartDateOffset","xAxisEndDateOffset","yAxisMinValue","yAxisMaxValue","yAxisTickRemodelling","propsXScaleType","yScaleLogBase","dateParser","sections","sectionList","Children","forEach","isComponent","toArray","c","push","hasSections","flat","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","dataType","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": "types.d.ts",
33
- "version": "11.8.1",
33
+ "version": "11.8.2",
34
34
  "dependencies": {
35
35
  "@emotion/react": "^11.10.4",
36
36
  "@emotion/styled": "^11.10.4",
@@ -88,11 +88,11 @@
88
88
  "ts-jest": "^28.0.3"
89
89
  },
90
90
  "peerDependencies": {
91
- "@redsift/design-system": "^11.8.0-1",
92
- "@redsift/popovers": "^11.8.0-1",
91
+ "@redsift/design-system": "^11.8.2-0",
92
+ "@redsift/popovers": "^11.8.2-0",
93
93
  "react": ">=17",
94
94
  "react-dom": ">=17",
95
95
  "styled-components": "^5.3.5"
96
96
  },
97
- "gitHead": "00fd6d0377d339bd6bae4073a921e55f8d3e1fb9"
97
+ "gitHead": "824c79646018e90e376ca6a8702e07954d28118e"
98
98
  }