@fluentui/react-charts 9.3.16 → 9.3.18
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/CHANGELOG.md +27 -2
- package/dist/index.d.ts +11 -11
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +3 -1
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -1
- package/lib/components/AreaChart/AreaChart.js +3 -5
- package/lib/components/AreaChart/AreaChart.js.map +1 -1
- package/lib/components/AreaChart/AreaChart.types.js.map +1 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
- package/lib/components/ChartTable/ChartTable.js.map +1 -1
- package/lib/components/ChartTable/ChartTable.types.js +4 -1
- package/lib/components/ChartTable/ChartTable.types.js.map +1 -1
- package/lib/components/ChartTable/useChartTableStyles.styles.raw.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.js +6 -6
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js +2 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/CommonComponents/ChartPopover.js.map +1 -1
- package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +0 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlyColorAdapter.js +0 -1
- package/lib/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +0 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -1
- package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.js +1 -2
- package/lib/components/DonutChart/DonutChart.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.types.js +4 -1
- package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib/components/DonutChart/Pie/Pie.js +2 -5
- package/lib/components/DonutChart/Pie/Pie.js.map +1 -1
- package/lib/components/DonutChart/Pie/Pie.types.js.map +1 -1
- package/lib/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -1
- package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -1
- package/lib/components/FunnelChart/FunnelChart.js.map +1 -1
- package/lib/components/FunnelChart/FunnelChart.types.js +4 -1
- package/lib/components/FunnelChart/FunnelChart.types.js.map +1 -1
- package/lib/components/FunnelChart/funnelGeometry.js +0 -1
- package/lib/components/FunnelChart/funnelGeometry.js.map +1 -1
- package/lib/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -1
- package/lib/components/GanttChart/GanttChart.js.map +1 -1
- package/lib/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.js +1 -4
- package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +2 -3
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js +0 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +1 -2
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
- package/lib/components/Legends/Legends.js +1 -1
- package/lib/components/Legends/Legends.js.map +1 -1
- package/lib/components/Legends/Legends.types.js +3 -1
- package/lib/components/Legends/Legends.types.js.map +1 -1
- package/lib/components/Legends/shape.js.map +1 -1
- package/lib/components/Legends/useLegendsStyles.styles.raw.js.map +1 -1
- package/lib/components/LineChart/LineChart.js +16 -16
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/LineChart.types.js.map +1 -1
- package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
- package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
- package/lib/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
- package/lib/components/PolarChart/PolarChart.js.map +1 -1
- package/lib/components/PolarChart/PolarChart.types.js +4 -1
- package/lib/components/PolarChart/PolarChart.types.js.map +1 -1
- package/lib/components/PolarChart/PolarChart.utils.js.map +1 -1
- package/lib/components/PolarChart/usePolarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js +4 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -1
- package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.js +2 -2
- package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.js +3 -4
- package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.types.js +1 -1
- package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -1
- package/lib/components/Sparkline/Sparkline.js +3 -4
- package/lib/components/Sparkline/Sparkline.js.map +1 -1
- package/lib/components/Sparkline/Sparkline.types.js.map +1 -1
- package/lib/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -1
- package/lib/components/VegaDeclarativeChart/VegaDeclarativeChartHooks.js.map +1 -1
- package/lib/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js +1 -1
- package/lib/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.js +5 -8
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +5 -5
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js +4 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
- package/lib/types/ChartAnnotation.js +1 -1
- package/lib/types/ChartAnnotation.js.map +1 -1
- package/lib/types/DataPoint.js.map +1 -1
- package/lib/types/EventAnnotation.js +1 -1
- package/lib/types/EventAnnotation.js.map +1 -1
- package/lib/utilities/ChartTitle.js.map +1 -1
- package/lib/utilities/FocusableTooltipText.js.map +1 -1
- package/lib/utilities/async-utils.js +20 -20
- package/lib/utilities/async-utils.js.map +1 -1
- package/lib/utilities/hooks.js.map +1 -1
- package/lib/utilities/image-export-utils.js.map +1 -1
- package/lib/utilities/scatterpolar-utils.js.map +1 -1
- package/lib/utilities/test-data.js.map +1 -1
- package/lib/utilities/utilities.js +4 -7
- package/lib/utilities/utilities.js.map +1 -1
- package/lib/utilities/vbc-utils.js.map +1 -1
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +3 -3
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.js +3 -5
- package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.types.js.map +1 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/ChartTable/ChartTable.js.map +1 -1
- package/lib-commonjs/components/ChartTable/ChartTable.types.js +4 -3
- package/lib-commonjs/components/ChartTable/ChartTable.types.js.map +1 -1
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +6 -6
- package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js +1 -2
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +0 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js +0 -2
- package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +0 -2
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.js +1 -2
- package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.types.js +4 -3
- package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Pie/Pie.js +2 -5
- package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Pie/Pie.types.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Pie/usePieStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/FunnelChart.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/FunnelChart.types.js +4 -3
- package/lib-commonjs/components/FunnelChart/FunnelChart.types.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/funnelGeometry.js +0 -2
- package/lib-commonjs/components/FunnelChart/funnelGeometry.js.map +1 -1
- package/lib-commonjs/components/FunnelChart/useFunnelChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/GanttChart/GanttChart.js.map +1 -1
- package/lib-commonjs/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.js +1 -4
- package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +2 -3
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js +3 -3
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +1 -2
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.js +1 -1
- package/lib-commonjs/components/Legends/Legends.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.types.js +3 -3
- package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
- package/lib-commonjs/components/Legends/shape.js.map +1 -1
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js +16 -16
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/PolarChart/PolarChart.js.map +1 -1
- package/lib-commonjs/components/PolarChart/PolarChart.types.js +4 -3
- package/lib-commonjs/components/PolarChart/PolarChart.types.js.map +1 -1
- package/lib-commonjs/components/PolarChart/PolarChart.utils.js.map +1 -1
- package/lib-commonjs/components/PolarChart/usePolarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js +4 -3
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.js +2 -2
- package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js +3 -4
- package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.types.js +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/Sparkline/Sparkline.js +3 -4
- package/lib-commonjs/components/Sparkline/Sparkline.js.map +1 -1
- package/lib-commonjs/components/Sparkline/Sparkline.types.js.map +1 -1
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/VegaDeclarativeChart/VegaDeclarativeChartHooks.js.map +1 -1
- package/lib-commonjs/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js +1 -1
- package/lib-commonjs/components/VegaDeclarativeChart/VegaLiteSchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +5 -8
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +5 -5
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js +4 -3
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/types/ChartAnnotation.js +0 -2
- package/lib-commonjs/types/ChartAnnotation.js.map +1 -1
- package/lib-commonjs/types/DataPoint.js.map +1 -1
- package/lib-commonjs/types/EventAnnotation.js +0 -2
- package/lib-commonjs/types/EventAnnotation.js.map +1 -1
- package/lib-commonjs/utilities/ChartTitle.js.map +1 -1
- package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -1
- package/lib-commonjs/utilities/async-utils.js +20 -20
- package/lib-commonjs/utilities/async-utils.js.map +1 -1
- package/lib-commonjs/utilities/hooks.js.map +1 -1
- package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
- package/lib-commonjs/utilities/scatterpolar-utils.js.map +1 -1
- package/lib-commonjs/utilities/test-data.js.map +1 -1
- package/lib-commonjs/utilities/utilities.js +2 -2
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/lib-commonjs/utilities/vbc-utils.js.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CommonComponents/ChartPopover.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Popover, PopoverSurface } from '@fluentui/react-popover';\nimport { mergeClasses } from '@griffel/react';\nimport type { PositioningVirtualElement } from '@fluentui/react-positioning';\nimport { tokens } from '@fluentui/react-theme';\nimport { useId } from '@fluentui/react-utilities';\nimport { getAccessibleDataObject, Points, pointTypes } from '../../utilities/index';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { Shape } from '../Legends/shape';\nimport { usePopoverStyles_unstable } from './useChartPopoverStyles.styles';\nimport { YValueHover } from './CartesianChart.types';\nimport { LegendShape } from '../Legends/Legends.types';\nimport { ChartPopoverProps } from './ChartPopover.types';\n\n/* This component is a wrapper over Popover component which implements the logic for rendering popovers for any chart\ncombining the logic for Callout and ChartHoverCard in v8 charts. */\nexport const ChartPopover: React.FunctionComponent<ChartPopoverProps> = React.forwardRef<\n HTMLDivElement,\n ChartPopoverProps\n>((props, forwardedRef) => {\n const virtualElement: PositioningVirtualElement = {\n getBoundingClientRect: () => ({\n top: props.clickPosition!.y,\n left: props.clickPosition!.x,\n right: props.clickPosition!.x,\n bottom: props.clickPosition!.y,\n x: props.clickPosition!.x,\n y: props.clickPosition!.y,\n width: 0,\n height: 0,\n }),\n };\n const target =\n typeof props.positioning === 'object' && 'target' in props.positioning\n ? props.positioning.target !== null\n ? props.positioning.target\n : virtualElement\n : virtualElement;\n props = { ...props, ...props.customCallout?.customCalloutProps };\n const classes = usePopoverStyles_unstable(props);\n const legend = props.xCalloutValue ? props.xCalloutValue : props.legend;\n const YValue = props.yCalloutValue ? props.yCalloutValue : props.YValue;\n return (\n <div id={useId('callout')} ref={forwardedRef} className={classes.calloutContainer}>\n <Popover\n positioning={{ target, autoSize: 'always', offset: 20, coverTarget: false }}\n open={props.isPopoverOpen}\n inline\n >\n <PopoverSurface>\n {/** Given custom callout, then it will render */}\n {props.customCallout && props.customCallout.customizedCallout && props.customCallout.customizedCallout}\n {/** single x point its corresponding y points of all the bars/lines in chart will render in callout */}\n {(!props.customCallout || !props.customCallout.customizedCallout) &&\n props.isCalloutForStack &&\n _multiValueCallout()}\n {/** single x point its corresponding y point of single line/bar in the chart will render in callout */}\n {(!props.customCallout || !props.customCallout.customizedCallout) && !props.isCalloutForStack && (\n <div className={classes.calloutContentRoot}>\n <div className={classes.calloutDateTimeContainer}>\n <div className={classes.calloutContentX}>{props.XValue} </div>\n {/*TO DO if we add time for callout then will use this */}\n {/* <div className={classNames.calloutContentX}>07:00am</div> */}\n </div>\n <div\n className={classes.calloutInfoContainer}\n style={{\n ...(props.ratio && {\n display: 'flex',\n alignItems: 'flex-end',\n }),\n borderInlineStart: `4px solid ${props.color}`,\n marginTop: '11px',\n }}\n >\n <div className={classes.calloutBlockContainer}>\n <div className={classes.calloutlegendText}>\n {formatToLocaleString(legend, props.culture) as React.ReactNode}\n </div>\n <div\n className={classes.calloutContentY}\n style={{\n color: props.color ? props.color : tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeHero700,\n }}\n >\n {formatToLocaleString(YValue, props.culture) as React.ReactNode}\n </div>\n </div>\n {!!props.ratio && (\n <div className={classes.ratio}>\n <>\n <span className={classes.numerator}>\n {formatToLocaleString(props.ratio[0], props.culture) as React.ReactNode}\n </span>\n /\n <span className={classes.denominator}>\n {formatToLocaleString(props.ratio[1], props.culture) as React.ReactNode}\n </span>\n </>\n </div>\n )}\n </div>\n {!!props.descriptionMessage && (\n <div className={classes.descriptionMessage}>{props.descriptionMessage}</div>\n )}\n </div>\n )}\n </PopoverSurface>\n </Popover>\n </div>\n );\n\n function _multiValueCallout() {\n const yValueHoverSubCountsExists: boolean = _yValueHoverSubCountsExists(props.YValueHover) ?? false;\n return (\n <div className={classes.calloutContentRoot}>\n <div\n className={classes.calloutDateTimeContainer}\n style={yValueHoverSubCountsExists ? { marginBottom: '11px' } : {}}\n >\n <div\n className={classes.calloutContentX}\n {...getAccessibleDataObject(props!.xAxisCalloutAccessibilityData, 'text', false)}\n >\n {formatToLocaleString(props!.hoverXValue, props.culture) as React.ReactNode}\n </div>\n </div>\n <div style={yValueHoverSubCountsExists ? { display: 'flex' } : {}}>\n {props!.YValueHover &&\n props!.YValueHover.map((yValue: YValueHover, index: number, yValues: YValueHover[]) => {\n const isLast: boolean = index + 1 === yValues.length;\n const shouldDrawBorderBottom = isLast ? false : yValue.shouldDrawBorderBottom ?? false;\n return (\n <div\n {...getAccessibleDataObject(yValue.callOutAccessibilityData, 'text', false)}\n key={`callout-content-${index}`}\n style={\n yValueHoverSubCountsExists\n ? {\n display: 'inline-block',\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n paddingBottom: '10px',\n }),\n }\n : {\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n paddingBottom: '10px',\n }),\n }\n }\n >\n {_getCalloutContent(yValue, index, yValueHoverSubCountsExists, isLast)}\n </div>\n );\n })}\n {!!props.descriptionMessage && <div className={classes.descriptionMessage}>{props.descriptionMessage}</div>}\n </div>\n </div>\n );\n }\n\n function _yValueHoverSubCountsExists(yValueHover?: YValueHover[]): boolean | undefined {\n return (\n yValueHover &&\n yValueHover.some(\n (yValue: {\n legend?: string;\n y?: number;\n color?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n }) => yValue.yAxisCalloutData && typeof yValue.yAxisCalloutData !== 'string',\n )\n );\n }\n\n function _getCalloutContent(\n xValue: YValueHover,\n index: number,\n yValueHoverSubCountsExists: boolean,\n isLast: boolean,\n ): React.ReactNode {\n const marginStyle: React.CSSProperties = isLast ? {} : { marginRight: '16px' };\n const toDrawShape = xValue.index !== undefined && xValue.index !== -1;\n const { culture } = props;\n const yValue = formatToLocaleString(xValue.y, culture) as React.ReactNode;\n if (!xValue.yAxisCalloutData || typeof xValue.yAxisCalloutData === 'string') {\n return (\n <div style={yValueHoverSubCountsExists ? marginStyle : {}}>\n {yValueHoverSubCountsExists && (\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n )}\n <div\n id={`${index}_${xValue.y}`}\n className={classes.calloutBlockContainer}\n style={{\n ...(!toDrawShape\n ? {\n borderInlineStart: `4px solid ${xValue.color}`,\n }\n : {}),\n }}\n >\n {toDrawShape && (\n <Shape\n svgProps={{\n className: classes.shapeStyles,\n }}\n pathProps={{ fill: xValue.color }}\n shape={Points[xValue.index! % Object.keys(pointTypes).length] as LegendShape}\n />\n )}\n <div\n className={mergeClasses(\n classes.calloutBlockContainer,\n toDrawShape\n ? classes.calloutBlockContainertoDrawShapetrue\n : classes.calloutBlockContainertoDrawShapefalse,\n )}\n style={{ marginTop: xValue ? '13px' : 'unset' }}\n >\n <div className={classes.calloutlegendText}> {xValue.legend}</div>\n <div className={classes.calloutContentY} style={{ direction: 'ltr', unicodeBidi: 'isolate' }}>\n {\n formatToLocaleString(\n xValue.yAxisCalloutData ? xValue.yAxisCalloutData : xValue.y ?? xValue.data,\n culture,\n ) as React.ReactNode\n }\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n const subcounts: { [id: string]: number } = xValue.yAxisCalloutData as { [id: string]: number };\n return (\n <div style={marginStyle}>\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n {Object.keys(subcounts).map((subcountName: string) => {\n return (\n <div key={subcountName} className={classes.calloutBlockContainer}>\n <div className={classes.calloutlegendText}>\n {' '}\n {formatToLocaleString(subcountName, culture) as React.ReactNode}\n </div>\n <div\n className={classes.calloutContentY}\n style={{ color: props.color ? props.color : tokens.colorNeutralForeground1 }}\n >\n {formatToLocaleString(subcounts[subcountName], culture) as React.ReactNode}\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n }\n});\nChartPopover.displayName = 'ChartPopover';\n"],"names":["React","Popover","PopoverSurface","mergeClasses","tokens","useId","getAccessibleDataObject","Points","pointTypes","formatToLocaleString","Shape","usePopoverStyles_unstable","ChartPopover","forwardRef","props","forwardedRef","virtualElement","getBoundingClientRect","top","clickPosition","y","left","x","right","bottom","width","height","target","positioning","customCallout","customCalloutProps","classes","legend","xCalloutValue","YValue","yCalloutValue","div","id","ref","className","calloutContainer","autoSize","offset","coverTarget","open","isPopoverOpen","inline","customizedCallout","isCalloutForStack","_multiValueCallout","calloutContentRoot","calloutDateTimeContainer","calloutContentX","XValue","calloutInfoContainer","style","ratio","display","alignItems","borderInlineStart","color","marginTop","calloutBlockContainer","calloutlegendText","culture","calloutContentY","colorNeutralForeground1","fontSize","fontSizeHero700","span","numerator","denominator","descriptionMessage","_yValueHoverSubCountsExists","yValueHoverSubCountsExists","YValueHover","marginBottom","xAxisCalloutAccessibilityData","hoverXValue","map","yValue","index","yValues","isLast","length","shouldDrawBorderBottom","callOutAccessibilityData","key","borderBottom","colorNeutralStroke2","paddingBottom","_getCalloutContent","yValueHover","some","yAxisCalloutData","xValue","marginStyle","marginRight","toDrawShape","undefined","svgProps","shapeStyles","pathProps","fill","shape","Object","keys","calloutBlockContainertoDrawShapetrue","calloutBlockContainertoDrawShapefalse","direction","unicodeBidi","data","subcounts","subcountName","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/components/CommonComponents/ChartPopover.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Popover, PopoverSurface } from '@fluentui/react-popover';\nimport { mergeClasses } from '@griffel/react';\nimport type { PositioningVirtualElement } from '@fluentui/react-positioning';\nimport { tokens } from '@fluentui/react-theme';\nimport { useId } from '@fluentui/react-utilities';\nimport { getAccessibleDataObject, Points, pointTypes } from '../../utilities/index';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { Shape } from '../Legends/shape';\nimport { usePopoverStyles_unstable } from './useChartPopoverStyles.styles';\nimport type { YValueHover } from './CartesianChart.types';\nimport type { LegendShape } from '../Legends/Legends.types';\nimport type { ChartPopoverProps } from './ChartPopover.types';\n\n/* This component is a wrapper over Popover component which implements the logic for rendering popovers for any chart\ncombining the logic for Callout and ChartHoverCard in v8 charts. */\nexport const ChartPopover: React.FunctionComponent<ChartPopoverProps> = React.forwardRef<\n HTMLDivElement,\n ChartPopoverProps\n>((props, forwardedRef) => {\n const virtualElement: PositioningVirtualElement = {\n getBoundingClientRect: () => ({\n top: props.clickPosition!.y,\n left: props.clickPosition!.x,\n right: props.clickPosition!.x,\n bottom: props.clickPosition!.y,\n x: props.clickPosition!.x,\n y: props.clickPosition!.y,\n width: 0,\n height: 0,\n }),\n };\n const target =\n typeof props.positioning === 'object' && 'target' in props.positioning\n ? props.positioning.target !== null\n ? props.positioning.target\n : virtualElement\n : virtualElement;\n props = { ...props, ...props.customCallout?.customCalloutProps };\n const classes = usePopoverStyles_unstable(props);\n const legend = props.xCalloutValue ? props.xCalloutValue : props.legend;\n const YValue = props.yCalloutValue ? props.yCalloutValue : props.YValue;\n return (\n <div id={useId('callout')} ref={forwardedRef} className={classes.calloutContainer}>\n <Popover\n positioning={{ target, autoSize: 'always', offset: 20, coverTarget: false }}\n open={props.isPopoverOpen}\n inline\n >\n <PopoverSurface>\n {/** Given custom callout, then it will render */}\n {props.customCallout && props.customCallout.customizedCallout && props.customCallout.customizedCallout}\n {/** single x point its corresponding y points of all the bars/lines in chart will render in callout */}\n {(!props.customCallout || !props.customCallout.customizedCallout) &&\n props.isCalloutForStack &&\n _multiValueCallout()}\n {/** single x point its corresponding y point of single line/bar in the chart will render in callout */}\n {(!props.customCallout || !props.customCallout.customizedCallout) && !props.isCalloutForStack && (\n <div className={classes.calloutContentRoot}>\n <div className={classes.calloutDateTimeContainer}>\n <div className={classes.calloutContentX}>{props.XValue} </div>\n {/*TO DO if we add time for callout then will use this */}\n {/* <div className={classNames.calloutContentX}>07:00am</div> */}\n </div>\n <div\n className={classes.calloutInfoContainer}\n style={{\n ...(props.ratio && {\n display: 'flex',\n alignItems: 'flex-end',\n }),\n borderInlineStart: `4px solid ${props.color}`,\n marginTop: '11px',\n }}\n >\n <div className={classes.calloutBlockContainer}>\n <div className={classes.calloutlegendText}>\n {formatToLocaleString(legend, props.culture) as React.ReactNode}\n </div>\n <div\n className={classes.calloutContentY}\n style={{\n color: props.color ? props.color : tokens.colorNeutralForeground1,\n fontSize: tokens.fontSizeHero700,\n }}\n >\n {formatToLocaleString(YValue, props.culture) as React.ReactNode}\n </div>\n </div>\n {!!props.ratio && (\n <div className={classes.ratio}>\n <>\n <span className={classes.numerator}>\n {formatToLocaleString(props.ratio[0], props.culture) as React.ReactNode}\n </span>\n /\n <span className={classes.denominator}>\n {formatToLocaleString(props.ratio[1], props.culture) as React.ReactNode}\n </span>\n </>\n </div>\n )}\n </div>\n {!!props.descriptionMessage && (\n <div className={classes.descriptionMessage}>{props.descriptionMessage}</div>\n )}\n </div>\n )}\n </PopoverSurface>\n </Popover>\n </div>\n );\n\n function _multiValueCallout() {\n const yValueHoverSubCountsExists: boolean = _yValueHoverSubCountsExists(props.YValueHover) ?? false;\n return (\n <div className={classes.calloutContentRoot}>\n <div\n className={classes.calloutDateTimeContainer}\n style={yValueHoverSubCountsExists ? { marginBottom: '11px' } : {}}\n >\n <div\n className={classes.calloutContentX}\n {...getAccessibleDataObject(props!.xAxisCalloutAccessibilityData, 'text', false)}\n >\n {formatToLocaleString(props!.hoverXValue, props.culture) as React.ReactNode}\n </div>\n </div>\n <div style={yValueHoverSubCountsExists ? { display: 'flex' } : {}}>\n {props!.YValueHover &&\n props!.YValueHover.map((yValue: YValueHover, index: number, yValues: YValueHover[]) => {\n const isLast: boolean = index + 1 === yValues.length;\n const shouldDrawBorderBottom = isLast ? false : yValue.shouldDrawBorderBottom ?? false;\n return (\n <div\n {...getAccessibleDataObject(yValue.callOutAccessibilityData, 'text', false)}\n key={`callout-content-${index}`}\n style={\n yValueHoverSubCountsExists\n ? {\n display: 'inline-block',\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n paddingBottom: '10px',\n }),\n }\n : {\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,\n paddingBottom: '10px',\n }),\n }\n }\n >\n {_getCalloutContent(yValue, index, yValueHoverSubCountsExists, isLast)}\n </div>\n );\n })}\n {!!props.descriptionMessage && <div className={classes.descriptionMessage}>{props.descriptionMessage}</div>}\n </div>\n </div>\n );\n }\n\n function _yValueHoverSubCountsExists(yValueHover?: YValueHover[]): boolean | undefined {\n return (\n yValueHover &&\n yValueHover.some(\n (yValue: {\n legend?: string;\n y?: number;\n color?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n }) => yValue.yAxisCalloutData && typeof yValue.yAxisCalloutData !== 'string',\n )\n );\n }\n\n function _getCalloutContent(\n xValue: YValueHover,\n index: number,\n yValueHoverSubCountsExists: boolean,\n isLast: boolean,\n ): React.ReactNode {\n const marginStyle: React.CSSProperties = isLast ? {} : { marginRight: '16px' };\n const toDrawShape = xValue.index !== undefined && xValue.index !== -1;\n const { culture } = props;\n const yValue = formatToLocaleString(xValue.y, culture) as React.ReactNode;\n if (!xValue.yAxisCalloutData || typeof xValue.yAxisCalloutData === 'string') {\n return (\n <div style={yValueHoverSubCountsExists ? marginStyle : {}}>\n {yValueHoverSubCountsExists && (\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n )}\n <div\n id={`${index}_${xValue.y}`}\n className={classes.calloutBlockContainer}\n style={{\n ...(!toDrawShape\n ? {\n borderInlineStart: `4px solid ${xValue.color}`,\n }\n : {}),\n }}\n >\n {toDrawShape && (\n <Shape\n svgProps={{\n className: classes.shapeStyles,\n }}\n pathProps={{ fill: xValue.color }}\n shape={Points[xValue.index! % Object.keys(pointTypes).length] as LegendShape}\n />\n )}\n <div\n className={mergeClasses(\n classes.calloutBlockContainer,\n toDrawShape\n ? classes.calloutBlockContainertoDrawShapetrue\n : classes.calloutBlockContainertoDrawShapefalse,\n )}\n style={{ marginTop: xValue ? '13px' : 'unset' }}\n >\n <div className={classes.calloutlegendText}> {xValue.legend}</div>\n <div className={classes.calloutContentY} style={{ direction: 'ltr', unicodeBidi: 'isolate' }}>\n {\n formatToLocaleString(\n xValue.yAxisCalloutData ? xValue.yAxisCalloutData : xValue.y ?? xValue.data,\n culture,\n ) as React.ReactNode\n }\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n const subcounts: { [id: string]: number } = xValue.yAxisCalloutData as { [id: string]: number };\n return (\n <div style={marginStyle}>\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n {Object.keys(subcounts).map((subcountName: string) => {\n return (\n <div key={subcountName} className={classes.calloutBlockContainer}>\n <div className={classes.calloutlegendText}>\n {' '}\n {formatToLocaleString(subcountName, culture) as React.ReactNode}\n </div>\n <div\n className={classes.calloutContentY}\n style={{ color: props.color ? props.color : tokens.colorNeutralForeground1 }}\n >\n {formatToLocaleString(subcounts[subcountName], culture) as React.ReactNode}\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n }\n});\nChartPopover.displayName = 'ChartPopover';\n"],"names":["React","Popover","PopoverSurface","mergeClasses","tokens","useId","getAccessibleDataObject","Points","pointTypes","formatToLocaleString","Shape","usePopoverStyles_unstable","ChartPopover","forwardRef","props","forwardedRef","virtualElement","getBoundingClientRect","top","clickPosition","y","left","x","right","bottom","width","height","target","positioning","customCallout","customCalloutProps","classes","legend","xCalloutValue","YValue","yCalloutValue","div","id","ref","className","calloutContainer","autoSize","offset","coverTarget","open","isPopoverOpen","inline","customizedCallout","isCalloutForStack","_multiValueCallout","calloutContentRoot","calloutDateTimeContainer","calloutContentX","XValue","calloutInfoContainer","style","ratio","display","alignItems","borderInlineStart","color","marginTop","calloutBlockContainer","calloutlegendText","culture","calloutContentY","colorNeutralForeground1","fontSize","fontSizeHero700","span","numerator","denominator","descriptionMessage","_yValueHoverSubCountsExists","yValueHoverSubCountsExists","YValueHover","marginBottom","xAxisCalloutAccessibilityData","hoverXValue","map","yValue","index","yValues","isLast","length","shouldDrawBorderBottom","callOutAccessibilityData","key","borderBottom","colorNeutralStroke2","paddingBottom","_getCalloutContent","yValueHover","some","yAxisCalloutData","xValue","marginStyle","marginRight","toDrawShape","undefined","svgProps","shapeStyles","pathProps","fill","shape","Object","keys","calloutBlockContainertoDrawShapetrue","calloutBlockContainertoDrawShapefalse","direction","unicodeBidi","data","subcounts","subcountName","displayName"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CommonComponents/ChartPopover.types.ts"],"sourcesContent":["import type { JSXElement } from '@fluentui/react-utilities';\nimport { YValueHover } from '../../index';\nimport { PositioningShorthand } from '@fluentui/react-positioning';\n\nexport interface ChartPopoverProps {\n clickPosition?: { x: number; y: number };\n isPopoverOpen?: boolean;\n xCalloutValue?: string;\n legend?: string | number | Date;\n yCalloutValue?: string;\n YValue?: string | number | Date;\n XValue?: string;\n color?: string;\n culture?: string;\n customCallout?: {\n customizedCallout?: JSXElement;\n customCalloutProps?: ChartPopoverProps;\n };\n isCalloutForStack?: boolean;\n xAxisCalloutAccessibilityData?: { ariaLabel?: string; data?: string };\n hoverXValue?: string | number;\n YValueHover?: YValueHover[];\n descriptionMessage?: string;\n ratio?: [number, number];\n isCartesian?: boolean;\n styles?: Partial<PopoverComponentStyles>;\n positioning?: PositioningShorthand;\n}\n\nexport interface PopoverComponentStyles {\n calloutContentRoot: string;\n calloutDateTimeContainer: string;\n calloutContentX: string;\n calloutBlockContainer: string;\n calloutBlockContainertoDrawShapefalse: string;\n calloutBlockContainertoDrawShapetrue: string;\n shapeStyles: string;\n calloutlegendText: string;\n calloutContentY: string;\n descriptionMessage: string;\n ratio: string;\n numerator: string;\n denominator: string;\n calloutInfoContainer: string;\n calloutContainer: string;\n}\n"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"sources":["../src/components/CommonComponents/ChartPopover.types.ts"],"sourcesContent":["import type { JSXElement } from '@fluentui/react-utilities';\nimport type { YValueHover } from '../../index';\nimport type { PositioningShorthand } from '@fluentui/react-positioning';\n\nexport interface ChartPopoverProps {\n clickPosition?: { x: number; y: number };\n isPopoverOpen?: boolean;\n xCalloutValue?: string;\n legend?: string | number | Date;\n yCalloutValue?: string;\n YValue?: string | number | Date;\n XValue?: string;\n color?: string;\n culture?: string;\n customCallout?: {\n customizedCallout?: JSXElement;\n customCalloutProps?: ChartPopoverProps;\n };\n isCalloutForStack?: boolean;\n xAxisCalloutAccessibilityData?: { ariaLabel?: string; data?: string };\n hoverXValue?: string | number;\n YValueHover?: YValueHover[];\n descriptionMessage?: string;\n ratio?: [number, number];\n isCartesian?: boolean;\n styles?: Partial<PopoverComponentStyles>;\n positioning?: PositioningShorthand;\n}\n\nexport interface PopoverComponentStyles {\n calloutContentRoot: string;\n calloutDateTimeContainer: string;\n calloutContentX: string;\n calloutBlockContainer: string;\n calloutBlockContainertoDrawShapefalse: string;\n calloutBlockContainertoDrawShapetrue: string;\n shapeStyles: string;\n calloutlegendText: string;\n calloutContentY: string;\n descriptionMessage: string;\n ratio: string;\n numerator: string;\n denominator: string;\n calloutInfoContainer: string;\n calloutContainer: string;\n}\n"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CommonComponents/useCartesianChartStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { GriffelStyle
|
|
1
|
+
{"version":3,"sources":["../src/components/CommonComponents/useCartesianChartStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport type { GriffelStyle } from '@griffel/react';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport type { CartesianChartProps, CartesianChartStyles } from './CartesianChart.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { CARTESIAN_XAXIS_CLASSNAME, HighContrastSelector, useRtl } from '../../utilities/utilities';\nimport { getAxisTitleStyle, getTooltipStyle } from '../../utilities/index';\n\n/**\n * @internal\n */\nexport const cartesianchartClassNames: SlotClassNames<CartesianChartStyles> = {\n root: 'fui-cart__root',\n chartWrapper: 'fui-cart__chartWrapper',\n plotContainer: 'fui-cart__plotContainer',\n axisTitle: 'fui-cart__axisTitle',\n xAxis: CARTESIAN_XAXIS_CLASSNAME,\n yAxis: 'fui-cart__yAxis',\n opacityChangeOnHover: 'fui-cart__opacityChangeOnHover',\n legendContainer: 'fui-cart__legendContainer',\n svgTooltip: 'fui-cart_svgTooltip',\n shapeStyles: 'fui-cart__shapeStyles',\n descriptionMessage: 'fui-cart__descriptionMessage',\n hover: 'fui-cart__hover',\n tooltip: 'fui-cart__tooltip',\n axisAnnotation: 'fui-cart__axisAnnotation',\n chartTitle: 'fui-cart__chartTitle',\n chart: 'fui-cart__chart',\n annotationLayer: 'fui-cart__annotationLayer',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n root: {\n ...typographyStyles.body1,\n display: 'flex',\n width: '100%',\n height: '100%',\n flexDirection: 'column',\n overflow: 'hidden',\n textAlign: 'left',\n position: 'relative',\n },\n chartWrapper: {\n position: 'relative',\n },\n chartWrapperMinWidth: {\n overflow: 'auto',\n },\n plotContainer: {\n position: 'relative',\n width: '100%',\n height: '100%',\n },\n axisTitle: getAxisTitleStyle() as GriffelStyle,\n axisAnnotation: getAxisTitleStyle() as GriffelStyle,\n xAxis: {\n '& text': {\n fill: tokens.colorNeutralForeground1,\n ...typographyStyles.caption2Strong,\n forcedColorAdjust: 'auto',\n },\n '& line': {\n opacity: 0.2,\n stroke: tokens.colorNeutralForeground1,\n width: '1px',\n forcedColorAdjust: 'auto',\n },\n '& path': {\n display: 'none',\n },\n },\n yAxis: {\n '& text': {\n ...typographyStyles.caption2Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\n '& line': {\n opacity: 0.2,\n stroke: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto',\n },\n '& path': {\n display: 'none',\n },\n },\n rtl: {\n '& g': {\n textAnchor: 'end',\n },\n },\n ltr: {},\n opacityChangeOnHover: {\n opacity: '0.1', //supports custom opacity ??\n cursor: 'default', //supports custom cursor ??\n },\n legendContainer: {\n marginTop: tokens.spacingVerticalS,\n marginLeft: tokens.spacingHorizontalXL,\n },\n svgTooltip: {\n fill: tokens.colorNeutralBackground1,\n [HighContrastSelector]: {\n fill: 'Canvas',\n },\n },\n annotationLayer: {\n pointerEvents: 'none',\n },\n tooltip: getTooltipStyle() as GriffelStyle,\n});\n/**\n *\n * Apply styling to the Carousel slots based on the state\n */\nexport const useCartesianChartStyles = (props: CartesianChartProps): CartesianChartStyles => {\n const _useRtl = useRtl();\n const baseStyles = useStyles();\n return {\n root: mergeClasses(cartesianchartClassNames.root, baseStyles.root, props.styles?.root),\n chartWrapper: mergeClasses(\n cartesianchartClassNames.chartWrapper,\n baseStyles.chartWrapper,\n props.reflowProps?.mode === 'min-width' ? baseStyles.chartWrapperMinWidth : undefined,\n props.styles?.chartWrapper,\n ),\n plotContainer: mergeClasses(\n cartesianchartClassNames.plotContainer,\n baseStyles.plotContainer /*props.styles?.plotContainer*/,\n ),\n axisTitle: mergeClasses(cartesianchartClassNames.axisTitle, baseStyles.axisTitle /*props.styles?.axisTitle*/),\n xAxis: mergeClasses(cartesianchartClassNames.xAxis, baseStyles.xAxis /*props.styles?.xAxis*/),\n yAxis: mergeClasses(\n cartesianchartClassNames.yAxis,\n baseStyles.yAxis,\n _useRtl ? baseStyles.rtl : baseStyles.ltr /*props.styles?.yAxis*/,\n ),\n opacityChangeOnHover: mergeClasses(\n cartesianchartClassNames.opacityChangeOnHover,\n baseStyles.opacityChangeOnHover /*props.styles?.opacityChangeOnHover*/,\n ),\n legendContainer: mergeClasses(\n cartesianchartClassNames.legendContainer,\n baseStyles.legendContainer /*props.styles?.legendContainer*/,\n ),\n svgTooltip: mergeClasses(cartesianchartClassNames.svgTooltip, baseStyles.svgTooltip, props.styles?.svgTooltip),\n annotationLayer: mergeClasses(\n cartesianchartClassNames.annotationLayer,\n baseStyles.annotationLayer /*props.styles?.annotationLayer*/,\n ),\n tooltip: mergeClasses(cartesianchartClassNames.tooltip, baseStyles.tooltip /*props.styles?.tooltip*/),\n axisAnnotation: mergeClasses(\n cartesianchartClassNames.axisAnnotation,\n baseStyles.axisAnnotation,\n /*props.styles?.axisAnnotation,*/\n ),\n chart: mergeClasses(cartesianchartClassNames.chart, props.styles?.chart),\n };\n};\n"],"names":["makeStyles","mergeClasses","tokens","typographyStyles","CARTESIAN_XAXIS_CLASSNAME","HighContrastSelector","useRtl","getAxisTitleStyle","getTooltipStyle","cartesianchartClassNames","root","chartWrapper","plotContainer","axisTitle","xAxis","yAxis","opacityChangeOnHover","legendContainer","svgTooltip","shapeStyles","descriptionMessage","hover","tooltip","axisAnnotation","chartTitle","chart","annotationLayer","useStyles","body1","display","width","height","flexDirection","overflow","textAlign","position","chartWrapperMinWidth","fill","colorNeutralForeground1","caption2Strong","forcedColorAdjust","opacity","stroke","rtl","textAnchor","ltr","cursor","marginTop","spacingVerticalS","marginLeft","spacingHorizontalXL","colorNeutralBackground1","pointerEvents","useCartesianChartStyles","props","_useRtl","baseStyles","styles","reflowProps","mode","undefined"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CommonComponents/useChartPopoverStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { ChartPopoverProps, PopoverComponentStyles } from './ChartPopover.types';\n\n/**\n * @internal\n */\nexport const popoverClassNames: SlotClassNames<PopoverComponentStyles> = {\n calloutContentRoot: 'fui-cart__calloutContentRoot',\n calloutDateTimeContainer: 'fui-cart__calloutDateTimeContainer',\n calloutContentX: 'fui-cart__calloutContentX',\n calloutBlockContainer: 'fui-cart__calloutBlockContainer',\n calloutBlockContainertoDrawShapefalse: 'fui-cart__calloutBlockContainertoDrawShapefalse',\n calloutBlockContainertoDrawShapetrue: 'fui-cart__calloutBlockContainertoDrawShapetrue',\n shapeStyles: 'fui-cart__shapeStyles',\n calloutlegendText: 'fui-cart__calloutlegendText',\n calloutContentY: 'fui-cart__calloutContentY',\n descriptionMessage: 'fui-cart__descriptionMessage',\n ratio: 'fui-cart__ratio',\n numerator: 'fui-cart__numerator',\n denominator: 'fui-cart__denominator',\n calloutInfoContainer: 'fui-cart__calloutInfoContainer',\n calloutContainer: 'fui-cart__calloutContainer',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n calloutContentRoot: {\n display: 'grid',\n overflow: 'hidden',\n backgroundColor: tokens.colorNeutralBackground1,\n backgroundBlendMode: 'normal, luminosity',\n },\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n calloutContentX: {\n ...typographyStyles.caption1,\n opacity: '0.8',\n color: tokens.colorNeutralForeground2,\n },\n calloutBlockContainer: {\n color: tokens.colorNeutralForeground2,\n textAlign: 'left',\n },\n calloutBlockContainerCartesian: {\n ...typographyStyles.caption1,\n forcedColorAdjust: 'none',\n },\n calloutBlockContainerNonCartesian: {\n fontSize: tokens.fontSizeHero700,\n lineHeight: '22px',\n forcedColorAdjust: 'none',\n },\n calloutBlockContainertoDrawShapefalse: {\n paddingLeft: tokens.spacingHorizontalS,\n forcedColorAdjust: 'none',\n },\n calloutBlockContainertoDrawShapetrue: { display: 'inline-grid' },\n shapeStyles: {\n marginRight: tokens.spacingHorizontalS,\n },\n calloutLegendText: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground2,\n forcedColorAdjust: 'auto',\n marginBottom: tokens.spacingVerticalXS,\n },\n calloutContentY: {\n forcedColorAdjust: 'auto',\n },\n calloutContentYCartesian: {\n ...typographyStyles.subtitle2Stronger,\n },\n calloutContentYNonCartesian: {\n ...typographyStyles.title2,\n },\n descriptionMessage: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground2,\n marginTop: tokens.spacingVerticalMNudge,\n paddingTop: tokens.spacingVerticalMNudge,\n borderTop: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n ratio: {\n ...typographyStyles.caption2,\n marginLeft: tokens.spacingHorizontalSNudge,\n color: tokens.colorNeutralForeground1,\n },\n numerator: {\n ...typographyStyles.caption2Strong,\n },\n denominator: {\n ...typographyStyles.caption2Strong,\n },\n calloutInfoContainer: {\n paddingLeft: tokens.spacingHorizontalS,\n forcedColorAdjust: 'none',\n },\n calloutContainer: {},\n});\n/**\n * Apply styling to the Carousel slots based on the state\n */\nexport const usePopoverStyles_unstable = (props: ChartPopoverProps): PopoverComponentStyles => {\n const { isCartesian } = props;\n const baseStyles = useStyles();\n return {\n calloutContentRoot: mergeClasses(\n popoverClassNames.calloutContentRoot,\n baseStyles.calloutContentRoot,\n props.styles?.calloutContentRoot,\n ),\n calloutDateTimeContainer: mergeClasses(\n popoverClassNames.calloutDateTimeContainer,\n baseStyles.calloutDateTimeContainer /*props.styles?.calloutDateTimeContainer*/,\n ),\n calloutContentX: mergeClasses(\n popoverClassNames.calloutContentX,\n baseStyles.calloutContentX /*props.styles?.calloutContentX*/,\n ),\n calloutBlockContainer: mergeClasses(\n popoverClassNames.calloutBlockContainer,\n baseStyles.calloutBlockContainer /*props.styles?.calloutBlockContainerCartesian*/,\n isCartesian ? baseStyles.calloutBlockContainerCartesian : baseStyles.calloutBlockContainerNonCartesian,\n ),\n calloutBlockContainertoDrawShapefalse: mergeClasses(\n popoverClassNames.calloutBlockContainertoDrawShapefalse,\n baseStyles.calloutBlockContainertoDrawShapefalse /*props.styles?.calloutBlockContainertoDrawShapefalse*/,\n ),\n calloutBlockContainertoDrawShapetrue: mergeClasses(\n popoverClassNames.calloutBlockContainertoDrawShapetrue,\n baseStyles.calloutBlockContainertoDrawShapetrue /*props.styles?.calloutBlockContainertoDrawShapetrue*/,\n ),\n shapeStyles: mergeClasses(popoverClassNames.shapeStyles, baseStyles.shapeStyles /*props.styles?.shapeStyles*/),\n calloutlegendText: mergeClasses(\n popoverClassNames.calloutlegendText,\n baseStyles.calloutLegendText /*props.styles?.calloutlegendText*/,\n ),\n calloutContentY: mergeClasses(\n popoverClassNames.calloutContentY,\n baseStyles.calloutContentY /*props.styles?.calloutContentYNonCartesian*/,\n isCartesian ? baseStyles.calloutContentYCartesian : baseStyles.calloutContentYNonCartesian,\n ),\n descriptionMessage: mergeClasses(\n popoverClassNames.descriptionMessage,\n baseStyles.descriptionMessage /*props.styles?. descriptionMessage*/,\n ),\n ratio: mergeClasses(popoverClassNames.ratio, baseStyles.ratio /*props.styles?.ratio*/),\n numerator: mergeClasses(popoverClassNames.numerator, baseStyles.numerator /*props.styles?.numerator*/),\n denominator: mergeClasses(popoverClassNames.denominator, baseStyles.denominator /*props.styles?.denominator*/),\n calloutInfoContainer: mergeClasses(popoverClassNames.calloutInfoContainer, baseStyles.calloutInfoContainer),\n calloutContainer: mergeClasses(popoverClassNames.calloutContainer, baseStyles.calloutContainer),\n };\n};\n"],"names":["makeStyles","mergeClasses","tokens","typographyStyles","popoverClassNames","calloutContentRoot","calloutDateTimeContainer","calloutContentX","calloutBlockContainer","calloutBlockContainertoDrawShapefalse","calloutBlockContainertoDrawShapetrue","shapeStyles","calloutlegendText","calloutContentY","descriptionMessage","ratio","numerator","denominator","calloutInfoContainer","calloutContainer","useStyles","display","overflow","backgroundColor","colorNeutralBackground1","backgroundBlendMode","flexDirection","justifyContent","caption1","opacity","color","colorNeutralForeground2","textAlign","calloutBlockContainerCartesian","forcedColorAdjust","calloutBlockContainerNonCartesian","fontSize","fontSizeHero700","lineHeight","paddingLeft","spacingHorizontalS","marginRight","calloutLegendText","marginBottom","spacingVerticalXS","calloutContentYCartesian","subtitle2Stronger","calloutContentYNonCartesian","title2","marginTop","spacingVerticalMNudge","paddingTop","borderTop","colorNeutralStroke2","caption2","marginLeft","spacingHorizontalSNudge","colorNeutralForeground1","caption2Strong","usePopoverStyles_unstable","props","isCartesian","baseStyles","styles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/components/CommonComponents/useChartPopoverStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities/src/index';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport type { ChartPopoverProps, PopoverComponentStyles } from './ChartPopover.types';\n\n/**\n * @internal\n */\nexport const popoverClassNames: SlotClassNames<PopoverComponentStyles> = {\n calloutContentRoot: 'fui-cart__calloutContentRoot',\n calloutDateTimeContainer: 'fui-cart__calloutDateTimeContainer',\n calloutContentX: 'fui-cart__calloutContentX',\n calloutBlockContainer: 'fui-cart__calloutBlockContainer',\n calloutBlockContainertoDrawShapefalse: 'fui-cart__calloutBlockContainertoDrawShapefalse',\n calloutBlockContainertoDrawShapetrue: 'fui-cart__calloutBlockContainertoDrawShapetrue',\n shapeStyles: 'fui-cart__shapeStyles',\n calloutlegendText: 'fui-cart__calloutlegendText',\n calloutContentY: 'fui-cart__calloutContentY',\n descriptionMessage: 'fui-cart__descriptionMessage',\n ratio: 'fui-cart__ratio',\n numerator: 'fui-cart__numerator',\n denominator: 'fui-cart__denominator',\n calloutInfoContainer: 'fui-cart__calloutInfoContainer',\n calloutContainer: 'fui-cart__calloutContainer',\n};\n\n/**\n * Base Styles\n */\nconst useStyles = makeStyles({\n calloutContentRoot: {\n display: 'grid',\n overflow: 'hidden',\n backgroundColor: tokens.colorNeutralBackground1,\n backgroundBlendMode: 'normal, luminosity',\n },\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n calloutContentX: {\n ...typographyStyles.caption1,\n opacity: '0.8',\n color: tokens.colorNeutralForeground2,\n },\n calloutBlockContainer: {\n color: tokens.colorNeutralForeground2,\n textAlign: 'left',\n },\n calloutBlockContainerCartesian: {\n ...typographyStyles.caption1,\n forcedColorAdjust: 'none',\n },\n calloutBlockContainerNonCartesian: {\n fontSize: tokens.fontSizeHero700,\n lineHeight: '22px',\n forcedColorAdjust: 'none',\n },\n calloutBlockContainertoDrawShapefalse: {\n paddingLeft: tokens.spacingHorizontalS,\n forcedColorAdjust: 'none',\n },\n calloutBlockContainertoDrawShapetrue: { display: 'inline-grid' },\n shapeStyles: {\n marginRight: tokens.spacingHorizontalS,\n },\n calloutLegendText: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground2,\n forcedColorAdjust: 'auto',\n marginBottom: tokens.spacingVerticalXS,\n },\n calloutContentY: {\n forcedColorAdjust: 'auto',\n },\n calloutContentYCartesian: {\n ...typographyStyles.subtitle2Stronger,\n },\n calloutContentYNonCartesian: {\n ...typographyStyles.title2,\n },\n descriptionMessage: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground2,\n marginTop: tokens.spacingVerticalMNudge,\n paddingTop: tokens.spacingVerticalMNudge,\n borderTop: `1px solid ${tokens.colorNeutralStroke2}`,\n },\n ratio: {\n ...typographyStyles.caption2,\n marginLeft: tokens.spacingHorizontalSNudge,\n color: tokens.colorNeutralForeground1,\n },\n numerator: {\n ...typographyStyles.caption2Strong,\n },\n denominator: {\n ...typographyStyles.caption2Strong,\n },\n calloutInfoContainer: {\n paddingLeft: tokens.spacingHorizontalS,\n forcedColorAdjust: 'none',\n },\n calloutContainer: {},\n});\n/**\n * Apply styling to the Carousel slots based on the state\n */\nexport const usePopoverStyles_unstable = (props: ChartPopoverProps): PopoverComponentStyles => {\n const { isCartesian } = props;\n const baseStyles = useStyles();\n return {\n calloutContentRoot: mergeClasses(\n popoverClassNames.calloutContentRoot,\n baseStyles.calloutContentRoot,\n props.styles?.calloutContentRoot,\n ),\n calloutDateTimeContainer: mergeClasses(\n popoverClassNames.calloutDateTimeContainer,\n baseStyles.calloutDateTimeContainer /*props.styles?.calloutDateTimeContainer*/,\n ),\n calloutContentX: mergeClasses(\n popoverClassNames.calloutContentX,\n baseStyles.calloutContentX /*props.styles?.calloutContentX*/,\n ),\n calloutBlockContainer: mergeClasses(\n popoverClassNames.calloutBlockContainer,\n baseStyles.calloutBlockContainer /*props.styles?.calloutBlockContainerCartesian*/,\n isCartesian ? baseStyles.calloutBlockContainerCartesian : baseStyles.calloutBlockContainerNonCartesian,\n ),\n calloutBlockContainertoDrawShapefalse: mergeClasses(\n popoverClassNames.calloutBlockContainertoDrawShapefalse,\n baseStyles.calloutBlockContainertoDrawShapefalse /*props.styles?.calloutBlockContainertoDrawShapefalse*/,\n ),\n calloutBlockContainertoDrawShapetrue: mergeClasses(\n popoverClassNames.calloutBlockContainertoDrawShapetrue,\n baseStyles.calloutBlockContainertoDrawShapetrue /*props.styles?.calloutBlockContainertoDrawShapetrue*/,\n ),\n shapeStyles: mergeClasses(popoverClassNames.shapeStyles, baseStyles.shapeStyles /*props.styles?.shapeStyles*/),\n calloutlegendText: mergeClasses(\n popoverClassNames.calloutlegendText,\n baseStyles.calloutLegendText /*props.styles?.calloutlegendText*/,\n ),\n calloutContentY: mergeClasses(\n popoverClassNames.calloutContentY,\n baseStyles.calloutContentY /*props.styles?.calloutContentYNonCartesian*/,\n isCartesian ? baseStyles.calloutContentYCartesian : baseStyles.calloutContentYNonCartesian,\n ),\n descriptionMessage: mergeClasses(\n popoverClassNames.descriptionMessage,\n baseStyles.descriptionMessage /*props.styles?. descriptionMessage*/,\n ),\n ratio: mergeClasses(popoverClassNames.ratio, baseStyles.ratio /*props.styles?.ratio*/),\n numerator: mergeClasses(popoverClassNames.numerator, baseStyles.numerator /*props.styles?.numerator*/),\n denominator: mergeClasses(popoverClassNames.denominator, baseStyles.denominator /*props.styles?.denominator*/),\n calloutInfoContainer: mergeClasses(popoverClassNames.calloutInfoContainer, baseStyles.calloutInfoContainer),\n calloutContainer: mergeClasses(popoverClassNames.calloutContainer, baseStyles.calloutContainer),\n };\n};\n"],"names":["makeStyles","mergeClasses","tokens","typographyStyles","popoverClassNames","calloutContentRoot","calloutDateTimeContainer","calloutContentX","calloutBlockContainer","calloutBlockContainertoDrawShapefalse","calloutBlockContainertoDrawShapetrue","shapeStyles","calloutlegendText","calloutContentY","descriptionMessage","ratio","numerator","denominator","calloutInfoContainer","calloutContainer","useStyles","display","overflow","backgroundColor","colorNeutralBackground1","backgroundBlendMode","flexDirection","justifyContent","caption1","opacity","color","colorNeutralForeground2","textAlign","calloutBlockContainerCartesian","forcedColorAdjust","calloutBlockContainerNonCartesian","fontSize","fontSizeHero700","lineHeight","paddingLeft","spacingHorizontalS","marginRight","calloutLegendText","marginBottom","spacingVerticalXS","calloutContentYCartesian","subtitle2Stronger","calloutContentYNonCartesian","title2","marginTop","spacingVerticalMNudge","paddingTop","borderTop","colorNeutralStroke2","caption2","marginLeft","spacingHorizontalSNudge","colorNeutralForeground1","caption2Strong","usePopoverStyles_unstable","props","isCartesian","baseStyles","styles"],"mappings":"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"}
|
|
@@ -237,7 +237,6 @@ const DeclarativeChart = /*#__PURE__*/ _react.forwardRef(({ colorwayType = 'defa
|
|
|
237
237
|
legendProps: multiSelectLegendProps
|
|
238
238
|
};
|
|
239
239
|
function createLegends(legendProps) {
|
|
240
|
-
// eslint-disable-next-line react/jsx-no-bind
|
|
241
240
|
return /*#__PURE__*/ _react.createElement(_index14.Legends, {
|
|
242
241
|
...legendProps,
|
|
243
242
|
selectedLegends: activeLegends,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/DeclarativeChart/DeclarativeChart.tsx"],"sourcesContent":["'use client';\n\n/* eslint-disable @typescript-eslint/naming-convention */\nimport * as React from 'react';\nimport type { Data, PlotData, PlotlySchema, OutputChartType, TraceInfo } from '@fluentui/chart-utilities';\nimport {\n decodeBase64Fields,\n isArrayOrTypedArray,\n isMonthArray,\n mapFluentChart,\n sanitizeJson,\n} from '@fluentui/chart-utilities';\nimport type { GridProperties } from './PlotlySchemaAdapter';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { ThemeContext_unstable as V9ThemeContext } from '@fluentui/react-shared-contexts';\nimport { Theme, webLightTheme } from '@fluentui/tokens';\nimport * as d3Color from 'd3-color';\n\nimport {\n correctYearMonth,\n getGridProperties,\n isNonPlotType,\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToAreaChartProps,\n transformPlotlyJsonToLineChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n transformPlotlyJsonToChartTableProps,\n transformPlotlyJsonToScatterChartProps,\n getAllupLegendsProps,\n NON_PLOT_KEY_PREFIX,\n SINGLE_REPEAT,\n transformPlotlyJsonToFunnelChartProps,\n transformPlotlyJsonToGanttChartProps,\n transformPlotlyJsonToAnnotationChartProps,\n transformPlotlyJsonToPolarChartProps,\n DEFAULT_POLAR_SUBPLOT,\n} from './PlotlySchemaAdapter';\nimport { getChartTitleInlineStyles } from '../../utilities/index';\nimport type { ColorwayType } from './PlotlyColorAdapter';\nimport { AnnotationOnlyChart } from '../AnnotationOnlyChart/AnnotationOnlyChart';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport { LineChart } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\nimport { Chart, ImageExportOptions } from '../../types/index';\nimport { ScatterChart } from '../ScatterChart/index';\nimport { FunnelChart } from '../FunnelChart/FunnelChart';\nimport { GanttChart } from '../GanttChart/index';\nimport { PolarChart } from '../PolarChart/index';\n\nimport { withResponsiveContainer } from '../ResponsiveContainer/withResponsiveContainer';\nimport { ChartTable } from '../ChartTable/index';\nimport { LegendsProps, Legends, LegendContainer } from '../Legends/index';\nimport { JSXElement } from '@fluentui/react-utilities/src/index';\nimport { resolveCSSVariables, useRtl } from '../../utilities/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\n\nconst ResponsiveDonutChart = withResponsiveContainer(DonutChart);\nconst ResponsiveVerticalStackedBarChart = withResponsiveContainer(VerticalStackedBarChart);\nconst ResponsiveLineChart = withResponsiveContainer(LineChart);\nconst ResponsiveHorizontalBarChartWithAxis = withResponsiveContainer(HorizontalBarChartWithAxis);\nconst ResponsiveAreaChart = withResponsiveContainer(AreaChart);\nconst ResponsiveHeatMapChart = withResponsiveContainer(HeatMapChart);\nconst ResponsiveSankeyChart = withResponsiveContainer(SankeyChart);\nconst ResponsiveGaugeChart = withResponsiveContainer(GaugeChart);\nconst ResponsiveGroupedVerticalBarChart = withResponsiveContainer(GroupedVerticalBarChart);\nconst ResponsiveVerticalBarChart = withResponsiveContainer(VerticalBarChart);\nconst ResponsiveScatterChart = withResponsiveContainer(ScatterChart);\nconst ResponsiveChartTable = withResponsiveContainer(ChartTable);\nconst ResponsiveGanttChart = withResponsiveContainer(GanttChart);\n// Removing responsive wrapper for FunnelChart as responsive container is not working with FunnelChart\n//const ResponsiveFunnelChart = withResponsiveContainer(FunnelChart);\nconst ResponsivePolarChart = withResponsiveContainer(PolarChart);\n\n// Default x-axis key for grouping traces. Also applicable for PieData and SankeyData where x-axis is not defined.\nconst DEFAULT_XAXIS = 'x';\n\n/**\n * DeclarativeChart schema.\n * {@docCategory DeclarativeChart}\n */\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plotlySchema: any;\n}\n\n/**\n * DeclarativeChart props.\n * {@docCategory DeclarativeChart}\n */\nexport interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * The schema representing the chart data, layout and configuration\n */\n chartSchema: Schema;\n\n /**\n * Callback when an event occurs\n */\n onSchemaChange?: (eventData: Schema) => void;\n\n /**\n * Optional callback to access the IDeclarativeChart interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: React.Ref<IDeclarativeChart>;\n\n /**\n * Optional prop to specify the colorway type of the chart.\n * - 'default': Use Fluent UI color palette aligning with plotly colorway.\n * - 'builtin': Use Fluent UI colorway.\n * - 'others': Reserved for future colorways.\n * @default 'default'\n */\n colorwayType?: ColorwayType;\n}\n\n/**\n * {@docCategory DeclarativeChart}\n */\nexport interface IDeclarativeChart {\n exportAsImage: (opts?: ImageExportOptions) => Promise<string>;\n}\n\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\n};\n\nfunction renderChart<TProps>(\n Renderer: React.ComponentType<TProps>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transformer: (...args: any[]) => TProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transformerArgs: any[],\n commonProps: Partial<TProps>,\n cellRow: number,\n cellColumn: number,\n): JSXElement {\n const chartProps = transformer(...transformerArgs);\n return (\n <div\n key={`${cellRow}_${cellColumn}`}\n style={{\n gridRowStart: cellRow,\n gridRowEnd: cellRow + 1,\n gridColumnStart: cellColumn,\n gridColumnEnd: cellColumn + 1,\n }}\n >\n <Renderer {...chartProps} {...commonProps} />\n </div>\n );\n}\n\ntype PreTransformHooks = {\n preTransformCondition?: (plotlySchema: PlotlySchema) => boolean;\n preTransformOperation?: (plotlySchema: PlotlySchema) => PlotlySchema;\n};\n\nconst LineAreaPreTransformOp = (plotlyInput: PlotlySchema) => {\n const xValues = (plotlyInput.data[0] as PlotData).x;\n const isXMonth = isMonthArray(xValues);\n let renderData = plotlyInput.data;\n if (isXMonth) {\n renderData = plotlyInput.data.map((dataPoint: PlotData) => ({\n ...dataPoint,\n x: correctYearMonth(dataPoint.x),\n }));\n }\n return { data: renderData, layout: plotlyInput.layout };\n};\n\ntype ChartTypeMap = {\n annotation: {\n transformer: typeof transformPlotlyJsonToAnnotationChartProps;\n renderer: typeof AnnotationOnlyChart;\n } & PreTransformHooks;\n donut: {\n transformer: typeof transformPlotlyJsonToDonutProps;\n renderer: typeof ResponsiveDonutChart;\n } & PreTransformHooks;\n sankey: {\n transformer: typeof transformPlotlyJsonToSankeyProps;\n renderer: typeof ResponsiveSankeyChart;\n } & PreTransformHooks;\n table: {\n transformer: typeof transformPlotlyJsonToChartTableProps;\n renderer: typeof ResponsiveChartTable;\n } & PreTransformHooks;\n horizontalbar: {\n transformer: typeof transformPlotlyJsonToHorizontalBarWithAxisProps;\n renderer: typeof ResponsiveHorizontalBarChartWithAxis;\n } & PreTransformHooks;\n groupedverticalbar: {\n transformer: typeof transformPlotlyJsonToGVBCProps;\n renderer: typeof ResponsiveGroupedVerticalBarChart;\n } & PreTransformHooks;\n verticalstackedbar: {\n transformer: typeof transformPlotlyJsonToVSBCProps;\n renderer: typeof ResponsiveVerticalStackedBarChart;\n } & PreTransformHooks;\n heatmap: {\n transformer: typeof transformPlotlyJsonToHeatmapProps;\n renderer: typeof ResponsiveHeatMapChart;\n } & PreTransformHooks;\n gauge: {\n transformer: typeof transformPlotlyJsonToGaugeProps;\n renderer: typeof ResponsiveGaugeChart;\n } & PreTransformHooks;\n verticalbar: {\n transformer: typeof transformPlotlyJsonToVBCProps;\n renderer: typeof ResponsiveVerticalBarChart;\n } & PreTransformHooks;\n area: {\n transformer: typeof transformPlotlyJsonToAreaChartProps;\n renderer: typeof ResponsiveAreaChart;\n } & PreTransformHooks;\n line: {\n transformer: typeof transformPlotlyJsonToLineChartProps;\n renderer: typeof ResponsiveLineChart;\n } & PreTransformHooks;\n scatter: {\n transformer: typeof transformPlotlyJsonToScatterChartProps;\n renderer: typeof ResponsiveScatterChart;\n } & PreTransformHooks;\n gantt: {\n transformer: typeof transformPlotlyJsonToGanttChartProps;\n renderer: typeof ResponsiveGanttChart;\n } & PreTransformHooks;\n funnel: {\n transformer: typeof transformPlotlyJsonToFunnelChartProps;\n renderer: typeof FunnelChart;\n } & PreTransformHooks;\n scatterpolar: {\n transformer: typeof transformPlotlyJsonToPolarChartProps;\n renderer: typeof ResponsivePolarChart;\n } & PreTransformHooks;\n fallback: {\n transformer: typeof transformPlotlyJsonToVSBCProps;\n renderer: typeof ResponsiveVerticalStackedBarChart;\n } & PreTransformHooks;\n};\n\nconst chartMap: ChartTypeMap = {\n annotation: {\n transformer: transformPlotlyJsonToAnnotationChartProps,\n renderer: AnnotationOnlyChart,\n },\n // PieData category charts\n donut: {\n transformer: transformPlotlyJsonToDonutProps,\n renderer: ResponsiveDonutChart,\n },\n // SankeyData category charts\n sankey: {\n transformer: transformPlotlyJsonToSankeyProps,\n renderer: ResponsiveSankeyChart,\n },\n // TableData category charts\n table: {\n transformer: transformPlotlyJsonToChartTableProps,\n renderer: ResponsiveChartTable,\n },\n // PlotData category charts\n horizontalbar: {\n transformer: transformPlotlyJsonToHorizontalBarWithAxisProps,\n renderer: ResponsiveHorizontalBarChartWithAxis,\n },\n groupedverticalbar: {\n transformer: transformPlotlyJsonToGVBCProps,\n renderer: ResponsiveGroupedVerticalBarChart,\n },\n verticalstackedbar: {\n transformer: transformPlotlyJsonToVSBCProps,\n renderer: ResponsiveVerticalStackedBarChart,\n },\n heatmap: {\n transformer: transformPlotlyJsonToHeatmapProps,\n renderer: ResponsiveHeatMapChart,\n },\n gauge: {\n transformer: transformPlotlyJsonToGaugeProps,\n renderer: ResponsiveGaugeChart,\n },\n verticalbar: {\n transformer: transformPlotlyJsonToVBCProps,\n renderer: ResponsiveVerticalBarChart,\n },\n area: {\n transformer: transformPlotlyJsonToAreaChartProps,\n renderer: ResponsiveAreaChart,\n preTransformOperation: LineAreaPreTransformOp,\n },\n line: {\n transformer: transformPlotlyJsonToLineChartProps,\n renderer: ResponsiveLineChart,\n preTransformOperation: LineAreaPreTransformOp,\n },\n scatter: {\n transformer: transformPlotlyJsonToScatterChartProps,\n renderer: ResponsiveScatterChart,\n preTransformOperation: LineAreaPreTransformOp,\n },\n gantt: {\n transformer: transformPlotlyJsonToGanttChartProps,\n renderer: ResponsiveGanttChart,\n },\n funnel: {\n transformer: transformPlotlyJsonToFunnelChartProps,\n renderer: FunnelChart,\n },\n scatterpolar: {\n transformer: transformPlotlyJsonToPolarChartProps,\n renderer: ResponsivePolarChart,\n },\n fallback: {\n transformer: transformPlotlyJsonToVSBCProps,\n renderer: ResponsiveVerticalStackedBarChart,\n },\n};\n\nconst useIsDarkTheme = (): boolean => {\n const parentV9Theme = React.useContext(V9ThemeContext) as Theme;\n const v9Theme: Theme = parentV9Theme ? parentV9Theme : webLightTheme;\n\n // Get background and foreground colors\n const backgroundColor = d3Color.hsl(v9Theme.colorNeutralBackground1);\n const foregroundColor = d3Color.hsl(v9Theme.colorNeutralForeground1);\n\n const isDarkTheme = backgroundColor.l < foregroundColor.l;\n\n return isDarkTheme;\n};\n\n/**\n * DeclarativeChart component.\n * {@docCategory DeclarativeChart}\n */\nexport const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps> = React.forwardRef<\n HTMLDivElement,\n DeclarativeChartProps\n>(({ colorwayType = 'default', ...props }, forwardedRef) => {\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n const chart: OutputChartType = mapFluentChart(plotlySchema);\n if (!chart.isValid) {\n throw new Error(`Invalid chart schema: ${chart.errorMessage}`);\n }\n let plotlyInput = plotlySchema as PlotlySchema;\n try {\n plotlyInput = decodeBase64Fields(plotlyInput);\n } catch (error) {\n throw new Error(`Failed to decode plotly schema: ${error}`);\n }\n const plotlyInputWithValidData: PlotlySchema = {\n ...plotlyInput,\n data: chart.validTracesInfo!.map(trace => plotlyInput.data[trace.index]),\n };\n\n const validTracesFilteredIndex: TraceInfo[] = chart.validTracesInfo!.map((trace, index) => ({\n index,\n type: trace.type,\n }));\n\n let { selectedLegends } = plotlySchema;\n const colorMap = useColorMapping();\n const isDarkTheme = useIsDarkTheme();\n const chartRefs = React.useRef<{ compRef: Chart | null; row: number; col: number }[]>([]);\n const isMultiPlot = React.useRef(false);\n const legendsRef = React.useRef<LegendContainer>(null);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const isRTL = useRtl();\n\n if (!isArrayOrTypedArray(selectedLegends)) {\n selectedLegends = [];\n }\n\n const [activeLegends, setActiveLegends] = React.useState<string[]>(selectedLegends);\n const onActiveLegendsChange = (keys: string[]) => {\n setActiveLegends(keys);\n if (props.onSchemaChange) {\n props.onSchemaChange({ plotlySchema: { plotlyInput, selectedLegends: keys } });\n }\n };\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { selectedLegends } = plotlySchema;\n setActiveLegends(selectedLegends ?? []);\n }, [props.chartSchema]);\n\n const multiSelectLegendProps = {\n canSelectMultipleLegends: true,\n onChange: onActiveLegendsChange,\n selectedLegends: activeLegends,\n };\n\n const interactiveCommonProps = {\n legendProps: multiSelectLegendProps,\n };\n\n function createLegends(legendProps: LegendsProps): JSXElement {\n // eslint-disable-next-line react/jsx-no-bind\n return (\n <Legends\n {...legendProps}\n selectedLegends={activeLegends}\n onChange={onActiveLegendsChange}\n legendRef={legendsRef}\n />\n );\n }\n\n const exportAsImage = React.useCallback(\n async (opts?: ImageExportOptions) => {\n if (!containerRef.current) {\n throw new Error('Container reference is null');\n }\n\n const imgExpOpts = {\n background: resolveCSSVariables(containerRef.current, tokens.colorNeutralBackground1),\n scale: 5,\n ...opts,\n };\n\n if (!isMultiPlot.current) {\n if (!chartRefs.current[0]?.compRef?.toImage) {\n throw new Error('Chart cannot be exported as image');\n }\n\n return chartRefs.current[0].compRef.toImage(imgExpOpts);\n }\n\n return exportChartsAsImage(\n chartRefs.current.map(item => ({\n container: item.compRef?.chartContainer,\n row: item.row,\n col: item.col,\n })),\n legendsRef.current?.toSVG,\n isRTL,\n imgExpOpts,\n );\n },\n [isRTL],\n );\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n exportAsImage,\n }),\n [exportAsImage],\n );\n\n const groupedTraces: Record<string, number[]> = {};\n let nonCartesianTraceCount = 0;\n\n // For annotation-only charts, create a single group entry\n if (chart.type === 'annotation') {\n groupedTraces[DEFAULT_XAXIS] = [];\n } else {\n plotlyInputWithValidData.data.forEach((trace: Data, index: number) => {\n let traceKey = '';\n if (isNonPlotType(chart.validTracesInfo![index].type)) {\n traceKey = `${NON_PLOT_KEY_PREFIX}${nonCartesianTraceCount + 1}`;\n nonCartesianTraceCount++;\n } else {\n traceKey =\n chart.validTracesInfo![index].type === 'scatterpolar'\n ? (trace as { subplot?: string }).subplot ?? DEFAULT_POLAR_SUBPLOT\n : (trace as PlotData).xaxis ?? DEFAULT_XAXIS;\n }\n if (!groupedTraces[traceKey]) {\n groupedTraces[traceKey] = [];\n }\n groupedTraces[traceKey].push(index);\n });\n }\n\n isMultiPlot.current = Object.keys(groupedTraces).length > 1;\n const gridProperties: GridProperties = getGridProperties(\n plotlyInputWithValidData,\n isMultiPlot.current,\n chart.validTracesInfo!,\n );\n\n // Render only one plot if the grid properties cannot determine positioning of multiple plots.\n if (\n isMultiPlot.current &&\n gridProperties.templateRows === SINGLE_REPEAT &&\n gridProperties.templateColumns === SINGLE_REPEAT\n ) {\n if (chart.type === 'donut') {\n // If there are multiple data traces for donut/pie, picking the last one similar to plotly\n const keys = Object.keys(groupedTraces);\n keys.forEach((key, index) => {\n if (index < keys.length - 1) {\n delete groupedTraces[key];\n }\n });\n } else {\n Object.keys(groupedTraces).forEach((key, index) => {\n if (index > 0) {\n delete groupedTraces[key];\n }\n });\n }\n isMultiPlot.current = false;\n }\n\n const allupLegendsProps = getAllupLegendsProps(\n plotlyInputWithValidData,\n colorMap,\n colorwayType,\n chart.validTracesInfo!,\n isDarkTheme,\n );\n\n type ChartType = keyof ChartTypeMap;\n\n const titleObj = plotlyInputWithValidData.layout?.title;\n const chartTitle = typeof titleObj === 'string' ? titleObj : titleObj?.text ?? '';\n const titleFont = typeof titleObj === 'object' ? titleObj?.font : undefined;\n\n const titleStyle: React.CSSProperties = {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground1,\n textAlign: 'center',\n marginBottom: tokens.spacingVerticalS,\n ...getChartTitleInlineStyles(titleFont),\n };\n\n // map through the grouped traces and render the appropriate chart\n return (\n <>\n {isMultiPlot.current && chartTitle && <div style={titleStyle}>{chartTitle}</div>}\n <div\n style={{\n display: 'grid',\n gridTemplateRows: gridProperties.templateRows,\n gridTemplateColumns: gridProperties.templateColumns,\n }}\n ref={containerRef}\n >\n {Object.entries(groupedTraces).map(([xAxisKey, index], chartIdx) => {\n const plotlyInputForGroup: PlotlySchema = {\n ...plotlyInputWithValidData,\n data: index.map(idx => plotlyInputWithValidData.data[idx]),\n };\n\n const filteredTracesInfo = validTracesFilteredIndex.filter(trace => index.includes(trace.index));\n let chartType =\n chart.type === 'fallback' || chart.type === 'groupedverticalbar'\n ? chart.type\n : filteredTracesInfo[0]?.type ?? chart.type;\n\n if (\n validTracesFilteredIndex.some(trace => trace.type === 'line') &&\n validTracesFilteredIndex.some(trace => trace.type === 'scatter')\n ) {\n chartType = 'line';\n }\n\n const chartEntry = chartMap[chartType as ChartType];\n if (chartEntry) {\n const { transformer, renderer, preTransformCondition, preTransformOperation } = chartEntry;\n if (preTransformCondition === undefined || preTransformCondition(plotlyInputForGroup)) {\n const transformedInput = preTransformOperation\n ? preTransformOperation(plotlyInputForGroup)\n : plotlyInputForGroup;\n const cellProperties = gridProperties.layout[xAxisKey];\n\n const resolvedCommonProps = (\n chartType === 'annotation'\n ? {}\n : {\n ...interactiveCommonProps,\n }\n ) as Partial<ReturnType<typeof transformer>>;\n\n return renderChart<ReturnType<typeof transformer>>(\n renderer,\n transformer,\n [transformedInput, isMultiPlot.current, colorMap, colorwayType, isDarkTheme],\n {\n ...resolvedCommonProps,\n ...(cellProperties?.xAnnotation && { xAxisAnnotation: cellProperties.xAnnotation }),\n ...(cellProperties?.yAnnotation && { yAxisAnnotation: cellProperties.yAnnotation }),\n componentRef: (ref: Chart | null) => {\n chartRefs.current[chartIdx] = {\n compRef: ref,\n row: cellProperties?.row ?? 1,\n col: cellProperties?.column ?? 1,\n };\n },\n },\n cellProperties?.row ?? 1,\n cellProperties?.column ?? 1,\n );\n }\n return <></>;\n } else {\n throw new Error(`Unsupported chart type :${plotlyInputForGroup.data[0]?.type}`);\n }\n })}\n </div>\n {isMultiPlot.current && createLegends(allupLegendsProps)}\n </>\n );\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"],"names":["React","decodeBase64Fields","isArrayOrTypedArray","isMonthArray","mapFluentChart","sanitizeJson","tokens","typographyStyles","ThemeContext_unstable","V9ThemeContext","webLightTheme","d3Color","correctYearMonth","getGridProperties","isNonPlotType","transformPlotlyJsonToDonutProps","transformPlotlyJsonToVSBCProps","transformPlotlyJsonToAreaChartProps","transformPlotlyJsonToLineChartProps","transformPlotlyJsonToHorizontalBarWithAxisProps","transformPlotlyJsonToHeatmapProps","transformPlotlyJsonToSankeyProps","transformPlotlyJsonToGaugeProps","transformPlotlyJsonToGVBCProps","transformPlotlyJsonToVBCProps","transformPlotlyJsonToChartTableProps","transformPlotlyJsonToScatterChartProps","getAllupLegendsProps","NON_PLOT_KEY_PREFIX","SINGLE_REPEAT","transformPlotlyJsonToFunnelChartProps","transformPlotlyJsonToGanttChartProps","transformPlotlyJsonToAnnotationChartProps","transformPlotlyJsonToPolarChartProps","DEFAULT_POLAR_SUBPLOT","getChartTitleInlineStyles","AnnotationOnlyChart","DonutChart","VerticalStackedBarChart","LineChart","HorizontalBarChartWithAxis","AreaChart","HeatMapChart","SankeyChart","GaugeChart","GroupedVerticalBarChart","VerticalBarChart","ScatterChart","FunnelChart","GanttChart","PolarChart","withResponsiveContainer","ChartTable","Legends","resolveCSSVariables","useRtl","exportChartsAsImage","ResponsiveDonutChart","ResponsiveVerticalStackedBarChart","ResponsiveLineChart","ResponsiveHorizontalBarChartWithAxis","ResponsiveAreaChart","ResponsiveHeatMapChart","ResponsiveSankeyChart","ResponsiveGaugeChart","ResponsiveGroupedVerticalBarChart","ResponsiveVerticalBarChart","ResponsiveScatterChart","ResponsiveChartTable","ResponsiveGanttChart","ResponsivePolarChart","DEFAULT_XAXIS","useColorMapping","colorMap","useRef","Map","renderChart","Renderer","transformer","transformerArgs","commonProps","cellRow","cellColumn","chartProps","div","key","style","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","LineAreaPreTransformOp","plotlyInput","xValues","data","x","isXMonth","renderData","map","dataPoint","layout","chartMap","annotation","renderer","donut","sankey","table","horizontalbar","groupedverticalbar","verticalstackedbar","heatmap","gauge","verticalbar","area","preTransformOperation","line","scatter","gantt","funnel","scatterpolar","fallback","useIsDarkTheme","parentV9Theme","useContext","v9Theme","backgroundColor","hsl","colorNeutralBackground1","foregroundColor","colorNeutralForeground1","isDarkTheme","l","DeclarativeChart","forwardRef","colorwayType","props","forwardedRef","plotlyInputWithValidData","plotlySchema","chartSchema","chart","isValid","Error","errorMessage","error","validTracesInfo","trace","index","validTracesFilteredIndex","type","selectedLegends","chartRefs","isMultiPlot","legendsRef","containerRef","isRTL","activeLegends","setActiveLegends","useState","onActiveLegendsChange","keys","onSchemaChange","useEffect","multiSelectLegendProps","canSelectMultipleLegends","onChange","interactiveCommonProps","legendProps","createLegends","legendRef","exportAsImage","useCallback","opts","current","imgExpOpts","background","scale","compRef","toImage","item","container","chartContainer","row","col","toSVG","useImperativeHandle","componentRef","groupedTraces","nonCartesianTraceCount","forEach","traceKey","subplot","xaxis","push","Object","length","gridProperties","templateRows","templateColumns","allupLegendsProps","titleObj","title","chartTitle","text","titleFont","font","undefined","titleStyle","caption1","color","textAlign","marginBottom","spacingVerticalS","display","gridTemplateRows","gridTemplateColumns","ref","entries","xAxisKey","chartIdx","filteredTracesInfo","plotlyInputForGroup","idx","filter","includes","chartType","some","chartEntry","preTransformCondition","transformedInput","cellProperties","resolvedCommonProps","xAnnotation","xAxisAnnotation","yAnnotation","yAxisAnnotation","column","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/components/DeclarativeChart/DeclarativeChart.tsx"],"sourcesContent":["'use client';\n\n/* eslint-disable @typescript-eslint/naming-convention */\nimport * as React from 'react';\nimport type { Data, PlotData, PlotlySchema, OutputChartType, TraceInfo } from '@fluentui/chart-utilities';\nimport {\n decodeBase64Fields,\n isArrayOrTypedArray,\n isMonthArray,\n mapFluentChart,\n sanitizeJson,\n} from '@fluentui/chart-utilities';\nimport type { GridProperties } from './PlotlySchemaAdapter';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { ThemeContext_unstable as V9ThemeContext } from '@fluentui/react-shared-contexts';\nimport type { Theme } from '@fluentui/tokens';\nimport { webLightTheme } from '@fluentui/tokens';\nimport * as d3Color from 'd3-color';\n\nimport {\n correctYearMonth,\n getGridProperties,\n isNonPlotType,\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToAreaChartProps,\n transformPlotlyJsonToLineChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n transformPlotlyJsonToChartTableProps,\n transformPlotlyJsonToScatterChartProps,\n getAllupLegendsProps,\n NON_PLOT_KEY_PREFIX,\n SINGLE_REPEAT,\n transformPlotlyJsonToFunnelChartProps,\n transformPlotlyJsonToGanttChartProps,\n transformPlotlyJsonToAnnotationChartProps,\n transformPlotlyJsonToPolarChartProps,\n DEFAULT_POLAR_SUBPLOT,\n} from './PlotlySchemaAdapter';\nimport { getChartTitleInlineStyles } from '../../utilities/index';\nimport type { ColorwayType } from './PlotlyColorAdapter';\nimport { AnnotationOnlyChart } from '../AnnotationOnlyChart/AnnotationOnlyChart';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport { LineChart } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\nimport type { Chart, ImageExportOptions } from '../../types/index';\nimport { ScatterChart } from '../ScatterChart/index';\nimport { FunnelChart } from '../FunnelChart/FunnelChart';\nimport { GanttChart } from '../GanttChart/index';\nimport { PolarChart } from '../PolarChart/index';\n\nimport { withResponsiveContainer } from '../ResponsiveContainer/withResponsiveContainer';\nimport { ChartTable } from '../ChartTable/index';\nimport type { LegendsProps, LegendContainer } from '../Legends/index';\nimport { Legends } from '../Legends/index';\nimport type { JSXElement } from '@fluentui/react-utilities/src/index';\nimport { resolveCSSVariables, useRtl } from '../../utilities/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\n\nconst ResponsiveDonutChart = withResponsiveContainer(DonutChart);\nconst ResponsiveVerticalStackedBarChart = withResponsiveContainer(VerticalStackedBarChart);\nconst ResponsiveLineChart = withResponsiveContainer(LineChart);\nconst ResponsiveHorizontalBarChartWithAxis = withResponsiveContainer(HorizontalBarChartWithAxis);\nconst ResponsiveAreaChart = withResponsiveContainer(AreaChart);\nconst ResponsiveHeatMapChart = withResponsiveContainer(HeatMapChart);\nconst ResponsiveSankeyChart = withResponsiveContainer(SankeyChart);\nconst ResponsiveGaugeChart = withResponsiveContainer(GaugeChart);\nconst ResponsiveGroupedVerticalBarChart = withResponsiveContainer(GroupedVerticalBarChart);\nconst ResponsiveVerticalBarChart = withResponsiveContainer(VerticalBarChart);\nconst ResponsiveScatterChart = withResponsiveContainer(ScatterChart);\nconst ResponsiveChartTable = withResponsiveContainer(ChartTable);\nconst ResponsiveGanttChart = withResponsiveContainer(GanttChart);\n// Removing responsive wrapper for FunnelChart as responsive container is not working with FunnelChart\n//const ResponsiveFunnelChart = withResponsiveContainer(FunnelChart);\nconst ResponsivePolarChart = withResponsiveContainer(PolarChart);\n\n// Default x-axis key for grouping traces. Also applicable for PieData and SankeyData where x-axis is not defined.\nconst DEFAULT_XAXIS = 'x';\n\n/**\n * DeclarativeChart schema.\n * {@docCategory DeclarativeChart}\n */\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plotlySchema: any;\n}\n\n/**\n * DeclarativeChart props.\n * {@docCategory DeclarativeChart}\n */\nexport interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * The schema representing the chart data, layout and configuration\n */\n chartSchema: Schema;\n\n /**\n * Callback when an event occurs\n */\n onSchemaChange?: (eventData: Schema) => void;\n\n /**\n * Optional callback to access the IDeclarativeChart interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: React.Ref<IDeclarativeChart>;\n\n /**\n * Optional prop to specify the colorway type of the chart.\n * - 'default': Use Fluent UI color palette aligning with plotly colorway.\n * - 'builtin': Use Fluent UI colorway.\n * - 'others': Reserved for future colorways.\n * @default 'default'\n */\n colorwayType?: ColorwayType;\n}\n\n/**\n * {@docCategory DeclarativeChart}\n */\nexport interface IDeclarativeChart {\n exportAsImage: (opts?: ImageExportOptions) => Promise<string>;\n}\n\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\n};\n\nfunction renderChart<TProps>(\n Renderer: React.ComponentType<TProps>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transformer: (...args: any[]) => TProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transformerArgs: any[],\n commonProps: Partial<TProps>,\n cellRow: number,\n cellColumn: number,\n): JSXElement {\n const chartProps = transformer(...transformerArgs);\n return (\n <div\n key={`${cellRow}_${cellColumn}`}\n style={{\n gridRowStart: cellRow,\n gridRowEnd: cellRow + 1,\n gridColumnStart: cellColumn,\n gridColumnEnd: cellColumn + 1,\n }}\n >\n <Renderer {...chartProps} {...commonProps} />\n </div>\n );\n}\n\ntype PreTransformHooks = {\n preTransformCondition?: (plotlySchema: PlotlySchema) => boolean;\n preTransformOperation?: (plotlySchema: PlotlySchema) => PlotlySchema;\n};\n\nconst LineAreaPreTransformOp = (plotlyInput: PlotlySchema) => {\n const xValues = (plotlyInput.data[0] as PlotData).x;\n const isXMonth = isMonthArray(xValues);\n let renderData = plotlyInput.data;\n if (isXMonth) {\n renderData = plotlyInput.data.map((dataPoint: PlotData) => ({\n ...dataPoint,\n x: correctYearMonth(dataPoint.x),\n }));\n }\n return { data: renderData, layout: plotlyInput.layout };\n};\n\ntype ChartTypeMap = {\n annotation: {\n transformer: typeof transformPlotlyJsonToAnnotationChartProps;\n renderer: typeof AnnotationOnlyChart;\n } & PreTransformHooks;\n donut: {\n transformer: typeof transformPlotlyJsonToDonutProps;\n renderer: typeof ResponsiveDonutChart;\n } & PreTransformHooks;\n sankey: {\n transformer: typeof transformPlotlyJsonToSankeyProps;\n renderer: typeof ResponsiveSankeyChart;\n } & PreTransformHooks;\n table: {\n transformer: typeof transformPlotlyJsonToChartTableProps;\n renderer: typeof ResponsiveChartTable;\n } & PreTransformHooks;\n horizontalbar: {\n transformer: typeof transformPlotlyJsonToHorizontalBarWithAxisProps;\n renderer: typeof ResponsiveHorizontalBarChartWithAxis;\n } & PreTransformHooks;\n groupedverticalbar: {\n transformer: typeof transformPlotlyJsonToGVBCProps;\n renderer: typeof ResponsiveGroupedVerticalBarChart;\n } & PreTransformHooks;\n verticalstackedbar: {\n transformer: typeof transformPlotlyJsonToVSBCProps;\n renderer: typeof ResponsiveVerticalStackedBarChart;\n } & PreTransformHooks;\n heatmap: {\n transformer: typeof transformPlotlyJsonToHeatmapProps;\n renderer: typeof ResponsiveHeatMapChart;\n } & PreTransformHooks;\n gauge: {\n transformer: typeof transformPlotlyJsonToGaugeProps;\n renderer: typeof ResponsiveGaugeChart;\n } & PreTransformHooks;\n verticalbar: {\n transformer: typeof transformPlotlyJsonToVBCProps;\n renderer: typeof ResponsiveVerticalBarChart;\n } & PreTransformHooks;\n area: {\n transformer: typeof transformPlotlyJsonToAreaChartProps;\n renderer: typeof ResponsiveAreaChart;\n } & PreTransformHooks;\n line: {\n transformer: typeof transformPlotlyJsonToLineChartProps;\n renderer: typeof ResponsiveLineChart;\n } & PreTransformHooks;\n scatter: {\n transformer: typeof transformPlotlyJsonToScatterChartProps;\n renderer: typeof ResponsiveScatterChart;\n } & PreTransformHooks;\n gantt: {\n transformer: typeof transformPlotlyJsonToGanttChartProps;\n renderer: typeof ResponsiveGanttChart;\n } & PreTransformHooks;\n funnel: {\n transformer: typeof transformPlotlyJsonToFunnelChartProps;\n renderer: typeof FunnelChart;\n } & PreTransformHooks;\n scatterpolar: {\n transformer: typeof transformPlotlyJsonToPolarChartProps;\n renderer: typeof ResponsivePolarChart;\n } & PreTransformHooks;\n fallback: {\n transformer: typeof transformPlotlyJsonToVSBCProps;\n renderer: typeof ResponsiveVerticalStackedBarChart;\n } & PreTransformHooks;\n};\n\nconst chartMap: ChartTypeMap = {\n annotation: {\n transformer: transformPlotlyJsonToAnnotationChartProps,\n renderer: AnnotationOnlyChart,\n },\n // PieData category charts\n donut: {\n transformer: transformPlotlyJsonToDonutProps,\n renderer: ResponsiveDonutChart,\n },\n // SankeyData category charts\n sankey: {\n transformer: transformPlotlyJsonToSankeyProps,\n renderer: ResponsiveSankeyChart,\n },\n // TableData category charts\n table: {\n transformer: transformPlotlyJsonToChartTableProps,\n renderer: ResponsiveChartTable,\n },\n // PlotData category charts\n horizontalbar: {\n transformer: transformPlotlyJsonToHorizontalBarWithAxisProps,\n renderer: ResponsiveHorizontalBarChartWithAxis,\n },\n groupedverticalbar: {\n transformer: transformPlotlyJsonToGVBCProps,\n renderer: ResponsiveGroupedVerticalBarChart,\n },\n verticalstackedbar: {\n transformer: transformPlotlyJsonToVSBCProps,\n renderer: ResponsiveVerticalStackedBarChart,\n },\n heatmap: {\n transformer: transformPlotlyJsonToHeatmapProps,\n renderer: ResponsiveHeatMapChart,\n },\n gauge: {\n transformer: transformPlotlyJsonToGaugeProps,\n renderer: ResponsiveGaugeChart,\n },\n verticalbar: {\n transformer: transformPlotlyJsonToVBCProps,\n renderer: ResponsiveVerticalBarChart,\n },\n area: {\n transformer: transformPlotlyJsonToAreaChartProps,\n renderer: ResponsiveAreaChart,\n preTransformOperation: LineAreaPreTransformOp,\n },\n line: {\n transformer: transformPlotlyJsonToLineChartProps,\n renderer: ResponsiveLineChart,\n preTransformOperation: LineAreaPreTransformOp,\n },\n scatter: {\n transformer: transformPlotlyJsonToScatterChartProps,\n renderer: ResponsiveScatterChart,\n preTransformOperation: LineAreaPreTransformOp,\n },\n gantt: {\n transformer: transformPlotlyJsonToGanttChartProps,\n renderer: ResponsiveGanttChart,\n },\n funnel: {\n transformer: transformPlotlyJsonToFunnelChartProps,\n renderer: FunnelChart,\n },\n scatterpolar: {\n transformer: transformPlotlyJsonToPolarChartProps,\n renderer: ResponsivePolarChart,\n },\n fallback: {\n transformer: transformPlotlyJsonToVSBCProps,\n renderer: ResponsiveVerticalStackedBarChart,\n },\n};\n\nconst useIsDarkTheme = (): boolean => {\n const parentV9Theme = React.useContext(V9ThemeContext) as Theme;\n const v9Theme: Theme = parentV9Theme ? parentV9Theme : webLightTheme;\n\n // Get background and foreground colors\n const backgroundColor = d3Color.hsl(v9Theme.colorNeutralBackground1);\n const foregroundColor = d3Color.hsl(v9Theme.colorNeutralForeground1);\n\n const isDarkTheme = backgroundColor.l < foregroundColor.l;\n\n return isDarkTheme;\n};\n\n/**\n * DeclarativeChart component.\n * {@docCategory DeclarativeChart}\n */\nexport const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps> = React.forwardRef<\n HTMLDivElement,\n DeclarativeChartProps\n>(({ colorwayType = 'default', ...props }, forwardedRef) => {\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n const chart: OutputChartType = mapFluentChart(plotlySchema);\n if (!chart.isValid) {\n throw new Error(`Invalid chart schema: ${chart.errorMessage}`);\n }\n let plotlyInput = plotlySchema as PlotlySchema;\n try {\n plotlyInput = decodeBase64Fields(plotlyInput);\n } catch (error) {\n throw new Error(`Failed to decode plotly schema: ${error}`);\n }\n const plotlyInputWithValidData: PlotlySchema = {\n ...plotlyInput,\n data: chart.validTracesInfo!.map(trace => plotlyInput.data[trace.index]),\n };\n\n const validTracesFilteredIndex: TraceInfo[] = chart.validTracesInfo!.map((trace, index) => ({\n index,\n type: trace.type,\n }));\n\n let { selectedLegends } = plotlySchema;\n const colorMap = useColorMapping();\n const isDarkTheme = useIsDarkTheme();\n const chartRefs = React.useRef<{ compRef: Chart | null; row: number; col: number }[]>([]);\n const isMultiPlot = React.useRef(false);\n const legendsRef = React.useRef<LegendContainer>(null);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const isRTL = useRtl();\n\n if (!isArrayOrTypedArray(selectedLegends)) {\n selectedLegends = [];\n }\n\n const [activeLegends, setActiveLegends] = React.useState<string[]>(selectedLegends);\n const onActiveLegendsChange = (keys: string[]) => {\n setActiveLegends(keys);\n if (props.onSchemaChange) {\n props.onSchemaChange({ plotlySchema: { plotlyInput, selectedLegends: keys } });\n }\n };\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { selectedLegends } = plotlySchema;\n setActiveLegends(selectedLegends ?? []);\n }, [props.chartSchema]);\n\n const multiSelectLegendProps = {\n canSelectMultipleLegends: true,\n onChange: onActiveLegendsChange,\n selectedLegends: activeLegends,\n };\n\n const interactiveCommonProps = {\n legendProps: multiSelectLegendProps,\n };\n\n function createLegends(legendProps: LegendsProps): JSXElement {\n return (\n <Legends\n {...legendProps}\n selectedLegends={activeLegends}\n onChange={onActiveLegendsChange}\n legendRef={legendsRef}\n />\n );\n }\n\n const exportAsImage = React.useCallback(\n async (opts?: ImageExportOptions) => {\n if (!containerRef.current) {\n throw new Error('Container reference is null');\n }\n\n const imgExpOpts = {\n background: resolveCSSVariables(containerRef.current, tokens.colorNeutralBackground1),\n scale: 5,\n ...opts,\n };\n\n if (!isMultiPlot.current) {\n if (!chartRefs.current[0]?.compRef?.toImage) {\n throw new Error('Chart cannot be exported as image');\n }\n\n return chartRefs.current[0].compRef.toImage(imgExpOpts);\n }\n\n return exportChartsAsImage(\n chartRefs.current.map(item => ({\n container: item.compRef?.chartContainer,\n row: item.row,\n col: item.col,\n })),\n legendsRef.current?.toSVG,\n isRTL,\n imgExpOpts,\n );\n },\n [isRTL],\n );\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n exportAsImage,\n }),\n [exportAsImage],\n );\n\n const groupedTraces: Record<string, number[]> = {};\n let nonCartesianTraceCount = 0;\n\n // For annotation-only charts, create a single group entry\n if (chart.type === 'annotation') {\n groupedTraces[DEFAULT_XAXIS] = [];\n } else {\n plotlyInputWithValidData.data.forEach((trace: Data, index: number) => {\n let traceKey = '';\n if (isNonPlotType(chart.validTracesInfo![index].type)) {\n traceKey = `${NON_PLOT_KEY_PREFIX}${nonCartesianTraceCount + 1}`;\n nonCartesianTraceCount++;\n } else {\n traceKey =\n chart.validTracesInfo![index].type === 'scatterpolar'\n ? (trace as { subplot?: string }).subplot ?? DEFAULT_POLAR_SUBPLOT\n : (trace as PlotData).xaxis ?? DEFAULT_XAXIS;\n }\n if (!groupedTraces[traceKey]) {\n groupedTraces[traceKey] = [];\n }\n groupedTraces[traceKey].push(index);\n });\n }\n\n isMultiPlot.current = Object.keys(groupedTraces).length > 1;\n const gridProperties: GridProperties = getGridProperties(\n plotlyInputWithValidData,\n isMultiPlot.current,\n chart.validTracesInfo!,\n );\n\n // Render only one plot if the grid properties cannot determine positioning of multiple plots.\n if (\n isMultiPlot.current &&\n gridProperties.templateRows === SINGLE_REPEAT &&\n gridProperties.templateColumns === SINGLE_REPEAT\n ) {\n if (chart.type === 'donut') {\n // If there are multiple data traces for donut/pie, picking the last one similar to plotly\n const keys = Object.keys(groupedTraces);\n keys.forEach((key, index) => {\n if (index < keys.length - 1) {\n delete groupedTraces[key];\n }\n });\n } else {\n Object.keys(groupedTraces).forEach((key, index) => {\n if (index > 0) {\n delete groupedTraces[key];\n }\n });\n }\n isMultiPlot.current = false;\n }\n\n const allupLegendsProps = getAllupLegendsProps(\n plotlyInputWithValidData,\n colorMap,\n colorwayType,\n chart.validTracesInfo!,\n isDarkTheme,\n );\n\n type ChartType = keyof ChartTypeMap;\n\n const titleObj = plotlyInputWithValidData.layout?.title;\n const chartTitle = typeof titleObj === 'string' ? titleObj : titleObj?.text ?? '';\n const titleFont = typeof titleObj === 'object' ? titleObj?.font : undefined;\n\n const titleStyle: React.CSSProperties = {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground1,\n textAlign: 'center',\n marginBottom: tokens.spacingVerticalS,\n ...getChartTitleInlineStyles(titleFont),\n };\n\n // map through the grouped traces and render the appropriate chart\n return (\n <>\n {isMultiPlot.current && chartTitle && <div style={titleStyle}>{chartTitle}</div>}\n <div\n style={{\n display: 'grid',\n gridTemplateRows: gridProperties.templateRows,\n gridTemplateColumns: gridProperties.templateColumns,\n }}\n ref={containerRef}\n >\n {Object.entries(groupedTraces).map(([xAxisKey, index], chartIdx) => {\n const plotlyInputForGroup: PlotlySchema = {\n ...plotlyInputWithValidData,\n data: index.map(idx => plotlyInputWithValidData.data[idx]),\n };\n\n const filteredTracesInfo = validTracesFilteredIndex.filter(trace => index.includes(trace.index));\n let chartType =\n chart.type === 'fallback' || chart.type === 'groupedverticalbar'\n ? chart.type\n : filteredTracesInfo[0]?.type ?? chart.type;\n\n if (\n validTracesFilteredIndex.some(trace => trace.type === 'line') &&\n validTracesFilteredIndex.some(trace => trace.type === 'scatter')\n ) {\n chartType = 'line';\n }\n\n const chartEntry = chartMap[chartType as ChartType];\n if (chartEntry) {\n const { transformer, renderer, preTransformCondition, preTransformOperation } = chartEntry;\n if (preTransformCondition === undefined || preTransformCondition(plotlyInputForGroup)) {\n const transformedInput = preTransformOperation\n ? preTransformOperation(plotlyInputForGroup)\n : plotlyInputForGroup;\n const cellProperties = gridProperties.layout[xAxisKey];\n\n const resolvedCommonProps = (\n chartType === 'annotation'\n ? {}\n : {\n ...interactiveCommonProps,\n }\n ) as Partial<ReturnType<typeof transformer>>;\n\n return renderChart<ReturnType<typeof transformer>>(\n renderer,\n transformer,\n [transformedInput, isMultiPlot.current, colorMap, colorwayType, isDarkTheme],\n {\n ...resolvedCommonProps,\n ...(cellProperties?.xAnnotation && { xAxisAnnotation: cellProperties.xAnnotation }),\n ...(cellProperties?.yAnnotation && { yAxisAnnotation: cellProperties.yAnnotation }),\n componentRef: (ref: Chart | null) => {\n chartRefs.current[chartIdx] = {\n compRef: ref,\n row: cellProperties?.row ?? 1,\n col: cellProperties?.column ?? 1,\n };\n },\n },\n cellProperties?.row ?? 1,\n cellProperties?.column ?? 1,\n );\n }\n return <></>;\n } else {\n throw new Error(`Unsupported chart type :${plotlyInputForGroup.data[0]?.type}`);\n }\n })}\n </div>\n {isMultiPlot.current && createLegends(allupLegendsProps)}\n </>\n );\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"],"names":["React","decodeBase64Fields","isArrayOrTypedArray","isMonthArray","mapFluentChart","sanitizeJson","tokens","typographyStyles","ThemeContext_unstable","V9ThemeContext","webLightTheme","d3Color","correctYearMonth","getGridProperties","isNonPlotType","transformPlotlyJsonToDonutProps","transformPlotlyJsonToVSBCProps","transformPlotlyJsonToAreaChartProps","transformPlotlyJsonToLineChartProps","transformPlotlyJsonToHorizontalBarWithAxisProps","transformPlotlyJsonToHeatmapProps","transformPlotlyJsonToSankeyProps","transformPlotlyJsonToGaugeProps","transformPlotlyJsonToGVBCProps","transformPlotlyJsonToVBCProps","transformPlotlyJsonToChartTableProps","transformPlotlyJsonToScatterChartProps","getAllupLegendsProps","NON_PLOT_KEY_PREFIX","SINGLE_REPEAT","transformPlotlyJsonToFunnelChartProps","transformPlotlyJsonToGanttChartProps","transformPlotlyJsonToAnnotationChartProps","transformPlotlyJsonToPolarChartProps","DEFAULT_POLAR_SUBPLOT","getChartTitleInlineStyles","AnnotationOnlyChart","DonutChart","VerticalStackedBarChart","LineChart","HorizontalBarChartWithAxis","AreaChart","HeatMapChart","SankeyChart","GaugeChart","GroupedVerticalBarChart","VerticalBarChart","ScatterChart","FunnelChart","GanttChart","PolarChart","withResponsiveContainer","ChartTable","Legends","resolveCSSVariables","useRtl","exportChartsAsImage","ResponsiveDonutChart","ResponsiveVerticalStackedBarChart","ResponsiveLineChart","ResponsiveHorizontalBarChartWithAxis","ResponsiveAreaChart","ResponsiveHeatMapChart","ResponsiveSankeyChart","ResponsiveGaugeChart","ResponsiveGroupedVerticalBarChart","ResponsiveVerticalBarChart","ResponsiveScatterChart","ResponsiveChartTable","ResponsiveGanttChart","ResponsivePolarChart","DEFAULT_XAXIS","useColorMapping","colorMap","useRef","Map","renderChart","Renderer","transformer","transformerArgs","commonProps","cellRow","cellColumn","chartProps","div","key","style","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","LineAreaPreTransformOp","plotlyInput","xValues","data","x","isXMonth","renderData","map","dataPoint","layout","chartMap","annotation","renderer","donut","sankey","table","horizontalbar","groupedverticalbar","verticalstackedbar","heatmap","gauge","verticalbar","area","preTransformOperation","line","scatter","gantt","funnel","scatterpolar","fallback","useIsDarkTheme","parentV9Theme","useContext","v9Theme","backgroundColor","hsl","colorNeutralBackground1","foregroundColor","colorNeutralForeground1","isDarkTheme","l","DeclarativeChart","forwardRef","colorwayType","props","forwardedRef","plotlyInputWithValidData","plotlySchema","chartSchema","chart","isValid","Error","errorMessage","error","validTracesInfo","trace","index","validTracesFilteredIndex","type","selectedLegends","chartRefs","isMultiPlot","legendsRef","containerRef","isRTL","activeLegends","setActiveLegends","useState","onActiveLegendsChange","keys","onSchemaChange","useEffect","multiSelectLegendProps","canSelectMultipleLegends","onChange","interactiveCommonProps","legendProps","createLegends","legendRef","exportAsImage","useCallback","opts","current","imgExpOpts","background","scale","compRef","toImage","item","container","chartContainer","row","col","toSVG","useImperativeHandle","componentRef","groupedTraces","nonCartesianTraceCount","forEach","traceKey","subplot","xaxis","push","Object","length","gridProperties","templateRows","templateColumns","allupLegendsProps","titleObj","title","chartTitle","text","titleFont","font","undefined","titleStyle","caption1","color","textAlign","marginBottom","spacingVerticalS","display","gridTemplateRows","gridTemplateColumns","ref","entries","xAxisKey","chartIdx","filteredTracesInfo","plotlyInputForGroup","idx","filter","includes","chartType","some","chartEntry","preTransformCondition","transformedInput","cellProperties","resolvedCommonProps","xAnnotation","xAxisAnnotation","yAnnotation","yAxisAnnotation","column","displayName"],"mappings":"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"}
|
|
@@ -34,8 +34,6 @@ _export(exports, {
|
|
|
34
34
|
return resolveColor;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
|
-
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
38
|
-
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
39
37
|
const _d3color = require("d3-color");
|
|
40
38
|
const _chartutilities = require("@fluentui/chart-utilities");
|
|
41
39
|
const _utilities = require("../../utilities/utilities");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/DeclarativeChart/PlotlyColorAdapter.ts"],"sourcesContent":["import * as React from 'react';\nimport { color as d3Color } from 'd3-color';\nimport type { PieColors, Color, PlotData, Layout } from '@fluentui/chart-utilities';\nimport { isArrayOrTypedArray } from '@fluentui/chart-utilities';\nimport { areArraysEqual } from '../../utilities/utilities';\nimport { DataVizPalette, getColorFromToken, getNextColor } from '../../utilities/colors';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\n\ntype PlotlyColorway = 'plotly' | 'd3' | 'others';\n\n// The color sequences in plotly express are defined here:\n// https://plotly.com/python/discrete-color/#:~:text=Join%20now.-,Color%20Sequences%20in%20Plotly%20Express,-By%20default%2C%20Plotly\nexport type ColorwayType = 'default' | 'builtin' | 'others' | undefined;\n\nconst DEFAULT_PLOTLY_COLORWAY = [\n '#636efa', //1\n '#ef553b', //2\n '#00cc96', //3\n '#ab63fa', //4\n '#ffa15a', //5\n '#19d3f3', //6\n '#ff6692', //7\n '#b6e880', //8\n '#ff97ff', //9\n '#fecb52', //10\n];\n\n// Default D3 qualitative colorway (Category10), matching Plotly Express px.colors.qualitative.D3\n// Source: https://plotly.com/python/discrete-color/#:~:text=Join%20now.-,Color%20Sequences%20in%20Plotly%20Express,-By%20default%2C%20Plotly\nexport const DEFAULT_D3_COLORWAY = [\n '#1f77b4', //1\n '#ff7f0e', //2\n '#2ca02c', //3\n '#d62728', //4\n '#9467bd', //5\n '#8c564b', //6\n '#e377c2', //7\n '#7f7f7f', //8\n '#bcbd22', //9\n '#17becf', //10\n];\n\nconst PLOTLY_FLUENTVIZ_COLORWAY_MAPPING = [\n DataVizPalette.color1, //1\n DataVizPalette.warning, //2\n DataVizPalette.color8, //3\n DataVizPalette.color4, //4\n DataVizPalette.color7, //5\n DataVizPalette.color6, //6\n DataVizPalette.color2, //7\n DataVizPalette.color5, //8\n DataVizPalette.color9, //9\n DataVizPalette.color10, //10\n];\n\n// Mapping from D3 Category10 order to Fluent DataViz tokens (light/dark handled via getColorFromToken)\n// D3: [blue, orange, green, red, purple, brown, pink, gray, olive, cyan]\nexport const D3_FLUENTVIZ_COLORWAY_MAPPING: string[] = [\n DataVizPalette.color26, // blue -> lightBlue.shade10\n DataVizPalette.warning, // orange -> semantic warning\n DataVizPalette.color5, // green -> lightGreen.primary\n DataVizPalette.error, // red -> semantic error\n DataVizPalette.color4, // purple -> orchid.tint10\n DataVizPalette.color17, // brown -> pumpkin.shade20\n DataVizPalette.color22, // pink -> hotPink.tint20\n DataVizPalette.disabled, // gray -> semantic disabled\n DataVizPalette.color10, // olive/yellow-green -> gold.shade10\n DataVizPalette.color3, // cyan/teal -> teal.tint20\n];\n\nfunction getPlotlyColorway(colorway: string[] | undefined, isDonut: boolean = false): PlotlyColorway {\n if (!colorway || !isArrayOrTypedArray(colorway)) {\n return 'others';\n }\n const lower = colorway.map(c => c.toLowerCase());\n if (isDonut && areArraysEqual(lower, D3_FLUENTVIZ_COLORWAY_MAPPING)) {\n return 'd3';\n }\n if (areArraysEqual(lower, DEFAULT_PLOTLY_COLORWAY)) {\n return 'plotly';\n }\n return 'others';\n}\n\nfunction tryMapFluentDataViz(\n hexColor: string,\n templateColorway: PlotlyColorway,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string {\n if (templateColorway !== 'plotly') {\n return hexColor;\n }\n let defaultColorway: string[] = DEFAULT_PLOTLY_COLORWAY;\n let defaultMapping: string[] = PLOTLY_FLUENTVIZ_COLORWAY_MAPPING;\n if (isDonut) {\n defaultColorway = templateColorway === 'plotly' ? DEFAULT_PLOTLY_COLORWAY : DEFAULT_D3_COLORWAY;\n defaultMapping = templateColorway === 'plotly' ? PLOTLY_FLUENTVIZ_COLORWAY_MAPPING : D3_FLUENTVIZ_COLORWAY_MAPPING;\n }\n const idx = defaultColorway.indexOf(hexColor.toLowerCase());\n if (idx !== -1) {\n return getColorFromToken(defaultMapping[idx], !!isDarkTheme);\n }\n return hexColor;\n}\n\nexport const getColor = (\n legendLabel: string,\n colorMap: React.RefObject<Map<string, string>>,\n templateColorway: PlotlyColorway,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string => {\n if (!colorMap.current!.has(legendLabel)) {\n let nextColor: string;\n const defaultColorMapping = isDonut\n ? templateColorway === 'plotly'\n ? PLOTLY_FLUENTVIZ_COLORWAY_MAPPING\n : D3_FLUENTVIZ_COLORWAY_MAPPING\n : PLOTLY_FLUENTVIZ_COLORWAY_MAPPING;\n if (colorMap.current!.size < defaultColorMapping.length) {\n // Get first 10 colors from plotly-fluentviz colorway mapping\n nextColor = getColorFromToken(defaultColorMapping[colorMap.current!.size], isDarkTheme);\n } else {\n nextColor = getNextColor(colorMap.current!.size, 0, isDarkTheme);\n }\n colorMap.current!.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current!.get(legendLabel) as string;\n};\n\nexport const getSchemaColors = (\n colorway: string[] | undefined,\n colors: PieColors | Color | Color[] | string | null | undefined,\n colorMap: React.RefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string[] | string | undefined => {\n const hexColors: string[] = [];\n if (!colors) {\n return undefined;\n }\n const templateColorway = getPlotlyColorway(colorway, isDonut);\n if (isArrayOrTypedArray(colors)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (colors as any[]).forEach((element, index) => {\n const colorString = element?.toString().trim();\n const nextFluentColor = getColor(`Label_${index}`, colorMap, templateColorway, isDarkTheme, isDonut);\n if (colorString) {\n const parsedColor = d3Color(colorString);\n hexColors.push(\n parsedColor ? tryMapFluentDataViz(parsedColor.formatHex(), templateColorway, isDarkTheme) : nextFluentColor,\n );\n } else {\n hexColors.push(nextFluentColor);\n }\n });\n } else if (typeof colors === 'string') {\n const parsedColor = d3Color(colors);\n return parsedColor\n ? tryMapFluentDataViz(parsedColor.formatHex(), templateColorway, isDarkTheme)\n : getColor('Label_0', colorMap, templateColorway, isDarkTheme, isDonut);\n }\n return hexColors;\n};\n\nexport const extractColor = (\n colorway: string[] | undefined,\n colorwayType: ColorwayType,\n colors: PieColors | Color | Color[] | string | null | undefined,\n colorMap: React.RefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string | string[] | undefined => {\n return colorwayType === 'default' && colors\n ? getSchemaColors(colorway, colors, colorMap, isDarkTheme, isDonut)\n : undefined;\n};\n\nexport const resolveColor = (\n extractedColors: string[] | string | null | undefined,\n index: number,\n legend: string,\n colorMap: React.RefObject<Map<string, string>>,\n colorway: string[] | undefined,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string => {\n let color = '';\n const templateColorway = getPlotlyColorway(colorway, isDonut);\n if (extractedColors && isArrayOrTypedArray(extractedColors) && extractedColors.length > 0) {\n color = extractedColors[index % extractedColors.length];\n } else if (typeof extractedColors === 'string') {\n color = extractedColors;\n } else {\n color = getColor(legend, colorMap, templateColorway, isDarkTheme, isDonut);\n }\n return color;\n};\n\nexport const getOpacity = (series: Partial<PlotData>, index: number): number => {\n return series.marker?.opacity\n ? isArrayOrTypedArray(series.marker?.opacity)\n ? (series.marker?.opacity as number[])[index % (series.marker?.opacity as number[]).length]\n : (series.marker?.opacity as number)\n : series.opacity ?? 1;\n};\n\nexport const createColorScale = (\n layout: Partial<Layout> | undefined,\n series: Partial<PlotData>,\n currentColorScale: ((value: number) => string) | undefined,\n): ((value: number) => string) | undefined => {\n if (\n layout?.coloraxis?.colorscale?.length &&\n isArrayOrTypedArray(series.marker?.color) &&\n (series.marker?.color as Color[]).length > 0 &&\n typeof (series.marker?.color as Color[])?.[0] === 'number'\n ) {\n const scale = layout?.coloraxis?.colorscale as Array<[number, string]>;\n const colorValues = series.marker?.color as number[];\n const [dMin, dMax] = [\n layout?.coloraxis?.cmin ?? Math.min(...colorValues),\n layout?.coloraxis?.cmax ?? Math.max(...colorValues),\n ];\n\n // Normalize colorscale domain to actual data domain\n const scaleDomain = scale.map(([pos]) => dMin + pos * (dMax - dMin));\n const scaleColors = scale.map(item => item[1]);\n\n return d3ScaleLinear<string>().domain(scaleDomain).range(scaleColors);\n }\n return currentColorScale;\n};\n"],"names":["React","color","d3Color","isArrayOrTypedArray","areArraysEqual","DataVizPalette","getColorFromToken","getNextColor","scaleLinear","d3ScaleLinear","DEFAULT_PLOTLY_COLORWAY","DEFAULT_D3_COLORWAY","PLOTLY_FLUENTVIZ_COLORWAY_MAPPING","color1","warning","color8","color4","color7","color6","color2","color5","color9","color10","D3_FLUENTVIZ_COLORWAY_MAPPING","color26","error","color17","color22","disabled","color3","getPlotlyColorway","colorway","isDonut","lower","map","c","toLowerCase","tryMapFluentDataViz","hexColor","templateColorway","isDarkTheme","defaultColorway","defaultMapping","idx","indexOf","getColor","legendLabel","colorMap","current","has","nextColor","defaultColorMapping","size","length","set","get","getSchemaColors","colors","hexColors","undefined","forEach","element","index","colorString","toString","trim","nextFluentColor","parsedColor","push","formatHex","extractColor","colorwayType","resolveColor","extractedColors","legend","getOpacity","series","marker","opacity","createColorScale","layout","currentColorScale","coloraxis","colorscale","scale","colorValues","dMin","dMax","cmin","Math","min","cmax","max","scaleDomain","pos","scaleColors","item","domain","range"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/components/DeclarativeChart/PlotlyColorAdapter.ts"],"sourcesContent":["import type * as React from 'react';\nimport { color as d3Color } from 'd3-color';\nimport type { PieColors, Color, PlotData, Layout } from '@fluentui/chart-utilities';\nimport { isArrayOrTypedArray } from '@fluentui/chart-utilities';\nimport { areArraysEqual } from '../../utilities/utilities';\nimport { DataVizPalette, getColorFromToken, getNextColor } from '../../utilities/colors';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\n\ntype PlotlyColorway = 'plotly' | 'd3' | 'others';\n\n// The color sequences in plotly express are defined here:\n// https://plotly.com/python/discrete-color/#:~:text=Join%20now.-,Color%20Sequences%20in%20Plotly%20Express,-By%20default%2C%20Plotly\nexport type ColorwayType = 'default' | 'builtin' | 'others' | undefined;\n\nconst DEFAULT_PLOTLY_COLORWAY = [\n '#636efa', //1\n '#ef553b', //2\n '#00cc96', //3\n '#ab63fa', //4\n '#ffa15a', //5\n '#19d3f3', //6\n '#ff6692', //7\n '#b6e880', //8\n '#ff97ff', //9\n '#fecb52', //10\n];\n\n// Default D3 qualitative colorway (Category10), matching Plotly Express px.colors.qualitative.D3\n// Source: https://plotly.com/python/discrete-color/#:~:text=Join%20now.-,Color%20Sequences%20in%20Plotly%20Express,-By%20default%2C%20Plotly\nexport const DEFAULT_D3_COLORWAY = [\n '#1f77b4', //1\n '#ff7f0e', //2\n '#2ca02c', //3\n '#d62728', //4\n '#9467bd', //5\n '#8c564b', //6\n '#e377c2', //7\n '#7f7f7f', //8\n '#bcbd22', //9\n '#17becf', //10\n];\n\nconst PLOTLY_FLUENTVIZ_COLORWAY_MAPPING = [\n DataVizPalette.color1, //1\n DataVizPalette.warning, //2\n DataVizPalette.color8, //3\n DataVizPalette.color4, //4\n DataVizPalette.color7, //5\n DataVizPalette.color6, //6\n DataVizPalette.color2, //7\n DataVizPalette.color5, //8\n DataVizPalette.color9, //9\n DataVizPalette.color10, //10\n];\n\n// Mapping from D3 Category10 order to Fluent DataViz tokens (light/dark handled via getColorFromToken)\n// D3: [blue, orange, green, red, purple, brown, pink, gray, olive, cyan]\nexport const D3_FLUENTVIZ_COLORWAY_MAPPING: string[] = [\n DataVizPalette.color26, // blue -> lightBlue.shade10\n DataVizPalette.warning, // orange -> semantic warning\n DataVizPalette.color5, // green -> lightGreen.primary\n DataVizPalette.error, // red -> semantic error\n DataVizPalette.color4, // purple -> orchid.tint10\n DataVizPalette.color17, // brown -> pumpkin.shade20\n DataVizPalette.color22, // pink -> hotPink.tint20\n DataVizPalette.disabled, // gray -> semantic disabled\n DataVizPalette.color10, // olive/yellow-green -> gold.shade10\n DataVizPalette.color3, // cyan/teal -> teal.tint20\n];\n\nfunction getPlotlyColorway(colorway: string[] | undefined, isDonut: boolean = false): PlotlyColorway {\n if (!colorway || !isArrayOrTypedArray(colorway)) {\n return 'others';\n }\n const lower = colorway.map(c => c.toLowerCase());\n if (isDonut && areArraysEqual(lower, D3_FLUENTVIZ_COLORWAY_MAPPING)) {\n return 'd3';\n }\n if (areArraysEqual(lower, DEFAULT_PLOTLY_COLORWAY)) {\n return 'plotly';\n }\n return 'others';\n}\n\nfunction tryMapFluentDataViz(\n hexColor: string,\n templateColorway: PlotlyColorway,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string {\n if (templateColorway !== 'plotly') {\n return hexColor;\n }\n let defaultColorway: string[] = DEFAULT_PLOTLY_COLORWAY;\n let defaultMapping: string[] = PLOTLY_FLUENTVIZ_COLORWAY_MAPPING;\n if (isDonut) {\n defaultColorway = templateColorway === 'plotly' ? DEFAULT_PLOTLY_COLORWAY : DEFAULT_D3_COLORWAY;\n defaultMapping = templateColorway === 'plotly' ? PLOTLY_FLUENTVIZ_COLORWAY_MAPPING : D3_FLUENTVIZ_COLORWAY_MAPPING;\n }\n const idx = defaultColorway.indexOf(hexColor.toLowerCase());\n if (idx !== -1) {\n return getColorFromToken(defaultMapping[idx], !!isDarkTheme);\n }\n return hexColor;\n}\n\nexport const getColor = (\n legendLabel: string,\n colorMap: React.RefObject<Map<string, string>>,\n templateColorway: PlotlyColorway,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string => {\n if (!colorMap.current!.has(legendLabel)) {\n let nextColor: string;\n const defaultColorMapping = isDonut\n ? templateColorway === 'plotly'\n ? PLOTLY_FLUENTVIZ_COLORWAY_MAPPING\n : D3_FLUENTVIZ_COLORWAY_MAPPING\n : PLOTLY_FLUENTVIZ_COLORWAY_MAPPING;\n if (colorMap.current!.size < defaultColorMapping.length) {\n // Get first 10 colors from plotly-fluentviz colorway mapping\n nextColor = getColorFromToken(defaultColorMapping[colorMap.current!.size], isDarkTheme);\n } else {\n nextColor = getNextColor(colorMap.current!.size, 0, isDarkTheme);\n }\n colorMap.current!.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current!.get(legendLabel) as string;\n};\n\nexport const getSchemaColors = (\n colorway: string[] | undefined,\n colors: PieColors | Color | Color[] | string | null | undefined,\n colorMap: React.RefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string[] | string | undefined => {\n const hexColors: string[] = [];\n if (!colors) {\n return undefined;\n }\n const templateColorway = getPlotlyColorway(colorway, isDonut);\n if (isArrayOrTypedArray(colors)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (colors as any[]).forEach((element, index) => {\n const colorString = element?.toString().trim();\n const nextFluentColor = getColor(`Label_${index}`, colorMap, templateColorway, isDarkTheme, isDonut);\n if (colorString) {\n const parsedColor = d3Color(colorString);\n hexColors.push(\n parsedColor ? tryMapFluentDataViz(parsedColor.formatHex(), templateColorway, isDarkTheme) : nextFluentColor,\n );\n } else {\n hexColors.push(nextFluentColor);\n }\n });\n } else if (typeof colors === 'string') {\n const parsedColor = d3Color(colors);\n return parsedColor\n ? tryMapFluentDataViz(parsedColor.formatHex(), templateColorway, isDarkTheme)\n : getColor('Label_0', colorMap, templateColorway, isDarkTheme, isDonut);\n }\n return hexColors;\n};\n\nexport const extractColor = (\n colorway: string[] | undefined,\n colorwayType: ColorwayType,\n colors: PieColors | Color | Color[] | string | null | undefined,\n colorMap: React.RefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string | string[] | undefined => {\n return colorwayType === 'default' && colors\n ? getSchemaColors(colorway, colors, colorMap, isDarkTheme, isDonut)\n : undefined;\n};\n\nexport const resolveColor = (\n extractedColors: string[] | string | null | undefined,\n index: number,\n legend: string,\n colorMap: React.RefObject<Map<string, string>>,\n colorway: string[] | undefined,\n isDarkTheme?: boolean,\n isDonut?: boolean,\n): string => {\n let color = '';\n const templateColorway = getPlotlyColorway(colorway, isDonut);\n if (extractedColors && isArrayOrTypedArray(extractedColors) && extractedColors.length > 0) {\n color = extractedColors[index % extractedColors.length];\n } else if (typeof extractedColors === 'string') {\n color = extractedColors;\n } else {\n color = getColor(legend, colorMap, templateColorway, isDarkTheme, isDonut);\n }\n return color;\n};\n\nexport const getOpacity = (series: Partial<PlotData>, index: number): number => {\n return series.marker?.opacity\n ? isArrayOrTypedArray(series.marker?.opacity)\n ? (series.marker?.opacity as number[])[index % (series.marker?.opacity as number[]).length]\n : (series.marker?.opacity as number)\n : series.opacity ?? 1;\n};\n\nexport const createColorScale = (\n layout: Partial<Layout> | undefined,\n series: Partial<PlotData>,\n currentColorScale: ((value: number) => string) | undefined,\n): ((value: number) => string) | undefined => {\n if (\n layout?.coloraxis?.colorscale?.length &&\n isArrayOrTypedArray(series.marker?.color) &&\n (series.marker?.color as Color[]).length > 0 &&\n typeof (series.marker?.color as Color[])?.[0] === 'number'\n ) {\n const scale = layout?.coloraxis?.colorscale as Array<[number, string]>;\n const colorValues = series.marker?.color as number[];\n const [dMin, dMax] = [\n layout?.coloraxis?.cmin ?? Math.min(...colorValues),\n layout?.coloraxis?.cmax ?? Math.max(...colorValues),\n ];\n\n // Normalize colorscale domain to actual data domain\n const scaleDomain = scale.map(([pos]) => dMin + pos * (dMax - dMin));\n const scaleColors = scale.map(item => item[1]);\n\n return d3ScaleLinear<string>().domain(scaleDomain).range(scaleColors);\n }\n return currentColorScale;\n};\n"],"names":["color","d3Color","isArrayOrTypedArray","areArraysEqual","DataVizPalette","getColorFromToken","getNextColor","scaleLinear","d3ScaleLinear","DEFAULT_PLOTLY_COLORWAY","DEFAULT_D3_COLORWAY","PLOTLY_FLUENTVIZ_COLORWAY_MAPPING","color1","warning","color8","color4","color7","color6","color2","color5","color9","color10","D3_FLUENTVIZ_COLORWAY_MAPPING","color26","error","color17","color22","disabled","color3","getPlotlyColorway","colorway","isDonut","lower","map","c","toLowerCase","tryMapFluentDataViz","hexColor","templateColorway","isDarkTheme","defaultColorway","defaultMapping","idx","indexOf","getColor","legendLabel","colorMap","current","has","nextColor","defaultColorMapping","size","length","set","get","getSchemaColors","colors","hexColors","undefined","forEach","element","index","colorString","toString","trim","nextFluentColor","parsedColor","push","formatHex","extractColor","colorwayType","resolveColor","extractedColors","legend","getOpacity","series","marker","opacity","createColorScale","layout","currentColorScale","coloraxis","colorscale","scale","colorValues","dMin","dMax","cmin","Math","min","cmax","max","scaleDomain","pos","scaleColors","item","domain","range"],"mappings":"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"}
|
|
@@ -98,8 +98,6 @@ _export(exports, {
|
|
|
98
98
|
return transformPlotlyJsonToVSBCProps;
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
|
-
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
102
|
-
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
103
101
|
const _d3array = require("d3-array");
|
|
104
102
|
const _d3scale = require("d3-scale");
|
|
105
103
|
const _d3format = require("d3-format");
|