@redsift/charts 11.8.0 → 11.8.1-muiv5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_internal/BarChart2.js +12 -9
- package/_internal/BarChart2.js.map +1 -1
- package/_internal/Legend3.js +1 -1
- package/_internal/LineChart2.js +2 -2
- package/_internal/PieChart2.js +2 -2
- package/_internal/ScatterPlot2.js +2 -2
- package/index.d.ts +11 -36
- package/index.js +2 -2
- package/package.json +4 -4
package/_internal/BarChart2.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { _ as _objectWithoutProperties, a as _extends, b as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
|
|
2
2
|
import React__default, { forwardRef, useRef, createContext, useContext, useEffect, useMemo } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
|
-
import { useTheme, useMessageFormatter, Flexbox, Text, isComponent, RedsiftColorGreenD1, RedsiftColorRedD1, RedsiftColorNeutralBlack, useId } from '@redsift/design-system';
|
|
5
|
-
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
6
|
-
import { C as ChartSize, g as getSortingMethod, i as isValidDate, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
|
|
4
|
+
import { useTheme, useMessageFormatter, Flexbox, Text, Number as Number$1, isComponent, RedsiftColorGreenD1, RedsiftColorRedD1, RedsiftColorNeutralBlack, useId } from '@redsift/design-system';
|
|
7
5
|
import { scaleLinear, sum, scaleBand, scaleOrdinal, extent, scaleUtc, scalePoint, utcParse, scaleLog } from 'd3';
|
|
8
6
|
import styled, { css } from 'styled-components';
|
|
9
7
|
import { C as ChartContainer, a as ChartContainerTitle, b as ChartContainerDescription } from './ChartContainer2.js';
|
|
8
|
+
import { C as ChartSize, g as getSortingMethod, i as isValidDate, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
|
|
10
9
|
import { A as Axis, a as AxisVariant, g as getAxisType } from './Axis2.js';
|
|
11
10
|
import { u as useFormatCategoricalData } from './useFormatCategoricalData.js';
|
|
12
11
|
import { a as BarOrientation, B as Bar, b as BarDirection } from './Bar2.js';
|
|
13
12
|
import { L as Legend } from './Legend3.js';
|
|
13
|
+
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
14
14
|
import { L as LegendItem } from './LegendItem2.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -588,6 +588,7 @@ const BarChartBars = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
588
588
|
BarChartBars.className = CLASSNAME$3;
|
|
589
589
|
BarChartBars.displayName = COMPONENT_NAME$3;
|
|
590
590
|
const BarChartGroupedTooltip = _ref => {
|
|
591
|
+
var _groupedData$reduce;
|
|
591
592
|
let {
|
|
592
593
|
dateFormatter,
|
|
593
594
|
categories,
|
|
@@ -623,10 +624,11 @@ const BarChartGroupedTooltip = _ref => {
|
|
|
623
624
|
}, /*#__PURE__*/React__default.createElement(Text, {
|
|
624
625
|
fontWeight: "400",
|
|
625
626
|
fontSize: "14px"
|
|
626
|
-
}, format('total')), /*#__PURE__*/React__default.createElement(
|
|
627
|
+
}, format('total')), /*#__PURE__*/React__default.createElement(Number$1, {
|
|
627
628
|
fontWeight: "600",
|
|
628
|
-
fontSize: "14px"
|
|
629
|
-
|
|
629
|
+
fontSize: "14px",
|
|
630
|
+
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, {
|
|
630
632
|
flexDirection: "column",
|
|
631
633
|
marginTop: "4px",
|
|
632
634
|
gap: "8px"
|
|
@@ -648,11 +650,12 @@ const BarChartGroupedTooltip = _ref => {
|
|
|
648
650
|
fontWeight: "400",
|
|
649
651
|
fontSize: "14px",
|
|
650
652
|
lineHeight: "18px"
|
|
651
|
-
}, categoryDecorator ? categoryDecorator(category) : category), /*#__PURE__*/React__default.createElement(
|
|
653
|
+
}, categoryDecorator ? categoryDecorator(category) : category), /*#__PURE__*/React__default.createElement(Number$1, {
|
|
652
654
|
fontWeight: "600",
|
|
653
655
|
fontSize: "14px",
|
|
654
|
-
lineHeight: "18px"
|
|
655
|
-
|
|
656
|
+
lineHeight: "18px",
|
|
657
|
+
value: value
|
|
658
|
+
})) : null;
|
|
656
659
|
})), children);
|
|
657
660
|
};
|
|
658
661
|
|
|
@@ -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, 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 <Text fontWeight=\"600\" fontSize=\"14px\">\n {groupedData?.reduce((acc, d) => acc + d.value, 0)}\n </Text>\n </Flexbox>\n <Flexbox flexDirection=\"column\" marginTop=\"4px\" gap=\"8px\">\n {categories.map((category) => {\n const value = groupedData?.find((d) => d.category === category)?.value;\n const color = categoryColor(category);\n return value ? (\n <Flexbox key={category} alignItems=\"center\" gap=\"8px\">\n <div style={{ width: '16px', height: '16px', backgroundColor: color }} />\n <Text fontWeight=\"400\" fontSize=\"14px\" lineHeight=\"18px\">\n {categoryDecorator ? categoryDecorator(category) : category}\n </Text>\n <Text fontWeight=\"600\" fontSize=\"14px\" lineHeight=\"18px\">\n {value}\n </Text>\n </Flexbox>\n ) : null;\n })}\n </Flexbox>\n {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","dateFormatter","categoryDecorator","categoryColor","children","Flexbox","flexDirection","margin","Text","fontWeight","style","backgroundColor","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","Number","isNaN","svgRef","maxWidth","Infinity","minWidth","numberOfBars","d3extent","nice","parse","valueOf","startDate","offset","endDate","d3scaleUtc","_ref6","d3scalePoint","statsByCategory","useColor","a","currentKeyA","currentKeyB","previousValue","currentValue","currentIndex","_key$","currentKeyD","formattedKeyD","d3utcParse","isSameSection","_previousValue","findSectionIndex","cat","findIndex","section","currentSection","prevSection","getScaleY","_ref7","_ref8","arguments","hasSectionTitle","d3scaleLog","clamp","base","minimalGap","i","abs","k","pivotedTable","item","formattedKey","toString","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 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":";;;;;;;;;;;;;;;AA6BA;AACA;AACA;AACO,MAAMA,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,aAAa,EAAE,eAAe;AAC9BC,EAAAA,kBAAkB,EAAE,oBAAoB;AACxCC,EAAAA,oBAAoB,EAAE,sBAAsB;AAC5CC,EAAAA,MAAM,EAAE,QAAA;AACV,EAAU;;AAeV;AACA;AACA;;AClDA;AACA;AACA;MACaC,cAAc,GAAGC,MAAM,CAACC,cAAc,CAAuB,CAAC,EAAA;AAE9DC,MAAAA,qBAAqB,GAAGF,MAAM,CAACG,CAA8B,CAAA;AAC1E;AACA,IAAA,EAAMC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,UAAAA;AAAW,GAAC,GAAAD,IAAA,CAAA;AAAA,EAAA,OAAKE,GAAI,CAAA;AAC9B,YAAA,EAAcD,UAAW,CAAA;AACzB,IAAK,CAAA,CAAA;AAAA,CAAC,CAAA;AACN;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;MAEYE,kBAAkB,GAAGP,MAAM,CAACG,CAA2B,CAAC,EAAA;AAExDK,MAAAA,qBAAqB,GAAGR,MAAM,CAACG,CAA2B,CAAA;AACvE;AACA;AACA;AACA,EAAC;AAEYM,MAAAA,uBAAuB,GAAGT,MAAM,CAACU,GAI3C,CAAA;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAA,EAAiBC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAAD,KAAA,CAAA;AAAA,EAAA,OAAKC,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C;AACA;AACA;AACA;AACA,WAAA,EAAaC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,GAAAD,KAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBC,MAAO,CAA0B,yBAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AACtF,eAAA,EAAiBC,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAAD,KAAA,CAAA;AAAA,EAAA,OAAKC,SAAS,CAAA;AAAA,CAAC,CAAA;AAC9C,iBAAA,EAAmBC,KAAA,IAAA;EAAA,IAAC;AAAED,IAAAA,SAAAA;AAAU,GAAC,GAAAC,KAAA,CAAA;AAAA,EAAA,OAAKD,SAAS,CAAA;AAAA,CAAC,CAAA;AAChD;AACA;;ACrDO,MAAME,eAAe,GAAIC,IAAoC,IAAyB;AAC3F,EAAA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;AAC5B,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,QAAQA,IAAI;IACV,KAAKC,SAAS,CAACC,KAAK;MAClB,OAAO;AAAEC,QAAAA,KAAK,EAAE,GAAG;AAAEC,QAAAA,MAAM,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,EAAA;OAAI,CAAA;IAClD,KAAKJ,SAAS,CAACK,KAAK;MAClB,OAAO;AAAEH,QAAAA,KAAK,EAAE,GAAG;AAAEC,QAAAA,MAAM,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,EAAA;OAAI,CAAA;IAClD,KAAKJ,SAAS,CAACM,MAAM,CAAA;AACrB,IAAA;MACE,OAAO;AAAEJ,QAAAA,KAAK,EAAE,GAAG;AAAEC,QAAAA,MAAM,EAAE,GAAG;AAAEC,QAAAA,QAAQ,EAAE,EAAA;OAAI,CAAA;AACpD,GAAA;AACF,CAAC,CAAA;AAEM,MAAMG,OAAwF,GAAGA,CACtGC,GAAG,EACHC,aAAa,KACV;AACH,EAAA,MAAMC,UAAU,GAAGC,KAAK,CAACC,OAAO,CAACJ,GAAG,CAAC,CAAC,CAAC,CAACK,GAAG,CAAC,CAAA;EAE5C,MAAMC,MAAM,GAAIN,GAAG,CAAwCO,MAAM,CAAC,CAACC,IAAI,EAAEC,IAAI,KAAK;AAChF,IAAA,IAAI,CAACA,IAAI,CAACC,KAAK,EAAE;AACf,MAAA,OAAOF,IAAI,CAAA;AACb,KAAA;IACA,MAAMG,UAAU,GAAGT,UAAU,GAAKO,IAAI,CAAsBJ,GAAG,CAAC,CAAC,CAAC,GAAc,SAAS,CAAA;AACzF,IAAA,IAAI,CAACG,IAAI,CAACG,UAAU,CAAW,EAAE;MAC/BH,IAAI,CAACG,UAAU,CAAW,GAAG;QAC3BD,KAAK,EAAED,IAAI,CAACC,KAAK;QACjBE,GAAG,EAAEH,IAAI,CAACC,KAAK;QACfG,GAAG,EAAEJ,IAAI,CAACC,KAAK;AACfI,QAAAA,MAAM,EAAE,CAACL,IAAI,CAACC,KAAK,CAAA;OACpB,CAAA;AACH,KAAC,MAAM;MACLF,IAAI,CAACG,UAAU,CAAW,GAAG;QAC3BD,KAAK,EAAEF,IAAI,CAACG,UAAU,CAAW,CAACD,KAAK,GAAGD,IAAI,CAACC,KAAK;AACpDE,QAAAA,GAAG,EAAEG,IAAI,CAACH,GAAG,CAACJ,IAAI,CAACG,UAAU,CAAW,CAACC,GAAG,EAAEH,IAAI,CAACC,KAAK,CAAC;AACzDG,QAAAA,GAAG,EAAEE,IAAI,CAACF,GAAG,CAACL,IAAI,CAACG,UAAU,CAAW,CAACE,GAAG,EAAEJ,IAAI,CAACC,KAAK,CAAC;AACzDI,QAAAA,MAAM,EAAE,CAAC,GAAGN,IAAI,CAACG,UAAU,CAAW,CAACG,MAAM,EAAEL,IAAI,CAACC,KAAK,CAAA;OAC1D,CAAA;AACH,KAAA;AACA,IAAA,OAAOF,IAAI,CAAA;GACZ,EAAE,EAAmF,CAAC,CAAA;EAEvF,OAAOQ,MAAM,CAACC,IAAI,CAACX,MAAM,CAAC,CACvBY,GAAG,CAAEb,GAAG,KAAM;AACbA,IAAAA,GAAG,EAAEA,GAAG;AACRK,IAAAA,KAAK,EAAEJ,MAAM,CAACD,GAAG,CAAC,CAACK,KAAK;AACxBE,IAAAA,GAAG,EAAEN,MAAM,CAACD,GAAG,CAAC,CAACO,GAAG;AACpBC,IAAAA,GAAG,EAAEP,MAAM,CAACD,GAAG,CAAC,CAACQ,GAAG;AACpBC,IAAAA,MAAM,EAAER,MAAM,CAACD,GAAG,CAAC,CAACS,MAAM;IAC1BK,KAAK,EAAEb,MAAM,CAACD,GAAG,CAAC,CAACS,MAAM,CAAC,CAAC,CAAC;AAC5BM,IAAAA,IAAI,EAAEd,MAAM,CAACD,GAAG,CAAC,CAACS,MAAM,CAACR,MAAM,CAACD,GAAG,CAAC,CAACS,MAAM,CAACO,MAAM,GAAG,CAAC,CAAC;AACvDC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,OAAO,EACJ,CAACjB,MAAM,CAACD,GAAG,CAAC,CAACS,MAAM,CAACR,MAAM,CAACD,GAAG,CAAC,CAACS,MAAM,CAACO,MAAM,GAAG,CAAC,CAAC,GAAGf,MAAM,CAACD,GAAG,CAAC,CAACS,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAIR,MAAM,CAACD,GAAG,CAAC,CAACS,MAAM,CAAC,CAAC,CAAA;AAC9G,KAAA;GACD,CAAC,CAAC,CACFU,IAAI,CAACC,gBAAgB,CAACxB,aAAa,CAAC,CAAC,CAAA;AAC1C,CAAC;;;ACtDM,MAAMyB,aAAa,gBAAGC,UAAU,CAAgC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACrF,MAAM;MAAEC,SAAS;MAAEC,cAAc;MAAExC,IAAI;AAAEyC,MAAAA,UAAAA;AAA8B,KAAC,GAAGJ,KAAK;AAAxBK,IAAAA,cAAc,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,WAAA,CAAA,CAAA;AAChF,EAAA,MAAMC,KAAK,GAAGC,QAAQ,EAAE,CAAA;AAExB,EAAA,MAAMC,eAAe,GAAGhD,eAAe,CAACC,IAAK,CAAC,CAAA;AAC9C,EAAA,MAAMG,KAAK,GAAG4C,eAAe,CAAC5C,KAAK,CAAA;AACnC,EAAA,MAAMC,MAAM,GAAG2C,eAAe,CAAC3C,MAAM,CAAA;AACrC,EAAA,MAAM4C,OAAO,GAAG;AAAEC,IAAAA,GAAG,EAAE,EAAE;AAAEC,IAAAA,IAAI,EAAE,EAAE;AAAEC,IAAAA,KAAK,EAAE,EAAE;AAAEC,IAAAA,MAAM,EAAE,EAAA;GAAI,CAAA;EAC5D,MAAMC,WAAW,GAAGjD,MAAM,GAAG4C,OAAO,CAACC,GAAG,GAAGD,OAAO,CAACI,MAAM,CAAA;EACzD,MAAME,UAAU,GAAGnD,KAAK,GAAG6C,OAAO,CAACE,IAAI,GAAGF,OAAO,CAACG,KAAK,CAAA;AAEvD,EAAA,MAAMI,QAAQ,GAAGC,MAAM,EAAiC,CAAA;AACxD,EAAA,IAAI,CAACD,QAAQ,CAACE,OAAO,EAAE;AACrBF,IAAAA,QAAQ,CAACE,OAAO,GAAGC,WAAa,EAAE,CAACC,MAAM,CAAC,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,EAAEN,UAAU,CAAC,CAAC,CAAA;AACtE,GAAA;EAEA,oBACEO,cAAA,CAAAC,aAAA,CAAClF,cAAc,EAAAmF,QAAA,KAAKrB,cAAc,EAAA;AAAEH,IAAAA,SAAS,EAAEA,SAAU;AAACD,IAAAA,GAAG,EAAEA,GAAAA;AAAiC,GAAA,CAAA,EAC7FE,cAAc,KAAdA,IAAAA,IAAAA,cAAc,cAAdA,cAAc,gBACbqB,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAG,QAAA,EAAA,IAAA,eACEH,cAAA,CAAAC,aAAA,CAACxE,uBAAuB,EAAA;AAACG,IAAAA,SAAS,EAAEU,KAAM;AAACN,IAAAA,SAAS,EAAEkD,eAAe,CAAC1C,QAAQ,GAAG,CAAE;AAACV,IAAAA,MAAM,EAAEkD,KAAAA;AAAM,GAAA,eAChGgB,cAAA,CAAAC,aAAA,CAAOrB,MAAAA,EAAAA,IAAAA,EAAAA,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEwB,cAAqB,CACjB,CAAC,eAC1BJ,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK3D,IAAAA,KAAK,EAAEA,KAAM;AAACC,IAAAA,MAAM,EAAEA,MAAAA;GACzByD,eAAAA,cAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGI,SAAS,EAAG,aAAYlB,OAAO,CAACE,IAAK,CAAGF,CAAAA,EAAAA,OAAO,CAACC,GAAI,CAAA,CAAA,CAAA;AAAG,GAAA,eACxDY,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHC,IAAAA,QAAQ,EAAC,QAAQ;AACjBtC,IAAAA,MAAM,EAAEwB,UAAW;IACnBe,KAAK,EAAEd,QAAQ,CAACE,OAAoB;AACpCa,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,CAAC,EAAElB,WAAY;AACfmB,IAAAA,UAAU,EAAE,CAAA;AAAE,GACf,CACA,CACA,CACL,CAEU,CAAC,CAAA;AAErB,CAAC,CAAC;;;AC5CK,MAAMC,eAAe,gBAAGrC,UAAU,CACvC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACd,MAAM;AAAEC,MAAAA,SAAAA;AAA6B,KAAC,GAAGF,KAAK;AAAxBK,IAAAA,cAAc,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,WAAA,CAAA,CAAA;EAE9C,oBACEiB,cAAA,CAAAC,aAAA,CAAClF,cAAc,EAAAmF,QAAA,KACTrB,cAAc,EAAA;AAClBH,IAAAA,SAAS,EAAEA,SAAU;AACrBD,IAAAA,GAAG,EAAEA,GAAAA;AAAiC,GAAA,CAAA,EACvC,YAEe,CAAC,CAAA;AAErB,CACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBD,mBAAe;AACb,EAAA,OAAO,EAAEoC,IAAI;AACb,EAAA,OAAO,EAAEC,IAAAA;AACX,CAAC;;ACHM,MAAMC,eAAe,gBAAGC,aAAa,CAAuB,IAAI,CAAC,CAAA;AAEjE,SAASC,kBAAkBA,GAAG;AACnC,EAAA,MAAMC,OAAO,GAAGC,UAAU,CAACJ,eAAe,CAAC,CAAA;EAC3C,IAAI,CAACG,OAAO,EAAE;AACZ,IAAA,MAAM,IAAIE,KAAK,CAAC,mDAAmD,CAAC,CAAA;AACtE,GAAA;AACA,EAAA,OAAOF,OAAO,CAAA;AAChB;;ACNO,MAAMG,gBAAgB,gBAAGrB,cAAK,CAACgB,aAAa,CAAwBM,SAAS,CAAC;;;ACmB9E,MAAMC,uBAAuB,gBAAGhD,UAAU,CAA+C,CAACC,KAAK,EAAEC,GAAG,KAAK;AAAA,EAAA,IAAA+C,aAAA,CAAA;EAC9G,MAAM;MACJC,iBAAiB;MACjBC,QAAQ;MACRC,MAAM;MACNjD,SAAS;AACTkD,MAAAA,IAAI,EAAEC,SAAS;MACfC,iBAAiB;MACjBC,EAAE;MACFC,aAAa;MACbC,iBAAiB;MACjBC,cAAc;AACd/C,MAAAA,OAAO,EAAEgD,YAAY;MACrBC,UAAU;MACVC,WAAW;MACXC,MAAM;MACNnG,IAAI;MACJU,aAAa;MACb0F,OAAO;MACPC,UAAU;MACVC,cAAc;AACdC,MAAAA,YAAY,EAAEC,iBAAiB;MAC/BC,cAAc;MACdC,eAAe;MACfC,gBAAgB;MAChBC,iBAAiB;MACjBC,aAAa;MACbC,eAAe;AACfC,MAAAA,YAAY,EAAEC,iBAAiB;MAC/BC,cAAc;MACdC,eAAe;MACfC,gBAAgB;MAChBC,iBAAiB;MACjBC,aAAa;AACbC,MAAAA,eAAAA;AAEF,KAAC,GAAGjF,KAAK;AADJK,IAAAA,cAAc,GAAAC,wBAAA,CACfN,KAAK,EAAAO,WAAA,CAAA,CAAA;AAET,EAAA,MAAM2E,KAAK,GAAG/D,MAAM,EAAgB,CAAA;AACpC,EAAA,MAAMX,KAAK,GAAGC,QAAQ,EAAE,CAAA;AAExB,EAAA,MAAM0E,MAAM,GAAGC,mBAAmB,CAACC,YAAY,CAAC,CAAA;EAEhD,MAAM;IAAEjC,IAAI;AAAEkC,IAAAA,UAAAA;GAAY,GAAGC,wBAAwB,CAAC;AACpDnC,IAAAA,IAAI,EAAEC,SAAyB;AAC/BW,IAAAA,UAAU,EAAEA,UAAW;AACvB3F,IAAAA,aAAa,EAAEA,aAAc;IAC7B8E,MAAM;IACNW,MAAM;AACNtD,IAAAA,KAAAA;AACF,GAAC,CAAC,CAAA;AAEFgF,EAAAA,SAAS,CAAC,MAAM;IACdN,KAAK,CAAC9D,OAAO,GAAGgC,IAAI,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMqC,YAAY,GAAG5B,WAAW,KAAK6B,cAAc,CAACC,UAAU,CAAA;AAC9D,EAAA,MAAMzB,YAAY,GAAGC,iBAAiB,GAClCA,iBAAiB,GACjBsB,YAAY,GACZG,WAAW,CAACC,OAAO,GACnBD,WAAW,CAACE,SAAS,CAAA;AACzB,EAAA,MAAMpB,YAAY,GAAGC,iBAAiB,GAAGA,iBAAiB,GAAGc,YAAY,GAAGG,WAAW,CAAC1J,IAAI,GAAG0J,WAAW,CAACC,OAAO,CAAA;AAElH,EAAA,MAAMnF,eAAe,GAAGhD,eAAe,CAACC,IAAK,CAAC,CAAA;AAC9C,EAAA,MAAMG,KAAK,GAAG4C,eAAe,CAAC5C,KAAK,CAAA;AACnC,EAAA,MAAMC,MAAM,GAAG2C,eAAe,CAAC3C,MAAM,CAAA;EACrC,MAAM4C,OAAO,GAAAoF,cAAA,CAAA;AAAKnF,IAAAA,GAAG,EAAE,EAAE;AAAEC,IAAAA,IAAI,EAAE4E,YAAY,GAAG,EAAE,GAAG,EAAE;AAAE3E,IAAAA,KAAK,EAAE,EAAE;AAAEC,IAAAA,MAAM,EAAE,EAAA;AAAE,GAAA,EAAK4C,YAAY,CAAE,CAAA;EACjG,MAAM3C,WAAW,GAAGjD,MAAM,GAAG4C,OAAO,CAACC,GAAG,GAAGD,OAAO,CAACI,MAAM,CAAA;EACzD,MAAME,UAAU,GAAGnD,KAAK,GAAG6C,OAAO,CAACE,IAAI,GAAGF,OAAO,CAACG,KAAK,CAAA;AACvD,EAAA,MAAMkF,YAAY,GAAG5C,IAAI,CAAC6C,MAAM,CAAEC,KAAK,IAAKA,KAAK,CAACpH,KAAK,CAAC,CAACW,MAAM,CAAA;AAC/D,EAAA,MAAM0G,GAAG,GAAAnD,CAAAA,aAAA,GAAGE,QAAQ,aAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAEiD,GAAG,MAAAnD,IAAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,aAAA,GAAI,CAAC,CAAA;AAE9B,EAAA,MAAMoD,SAAS,GAAGpF,WAAW,GAAGgF,YAAY,GAAGG,GAAG,CAAA;AAClD,EAAA,MAAME,QAAQ,GAAGpF,UAAU,GAAG+E,YAAY,GAAGG,GAAG,CAAA;EAChD,MAAMG,KAAK,GAAGC,GAAK,CAACnD,IAAI,EAAGoD,CAAC,IAAKA,CAAC,CAAC1H,KAAK,CAAC,CAAA;EAEzC,MAAMkD,KAAK,GAAGyE,OAAO,CACnB,MACEpF,WAAa,EAAE,CACZC,MAAM,CAAC,CAAC,CAAC,EAAEnC,IAAI,CAACF,GAAG,CAAC,GAAGmE,IAAI,CAAC9D,GAAG,CAAC1C,IAAA,IAAA;IAAA,IAAC;AAAEkC,MAAAA,KAAAA;AAAM,KAAC,GAAAlC,IAAA,CAAA;AAAA,IAAA,OAAKkC,KAAK,CAAA;GAAC,CAAA,CAAC,CAAC,CAAC,CACxDyC,KAAK,CAACkE,YAAY,GAAG,CAAC,CAAC,EAAExE,UAAU,CAAC,GAAG,CAACD,WAAW,EAAE,CAAC,CAAC,CAAC,EAC7D,CAACrD,IAAI,CACP,CAAC,CAAA;EACD,MAAM+I,aAAa,GAAGD,OAAO,CAC3B,MACEE,SAAW,EAAE,CACVrF,MAAM,CAAC8B,IAAI,CAAC6C,MAAM,CAAEC,KAAK,IAAKA,KAAK,CAACpH,KAAK,CAAC,CAACQ,GAAG,CAAE4G,KAAK,IAAKA,KAAK,CAACzH,GAAG,CAAC,CAAC,CACrE8C,KAAK,CAAC,CAAC,CAAC,EAAEkE,YAAY,GAAGzE,WAAW,GAAGC,UAAU,CAAC,CAAC,EACxD,CAACtD,IAAI,CACP,CAAC,CAAA;EAED,MAAMiJ,IAAI,GAAGxD,IAAI,CAAC6C,MAAM,CAAEC,KAAK,IAAKA,KAAK,CAACpH,KAAK,CAAC,CAAA;AAEhD,EAAA,oBACE0C,cAAA,CAAAC,aAAA,CAACoB,gBAAgB,CAACgE,QAAQ,EAAA;AAAC/H,IAAAA,KAAK,EAAC,KAAA;AAAK,GAAA,eACpC0C,cAAA,CAAAC,aAAA,CAACc,eAAe,CAACsE,QAAQ,EAAA;AAAC/H,IAAAA,KAAK,EAAE,EAAC;AAAmB,GAAA,eACnD0C,cAAA,CAAAC,aAAA,CAAClF,cAAc,EAAAmF,QAAA,CAAA;AACboF,IAAAA,IAAI,EAAE,OAAOlD,UAAU,KAAK,UAAU,IAAI,OAAOH,iBAAiB,KAAK,UAAU,GAAG,aAAa,GAAG,QAAS;AAC7GsD,IAAAA,UAAU,EAAE5B,MAAM,CAAC,oBAAoB,EAAE;MAAE6B,SAAS,EAAEJ,IAAI,CAACnH,MAAAA;AAAO,KAAC,CAAE;AACrEwH,IAAAA,eAAe,EACbxB,YAAY,GACRN,MAAM,CAAC,2BAA2B,EAAE;AAClC+B,MAAAA,OAAO,EAAE9C,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;MAC1C+C,KAAK,EAAEnF,KAAK,CAACV,MAAM,EAAE,CAAC,CAAC,CAAC;AACxB8F,MAAAA,GAAG,EAAEpF,KAAK,CAACV,MAAM,EAAE,CAAC,CAAC,CAAA;AACvB,KAAC,CAAC,GACF6D,MAAM,CAAC,8BAA8B,EAAE;AAAE+B,MAAAA,OAAO,EAAE9C,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAA;AAAE,KAAC,CAC1F;AACDiD,IAAAA,eAAe,EACb5B,YAAY,GACRN,MAAM,CAAC,8BAA8B,EAAE;AAAE+B,MAAAA,OAAO,EAAEtC,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAA;AAAE,KAAC,CAAC,GACtFO,MAAM,CAAC,2BAA2B,EAAE;AAClC+B,MAAAA,OAAO,EAAEtC,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;MAC1CuC,KAAK,EAAEnF,KAAK,CAACV,MAAM,EAAE,CAAC,CAAC,CAAC;AACxB8F,MAAAA,GAAG,EAAEpF,KAAK,CAACV,MAAM,EAAE,CAAC,CAAC,CAAA;AACvB,KAAC,CACN;AACDgG,IAAAA,uBAAuB,EAAE;MACvBC,MAAM,eACJ/F,cAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,eACED,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,eACED,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI+F,QAAAA,KAAK,EAAC,KAAA;AAAK,OAAA,EAAC,KAAO,CAAC,eACxBhG,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI+F,QAAAA,KAAK,EAAC,KAAA;OAAM,EAAA,OAAS,CACvB,CACC,CACR;AACDC,MAAAA,IAAI,eACFjG,cAAA,CAAAC,aAAA,CACGmF,OAAAA,EAAAA,IAAAA,EAAAA,IAAI,CAACtH,GAAG,CAAE4G,KAAK,iBACd1E,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;QAAIhD,GAAG,EAAEyH,KAAK,CAACzH,GAAAA;OACb+C,eAAAA,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI+F,QAAAA,KAAK,EAAC,KAAA;AAAK,OAAA,EAAEtB,KAAK,CAACzH,GAAQ,CAAC,eAChC+C,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAKyE,KAAK,CAACpH,KAAU,CACnB,CACL,CACI,CAAA;AAEX,KAAA;AAAE,GAAA,EACEuB,cAAc,EAAA;AAClBkD,IAAAA,EAAE,EAAEA,EAAG;AACPrD,IAAAA,SAAS,EAAEA,SAAU;AACrBD,IAAAA,GAAG,EAAEA,GAAAA;GAELuB,CAAAA,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACE3D,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,MAAM,EAAEA,MAAO;AACf,IAAA,YAAA,EACE,OAAO6F,UAAU,KAAK,UAAU,IAAI,OAAOH,iBAAiB,KAAK,UAAU,GACvE0B,MAAM,CAAC,mBAAmB,CAAC,GAC3BA,MAAM,CAAC,cAAc,CAC1B;IACD,aAAY,EAAA,OAAA;GAEZ3D,eAAAA,cAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGI,SAAS,EAAG,aAAYlB,OAAO,CAACE,IAAK,CAAGF,CAAAA,EAAAA,OAAO,CAACC,GAAI,CAAA,CAAA,CAAA;AAAG,GAAA,EACvD,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC8G,QAAQ,CAACtD,cAAe,CAAC,gBAC3C5C,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHwB,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCvB,IAAAA,QAAQ,EAAC,QAAQ;AACjBtC,IAAAA,MAAM,EAAEwB,UAAW;AACnBe,IAAAA,KAAK,EAAEyD,YAAY,GAAIzD,KAAK,GAAiB0E,aAA2B;AACxEzE,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,CAAC,EAAElB,WAAY;AACfmB,IAAAA,UAAU,EAAEsC,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,CAAE;AACjCkD,IAAAA,WAAW,EAAErD,gBAAiB;AAC9BsD,IAAAA,YAAY,EAAErD,iBAAkB;AAChCsD,IAAAA,QAAQ,EAAErD,aAAc;AACxBsD,IAAAA,UAAU,EAAEzD,eAAgB;AAC5B0D,IAAAA,OAAO,EAAE7D,YAAAA;AAAa,GACvB,CAAC,GACA,IAAI,EACP,CAAC,KAAK,EAAE,MAAM,CAAC,CAACwD,QAAQ,CAACtD,cAAe,CAAC,gBACxC5C,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHwB,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCvB,IAAAA,QAAQ,EAAC,KAAK;AACdtC,IAAAA,MAAM,EAAEwB,UAAW;AACnBe,IAAAA,KAAK,EAAEyD,YAAY,GAAIzD,KAAK,GAAiB0E,aAA2B;AACxEzE,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,UAAU,EAAEsC,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,CAAE;AACjCkD,IAAAA,WAAW,EAAErD,gBAAiB;IAC9BsD,YAAY,EAAErD,iBAAiB,GAAGA,iBAAiB,GAAGtB,iBAAiB,GAAG,CAAC,EAAE,GAAG,CAAE;AAClF4E,IAAAA,QAAQ,EAAErD,aAAc;AACxBsD,IAAAA,UAAU,EAAEzD,eAAgB;AAC5B0D,IAAAA,OAAO,EAAE7D,YAAAA;AAAa,GACvB,CAAC,GACA,IAAI,EACP,CAAC,MAAM,EAAE,MAAM,CAAC,CAACwD,QAAQ,CAAC9C,cAAe,CAAC,gBACzCpD,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHwB,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCvB,IAAAA,QAAQ,EAAC,MAAM;AACftC,IAAAA,MAAM,EAAEuB,WAAY;AACpBgB,IAAAA,KAAK,EAAEyD,YAAY,GAAIiB,aAAa,GAAiB1E,KAAmB;AACxEC,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,CAAC,EAAElB,WAAY;AACfmB,IAAAA,UAAU,EAAE8C,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,CAAE;AACjC0C,IAAAA,WAAW,EAAE7C,gBAAiB;AAC9B8C,IAAAA,YAAY,EAAE7C,iBAAkB;AAChC8C,IAAAA,QAAQ,EAAE7C,aAAc;AACxB8C,IAAAA,UAAU,EAAEjD,eAAgB;AAC5BkD,IAAAA,OAAO,EAAErD,YAAAA;AAAa,GACvB,CAAC,GACA,IAAI,EACP,CAAC,OAAO,EAAE,MAAM,CAAC,CAACgD,QAAQ,CAAC9C,cAAe,CAAC,gBAC1CpD,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHwB,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCvB,IAAAA,QAAQ,EAAC,OAAO;AAChBtC,IAAAA,MAAM,EAAEuB,WAAY;AACpBgB,IAAAA,KAAK,EAAEyD,YAAY,GAAIiB,aAAa,GAAiB1E,KAAmB;AACxEC,IAAAA,CAAC,EAAEhB,UAAW;AACdiB,IAAAA,CAAC,EAAElB,WAAY;AACfmB,IAAAA,UAAU,EAAE8C,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,CAAE;AACjC0C,IAAAA,WAAW,EAAE7C,gBAAiB;AAC9B8C,IAAAA,YAAY,EAAE7C,iBAAkB;AAChC8C,IAAAA,QAAQ,EAAE7C,aAAc;AACxB8C,IAAAA,UAAU,EAAEjD,eAAgB;AAC5BkD,IAAAA,OAAO,EAAErD,YAAAA;AAAa,GACvB,CAAC,GACA,IACH,CAAC,eACJlD,cAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGI,SAAS,EAAG,aAAYlB,OAAO,CAACE,IAAK,CAAGF,CAAAA,EAAAA,OAAO,CAACC,GAAI,CAAA,CAAA,CAAA;GACpDgG,EAAAA,IAAI,CAACtH,GAAG,CAAC,CAAC4G,KAAK,EAAE8B,KAAK,KAAK;AAC1B,IAAA,MAAMC,OAAO,GAAG/B,KAAK,CAACpH,KAAK,GAAGwH,KAAK,CAAA;AACnC,IAAA,MAAM4B,EAAE,GAAG;AACT9E,MAAAA,IAAI,EAAA2C,cAAA,CAAAA,cAAA,KACCG,KAAK,CAAA,EAAA,EAAA,EAAA;AACR+B,QAAAA,OAAAA;AAAO,OAAA,CAAA;KAEV,CAAA;AACD,IAAA,MAAME,IAAI,GAAGjD,KAAK,CAAC9D,OAAO,GAAG;AAAEgC,MAAAA,IAAI,EAAE8B,KAAK,CAAC9D,OAAO,CAAC4G,KAAK,CAAA;AAAE,KAAC,GAAGlF,SAAS,CAAA;AAEvE,IAAA,oBACEtB,cAAA,CAAAC,aAAA,CAAC2G,GAAG,EAAA1G,QAAA,CAAA;AACF2G,MAAAA,KAAK,EAAE/C,UAAU,KAAVA,IAAAA,IAAAA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAG4C,EAAE,CAAC9E,IAAI,CAAC3E,GAAG,CAAG;AAClC2E,MAAAA,IAAI,EAAE8E,EAAG;AACTI,MAAAA,OAAO,EAAE1B,IAAK;AACdtD,MAAAA,iBAAiB,EAAEA,iBAAkB;AACrC6C,MAAAA,GAAG,EAAEA,GAAI;AACT5C,MAAAA,EAAE,EAAG,CAAA,EAAA,EAAIA,EAAG,CAAA,MAAA,EAAQyE,KAAM,CAAE,CAAA;AAC5BA,MAAAA,KAAK,EAAEA,KAAM;AACbO,MAAAA,UAAU,EAAEC,OAAO,CAAChF,aAAa,CAAE0E,EAAE,CAAC,CAAE;MACxCzJ,GAAG,EAAG,CAAOuJ,KAAAA,EAAAA,KAAM,CAAE,CAAA;AACrBtE,MAAAA,cAAc,EAAEA,cAAe;AAC/B+E,MAAAA,SAAS,EAAEhD,YAAY,GAAG3C,SAAS,GAAG9B,WAAY;MAClD0H,WAAW,EAAEjF,iBAAiB,GAAGA,iBAAiB,CAACyE,EAAE,CAAC,GAAGpF,SAAU;AACnE6F,MAAAA,OAAO,EAAE/E,UAAW;AACpBC,MAAAA,WAAW,EAAEA,WAAY;AACzB+E,MAAAA,YAAY,EAAET,IAAM;AACpBnG,MAAAA,KAAK,EAAEA,KAAO;AACd6G,MAAAA,aAAa,EAAEnC,aAAc;AAC7BzC,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAA,EAC3Bf,QAAQ,EAAA;MACZpF,KAAK,EACH2H,YAAY,GACR3C,SAAS,GACTI,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAEpF,KAAK,IAAI,OAAOoF,QAAQ,CAACpF,KAAK,KAAK,QAAQ,GACrDoF,QAAQ,CAACpF,KAAK,GACduI,QACL;MACDtI,MAAM,EACJ0H,YAAY,GACRvC,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAEnF,MAAM,IAAI,OAAOmF,QAAQ,CAACnF,MAAM,KAAK,QAAQ,GACrDmF,QAAQ,CAACnF,MAAM,GACfqI,SAAS,GACXtD,SACL;AACDgG,MAAAA,IAAI,EAAE/E,OAAAA;AAAQ,KAAA,CACf,CAAC,CAAA;AAEN,GAAC,CACA,CACA,CACS,CACQ,CACD,CAAC,CAAA;AAEhC,CAAC,CAAC;;;AChSF,MAAMgF,gBAAc,GAAG,cAAc,CAAA;AACrC,MAAMC,WAAS,GAAG,uBAAuB,CAAA;AAElC,MAAMC,YAAkD,gBAAGlJ,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC3F,MAAM;AAAEiJ,MAAAA,QAAQ,GAAG,SAAA;AAA6B,KAAC,GAAGlJ,KAAK;AAAxBK,IAAAA,cAAc,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,WAAA,CAAA,CAAA;EAEzD,MAAM;IACJ2C,QAAQ;IACRa,OAAO;IACP6C,IAAI;IACJP,QAAQ;IACRnB,KAAK;IACLiE,UAAU;IACV7D,UAAU;IACV8D,SAAS;IACT9F,iBAAiB;IACjB6B,MAAM;IACNgB,GAAG;IACH1C,iBAAiB;IACjB4F,WAAW;IACX9F,EAAE;IACFC,aAAa;IACbE,cAAc;IACdE,UAAU;IACV0F,MAAM;IACNC,MAAM;IACNtF,cAAc;IACduF,gBAAgB;IAChBC,UAAU;AACVC,IAAAA,OAAAA;GACD,GAAGjH,kBAAkB,EAAE,CAAA;AAExB,EAAA,MAAMkH,oBAAoB,GAAG/C,IAAI,CAACX,MAAM,CAAE2D,GAAG,IAAKA,GAAG,CAACV,QAAQ,KAAKA,QAAQ,IAAIU,GAAG,CAAC9K,KAAK,GAAG,CAAC,CAAC,CAAA;AAC7F,EAAA,MAAM+K,aAAa,GAAGV,UAAU,CAACW,OAAO,CAACZ,QAAQ,CAAC,CAAA;AAClD,EAAA,MAAMa,cAAc,GAAGZ,UAAU,CAAC1J,MAAM,CAAA;AAExC,EAAA,oBACE+B,cAAA,CAAAC,aAAA,CAAC1E,kBAAkB,EAAA2E,QAAA,CAAA;AACjBjD,IAAAA,GAAG,EAAG,CAAA,EAAE8E,EAAG,CAAA,QAAA,EAAU2F,QAAS,CAAE,CAAA;AAChC,IAAA,aAAA,EAAY,OAAO;AACnBJ,IAAAA,IAAI,EAAC,QAAA;AAAQ,GAAA,EACRO,WAAW,GACZ;AACE,IAAA,YAAY,EAAElE,MAAM,CAAC,eAAe,EAAE;MACpC+D,QAAQ;MACRW,aAAa,EAAEA,aAAa,GAAG,CAAC;MAChCE,cAAc;MACd/C,SAAS,EAAE2C,oBAAoB,CAAClK,MAAAA;KACjC,CAAA;AACH,GAAC,GACD,EAAE,EACFY,cAAc,EAAA;AAClBJ,IAAAA,GAAG,EAAEA,GAAAA;GAEJ0J,CAAAA,EAAAA,oBAAoB,CAACrK,GAAG,CAAC,CAACsK,GAAG,EAAE5B,KAAa,KAAK;AAAA,IAAA,IAAAgC,qBAAA,CAAA;AAChD,IAAA,MAAM9B,EAAE,GAAG;AACT9E,MAAAA,IAAI,EAAEwG,GAAG;AACTV,MAAAA,QAAAA;KACD,CAAA;AACD,IAAA,MAAMf,IAAI,GAAGjD,KAAK,CAAC9D,OAAO,GAAG;AAAEgC,MAAAA,IAAI,EAAE8B,KAAK,CAAC9D,OAAO,CAAC4G,KAAK,CAAA;AAAE,KAAC,GAAGlF,SAAS,CAAA;IAEvE,MAAMmH,MAAM,GAAGP,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEQ,IAAI,CAAEC,CAAC,IAAK;AAClC,MAAA,OAAOV,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,YAAY,GACvD,IAAIW,IAAI,CAACD,CAAC,CAAChC,IAAI,CAAC,CAACkC,OAAO,EAAE,IAAKT,GAAG,CAACnL,GAAG,CAAU4L,OAAO,EAAE,IACvD,IAAID,IAAI,CAACD,CAAC,CAACjC,EAAE,CAAC,CAACmC,OAAO,EAAE,IAAKT,GAAG,CAACnL,GAAG,CAAU4L,OAAO,EAAE,GACzDF,CAAC,CAAChC,IAAI,IAAIyB,GAAG,CAACnL,GAAG,IAAI0L,CAAC,CAACjC,EAAE,IAAI0B,GAAG,CAACnL,GAAG,CAAA;AAC1C,KAAC,CAAC,CAAA;AAEF,IAAA,MAAM6L,WAAW,GAAG1D,IAAI,CAACX,MAAM,CAAEsE,CAAC,IAAK;AACrC,MAAA,OAAOd,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,YAAY,GACtDc,CAAC,CAAC9L,GAAG,CAAU4L,OAAO,EAAE,KAAMT,GAAG,CAACnL,GAAG,CAAU4L,OAAO,EAAE,GACzDE,CAAC,CAAC9L,GAAG,KAAKmL,GAAG,CAACnL,GAAG,CAAA;AACvB,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,cACL+C,cAAA,CAAAC,aAAA,CAAC2G,GAAG,EAAA1G,QAAA,CAAA;MACF2G,KAAK,EACH4B,MAAM,IAAIA,MAAM,CAACjG,UAAU,GAAA,CAAAgG,qBAAA,GAErBQ,YAAc,EAAE,CACblJ,MAAM,CAAClC,MAAM,CAACC,IAAI,CAAC4K,MAAM,CAACjG,UAAU,CAAC,CAAC,CACtCzC,KAAK,CAACnC,MAAM,CAACF,MAAM,CAAC+K,MAAM,CAACjG,UAAU,CAAC,CAAC,MAAA,IAAA,IAAAgG,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAH5CA,qBAAA,CAII9B,EAAE,CAAC9E,IAAI,CAAC8F,QAAQ,CAAC,GACrB5D,UAAU,KAAVA,IAAAA,IAAAA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAG4C,EAAE,CAAC9E,IAAI,CAAC8F,QAAQ,CAClC;AACD9F,MAAAA,IAAI,EAAE8E,EAAe;AACrBI,MAAAA,OAAO,EAAE1B,IAAK;AACd6D,MAAAA,WAAW,EAAEH,WAAY;AACzBhH,MAAAA,iBAAiB,EAAEA,iBAAkB;AACrC6C,MAAAA,GAAG,EAAEA,GAAI;AACT5C,MAAAA,EAAE,EAAG,CAAIA,EAAAA,EAAAA,EAAG,SAAQsG,aAAc,CAAA,CAAA,EAAG7B,KAAM,CAAE,CAAA;AAC7CA,MAAAA,KAAK,EAAEA,KAAM;AACbO,MAAAA,UAAU,EAAEC,OAAO,CAAChF,aAAa,CAAE0E,EAAc,CAAC,CAAE;AACpDzJ,MAAAA,GAAG,EAAG,CAAA,KAAA,EAAOoL,aAAc,CAAA,CAAA,EAAG7B,KAAM,CAAE,CAAA;AACtCtE,MAAAA,cAAc,EAAEA,cAAe;MAC/B+E,SAAS,EAAEc,MAAM,CAACK,GAAG,CAACc,eAAe,GAAGd,GAAG,CAAC9K,KAAK,CAAE;MACnD4J,WAAW,EAAEjF,iBAAiB,GAAGA,iBAAiB,CAACyE,EAAE,CAAC,GAAGpF,SAAU;AACnE6F,MAAAA,OAAO,EAAE/E,UAAW;MACpBC,WAAW,EAAE6B,cAAc,CAACiF,QAAS;AACrCvB,MAAAA,SAAS,EAAEA,SAAU;AACrBR,MAAAA,YAAY,EAAET,IAAkB;AAChCnG,MAAAA,KAAK,EAAEuH,MAAO;AACdV,MAAAA,aAAa,EAAES,MAAO;AACtBrF,MAAAA,cAAc,EAAEA,cAAe;MAC/BuF,gBAAgB,EAAES,MAAM,IAAIA,MAAM,CAACT,gBAAgB,GAAGS,MAAM,CAACT,gBAAgB,GAAGA,gBAAAA;AAAiB,KAAA,EAC7FtG,QAAQ,EAAA;MACZpF,KAAK,EAAEoF,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,eAARA,QAAQ,CAAEpF,KAAK,IAAI,OAAOoF,QAAQ,CAACpF,KAAK,KAAK,QAAQ,GAAGoF,QAAQ,CAACpF,KAAK,GAAGuI,QAAS;AACzFtI,MAAAA,MAAM,EAAE+E,SAAU;AAClBgG,MAAAA,IAAI,EAAE/E,OAAAA;AAAQ,KAAA,CACf,CAAC,CACH,CAAA;AACH,GAAC,CACiB,CAAC,CAAA;AAEzB,CAAC,CAAC,CAAA;AAEFkF,YAAY,CAAC/I,SAAS,GAAG8I,WAAS,CAAA;AAClCC,YAAY,CAAC2B,WAAW,GAAG7B,gBAAc,CAAA;AAElC,MAAM8B,sBAQX,GAAGjO,IAAA,IAAmG;AAAA,EAAA,IAAAkO,mBAAA,CAAA;EAAA,IAAlG;IAAEC,aAAa;IAAE5B,UAAU;IAAE6B,iBAAiB;IAAEC,aAAa;IAAEC,QAAQ;IAAEhF,KAAK;AAAEuE,IAAAA,WAAAA;AAAY,GAAC,GAAA7N,IAAA,CAAA;EACjG,MAAM;AAAEuI,IAAAA,MAAAA;GAAQ,GAAG1C,kBAAkB,EAAE,CAAA;AAEvC,EAAA,oBACEjB,cAAA,CAAAC,aAAA,CAAC0J,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAC,QAAQ;AAACC,IAAAA,MAAM,EAAC,MAAM;AAAClF,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,eACnD3E,cAAA,CAAAC,aAAA,CAAC0J,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAC,KAAK;AAACjF,IAAAA,GAAG,EAAC,KAAA;AAAK,GAAA,eACpC3E,cAAA,CAAAC,aAAA,CAAC6J,IAAI,EAAA;AAACC,IAAAA,UAAU,EAAC,KAAK;AAACvN,IAAAA,QAAQ,EAAC,MAAA;AAAM,GAAA,EACnC+M,aAAa,CAAC7E,KAAK,CAAC9C,IAAI,CAAC3E,GAAW,CACjC,CACC,CAAC,eACV+C,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK+J,IAAAA,KAAK,EAAE;AAAE1N,MAAAA,KAAK,EAAE,MAAM;AAAEC,MAAAA,MAAM,EAAE,KAAK;AAAE0N,MAAAA,eAAe,EAAE,SAAS;AAAEJ,MAAAA,MAAM,EAAE,OAAA;AAAQ,KAAA;AAAE,GAAE,CAAC,eAC7F7J,cAAA,CAAAC,aAAA,CAAC0J,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAC,KAAK;AAACjF,IAAAA,GAAG,EAAC,KAAA;AAAK,GAAA,eACpC3E,cAAA,CAAAC,aAAA,CAAC6J,IAAI,EAAA;AAACC,IAAAA,UAAU,EAAC,KAAK;AAACvN,IAAAA,QAAQ,EAAC,MAAA;GAC7BmH,EAAAA,MAAM,CAAC,OAAO,CACX,CAAC,eACP3D,cAAA,CAAAC,aAAA,CAACiK,QAAM,EAAA;AAACH,IAAAA,UAAU,EAAC,KAAK;AAACvN,IAAAA,QAAQ,EAAC,MAAM;AAACc,IAAAA,KAAK,EAAAgM,CAAAA,mBAAA,GAAEL,WAAW,KAAXA,IAAAA,IAAAA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAE9L,MAAM,CAAC,CAACgN,GAAG,EAAEnF,CAAC,KAAKmF,GAAG,GAAGnF,CAAC,CAAC1H,KAAK,EAAE,CAAC,CAAC,MAAAgM,IAAAA,IAAAA,mBAAA,KAAAA,KAAAA,CAAAA,GAAAA,mBAAA,GAAI,CAAA;AAAE,GAAE,CAClG,CAAC,eACVtJ,cAAA,CAAAC,aAAA,CAAC0J,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAC,QAAQ;AAACQ,IAAAA,SAAS,EAAC,KAAK;AAACzF,IAAAA,GAAG,EAAC,KAAA;AAAK,GAAA,EACtDgD,UAAU,CAAC7J,GAAG,CAAE4J,QAAQ,IAAK;AAAA,IAAA,IAAA2C,iBAAA,CAAA;IAC5B,MAAM/M,KAAK,GAAG2L,WAAW,KAAXA,IAAAA,IAAAA,WAAW,wBAAAoB,iBAAA,GAAXpB,WAAW,CAAEP,IAAI,CAAE1D,CAAC,IAAKA,CAAC,CAAC0C,QAAQ,KAAKA,QAAQ,CAAC,MAAA,IAAA,IAAA2C,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjDA,iBAAA,CAAmD/M,KAAK,CAAA;AACtE,IAAA,MAAMuJ,KAAK,GAAG4C,aAAa,CAAC/B,QAAQ,CAAC,CAAA;AACrC,IAAA,OAAOpK,KAAK,gBACV0C,cAAA,CAAAC,aAAA,CAAC0J,OAAO,EAAA;AAAC1M,MAAAA,GAAG,EAAEyK,QAAS;AAAC4C,MAAAA,UAAU,EAAC,QAAQ;AAAC3F,MAAAA,GAAG,EAAC,KAAA;KAC9C3E,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK+J,MAAAA,KAAK,EAAE;AAAE1N,QAAAA,KAAK,EAAE,MAAM;AAAEC,QAAAA,MAAM,EAAE,MAAM;AAAE0N,QAAAA,eAAe,EAAEpD,KAAAA;AAAM,OAAA;AAAE,KAAE,CAAC,eACzE7G,cAAA,CAAAC,aAAA,CAAC6J,IAAI,EAAA;AAACC,MAAAA,UAAU,EAAC,KAAK;AAACvN,MAAAA,QAAQ,EAAC,MAAM;AAAC+N,MAAAA,UAAU,EAAC,MAAA;AAAM,KAAA,EACrDf,iBAAiB,GAAGA,iBAAiB,CAAC9B,QAAQ,CAAC,GAAGA,QAC/C,CAAC,eACP1H,cAAA,CAAAC,aAAA,CAACiK,QAAM,EAAA;AAACH,MAAAA,UAAU,EAAC,KAAK;AAACvN,MAAAA,QAAQ,EAAC,MAAM;AAAC+N,MAAAA,UAAU,EAAC,MAAM;AAACjN,MAAAA,KAAK,EAAEA,KAAAA;KAAQ,CACnE,CAAC,GACR,IAAI,CAAA;AACV,GAAC,CACM,CAAC,EACToM,QACM,CAAC,CAAA;AAEd,CAAC;;;;ACvIM,MAAMc,eAAe,GAAG;AAC7BC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,QAAQ,EAAE,iBAAiB;AAC3BC,EAAAA,OAAO,EAAE,iBAAiB;AAC1BC,EAAAA,IAAI,EAAE,cAAc;AACpBC,EAAAA,OAAO,EAAE,QAAA;AACX,CAAU,CAAA;AAEH,MAAMC,oBAAoB,GAAIC,KAAsB,IAAK;AAAA,EAAA,IAAAC,WAAA,CAAA;EAC9D,IAAI,eAAChL,cAAK,CAACiL,cAAc,CAACF,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;AAE7C,EAAA,MAAM3B,WAAW,GAAA,CAAA4B,WAAA,GAAID,KAAK,CAACG,IAAI,MAAA,IAAA,IAAAF,WAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,WAAA,CAAqB5B,WAAW,CAAA;AAEpD,EAAA,IAAIoB,eAAe,CAACC,IAAI,KAAKrB,WAAW,EAAE,OAAO,MAAM,CAAA;AACvD,EAAA,IAAIoB,eAAe,CAACE,QAAQ,KAAKtB,WAAW,EAAE,OAAO,UAAU,CAAA;AAC/D,EAAA,IAAIoB,eAAe,CAACG,OAAO,KAAKvB,WAAW,EAAE,OAAO,SAAS,CAAA;AAC7D,EAAA,IAAIoB,eAAe,CAACI,IAAI,KAAKxB,WAAW,EAAE,OAAO,MAAM,CAAA;AACvD,EAAA,IAAIoB,eAAe,CAACK,OAAO,KAAKzB,WAAW,EAAE,OAAO,QAAQ,CAAA;AAE5D,EAAA,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM+B,MAAM,GAAIzG,KAAqC,IAAM3H,KAAK,CAACC,OAAO,CAAC0H,KAAK,CAACzH,GAAG,CAAC,GAAGyH,KAAK,CAACzH,GAAG,CAAC,CAAC,CAAC,GAAGyH,KAAK,CAACzH,GAAI,CAAA;AAE/G,MAAMmO,UAAU,GAAGA,CAACvD,WAAoB,EAAEjG,IAAkC,EAAEyJ,QAAa,KAAK;AAC9F,EAAA,IAAIxD,WAAW,EAAE;AACf,IAAA,OAAQjG,IAAI,CAAqB6C,MAAM,CAAC4G,QAAQ,CAAC,CAAA;AACnD,GAAA;AACA,EAAA,OAAQzJ,IAAI,CAAgB6C,MAAM,CAAC4G,QAAQ,CAAC,CAAA;AAC9C,CAAC,CAAA;AAED,MAAMC,UAAU,GAAGA,CAACzD,WAAoB,EAAEjG,IAAkC,EAAE2J,QAAa,EAAEC,YAAiB,KAAK;AACjH,EAAA,IAAI3D,WAAW,EAAE;AACf,IAAA,OAAQjG,IAAI,CAAqBzE,MAAM,CAACoO,QAAQ,EAAEC,YAAY,CAAC,CAAA;AACjE,GAAA;AACA,EAAA,OAAQ5J,IAAI,CAAgBzE,MAAM,CAACoO,QAAQ,EAAEC,YAAY,CAAC,CAAA;AAC5D,CAAC,CAAA;AAED,MAAMC,SAAS,GAAGA,CAACxO,GAAc,EAAEyO,WAAsB,EAAEzD,UAAsB,KAC/EA,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,YAAY,GAC/ChL,GAAG,CAAU4L,OAAO,EAAE,KAAM6C,WAAW,CAAU7C,OAAO,EAAE,GAC3D5L,GAAG,KAAKyO,WAAW,CAAA;AAElB,MAAMC,sBAAsB,gBAAGpN,UAAU,CAA8C,CAACC,KAAK,EAAEC,GAAG,KAAK;AAAA,EAAA,IAAAmN,qBAAA,EAAAC,qBAAA,EAAArK,aAAA,CAAA;EAC5G,MAAM;MACJE,QAAQ;MACRgI,QAAQ;MACRhL,SAAS;AACTkD,MAAAA,IAAI,EAAEC,SAAS;MACf+F,SAAS,GAAGkE,YAAY,CAACC,EAAE;MAC3BjK,iBAAiB;MACjBC,EAAE;MACFE,iBAAiB;MACjBD,aAAa;MACbE,cAAc;MACd8J,eAAe;MACfC,aAAa;MACbC,WAAW;AACX/M,MAAAA,OAAO,EAAEgD,YAAY;MACrBC,UAAU;MACVjG,IAAI;AACJU,MAAAA,aAAa,EAAEsP,kBAAkB;MACjC5J,OAAO;MACPC,UAAU;MACVC,cAAc;MACduF,gBAAgB;AAChBtF,MAAAA,YAAY,EAAEC,iBAAiB;MAC/BC,cAAc;AACdC,MAAAA,eAAe,EAAEuJ,oBAAoB;MACrCtJ,gBAAgB;MAChBC,iBAAiB;MACjBC,aAAa;MACbC,eAAe;MACfoJ,aAAa;MACbC,aAAa;MACbC,oBAAoB;MACpBC,oBAAoB,GAAG,CAAC,CAAC;AACzBC,MAAAA,kBAAkB,GAAG,CAAC;AACtBvJ,MAAAA,YAAY,EAAEC,iBAAiB;MAC/BC,cAAc;MACdC,eAAe;MACfC,gBAAgB;MAChBC,iBAAiB;MACjBC,aAAa;MACbC,eAAe;MACfiJ,aAAa;MACbC,aAAa;MACbC,oBAAoB;AACpB3E,MAAAA,UAAU,EAAE4E,eAAe;MAC3BC,aAAa;AACbC,MAAAA,UAAAA;AAEF,KAAC,GAAGvO,KAAK;AADJK,IAAAA,cAAc,GAAAC,wBAAA,CACfN,KAAK,EAAAO,WAAA,CAAA,CAAA;AAET,EAAA,MAAM2E,KAAK,GAAG/D,MAAM,EAAgC,CAAA;AACpD,EAAA,MAAMX,KAAK,GAAGC,QAAQ,EAAE,CAAA;AAExB,EAAA,MAAM0E,MAAM,GAAGC,mBAAmB,CAACC,YAAY,CAAC,CAAA;EAEhD,MAAMgE,WAAW,GACfhG,SAAS,CAAC,CAAC,CAAC,IACZ9E,KAAK,CAACC,OAAO,CAAC6E,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,CAAC,IAC/B4E,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,CAACgB,MAAM,IAAI,CAAC,IAC5B4D,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAC5B4E,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,CAAC,CAAC,CAAC,KAAKqE,SAAS,CAAA;AAEnC,EAAA,MAAM0L,QAAQ,GAAG/H,OAAO,CAAC,MAAM;IAC7B,MAAMgI,WAAuB,GAAG,EAAE,CAAA;IAElCjN,cAAK,CAACkN,QAAQ,CAACC,OAAO,CAACzD,QAAQ,EAAGqB,KAAK,IAAK;AAC1C,MAAA,IAAIqC,WAAW,CAAC,iBAAiB,CAAC,CAACrC,KAAK,CAAC,EAAE;AACzC,QAAA,MAAMpD,UAAU,GAAG3H,cAAK,CAACkN,QAAQ,CAACG,OAAO,CAACtC,KAAK,CAACvM,KAAK,CAACkL,QAAQ,CAAC,CAC5DjF,MAAM,CAAE6I,CAAC,IAAKF,WAAW,CAAC,cAAc,CAAC,CAACE,CAAC,CAAC,CAAC,CAC7CxP,GAAG,CAAEwP,CAAC,IAAMA,CAAC,CAAwB9O,KAAK,CAACkJ,QAAQ,CAAC,CAAA;AAEvDuF,QAAAA,WAAW,CAACM,IAAI,CAAC5F,UAAU,CAAC,CAAA;AAC9B,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOsF,WAAW,CAAA;AACpB,GAAC,EAAE,CAACvD,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,MAAM8D,WAAW,GAAGR,QAAQ,CAAC/O,MAAM,GAAG,CAAC,CAAA;EACvC,MAAMpB,aAAa,GAAG2Q,WAAW,GAAGR,QAAQ,CAACS,IAAI,EAAE,GAAGtB,kBAAkB,CAAA;EAExE,MAAMlE,UAAsB,GAAG4E,eAAe,GAC1CA,eAAe,GACf1B,MAAM,CAACtJ,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY+G,IAAI,GACpC,MAAM,GACN,OAAOuC,MAAM,CAACtJ,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,GACxC,QAAQ,GACR,OAAOsJ,MAAM,CAACtJ,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI6L,WAAW,CAACvC,MAAM,CAACtJ,SAAS,CAAC,CAAC,CAAC,CAAW,CAAC,GACvF,YAAY,GACZP,SAAS,CAAA;AAEb,EAAA,MAAMM,IAAI,GACRqG,UAAU,KAAK,QAAQ,GACnBmD,UAAU,CACRvD,WAAW,EACXhG,SAAS,EACR6C,KAAqC,IAAK,OAAOyG,MAAM,CAACzG,KAAK,CAAC,KAAK,QAAQ,IAAI,CAACwF,MAAM,CAACyD,KAAK,CAACxC,MAAM,CAACzG,KAAK,CAAC,CAC7G,CAAC,GACDuD,UAAU,KAAK,YAAY,GAC3BmD,UAAU,CAACvD,WAAW,EAAEhG,SAAS,EAAG6C,KAAqC,IACvEgJ,WAAW,CAACvC,MAAM,CAACzG,KAAK,CAAW,CACrC,CAAC,GACDuD,UAAU,KAAK,MAAM,GACrBmD,UAAU,CAACvD,WAAW,EAAEhG,SAAS,EAAG6C,KAAqC,IAAKyG,MAAM,CAACzG,KAAK,CAAC,YAAYkE,IAAI,CAAC,GAC5G/G,SAAS,CAAA;AAEfmC,EAAAA,SAAS,CAAC,MAAM;IACdN,KAAK,CAAC9D,OAAO,GAAGgC,IAAI,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMgM,MAAM,GAAGjO,MAAM,EAAiB,CAAA;EAEtC,MAAM+C,YAAY,GAAGC,iBAAiB,GAAGA,iBAAiB,GAAGyB,WAAW,CAACE,SAAS,CAAA;EAClF,MAAMpB,YAAY,GAAGC,iBAAiB,GAAGA,iBAAiB,GAAGiB,WAAW,CAACC,OAAO,CAAA;AAEhF,EAAA,MAAMnF,eAAe,GAAGhD,eAAe,CAACC,IAAK,CAAC,CAAA;AAC9C,EAAA,MAAMG,KAAK,GAAGqB,IAAI,CAACF,GAAG,CACpBE,IAAI,CAACH,GAAG,CAAC0B,eAAe,CAAC5C,KAAK,GAAAsP,qBAAA,GAAE1M,eAAe,CAAC2O,QAAQ,MAAAjC,IAAAA,IAAAA,qBAAA,cAAAA,qBAAA,GAAIkC,QAAQ,CAAC,EAAA,CAAAjC,qBAAA,GACrE3M,eAAe,CAAC6O,QAAQ,cAAAlC,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAI,CAACiC,QAC/B,CAAC,CAAA;AACD,EAAA,MAAMvR,MAAM,GAAG2C,eAAe,CAAC3C,MAAM,CAAA;EACrC,MAAM4C,OAAO,GAAAoF,cAAA,CAAA;AACXnF,IAAAA,GAAG,EAAEsD,YAAY,KAAK0B,WAAW,CAACC,OAAO,IAAI3B,YAAY,KAAK0B,WAAW,CAACE,SAAS,GAAG,EAAE,GAAG,CAAC;AAC5FjF,IAAAA,IAAI,EAAE6D,YAAY,KAAKkB,WAAW,CAACC,OAAO,IAAInB,YAAY,KAAKkB,WAAW,CAACE,SAAS,GAAG,EAAE,GAAG,CAAC;AAC7FhF,IAAAA,KAAK,EAAE4D,YAAY,KAAKkB,WAAW,CAACC,OAAO,IAAInB,YAAY,KAAKkB,WAAW,CAACE,SAAS,GAAG,EAAE,GAAG,CAAC;AAC9F/E,IAAAA,MAAM,EAAEmD,YAAY,KAAK0B,WAAW,CAACC,OAAO,IAAI3B,YAAY,KAAK0B,WAAW,CAACE,SAAS,GAAG,EAAE,GAAG,CAAA;AAAC,GAAA,EAC5FnC,YAAY,CAChB,CAAA;EACD,MAAM3C,WAAW,GAAGjD,MAAM,GAAG4C,OAAO,CAACC,GAAG,GAAGD,OAAO,CAACI,MAAM,CAAA;EACzD,MAAME,UAAU,GAAGnD,KAAK,GAAG6C,OAAO,CAACE,IAAI,GAAGF,OAAO,CAACG,KAAK,CAAA;AACvD,EAAA,MAAM0O,YAAY,GAAG5C,UAAU,CAACvD,WAAW,EAAEjG,IAAI,EAAG8C,KAAqC,IAAKA,KAAK,CAACpH,KAAK,CAAC,CAACW,MAAM,CAAA;AACjH,EAAA,MAAM0G,GAAG,GAAAnD,CAAAA,aAAA,GAAGE,QAAQ,aAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAEiD,GAAG,MAAAnD,IAAAA,IAAAA,aAAA,KAAAA,KAAAA,CAAAA,GAAAA,aAAA,GAAI,CAAC,CAAA;EAE9B,IAAIqD,QAAQ,GAAGpF,UAAU,IAAIuO,YAAY,GAAG,CAAC,CAAC,GAAGrJ,GAAG,CAAA;EAEpD,MAAMmD,MAAM,GAAG,CAAC,MAAM;IACpB,IAAIG,UAAU,KAAK,QAAQ,EAAE;MAAA,IAAA7M,IAAA,EAAAO,KAAA,CAAA;AAC3B,MAAA,MAAMmE,MAAM,GAAGmO,MAAQ,CAAyCrM,IAAI,EAAGoD,CAAC,IAAKmG,MAAM,CAACnG,CAAC,CAAW,CAG/F,CAAA;AACDlF,MAAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAA1E,IAAA,GAAIiR,aAAa,MAAAjR,IAAAA,IAAAA,IAAA,cAAAA,IAAA,GAAe0E,MAAM,CAAC,CAAC,CAAC,CAAA;AAClDA,MAAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAAnE,KAAA,GAAI2Q,aAAa,MAAA3Q,IAAAA,IAAAA,KAAA,cAAAA,KAAA,GAAemE,MAAM,CAAC,CAAC,CAAC,CAAA;MAClD,MAAM6E,GAAG,GAAG7E,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,CAAA;AACjCA,MAAAA,MAAM,CAAC,CAAC,CAAC,IAAI6E,GAAG,GAAG,GAAG,CAAA;AACtB7E,MAAAA,MAAM,CAAC,CAAC,CAAC,IAAI6E,GAAG,GAAG,GAAG,CAAA;MACtB,OAAO9E,WAAa,EAAE,CAACC,MAAM,CAACA,MAAM,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,EAAEN,UAAU,CAAC,CAAC,CAACyO,IAAI,EAAE,CAAA;KACpE,MAAM,IAAIjG,UAAU,KAAK,YAAY,IAAIA,UAAU,KAAK,MAAM,EAAE;MAAA,IAAApM,KAAA,EAAAE,KAAA,CAAA;AAC/D,MAAA,MAAM+D,MAAM,GACVmI,UAAU,KAAK,YAAY,GACtBgG,MAAQ,CAAyCrM,IAAI,EAAGoD,CAAC,IAAK4D,IAAI,CAACuF,KAAK,CAAChD,MAAM,CAACnG,CAAC,CAAW,CAAC,CAAC,GAI9FiJ,MAAQ,CAAyCrM,IAAI,EAAGoD,CAAC,IAAMmG,MAAM,CAACnG,CAAC,CAAC,CAAUoJ,OAAO,EAAE,CAG1F,CAAA;AACRtO,MAAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAAjE,KAAA,GAAIwQ,aAAa,MAAAxQ,IAAAA,IAAAA,KAAA,cAAAA,KAAA,GAAeiE,MAAM,CAAC,CAAC,CAAC,CAAA;AAClDA,MAAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAA/D,KAAA,GAAIuQ,aAAa,MAAAvQ,IAAAA,IAAAA,KAAA,cAAAA,KAAA,GAAe+D,MAAM,CAAC,CAAC,CAAC,CAAA;AAClD,MAAA,MAAMuO,SAAS,GACbpL,eAAe,IAAI,OAAOA,eAAe,KAAK,UAAU,IAAI,OAAOA,eAAe,CAACqL,MAAM,KAAK,UAAU,GACpGrL,eAAe,CAACqL,MAAM,CAAC,IAAI1F,IAAI,CAAC9I,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE0M,oBAAoB,CAAC,GACjE,IAAI5D,IAAI,CAAC9I,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACzB,MAAA,MAAMyO,OAAO,GACXtL,eAAe,IAAI,OAAOA,eAAe,KAAK,UAAU,IAAI,OAAOA,eAAe,CAACqL,MAAM,KAAK,UAAU,GACpGrL,eAAe,CAACqL,MAAM,CAAC,IAAI1F,IAAI,CAAC9I,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE2M,kBAAkB,CAAC,GAC/D,IAAI7D,IAAI,CAAC9I,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzB,MAAA,OAAO4B,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAEpF,KAAK,IAAI,OAAOoF,QAAQ,CAACpF,KAAK,KAAK,QAAQ,GACxDkS,QAAU,EAAE,CACT1O,MAAM,CAAC,CAACuO,SAAS,EAAEE,OAAO,CAAC,CAAC,CAC5BxO,KAAK,CAAC,CAAC2B,QAAQ,CAACpF,KAAK,GAAG,CAAC,GAAG,EAAE,EAAEmD,UAAU,IAAIiC,QAAQ,CAACpF,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC1EkS,QAAU,EAAE,CACT1O,MAAM,CAAC,CAACuO,SAAS,EAAEE,OAAO,CAAC,CAAC,CAC5BxO,KAAK,CAAC,CAAC8E,QAAQ,EAAEpF,UAAU,GAAGoF,QAAQ,CAAC,CAAC,CACxCqJ,IAAI,EAAE,CAAA;AACf,KAAC,MAAM;MAAA,IAAAjS,KAAA,EAAAwS,KAAA,CAAA;MACL,MAAM3O,MAAM,GACVmD,eAAe,IAAIlG,KAAK,CAACC,OAAO,CAACiG,eAAe,CAAC,GAC5CA,eAAe,GAChBrB,IAAI,CAAC9D,GAAG,CAAEkH,CAAC,IAAKmG,MAAM,CAACnG,CAAC,CAAW,CAAC,CAAA;AAC1ClF,MAAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAA7D,KAAA,GAAIoQ,aAAa,MAAApQ,IAAAA,IAAAA,KAAA,cAAAA,KAAA,GAAe6D,MAAM,CAAC,CAAC,CAAC,CAAA;AAClDA,MAAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAA2O,KAAA,GAAInC,aAAa,MAAAmC,IAAAA,IAAAA,KAAA,cAAAA,KAAA,GAAe3O,MAAM,CAAC,CAAC,CAAC,CAAA;AAClD,MAAA,OAAO4O,UAAY,EAAE,CAAC5O,MAAM,CAACA,MAAM,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,EAAEN,UAAU,CAAC,CAAC,CAAA;AAC7D,KAAA;AACF,GAAC,GAAG,CAAA;EAEJ,MAAMoD,eAAe,GACnBuJ,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAApBA,KAAAA,CAAAA,GAAAA,oBAAoB,GACnBnE,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,YAAY,GAChDH,MAAM,CAAwCxB,UAAU,EAAE,GAC3DhF,SAAU,CAAA;AAEhB,EAAA,MAAMqN,eAAe,GAAGhS,OAAO,CAACiF,IAAI,EAAkC/E,aAAc,CAAC,CAAA;EACrF,MAAMiH,UAAU,GAAG8K,QAAQ,CAAC;AAC1BhN,IAAAA,IAAI,EAAE+M,eAAe;AACrBnM,IAAAA,UAAU,EAAEA,UAAW;AACvBkF,IAAAA,QAAQ,EAAG1C,CAAC,IAAKA,CAAC,CAAC/H,GAAa;AAChC+B,IAAAA,KAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMoG,IAAwB,GAAGkG,UAAU,CACzCzD,WAAW,EACXuD,UAAU,CACRvD,WAAW,EACXjG,IAAI,CAACxD,IAAI,CAAC,CAACyQ,CAAC,EAAE9F,CAAC,KAAK;AAClB,IAAA,MAAM+F,WAAW,GAAGjH,WAAW,GAAIgH,CAAC,CAAsB5R,GAAG,CAAC,CAAC,CAAC,GAAI4R,CAAC,CAAiB5R,GAAG,CAAA;AACzF,IAAA,MAAM8R,WAAW,GAAGlH,WAAW,GAAIkB,CAAC,CAAsB9L,GAAG,CAAC,CAAC,CAAC,GAAI8L,CAAC,CAAiB9L,GAAG,CAAA;IACzF,IAAIgL,UAAU,KAAK,QAAQ,EAAE;AAC3B,MAAA,IAAI6G,WAAW,GAAGC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;AACxC,MAAA,IAAID,WAAW,GAAGC,WAAW,EAAE,OAAO,CAAC,CAAA;AACzC,KAAC,MAAM,IAAI9G,UAAU,KAAK,YAAY,EAAE;AACtC,MAAA,IAAIW,IAAI,CAACuF,KAAK,CAACW,WAAqB,CAAC,GAAGlG,IAAI,CAACuF,KAAK,CAACY,WAAqB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AACpF,MAAA,IAAInG,IAAI,CAACuF,KAAK,CAACW,WAAqB,CAAC,GAAGlG,IAAI,CAACuF,KAAK,CAACY,WAAqB,CAAC,EAAE,OAAO,CAAC,CAAA;AACrF,KAAC,MAAM,IAAI9G,UAAU,KAAK,MAAM,EAAE;AAChC,MAAA,IAAK6G,WAAW,CAAUV,OAAO,EAAE,GAAIW,WAAW,CAAUX,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;AAChF,MAAA,IAAKU,WAAW,CAAUV,OAAO,EAAE,GAAIW,WAAW,CAAUX,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;AACjF,KAAC,MAAM,IAAInG,UAAU,KAAK,QAAQ,IAAIhF,eAAe,IAAIlG,KAAK,CAACC,OAAO,CAACiG,eAAe,CAAC,EAAE;AACvF,MAAA,IAAIA,eAAe,CAACqF,OAAO,CAACwG,WAAW,CAAC,GAAG7L,eAAe,CAACqF,OAAO,CAACyG,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;AAC1F,MAAA,IAAI9L,eAAe,CAACqF,OAAO,CAACwG,WAAW,CAAC,GAAG7L,eAAe,CAACqF,OAAO,CAACyG,WAAW,CAAC,EAAE,OAAO,CAAC,CAAA;AAC3F,KAAA;AACA,IAAA,OAAOlH,WAAW,GACdxJ,gBAAgB,CAACxB,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAbA,aAAa,GAAI,SAAS,CAAC,CAC1C;AAAEI,MAAAA,GAAG,EAAG4R,CAAC,CAAsB5R,GAAG,CAAC,CAAC,CAAE;MAAEK,KAAK,EAAEuR,CAAC,CAACvR,KAAAA;AAAO,KAAC,EACzD;AAAEL,MAAAA,GAAG,EAAG8L,CAAC,CAAsB9L,GAAG,CAAC,CAAC,CAAE;MAAEK,KAAK,EAAEyL,CAAC,CAACzL,KAAAA;KACnD,CAAC,GACD,CAAC,CAAA;AACP,GAAC,CAAC,EACD0H,CAAiC,IAAKA,CAAC,CAAC1H,KAAK,KAAK,IACrD,CAAC,EACD,CAAC0R,aAAiC,EAAEC,YAA4C,EAAEC,YAAoB,KAAK;AAAA,IAAA,IAAAC,KAAA,CAAA;AACzG,IAAA,MAAMC,WAAW,GAAGvH,WAAW,GAAIoH,YAAY,CAAsBhS,GAAG,CAAC,CAAC,CAAC,GAAIgS,YAAY,CAAiBhS,GAAG,CAAA;IAC/G,MAAMoS,aAAa,GACjBpH,UAAU,KAAK,YAAY,GACvB8E,UAAU,GACRA,UAAU,CAACqC,WAAqB,CAAC,GAChCE,QAAU,CAAC,UAAU,CAAC,CAACF,WAAqB,CAAU,GACzDA,WAAW,CAAA;AACjB,IAAA,MAAM1H,QAAQ,GAAGG,WAAW,IAAAsH,KAAA,GAAIF,YAAY,CAAsBhS,GAAG,CAAC,CAAC,CAAC,cAAAkS,KAAA,KAAA,KAAA,CAAA,GAAAA,KAAA,GAAI,SAAS,GAAG,SAAS,CAAA;IACjG,MAAMI,aAAa,GAAG,CAAC/B,WAAW,GAC9B,IAAI,GACJ,CAAC,MAAM;AAAA,MAAA,IAAAgC,cAAA,CAAA;AACL,MAAA,MAAMC,gBAAgB,GAAIC,GAAW,IAAK1C,QAAQ,CAAC2C,SAAS,CAAEC,OAAO,IAAKA,OAAO,CAAC1J,QAAQ,CAACwJ,GAAG,CAAC,CAAC,CAAA;AAChG,MAAA,MAAMG,cAAc,GAAGJ,gBAAgB,CAAC/H,QAAQ,CAAC,CAAA;AACjD,MAAA,MAAMoI,WAAW,GAAGL,gBAAgB,EAAAD,cAAA,GAACR,aAAa,CAACE,YAAY,GAAG,CAAC,CAAC,MAAAM,IAAAA,IAAAA,cAAA,uBAA/BA,cAAA,CAAiC9H,QAAQ,CAAC,CAAA;AAC/E,MAAA,OAAOmI,cAAc,KAAK,CAAC,CAAC,IAAIA,cAAc,KAAKC,WAAW,CAAA;AAChE,KAAC,GAAG,CAAA;IAERd,aAAa,CAACzB,IAAI,CAAC;MACjB7F,QAAQ;AACRzK,MAAAA,GAAG,EAAEoS,aAAa;MAClB/R,KAAK,EAAE2R,YAAY,CAAC3R,KAAe;MACnC4L,eAAe,EAAE+F,YAAY,CAAC3R,KAAAA;AAChC,KAAC,CAAC,CAAA;IAEF,IACEuK,WAAW,IACXqH,YAAY,GAAG,CAAC,IAChBzD,SAAS,CAAC4D,aAAa,EAAEL,aAAa,CAACE,YAAY,GAAG,CAAC,CAAC,CAACjS,GAAG,EAAEgL,UAAU,CAAC,IACzEsH,aAAa,EACb;MACAP,aAAa,CAACE,YAAY,CAAC,CAAChG,eAAe,GACzC8F,aAAa,CAACE,YAAY,CAAC,CAAChG,eAAe,GAAG8F,aAAa,CAACE,YAAY,GAAG,CAAC,CAAC,CAAChG,eAAe,CAAA;AACjG,KAAA;AAEA,IAAA,OAAO8F,aAAa,CAAA;AACtB,GAAC,EACD,EACF,CAAC,CAACvK,MAAM,CAAE2D,GAAqB,IAAK0E,aAAa,KAAKxL,SAAS,IAAI8G,GAAG,CAACc,eAAe,KAAK,CAAC,CAAC,CAAA;AAE7F,EAAA,MAAM6G,SAAS,GAAG,UAChBnI,SAAuB,EAKpB;IAAA,IAAAoI,KAAA,EAAAC,KAAA,CAAA;AAAA,IAAA,IAJHtJ,IAAY,GAAAuJ,SAAA,CAAAjS,MAAA,GAAA,CAAA,IAAAiS,SAAA,CAAA,CAAA,CAAA,KAAA5O,SAAA,GAAA4O,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AAAA,IAAA,IAChBxJ,EAAU,GAAAwJ,SAAA,CAAAjS,MAAA,GAAA,CAAA,IAAAiS,SAAA,CAAA,CAAA,CAAA,KAAA5O,SAAA,GAAA4O,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AAAA,IAAA,IACdvI,UAAoB,GAAAuI,SAAA,CAAAjS,MAAA,GAAAiS,CAAAA,IAAAA,SAAA,CAAA5O,CAAAA,CAAAA,KAAAA,SAAA,GAAA4O,SAAA,CAAG,CAAA,CAAA,GAAA,CAAC,SAAS,CAAC,CAAA;AAAA,IAAA,IAClCC,eAAe,GAAAD,SAAA,CAAAjS,MAAA,GAAA,CAAA,IAAAiS,SAAA,CAAA,CAAA,CAAA,KAAA5O,SAAA,GAAA4O,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK,CAAA;IAEvB,MAAMpQ,MAAM,GAAGmO,MAAQ,CACrB7I,IAAI,CAACX,MAAM,CAAE2D,GAAG,IAAKT,UAAU,CAACzB,QAAQ,CAACkC,GAAG,CAACV,QAAQ,CAAC,CAAC,EACtD1C,CAAC,IAAKA,CAAC,CAACkE,eACX,CAAqB,CAAA;AACrBpJ,IAAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAAkQ,KAAA,GAAItD,aAAa,MAAAsD,IAAAA,IAAAA,KAAA,cAAAA,KAAA,GAAelQ,MAAM,CAAC,CAAC,CAAC,CAAA;IAClDA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAAmQ,KAAA,GAAItD,aAAa,MAAAsD,IAAAA,IAAAA,KAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAA,GAAenQ,MAAM,CAAC,CAAC,CAAC,IAAIqQ,eAAe,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;AAChF,IAAA,IAAIrQ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAIA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACtCA,MAAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACf,KAAA;IACA,OAAO,CAACgN,aAAa,GAAGsD,QAAU,EAAE,CAACC,KAAK,CAAC,IAAI,CAAC,CAACC,IAAI,CAACxD,aAAa,CAAC,GAAGjN,WAAa,EAAE,EACnFC,MAAM,CAACA,MAAM,CAAC,CACdC,KAAK,CACJ6H,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC,EAAEpI,WAAW,GAAGkH,EAAE,GAAGlH,WAAW,GAAGmH,IAAI,CAAC,GAAG,CAACnH,WAAW,GAAGkH,EAAE,GAAGlH,WAAW,GAAGmH,IAAI,EAAE,CAAC,CAC/G,CAAC,CACAuH,IAAI,EAAE,CAAA;GACV,CAAA;AAED,EAAA,IAAIjG,UAAU,EAAE;IACd,MAAMsI,UAAU,GACd5S,IAAI,CAACH,GAAG,CACN,GAAI4H,IAAI,CACLtH,GAAG,CAAC,CAACsK,GAAG,EAAEoI,CAAC,KAAMA,CAAC,GAAG,CAAC,GAAG7S,IAAI,CAAC8S,GAAG,CAAErI,GAAG,CAACnL,GAAG,GAAemI,IAAI,CAACoL,CAAC,GAAG,CAAC,CAAC,CAACvT,GAAc,CAAC,GAAGqE,SAAU,CAAC,CAClGmD,MAAM,CAAEiM,CAAC,IAAKA,CAAC,CACpB,CAAC,GAAG,GAAG,CAAA;AACT7L,IAAAA,QAAQ,GAAGlH,IAAI,CAACH,GAAG,CACjBqH,QAAQ,EACRpF,UAAU,IAAI,CAAEqI,MAAM,CAAChI,MAAM,EAAE,CAAC,CAAC,CAAC,GAAegI,MAAM,CAAChI,MAAM,EAAE,CAAC,CAAC,CAAY,IAAIyQ,UAAU,CAAC,EAC7F9Q,UAAU,IACPwD,eAAe,IAAI,OAAOA,eAAe,KAAK,QAAQ,GACnD,OAAOA,eAAe,KAAK,QAAQ,GACjCA,eAAe,GACflG,KAAK,CAACC,OAAO,CAACiG,eAAe,CAAC,GAC9BA,eAAe,CAAChF,MAAM,GACtBgF,eAAe,CAAClD,KAAK,CAAC+H,MAAM,CAAChI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAUgI,MAAM,CAAChI,MAAM,EAAE,CAAC,CAAC,CAAS,CAAC,CAAC7B,MAAM,GACtF,CAAC,CACT,CAAC,CAAA;AACH,GAAA;AAEA,EAAA,MAAM0J,UAAoB,GAAG9K,aAAa,IAAIE,KAAK,CAACC,OAAO,CAACH,aAAa,CAAC,GAAGA,aAAa,GAAG,EAAE,CAAA;EAC/F,MAAM8T,YAAY,GAAGvL,IAAI,CAACjI,MAAM,CAAC,CAACgN,GAAG,EAAEyG,IAAI,KAAK;IAC9C,MAAM;MAAE3T,GAAG;MAAEyK,QAAQ;AAAEpK,MAAAA,KAAAA;AAAM,KAAC,GAAGsT,IAAI,CAAA;AACrC,IAAA,IAAI,CAACjJ,UAAU,CAACzB,QAAQ,CAACwB,QAAQ,CAAC,EAAE;AAClCC,MAAAA,UAAU,CAAC4F,IAAI,CAAC7F,QAAQ,CAAC,CAAA;AAC3B,KAAA;AACA,IAAA,IAAImJ,YAAY,GAAGhO,eAAe,GAAGA,eAAe,CAAC5F,GAAU,CAAC,GAAGA,GAAG,CAAC6T,QAAQ,EAAE,CAAA;AACjFD,IAAAA,YAAY,GAAG9T,KAAK,CAACC,OAAO,CAAC6T,YAAY,CAAC,GAAGA,YAAY,CAACE,IAAI,CAAC,GAAG,CAAC,GAAGF,YAAY,CAAA;AAElF,IAAA,IAAIG,KAAK,GAAG7G,GAAG,CAACzB,IAAI,CAAEuI,CAAC,IAAKA,CAAC,CAAChU,GAAG,KAAK4T,YAAY,CAAC,CAAA;IACnD,IAAI,CAACG,KAAK,EAAE;AACVA,MAAAA,KAAK,GAAG;AAAE/T,QAAAA,GAAG,EAAE4T,YAAAA;OAAc,CAAA;AAC7B1G,MAAAA,GAAG,CAACoD,IAAI,CAACyD,KAAK,CAAC,CAAA;AACjB,KAAA;AAEAA,IAAAA,KAAK,CAACtJ,QAAQ,CAAC,GAAGpK,KAAK,CAAA;AAEvB,IAAA,OAAO6M,GAAG,CAAA;GACX,EAAE,EAA8D,CAAC,CAAA;EAElE,MAAMpC,MAAM,GAAGgI,SAAS,CAACnI,SAAS,EAAE,CAAC,EAAE,CAAC,EAAED,UAAU,CAAC,CAAA;AAErD,EAAA,MAAAuJ,KAAA,GAAsDhF,WAAW,IAAI,EAAE;AAAjE,IAAA;AAAEiF,MAAAA,gBAAAA;AAA0C,KAAC,GAAAD,KAAA;AAAtBE,IAAAA,oBAAoB,GAAAtS,wBAAA,CAAAoS,KAAA,EAAAG,UAAA,CAAA,CAAA;EAEjD,MAAM;IACJC,cAAc;IACdC,iBAAiB;IACjBC,iBAAiB;IACjBC,cAAc;IACdC,gBAAgB;IAChBC,cAAc;IACdC,oBAAoB;AACpBC,IAAAA,cAAAA;GACD,GAAG5M,OAAO,CAAC,MAAM;IAChB,MAAMqM,cAAoC,GAAG,EAAE,CAAA;IAC/C,MAAMC,iBAAuC,GAAG,EAAE,CAAA;IAClD,MAAMC,iBAAuC,GAAG,EAAE,CAAA;IAClD,MAAMC,cAAoC,GAAG,EAAE,CAAA;IAC/C,MAAMC,gBAAsC,GAAG,EAAE,CAAA;AACjD,IAAA,IAAIC,cAA8C,CAAA;AAClD,IAAA,IAAIC,oBAAoD,CAAA;IACxD,MAAMC,cAAsD,GAAG,EAAE,CAAA;IAEjE7R,cAAK,CAACkN,QAAQ,CAACC,OAAO,CAACzD,QAAQ,EAAE,CAACqB,KAAK,EAAEvE,KAAK,KAAK;AACjD,MAAA,MAAMjG,QAAQ,GAAGuK,oBAAoB,CAACC,KAAK,CAAC,CAAA;AAE5C,MAAA,IAAIqC,WAAW,CAAC,qBAAqB,CAAC,CAACrC,KAAK,CAAC,EAAE;AAC7C4G,QAAAA,cAAc,GAAG5G,KAAK,CAAA;AACxB,OAAA;AACA,MAAA,IAAIqC,WAAW,CAAC,2BAA2B,CAAC,CAACrC,KAAK,CAAC,EAAE;AACnD6G,QAAAA,oBAAoB,GAAG7G,KAAK,CAAA;AAC9B,OAAA;MAEA,IAAI,CAACxK,QAAQ,IAAI,eAACP,cAAK,CAACiL,cAAc,CAACF,KAAK,CAAC,EAAE,OAAA;MAE/C,IAAI+G,aAAa,GAAG/G,KAAK,CAAA;AAEzB,MAAA,IAAIqC,WAAW,CAAC,iBAAiB,CAAC,CAACrC,KAAK,CAAC,EAAE;AACzC,QAAA,MAAMpD,UAAU,GAAG3H,cAAK,CAACkN,QAAQ,CAACG,OAAO,CAACtC,KAAK,CAACvM,KAAK,CAACkL,QAAQ,CAAC,CAC5DjF,MAAM,CAAE6I,CAAC,IAAKF,WAAW,CAAC,cAAc,CAAC,CAACE,CAAC,CAAC,CAAC,CAC7CxP,GAAG,CAAEwP,CAAC,IAAMA,CAAC,CAAwB9O,KAAK,CAACkJ,QAAQ,CAAC,CAAA;AAEvD,QAAA,MAAMK,MAAM,GAAGgI,SAAS,CACtBhF,KAAK,CAACvM,KAAK,CAACoJ,SAAS,IAAI,IAAI,EAC7BmD,KAAK,CAACvM,KAAK,CAACmI,IAAI,EAChBoE,KAAK,CAACvM,KAAK,CAACkI,EAAE,EACdiB,UAAU,EACVoD,KAAK,CAACvM,KAAK,CAACuT,KAAK,KAAK,EACxB,CAAC,CAAA;AACDF,QAAAA,cAAc,CAACtE,IAAI,CAACxF,MAAM,CAAC,CAAA;AAE3B+J,QAAAA,aAAa,gBAAG9R,cAAK,CAACgS,YAAY,CAACjH,KAAK,EAAAxG,cAAA,CAAA;AACtCuD,UAAAA,MAAM,EAAEA,MAAM;AACdC,UAAAA,MAAM,EAAEA,MAAM;UACd9K,GAAG,EAAE8N,KAAK,CAAC9N,GAAG,IAAK,CAAU8N,QAAAA,EAAAA,KAAK,CAACvM,KAAK,CAACmI,IAAK,IAAGoE,KAAK,CAACvM,KAAK,CAACkI,EAAG,CAAA,CAAA,EAAGiB,UAAU,CAACoJ,IAAI,CAAC,GAAG,CAAE,CAAA,CAAA;AAAC,SAAA,EACtFhG,KAAK,CAACvM,KAAK,CACf,CAAC,CAAA;AACJ,OAAA;AAEA,MAAA,IAAI4O,WAAW,CAAC,MAAM,CAAC,CAACrC,KAAK,CAAC,EAAE;AAAA,QAAA,IAAAkH,MAAA,CAAA;QAC9B,MAAMC,GAAG,GAAGC,WAAW,CAACpH,KAAK,CAACvM,KAAK,CAAC+B,QAAQ,CAAC,KAAK,GAAG,CAAA;AAErDuR,QAAAA,aAAa,gBAAG9R,cAAK,CAACgS,YAAY,CAACjH,KAAK,EAAAxG,cAAA,CAAA;AACtCtH,UAAAA,GAAG,EAAE8N,KAAK,CAAC9N,GAAG,IAAK,CAAA,KAAA,EAAO8N,KAAK,CAACvM,KAAK,CAAC+B,QAAS,CAAA,CAAA,EAAGiG,KAAM,CAAC,CAAA;UACzD/G,UAAU;UACVD,WAAW;AACXgB,UAAAA,KAAK,EAAE0R,GAAG,GAAGpK,MAAM,GAAGC,MAAM;UAC5BtH,CAAC,EAAEsK,KAAK,CAACvM,KAAK,CAAC+B,QAAQ,KAAK,OAAO,GAAGd,UAAU,GAAG,CAAC;UACpDiB,CAAC,EAAEqK,KAAK,CAACvM,KAAK,CAAC+B,QAAQ,KAAK,QAAQ,GAAGf,WAAW,GAAGuL,KAAK,CAACvM,KAAK,CAAC+B,QAAQ,KAAK,KAAK,GAAG,CAAC,GAAGf,WAAW;UACrGsC,iBAAiB;AACjB7D,UAAAA,MAAM,EAAEiU,GAAG,GAAGzS,UAAU,GAAGD,WAAW;AACtCmB,UAAAA,UAAU,EAAAsR,CAAAA,MAAA,GAAGC,GAAG,GAAGjP,eAAe,GAAGQ,eAAe,MAAAwO,IAAAA,IAAAA,MAAA,KAAAA,KAAAA,CAAAA,GAAAA,MAAA,GAAK,CAAC;AAC1D9L,UAAAA,WAAW,EAAE+L,GAAG,GAAGpP,gBAAgB,GAAGQ,gBAAgB;AACtD8C,UAAAA,YAAY,EAAE8L,GAAG,GAAGnP,iBAAiB,GAAGQ,iBAAiB;AACzD8C,UAAAA,QAAQ,EAAE6L,GAAG,GAAGlP,aAAa,GAAGQ,aAAa;AAC7C8C,UAAAA,UAAU,EAAE4L,GAAG,GAAGrP,eAAe,GAAGQ,eAAe;AACnD+O,UAAAA,eAAe,EAAEF,GAAG,GAAG3F,oBAAoB,GAAGK,oBAAoB;AAClErG,UAAAA,OAAO,EAAE2L,GAAG,GAAGxP,YAAY,GAAGQ,YAAAA;AAAY,SAAA,EACvC6H,KAAK,CAACvM,KAAK,CACf,CAAC,CAAA;AACJ,OAAA;AAEA,MAAA,IAAI4O,WAAW,CAAC,iBAAiB,CAAC,CAACrC,KAAK,CAAC,EAAE;AACzC+G,QAAAA,aAAa,gBAAG9R,cAAK,CAACgS,YAAY,CAACjH,KAAK,EAAAxG,cAAA,CAAA;UACtCtH,GAAG,EAAE8N,KAAK,CAAC9N,GAAG,IAAK,CAAU,QAAA,EAAA,CAAE,CAAG,CAAA,EAAA,CAAE,CAAC,CAAA;AACrC0J,UAAAA,IAAI,EAAE,CAAC;AACPD,UAAAA,EAAE,EAAE,CAAA;AAAC,SAAA,EACFqE,KAAK,CAACvM,KAAK,CACf,CAAC,CAAA;AACJ,OAAA;AAEA,MAAA,IAAI4O,WAAW,CAAC,QAAQ,CAAC,CAACrC,KAAK,CAAC,EAAE;AAChC+G,QAAAA,aAAa,gBAAG9R,cAAK,CAACgS,YAAY,CAACjH,KAAK,EAAAxG,cAAA,CAAA;AACtCtH,UAAAA,GAAG,EAAE8N,KAAK,CAAC9N,GAAG,IAAK,CAAA,OAAA,EAASuJ,KAAM,CAAC,CAAA;AACnC5E,UAAAA,IAAI,EAAE,CAACuP,gBAAgB,GACnBkB,YAAY,CAAClB,gBAAgB,EAAExC,eAAe,CAAC,CAACvQ,IAAI,CAACC,gBAAgB,CAACxB,aAAc,CAAC,CAAC,GACtF8R,eAAe,EACjB7Q,GAAG,CAAEkH,CAAC,IAAAT,cAAA,CAAAA,cAAA,KACHS,CAAC,CAAA,EAAA,EAAA,EAAA;YACJ6B,KAAK,EAAE/C,UAAU,KAAVA,IAAAA,IAAAA,UAAU,uBAAVA,UAAU,CAAGkB,CAAC,CAAC/H,GAAG,CAAA;WACzB,CAAA,CAAA;AAAC,SAAA,EACA8N,KAAK,CAACvM,KAAK,CACf,CAAC,CAAA;AACJ,OAAA;AAEA,MAAA,QAAQ+B,QAAQ;AACd,QAAA,KAAK,MAAM;AACT+Q,UAAAA,cAAc,CAAC/D,IAAI,CAACuE,aAAa,CAAC,CAAA;AAClC,UAAA,MAAA;AACF,QAAA,KAAK,UAAU;AACbP,UAAAA,iBAAiB,CAAChE,IAAI,CAACuE,aAAa,CAAC,CAAA;AACrC,UAAA,MAAA;AACF,QAAA,KAAK,SAAS;AACZN,UAAAA,iBAAiB,CAACjE,IAAI,CAACuE,aAAa,CAAC,CAAA;AACrC,UAAA,MAAA;AACF,QAAA,KAAK,MAAM;AACTL,UAAAA,cAAc,CAAClE,IAAI,CAACuE,aAAa,CAAC,CAAA;AAClC,UAAA,MAAA;AACF,QAAA,KAAK,QAAQ;AACXJ,UAAAA,gBAAgB,CAACnE,IAAI,CAACuE,aAAa,CAAC,CAAA;AACpC,UAAA,MAAA;AACJ,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,OAAO;MACLR,cAAc;MACdC,iBAAiB;MACjBC,iBAAiB;MACjBC,cAAc;MACdC,gBAAgB;MAChBC,cAAc;MACdC,oBAAoB;AACpBC,MAAAA,cAAAA;KACD,CAAA;AACH,GAAC,EAAE,CAACnI,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,oBACE1J,cAAA,CAAAC,aAAA,CAACoB,gBAAgB,CAACgE,QAAQ,EAAA;AAAC/H,IAAAA,KAAK,EAAC,KAAA;AAAK,GAAA,eACpC0C,cAAA,CAAAC,aAAA,CAACc,eAAe,CAACsE,QAAQ,EAAA;AACvB/H,IAAAA,KAAK,EAAE;MACLoE,QAAQ;MACRa,OAAO;AACP6C,MAAAA,IAAI,EAAEA,IAA0B;MAChCP,QAAQ;MACRnB,KAAK;MACLiE,UAAU;MACVnI,WAAW;MACXC,UAAU;MACVqE,UAAU;MACV8D,SAAS;MACT9F,iBAAiB;MACjB6B,MAAM;MACNgB,GAAG;MACH1C,iBAAiB;MACjB4F,WAAW;MACX9F,EAAE;MACFC,aAAa;MACbE,cAAc;MACd/C,OAAO;MACPiD,UAAU;MACV0F,MAAM;MACNC,MAAM;MACNtF,cAAc;MACduF,gBAAgB;MAChBnF,eAAe;MACfC,gBAAgB;MAChByJ,oBAAoB;MACpBxJ,iBAAiB;MACjBC,aAAa;MACbC,eAAe;MACfP,YAAY;MACZuF,UAAU;MACVxE,eAAe;MACfH,gBAAgB;MAChBC,iBAAiB;MACjBC,aAAa;MACbH,eAAe;MACfuJ,oBAAoB;AACpB1J,MAAAA,YAAAA;AACF,KAAA;AAAE,GAAA,eAEFlD,cAAA,CAAAC,aAAA,CAAClF,cAAc,EAAAmF,QAAA,CAAA;AACboF,IAAAA,IAAI,EAAE,OAAOlD,UAAU,KAAK,UAAU,IAAI,OAAOH,iBAAiB,KAAK,UAAU,GAAG,aAAa,GAAG,QAAS;AAC7GsD,IAAAA,UAAU,EACRsC,WAAW,GACPlE,MAAM,CAAC,mCAAmC,EAAE;MAC1C4E,cAAc,EAAEZ,UAAU,CAAC1J,MAAM;MACjCuH,SAAS,EAAEJ,IAAI,CAACnH,MAAAA;AAClB,KAAC,CAAC,GACF0F,MAAM,CAAC,mBAAmB,EAAE;MAAE6B,SAAS,EAAEJ,IAAI,CAACnH,MAAAA;AAAO,KAAC,CAC3D;AACDwH,IAAAA,eAAe,EAAE9B,MAAM,CAAE,CAAA,OAAA,EAASsE,UAAU,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAQ,CAAA,WAAA,CAAY,EAAE;AAC5FvC,MAAAA,OAAO,EAAE9C,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;MAC1C+C,KAAK,EAAE9C,eAAe,GAAGA,eAAe,CAACiF,MAAM,CAAChI,MAAM,EAAE,CAAC,CAAC,CAAQ,CAAC,GAAGgI,MAAM,CAAChI,MAAM,EAAE,CAAC,CAAC,CAAC;MACxF8F,GAAG,EAAE/C,eAAe,GAAGA,eAAe,CAACiF,MAAM,CAAChI,MAAM,EAAE,CAAC,CAAC,CAAQ,CAAC,GAAGgI,MAAM,CAAChI,MAAM,EAAE,CAAC,CAAC,CAAA;AACvF,KAAC,CAAE;AACH+F,IAAAA,eAAe,EACbgM,cAAc,CAAC5T,MAAM,GAAG,CAAC,GACrB4T,cAAc,CACX/T,GAAG,CAAE0C,KAAK,IACTmD,MAAM,CAAC,2BAA2B,EAAE;AAClC+B,MAAAA,OAAO,EAAEtC,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;MAC1CuC,KAAK,EAAGnF,KAAK,CAA0CV,MAAM,EAAE,CAAC,CAAC,CAAC;AAClE8F,MAAAA,GAAG,EAAGpF,KAAK,CAA0CV,MAAM,EAAE,CAAC,CAAC,CAAA;KAChE,CACH,CAAC,CACAiR,IAAI,CAAC,GAAG,CAAC,GACZpN,MAAM,CAAC,2BAA2B,EAAE;AAClC+B,MAAAA,OAAO,EAAEtC,cAAc,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;MAC1CuC,KAAK,EAAGoC,MAAM,CAA0CjI,MAAM,EAAE,CAAC,CAAC,CAAC;AACnE8F,MAAAA,GAAG,EAAGmC,MAAM,CAA0CjI,MAAM,EAAE,CAAC,CAAC,CAAA;AAClE,KAAC,CACN;IACDgG,uBAAuB,EACrB+B,WAAW,GACP;MACE9B,MAAM,eACJ/F,cAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,eACED,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,eACED,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI+F,QAAAA,KAAK,EAAC,KAAA;OAAOiC,EAAAA,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,YAAY,GAAG,MAAM,GAAG,KAAU,CAAC,EAC3FN,UAAU,CAAC7J,GAAG,CAAE4J,QAAQ,iBACvB1H,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIhD,QAAAA,GAAG,EAAEyK,QAAS;AAAC1B,QAAAA,KAAK,EAAC,KAAA;AAAK,OAAA,EAC3B0B,QACC,CACL,CACC,CACC,CACR;AACDzB,MAAAA,IAAI,eACFjG,cAAA,CAAAC,aAAA,CACG0Q,OAAAA,EAAAA,IAAAA,EAAAA,YAAY,CAAC7S,GAAG,CAAEwU,GAAG,iBACpBtS,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;QAAIhD,GAAG,EAAEqV,GAAG,CAACrV,GAAAA;OACX+C,eAAAA,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI+F,QAAAA,KAAK,EAAC,KAAA;AAAK,OAAA,EAAEsM,GAAG,CAACrV,GAAQ,CAAC,EAC7B0K,UAAU,CAAC7J,GAAG,CAAE4J,QAAQ,iBACvB1H,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIhD,QAAAA,GAAG,EAAG,CAAA,EAAEqV,GAAG,CAACrV,GAAI,CAAA,CAAA,EAAGyK,QAAS,CAAA,CAAA,EAAG4K,GAAG,CAAC5K,QAAQ,CAAE,CAAE,CAAA;AAAC1B,QAAAA,KAAK,EAAC,KAAA;AAAK,OAAA,EAC5DsM,GAAG,CAAC5K,QAAQ,CACX,CACL,CACC,CACL,CACI,CAAA;AAEX,KAAC,GACD;MACE3B,MAAM,eACJ/F,cAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,eACED,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,eACED,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI+F,QAAAA,KAAK,EAAC,KAAA;AAAK,OAAA,EAAEiC,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,YAAY,GAAG,MAAM,GAAG,KAAU,CAAC,eAC5FjI,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI+F,QAAAA,KAAK,EAAC,KAAA;OAAM,EAAA,OAAS,CACvB,CACC,CACR;MACDC,IAAI,eACFjG,cAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,EACGmF,IAAI,CAACtH,GAAG,CAAE4G,KAAK,IAAK;AACnB,QAAA,IAAIzH,GAAG,GAAG4F,eAAe,GAAGA,eAAe,CAAC6B,KAAK,CAACzH,GAAU,CAAC,GAAGyH,KAAK,CAACzH,GAAG,CAAC6T,QAAQ,EAAE,CAAA;AACpF7T,QAAAA,GAAG,GAAGF,KAAK,CAACC,OAAO,CAACC,GAAG,CAAC,GAAGA,GAAG,CAAC8T,IAAI,CAAC,GAAG,CAAC,GAAG9T,GAAG,CAAA;QAC9C,oBACE+C,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIhD,UAAAA,GAAG,EAAEA,GAAAA;SACP+C,eAAAA,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAI+F,UAAAA,KAAK,EAAC,KAAA;SAAO/I,EAAAA,GAAQ,CAAC,eAC1B+C,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAKyE,KAAK,CAACpH,KAAU,CACnB,CAAC,CAAA;AAET,OAAC,CACI,CAAA;KAGhB;AACDyU,IAAAA,KAAK,EAAEJ,cAAe;AACtBY,IAAAA,WAAW,EAAEX,oBAAAA;AAAqB,GAAA,EAC9B/S,cAAc,EAAA;AAClBkD,IAAAA,EAAE,EAAEA,EAAG;AACPrD,IAAAA,SAAS,EAAEA,SAAU;AACrBD,IAAAA,GAAG,EAAEA,GAAAA;AAAiC,GAAA,CAAA,eAEtCuB,cAAA,CAAAC,aAAA,CAAC0J,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAC,QAAQ;AAACU,IAAAA,UAAU,EAAC,QAAQ;AAAC3F,IAAAA,GAAG,EAAC,GAAA;GACtD3E,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACExB,IAAAA,GAAG,EAAEmP,MAAmC;AACxCtR,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,MAAM,EAAEA,MAAO;AACf,IAAA,YAAA,EACE,OAAO6F,UAAU,KAAK,UAAU,IAAI,OAAOH,iBAAiB,KAAK,UAAU,GACvE0B,MAAM,CAAC,mBAAmB,CAAC,GAC3BA,MAAM,CAAC,cAAc,CAC1B;IACD,aAAY,EAAA,OAAA;AAAO,GAAA,EAElB2N,cAAc,CAACrT,MAAM,KAAK,CAAC,IAAIsT,iBAAiB,CAACtT,MAAM,KAAK,CAAC,gBAC5D+B,cAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGI,SAAS,EAAG,aAAYlB,OAAO,CAACE,IAAK,CAAGF,CAAAA,EAAAA,OAAO,CAACC,GAAI,CAAG,CAAA,CAAA;IAAC,aAAY,EAAA,MAAA;AAAM,GAAA,EAC1E,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC8G,QAAQ,CAACtD,cAAe,CAAC,gBAC3C5C,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHwB,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCvB,IAAAA,QAAQ,EAAC,QAAQ;AACjBtC,IAAAA,MAAM,EAAEwB,UAAW;AACnBe,IAAAA,KAAK,EAAEsH,MAAmB;AAC1BrH,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,CAAC,EAAElB,WAAY;AACfmB,IAAAA,UAAU,EAAEsC,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,CAAE;AACjCkD,IAAAA,WAAW,EAAErD,gBAAiB;AAC9BsD,IAAAA,YAAY,EAAErD,iBAAkB;AAChCsD,IAAAA,QAAQ,EAAErD,aAAc;AACxBsD,IAAAA,UAAU,EAAEzD,eAAgB;AAC5BuP,IAAAA,eAAe,EAAE7F,oBAAqB;AACtChG,IAAAA,OAAO,EAAE7D,YAAAA;AAAa,GACvB,CAAC,GACA,IAAI,EACP,CAAC,KAAK,EAAE,MAAM,CAAC,CAACwD,QAAQ,CAACtD,cAAe,CAAC,gBACxC5C,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHwB,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCvB,IAAAA,QAAQ,EAAC,KAAK;AACdtC,IAAAA,MAAM,EAAEwB,UAAW;AACnBe,IAAAA,KAAK,EAAEsH,MAAmB;AAC1BrH,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,UAAU,EAAEsC,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,CAAE;AACjCkD,IAAAA,WAAW,EAAErD,gBAAiB;AAC9BsD,IAAAA,YAAY,EAAErD,iBAAkB;AAChCsD,IAAAA,QAAQ,EAAErD,aAAc;AACxBsD,IAAAA,UAAU,EAAEzD,eAAgB;AAC5BuP,IAAAA,eAAe,EAAE7F,oBAAqB;AACtChG,IAAAA,OAAO,EAAE7D,YAAAA;AAAa,GACvB,CAAC,GACA,IAAI,EACP,CAAC,MAAM,EAAE,MAAM,CAAC,CAACwD,QAAQ,CAAC9C,cAAe,CAAC,gBACzCpD,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHwB,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCvB,IAAAA,QAAQ,EAAC,MAAM;AACftC,IAAAA,MAAM,EAAEuB,WAAY;AACpBgB,IAAAA,KAAK,EAAEuH,MAAmB;AAC1BtH,IAAAA,CAAC,EAAE,CAAE;AACLC,IAAAA,CAAC,EAAElB,WAAY;AACfmB,IAAAA,UAAU,EAAE8C,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,CAAE;AACjC0C,IAAAA,WAAW,EAAE7C,gBAAiB;AAC9B8C,IAAAA,YAAY,EAAE7C,iBAAkB;AAChC8C,IAAAA,QAAQ,EAAE7C,aAAc;AACxB8C,IAAAA,UAAU,EAAEjD,eAAgB;AAC5B+O,IAAAA,eAAe,EAAExF,oBAAqB;AACtCrG,IAAAA,OAAO,EAAErD,YAAAA;AAAa,GACvB,CAAC,GACA,IAAI,EACP,CAAC,OAAO,EAAE,MAAM,CAAC,CAACgD,QAAQ,CAAC9C,cAAe,CAAC,gBAC1CpD,cAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACHwB,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCvB,IAAAA,QAAQ,EAAC,OAAO;AAChBtC,IAAAA,MAAM,EAAEuB,WAAY;AACpBgB,IAAAA,KAAK,EAAEuH,MAAmB;AAC1BtH,IAAAA,CAAC,EAAEhB,UAAW;AACdiB,IAAAA,CAAC,EAAElB,WAAY;AACfmB,IAAAA,UAAU,EAAE8C,eAAe,KAAA,IAAA,IAAfA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,eAAe,GAAI,CAAE;AACjC0C,IAAAA,WAAW,EAAE7C,gBAAiB;AAC9B8C,IAAAA,YAAY,EAAE7C,iBAAkB;AAChC8C,IAAAA,QAAQ,EAAE7C,aAAc;AACxB8C,IAAAA,UAAU,EAAEjD,eAAgB;AAC5B+O,IAAAA,eAAe,EAAExF,oBAAqB;AACtCrG,IAAAA,OAAO,EAAErD,YAAAA;AAAa,GACvB,CAAC,GACA,IACH,CAAC,gBAEJlD,cAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGI,SAAS,EAAG,aAAYlB,OAAO,CAACE,IAAK,CAAGF,CAAAA,EAAAA,OAAO,CAACC,GAAI,CAAG,CAAA,CAAA;IAAC,aAAY,EAAA,MAAA;GACpEkS,EAAAA,cACA,CACJ,EAEAC,iBAAiB,EACjBC,iBAAiB,EAEjBC,cAAc,CAACxT,MAAM,KAAK,CAAC,IAAIsT,iBAAiB,CAACtT,MAAM,KAAK,CAAC,gBAC5D+B,cAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGI,SAAS,EAAG,aAAYlB,OAAO,CAACE,IAAK,CAAGF,CAAAA,EAAAA,OAAO,CAACC,GAAI,CAAG,CAAA,CAAA;IAAC,aAAY,EAAA,MAAA;GACpE,EAAA,CAACoO,WAAW,GAAGR,QAAQ,GAAG,CAACrF,UAAU,CAAC,EAAE7J,GAAG,CAAE8R,OAAO,IACnDA,OAAO,CAAC9R,GAAG,CAAE4J,QAAQ,iBAAK1H,cAAA,CAAAC,aAAA,CAACwH,YAAY,EAAA;AAACxK,IAAAA,GAAG,EAAEyK,QAAS;AAACA,IAAAA,QAAQ,EAAEA,QAAAA;GAAW,CAAC,CAC/E,CAAC,EAAE,GACF,CAAC,gBAEJ1H,cAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;IAAGI,SAAS,EAAG,aAAYlB,OAAO,CAACE,IAAK,CAAGF,CAAAA,EAAAA,OAAO,CAACC,GAAI,CAAG,CAAA,CAAA;IAAC,aAAY,EAAA,MAAA;GACpEqS,EAAAA,cACA,CAEF,CACE,CAAC,EACTC,gBAAgB,CAACzT,MAAM,KAAK,CAAC,IAAI4J,WAAW,IAAIoE,aAAa,KAAKxR,qBAAqB,CAACC,IAAI,gBAC3FsF,cAAA,CAAAC,aAAA,CAACuS,MAAM,EAAAtS,QAAA,CAAA;AACL0B,IAAAA,IAAI,EAAE,CAACuP,gBAAgB,GACnBkB,YAAY,CAAClB,gBAAgB,EAAExC,eAAe,CAAC,CAACvQ,IAAI,CAACC,gBAAgB,CAACxB,aAAc,CAAC,CAAC,GACtF8R,eAAe,EACjB7Q,GAAG,CAAEkH,CAAC,IAAAT,cAAA,CAAAA,cAAA,KACHS,CAAC,CAAA,EAAA,EAAA,EAAA;MACJ6B,KAAK,EAAE/C,UAAU,KAAVA,IAAAA,IAAAA,UAAU,uBAAVA,UAAU,CAAGkB,CAAC,CAAC/H,GAAG,CAAA;AAAE,KAAA,CAC3B,CAAE;AACJsJ,IAAAA,OAAO,EACL0F,aAAa,KAAKxR,qBAAqB,CAACG,kBAAkB,GACtD6X,aAAa,CAACnV,KAAK,GACnB2O,aAAa,KAAKxR,qBAAqB,CAACI,oBAAoB,GAC5D4X,aAAa,CAAChM,OAAO,GACrBwF,aAAa,KAAKxR,qBAAqB,CAACE,aAAa,GACrD8X,aAAa,CAACC,KAAK,GACnBD,aAAa,CAAC3X,MACnB;AACDkR,IAAAA,eAAe,EACbA,eAAe,GACX,CAACtH,KAAsB,EAAElG,KAAK,KAAKwN,eAAe,CAACtH,KAAK,EAAyBlG,KAAK,CAAC,GACvF8C,SAAAA;AACL,GAAA,EACG8P,oBAAoB,CACzB,CAAC,GAEFM,gBAEY,CACQ,CACD,CAAC,CAAA;AAEhC,CAAC,CAAC;;;AC7yBF,MAAMnK,gBAAc,GAAG,iBAAiB,CAAA;AACxC,MAAMC,WAAS,GAAG,0BAA0B,CAAA;AAErC,MAAMmL,eAAwD,gBAAGpU,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;MACJC,SAAS;AACTiI,MAAAA,IAAI,GAAG,CAAC;AACRD,MAAAA,EAAE,GAAG,CAAC;MACNG,KAAK;MACLkL,KAAK;AACLa,MAAAA,aAAa,GAAG,QAAQ;MACxB9K,MAAM;MACNC,MAAM;AACN2B,MAAAA,QAAQ,EAAEmJ,aAAa;MACvBjL,SAAS;AACTM,MAAAA,OAAAA;AAEF,KAAC,GAAG1J,KAAK;AADJK,IAAAA,cAAc,GAAAC,wBAAA,CACfN,KAAK,EAAAO,WAAA,CAAA,CAAA;EAET,MAAM;IAAE+T,SAAS;AAAE7I,IAAAA,eAAAA;GAAiB,GAAGhF,OAAO,CAAC,MAAM;IACnD,IAAI4B,KAAK,KAAK,OAAO,EAAE;MACrB,OAAO;AACLiM,QAAAA,SAAS,EAAEC,mBAAmB;AAC9B9I,QAAAA,eAAe,EAAE,SAAA;OAClB,CAAA;AACH,KAAC,MAAM,IAAIpD,KAAK,KAAK,KAAK,EAAE;MAC1B,OAAO;AACLiM,QAAAA,SAAS,EAAEE,iBAAiB;AAC5B/I,QAAAA,eAAe,EAAE,SAAA;OAClB,CAAA;AACH,KAAC,MAAM,IAAIpD,KAAK,KAAKvF,SAAS,EAAE;MAC9B,OAAO;AACLwR,QAAAA,SAAS,EAAEG,wBAAwB;AACnChJ,QAAAA,eAAe,EAAE3I,SAAAA;OAClB,CAAA;AACH,KAAA;AACA,IAAA,OAAOuF,KAAK,CAAA;AACd,GAAC,EAAE,CAACA,KAAK,CAAC,CAAC,CAAA;AAEX,EAAA,MAAM7H,KAAK,GAAGC,QAAQ,EAAE,CAAA;AAExB,EAAA,MAAMiC,OAAO,GAAGD,kBAAkB,EAAE,CAAA;EACpC,MAAM;IACJzB,WAAW;IACXC,UAAU;IACVN,OAAO;IACP2C,iBAAiB;IACjBmB,eAAe;IACfH,gBAAgB;IAChBC,iBAAiB;IACjBC,aAAa;IACbH,eAAe;IACf0J,oBAAoB;IACpB7J,YAAY;IACZe,eAAe;IACfH,gBAAgB;IAChBC,iBAAiB;IACjBC,aAAa;IACbH,eAAe;IACfuJ,oBAAoB;AACpB1J,IAAAA,YAAAA;AACF,GAAC,GAAGhC,OAAO,CAAA;EAEX,MAAMgS,aAAa,GAAGvV,IAAI,CAACF,GAAG,CAAC,CAAC,EAAEE,IAAI,CAACH,GAAG,CAAC,CAAC,EAAEkJ,EAAE,GAAGC,IAAI,CAAC,CAAC,GAAGnH,WAAW,CAAA;AACvE,EAAA,MAAM2T,QAAQ,GAAGxV,IAAI,CAACF,GAAG,CAAC,CAAC,EAAEE,IAAI,CAACH,GAAG,CAAC,CAAC,EAAEmJ,IAAI,CAAC,CAAC,GAAGnH,WAAW,CAAA;AAE7D,EAAA,MAAM4T,MAAM,GAAGR,aAAa,KAAK,QAAQ,GAAGnT,UAAU,GAAG,CAAC,GAAGmT,aAAa,KAAK,OAAO,GAAGnT,UAAU,GAAG,EAAE,GAAG,EAAE,CAAA;AAE7G,EAAA,MAAM4T,WAAW,GAAGT,aAAa,KAAK,QAAQ,GAAG,QAAQ,GAAGA,aAAa,KAAK,OAAO,GAAG,KAAK,GAAG,OAAO,CAAA;AAEvG,EAAA,MAAMlJ,QAAQ,GAAGzE,OAAO,CAAC,MAAM;IAC7B,MAAMqO,gBAAsC,GAAG,EAAE,CAAA;IAEjDtT,cAAK,CAACkN,QAAQ,CAACC,OAAO,CAAC0F,aAAa,EAAG9H,KAAK,IAAK;AAC/C,MAAA,IAAI,eAAC/K,cAAK,CAACiL,cAAc,CAACF,KAAK,CAAC,EAAE,OAAA;MAClC,MAAMmH,GAAG,GAAGC,WAAW,CAACpH,KAAK,CAACvM,KAAK,CAAC+B,QAAQ,CAAC,KAAK,GAAG,CAAA;MAErD,IAAIuR,aAAa,GAAG/G,KAAK,CAAA;AAEzB,MAAA,IAAIqC,WAAW,CAAC,MAAM,CAAC,CAACrC,KAAK,CAAC,EAAE;AAAA,QAAA,IAAA3P,IAAA,CAAA;AAC9B0W,QAAAA,aAAa,gBAAG9R,cAAK,CAACgS,YAAY,CAACjH,KAAK,EAAAxG,cAAA,CAAA;AACtCtH,UAAAA,GAAG,EAAE8N,KAAK,CAAC9N,GAAG,IAAK,CAAO0J,KAAAA,EAAAA,IAAK,CAAGD,CAAAA,EAAAA,EAAG,IAAGqE,KAAK,CAACvM,KAAK,CAAC+B,QAAS,CAAC,CAAA;UAC9Dd,UAAU;UACVD,WAAW;UACX0T,aAAa;AACb1S,UAAAA,KAAK,EAAE0R,GAAG,GAAGpK,MAAM,GAAGC,MAAM;UAC5BtH,CAAC,EAAEsK,KAAK,CAACvM,KAAK,CAAC+B,QAAQ,KAAK,OAAO,GAAGd,UAAU,GAAG,CAAC;UACpDiB,CAAC,EAAEqK,KAAK,CAACvM,KAAK,CAAC+B,QAAQ,KAAK,QAAQ,GAAG2S,aAAa,GAAGnI,KAAK,CAACvM,KAAK,CAAC+B,QAAQ,KAAK,KAAK,GAAG,CAAC,GAAG2S,aAAa;UACzGpR,iBAAiB;AACjB7D,UAAAA,MAAM,EAAEiU,GAAG,GAAGzS,UAAU,GAAGyT,aAAa;AACxCvS,UAAAA,UAAU,EAAAvF,CAAAA,IAAA,GAAG8W,GAAG,GAAGjP,eAAe,GAAGQ,eAAe,MAAArI,IAAAA,IAAAA,IAAA,KAAAA,KAAAA,CAAAA,GAAAA,IAAA,GAAK,CAAC;AAC1D+K,UAAAA,WAAW,EAAE+L,GAAG,GAAGpP,gBAAgB,GAAGQ,gBAAgB;AACtD8C,UAAAA,YAAY,EAAE8L,GAAG,GAAGnP,iBAAiB,GAAGQ,iBAAiB;AACzD8C,UAAAA,QAAQ,EAAE6L,GAAG,GAAGlP,aAAa,GAAGQ,aAAa;AAC7C8C,UAAAA,UAAU,EAAE4L,GAAG,GAAGrP,eAAe,GAAGQ,eAAe;AACnD+O,UAAAA,eAAe,EAAEF,GAAG,GAAG3F,oBAAoB,GAAGK,oBAAoB;AAClErG,UAAAA,OAAO,EAAE2L,GAAG,GAAGxP,YAAY,GAAGQ,YAAY;AAC1C4P,UAAAA,SAAS,EAAEZ,GAAG,GAAG5Q,SAAS,GAAGuF,KAAK;AAClC0M,UAAAA,WAAW,EAAEA,CAACC,CAAQ,EAAEhN,KAAa,KAAKA,KAAK,KAAK,CAAA;AAAC,SAAA,EAClDuE,KAAK,CAACvM,KAAK,CACf,CAAC,CAAA;AACJ,OAAA;AAEA,MAAA,IAAI4O,WAAW,CAAC,iBAAiB,CAAC,CAACrC,KAAK,CAAC,EAAE;AACzC+G,QAAAA,aAAa,gBAAG9R,cAAK,CAACgS,YAAY,CAACjH,KAAK,EAAAxG,cAAA,CAAA;UACtCtH,GAAG,EAAE8N,KAAK,CAAC9N,GAAG,IAAK,CAAU0J,QAAAA,EAAAA,IAAK,CAAGD,CAAAA,EAAAA,EAAG,CAAC,CAAA;UACzCC,IAAI;AACJD,UAAAA,EAAAA;AAAE,SAAA,EACCqE,KAAK,CAACvM,KAAK,CACf,CAAC,CAAA;AACJ,OAAA;AAEA8U,MAAAA,gBAAgB,CAAC/F,IAAI,CAACuE,aAAa,CAAC,CAAA;AACtC,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOwB,gBAAgB,CAAA;AACzB,GAAC,EAAE,CAACT,aAAa,CAAC,CAAC,CAAA;AAEnB,EAAA,oBACE7S,cAAA,CAAAC,aAAA,CAACc,eAAe,CAACsE,QAAQ,EAAA;AACvB/H,IAAAA,KAAK,EAAAiH,cAAA,CAAAA,cAAA,KACArD,OAAO,CAAA,EAAA,EAAA,EAAA;AACV4G,MAAAA,MAAM,EAAEA,MAAO;AACfC,MAAAA,MAAM,EAAEA,MAAO;MACfH,SAAS;MACTsL,aAAa;AACbhL,MAAAA,OAAAA;AAAO,KAAA,CAAA;GAGTlI,eAAAA,cAAA,CAAAC,aAAA,CAAC/E,qBAAqB,EAAAgF,QAAA,KAChBrB,cAAc,EAAA;IAClBH,SAAS,EAAE+U,UAAU,CAACd,eAAe,CAACjU,SAAS,EAAEA,SAAS,CAAE;AAC5D2B,IAAAA,SAAS,EAAG,CAAA,UAAA,EAAYlB,OAAO,CAACE,IAAK,CAAG,CAAA,EAAA,CAACF,OAAO,CAACC,GAAG,IAAI,CAAC,IAAI+T,QAAS,CAAG,CAAA,CAAA;AACzE1U,IAAAA,GAAG,EAAEA,GAA8B;AACnC3C,IAAAA,MAAM,EAAEkD,KAAM;AACd3D,IAAAA,UAAU,EAAEyX,SAAAA;AAAU,GAAA,CAAA,EAErB7I,eAAe,gBAAGjK,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMQ,IAAAA,CAAC,EAAE,CAAE;AAACC,IAAAA,CAAC,EAAE,CAAE;AAACpE,IAAAA,KAAK,EAAEmD,UAAW;AAAClD,IAAAA,MAAM,EAAE2W,aAAc;AAACQ,IAAAA,IAAI,EAAEzJ,eAAAA;AAAgB,GAAE,CAAC,GAAG,IAAI,EAC9G/B,OAAO,GACJA,OAAO,CAACpK,GAAG,CAAC,CAAC2K,MAAM,EAAEjC,KAAK,KAAK;AAC7B;IACA,MAAMmN,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAClC,MAAMC,QAAQ,GAAGhL,IAAI,CAACuF,KAAK,CAAC1F,MAAM,CAAC9B,IAAc,CAAC,CAAA;IAClD,MAAMkN,MAAM,GAAGjL,IAAI,CAACuF,KAAK,CAAC1F,MAAM,CAAC/B,EAAY,CAAC,CAAA;AAC9C,IAAA,MAAMoN,QAAQ,GAAGF,QAAQ,GAAGD,MAAM,CAAA;AAClC,IAAA,MAAMI,QAAQ,GAAGF,MAAM,GAAGF,MAAM,CAAA;AAChC;AACA,IAAA,MAAMK,OAAO,GAAG,CAACJ,QAAQ,GAAGE,QAAQ,IAAI,CAAC,CAAA;AACzC,IAAA,MAAMG,KAAK,GAAG,CAACJ,MAAM,GAAGE,QAAQ,IAAI,CAAC,CAAA;IACrC,MAAMG,UAAU,GAAG,OAAOzL,MAAM,CAAC9B,IAAI,KAAK,QAAQ,GAAG8B,MAAM,CAAC9B,IAAI,GAAGmB,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAGkM,OAAc,CAAC,CAAA;IAC3F,MAAMG,QAAQ,GAAG,OAAO1L,MAAM,CAAC/B,EAAE,KAAK,QAAQ,GAAG+B,MAAM,CAAC/B,EAAE,GAAGoB,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAGmM,KAAY,CAAC,CAAA;AACnF,IAAA,IAAIC,UAAU,KAAK5S,SAAS,IAAI6S,QAAQ,KAAK7S,SAAS,EAAE;AACtD,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IACA,MAAMb,CAAC,GAAG9C,IAAI,CAACH,GAAG,CAAC0W,UAAU,EAAEC,QAAQ,CAAC,CAAA;IACxC,MAAM7X,KAAK,GAAGqB,IAAI,CAAC8S,GAAG,CAAC0D,QAAQ,GAAGD,UAAU,CAAC,CAAA;IAC7C,oBACElU,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;MACEhD,GAAG,EAAG,CAASuJ,OAAAA,EAAAA,KAAM,CAAE,CAAA;AACvB/F,MAAAA,CAAC,EAAEA,CAAE;AACLC,MAAAA,CAAC,EAAE,CAAE;AACLpE,MAAAA,KAAK,EAAEA,KAAM;AACbC,MAAAA,MAAM,EAAE2W,aAAc;AACtBQ,MAAAA,IAAI,EAAEjL,MAAM,CAACwB,eAAe,IAAI,aAAc;AAC9CmK,MAAAA,OAAO,EAAE3L,MAAM,CAAC4L,iBAAiB,IAAI,IAAA;AAAK,KAC3C,CAAC,CAAA;GAEL,CAAC,GACF,IAAI,EACPtC,KAAK,iBACJ/R,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACEvB,IAAAA,SAAS,EAAC,eAAe;AACzB+B,IAAAA,CAAC,EAAE2S,MAAO;AACV1S,IAAAA,CAAC,EAAEkH,SAAS,KAAK,IAAI,GAAG,CAAC,GAAGA,SAAS,KAAK,MAAM,GAAGsL,aAAa,GAAG,CAAC,GAAGA,aAAa,GAAG,CAAE;AACzFoB,IAAAA,UAAU,EAAEjB,WAAY;AACxB7W,IAAAA,QAAQ,EAAE,EAAG;AACb+X,IAAAA,gBAAgB,EAAE3M,SAAS,KAAK,IAAI,GAAG,SAAS,GAAGA,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,QAAA;AAAS,GAAA,EAE3FmK,KACG,CACP,EACArI,QACoB,CACC,CAAC,CAAA;AAE/B,CAAC,CAAC,CAAA;AAEFiJ,eAAe,CAACjU,SAAS,GAAG8I,WAAS,CAAA;AACrCmL,eAAe,CAACvJ,WAAW,GAAG7B,gBAAc;;;AClM5C,MAAMA,gBAAc,GAAG,iBAAiB,CAAA;AACxC,MAAMC,WAAS,GAAG,0BAA0B,CAAA;AAErC,MAAMgN,eAAwD,gBAAGjW,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAM;MAAEkI,IAAI;MAAED,EAAE;AAAEwB,MAAAA,OAAAA;AAA2B,KAAC,GAAG1J,KAAK;AAAxBK,IAAAA,cAAc,GAAAC,wBAAA,CAAKN,KAAK,EAAAO,WAAA,CAAA,CAAA;EAEtD,MAAM;IACJ2C,QAAQ;IACRa,OAAO;IACP6C,IAAI;IACJP,QAAQ;IACRrF,WAAW;IACXsC,iBAAiB;IACjB6C,GAAG;IACH5C,EAAE;IACFG,cAAc;IACd/C,OAAO;IACPiD,UAAU;IACV0F,MAAM;IACNC,MAAM;IACNtF,cAAc;IACduF,gBAAgB;IAChBC,UAAU;AACVC,IAAAA,OAAO,EAAEuM,cAAAA;GACV,GAAGxT,kBAAkB,EAAE,CAAA;EAExB,MAAMkH,oBAAoB,GAAG/C,IAAI,CAACX,MAAM,CAAE2D,GAAG,IAAKA,GAAG,CAACV,QAAQ,KAAKtC,IAAI,CAAC,CAAC,CAAC,CAACsC,QAAQ,IAAIU,GAAG,CAAC9K,KAAK,GAAG,CAAC,CAAC,CAAA;EAErG,MAAM4V,aAAa,GAAGvV,IAAI,CAACF,GAAG,CAAC,CAAC,EAAEE,IAAI,CAACH,GAAG,CAAC,CAAC,EAAEkJ,EAAE,GAAIC,IAAK,CAAC,CAAC,GAAGnH,WAAW,CAAA;AACzE,EAAA,MAAM2T,QAAQ,GAAGxV,IAAI,CAACF,GAAG,CAAC,CAAC,EAAEE,IAAI,CAACH,GAAG,CAAC,CAAC,EAAEmJ,IAAK,CAAC,CAAC,GAAGnH,WAAW,CAAA;EAE9D,MAAMkV,SAAS,GAAG7U,WAAa,EAAE,CAACC,MAAM,CAACiI,MAAM,CAACjI,MAAM,EAAE,CAAC,CAACC,KAAK,CAAC,CAACmT,aAAa,EAAEA,aAAa,CAAC,CAAC,CAAA;AAE/F,EAAA,oBACElT,cAAA,CAAAC,aAAA,CAACzE,qBAAqB,EAAA0E,QAAA,CAAA;IACpBjD,GAAG,EAAG,CAAE8E,EAAAA,EAAG,CAAiB,eAAA,CAAA;AAC5B,IAAA,aAAA,EAAY,OAAO;AACnBuF,IAAAA,IAAI,EAAC,QAAA;AAAQ,GAAA,EACTzI,cAAc,EAAA;AAClBJ,IAAAA,GAAG,EAAEA,GAA8B;IACnC4B,SAAS,EAAEsG,IAAI,KAAK,CAAC,IAAID,EAAE,KAAK,CAAC,GAAI,CAAYvH,UAAAA,EAAAA,OAAO,CAACE,IAAK,CAAA,CAAA,EAAG,CAACF,OAAO,CAACC,GAAG,IAAI,CAAC,IAAI+T,QAAS,CAAA,CAAA,CAAE,GAAG7R,SAAAA;GAEnG6G,CAAAA,EAAAA,oBAAoB,CAACrK,GAAG,CAAC,CAACsK,GAAG,EAAE5B,KAAa,KAAK;AAAA,IAAA,IAAApL,IAAA,CAAA;AAChD,IAAA,MAAMqN,MAAM,GAAA,CAAArN,IAAA,GAAI8M,OAAO,IAAIuM,cAAc,MAAArZ,IAAAA,IAAAA,IAAA,uBAA1BA,IAAA,CAA6BsN,IAAI,CAAEC,CAAC,IAAK;AACtD,MAAA,OAAOV,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,YAAY,GACvD,IAAIW,IAAI,CAACD,CAAC,CAAChC,IAAI,CAAC,CAACkC,OAAO,EAAE,IAAKT,GAAG,CAACnL,GAAG,CAAU4L,OAAO,EAAE,IACvD,IAAID,IAAI,CAACD,CAAC,CAACjC,EAAE,CAAC,CAACmC,OAAO,EAAE,IAAKT,GAAG,CAACnL,GAAG,CAAU4L,OAAO,EAAE,GACzDF,CAAC,CAAChC,IAAI,IAAIyB,GAAG,CAACnL,GAAG,IAAI0L,CAAC,CAACjC,EAAE,IAAI0B,GAAG,CAACnL,GAAG,CAAA;AAC1C,KAAC,CAAC,CAAA;AAEF,IAAA,MAAM6L,WAAW,GAAG1D,IAAI,CAACX,MAAM,CAAEsE,CAAC,IAAK;AACrC,MAAA,OAAOd,UAAU,KAAK,MAAM,IAAIA,UAAU,KAAK,YAAY,GACtDc,CAAC,CAAC9L,GAAG,CAAU4L,OAAO,EAAE,KAAMT,GAAG,CAACnL,GAAG,CAAU4L,OAAO,EAAE,GACzDE,CAAC,CAAC9L,GAAG,KAAKmL,GAAG,CAACnL,GAAG,CAAA;AACvB,KAAC,CAAC,CAAA;AAEF,IAAA,oBACE+C,cAAA,CAAAC,aAAA,CAAC2G,GAAG,EAAA1G,QAAA,CAAA;AACF2G,MAAAA,KAAK,EAAC,aAAa;AACnBjF,MAAAA,IAAI,EAAE;AACJA,QAAAA,IAAI,EAAEwG,GAAAA;OACN;AACF1J,MAAAA,SAAS,EAAC,qBAAqB;AAC/BoI,MAAAA,OAAO,EAAE1B,IAAK;AACd6D,MAAAA,WAAW,EAAEH,WAAY;AACzBhH,MAAAA,iBAAiB,EAAEA,iBAAkB;AACrC6C,MAAAA,GAAG,EAAEA,GAAI;AACT5C,MAAAA,EAAE,EAAG,CAAA,EAAA,EAAIA,EAAG,CAAA,MAAA,EAAQyE,KAAM,CAAE,CAAA;AAC5BA,MAAAA,KAAK,EAAEA,KAAM;MACbvJ,GAAG,EAAG,CAAQuJ,MAAAA,EAAAA,KAAM,CAAE,CAAA;AACtBtE,MAAAA,cAAc,EAAEA,cAAe;AAC/B+E,MAAAA,SAAS,EAAE,CAAE;AACbE,MAAAA,OAAO,EAAE/E,UAAW;MACpBC,WAAW,EAAE6B,cAAc,CAACiF,QAAS;AACrCvB,MAAAA,SAAS,EAAC,MAAM;AAChBpH,MAAAA,KAAK,EAAEkU,SAAU;AACjBrN,MAAAA,aAAa,EAAES,MAAO;AACtBrF,MAAAA,cAAc,EAAEA,cAAe;MAC/BuF,gBAAgB,EAAES,MAAM,IAAIA,MAAM,CAACT,gBAAgB,GAAGS,MAAM,CAACT,gBAAgB,GAAGA,gBAAAA;AAAiB,KAAA,EAC7FtG,QAAQ,EAAA;MACZpF,KAAK,EAAEoF,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,eAARA,QAAQ,CAAEpF,KAAK,IAAI,OAAOoF,QAAQ,CAACpF,KAAK,KAAK,QAAQ,GAAGoF,QAAQ,CAACpF,KAAK,GAAGuI,QAAS;AACzFtI,MAAAA,MAAM,EAAE+E,SAAU;AAClBgG,MAAAA,IAAI,EAAE/E,OAAAA;AAAQ,KAAA,CACf,CAAC,CAAA;AAEN,GAAC,CACoB,CAAC,CAAA;AAE5B,CAAC,CAAC,CAAA;AAEFiS,eAAe,CAAC9V,SAAS,GAAG8I,WAAS,CAAA;AACrCgN,eAAe,CAACpL,WAAW,GAAG7B,gBAAc;;;ACjF5C,MAAMA,cAAc,GAAG,UAAU,CAAA;AACjC,MAAMC,SAAS,GAAG,kBAAkB,CAAA;AAE7B,MAAMmN,YAAiD,gBAAGpW,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC1F,MAAM;MACJ8D,OAAO;MACPZ,MAAM;MACNiT,QAAQ;MACRlW,SAAS;MACT8D,UAAU,GAAGqS,UAAU,CAACxQ,OAAO;AAC/BzC,MAAAA,IAAI,EAAEC,SAAS;AACfiT,MAAAA,QAAQ,EAAEC,aAAa;MACvBpW,cAAc;AACdoD,MAAAA,EAAE,EAAEiT,OAAO;MACXhT,aAAa,GAAGA,MAAM,IAAI;MAC1BE,cAAc;MACd8J,eAAe;AACfC,MAAAA,aAAa,EAAEgJ,kBAAkB;AACjCrW,MAAAA,UAAU,GAAG;AAAEwB,QAAAA,cAAc,EAAE,SAAA;OAAW;MAC1CgC,UAAU;MACVC,WAAW,GAAG6B,cAAc,CAACC,UAAU;AACvC7B,MAAAA,MAAM,GAAG,IAAI;MACbnG,IAAI,GAAGC,SAAS,CAACM,MAAM;AACvBG,MAAAA,aAAa,GAAG,YAAY;MAC5BmC,KAAK;MACLgJ,gBAAgB;MAChBvF,cAAc,GAAGyS,cAAc,CAAC5X,KAAK;AACrCsF,MAAAA,cAAc,GAAG,QAAQ;AACzBQ,MAAAA,cAAc,GAAG,MAAA;AAEnB,KAAC,GAAG5E,KAAK;AADJK,IAAAA,cAAc,GAAAC,wBAAA,CACfN,KAAK,EAAAO,SAAA,CAAA,CAAA;AACT,EAAA,MAAM,CAACoW,GAAG,CAAC,GAAGC,KAAK,EAAE,CAAA;EACrB,MAAMrT,EAAE,GAAGiT,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,OAAO,GAAIG,GAAG,CAAA;EAEzB,MAAMlJ,aAAa,GAAGgJ,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,cAAlBA,kBAAkB,GAAIxa,qBAAqB,CAACE,aAAa,CAAA;AAE/E,EAAA,IAAIkH,SAAS,KAAKP,SAAS,IAAIO,SAAS,KAAK,IAAI,EAAE;AACjD,IAAA,oBAAO7B,cAAA,CAAAC,aAAA,CAACW,eAAe,EAAAV,QAAA,CAAA;AAAC6B,MAAAA,EAAE,EAAEA,EAAAA;AAAG,KAAA,EAAKlD,cAAc,EAAA;AAAEJ,MAAAA,GAAG,EAAEA,GAAAA;AAAI,KAAA,CAAE,CAAC,CAAA;AAClE,GAAA;AAEA,EAAA,IAAIoD,SAAS,CAAC5D,MAAM,KAAK,CAAC,EAAE;AAC1B,IAAA,oBACE+B,cAAA,CAAAC,aAAA,CAAC3B,aAAa,EAAA4B,QAAA,CAAA;AACZ0B,MAAAA,IAAI,EAAEC,SAAU;AAChBlD,MAAAA,cAAc,EAAEA,cAAe;AAC/BoD,MAAAA,EAAE,EAAEA,EAAG;AACPnD,MAAAA,UAAU,EAAEA,UAAW;AACvBzC,MAAAA,IAAI,EAAEA,IAAAA;AAAK,KAAA,EACP0C,cAAc,EAAA;AAClBJ,MAAAA,GAAG,EAAEA,GAAAA;AAAI,KAAA,CACV,CAAC,CAAA;AAEN,GAAA;AAEA,EAAA,MAAMqW,QAAQ,GAAGC,aAAa,GAC1BA,aAAa,GACbhY,KAAK,CAACC,OAAO,CAAC6E,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,CAAC,GAC/B,iBAAiB,GACjB4E,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,YAAY2L,IAAI,GAChC,YAAY,GACZ,OAAO/G,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,KAAK,QAAQ,GACpC,YAAY,GACZ,OAAO4E,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,KAAK,QAAQ,IAAIyQ,WAAW,CAAC7L,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,CAAC,GACrE,YAAY,GACZ,OAAO4E,SAAS,CAAC,CAAC,CAAC,CAAC5E,GAAG,KAAK,QAAQ,GACpC,cAAc,GACd,cAAc,CAAA;EAElB,IAAI6X,QAAQ,KAAK,cAAc,EAAE;AAC/B,IAAA,oBACE9U,cAAA,CAAAC,aAAA,CAACsB,uBAAuB,EAAArB,QAAA,CAAA;AACtBqC,MAAAA,OAAO,EAAEA,OAAQ;AACjBZ,MAAAA,MAAM,EAAEA,MAAO;AACfiT,MAAAA,QAAQ,EAAEA,QAAS;MACnBlW,SAAS,EAAE+U,UAAU,CAACkB,YAAY,CAACjW,SAAS,EAAEA,SAAS,CAAE;AACzDkD,MAAAA,IAAI,EAAEC,SAAU;AAChBE,MAAAA,EAAE,EAAEA,EAAG;AACPC,MAAAA,aAAa,EAAEA,aAAc;AAC7BE,MAAAA,cAAc,EAAEA,cAAe;AAC/BE,MAAAA,UAAU,EAAEA,UAAW;AACvBC,MAAAA,WAAW,EAAEA,WAAY;AACzBC,MAAAA,MAAM,EAAEA,MAAO;AACfnG,MAAAA,IAAI,EAAEA,IAAK;AACXU,MAAAA,aAAa,EAAEA,aAAc;AAC7BmC,MAAAA,KAAK,EAAEA,KAAM;AACbgJ,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCxF,MAAAA,UAAU,EAAEA,UAAW;AACvBC,MAAAA,cAAc,EAAEA,cAAe;AAC/BG,MAAAA,cAAc,EAAEA,cAAe;AAC/BQ,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAA,EAC3BvE,cAAc,EAAA;AAClBJ,MAAAA,GAAG,EAAEA,GAAAA;AAAI,KAAA,CACV,CAAC,CAAA;GAEL,MAAM,IAAIqW,QAAQ,KAAK,YAAY,IAAIA,QAAQ,KAAK,iBAAiB,EAAE;AACtE,IAAA,oBACE9U,cAAA,CAAAC,aAAA,CAAC0L,sBAAsB,EAAAzL,QAAA,CAAA;AACrBqC,MAAAA,OAAO,EAAEA,OAAQ;AACjBqS,MAAAA,QAAQ,EAAEA,QAAS;MACnBlW,SAAS,EAAE+U,UAAU,CAACkB,YAAY,CAACjW,SAAS,EAAEA,SAAS,CAAE;AACzDkD,MAAAA,IAAI,EAAEC,SAAwB;AAC9BE,MAAAA,EAAE,EAAEA,EAAG;AACPC,MAAAA,aAAa,EAAEA,aAAc;AAC7BE,MAAAA,cAAc,EAAEA,cAAe;AAC/B8J,MAAAA,eAAe,EAAEA,eAAgB;AACjCC,MAAAA,aAAa,EAAEA,aAAc;AAC7B7J,MAAAA,UAAU,EAAEA,UAAW;AACvBjG,MAAAA,IAAI,EAAEA,IAAK;AACXU,MAAAA,aAAa,EAAEA,aAAc;AAC7BmC,MAAAA,KAAK,EAAEA,KAAM;AACbgJ,MAAAA,gBAAgB,EAAEA,gBAAiB;AACnCxF,MAAAA,UAAU,EAAEA,UAAW;AACvBC,MAAAA,cAAc,EAAEA,cAAe;AAC/BG,MAAAA,cAAc,EAAEA,cAAe;AAC/BQ,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAA,EAC3BvE,cAAc,EAAA;AAClBJ,MAAAA,GAAG,EAAEA,GAAAA;AAAI,KAAA,CACV,CAAC,CAAA;AAEN,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACb,CAAC,EAAC;AACFkW,YAAY,CAACjW,SAAS,GAAG8I,SAAS,CAAA;AAClCmN,YAAY,CAACvL,WAAW,GAAG7B,cAAc,CAAA;AAElC,MAAM8N,QAAQ,GAAGzX,MAAM,CAAC0X,MAAM,CAACX,YAAY,EAAE;AAClDY,EAAAA,OAAO,EAAE5C,eAAe;AACxB6C,EAAAA,IAAI,EAAE/N,YAAY;AAClBgO,EAAAA,OAAO,EAAEjB,eAAe;AACxBlU,EAAAA,IAAI,EAAEA,IAAI;AACVoV,EAAAA,cAAc,EAAErM,sBAAsB;AACtCmJ,EAAAA,MAAM,EAAEA,MAAM;AACdmD,EAAAA,UAAU,EAAEA,UAAU;AACtBC,EAAAA,KAAK,EAAEC,mBAAmB;AAC1BC,EAAAA,WAAW,EAAEC,yBAAAA;AACf,CAAC;;;;"}
|
package/_internal/Legend3.js
CHANGED
|
@@ -4,8 +4,8 @@ import classNames from 'classnames';
|
|
|
4
4
|
import { sum } from 'd3';
|
|
5
5
|
import styled from 'styled-components';
|
|
6
6
|
import { baseContainer } from '@redsift/design-system';
|
|
7
|
-
import { L as LegendVariant } from './legend2.js';
|
|
8
7
|
import { L as LegendItem } from './LegendItem2.js';
|
|
8
|
+
import { L as LegendVariant } from './legend2.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Component style.
|
package/_internal/LineChart2.js
CHANGED
|
@@ -2,15 +2,15 @@ import { _ as _objectWithoutProperties, a as _extends, b as _objectSpread2 } fro
|
|
|
2
2
|
import React__default, { forwardRef, useRef, useEffect } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { useTheme, useMessageFormatter, Flexbox, useId } from '@redsift/design-system';
|
|
5
|
-
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
6
|
-
import { C as ChartSize, g as getSortingMethod, i as isValidDate, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
|
|
7
5
|
import styled from 'styled-components';
|
|
8
6
|
import { C as ChartContainer } from './ChartContainer2.js';
|
|
9
7
|
import { scaleLinear, extent, scaleTime, scalePoint, line } from 'd3';
|
|
8
|
+
import { C as ChartSize, g as getSortingMethod, i as isValidDate, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
|
|
10
9
|
import { A as Axis, a as AxisVariant } from './Axis2.js';
|
|
11
10
|
import { L as Line } from './Line2.js';
|
|
12
11
|
import { D as Dot, a as DotVariant } from './Dot2.js';
|
|
13
12
|
import { L as Legend } from './Legend3.js';
|
|
13
|
+
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Component's labels variant.
|
package/_internal/PieChart2.js
CHANGED
|
@@ -2,13 +2,13 @@ import { _ as _objectWithoutProperties, a as _extends, b as _objectSpread2 } fro
|
|
|
2
2
|
import React__default, { forwardRef, useRef, useEffect } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { Theme, useTheme, useMessageFormatter, useId } from '@redsift/design-system';
|
|
5
|
-
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
6
|
-
import { C as ChartSize, m as mergeLegends, g as getSortingMethod, a as ColorTheme } from './theme.js';
|
|
7
5
|
import styled, { css } from 'styled-components';
|
|
8
6
|
import { C as ChartContainer } from './ChartContainer2.js';
|
|
9
7
|
import { arc, pie, sum } from 'd3';
|
|
10
8
|
import { e as empty } from './scheme.js';
|
|
9
|
+
import { C as ChartSize, m as mergeLegends, g as getSortingMethod, a as ColorTheme } from './theme.js';
|
|
11
10
|
import { A as Arcs } from './Arcs2.js';
|
|
11
|
+
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
12
12
|
import { u as useFormatCategoricalData } from './useFormatCategoricalData.js';
|
|
13
13
|
import { L as Legend } from './Legend3.js';
|
|
14
14
|
|
|
@@ -2,15 +2,15 @@ import { _ as _objectWithoutProperties, a as _extends, b as _objectSpread2 } fro
|
|
|
2
2
|
import React__default, { useRef, useEffect, useState, forwardRef } from 'react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { useTheme, useMessageFormatter, Flexbox, Button, Text, useId } from '@redsift/design-system';
|
|
5
|
-
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
6
|
-
import { C as ChartSize, g as getSortingMethod, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
|
|
7
5
|
import styled from 'styled-components';
|
|
8
6
|
import { C as ChartContainer } from './ChartContainer2.js';
|
|
9
7
|
import { brush, select, zoom, interpolateRound, scaleLinear, min, extent, descending, scaleSqrt, max } from 'd3';
|
|
8
|
+
import { C as ChartSize, g as getSortingMethod, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
|
|
10
9
|
import { A as Axis, a as AxisVariant } from './Axis2.js';
|
|
11
10
|
import { Popover } from '@redsift/popovers';
|
|
12
11
|
import { D as Dot } from './Dot2.js';
|
|
13
12
|
import { L as Legend } from './Legend3.js';
|
|
13
|
+
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
14
14
|
|
|
15
15
|
const getRoundedIntermediaryPoint = (selection, scaleX, scaleY) => {
|
|
16
16
|
if (!selection) {
|
package/index.d.ts
CHANGED
|
@@ -117,10 +117,7 @@ declare const Axis: Comp<AxisProps, SVGGElement>;
|
|
|
117
117
|
/**
|
|
118
118
|
* Component style.
|
|
119
119
|
*/
|
|
120
|
-
declare const StyledAxis: styled_components.StyledComponent<_react_spring_web.AnimatedComponent<"g">, any,
|
|
121
|
-
$theme: Theme;
|
|
122
|
-
$color?: string | undefined;
|
|
123
|
-
}, never>;
|
|
120
|
+
declare const StyledAxis: styled_components.StyledComponent<_react_spring_web.AnimatedComponent<"g">, any, StyledAxisProps, never>;
|
|
124
121
|
|
|
125
122
|
type ChartAxesProps = {
|
|
126
123
|
/** String to Date. */
|
|
@@ -427,8 +424,8 @@ declare const successDangerScheme: {
|
|
|
427
424
|
};
|
|
428
425
|
declare const getColorScale: ({ colorTheme, domain, isEmpty, theme, }: {
|
|
429
426
|
colorTheme: ChartTheme;
|
|
430
|
-
domain?: string[]
|
|
431
|
-
isEmpty?: boolean
|
|
427
|
+
domain?: string[];
|
|
428
|
+
isEmpty?: boolean;
|
|
432
429
|
theme: Theme;
|
|
433
430
|
}) => ScaleOrdinal<string, string>;
|
|
434
431
|
|
|
@@ -491,9 +488,7 @@ declare const DataPoint: Comp<DataPointProps<any>, SVGGElement>;
|
|
|
491
488
|
/**
|
|
492
489
|
* Component style.
|
|
493
490
|
*/
|
|
494
|
-
declare const StyledDataPoint: styled_components.StyledComponent<_react_spring_web.AnimatedComponent<"g">, any,
|
|
495
|
-
$clickable: boolean;
|
|
496
|
-
}, never>;
|
|
491
|
+
declare const StyledDataPoint: styled_components.StyledComponent<_react_spring_web.AnimatedComponent<"g">, any, StyledDataPointProps, never>;
|
|
497
492
|
|
|
498
493
|
/**
|
|
499
494
|
* Component props.
|
|
@@ -514,12 +509,7 @@ declare const Arc: Comp<ArcProps, SVGGElement>;
|
|
|
514
509
|
/**
|
|
515
510
|
* Component style.
|
|
516
511
|
*/
|
|
517
|
-
declare const StyledArc: styled_components.StyledComponent<_redsift_design_system.Comp<DataPointProps<any>, SVGGElement>, any,
|
|
518
|
-
$clickable: boolean;
|
|
519
|
-
} & Omit<ArcProps, "createArc"> & {
|
|
520
|
-
$hasStroke: boolean | undefined;
|
|
521
|
-
$theme: Theme;
|
|
522
|
-
}, never>;
|
|
512
|
+
declare const StyledArc: styled_components.StyledComponent<_redsift_design_system.Comp<DataPointProps<any>, SVGGElement>, any, StyledArcProps, never>;
|
|
523
513
|
|
|
524
514
|
/**
|
|
525
515
|
* Component props.
|
|
@@ -586,11 +576,7 @@ declare const Bar: Comp<BarProps, SVGGElement>;
|
|
|
586
576
|
/**
|
|
587
577
|
* Component style.
|
|
588
578
|
*/
|
|
589
|
-
declare const StyledBar: styled_components.StyledComponent<_redsift_design_system.Comp<DataPointProps<any>, SVGGElement>, any,
|
|
590
|
-
$clickable: boolean;
|
|
591
|
-
} & Omit<BarProps, "scale" | "scalePosition"> & {
|
|
592
|
-
$theme: Theme;
|
|
593
|
-
}, never>;
|
|
579
|
+
declare const StyledBar: styled_components.StyledComponent<_redsift_design_system.Comp<DataPointProps<any>, SVGGElement>, any, StyledBarProps, never>;
|
|
594
580
|
|
|
595
581
|
/**
|
|
596
582
|
* Component props.
|
|
@@ -643,12 +629,8 @@ declare const ChartContainerDescription: Comp<ComponentProps<'div'>, HTMLDivElem
|
|
|
643
629
|
/**
|
|
644
630
|
* Component style.
|
|
645
631
|
*/
|
|
646
|
-
declare const StyledChartContainer: styled_components.StyledComponent<"div", any,
|
|
647
|
-
|
|
648
|
-
}, never>;
|
|
649
|
-
declare const StyledChartContainerTitle: styled_components.StyledComponent<_redsift_design_system.Comp<_redsift_design_system.FlexboxProps, HTMLDivElement>, any, Omit<ChartContainerProps, "theme"> & {
|
|
650
|
-
$theme: Theme;
|
|
651
|
-
}, never>;
|
|
632
|
+
declare const StyledChartContainer: styled_components.StyledComponent<"div", any, StyledChartContainerProps, never>;
|
|
633
|
+
declare const StyledChartContainerTitle: styled_components.StyledComponent<_redsift_design_system.Comp<_redsift_design_system.FlexboxProps, HTMLDivElement>, any, StyledChartContainerProps, never>;
|
|
652
634
|
declare const StyledChartContainerCaption: styled_components.StyledComponent<"p", any, Omit<StyledChartContainerProps, "onReset">, never>;
|
|
653
635
|
|
|
654
636
|
/**
|
|
@@ -707,9 +689,7 @@ declare const Legend: Comp<LegendProps, HTMLUListElement>;
|
|
|
707
689
|
/**
|
|
708
690
|
* Component style.
|
|
709
691
|
*/
|
|
710
|
-
declare const StyledLegend: styled_components.StyledComponent<"ul", any,
|
|
711
|
-
$width?: string | number | undefined;
|
|
712
|
-
}, never>;
|
|
692
|
+
declare const StyledLegend: styled_components.StyledComponent<"ul", any, StyledLegendProps, never>;
|
|
713
693
|
|
|
714
694
|
type FormatMessage = (key: string, variables?: {
|
|
715
695
|
[key: string]: any;
|
|
@@ -902,7 +882,7 @@ declare const BarChart: Comp<BarChartProps, HTMLDivElement> & {
|
|
|
902
882
|
GroupedTooltip: React$1.FC<{
|
|
903
883
|
dateFormatter: (date: Date) => string;
|
|
904
884
|
categories: string[];
|
|
905
|
-
categoryDecorator?: (
|
|
885
|
+
categoryDecorator?: (category: string) => string;
|
|
906
886
|
categoryColor: (category: string) => string;
|
|
907
887
|
children?: React$1.ReactNode;
|
|
908
888
|
datum: BarDatum;
|
|
@@ -956,12 +936,7 @@ declare const Dot: Comp<DotProps, SVGGElement>;
|
|
|
956
936
|
/**
|
|
957
937
|
* Component style.
|
|
958
938
|
*/
|
|
959
|
-
declare const StyledDot: styled_components.StyledComponent<_redsift_design_system.Comp<DataPointProps<any>, SVGGElement>, any,
|
|
960
|
-
$clickable: boolean;
|
|
961
|
-
} & Omit<DotProps, "scaleX" | "scaleY"> & {
|
|
962
|
-
$variant: DotVariant | undefined;
|
|
963
|
-
$theme: _redsift_design_system.Theme;
|
|
964
|
-
}, never>;
|
|
939
|
+
declare const StyledDot: styled_components.StyledComponent<_redsift_design_system.Comp<DataPointProps<any>, SVGGElement>, any, StyledDotProps, never>;
|
|
965
940
|
|
|
966
941
|
/**
|
|
967
942
|
* Component props.
|
package/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { a as LabelVariant, L as LegendVariant, T as TooltipVariant } from './_internal/legend2.js';
|
|
2
|
-
export { C as ChartSize, a as ColorTheme, g as getSortingMethod, i as isValidDate, m as mergeLegends, u as useColor } from './_internal/theme.js';
|
|
3
1
|
export { e as empty, g as getColorScale, m as monochrome, s as scheme, a as successDangerScheme } from './_internal/scheme.js';
|
|
2
|
+
export { C as ChartSize, a as ColorTheme, g as getSortingMethod, i as isValidDate, m as mergeLegends, u as useColor } from './_internal/theme.js';
|
|
4
3
|
export { S as ScatterPlot, c as ScatterPlotLegendVariant, b as ScatterPlotVariant, d as StyledScatterPlot, e as StyledScatterPlotEmptyText, u as useBrush, a as useZoom } from './_internal/ScatterPlot2.js';
|
|
5
4
|
export { u as useFormatCategoricalData } from './_internal/useFormatCategoricalData.js';
|
|
5
|
+
export { a as LabelVariant, L as LegendVariant, T as TooltipVariant } from './_internal/legend2.js';
|
|
6
6
|
export { A as Arc, S as StyledArc } from './_internal/Arc2.js';
|
|
7
7
|
export { A as Arcs, S as StyledArcs } from './_internal/Arcs2.js';
|
|
8
8
|
export { A as Axis, b as AxisPosition, a as AxisVariant, S as StyledAxis, g as getAxisType } from './_internal/Axis2.js';
|
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.
|
|
33
|
+
"version": "11.8.1-muiv5",
|
|
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-
|
|
92
|
-
"@redsift/popovers": "^11.8.0-
|
|
91
|
+
"@redsift/design-system": "^11.8.0-1",
|
|
92
|
+
"@redsift/popovers": "^11.8.0-1",
|
|
93
93
|
"react": ">=17",
|
|
94
94
|
"react-dom": ">=17",
|
|
95
95
|
"styled-components": "^5.3.5"
|
|
96
96
|
},
|
|
97
|
-
"gitHead": "
|
|
97
|
+
"gitHead": "04b4ec7b4ae3bbfc6f3857bc1325ffca917ebb36"
|
|
98
98
|
}
|