@redsift/charts 12.6.6 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +20 -8
- package/_internal/Arc2.js +5 -5
- package/_internal/Arc2.js.map +1 -1
- package/_internal/Arcs2.js +8 -8
- package/_internal/Arcs2.js.map +1 -1
- package/_internal/Axis2.js +13 -13
- package/_internal/Axis2.js.map +1 -1
- package/_internal/Bar2.js +7 -7
- package/_internal/Bar2.js.map +1 -1
- package/_internal/BarChart2.js +95 -99
- package/_internal/BarChart2.js.map +1 -1
- package/_internal/ChartContainer2.js +29 -30
- package/_internal/ChartContainer2.js.map +1 -1
- package/_internal/DataPoint2.js +10 -10
- package/_internal/DataPoint2.js.map +1 -1
- package/_internal/Dot2.js +3 -3
- package/_internal/Dot2.js.map +1 -1
- package/_internal/Legend3.js +4 -4
- package/_internal/Legend3.js.map +1 -1
- package/_internal/LegendItem2.js +8 -8
- package/_internal/LegendItem2.js.map +1 -1
- package/_internal/Line2.js +5 -5
- package/_internal/Line2.js.map +1 -1
- package/_internal/LineChart2.js +47 -44
- package/_internal/LineChart2.js.map +1 -1
- package/_internal/PieChart2.js +23 -24
- package/_internal/PieChart2.js.map +1 -1
- package/_internal/ScatterPlot2.js +52 -44
- package/_internal/ScatterPlot2.js.map +1 -1
- package/_internal/config.js +2 -2
- package/_internal/config.js.map +1 -1
- package/index.d.ts +913 -719
- package/package.json +17 -22
- package/index2.js +0 -16
- package/index2.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PieChart2.js","sources":["../../src/components/PieChart/types.ts","../../src/components/PieChart/styles.ts","../../src/components/PieChart/LoadingPieChart.tsx","../../src/components/PieChart/utils.ts","../../src/components/PieChart/EmptyPieChart.tsx","../../src/components/PieChart/intl/index.ts","../../src/components/PieChart/RenderedPieChart.tsx","../../src/components/PieChart/PieChart.tsx"],"sourcesContent":["import { ComponentProps, ReactElement, ReactNode } from 'react';\nimport { PieArcDatum as d3PieArcDatum } from 'd3-shape';\nimport {\n ChartDimensions,\n ChartSize,\n ChartTheme,\n ArcDatum,\n TooltipVariant,\n CategoryData,\n CategoryDatum,\n Statistics,\n} from '../../types';\nimport { Theme, ValueOf } from '@redsift/design-system';\nimport { ArcProps } from '../Arc';\nimport { ChartContainerProps } from '../ChartContainer';\nimport { LegendProps } from '../Legend';\nimport { SortingMethod } from '../../utils';\nimport { AnchorProps } from '../DataPoint';\n\n/**\n * Component variant.\n */\nexport const PieChartVariant = {\n plain: 'plain',\n spaced: 'spaced',\n donut: 'donut',\n spacedDonut: 'spacedDonut',\n} as const;\nexport type PieChartVariant = ValueOf<typeof PieChartVariant>;\n\n/**\n * Component's labels variant.\n */\nexport const PieChartLegendVariant = {\n none: 'none',\n internal: 'internal',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n custom: 'custom',\n} as const;\nexport type PieChartLegendVariant = ValueOf<typeof PieChartLegendVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\nexport type PieChartDimensions = ChartDimensions & {\n smallFontSize: number;\n fontSize: number;\n innerRadius: number;\n};\n\n/**\n * Component props.\n */\nexport interface PieChartProps extends ChartContainerProps {\n /** Number of categories to use, the rest being put into a new category called \"Others\". */\n caping?: number;\n /** Dataset to use to generate the chart, should be a list of objects containing a key and a value. */\n data?: CategoryData;\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 slice is a navigation link. */\n getSliceAnchorProps?: (datum: ArcDatum) => AnchorProps;\n /** Whether the pie or donut is cut in half or not. */\n isHalf?: boolean;\n /** Method to determine whether a slice is selected or not. */\n isSliceSelected?: (datum: ArcDatum) => boolean | undefined;\n /** Method to override the data labels. */\n labelDecorator?: (\n datum: ArcDatum,\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: ArcDatum,\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?: PieChartLegendVariant;\n /** Props to forward to the Legend block. Can be used to make the legend selectable. */\n legendProps?: Omit<LegendProps, 'data' | 'ref' | 'variant'> & { extraLegendItems?: Statistics };\n /** Labels and texts. */\n localeText?: LocaleText;\n /** Method to be called on a click on a slice. For a navigation link, please use `getSliceAnchorProps` instead. */\n onSliceClick?: (datum: ArcDatum) => void;\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 /** PieChart size. */\n size?: ChartSize | PieChartDimensions;\n /** Native HTML props to forward to each slice. */\n sliceProps?: Omit<ComponentProps<'g'>, 'onClick' | 'ref' | 'width'>;\n /** Slice role. If an onClick is provided, the slices will have the role `button`. For a navigation link, please use `getSliceAnchorProps` instead. */\n sliceRole?: ArcProps['role'];\n /** Define how to sort categories. */\n sortingMethod?: SortingMethod;\n /** Secondary text to be displayed in the middle of the chart, between the main text and subtext. Recommended to be used with donut variants only. */\n middleText?: string | ReactElement | ((data: d3PieArcDatum<CategoryDatum>[], total: number) => string | ReactElement);\n /** Secondary text to be displayed in the middle of the chart, above the main text. Recommended to be used with `donut` variants only. */\n subtext?: string | ReactElement | ((data: d3PieArcDatum<CategoryDatum>[], total: number) => string | ReactElement);\n /** Main text to be displayed in the middle of the chart. Recommended to be used with `donut` variants only. */\n text?: string | ReactElement | ((data: d3PieArcDatum<CategoryDatum>[], total: number) => string | ReactElement);\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 /** PieChart variant. */\n variant?: PieChartVariant;\n /** Method modifying what's displayed within the tooltip when the tooltipVariant is \"custom\". */\n tooltipDecorator?: (\n data: ArcDatum,\n props?: { index?: number; isSelected?: boolean; color?: string }\n ) => string | ReactElement;\n /** Tooltip variant. */\n tooltipVariant?: TooltipVariant;\n /** Theme. */\n theme?: Theme;\n}\n\nexport type StyledPieChartProps = PieChartProps & {};\n","import styled, { css } from 'styled-components';\nimport { StyledPieChartProps } from './types';\nimport { ChartContainer } from '../ChartContainer';\nimport { Theme } from '@redsift/design-system';\n\n/**\n * Component style.\n */\nexport const StyledPieChart = styled(ChartContainer)<StyledPieChartProps>`\n .redsift-piechart__chart-wrapper {\n position: relative;\n }\n`;\n\nexport const StyledPieChartCenterText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $smallTextSize: 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 > b {\n font-family: var(--redsift-typography-font-family-poppins);\n color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-text-primary)`};\n font-weight: var(--redsift-typography-font-weight-medium);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n\n &:nth-child(2) {\n font-weight: normal;\n margin-top: 8px;\n font-family: var(--redsift-typography-font-family-poppins);\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > span {\n color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-text-primary)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n &:nth-child(3) {\n margin-top: 4px;\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > b + span {\n font-size: var(--redsift-typography-body-font-size);\n font-family: var(--redsift-typography-font-family-poppins);\n line-height: var(--redsift-typography-badge-line-height);\n color: ${({ $theme }) => ($theme === Theme.light ? 'rgba(0, 0, 0, 0.6)' : 'rgba(255, 255, 255, 0.6)')};\n text-align: center;\n }\n`;\n\nexport const StyledPieChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $isDonut: boolean;\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: ${({ $isDonut, $theme }) =>\n $isDonut\n ? css`var(--redsift-color-neutral-mid-grey)`\n : css`var(--redsift-color-${$theme}-components-text-primary)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { PieChartProps } from './types';\nimport { StyledPieChart } from './styles';\n\nexport const LoadingPieChart = forwardRef<HTMLDivElement, PieChartProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledPieChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledPieChart>\n );\n }\n);\n","import { ChartSize } from '../../types';\nimport { PieChartDimensions } from './types';\n\nexport const sizeToDimension = (size: ChartSize | PieChartDimensions, isHalf?: boolean): PieChartDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return {\n width: 200,\n height: 200 * (isHalf ? 0.5 : 1),\n smallFontSize: 13,\n fontSize: 30,\n innerRadius: 55,\n };\n case ChartSize.large:\n return {\n width: 300,\n height: 300 * (isHalf ? 0.5 : 1),\n smallFontSize: 18,\n fontSize: 38,\n innerRadius: 80,\n };\n case ChartSize.medium:\n default:\n return {\n width: 240,\n height: 240 * (isHalf ? 0.5 : 1),\n smallFontSize: 14,\n fontSize: 34,\n innerRadius: 65,\n };\n }\n};\n","import React, { forwardRef, RefObject } from 'react';\nimport { arc as d3arc } from 'd3';\n\nimport { ArcDatum } from '../../types';\nimport { PieChartProps, PieChartVariant } from './types';\nimport { StyledPieChart, StyledPieChartEmptyText } from './styles';\nimport { Arcs } from '../Arcs';\nimport { empty } from '../../scheme';\nimport { sizeToDimension } from './utils';\nimport { useTheme } from '@redsift/design-system';\n\nexport const EmptyPieChart = forwardRef<HTMLDivElement, PieChartProps>((props, ref) => {\n const { className, emptyComponent, localeText, size, variant, ...forwardedProps } = props;\n const theme = useTheme();\n\n const isDonut = variant === PieChartVariant.donut || variant === PieChartVariant.spacedDonut;\n\n const { width, height, fontSize, innerRadius } = sizeToDimension(size!);\n const externalRadiusPadding = 8;\n\n const createArc = d3arc<ArcDatum>()\n .innerRadius(isDonut ? innerRadius : 0)\n .outerRadius(width / 2 - externalRadiusPadding);\n\n return (\n <StyledPieChart {...forwardedProps} className={className} ref={ref as RefObject<HTMLDivElement>}>\n {emptyComponent ?? (\n <>\n <StyledPieChartEmptyText\n $maxWidth={innerRadius * 2}\n $textSize={fontSize / 2}\n $isDonut={isDonut}\n $theme={theme}\n >\n <span>{localeText?.emptyChartText}</span>\n </StyledPieChartEmptyText>\n <svg width={width} height={height}>\n <Arcs\n arcs={[\n {\n createArc,\n previousData: {\n data: {\n key: '',\n value: 0,\n },\n startAngle: 0,\n endAngle: 0,\n padAngle: 0,\n value: 0,\n index: 0,\n },\n data: {\n data: {\n key: 'No Data',\n value: 0,\n },\n index: 0,\n value: 0,\n startAngle: 0,\n endAngle: 2 * Math.PI,\n padAngle: 0,\n },\n dataset: [\n {\n data: {\n key: 'No Data',\n value: 0,\n },\n index: 0,\n value: 0,\n startAngle: 0,\n endAngle: 2 * Math.PI,\n padAngle: 0,\n },\n ],\n color: empty,\n },\n ]}\n transform={`translate(${width / 2} ${height / 2})`}\n />\n </svg>\n </>\n )}\n </StyledPieChart>\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 React, { forwardRef, RefObject, useEffect, useRef } from 'react';\nimport { arc as d3arc, pie as d3pie, sum as d3sum } from 'd3';\n\nimport { useTheme, useMessageFormatter } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport { LegendVariant, ArcDatum, CategoryData, CategoryDatum, LegendItemDatum } from '../../types';\nimport { PieChartLegendVariant, PieChartProps, PieChartVariant } from './types';\nimport { StyledPieChartCenterText, StyledPieChart } from './styles';\nimport { Arcs } from '../Arcs';\nimport { useFormatCategoricalData } from '../../hooks';\nimport { Legend } from '../Legend';\nimport { sizeToDimension } from './utils';\nimport { PieChart } from './PieChart';\nimport { getSortingMethod, mergeLegends } from '../../utils';\n\ninterface RenderedPieChartProps extends Required<Pick<PieChartProps, 'data'>>, Omit<PieChartProps, 'data'> {}\n\nexport const RenderedPieChart = forwardRef<HTMLDivElement, RenderedPieChartProps>((props, ref) => {\n const {\n caping,\n className,\n data: propsData,\n disableAnimations,\n getSliceAnchorProps,\n id,\n isHalf,\n isSliceSelected,\n labelDecorator,\n legendDecorator,\n legendVariant,\n legendProps,\n middleText: propsMiddleText,\n onSliceClick,\n others,\n size,\n sliceProps,\n sliceRole,\n sortingMethod,\n subtext: propsSubtext,\n text: propsText,\n colorTheme,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tooltipDecorator: _tooltipDecorator,\n tooltipVariant,\n variant,\n ...forwardedProps\n } = props;\n\n const cache = useRef<CategoryData>();\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const isDonut = variant === PieChartVariant.donut || variant === PieChartVariant.spacedDonut;\n const isSpaced = variant === PieChartVariant.spaced || variant === PieChartVariant.spacedDonut;\n\n const { data, colorScale } = useFormatCategoricalData({\n data: propsData,\n colorTheme: colorTheme!,\n sortingMethod: sortingMethod!,\n caping,\n others,\n theme,\n });\n\n useEffect(() => {\n cache.current = data;\n });\n\n const { width, height, smallFontSize, fontSize, innerRadius } = sizeToDimension(size!, isHalf);\n const externalRadiusPadding = 8;\n\n const createPie = d3pie<CategoryDatum>()\n .value((d) => d.value)\n .sort(null)\n .startAngle(isHalf ? Math.PI * -0.5 : 0)\n .endAngle(isHalf ? Math.PI * 0.5 : Math.PI * 2);\n const createArc = d3arc<ArcDatum>()\n .innerRadius(isDonut ? innerRadius : 0)\n .outerRadius(width / 2 - externalRadiusPadding);\n const pieData = createPie(data);\n const previousPieData = cache.current ? createPie(cache.current) : undefined;\n const total = d3sum(data, (d) => d.value);\n const legendWidth = useRef<string>();\n if (data && !legendWidth.current) {\n legendWidth.current = `${Math.max(...data.map((d) => d.key.length + String(d.value).length)) * 8 + 32}px`;\n }\n\n const text =\n typeof propsText === 'function'\n ? propsText(\n pieData.map((datum) => {\n const percent = datum.data.value / total;\n return { ...datum, data: { ...datum.data, percent } };\n }),\n total\n )\n : propsText;\n const subtext =\n typeof propsSubtext === 'function'\n ? propsSubtext(\n pieData.map((datum) => {\n const percent = datum.data.value / total;\n return { ...datum, data: { ...datum.data, percent } };\n }),\n total\n )\n : propsSubtext;\n const middleText =\n typeof propsMiddleText === 'function'\n ? propsMiddleText(\n pieData.map((datum) => {\n const percent = datum.data.value / total;\n return { ...datum, data: { ...datum.data, percent } };\n }),\n total\n )\n : propsMiddleText;\n\n const filteredPieData = pieData.filter((datum) => datum.data.value);\n\n const { extraLegendItems, ...forwardedLegendProps } = legendProps || {};\n\n return (\n <StyledPieChart\n mode={typeof onSliceClick === 'function' || typeof getSliceAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={format('definition', { sliceLength: filteredPieData.length })}\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 {filteredPieData.map((datum) => (\n <tr key={datum.data.key}>\n <th scope=\"row\">{datum.data.key}</th>\n <td>{datum.data.value}</td>\n </tr>\n ))}\n </tbody>\n ),\n }}\n {...forwardedProps}\n className={className}\n id={id}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <div className={`${PieChart.className}__chart-wrapper`}>\n {text ? (\n <StyledPieChartCenterText\n $maxWidth={innerRadius * 2}\n $textSize={fontSize}\n $smallTextSize={smallFontSize}\n $theme={theme}\n >\n {subtext ? <b>{text}</b> : <span>{text}</span>}\n {middleText ? <b>{middleText}</b> : null}\n <span>{subtext}</span>\n </StyledPieChartCenterText>\n ) : null}\n <svg\n width={width}\n height={isHalf ? height + externalRadiusPadding : height}\n aria-label={\n typeof onSliceClick === 'function' || typeof getSliceAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n aria-hidden=\"false\"\n >\n <Arcs\n arcs={filteredPieData.map((datum, index) => {\n const percent = datum.data.value / total;\n const from = previousPieData\n ? previousPieData[index]\n : {\n data: {\n key: '',\n value: 0,\n },\n startAngle: isHalf ? Math.PI * -0.5 : 0,\n endAngle: isHalf ? Math.PI * -0.5 : 0,\n padAngle: 0,\n value: 0,\n index: index,\n };\n const to = { ...datum, data: { ...datum.data, percent } };\n\n return {\n color: colorScale?.(to.data.key),\n createArc,\n previousData: from,\n id: `id${id}__arc-${index}`,\n index,\n isSelected: isSliceSelected!(to),\n key: `id${id}__arc-${index}`,\n data: to,\n dataset: pieData,\n anchorProps: getSliceAnchorProps ? getSliceAnchorProps(to) : undefined,\n };\n })}\n disableAnimations={disableAnimations}\n hasLabels={legendVariant === PieChartLegendVariant.internal}\n hasStroke={isSpaced}\n labelDecorator={labelDecorator}\n onClick={onSliceClick}\n role={sliceRole}\n sliceProps={sliceProps}\n tooltipVariant={tooltipVariant}\n transform={`translate(${width / 2} ${isHalf ? height : height / 2})`}\n />\n </svg>\n </div>\n {legendVariant !== PieChartLegendVariant.none && legendVariant !== PieChartLegendVariant.internal ? (\n <Legend\n data={(extraLegendItems\n ? mergeLegends(extraLegendItems, data).sort(getSortingMethod(sortingMethod!))\n : data\n ).map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n }))}\n variant={\n legendVariant === PieChartLegendVariant.externalLabelValue\n ? LegendVariant.value\n : legendVariant === PieChartLegendVariant.externalLabelPercent\n ? LegendVariant.percent\n : legendVariant === PieChartLegendVariant.externalLabel\n ? LegendVariant.label\n : LegendVariant.custom\n }\n width={legendWidth.current}\n labelDecorator={\n labelDecorator ? (datum: LegendItemDatum, props) => labelDecorator(datum as ArcDatum, props) : undefined\n }\n legendDecorator={\n legendDecorator ? (datum: LegendItemDatum, props) => legendDecorator(datum as ArcDatum, props) : undefined\n }\n {...forwardedLegendProps}\n />\n ) : null}\n </StyledPieChart>\n );\n});\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp, useId } from '@redsift/design-system';\n\nimport { ChartSize, ColorTheme, TooltipVariant } from '../../types';\nimport { PieChartLegendVariant, PieChartProps, PieChartVariant } from './types';\nimport { LoadingPieChart } from './LoadingPieChart';\nimport { EmptyPieChart } from './EmptyPieChart';\nimport { RenderedPieChart } from './RenderedPieChart';\n\nconst COMPONENT_NAME = 'PieChart';\nconst CLASSNAME = 'redsift-piechart';\n\n/**\n * PieChart displays proportional data as slices of a circle.\n * Built on D3.js with interactive slices and customizable legends.\n *\n * Variants: `default`, `spaced`, `donut`, `spacedDonut`\n *\n * Data format: `CategoryData` `[{ key: string, value: number }]`\n *\n * @example\n * // Basic pie chart\n * const data = [\n * { key: 'Category A', value: 30 },\n * { key: 'Category B', value: 45 },\n * { key: 'Category C', value: 25 },\n * ];\n * <PieChart data={data} size=\"medium\" />\n *\n * @example\n * // Donut chart with center text\n * <PieChart\n * data={statusData}\n * variant=\"donut\"\n * text=\"Total\"\n * subtext=\"1,234\"\n * />\n *\n * @example\n * // Half pie (semicircle) chart\n * <PieChart\n * data={progressData}\n * isHalf={true}\n * variant=\"donut\"\n * text=\"Progress\"\n * subtext=\"75%\"\n * />\n *\n * @example\n * // With click handler and tooltips\n * <PieChart\n * data={breakdownData}\n * tooltipVariant=\"value\"\n * onSliceClick={(d) => filterBy(d.key)}\n * legendVariant=\"externalLabel\"\n * />\n *\n * @example\n * // Cap small values into \"Others\"\n * <PieChart\n * data={manyCategories}\n * caping={5}\n * others={true}\n * sortingMethod=\"desc-value\"\n * />\n */\n\nexport const PieChart: Comp<PieChartProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n caping,\n chartRef,\n className,\n colorTheme = ColorTheme.default,\n data: propsData,\n emptyComponent,\n id: propsId,\n isSliceSelected = () => true,\n labelDecorator,\n legendDecorator,\n legendProps,\n legendVariant: propsLegendVariant,\n localeText = { emptyChartText: 'No Data' },\n middleText,\n onSliceClick,\n others = true,\n size = ChartSize.medium,\n sliceProps,\n sliceRole,\n sortingMethod = 'desc-value',\n subtext,\n text,\n tooltipDecorator,\n tooltipVariant = TooltipVariant.value,\n variant = PieChartVariant.spaced,\n ...forwardedProps\n } = props;\n const [_id] = useId();\n const id = propsId ?? _id;\n\n const legendVariant = propsLegendVariant ?? PieChartLegendVariant.none;\n\n if (propsData === undefined || propsData === null) {\n return <LoadingPieChart id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyPieChart\n data={propsData}\n emptyComponent={emptyComponent}\n id={id}\n localeText={localeText}\n size={size}\n sortingMethod={sortingMethod}\n variant={variant}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return (\n <RenderedPieChart\n caping={caping}\n chartRef={chartRef}\n className={classNames(PieChart.className, className)}\n data={propsData}\n id={id}\n isSliceSelected={isSliceSelected}\n labelDecorator={labelDecorator}\n legendDecorator={legendDecorator}\n legendProps={legendProps}\n legendVariant={legendVariant}\n middleText={middleText}\n onSliceClick={onSliceClick}\n others={others}\n size={size}\n sliceProps={sliceProps}\n sliceRole={sliceRole}\n sortingMethod={sortingMethod}\n subtext={subtext}\n text={text}\n colorTheme={colorTheme}\n tooltipDecorator={tooltipDecorator}\n tooltipVariant={tooltipVariant}\n variant={variant}\n {...forwardedProps}\n ref={ref}\n />\n );\n});\nPieChart.className = CLASSNAME;\nPieChart.displayName = COMPONENT_NAME;\n"],"names":["PieChartVariant","plain","spaced","donut","spacedDonut","PieChartLegendVariant","none","internal","externalLabel","externalLabelValue","externalLabelPercent","custom","StyledPieChart","styled","ChartContainer","StyledPieChartCenterText","div","_ref","$maxWidth","_ref2","$theme","_ref3","$textSize","_ref4","_ref5","$smallTextSize","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","Theme","light","StyledPieChartEmptyText","_ref13","_ref14","$isDonut","css","_ref15","_ref16","LoadingPieChart","forwardRef","props","ref","className","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","_extends","sizeToDimension","size","isHalf","ChartSize","small","width","height","smallFontSize","fontSize","innerRadius","large","medium","EmptyPieChart","emptyComponent","localeText","variant","theme","useTheme","isDonut","externalRadiusPadding","createArc","d3arc","outerRadius","Fragment","emptyChartText","Arcs","arcs","previousData","data","key","value","startAngle","endAngle","padAngle","index","Math","PI","dataset","color","empty","transform","enUS","frFR","RenderedPieChart","caping","propsData","disableAnimations","getSliceAnchorProps","id","isSliceSelected","labelDecorator","legendDecorator","legendVariant","legendProps","middleText","propsMiddleText","onSliceClick","others","sliceProps","sliceRole","sortingMethod","subtext","propsSubtext","text","propsText","colorTheme","tooltipDecorator","_tooltipDecorator","tooltipVariant","cache","useRef","format","useMessageFormatter","intlMessages","isSpaced","colorScale","useFormatCategoricalData","useEffect","current","createPie","d3pie","d","sort","pieData","previousPieData","undefined","total","d3sum","legendWidth","max","map","length","String","datum","percent","_objectSpread","filteredPieData","filter","extraLegendItems","forwardedLegendProps","_excluded2","mode","definition","sliceLength","dataTableRepresentation","header","scope","body","PieChart","from","to","isSelected","anchorProps","hasLabels","hasStroke","onClick","role","Legend","mergeLegends","getSortingMethod","LegendVariant","label","COMPONENT_NAME","CLASSNAME","chartRef","ColorTheme","default","propsId","propsLegendVariant","TooltipVariant","_id","useId","classNames","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PieChart2.js","sources":["../../src/components/PieChart/types.ts","../../src/components/PieChart/styles.ts","../../src/components/PieChart/LoadingPieChart.tsx","../../src/components/PieChart/utils.ts","../../src/components/PieChart/EmptyPieChart.tsx","../../src/components/PieChart/intl/index.ts","../../src/components/PieChart/RenderedPieChart.tsx","../../src/components/PieChart/PieChart.tsx"],"sourcesContent":["import { ComponentProps, ReactElement, ReactNode } from 'react';\nimport { PieArcDatum as d3PieArcDatum } from 'd3-shape';\nimport {\n ChartDimensions,\n ChartSize,\n ChartTheme,\n ArcDatum,\n TooltipVariant,\n CategoryData,\n CategoryDatum,\n Statistics,\n} from '../../types';\nimport { Theme, ValueOf } from '@redsift/design-system';\nimport { ArcProps } from '../Arc';\nimport { ChartContainerProps } from '../ChartContainer';\nimport { LegendProps } from '../Legend';\nimport { SortingMethod } from '../../utils';\nimport { AnchorProps } from '../DataPoint';\n\n/**\n * Component variant.\n */\nexport const PieChartVariant = {\n plain: 'plain',\n spaced: 'spaced',\n donut: 'donut',\n spacedDonut: 'spacedDonut',\n} as const;\nexport type PieChartVariant = ValueOf<typeof PieChartVariant>;\n\n/**\n * Component's labels variant.\n */\nexport const PieChartLegendVariant = {\n none: 'none',\n internal: 'internal',\n externalLabel: 'externalLabel',\n externalLabelValue: 'externalLabelValue',\n externalLabelPercent: 'externalLabelPercent',\n custom: 'custom',\n} as const;\nexport type PieChartLegendVariant = ValueOf<typeof PieChartLegendVariant>;\n\ninterface LocaleText {\n emptyChartText: string;\n}\n\nexport type PieChartDimensions = ChartDimensions & {\n smallFontSize: number;\n fontSize: number;\n innerRadius: number;\n};\n\n/**\n * Component props.\n */\nexport interface PieChartProps extends ChartContainerProps {\n /** Number of categories to use, the rest being put into a new category called \"Others\". */\n caping?: number;\n /** Dataset to use to generate the chart, should be a list of objects containing a key and a value. */\n data?: CategoryData;\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 slice is a navigation link. */\n getSliceAnchorProps?: (datum: ArcDatum) => AnchorProps;\n /** Whether the pie or donut is cut in half or not. */\n isHalf?: boolean;\n /** Method to determine whether a slice is selected or not. */\n isSliceSelected?: (datum: ArcDatum) => boolean | undefined;\n /** Method to override the data labels. */\n labelDecorator?: (\n datum: ArcDatum,\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: ArcDatum,\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?: PieChartLegendVariant;\n /** Props to forward to the Legend block. Can be used to make the legend selectable. */\n legendProps?: Omit<LegendProps, 'data' | 'ref' | 'variant'> & { extraLegendItems?: Statistics };\n /** Labels and texts. */\n localeText?: LocaleText;\n /** Method to be called on a click on a slice. For a navigation link, please use `getSliceAnchorProps` instead. */\n onSliceClick?: (datum: ArcDatum) => void;\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 /** PieChart size. */\n size?: ChartSize | PieChartDimensions;\n /** Native HTML props to forward to each slice. */\n sliceProps?: Omit<ComponentProps<'g'>, 'onClick' | 'ref' | 'width'>;\n /** Slice role. If an onClick is provided, the slices will have the role `button`. For a navigation link, please use `getSliceAnchorProps` instead. */\n sliceRole?: ArcProps['role'];\n /** Define how to sort categories. */\n sortingMethod?: SortingMethod;\n /** Secondary text to be displayed in the middle of the chart, between the main text and subtext. Recommended to be used with donut variants only. */\n middleText?: string | ReactElement | ((data: d3PieArcDatum<CategoryDatum>[], total: number) => string | ReactElement);\n /** Secondary text to be displayed in the middle of the chart, above the main text. Recommended to be used with `donut` variants only. */\n subtext?: string | ReactElement | ((data: d3PieArcDatum<CategoryDatum>[], total: number) => string | ReactElement);\n /** Main text to be displayed in the middle of the chart. Recommended to be used with `donut` variants only. */\n text?: string | ReactElement | ((data: d3PieArcDatum<CategoryDatum>[], total: number) => string | ReactElement);\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 /** PieChart variant. */\n variant?: PieChartVariant;\n /** Method modifying what's displayed within the tooltip when the tooltipVariant is \"custom\". */\n tooltipDecorator?: (\n data: ArcDatum,\n props?: { index?: number; isSelected?: boolean; color?: string }\n ) => string | ReactElement;\n /** Tooltip variant. */\n tooltipVariant?: TooltipVariant;\n /** Theme. */\n theme?: Theme;\n}\n\nexport type StyledPieChartProps = PieChartProps & {};\n","import styled, { css } from 'styled-components';\nimport { StyledPieChartProps } from './types';\nimport { ChartContainer } from '../ChartContainer';\nimport { Theme } from '@redsift/design-system';\n\n/**\n * Component style.\n */\nexport const StyledPieChart = styled(ChartContainer)<StyledPieChartProps>`\n .redsift-piechart__chart-wrapper {\n position: relative;\n }\n`;\n\nexport const StyledPieChartCenterText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $smallTextSize: 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 > b {\n font-family: var(--redsift-typography-font-family-poppins);\n color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-text-primary)`};\n font-weight: var(--redsift-typography-font-weight-medium);\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n\n &:nth-child(2) {\n font-weight: normal;\n margin-top: 8px;\n font-family: var(--redsift-typography-font-family-poppins);\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > span {\n color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-text-primary)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n &:nth-child(3) {\n margin-top: 4px;\n font-size: ${({ $smallTextSize }) => $smallTextSize}px;\n line-height: ${({ $smallTextSize }) => $smallTextSize}px;\n }\n }\n > b + span {\n font-size: var(--redsift-typography-body-font-size);\n font-family: var(--redsift-typography-font-family-poppins);\n line-height: var(--redsift-typography-badge-line-height);\n color: ${({ $theme }) => ($theme === Theme.light ? 'rgba(0, 0, 0, 0.6)' : 'rgba(255, 255, 255, 0.6)')};\n text-align: center;\n }\n`;\n\nexport const StyledPieChartEmptyText = styled.div<{\n $maxWidth: number;\n $textSize: number;\n $isDonut: boolean;\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: ${({ $isDonut, $theme }) =>\n $isDonut\n ? css`var(--redsift-color-neutral-mid-grey)`\n : css`var(--redsift-color-${$theme}-components-text-primary)`};\n font-size: ${({ $textSize }) => $textSize}px;\n line-height: ${({ $textSize }) => $textSize}px;\n }\n`;\n","import React, { forwardRef, RefObject } from 'react';\n\nimport { PieChartProps } from './types';\nimport { StyledPieChart } from './styles';\n\nexport const LoadingPieChart = forwardRef<HTMLDivElement, PieChartProps>(\n (props, ref) => {\n const { className, ...forwardedProps } = props;\n\n return (\n <StyledPieChart\n {...forwardedProps}\n className={className}\n ref={ref as RefObject<HTMLDivElement>}\n >\n Loading...\n </StyledPieChart>\n );\n }\n);\n","import { ChartSize } from '../../types';\nimport { PieChartDimensions } from './types';\n\nexport const sizeToDimension = (size: ChartSize | PieChartDimensions, isHalf?: boolean): PieChartDimensions => {\n if (typeof size !== 'string') {\n return size;\n }\n\n switch (size) {\n case ChartSize.small:\n return {\n width: 200,\n height: 200 * (isHalf ? 0.5 : 1),\n smallFontSize: 13,\n fontSize: 30,\n innerRadius: 55,\n };\n case ChartSize.large:\n return {\n width: 300,\n height: 300 * (isHalf ? 0.5 : 1),\n smallFontSize: 18,\n fontSize: 38,\n innerRadius: 80,\n };\n case ChartSize.medium:\n default:\n return {\n width: 240,\n height: 240 * (isHalf ? 0.5 : 1),\n smallFontSize: 14,\n fontSize: 34,\n innerRadius: 65,\n };\n }\n};\n","import React, { forwardRef, RefObject } from 'react';\nimport { arc as d3arc } from 'd3';\n\nimport { ArcDatum } from '../../types';\nimport { PieChartProps, PieChartVariant } from './types';\nimport { StyledPieChart, StyledPieChartEmptyText } from './styles';\nimport { Arcs } from '../Arcs';\nimport { empty } from '../../scheme';\nimport { sizeToDimension } from './utils';\nimport { useTheme } from '@redsift/design-system';\n\nexport const EmptyPieChart = forwardRef<HTMLDivElement, PieChartProps>((props, ref) => {\n const { className, emptyComponent, localeText, size, variant, ...forwardedProps } = props;\n const theme = useTheme();\n\n const isDonut = variant === PieChartVariant.donut || variant === PieChartVariant.spacedDonut;\n\n const { width, height, fontSize, innerRadius } = sizeToDimension(size!);\n const externalRadiusPadding = 8;\n\n const createArc = d3arc<ArcDatum>()\n .innerRadius(isDonut ? innerRadius : 0)\n .outerRadius(width / 2 - externalRadiusPadding);\n\n return (\n <StyledPieChart {...forwardedProps} className={className} ref={ref as RefObject<HTMLDivElement>}>\n {emptyComponent ?? (\n <>\n <StyledPieChartEmptyText\n $maxWidth={innerRadius * 2}\n $textSize={fontSize / 2}\n $isDonut={isDonut}\n $theme={theme}\n >\n <span>{localeText?.emptyChartText}</span>\n </StyledPieChartEmptyText>\n <svg width={width} height={height}>\n <Arcs\n arcs={[\n {\n createArc,\n previousData: {\n data: {\n key: '',\n value: 0,\n },\n startAngle: 0,\n endAngle: 0,\n padAngle: 0,\n value: 0,\n index: 0,\n },\n data: {\n data: {\n key: 'No Data',\n value: 0,\n },\n index: 0,\n value: 0,\n startAngle: 0,\n endAngle: 2 * Math.PI,\n padAngle: 0,\n },\n dataset: [\n {\n data: {\n key: 'No Data',\n value: 0,\n },\n index: 0,\n value: 0,\n startAngle: 0,\n endAngle: 2 * Math.PI,\n padAngle: 0,\n },\n ],\n color: empty,\n },\n ]}\n transform={`translate(${width / 2} ${height / 2})`}\n />\n </svg>\n </>\n )}\n </StyledPieChart>\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 React, { forwardRef, RefObject, useEffect, useRef } from 'react';\nimport { arc as d3arc, pie as d3pie, sum as d3sum } from 'd3';\n\nimport { useTheme, useMessageFormatter } from '@redsift/design-system';\nimport intlMessages from './intl';\n\nimport { LegendVariant, ArcDatum, CategoryData, CategoryDatum, LegendItemDatum } from '../../types';\nimport { PieChartLegendVariant, PieChartProps, PieChartVariant } from './types';\nimport { StyledPieChartCenterText, StyledPieChart } from './styles';\nimport { Arcs } from '../Arcs';\nimport { useFormatCategoricalData } from '../../hooks';\nimport { Legend } from '../Legend';\nimport { sizeToDimension } from './utils';\nimport { PieChart } from './PieChart';\nimport { getSortingMethod, mergeLegends } from '../../utils';\n\ninterface RenderedPieChartProps extends Required<Pick<PieChartProps, 'data'>>, Omit<PieChartProps, 'data'> {}\n\nexport const RenderedPieChart = forwardRef<HTMLDivElement, RenderedPieChartProps>((props, ref) => {\n const {\n caping,\n className,\n data: propsData,\n disableAnimations,\n getSliceAnchorProps,\n id,\n isHalf,\n isSliceSelected,\n labelDecorator,\n legendDecorator,\n legendVariant,\n legendProps,\n middleText: propsMiddleText,\n onSliceClick,\n others,\n size,\n sliceProps,\n sliceRole,\n sortingMethod,\n subtext: propsSubtext,\n text: propsText,\n colorTheme,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tooltipDecorator: _tooltipDecorator,\n tooltipVariant,\n variant,\n ...forwardedProps\n } = props;\n\n const cache = useRef<CategoryData>(undefined);\n const theme = useTheme();\n\n const format = useMessageFormatter(intlMessages);\n\n const isDonut = variant === PieChartVariant.donut || variant === PieChartVariant.spacedDonut;\n const isSpaced = variant === PieChartVariant.spaced || variant === PieChartVariant.spacedDonut;\n\n const { data, colorScale } = useFormatCategoricalData({\n data: propsData,\n colorTheme: colorTheme!,\n sortingMethod: sortingMethod!,\n caping,\n others,\n theme,\n });\n\n useEffect(() => {\n cache.current = data;\n });\n\n const { width, height, smallFontSize, fontSize, innerRadius } = sizeToDimension(size!, isHalf);\n const externalRadiusPadding = 8;\n\n const createPie = d3pie<CategoryDatum>()\n .value((d) => d.value)\n .sort(null)\n .startAngle(isHalf ? Math.PI * -0.5 : 0)\n .endAngle(isHalf ? Math.PI * 0.5 : Math.PI * 2);\n const createArc = d3arc<ArcDatum>()\n .innerRadius(isDonut ? innerRadius : 0)\n .outerRadius(width / 2 - externalRadiusPadding);\n const pieData = createPie(data);\n const previousPieData = cache.current ? createPie(cache.current) : undefined;\n const total = d3sum(data, (d) => d.value);\n const legendWidth = useRef<string>(undefined);\n if (data && !legendWidth.current) {\n legendWidth.current = `${Math.max(...data.map((d) => d.key.length + String(d.value).length)) * 8 + 32}px`;\n }\n\n const text =\n typeof propsText === 'function'\n ? propsText(\n pieData.map((datum) => {\n const percent = datum.data.value / total;\n return { ...datum, data: { ...datum.data, percent } };\n }),\n total\n )\n : propsText;\n const subtext =\n typeof propsSubtext === 'function'\n ? propsSubtext(\n pieData.map((datum) => {\n const percent = datum.data.value / total;\n return { ...datum, data: { ...datum.data, percent } };\n }),\n total\n )\n : propsSubtext;\n const middleText =\n typeof propsMiddleText === 'function'\n ? propsMiddleText(\n pieData.map((datum) => {\n const percent = datum.data.value / total;\n return { ...datum, data: { ...datum.data, percent } };\n }),\n total\n )\n : propsMiddleText;\n\n const filteredPieData = pieData.filter((datum) => datum.data.value);\n\n const { extraLegendItems, ...forwardedLegendProps } = legendProps || {};\n\n return (\n <StyledPieChart\n mode={typeof onSliceClick === 'function' || typeof getSliceAnchorProps === 'function' ? 'interactive' : 'static'}\n definition={format('definition', { sliceLength: filteredPieData.length })}\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 {filteredPieData.map((datum) => (\n <tr key={datum.data.key}>\n <th scope=\"row\">{datum.data.key}</th>\n <td>{datum.data.value}</td>\n </tr>\n ))}\n </tbody>\n ),\n }}\n {...forwardedProps}\n className={className}\n id={id}\n ref={ref as RefObject<HTMLDivElement>}\n >\n <div className={`${PieChart.className}__chart-wrapper`}>\n {text ? (\n <StyledPieChartCenterText\n $maxWidth={innerRadius * 2}\n $textSize={fontSize}\n $smallTextSize={smallFontSize}\n $theme={theme}\n >\n {subtext ? <b>{text}</b> : <span>{text}</span>}\n {middleText ? <b>{middleText}</b> : null}\n <span>{subtext}</span>\n </StyledPieChartCenterText>\n ) : null}\n <svg\n width={width}\n height={isHalf ? height + externalRadiusPadding : height}\n aria-label={\n typeof onSliceClick === 'function' || typeof getSliceAnchorProps === 'function'\n ? format('interactive-chart')\n : format('static-chart')\n }\n >\n <Arcs\n arcs={filteredPieData.map((datum, index) => {\n const percent = datum.data.value / total;\n const from = previousPieData\n ? previousPieData[index]\n : {\n data: {\n key: '',\n value: 0,\n },\n startAngle: isHalf ? Math.PI * -0.5 : 0,\n endAngle: isHalf ? Math.PI * -0.5 : 0,\n padAngle: 0,\n value: 0,\n index: index,\n };\n const to = { ...datum, data: { ...datum.data, percent } };\n\n return {\n color: colorScale?.(to.data.key),\n createArc,\n previousData: from,\n id: `id${id}__arc-${index}`,\n index,\n isSelected: isSliceSelected!(to),\n key: `id${id}__arc-${index}`,\n data: to,\n dataset: pieData,\n anchorProps: getSliceAnchorProps ? getSliceAnchorProps(to) : undefined,\n };\n })}\n disableAnimations={disableAnimations}\n hasLabels={legendVariant === PieChartLegendVariant.internal}\n hasStroke={isSpaced}\n labelDecorator={labelDecorator}\n onClick={onSliceClick}\n role={sliceRole}\n sliceProps={sliceProps}\n tooltipVariant={tooltipVariant}\n transform={`translate(${width / 2} ${isHalf ? height : height / 2})`}\n />\n </svg>\n </div>\n {legendVariant !== PieChartLegendVariant.none && legendVariant !== PieChartLegendVariant.internal ? (\n <Legend\n data={(extraLegendItems\n ? mergeLegends(extraLegendItems, data).sort(getSortingMethod(sortingMethod!))\n : data\n ).map((d) => ({\n ...d,\n color: colorScale?.(d.key)!,\n }))}\n variant={\n legendVariant === PieChartLegendVariant.externalLabelValue\n ? LegendVariant.value\n : legendVariant === PieChartLegendVariant.externalLabelPercent\n ? LegendVariant.percent\n : legendVariant === PieChartLegendVariant.externalLabel\n ? LegendVariant.label\n : LegendVariant.custom\n }\n width={legendWidth.current}\n labelDecorator={\n labelDecorator ? (datum: LegendItemDatum, props) => labelDecorator(datum as ArcDatum, props) : undefined\n }\n legendDecorator={\n legendDecorator ? (datum: LegendItemDatum, props) => legendDecorator(datum as ArcDatum, props) : undefined\n }\n {...forwardedLegendProps}\n />\n ) : null}\n </StyledPieChart>\n );\n});\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp, useId } from '@redsift/design-system';\n\nimport { ChartSize, ColorTheme, TooltipVariant } from '../../types';\nimport { PieChartLegendVariant, PieChartProps, PieChartVariant } from './types';\nimport { LoadingPieChart } from './LoadingPieChart';\nimport { EmptyPieChart } from './EmptyPieChart';\nimport { RenderedPieChart } from './RenderedPieChart';\n\nconst COMPONENT_NAME = 'PieChart';\nconst CLASSNAME = 'redsift-piechart';\n\n/**\n * PieChart displays proportional data as slices of a circle.\n * Built on D3.js with interactive slices and customizable legends.\n *\n * Variants: `default`, `spaced`, `donut`, `spacedDonut`\n *\n * Data format: `CategoryData` `[{ key: string, value: number }]`\n *\n * @example\n * // Basic pie chart\n * const data = [\n * { key: 'Category A', value: 30 },\n * { key: 'Category B', value: 45 },\n * { key: 'Category C', value: 25 },\n * ];\n * <PieChart data={data} size=\"medium\" />\n *\n * @example\n * // Donut chart with center text\n * <PieChart\n * data={statusData}\n * variant=\"donut\"\n * text=\"Total\"\n * subtext=\"1,234\"\n * />\n *\n * @example\n * // Half pie (semicircle) chart\n * <PieChart\n * data={progressData}\n * isHalf={true}\n * variant=\"donut\"\n * text=\"Progress\"\n * subtext=\"75%\"\n * />\n *\n * @example\n * // With click handler and tooltips\n * <PieChart\n * data={breakdownData}\n * tooltipVariant=\"value\"\n * onSliceClick={(d) => filterBy(d.key)}\n * legendVariant=\"externalLabel\"\n * />\n *\n * @example\n * // Cap small values into \"Others\"\n * <PieChart\n * data={manyCategories}\n * caping={5}\n * others={true}\n * sortingMethod=\"desc-value\"\n * />\n */\n\nexport const PieChart: Comp<PieChartProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n caping,\n chartRef,\n className,\n colorTheme = ColorTheme.default,\n data: propsData,\n emptyComponent,\n id: propsId,\n isSliceSelected = () => true,\n labelDecorator,\n legendDecorator,\n legendProps,\n legendVariant: propsLegendVariant,\n localeText = { emptyChartText: 'No Data' },\n middleText,\n onSliceClick,\n others = true,\n size = ChartSize.medium,\n sliceProps,\n sliceRole,\n sortingMethod = 'desc-value',\n subtext,\n text,\n tooltipDecorator,\n tooltipVariant = TooltipVariant.value,\n variant = PieChartVariant.spaced,\n ...forwardedProps\n } = props;\n const [_id] = useId();\n const id = propsId ?? _id;\n\n const legendVariant = propsLegendVariant ?? PieChartLegendVariant.none;\n\n if (propsData === undefined || propsData === null) {\n return <LoadingPieChart id={id} {...forwardedProps} ref={ref} />;\n }\n\n if (propsData.length === 0) {\n return (\n <EmptyPieChart\n data={propsData}\n emptyComponent={emptyComponent}\n id={id}\n localeText={localeText}\n size={size}\n sortingMethod={sortingMethod}\n variant={variant}\n {...forwardedProps}\n ref={ref}\n />\n );\n }\n\n return (\n <RenderedPieChart\n caping={caping}\n chartRef={chartRef}\n className={classNames(PieChart.className, className)}\n data={propsData}\n id={id}\n isSliceSelected={isSliceSelected}\n labelDecorator={labelDecorator}\n legendDecorator={legendDecorator}\n legendProps={legendProps}\n legendVariant={legendVariant}\n middleText={middleText}\n onSliceClick={onSliceClick}\n others={others}\n size={size}\n sliceProps={sliceProps}\n sliceRole={sliceRole}\n sortingMethod={sortingMethod}\n subtext={subtext}\n text={text}\n colorTheme={colorTheme}\n tooltipDecorator={tooltipDecorator}\n tooltipVariant={tooltipVariant}\n variant={variant}\n {...forwardedProps}\n ref={ref}\n />\n );\n});\nPieChart.className = CLASSNAME;\nPieChart.displayName = COMPONENT_NAME;\n"],"names":["PieChartVariant","plain","spaced","donut","spacedDonut","PieChartLegendVariant","none","internal","externalLabel","externalLabelValue","externalLabelPercent","custom","StyledPieChart","styled","ChartContainer","StyledPieChartCenterText","div","_ref","$maxWidth","_ref2","$theme","_ref3","$textSize","_ref4","_ref5","$smallTextSize","_ref6","_ref7","_ref8","_ref9","_ref10","_ref11","_ref12","Theme","light","StyledPieChartEmptyText","_ref13","_ref14","$isDonut","css","_ref15","_ref16","LoadingPieChart","forwardRef","props","ref","className","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","_extends","sizeToDimension","size","isHalf","ChartSize","small","width","height","smallFontSize","fontSize","innerRadius","large","medium","EmptyPieChart","emptyComponent","localeText","variant","theme","useTheme","isDonut","externalRadiusPadding","createArc","d3arc","outerRadius","Fragment","emptyChartText","Arcs","arcs","previousData","data","key","value","startAngle","endAngle","padAngle","index","Math","PI","dataset","color","empty","transform","enUS","frFR","RenderedPieChart","caping","propsData","disableAnimations","getSliceAnchorProps","id","isSliceSelected","labelDecorator","legendDecorator","legendVariant","legendProps","middleText","propsMiddleText","onSliceClick","others","sliceProps","sliceRole","sortingMethod","subtext","propsSubtext","text","propsText","colorTheme","tooltipDecorator","_tooltipDecorator","tooltipVariant","cache","useRef","undefined","format","useMessageFormatter","intlMessages","isSpaced","colorScale","useFormatCategoricalData","useEffect","current","createPie","d3pie","d","sort","pieData","previousPieData","total","d3sum","legendWidth","max","map","length","String","datum","percent","_objectSpread","filteredPieData","filter","extraLegendItems","forwardedLegendProps","_excluded2","mode","definition","sliceLength","dataTableRepresentation","header","scope","body","PieChart","from","to","isSelected","anchorProps","hasLabels","hasStroke","onClick","role","Legend","mergeLegends","getSortingMethod","LegendVariant","label","COMPONENT_NAME","CLASSNAME","chartRef","ColorTheme","default","propsId","propsLegendVariant","TooltipVariant","_id","useId","classNames","displayName"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as _objectWithoutProperties, a as _extends, b as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
|
|
2
|
-
import
|
|
2
|
+
import React, { 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
5
|
import styled from 'styled-components';
|
|
@@ -7,7 +7,7 @@ import { C as ChartContainer } from './ChartContainer2.js';
|
|
|
7
7
|
import { brush, select, zoom, interpolateRound, scaleLinear, min, extent, descending, scaleSqrt, max } from 'd3';
|
|
8
8
|
import { C as ChartSize, g as getSortingMethod, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
|
|
9
9
|
import { A as Axis, a as AxisVariant } from './Axis2.js';
|
|
10
|
-
import { Popover } from '@redsift/popovers';
|
|
10
|
+
import { useMergeRefs, Popover } from '@redsift/popovers';
|
|
11
11
|
import { D as Dot } from './Dot2.js';
|
|
12
12
|
import { L as Legend } from './Legend3.js';
|
|
13
13
|
import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
|
|
@@ -34,7 +34,7 @@ const useBrush = _ref => {
|
|
|
34
34
|
onBrush,
|
|
35
35
|
onBrushEnd
|
|
36
36
|
} = _ref;
|
|
37
|
-
const brushRef = propsBrushRef || useRef();
|
|
37
|
+
const brushRef = propsBrushRef || useRef(undefined);
|
|
38
38
|
useEffect(() => {
|
|
39
39
|
if (svgRef.current && isBrushable) {
|
|
40
40
|
brushRef.current = brush().extent(extent).keyModifiers(false).filter(event => event.shiftKey).on('brush', event => {
|
|
@@ -165,7 +165,7 @@ const LoadingScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
165
165
|
className
|
|
166
166
|
} = props,
|
|
167
167
|
forwardedProps = _objectWithoutProperties(props, _excluded$3);
|
|
168
|
-
return /*#__PURE__*/
|
|
168
|
+
return /*#__PURE__*/React.createElement(StyledScatterPlot, _extends({}, forwardedProps, {
|
|
169
169
|
className: className,
|
|
170
170
|
ref: ref
|
|
171
171
|
}), "Loading...");
|
|
@@ -236,18 +236,19 @@ const countBy = (arr, sortingMethod) => {
|
|
|
236
236
|
})).sort(getSortingMethod(sortingMethod));
|
|
237
237
|
};
|
|
238
238
|
|
|
239
|
-
const _excluded$2 = ["className", "data", "emptyComponent", "localeText", "size"];
|
|
239
|
+
const _excluded$2 = ["className", "data", "emptyComponent", "localeText", "size", "svgRef"];
|
|
240
240
|
const EmptyScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
241
241
|
const {
|
|
242
242
|
className,
|
|
243
243
|
data: propsData,
|
|
244
244
|
emptyComponent,
|
|
245
245
|
localeText,
|
|
246
|
-
size
|
|
246
|
+
size,
|
|
247
|
+
svgRef
|
|
247
248
|
} = props,
|
|
248
249
|
forwardedProps = _objectWithoutProperties(props, _excluded$2);
|
|
249
250
|
const theme = useTheme();
|
|
250
|
-
const cache = useRef();
|
|
251
|
+
const cache = useRef(undefined);
|
|
251
252
|
const data = propsData;
|
|
252
253
|
useEffect(() => {
|
|
253
254
|
cache.current = data;
|
|
@@ -262,19 +263,20 @@ const EmptyScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
262
263
|
bottom: 48
|
|
263
264
|
};
|
|
264
265
|
const chartWidth = width - margins.left - margins.right;
|
|
265
|
-
return /*#__PURE__*/
|
|
266
|
+
return /*#__PURE__*/React.createElement(StyledScatterPlot, _extends({}, forwardedProps, {
|
|
266
267
|
className: className,
|
|
267
268
|
ref: ref
|
|
268
|
-
}), emptyComponent !== null && emptyComponent !== void 0 ? emptyComponent : /*#__PURE__*/
|
|
269
|
+
}), emptyComponent !== null && emptyComponent !== void 0 ? emptyComponent : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledScatterPlotEmptyText, {
|
|
269
270
|
$maxWidth: width,
|
|
270
271
|
$textSize: chartDimensions.fontSize / 2,
|
|
271
272
|
$theme: theme
|
|
272
|
-
}, /*#__PURE__*/
|
|
273
|
+
}, /*#__PURE__*/React.createElement("span", null, localeText === null || localeText === void 0 ? void 0 : localeText.emptyChartText)), /*#__PURE__*/React.createElement("svg", {
|
|
274
|
+
ref: svgRef,
|
|
273
275
|
width: width,
|
|
274
276
|
height: height
|
|
275
|
-
}, /*#__PURE__*/
|
|
277
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
276
278
|
transform: `translate(${margins.left},${margins.top})`
|
|
277
|
-
}, /*#__PURE__*/
|
|
279
|
+
}, /*#__PURE__*/React.createElement(Axis, {
|
|
278
280
|
position: "bottom",
|
|
279
281
|
length: width - 32,
|
|
280
282
|
scale: scaleLinear().domain([]).range([0, chartWidth]),
|
|
@@ -317,7 +319,7 @@ var intlMessages = {
|
|
|
317
319
|
// Material Design Icons v7.2.96
|
|
318
320
|
const mdiChevronDown='M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z';const mdiChevronRight='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z';const mdiMouse='M11,1.07C7.05,1.56 4,4.92 4,9H11M4,15A8,8 0 0,0 12,23A8,8 0 0,0 20,15V11H4M13,1.07V9H20C20,4.92 16.94,1.56 13,1.07Z';
|
|
319
321
|
|
|
320
|
-
const _excluded$1 = ["isBrushable", "className", "data", "dotRole", "disableAnimations", "getDotAnchorProps", "hideControlKeyPanel", "id", "isDotSelected", "labelDecorator", "legendDecorator", "legendVariant", "legendProps", "margins", "onBrush", "onBrushEnd", "onDotClick", "size", "sortingMethod", "colorTheme", "tooltipDecorator", "tooltipVariant", "xAxisVariant", "xAxisPlacement", "xAxisTickFormat", "xAxisTickPadding", "xAxisTickRotation", "xAxisTickSize", "xAxisTickValues", "yAxisVariant", "yAxisPlacement", "yAxisTickFormat", "yAxisTickPadding", "yAxisTickRotation", "yAxisTickSize", "yAxisTickValues", "variant"],
|
|
322
|
+
const _excluded$1 = ["isBrushable", "className", "data", "dotRole", "disableAnimations", "getDotAnchorProps", "hideControlKeyPanel", "id", "isDotSelected", "labelDecorator", "legendDecorator", "legendVariant", "legendProps", "margins", "onBrush", "onBrushEnd", "onDotClick", "size", "sortingMethod", "svgRef", "colorTheme", "tooltipDecorator", "tooltipVariant", "xAxisVariant", "xAxisPlacement", "xAxisTickFormat", "xAxisTickPadding", "xAxisTickRotation", "xAxisTickSize", "xAxisTickValues", "yAxisVariant", "yAxisPlacement", "yAxisTickFormat", "yAxisTickPadding", "yAxisTickRotation", "yAxisTickSize", "yAxisTickValues", "variant"],
|
|
321
323
|
_excluded2 = ["extraLegendItems"];
|
|
322
324
|
const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
323
325
|
const {
|
|
@@ -340,6 +342,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
340
342
|
onDotClick,
|
|
341
343
|
size,
|
|
342
344
|
sortingMethod,
|
|
345
|
+
svgRef: propsSvgRef,
|
|
343
346
|
colorTheme,
|
|
344
347
|
tooltipDecorator,
|
|
345
348
|
tooltipVariant,
|
|
@@ -360,7 +363,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
360
363
|
variant
|
|
361
364
|
} = props,
|
|
362
365
|
forwardedProps = _objectWithoutProperties(props, _excluded$1);
|
|
363
|
-
const cache = useRef();
|
|
366
|
+
const cache = useRef(undefined);
|
|
364
367
|
const theme = useTheme();
|
|
365
368
|
const format = useMessageFormatter(intlMessages);
|
|
366
369
|
const data = propsData.filter(datum => datum.value && typeof datum.key[0] === 'number' && !Number.isNaN(datum.key[0]) && typeof datum.key[1] === 'number' && !Number.isNaN(datum.key[1]));
|
|
@@ -401,9 +404,11 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
401
404
|
category: 'key',
|
|
402
405
|
theme
|
|
403
406
|
});
|
|
404
|
-
const svgRef = useRef();
|
|
405
|
-
|
|
406
|
-
const
|
|
407
|
+
const svgRef = useRef(undefined);
|
|
408
|
+
// useZoom reads svgRef; the consumer's svgRef gets the same svg.
|
|
409
|
+
const mergedSvgRef = useMergeRefs([svgRef, propsSvgRef]);
|
|
410
|
+
const brushRef = useRef(undefined);
|
|
411
|
+
const svgBrushRef = useRef(undefined);
|
|
407
412
|
const {
|
|
408
413
|
scaleX,
|
|
409
414
|
scaleY,
|
|
@@ -453,7 +458,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
453
458
|
};
|
|
454
459
|
});
|
|
455
460
|
const globalSize = variant === ScatterPlotVariant.gridded ? scaleSqrt().domain([1, Math.max(max(circles, d => d.points.length), 1)]).range([3, minSize / BASE_NUMBER_OF_TICKS / 2]) : undefined;
|
|
456
|
-
const legendWidth = useRef();
|
|
461
|
+
const legendWidth = useRef(undefined);
|
|
457
462
|
if (countsByCategory && !legendWidth.current) {
|
|
458
463
|
legendWidth.current = `${Math.max(...countsByCategory.map(d => d.key.length + String(d.value).length)) * 8 + 32}px`;
|
|
459
464
|
}
|
|
@@ -482,7 +487,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
482
487
|
extraLegendItems
|
|
483
488
|
} = _ref,
|
|
484
489
|
forwardedLegendProps = _objectWithoutProperties(_ref, _excluded2);
|
|
485
|
-
return /*#__PURE__*/
|
|
490
|
+
return /*#__PURE__*/React.createElement(StyledScatterPlot, _extends({
|
|
486
491
|
mode: typeof onDotClick === 'function' || typeof getDotAnchorProps === 'function' ? 'interactive' : 'static',
|
|
487
492
|
definition: hasCategory ? format('definition-with-categories', {
|
|
488
493
|
categoryLength: categories.length,
|
|
@@ -504,24 +509,24 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
504
509
|
id: id,
|
|
505
510
|
className: className,
|
|
506
511
|
ref: ref
|
|
507
|
-
}), /*#__PURE__*/
|
|
512
|
+
}), /*#__PURE__*/React.createElement(Flexbox, {
|
|
508
513
|
flexDirection: "column",
|
|
509
514
|
alignItems: "center",
|
|
510
515
|
gap: "8"
|
|
511
|
-
}, !hideControlKeyPanel ? /*#__PURE__*/
|
|
516
|
+
}, !hideControlKeyPanel ? /*#__PURE__*/React.createElement(Flexbox, {
|
|
512
517
|
width: width,
|
|
513
518
|
position: "absolute"
|
|
514
|
-
}, /*#__PURE__*/
|
|
519
|
+
}, /*#__PURE__*/React.createElement(Flexbox, {
|
|
515
520
|
flexDirection: "column",
|
|
516
521
|
alignItems: "flex-end",
|
|
517
522
|
position: "absolute",
|
|
518
523
|
top: `${margins.top + 16}px`,
|
|
519
524
|
right: `${margins.right + 16}px`
|
|
520
|
-
}, /*#__PURE__*/
|
|
525
|
+
}, /*#__PURE__*/React.createElement(Popover, {
|
|
521
526
|
placement: "bottom-end",
|
|
522
527
|
isOpen: isKeyPanelOpen,
|
|
523
528
|
onOpen: setIsKeyPanelOpen
|
|
524
|
-
}, /*#__PURE__*/
|
|
529
|
+
}, /*#__PURE__*/React.createElement(Popover.Trigger, null, /*#__PURE__*/React.createElement(Button, {
|
|
525
530
|
variant: "secondary",
|
|
526
531
|
leftIcon: mdiMouse,
|
|
527
532
|
rightIcon: isKeyPanelOpen ? mdiChevronDown : mdiChevronRight,
|
|
@@ -530,28 +535,28 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
530
535
|
border: '1px solid var(--redsift-color-neutral-mid-grey)',
|
|
531
536
|
gap: '4px'
|
|
532
537
|
}
|
|
533
|
-
})), /*#__PURE__*/
|
|
538
|
+
})), /*#__PURE__*/React.createElement(Popover.Content, null, /*#__PURE__*/React.createElement(Flexbox, {
|
|
534
539
|
flexDirection: "column",
|
|
535
540
|
alignItems: "flex-start"
|
|
536
|
-
}, /*#__PURE__*/
|
|
541
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
537
542
|
margin: "8px 16px 0",
|
|
538
543
|
fontSize: "13px"
|
|
539
|
-
}, "Zoom - Mouse wheel"), /*#__PURE__*/
|
|
544
|
+
}, "Zoom - Mouse wheel"), /*#__PURE__*/React.createElement(Text, {
|
|
540
545
|
margin: "0 16px",
|
|
541
546
|
fontSize: "13px"
|
|
542
|
-
}, "Pan - Left click and drag"), /*#__PURE__*/
|
|
547
|
+
}, "Pan - Left click and drag"), /*#__PURE__*/React.createElement(Text, {
|
|
543
548
|
margin: "0 16px 8px",
|
|
544
549
|
fontSize: "13px"
|
|
545
|
-
}, "Select - Hold shift, left click and drag")))))) : null, /*#__PURE__*/
|
|
546
|
-
ref:
|
|
550
|
+
}, "Select - Hold shift, left click and drag")))))) : null, /*#__PURE__*/React.createElement("svg", {
|
|
551
|
+
ref: mergedSvgRef,
|
|
547
552
|
width: width,
|
|
548
553
|
height: height
|
|
549
|
-
}, /*#__PURE__*/
|
|
554
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
550
555
|
ref: svgBrushRef,
|
|
551
556
|
transform: `translate(${margins.left},${margins.top})`
|
|
552
|
-
}), /*#__PURE__*/
|
|
557
|
+
}), /*#__PURE__*/React.createElement("g", {
|
|
553
558
|
transform: `translate(${margins.left},${margins.top})`
|
|
554
|
-
}, /*#__PURE__*/
|
|
559
|
+
}, /*#__PURE__*/React.createElement("g", null, circles.map((circle, index) => {
|
|
555
560
|
var _countsByCategory$fin;
|
|
556
561
|
const scaleXDomain = scaleX.domain();
|
|
557
562
|
const scaleYDomain = scaleY.domain();
|
|
@@ -569,7 +574,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
569
574
|
}),
|
|
570
575
|
r: variant === ScatterPlotVariant.gridded ? globalSize(circle.points.length) / (transform.k < 1 ? transform.k : 1) : 4
|
|
571
576
|
});
|
|
572
|
-
return /*#__PURE__*/
|
|
577
|
+
return /*#__PURE__*/React.createElement(Dot, {
|
|
573
578
|
color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(circle.category),
|
|
574
579
|
data: to,
|
|
575
580
|
dataset: circles,
|
|
@@ -583,9 +588,9 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
583
588
|
tooltipDecorator: tooltipDecorator,
|
|
584
589
|
tooltipVariant: tooltipVariant
|
|
585
590
|
});
|
|
586
|
-
}))), /*#__PURE__*/
|
|
591
|
+
}))), /*#__PURE__*/React.createElement("g", {
|
|
587
592
|
transform: `translate(${margins.left},${margins.top})`
|
|
588
|
-
}, ['bottom', 'both'].includes(xAxisPlacement) ? /*#__PURE__*/
|
|
593
|
+
}, ['bottom', 'both'].includes(xAxisPlacement) ? /*#__PURE__*/React.createElement(Axis, {
|
|
589
594
|
disableAnimations: disableAnimations,
|
|
590
595
|
position: "bottom",
|
|
591
596
|
length: chartWidth,
|
|
@@ -598,7 +603,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
598
603
|
tickSize: xAxisTickSize,
|
|
599
604
|
tickFormat: xAxisTickFormat,
|
|
600
605
|
variant: xAxisVariant
|
|
601
|
-
}) : null, ['top', 'both'].includes(xAxisPlacement) ? /*#__PURE__*/
|
|
606
|
+
}) : null, ['top', 'both'].includes(xAxisPlacement) ? /*#__PURE__*/React.createElement(Axis, {
|
|
602
607
|
disableAnimations: disableAnimations,
|
|
603
608
|
position: "top",
|
|
604
609
|
length: chartWidth,
|
|
@@ -611,7 +616,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
611
616
|
tickSize: xAxisTickSize,
|
|
612
617
|
tickFormat: xAxisTickFormat,
|
|
613
618
|
variant: xAxisVariant
|
|
614
|
-
}) : null, ['left', 'both'].includes(yAxisPlacement) ? /*#__PURE__*/
|
|
619
|
+
}) : null, ['left', 'both'].includes(yAxisPlacement) ? /*#__PURE__*/React.createElement(Axis, {
|
|
615
620
|
disableAnimations: disableAnimations,
|
|
616
621
|
position: "left",
|
|
617
622
|
length: chartHeight,
|
|
@@ -624,7 +629,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
624
629
|
tickSize: yAxisTickSize,
|
|
625
630
|
tickFormat: yAxisTickFormat,
|
|
626
631
|
variant: yAxisVariant
|
|
627
|
-
}) : null, ['right', 'both'].includes(yAxisPlacement) ? /*#__PURE__*/
|
|
632
|
+
}) : null, ['right', 'both'].includes(yAxisPlacement) ? /*#__PURE__*/React.createElement(Axis, {
|
|
628
633
|
disableAnimations: disableAnimations,
|
|
629
634
|
position: "right",
|
|
630
635
|
length: chartHeight,
|
|
@@ -637,7 +642,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
637
642
|
tickSize: yAxisTickSize,
|
|
638
643
|
tickFormat: yAxisTickFormat,
|
|
639
644
|
variant: yAxisVariant
|
|
640
|
-
}) : null))), hasCategory && legendVariant !== ScatterPlotLegendVariant.none ? /*#__PURE__*/
|
|
645
|
+
}) : null))), hasCategory && legendVariant !== ScatterPlotLegendVariant.none ? /*#__PURE__*/React.createElement(Legend, _extends({
|
|
641
646
|
data: (extraLegendItems ? mergeLegends(extraLegendItems, countsByCategory).sort(getSortingMethod(sortingMethod)) : countsByCategory).map(d => _objectSpread2(_objectSpread2({}, d), {}, {
|
|
642
647
|
color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(d.key)
|
|
643
648
|
})),
|
|
@@ -647,7 +652,7 @@ const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
647
652
|
}, forwardedLegendProps)) : null);
|
|
648
653
|
});
|
|
649
654
|
|
|
650
|
-
const _excluded = ["className", "colorTheme", "data", "dotRole", "emptyComponent", "hideControlKeyPanel", "id", "isDotSelected", "labelDecorator", "legendDecorator", "legendVariant", "localeText", "onBrush", "onBrushEnd", "onDotClick", "size", "sortingMethod", "tooltipDecorator", "tooltipVariant", "variant", "xAxisPlacement", "xAxisVariant", "yAxisPlacement", "yAxisVariant"];
|
|
655
|
+
const _excluded = ["className", "colorTheme", "data", "dotRole", "emptyComponent", "hideControlKeyPanel", "id", "isDotSelected", "labelDecorator", "legendDecorator", "legendVariant", "localeText", "onBrush", "onBrushEnd", "onDotClick", "size", "sortingMethod", "svgRef", "tooltipDecorator", "tooltipVariant", "variant", "xAxisPlacement", "xAxisVariant", "yAxisPlacement", "yAxisVariant"];
|
|
651
656
|
const COMPONENT_NAME = 'ScatterPlot';
|
|
652
657
|
const CLASSNAME = 'redsift-scatterplot';
|
|
653
658
|
|
|
@@ -720,6 +725,7 @@ const ScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
720
725
|
onDotClick,
|
|
721
726
|
size = ChartSize.medium,
|
|
722
727
|
sortingMethod = 'desc-value',
|
|
728
|
+
svgRef,
|
|
723
729
|
tooltipDecorator,
|
|
724
730
|
tooltipVariant = TooltipVariant.none,
|
|
725
731
|
variant = ScatterPlotVariant.default,
|
|
@@ -733,20 +739,21 @@ const ScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
733
739
|
const id = propsId !== null && propsId !== void 0 ? propsId : _id;
|
|
734
740
|
const legendVariant = propsLegendVariant !== null && propsLegendVariant !== void 0 ? propsLegendVariant : ScatterPlotLegendVariant.externalLabel;
|
|
735
741
|
if (propsData === undefined || propsData === null) {
|
|
736
|
-
return /*#__PURE__*/
|
|
742
|
+
return /*#__PURE__*/React.createElement(LoadingScatterPlot, _extends({
|
|
737
743
|
id: id
|
|
738
744
|
}, forwardedProps, {
|
|
739
745
|
ref: ref
|
|
740
746
|
}));
|
|
741
747
|
}
|
|
742
748
|
if (propsData.length === 0) {
|
|
743
|
-
return /*#__PURE__*/
|
|
749
|
+
return /*#__PURE__*/React.createElement(EmptyScatterPlot, _extends({
|
|
744
750
|
data: propsData,
|
|
745
751
|
emptyComponent: emptyComponent,
|
|
746
752
|
hideControlKeyPanel: hideControlKeyPanel,
|
|
747
753
|
localeText: localeText,
|
|
748
754
|
size: size,
|
|
749
755
|
sortingMethod: sortingMethod,
|
|
756
|
+
svgRef: svgRef,
|
|
750
757
|
xAxisPlacement: xAxisPlacement,
|
|
751
758
|
xAxisVariant: xAxisVariant,
|
|
752
759
|
yAxisPlacement: yAxisPlacement,
|
|
@@ -755,7 +762,7 @@ const ScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
755
762
|
ref: ref
|
|
756
763
|
}));
|
|
757
764
|
}
|
|
758
|
-
return /*#__PURE__*/
|
|
765
|
+
return /*#__PURE__*/React.createElement(RenderedScatterPlot, _extends({
|
|
759
766
|
className: classNames(ScatterPlot.className, className),
|
|
760
767
|
colorTheme: colorTheme,
|
|
761
768
|
data: propsData,
|
|
@@ -771,6 +778,7 @@ const ScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
771
778
|
onDotClick: onDotClick,
|
|
772
779
|
size: size,
|
|
773
780
|
sortingMethod: sortingMethod,
|
|
781
|
+
svgRef: svgRef,
|
|
774
782
|
tooltipDecorator: tooltipDecorator,
|
|
775
783
|
tooltipVariant: tooltipVariant,
|
|
776
784
|
variant: variant,
|