@fluentui/react-charts 9.0.6 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -2
- package/dist/index.d.ts +12 -0
- package/lib/components/AreaChart/useAreaChartStyles.styles.js +2 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.js +7 -4
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +16 -4
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +2 -2
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +0 -9
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +18 -17
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +2 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +2 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +2 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib/components/LineChart/LineChart.js +14 -11
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/LineChart.types.js.map +1 -1
- package/lib/components/LineChart/useLineChartStyles.styles.js +14 -3
- package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.js +1 -1
- package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js +2 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib/components/Sparkline/useSparklineStyles.styles.js +2 -12
- package/lib/components/Sparkline/useSparklineStyles.styles.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.js +1 -1
- 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.js +14 -3
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +2 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib/utilities/SVGTooltipText.js +6 -13
- package/lib/utilities/SVGTooltipText.js.map +1 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +2 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +7 -4
- package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +25 -3
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +0 -12
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +18 -17
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +2 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +2 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +2 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js +14 -11
- 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/useLineChartStyles.styles.js +19 -3
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +2 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js +3 -24
- package/lib-commonjs/components/Sparkline/useSparklineStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +1 -1
- 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.js +19 -3
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +2 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/utilities/SVGTooltipText.js +6 -13
- package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DeclarativeChart.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport * as React from 'react';\nimport type { Data, PlotData, PlotlySchema, OutputChartType } from '@fluentui/chart-utilities';\nimport {\n decodeBase64Fields,\n isArrayOrTypedArray,\n isDateArray,\n isNumberArray,\n isYearArray,\n mapFluentChart,\n sanitizeJson,\n} from '@fluentui/chart-utilities';\nimport { tokens } 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 isMonthArray,\n correctYearMonth,\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n} from './PlotlySchemaAdapter';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport { LineChart, LineChartProps } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart, AreaChartProps } 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 { ImageExportOptions, toImage } from './imageExporter';\nimport { Chart } from '../../types/index';\nimport { ScatterChart } from '../ScatterChart/index';\n// TODO\n// import { withResponsiveContainer } from '../ResponsiveContainer/withResponsiveContainer';\n\n// const ResponsiveDonutChart = withResponsiveContainer(DonutChart);\n// const ResponsiveVerticalStackedBarChart = withResponsiveContainer(VerticalStackedBarChart);\n// const ResponsiveLineChart = withResponsiveContainer(LineChart);\n// const ResponsiveHorizontalBarChartWithAxis = withResponsiveContainer(HorizontalBarChartWithAxis);\n// const ResponsiveAreaChart = withResponsiveContainer(AreaChart);\n// const ResponsiveHeatMapChart = withResponsiveContainer(HeatMapChart);\n// const ResponsiveSankeyChart = withResponsiveContainer(SankeyChart);\n// const ResponsiveGaugeChart = withResponsiveContainer(GaugeChart);\n// const ResponsiveGroupedVerticalBarChart = withResponsiveContainer(GroupedVerticalBarChart);\n// const ResponsiveVerticalBarChart = withResponsiveContainer(VerticalBarChart);\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.RefObject<IDeclarativeChart>;\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\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>((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[0]]),\n };\n\n let { selectedLegends } = plotlySchema;\n const colorMap = useColorMapping();\n const isDarkTheme = useIsDarkTheme();\n const chartRef = React.useRef<Chart>(null);\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 commonProps = {\n legendProps: multiSelectLegendProps,\n componentRef: chartRef,\n };\n\n const renderLineAreaScatter = (plotlyData: Data[], isAreaChart: boolean): JSX.Element => {\n const isScatterMarkers = (plotlyData[0] as PlotData)?.mode === 'markers';\n const chartProps: LineChartProps | AreaChartProps = {\n ...transformPlotlyJsonToScatterChartProps(\n { data: plotlyData, layout: plotlyInput.layout },\n isAreaChart,\n colorMap,\n isDarkTheme,\n ),\n ...commonProps,\n };\n if (isAreaChart) {\n return <AreaChart {...chartProps} />;\n }\n if (isScatterMarkers) {\n return <ScatterChart {...chartProps} />;\n }\n return <LineChart {...chartProps} />;\n };\n\n const checkAndRenderChart = (isAreaChart: boolean = false) => {\n let fallbackVSBC = false;\n const xValues = (plotlyInputWithValidData.data[0] as PlotData).x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const isXMonth = isMonthArray(xValues);\n\n // Consider year as categorical variable not numeric continuous variable\n // Also year is not considered a date variable as it is represented as a point\n // in time and brings additional complexity of handling timezone and locale\n // formatting given the current design of the charting library\n const isXYear = isYearArray(xValues);\n\n if ((isXDate || isXNumber) && !isXYear) {\n return renderLineAreaScatter(plotlyInputWithValidData.data, isAreaChart);\n } else if (isXMonth) {\n const updatedData = plotlyInputWithValidData.data.map((dataPoint: PlotData) => ({\n ...dataPoint,\n x: correctYearMonth(dataPoint.x),\n }));\n return renderLineAreaScatter(updatedData, isAreaChart);\n }\n // Unsupported schema, render as VerticalStackedBarChart\n fallbackVSBC = true;\n return (\n <VerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlyInputWithValidData, colorMap, isDarkTheme, fallbackVSBC)}\n {...commonProps}\n />\n );\n };\n\n // TODO\n const exportAsImage = React.useCallback((opts?: ImageExportOptions) => {\n return toImage(chartRef.current?.chartContainer, {\n background: tokens.colorNeutralBackground1,\n scale: 5,\n ...opts,\n });\n }, []);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n exportAsImage,\n }),\n [exportAsImage],\n );\n\n switch (chart.type) {\n case 'donut':\n return (\n <DonutChart\n {...transformPlotlyJsonToDonutProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'horizontalbar':\n return (\n <HorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'groupedverticalbar':\n return (\n <GroupedVerticalBarChart\n {...transformPlotlyJsonToGVBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'verticalstackedbar':\n return (\n <VerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'heatmap':\n return (\n <HeatMapChart\n {...transformPlotlyJsonToHeatmapProps(plotlyInputWithValidData)}\n {...commonProps}\n legendProps={{}}\n />\n );\n case 'sankey':\n return (\n <SankeyChart\n {...transformPlotlyJsonToSankeyProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'gauge':\n return (\n <GaugeChart\n {...transformPlotlyJsonToGaugeProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'verticalbar':\n return (\n <VerticalBarChart\n {...transformPlotlyJsonToVBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n // TODO: Add 'scatter' as a separate chart type\n case 'area':\n case 'line':\n case 'fallback':\n // Need recheck for area chart as we don't have ability to check for valid months in previous step\n const isAreaChart = plotlyInputWithValidData.data.some(\n (series: PlotData) => series.fill === 'tonexty' || series.fill === 'tozeroy' || !!series.stackgroup,\n );\n return checkAndRenderChart(isAreaChart);\n default:\n throw new Error(`Unsupported chart type :${plotlyInputWithValidData.data[0]?.type}`);\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"],"names":["DeclarativeChart","useColorMapping","colorMap","React","useRef","Map","useIsDarkTheme","parentV9Theme","useContext","V9ThemeContext","v9Theme","webLightTheme","backgroundColor","d3Color","hsl","colorNeutralBackground1","foregroundColor","colorNeutralForeground1","isDarkTheme","l","forwardRef","props","forwardedRef","plotlySchema","sanitizeJson","chartSchema","chart","mapFluentChart","isValid","Error","errorMessage","plotlyInput","decodeBase64Fields","error","plotlyInputWithValidData","data","validTracesInfo","map","trace","selectedLegends","chartRef","isArrayOrTypedArray","activeLegends","setActiveLegends","useState","onActiveLegendsChange","keys","onSchemaChange","useEffect","multiSelectLegendProps","canSelectMultipleLegends","onChange","commonProps","legendProps","componentRef","renderLineAreaScatter","plotlyData","isAreaChart","isScatterMarkers","_plotlyData_","mode","chartProps","transformPlotlyJsonToScatterChartProps","layout","createElement","AreaChart","ScatterChart","LineChart","checkAndRenderChart","fallbackVSBC","xValues","x","isXDate","isDateArray","isXNumber","isNumberArray","isXMonth","isMonthArray","isXYear","isYearArray","updatedData","dataPoint","correctYearMonth","VerticalStackedBarChart","transformPlotlyJsonToVSBCProps","exportAsImage","useCallback","opts","toImage","current","chartContainer","background","tokens","scale","useImperativeHandle","type","DonutChart","transformPlotlyJsonToDonutProps","HorizontalBarChartWithAxis","transformPlotlyJsonToHorizontalBarWithAxisProps","GroupedVerticalBarChart","transformPlotlyJsonToGVBCProps","HeatMapChart","transformPlotlyJsonToHeatmapProps","SankeyChart","transformPlotlyJsonToSankeyProps","GaugeChart","transformPlotlyJsonToGaugeProps","VerticalBarChart","transformPlotlyJsonToVBCProps","some","series","fill","stackgroup","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["DeclarativeChart.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport * as React from 'react';\nimport type { Data, PlotData, PlotlySchema, OutputChartType } from '@fluentui/chart-utilities';\nimport {\n decodeBase64Fields,\n isArrayOrTypedArray,\n isDateArray,\n isMonthArray,\n isNumberArray,\n isYearArray,\n mapFluentChart,\n sanitizeJson,\n} from '@fluentui/chart-utilities';\nimport { tokens } 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 transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n} from './PlotlySchemaAdapter';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport { LineChart, LineChartProps } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart, AreaChartProps } 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 { ImageExportOptions, toImage } from './imageExporter';\nimport { Chart } from '../../types/index';\nimport { ScatterChart } from '../ScatterChart/index';\n// TODO\n// import { withResponsiveContainer } from '../ResponsiveContainer/withResponsiveContainer';\n\n// const ResponsiveDonutChart = withResponsiveContainer(DonutChart);\n// const ResponsiveVerticalStackedBarChart = withResponsiveContainer(VerticalStackedBarChart);\n// const ResponsiveLineChart = withResponsiveContainer(LineChart);\n// const ResponsiveHorizontalBarChartWithAxis = withResponsiveContainer(HorizontalBarChartWithAxis);\n// const ResponsiveAreaChart = withResponsiveContainer(AreaChart);\n// const ResponsiveHeatMapChart = withResponsiveContainer(HeatMapChart);\n// const ResponsiveSankeyChart = withResponsiveContainer(SankeyChart);\n// const ResponsiveGaugeChart = withResponsiveContainer(GaugeChart);\n// const ResponsiveGroupedVerticalBarChart = withResponsiveContainer(GroupedVerticalBarChart);\n// const ResponsiveVerticalBarChart = withResponsiveContainer(VerticalBarChart);\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.RefObject<IDeclarativeChart>;\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\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>((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[0]]),\n };\n\n let { selectedLegends } = plotlySchema;\n const colorMap = useColorMapping();\n const isDarkTheme = useIsDarkTheme();\n const chartRef = React.useRef<Chart>(null);\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 commonProps = {\n legendProps: multiSelectLegendProps,\n componentRef: chartRef,\n };\n\n const renderLineAreaScatter = (plotlyData: Data[], isAreaChart: boolean): JSX.Element => {\n const isScatterMarkers = (plotlyData[0] as PlotData)?.mode === 'markers';\n const chartProps: LineChartProps | AreaChartProps = {\n ...transformPlotlyJsonToScatterChartProps(\n { data: plotlyData, layout: plotlyInput.layout },\n isAreaChart,\n colorMap,\n isDarkTheme,\n ),\n ...commonProps,\n };\n if (isAreaChart) {\n return <AreaChart {...chartProps} />;\n }\n if (isScatterMarkers) {\n return <ScatterChart {...chartProps} />;\n }\n return <LineChart {...chartProps} />;\n };\n\n const checkAndRenderChart = (isAreaChart: boolean = false) => {\n let fallbackVSBC = false;\n const xValues = (plotlyInputWithValidData.data[0] as PlotData).x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const isXMonth = isMonthArray(xValues);\n\n // Consider year as categorical variable not numeric continuous variable\n // Also year is not considered a date variable as it is represented as a point\n // in time and brings additional complexity of handling timezone and locale\n // formatting given the current design of the charting library\n const isXYear = isYearArray(xValues);\n\n if ((isXDate || isXNumber) && !isXYear) {\n return renderLineAreaScatter(plotlyInputWithValidData.data, isAreaChart);\n } else if (isXMonth) {\n const updatedData = plotlyInputWithValidData.data.map((dataPoint: PlotData) => ({\n ...dataPoint,\n x: correctYearMonth(dataPoint.x),\n }));\n return renderLineAreaScatter(updatedData, isAreaChart);\n }\n // Unsupported schema, render as VerticalStackedBarChart\n fallbackVSBC = true;\n return (\n <VerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlyInputWithValidData, colorMap, isDarkTheme, fallbackVSBC)}\n {...commonProps}\n />\n );\n };\n\n // TODO\n const exportAsImage = React.useCallback((opts?: ImageExportOptions) => {\n return toImage(chartRef.current?.chartContainer, {\n background: tokens.colorNeutralBackground1,\n scale: 5,\n ...opts,\n });\n }, []);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n exportAsImage,\n }),\n [exportAsImage],\n );\n\n switch (chart.type) {\n case 'donut':\n return (\n <DonutChart\n {...transformPlotlyJsonToDonutProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'horizontalbar':\n return (\n <HorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'groupedverticalbar':\n return (\n <GroupedVerticalBarChart\n {...transformPlotlyJsonToGVBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'verticalstackedbar':\n return (\n <VerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'heatmap':\n return (\n <HeatMapChart\n {...transformPlotlyJsonToHeatmapProps(plotlyInputWithValidData)}\n {...commonProps}\n legendProps={{}}\n />\n );\n case 'sankey':\n return (\n <SankeyChart\n {...transformPlotlyJsonToSankeyProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'gauge':\n return (\n <GaugeChart\n {...transformPlotlyJsonToGaugeProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'verticalbar':\n return (\n <VerticalBarChart\n {...transformPlotlyJsonToVBCProps(plotlyInputWithValidData, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n // TODO: Add 'scatter' as a separate chart type\n case 'area':\n case 'line':\n case 'fallback':\n // Need recheck for area chart as we don't have ability to check for valid months in previous step\n const isAreaChart = plotlyInputWithValidData.data.some(\n (series: PlotData) => series.fill === 'tonexty' || series.fill === 'tozeroy' || !!series.stackgroup,\n );\n return checkAndRenderChart(isAreaChart);\n default:\n throw new Error(`Unsupported chart type :${plotlyInputWithValidData.data[0]?.type}`);\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"],"names":["DeclarativeChart","useColorMapping","colorMap","React","useRef","Map","useIsDarkTheme","parentV9Theme","useContext","V9ThemeContext","v9Theme","webLightTheme","backgroundColor","d3Color","hsl","colorNeutralBackground1","foregroundColor","colorNeutralForeground1","isDarkTheme","l","forwardRef","props","forwardedRef","plotlySchema","sanitizeJson","chartSchema","chart","mapFluentChart","isValid","Error","errorMessage","plotlyInput","decodeBase64Fields","error","plotlyInputWithValidData","data","validTracesInfo","map","trace","selectedLegends","chartRef","isArrayOrTypedArray","activeLegends","setActiveLegends","useState","onActiveLegendsChange","keys","onSchemaChange","useEffect","multiSelectLegendProps","canSelectMultipleLegends","onChange","commonProps","legendProps","componentRef","renderLineAreaScatter","plotlyData","isAreaChart","isScatterMarkers","_plotlyData_","mode","chartProps","transformPlotlyJsonToScatterChartProps","layout","createElement","AreaChart","ScatterChart","LineChart","checkAndRenderChart","fallbackVSBC","xValues","x","isXDate","isDateArray","isXNumber","isNumberArray","isXMonth","isMonthArray","isXYear","isYearArray","updatedData","dataPoint","correctYearMonth","VerticalStackedBarChart","transformPlotlyJsonToVSBCProps","exportAsImage","useCallback","opts","toImage","current","chartContainer","background","tokens","scale","useImperativeHandle","type","DonutChart","transformPlotlyJsonToDonutProps","HorizontalBarChartWithAxis","transformPlotlyJsonToHorizontalBarWithAxisProps","GroupedVerticalBarChart","transformPlotlyJsonToGVBCProps","HeatMapChart","transformPlotlyJsonToHeatmapProps","SankeyChart","transformPlotlyJsonToSankeyProps","GaugeChart","transformPlotlyJsonToGaugeProps","VerticalBarChart","transformPlotlyJsonToVBCProps","some","series","fill","stackgroup","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -18,9 +18,6 @@ _export(exports, {
|
|
|
18
18
|
getColor: function() {
|
|
19
19
|
return getColor;
|
|
20
20
|
},
|
|
21
|
-
isMonthArray: function() {
|
|
22
|
-
return isMonthArray;
|
|
23
|
-
},
|
|
24
21
|
transformPlotlyJsonToDonutProps: function() {
|
|
25
22
|
return transformPlotlyJsonToDonutProps;
|
|
26
23
|
},
|
|
@@ -56,7 +53,6 @@ const _d3scale = require("d3-scale");
|
|
|
56
53
|
const _colors = require("../../utilities/colors");
|
|
57
54
|
const _utilities = require("../../utilities/utilities");
|
|
58
55
|
const _chartutilities = require("@fluentui/chart-utilities");
|
|
59
|
-
const _d3timeformat = require("d3-time-format");
|
|
60
56
|
const _d3shape = require("d3-shape");
|
|
61
57
|
const dashOptions = {
|
|
62
58
|
dot: {
|
|
@@ -96,14 +92,6 @@ const dashOptions = {
|
|
|
96
92
|
lineBorderWidth: '4'
|
|
97
93
|
}
|
|
98
94
|
};
|
|
99
|
-
const isMonth = (possiblyMonthValue)=>{
|
|
100
|
-
const parseFullMonth = (0, _d3timeformat.timeParse)('%B');
|
|
101
|
-
const parseShortMonth = (0, _d3timeformat.timeParse)('%b');
|
|
102
|
-
return parseFullMonth(possiblyMonthValue) !== null || parseShortMonth(possiblyMonthValue) !== null;
|
|
103
|
-
};
|
|
104
|
-
const isMonthArray = (data)=>{
|
|
105
|
-
return (0, _chartutilities.isArrayOfType)(data, isMonth);
|
|
106
|
-
};
|
|
107
95
|
const getLegend = (series, index)=>{
|
|
108
96
|
return series.name || `Series ${index + 1}`;
|
|
109
97
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PlotlySchemaAdapter.ts"],"sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport {\n bin as d3Bin,\n extent as d3Extent,\n sum as d3Sum,\n min as d3Min,\n max as d3Max,\n range as d3Range,\n Bin,\n} from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { DonutChartProps } from '../DonutChart/index';\nimport {\n ChartDataPoint,\n ChartProps,\n HorizontalBarChartWithAxisDataPoint,\n LineChartPoints,\n VerticalStackedChartProps,\n HeatMapChartData,\n HeatMapChartDataPoint,\n GroupedVerticalBarChartData,\n VerticalBarChartDataPoint,\n SankeyChartData,\n LineChartLineOptions,\n} from '../../types/DataPoint';\nimport { SankeyChartProps } from '../SankeyChart/index';\nimport { VerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { HorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { LineChartProps } from '../LineChart/index';\nimport { AreaChartProps } from '../AreaChart/index';\nimport { HeatMapChartProps } from '../HeatMapChart/index';\nimport { DataVizPalette, getColorFromToken, getNextColor } from '../../utilities/colors';\nimport { GaugeChartProps, GaugeChartSegment } from '../GaugeChart/index';\nimport { GroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChartProps } from '../VerticalBarChart/index';\nimport { findNumericMinMaxOfY } from '../../utilities/utilities';\nimport type {\n Datum,\n Layout,\n PlotlySchema,\n PieData,\n PlotData,\n SankeyData,\n ScatterLine,\n TypedArray,\n} from '@fluentui/chart-utilities';\nimport {\n isArrayOfType,\n isArrayOrTypedArray,\n isDate,\n isDateArray,\n isNumberArray,\n isYearArray,\n} from '@fluentui/chart-utilities';\nimport { timeParse } from 'd3-time-format';\nimport { curveCardinal as d3CurveCardinal } from 'd3-shape';\n\ninterface SecondaryYAxisValues {\n secondaryYAxistitle?: string;\n secondaryYScaleOptions?: { yMinValue?: number; yMaxValue?: number };\n}\n\nconst dashOptions = {\n dot: {\n strokeDasharray: '1, 5',\n strokeLinecap: 'round',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dash: {\n strokeDasharray: '5, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdash: {\n strokeDasharray: '10, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dashdot: {\n strokeDasharray: '5, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdashdot: {\n strokeDasharray: '10, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n solid: {\n strokeDasharray: '0',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n} as const;\n\nconst isMonth = (possiblyMonthValue: any): boolean => {\n const parseFullMonth = timeParse('%B');\n const parseShortMonth = timeParse('%b');\n return parseFullMonth(possiblyMonthValue) !== null || parseShortMonth(possiblyMonthValue) !== null;\n};\n\nexport const isMonthArray = (data: Datum[] | Datum[][] | TypedArray): boolean => {\n return isArrayOfType(data, isMonth);\n};\n\nconst getLegend = (series: Partial<PlotData>, index: number): string => {\n return series.name || `Series ${index + 1}`;\n};\n\nfunction getTitles(layout: Partial<Layout> | undefined) {\n const titles = {\n chartTitle: typeof layout?.title === 'string' ? layout.title : layout?.title?.text ?? '',\n xAxisTitle: typeof layout?.xaxis?.title === 'string' ? layout?.xaxis?.title : layout?.xaxis?.title?.text ?? '',\n yAxisTitle: typeof layout?.yaxis?.title === 'string' ? layout?.yaxis?.title : layout?.yaxis?.title?.text ?? '',\n };\n return titles;\n}\n\nexport const correctYearMonth = (xValues: Datum[] | Datum[][] | TypedArray): any[] => {\n const presentYear = new Date().getFullYear();\n if (xValues.length > 0 && Array.isArray(xValues[0])) {\n throw new Error('updateXValues:: 2D array not supported');\n }\n const dates = (xValues as Datum[]).map(possiblyMonthValue => {\n const parsedDate = `${possiblyMonthValue} 01, ${presentYear}`;\n return isDate(parsedDate) ? new Date(parsedDate) : null;\n });\n for (let i = dates.length - 1; i > 0; i--) {\n const currentMonth = dates[i]!.getMonth();\n const previousMonth = dates[i - 1]!.getMonth();\n const currentYear = dates[i]!.getFullYear();\n const previousYear = dates[i - 1]!.getFullYear();\n if (previousMonth >= currentMonth) {\n dates[i - 1]!.setFullYear(dates[i]!.getFullYear() - 1);\n } else if (previousYear > currentYear) {\n dates[i - 1]!.setFullYear(currentYear);\n }\n }\n xValues = (xValues as Datum[]).map((month, index) => {\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\n\nexport const getColor = (\n legendLabel: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1, 0, isDarkTheme);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nconst getSecondaryYAxisValues = (series: PlotData, layout: Partial<Layout> | undefined) => {\n const secondaryYAxisValues: SecondaryYAxisValues = {};\n if (layout && layout.yaxis2 && series.yaxis === 'y2') {\n secondaryYAxisValues.secondaryYAxistitle =\n typeof layout.yaxis2.title === 'string'\n ? layout.yaxis2.title\n : typeof layout.yaxis2.title?.text === 'string'\n ? layout.yaxis2.title.text\n : '';\n if (layout.yaxis2.range) {\n secondaryYAxisValues.secondaryYScaleOptions = {\n yMinValue: layout.yaxis2.range[0],\n yMaxValue: layout.yaxis2.range[1],\n };\n } else {\n const yValues = series.y as number[];\n if (yValues) {\n secondaryYAxisValues.secondaryYScaleOptions = {\n yMinValue: Math.min(...yValues),\n yMaxValue: Math.max(...yValues),\n };\n }\n }\n }\n secondaryYAxisValues.secondaryYAxistitle =\n secondaryYAxisValues.secondaryYAxistitle !== '' ? secondaryYAxisValues.secondaryYAxistitle : undefined;\n secondaryYAxisValues.secondaryYScaleOptions =\n secondaryYAxisValues.secondaryYScaleOptions && Object.keys(secondaryYAxisValues.secondaryYScaleOptions).length !== 0\n ? secondaryYAxisValues.secondaryYScaleOptions\n : undefined;\n return secondaryYAxisValues;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): DonutChartProps => {\n const firstData = input.data[0] as PieData;\n\n const mapLegendToDataPoint: Record<string, ChartDataPoint> = {};\n firstData.labels?.forEach((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n //ToDo how to handle string data?\n const value = typeof firstData.values?.[index] === 'number' ? (firstData.values[index] as number) : 1;\n\n if (!mapLegendToDataPoint[label]) {\n mapLegendToDataPoint[label] = {\n legend: label,\n data: value,\n color,\n };\n } else {\n mapLegendToDataPoint[label].data! += value;\n }\n });\n\n const width: number = input.layout?.width ?? 440;\n const height: number = input.layout?.height ?? 220;\n const hideLabels: boolean = firstData.textinfo\n ? !['value', 'percent', 'label+percent'].includes(firstData.textinfo)\n : false;\n const donutMarginHorizontal: number = hideLabels ? 0 : 80;\n const donutMarginVertical: number = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n chartData: Object.values(mapLegendToDataPoint),\n },\n hideLegend: input.layout?.showlegend === false ? true : false,\n width: input.layout?.width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? ['percent', 'label+percent'].includes(firstData.textinfo) : true,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n fallbackVSBC?: boolean,\n): VerticalStackedBarChartProps => {\n const mapXToDataPoints: { [key: string]: VerticalStackedChartProps } = {};\n let yMaxValue = 0;\n let secondaryYAxisValues: SecondaryYAxisValues = {};\n input.data.forEach((series: PlotData, index1: number) => {\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: isXYearCategory ? x.toString() : x, chartData: [], lineData: [] };\n }\n const legend: string = getLegend(series, index1);\n const yVal: number = (series.y?.[index2] as number) ?? 0;\n if (series.type === 'bar') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: yVal,\n color,\n });\n } else if (series.type === 'scatter' || !!fallbackVSBC) {\n const color = getColor(legend, colorMap, isDarkTheme);\n const lineOptions = getLineOptions(series.line);\n mapXToDataPoints[x].lineData!.push({\n legend,\n y: yVal,\n color,\n ...(lineOptions ? { lineOptions } : {}),\n });\n }\n\n yMaxValue = Math.max(yMaxValue, yVal);\n });\n secondaryYAxisValues = getSecondaryYAxisValues(series, input.layout);\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n yMaxValue,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n secondaryYAxistitle: secondaryYAxisValues.secondaryYAxistitle,\n secondaryYScaleOptions: secondaryYAxisValues.secondaryYScaleOptions,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): GroupedVerticalBarChartProps => {\n const mapXToDataPoints: Record<string, GroupedVerticalBarChartData> = {};\n let secondaryYAxisValues: SecondaryYAxisValues = {};\n input.data.forEach((series: PlotData, index1: number) => {\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n if (series.type === 'bar') {\n const legend: string = getLegend(series, index1);\n const color = getColor(legend, colorMap, isDarkTheme);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: (series.y?.[index2] as number) ?? 0,\n xAxisCalloutData: x as string,\n color,\n legend,\n });\n }\n });\n secondaryYAxisValues = getSecondaryYAxisValues(series, input.layout);\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n secondaryYAxistitle: secondaryYAxisValues.secondaryYAxistitle,\n secondaryYScaleOptions: secondaryYAxisValues.secondaryYScaleOptions,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): VerticalBarChartProps => {\n const vbcData: VerticalBarChartDataPoint[] = [];\n\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n if (!series.x) {\n return;\n }\n\n const isXString = isStringArray(series.x);\n const xBins = createBins(series.x, series.xbins?.start, series.xbins?.end, series.xbins?.size);\n const yBins: number[][] = xBins.map(() => []);\n let total = 0;\n\n series.x.forEach((xVal, index) => {\n const binIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n if (binIdx !== -1) {\n yBins[binIdx].push((series.y?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const y = yBins.map(bin => {\n const yVal = calculateHistFunc(series.histfunc, bin);\n total += yVal;\n return yVal;\n });\n\n xBins.forEach((bin, index) => {\n const legend: string = getLegend(series, seriesIdx);\n const color: string = getColor(legend, colorMap, isDarkTheme);\n const yVal = calculateHistNorm(\n series.histnorm,\n y[index],\n total,\n isXString ? bin.length : getBinSize(bin as Bin<number, number>),\n );\n\n vbcData.push({\n x: isXString ? bin.join(', ') : getBinCenter(bin as Bin<number, number>),\n y: yVal,\n legend,\n color,\n ...(isXString\n ? {}\n : { xAxisCalloutData: `[${(bin as Bin<number, number>).x0} - ${(bin as Bin<number, number>).x1})` }),\n });\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: vbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n input: PlotlySchema,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): LineChartProps | AreaChartProps => {\n let secondaryYAxisValues: SecondaryYAxisValues = {};\n let mode: string = 'tonexty';\n const chartData: LineChartPoints[] = input.data.map((series: PlotData, index: number) => {\n const xValues = series.x as Datum[];\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend: string = getLegend(series, index);\n const lineColor = getColor(legend, colorMap, isDarkTheme);\n secondaryYAxisValues = getSecondaryYAxisValues(series, input.layout);\n mode = series.fill === 'tozeroy' ? 'tozeroy' : 'tonexty';\n const lineOptions = getLineOptions(series.line);\n\n return {\n legend,\n data: xValues.map((x, i: number) => ({\n x: isString ? (isXDate ? new Date(x as string) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n ...(Array.isArray(series.marker?.size)\n ? { markerSize: series.marker.size[i] }\n : typeof series.marker?.size === 'number'\n ? { markerSize: series.marker.size }\n : {}),\n })),\n color: lineColor,\n ...(lineOptions ? { lineOptions } : {}),\n } as LineChartPoints;\n });\n\n const yMinMaxValues = findNumericMinMaxOfY(chartData);\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n const chartProps: ChartProps = {\n chartTitle,\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle: secondaryYAxisValues.secondaryYAxistitle,\n secondaryYScaleOptions: secondaryYAxisValues.secondaryYScaleOptions,\n mode,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n useUTC: false,\n } as AreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle: secondaryYAxisValues.secondaryYAxistitle,\n secondaryYScaleOptions: secondaryYAxisValues.secondaryYScaleOptions,\n roundedTicks: true,\n yMinValue: yMinMaxValues.startValue,\n yMaxValue: yMinMaxValues.endValue,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n enableReflow: false,\n useUTC: false,\n } as LineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): HorizontalBarChartWithAxisProps => {\n const chartData: HorizontalBarChartWithAxisDataPoint[] = input.data\n .map((series: PlotData, index: number) => {\n return (series.y as Datum[]).map((yValue: string, i: number) => {\n const color = getColor(yValue, colorMap, isDarkTheme);\n return {\n x: series.x[i],\n y: yValue,\n legend: yValue,\n color,\n } as HorizontalBarChartWithAxisDataPoint;\n });\n })\n .flat()\n //reversing the order to invert the Y bars order as required by plotly.\n .reverse();\n\n const chartHeight: number = input.layout?.height ?? 450;\n const margin: number = input.layout?.margin?.l ?? 0;\n const padding: number = input.layout?.margin?.pad ?? 0;\n const availableHeight: number = chartHeight - margin - padding;\n const numberOfBars = (input.data[0] as PlotData).y.length;\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfBars);\n const barHeight = availableHeight / (numberOfBars * (1 + gapFactor));\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: chartData,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle:\n typeof input.layout?.yaxis2?.title === 'string'\n ? input.layout?.yaxis2?.title\n : input.layout?.yaxis2?.title?.text || '',\n barHeight,\n showYAxisLables: true,\n height: chartHeight,\n width: input.layout?.width,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (input: PlotlySchema): HeatMapChartProps => {\n const firstData = input.data[0] as Partial<PlotData>;\n const heatmapDataPoints: HeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n if (firstData.type === 'histogram2d') {\n const isXString = isStringArray(firstData.x);\n const isYString = isStringArray(firstData.y);\n const xBins = createBins(firstData.x, firstData.xbins?.start, firstData.xbins?.end, firstData.xbins?.size);\n const yBins = createBins(firstData.y, firstData.ybins?.start, firstData.ybins?.end, firstData.ybins?.size);\n const zBins: number[][][] = yBins.map(() => xBins.map(() => []));\n let total = 0;\n\n firstData.x?.forEach((xVal, index) => {\n const xBinIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n const yBinIdx = findBinIndex(yBins, firstData.y?.[index] as string | number | null | undefined, isYString);\n\n if (xBinIdx !== -1 && yBinIdx !== -1) {\n zBins[yBinIdx][xBinIdx].push((firstData.z?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const z = zBins.map(row => {\n return row.map(bin => {\n const zVal = calculateHistFunc(firstData.histfunc, bin);\n total += zVal;\n return zVal;\n });\n });\n\n xBins.forEach((xBin, xIdx) => {\n yBins.forEach((yBin, yIdx) => {\n const zVal = calculateHistNorm(\n firstData.histnorm,\n z[yIdx][xIdx],\n total,\n isXString ? xBin.length : getBinSize(xBin as Bin<number, number>),\n isYString ? yBin.length : getBinSize(yBin as Bin<number, number>),\n );\n\n heatmapDataPoints.push({\n x: isXString ? xBin.join(', ') : getBinCenter(xBin as Bin<number, number>),\n y: isYString ? yBin.join(', ') : getBinCenter(yBin as Bin<number, number>),\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n } else {\n (firstData.x as Datum[])?.forEach((xVal, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = (firstData.z as number[][])?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: input.layout?.xaxis?.type === 'date' ? (xVal as Date) : xVal ?? 0,\n y: input.layout?.yaxis?.type === 'date' ? (yVal as Date) : yVal,\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n }\n\n const heatmapData: HeatMapChartData = {\n legend: firstData.name ?? '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Initialize domain and range to default values\n const defaultDomain = [zMin, (zMax + zMin) / 2, zMax];\n const defaultRange = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n ];\n const domainValuesForColorScale: number[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[0] * (zMax - zMin) + zMin)\n : defaultDomain;\n\n const rangeValuesForColorScale: string[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[1])\n : defaultRange;\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n sortOrder: 'none',\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): SankeyChartProps => {\n const { link, node } = input.data[0] as SankeyData;\n const validLinks = (link?.value ?? [])\n .map((val: number, index: number) => ({\n value: val,\n source: link?.source![index],\n target: link?.target![index],\n }))\n // eslint-disable-next-line @typescript-eslint/no-shadow\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x.source >= 0 && x.target >= 0 && x.source !== x.target);\n\n const sankeyChartData = {\n nodes: node.label?.map((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n } as SankeyChartData;\n\n // const styles: SankeyChartProps['styles'] = {\n // root: {\n // ...(input.layout?.font?.size ? { fontSize: input.layout.font?.size } : {}),\n // },\n // };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n SankeyChartData: sankeyChartData,\n },\n width: input.layout?.width,\n height: input.layout?.height ?? 468,\n // TODO\n // styles,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): GaugeChartProps => {\n const firstData = input.data[0] as PlotData;\n\n const segments = firstData.gauge?.steps?.length\n ? firstData.gauge.steps.map((step: any, index: number): GaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n })\n : [\n {\n legend: 'Current',\n size: firstData.value ?? 0 - (firstData.gauge?.axis?.range?.[0] ?? 0),\n color: getColor('Current', colorMap, isDarkTheme),\n },\n {\n legend: 'Target',\n size: (firstData.gauge?.axis?.range?.[1] ?? 100) - (firstData.value ?? 0),\n color: DataVizPalette.disabled,\n },\n ];\n\n let sublabel: string | undefined;\n // let sublabelColor: string | undefined;\n if (firstData.delta?.reference) {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n // const color = getColorFromToken(DataVizPalette.success, isDarkTheme);\n // sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n // const color = getColorFromToken(DataVizPalette.error, isDarkTheme);\n // sublabelColor = color;\n }\n }\n\n // const styles: GaugeChartProps['styles'] = {\n // sublabel: {\n // fill: sublabelColor,\n // },\n // };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n segments,\n chartValue: firstData.value ?? 0,\n chartTitle,\n sublabel,\n // range values can be null\n minValue: typeof firstData.gauge?.axis?.range?.[0] === 'number' ? firstData.gauge?.axis?.range?.[0] : undefined,\n maxValue: typeof firstData.gauge?.axis?.range?.[1] === 'number' ? firstData.gauge?.axis?.range?.[1] : undefined,\n chartValueFormat: () => firstData.value?.toString() ?? '',\n // FIXME\n // width: input.layout?.width,\n // height: input.layout?.height ?? 220,\n // TODO\n // styles,\n variant: firstData.gauge?.steps?.length ? 'multiple-segments' : 'single-segment',\n };\n};\n\nfunction isPlainObject(obj: any) {\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty')\n );\n}\n\nvar arrayAttributes: any[] = [];\nvar stack: any[] = [];\nvar isArrayStack: any[] = [];\nvar baseContainer: any, baseAttrName: any;\n/**\n * Interate iteratively through the trace object and find all the array attributes.\n * 1 trace record = 1 series of data\n * @param trace\n */\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\nfunction crawlIntoTrace(container: any, i: number, astrPartial: any) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n}\n\nfunction getLineOptions(line: Partial<ScatterLine> | undefined): LineChartLineOptions | undefined {\n if (!line) {\n return;\n }\n\n let lineOptions: LineChartLineOptions = {};\n if (line.dash) {\n lineOptions = { ...lineOptions, ...dashOptions[line.dash] };\n }\n\n switch (line.shape) {\n case 'spline':\n const smoothing = typeof line.smoothing === 'number' ? line.smoothing : 1;\n lineOptions.curve = d3CurveCardinal.tension(1 - smoothing / 1.3);\n break;\n case 'hv':\n lineOptions.curve = 'stepAfter';\n break;\n case 'vh':\n lineOptions.curve = 'stepBefore';\n break;\n case 'hvh':\n lineOptions.curve = 'step';\n break;\n default:\n lineOptions.curve = 'linear';\n }\n\n return Object.keys(lineOptions).length > 0 ? lineOptions : undefined;\n}\n\nconst isStringArray = (arr: any) => {\n return isArrayOfType(arr, (value: any) => typeof value === 'string');\n};\n\n// TODO: Use binary search to find the appropriate bin for numeric value.\nconst findBinIndex = (\n bins: string[][] | Bin<number, number>[],\n value: string | number | null | undefined,\n isString: boolean,\n) => {\n if (typeof value === 'undefined' || value === null) {\n return -1;\n }\n\n return isString\n ? (bins as string[][]).findIndex(bin => bin.includes(value as string))\n : (bins as Bin<number, number>[]).findIndex(bin => (value as number) >= bin.x0! && (value as number) < bin.x1!);\n};\n\nconst getBinSize = (bin: Bin<number, number>) => {\n return bin.x1! - bin.x0!;\n};\n\nconst getBinCenter = (bin: Bin<number, number>) => {\n return (bin.x1! + bin.x0!) / 2;\n};\n\n// TODO: Add support for date axes\nconst createBins = (\n data: TypedArray | Datum[] | Datum[][] | undefined,\n binStart?: number | string,\n binEnd?: number | string,\n binSize?: number | string,\n) => {\n if (!data || data.length === 0) {\n return [];\n }\n\n if (isStringArray(data)) {\n const categories = Array.from(new Set(data as string[]));\n const start = typeof binStart === 'number' ? Math.ceil(binStart) : 0;\n const stop = typeof binEnd === 'number' ? Math.floor(binEnd) + 1 : categories.length;\n const step = typeof binSize === 'number' ? binSize : 1;\n\n return d3Range(start, stop, step).map(i => categories.slice(i, i + step));\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(data as number[]) as [number, number])\n .nice();\n let [minVal, maxVal] = scale.domain();\n\n minVal = typeof binStart === 'number' ? binStart : minVal;\n maxVal = typeof binEnd === 'number' ? binEnd : maxVal;\n\n const binGenerator = d3Bin().domain([minVal, maxVal]);\n\n if (typeof binSize === 'number') {\n const thresholds: number[] = [];\n let th = minVal;\n const tolerance = 1 / Math.pow(10, binSize.toString().split('.')[1]?.length ?? 0);\n\n while (maxVal + binSize - th > tolerance) {\n thresholds.push(th);\n th += binSize;\n }\n\n minVal = thresholds[0];\n maxVal = thresholds[thresholds.length - 1];\n binGenerator.domain([minVal, maxVal]).thresholds(thresholds);\n }\n\n // NOTE: The last bin generated by d3Bin often has identical x0 and x1 values (both inclusive) and\n // can be ignored if the highest value is already included in the previous bin.\n return binGenerator(data as number[]);\n};\n\nconst calculateHistFunc = (histfunc: PlotData['histfunc'] | undefined, bin: number[]) => {\n switch (histfunc) {\n case 'sum':\n return d3Sum(bin);\n case 'avg':\n return bin.length === 0 ? 0 : d3Sum(bin) / bin.length;\n case 'min':\n return d3Min(bin) ?? 0;\n case 'max':\n return d3Max(bin) ?? 0;\n default:\n return bin.length;\n }\n};\n\nconst calculateHistNorm = (\n histnorm: PlotData['histnorm'] | undefined,\n value: number,\n total: number,\n dx: number,\n dy: number = 1,\n) => {\n switch (histnorm) {\n case 'percent':\n return total === 0 ? 0 : (value / total) * 100;\n case 'probability':\n return total === 0 ? 0 : value / total;\n case 'density':\n return dx * dy === 0 ? 0 : value / (dx * dy);\n case 'probability density':\n return total * dx * dy === 0 ? 0 : value / (total * dx * dy);\n default:\n return value;\n }\n};\n"],"names":["correctYearMonth","findArrayAttributes","getColor","isMonthArray","transformPlotlyJsonToDonutProps","transformPlotlyJsonToGVBCProps","transformPlotlyJsonToGaugeProps","transformPlotlyJsonToHeatmapProps","transformPlotlyJsonToHorizontalBarWithAxisProps","transformPlotlyJsonToSankeyProps","transformPlotlyJsonToScatterChartProps","transformPlotlyJsonToVBCProps","transformPlotlyJsonToVSBCProps","dashOptions","dot","strokeDasharray","strokeLinecap","strokeWidth","lineBorderWidth","dash","longdash","dashdot","longdashdot","solid","isMonth","possiblyMonthValue","parseFullMonth","timeParse","parseShortMonth","data","isArrayOfType","getLegend","series","index","name","getTitles","layout","titles","chartTitle","title","text","xAxisTitle","xaxis","yAxisTitle","yaxis","xValues","presentYear","Date","getFullYear","length","Array","isArray","Error","dates","map","parsedDate","isDate","i","currentMonth","getMonth","previousMonth","currentYear","previousYear","setFullYear","month","legendLabel","colorMap","isDarkTheme","current","has","nextColor","getNextColor","size","set","get","getSecondaryYAxisValues","secondaryYAxisValues","yaxis2","secondaryYAxistitle","range","secondaryYScaleOptions","yMinValue","yMaxValue","yValues","y","Math","min","max","undefined","Object","keys","input","firstData","mapLegendToDataPoint","labels","forEach","label","color","value","values","legend","width","height","hideLabels","textinfo","includes","donutMarginHorizontal","donutMarginVertical","innerRadius","hole","chartData","hideLegend","showlegend","showLabelsInPercent","fallbackVSBC","mapXToDataPoints","index1","isXYearCategory","isYearArray","x","_series_x","index2","xAxisPoint","toString","lineData","yVal","type","push","lineOptions","getLineOptions","line","barWidth","mode","hideTickOverlap","key","xAxisCalloutData","vbcData","seriesIdx","isXString","isStringArray","xBins","createBins","xbins","start","end","yBins","total","xVal","binIdx","findBinIndex","bin","calculateHistFunc","histfunc","calculateHistNorm","histnorm","getBinSize","join","getBinCenter","x0","x1","isAreaChart","isString","isXDate","isDateArray","isXNumber","isNumberArray","lineColor","fill","parseFloat","marker","markerSize","yMinMaxValues","findNumericMinMaxOfY","chartProps","lineChartData","supportNegativeData","useUTC","roundedTicks","startValue","endValue","enableReflow","yValue","flat","reverse","chartHeight","margin","l","padding","pad","availableHeight","numberOfBars","scalingFactor","gapFactor","barHeight","showYAxisLables","heatmapDataPoints","zMin","Number","POSITIVE_INFINITY","zMax","NEGATIVE_INFINITY","isYString","ybins","zBins","xBinIdx","yBinIdx","z","row","zVal","xBin","xIdx","yBin","yIdx","rectText","_firstData_x1","_firstData_z_yIdx","_firstData_z","heatmapData","defaultDomain","defaultRange","getColorFromToken","DataVizPalette","color1","color2","color3","domainValuesForColorScale","colorscale","arr","rangeValuesForColorScale","sortOrder","node","link","validLinks","val","source","target","filter","sankeyChartData","nodes","nodeId","links","validLink","SankeyChartData","segments","gauge","steps","step","axis","disabled","sublabel","delta","reference","diff","abs","chartValue","minValue","maxValue","chartValueFormat","variant","isPlainObject","obj","prototype","call","getPrototypeOf","hasOwnProperty","arrayAttributes","stack","isArrayStack","baseContainer","baseAttrName","trace","crawlIntoTrace","container","astrPartial","item","newAstrPartial","isArrayOrTypedArray","j","shape","smoothing","curve","d3CurveCardinal","tension","bins","findIndex","binStart","binEnd","binSize","categories","from","Set","ceil","stop","floor","d3Range","slice","scale","d3ScaleLinear","domain","d3Extent","nice","minVal","maxVal","binGenerator","d3Bin","thresholds","th","tolerance","pow","split","d3Sum","d3Min","d3Max","dx","dy"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["PlotlySchemaAdapter.ts"],"sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport {\n bin as d3Bin,\n extent as d3Extent,\n sum as d3Sum,\n min as d3Min,\n max as d3Max,\n range as d3Range,\n Bin,\n} from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { DonutChartProps } from '../DonutChart/index';\nimport {\n ChartDataPoint,\n ChartProps,\n HorizontalBarChartWithAxisDataPoint,\n LineChartPoints,\n VerticalStackedChartProps,\n HeatMapChartData,\n HeatMapChartDataPoint,\n GroupedVerticalBarChartData,\n VerticalBarChartDataPoint,\n SankeyChartData,\n LineChartLineOptions,\n} from '../../types/DataPoint';\nimport { SankeyChartProps } from '../SankeyChart/index';\nimport { VerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { HorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { LineChartProps } from '../LineChart/index';\nimport { AreaChartProps } from '../AreaChart/index';\nimport { HeatMapChartProps } from '../HeatMapChart/index';\nimport { DataVizPalette, getColorFromToken, getNextColor } from '../../utilities/colors';\nimport { GaugeChartProps, GaugeChartSegment } from '../GaugeChart/index';\nimport { GroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChartProps } from '../VerticalBarChart/index';\nimport { findNumericMinMaxOfY } from '../../utilities/utilities';\nimport type {\n Datum,\n Layout,\n PlotlySchema,\n PieData,\n PlotData,\n SankeyData,\n ScatterLine,\n TypedArray,\n} from '@fluentui/chart-utilities';\nimport {\n isArrayOfType,\n isArrayOrTypedArray,\n isDate,\n isDateArray,\n isNumberArray,\n isYearArray,\n} from '@fluentui/chart-utilities';\nimport { curveCardinal as d3CurveCardinal } from 'd3-shape';\n\ninterface SecondaryYAxisValues {\n secondaryYAxistitle?: string;\n secondaryYScaleOptions?: { yMinValue?: number; yMaxValue?: number };\n}\n\nconst dashOptions = {\n dot: {\n strokeDasharray: '1, 5',\n strokeLinecap: 'round',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dash: {\n strokeDasharray: '5, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdash: {\n strokeDasharray: '10, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dashdot: {\n strokeDasharray: '5, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdashdot: {\n strokeDasharray: '10, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n solid: {\n strokeDasharray: '0',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n} as const;\n\nconst getLegend = (series: Partial<PlotData>, index: number): string => {\n return series.name || `Series ${index + 1}`;\n};\n\nfunction getTitles(layout: Partial<Layout> | undefined) {\n const titles = {\n chartTitle: typeof layout?.title === 'string' ? layout.title : layout?.title?.text ?? '',\n xAxisTitle: typeof layout?.xaxis?.title === 'string' ? layout?.xaxis?.title : layout?.xaxis?.title?.text ?? '',\n yAxisTitle: typeof layout?.yaxis?.title === 'string' ? layout?.yaxis?.title : layout?.yaxis?.title?.text ?? '',\n };\n return titles;\n}\n\nexport const correctYearMonth = (xValues: Datum[] | Datum[][] | TypedArray): any[] => {\n const presentYear = new Date().getFullYear();\n if (xValues.length > 0 && Array.isArray(xValues[0])) {\n throw new Error('updateXValues:: 2D array not supported');\n }\n const dates = (xValues as Datum[]).map(possiblyMonthValue => {\n const parsedDate = `${possiblyMonthValue} 01, ${presentYear}`;\n return isDate(parsedDate) ? new Date(parsedDate) : null;\n });\n for (let i = dates.length - 1; i > 0; i--) {\n const currentMonth = dates[i]!.getMonth();\n const previousMonth = dates[i - 1]!.getMonth();\n const currentYear = dates[i]!.getFullYear();\n const previousYear = dates[i - 1]!.getFullYear();\n if (previousMonth >= currentMonth) {\n dates[i - 1]!.setFullYear(dates[i]!.getFullYear() - 1);\n } else if (previousYear > currentYear) {\n dates[i - 1]!.setFullYear(currentYear);\n }\n }\n xValues = (xValues as Datum[]).map((month, index) => {\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\n\nexport const getColor = (\n legendLabel: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1, 0, isDarkTheme);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nconst getSecondaryYAxisValues = (series: PlotData, layout: Partial<Layout> | undefined) => {\n const secondaryYAxisValues: SecondaryYAxisValues = {};\n if (layout && layout.yaxis2 && series.yaxis === 'y2') {\n secondaryYAxisValues.secondaryYAxistitle =\n typeof layout.yaxis2.title === 'string'\n ? layout.yaxis2.title\n : typeof layout.yaxis2.title?.text === 'string'\n ? layout.yaxis2.title.text\n : '';\n if (layout.yaxis2.range) {\n secondaryYAxisValues.secondaryYScaleOptions = {\n yMinValue: layout.yaxis2.range[0],\n yMaxValue: layout.yaxis2.range[1],\n };\n } else {\n const yValues = series.y as number[];\n if (yValues) {\n secondaryYAxisValues.secondaryYScaleOptions = {\n yMinValue: Math.min(...yValues),\n yMaxValue: Math.max(...yValues),\n };\n }\n }\n }\n secondaryYAxisValues.secondaryYAxistitle =\n secondaryYAxisValues.secondaryYAxistitle !== '' ? secondaryYAxisValues.secondaryYAxistitle : undefined;\n secondaryYAxisValues.secondaryYScaleOptions =\n secondaryYAxisValues.secondaryYScaleOptions && Object.keys(secondaryYAxisValues.secondaryYScaleOptions).length !== 0\n ? secondaryYAxisValues.secondaryYScaleOptions\n : undefined;\n return secondaryYAxisValues;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): DonutChartProps => {\n const firstData = input.data[0] as PieData;\n\n const mapLegendToDataPoint: Record<string, ChartDataPoint> = {};\n firstData.labels?.forEach((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n //ToDo how to handle string data?\n const value = typeof firstData.values?.[index] === 'number' ? (firstData.values[index] as number) : 1;\n\n if (!mapLegendToDataPoint[label]) {\n mapLegendToDataPoint[label] = {\n legend: label,\n data: value,\n color,\n };\n } else {\n mapLegendToDataPoint[label].data! += value;\n }\n });\n\n const width: number = input.layout?.width ?? 440;\n const height: number = input.layout?.height ?? 220;\n const hideLabels: boolean = firstData.textinfo\n ? !['value', 'percent', 'label+percent'].includes(firstData.textinfo)\n : false;\n const donutMarginHorizontal: number = hideLabels ? 0 : 80;\n const donutMarginVertical: number = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n chartData: Object.values(mapLegendToDataPoint),\n },\n hideLegend: input.layout?.showlegend === false ? true : false,\n width: input.layout?.width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? ['percent', 'label+percent'].includes(firstData.textinfo) : true,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n fallbackVSBC?: boolean,\n): VerticalStackedBarChartProps => {\n const mapXToDataPoints: { [key: string]: VerticalStackedChartProps } = {};\n let yMaxValue = 0;\n let secondaryYAxisValues: SecondaryYAxisValues = {};\n input.data.forEach((series: PlotData, index1: number) => {\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: isXYearCategory ? x.toString() : x, chartData: [], lineData: [] };\n }\n const legend: string = getLegend(series, index1);\n const yVal: number = (series.y?.[index2] as number) ?? 0;\n if (series.type === 'bar') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: yVal,\n color,\n });\n } else if (series.type === 'scatter' || !!fallbackVSBC) {\n const color = getColor(legend, colorMap, isDarkTheme);\n const lineOptions = getLineOptions(series.line);\n mapXToDataPoints[x].lineData!.push({\n legend,\n y: yVal,\n color,\n ...(lineOptions ? { lineOptions } : {}),\n });\n }\n\n yMaxValue = Math.max(yMaxValue, yVal);\n });\n secondaryYAxisValues = getSecondaryYAxisValues(series, input.layout);\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n yMaxValue,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n secondaryYAxistitle: secondaryYAxisValues.secondaryYAxistitle,\n secondaryYScaleOptions: secondaryYAxisValues.secondaryYScaleOptions,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): GroupedVerticalBarChartProps => {\n const mapXToDataPoints: Record<string, GroupedVerticalBarChartData> = {};\n let secondaryYAxisValues: SecondaryYAxisValues = {};\n input.data.forEach((series: PlotData, index1: number) => {\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n if (series.type === 'bar') {\n const legend: string = getLegend(series, index1);\n const color = getColor(legend, colorMap, isDarkTheme);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: (series.y?.[index2] as number) ?? 0,\n xAxisCalloutData: x as string,\n color,\n legend,\n });\n }\n });\n secondaryYAxisValues = getSecondaryYAxisValues(series, input.layout);\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n secondaryYAxistitle: secondaryYAxisValues.secondaryYAxistitle,\n secondaryYScaleOptions: secondaryYAxisValues.secondaryYScaleOptions,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): VerticalBarChartProps => {\n const vbcData: VerticalBarChartDataPoint[] = [];\n\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n if (!series.x) {\n return;\n }\n\n const isXString = isStringArray(series.x);\n const xBins = createBins(series.x, series.xbins?.start, series.xbins?.end, series.xbins?.size);\n const yBins: number[][] = xBins.map(() => []);\n let total = 0;\n\n series.x.forEach((xVal, index) => {\n const binIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n if (binIdx !== -1) {\n yBins[binIdx].push((series.y?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const y = yBins.map(bin => {\n const yVal = calculateHistFunc(series.histfunc, bin);\n total += yVal;\n return yVal;\n });\n\n xBins.forEach((bin, index) => {\n const legend: string = getLegend(series, seriesIdx);\n const color: string = getColor(legend, colorMap, isDarkTheme);\n const yVal = calculateHistNorm(\n series.histnorm,\n y[index],\n total,\n isXString ? bin.length : getBinSize(bin as Bin<number, number>),\n );\n\n vbcData.push({\n x: isXString ? bin.join(', ') : getBinCenter(bin as Bin<number, number>),\n y: yVal,\n legend,\n color,\n ...(isXString\n ? {}\n : { xAxisCalloutData: `[${(bin as Bin<number, number>).x0} - ${(bin as Bin<number, number>).x1})` }),\n });\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: vbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n input: PlotlySchema,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): LineChartProps | AreaChartProps => {\n let secondaryYAxisValues: SecondaryYAxisValues = {};\n let mode: string = 'tonexty';\n const chartData: LineChartPoints[] = input.data.map((series: PlotData, index: number) => {\n const xValues = series.x as Datum[];\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend: string = getLegend(series, index);\n const lineColor = getColor(legend, colorMap, isDarkTheme);\n secondaryYAxisValues = getSecondaryYAxisValues(series, input.layout);\n mode = series.fill === 'tozeroy' ? 'tozeroy' : 'tonexty';\n const lineOptions = getLineOptions(series.line);\n\n return {\n legend,\n data: xValues.map((x, i: number) => ({\n x: isString ? (isXDate ? new Date(x as string) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n ...(Array.isArray(series.marker?.size)\n ? { markerSize: series.marker.size[i] }\n : typeof series.marker?.size === 'number'\n ? { markerSize: series.marker.size }\n : {}),\n })),\n color: lineColor,\n ...(lineOptions ? { lineOptions } : {}),\n } as LineChartPoints;\n });\n\n const yMinMaxValues = findNumericMinMaxOfY(chartData);\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n const chartProps: ChartProps = {\n chartTitle,\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle: secondaryYAxisValues.secondaryYAxistitle,\n secondaryYScaleOptions: secondaryYAxisValues.secondaryYScaleOptions,\n mode,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n useUTC: false,\n } as AreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle: secondaryYAxisValues.secondaryYAxistitle,\n secondaryYScaleOptions: secondaryYAxisValues.secondaryYScaleOptions,\n roundedTicks: true,\n yMinValue: yMinMaxValues.startValue,\n yMaxValue: yMinMaxValues.endValue,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n enableReflow: false,\n useUTC: false,\n } as LineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): HorizontalBarChartWithAxisProps => {\n const chartData: HorizontalBarChartWithAxisDataPoint[] = input.data\n .map((series: PlotData, index: number) => {\n return (series.y as Datum[]).map((yValue: string, i: number) => {\n const color = getColor(yValue, colorMap, isDarkTheme);\n return {\n x: series.x[i],\n y: yValue,\n legend: yValue,\n color,\n } as HorizontalBarChartWithAxisDataPoint;\n });\n })\n .flat()\n //reversing the order to invert the Y bars order as required by plotly.\n .reverse();\n\n const chartHeight: number = input.layout?.height ?? 450;\n const margin: number = input.layout?.margin?.l ?? 0;\n const padding: number = input.layout?.margin?.pad ?? 0;\n const availableHeight: number = chartHeight - margin - padding;\n const numberOfBars = (input.data[0] as PlotData).y.length;\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfBars);\n const barHeight = availableHeight / (numberOfBars * (1 + gapFactor));\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: chartData,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle:\n typeof input.layout?.yaxis2?.title === 'string'\n ? input.layout?.yaxis2?.title\n : input.layout?.yaxis2?.title?.text || '',\n barHeight,\n showYAxisLables: true,\n height: chartHeight,\n width: input.layout?.width,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (input: PlotlySchema): HeatMapChartProps => {\n const firstData = input.data[0] as Partial<PlotData>;\n const heatmapDataPoints: HeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n if (firstData.type === 'histogram2d') {\n const isXString = isStringArray(firstData.x);\n const isYString = isStringArray(firstData.y);\n const xBins = createBins(firstData.x, firstData.xbins?.start, firstData.xbins?.end, firstData.xbins?.size);\n const yBins = createBins(firstData.y, firstData.ybins?.start, firstData.ybins?.end, firstData.ybins?.size);\n const zBins: number[][][] = yBins.map(() => xBins.map(() => []));\n let total = 0;\n\n firstData.x?.forEach((xVal, index) => {\n const xBinIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n const yBinIdx = findBinIndex(yBins, firstData.y?.[index] as string | number | null | undefined, isYString);\n\n if (xBinIdx !== -1 && yBinIdx !== -1) {\n zBins[yBinIdx][xBinIdx].push((firstData.z?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const z = zBins.map(row => {\n return row.map(bin => {\n const zVal = calculateHistFunc(firstData.histfunc, bin);\n total += zVal;\n return zVal;\n });\n });\n\n xBins.forEach((xBin, xIdx) => {\n yBins.forEach((yBin, yIdx) => {\n const zVal = calculateHistNorm(\n firstData.histnorm,\n z[yIdx][xIdx],\n total,\n isXString ? xBin.length : getBinSize(xBin as Bin<number, number>),\n isYString ? yBin.length : getBinSize(yBin as Bin<number, number>),\n );\n\n heatmapDataPoints.push({\n x: isXString ? xBin.join(', ') : getBinCenter(xBin as Bin<number, number>),\n y: isYString ? yBin.join(', ') : getBinCenter(yBin as Bin<number, number>),\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n } else {\n (firstData.x as Datum[])?.forEach((xVal, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = (firstData.z as number[][])?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: input.layout?.xaxis?.type === 'date' ? (xVal as Date) : xVal ?? 0,\n y: input.layout?.yaxis?.type === 'date' ? (yVal as Date) : yVal,\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n }\n\n const heatmapData: HeatMapChartData = {\n legend: firstData.name ?? '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Initialize domain and range to default values\n const defaultDomain = [zMin, (zMax + zMin) / 2, zMax];\n const defaultRange = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n ];\n const domainValuesForColorScale: number[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[0] * (zMax - zMin) + zMin)\n : defaultDomain;\n\n const rangeValuesForColorScale: string[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[1])\n : defaultRange;\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n sortOrder: 'none',\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): SankeyChartProps => {\n const { link, node } = input.data[0] as SankeyData;\n const validLinks = (link?.value ?? [])\n .map((val: number, index: number) => ({\n value: val,\n source: link?.source![index],\n target: link?.target![index],\n }))\n // eslint-disable-next-line @typescript-eslint/no-shadow\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x.source >= 0 && x.target >= 0 && x.source !== x.target);\n\n const sankeyChartData = {\n nodes: node.label?.map((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n } as SankeyChartData;\n\n // const styles: SankeyChartProps['styles'] = {\n // root: {\n // ...(input.layout?.font?.size ? { fontSize: input.layout.font?.size } : {}),\n // },\n // };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n SankeyChartData: sankeyChartData,\n },\n width: input.layout?.width,\n height: input.layout?.height ?? 468,\n // TODO\n // styles,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): GaugeChartProps => {\n const firstData = input.data[0] as PlotData;\n\n const segments = firstData.gauge?.steps?.length\n ? firstData.gauge.steps.map((step: any, index: number): GaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n })\n : [\n {\n legend: 'Current',\n size: firstData.value ?? 0 - (firstData.gauge?.axis?.range?.[0] ?? 0),\n color: getColor('Current', colorMap, isDarkTheme),\n },\n {\n legend: 'Target',\n size: (firstData.gauge?.axis?.range?.[1] ?? 100) - (firstData.value ?? 0),\n color: DataVizPalette.disabled,\n },\n ];\n\n let sublabel: string | undefined;\n // let sublabelColor: string | undefined;\n if (firstData.delta?.reference) {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n // const color = getColorFromToken(DataVizPalette.success, isDarkTheme);\n // sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n // const color = getColorFromToken(DataVizPalette.error, isDarkTheme);\n // sublabelColor = color;\n }\n }\n\n // const styles: GaugeChartProps['styles'] = {\n // sublabel: {\n // fill: sublabelColor,\n // },\n // };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n segments,\n chartValue: firstData.value ?? 0,\n chartTitle,\n sublabel,\n // range values can be null\n minValue: typeof firstData.gauge?.axis?.range?.[0] === 'number' ? firstData.gauge?.axis?.range?.[0] : undefined,\n maxValue: typeof firstData.gauge?.axis?.range?.[1] === 'number' ? firstData.gauge?.axis?.range?.[1] : undefined,\n chartValueFormat: () => firstData.value?.toString() ?? '',\n // FIXME\n // width: input.layout?.width,\n // height: input.layout?.height ?? 220,\n // TODO\n // styles,\n variant: firstData.gauge?.steps?.length ? 'multiple-segments' : 'single-segment',\n };\n};\n\nfunction isPlainObject(obj: any) {\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty')\n );\n}\n\nvar arrayAttributes: any[] = [];\nvar stack: any[] = [];\nvar isArrayStack: any[] = [];\nvar baseContainer: any, baseAttrName: any;\n/**\n * Interate iteratively through the trace object and find all the array attributes.\n * 1 trace record = 1 series of data\n * @param trace\n */\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\nfunction crawlIntoTrace(container: any, i: number, astrPartial: any) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n}\n\nfunction getLineOptions(line: Partial<ScatterLine> | undefined): LineChartLineOptions | undefined {\n if (!line) {\n return;\n }\n\n let lineOptions: LineChartLineOptions = {};\n if (line.dash) {\n lineOptions = { ...lineOptions, ...dashOptions[line.dash] };\n }\n\n switch (line.shape) {\n case 'spline':\n const smoothing = typeof line.smoothing === 'number' ? line.smoothing : 1;\n lineOptions.curve = d3CurveCardinal.tension(1 - smoothing / 1.3);\n break;\n case 'hv':\n lineOptions.curve = 'stepAfter';\n break;\n case 'vh':\n lineOptions.curve = 'stepBefore';\n break;\n case 'hvh':\n lineOptions.curve = 'step';\n break;\n default:\n lineOptions.curve = 'linear';\n }\n\n return Object.keys(lineOptions).length > 0 ? lineOptions : undefined;\n}\n\nconst isStringArray = (arr: any) => {\n return isArrayOfType(arr, (value: any) => typeof value === 'string');\n};\n\n// TODO: Use binary search to find the appropriate bin for numeric value.\nconst findBinIndex = (\n bins: string[][] | Bin<number, number>[],\n value: string | number | null | undefined,\n isString: boolean,\n) => {\n if (typeof value === 'undefined' || value === null) {\n return -1;\n }\n\n return isString\n ? (bins as string[][]).findIndex(bin => bin.includes(value as string))\n : (bins as Bin<number, number>[]).findIndex(bin => (value as number) >= bin.x0! && (value as number) < bin.x1!);\n};\n\nconst getBinSize = (bin: Bin<number, number>) => {\n return bin.x1! - bin.x0!;\n};\n\nconst getBinCenter = (bin: Bin<number, number>) => {\n return (bin.x1! + bin.x0!) / 2;\n};\n\n// TODO: Add support for date axes\nconst createBins = (\n data: TypedArray | Datum[] | Datum[][] | undefined,\n binStart?: number | string,\n binEnd?: number | string,\n binSize?: number | string,\n) => {\n if (!data || data.length === 0) {\n return [];\n }\n\n if (isStringArray(data)) {\n const categories = Array.from(new Set(data as string[]));\n const start = typeof binStart === 'number' ? Math.ceil(binStart) : 0;\n const stop = typeof binEnd === 'number' ? Math.floor(binEnd) + 1 : categories.length;\n const step = typeof binSize === 'number' ? binSize : 1;\n\n return d3Range(start, stop, step).map(i => categories.slice(i, i + step));\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(data as number[]) as [number, number])\n .nice();\n let [minVal, maxVal] = scale.domain();\n\n minVal = typeof binStart === 'number' ? binStart : minVal;\n maxVal = typeof binEnd === 'number' ? binEnd : maxVal;\n\n const binGenerator = d3Bin().domain([minVal, maxVal]);\n\n if (typeof binSize === 'number') {\n const thresholds: number[] = [];\n let th = minVal;\n const tolerance = 1 / Math.pow(10, binSize.toString().split('.')[1]?.length ?? 0);\n\n while (maxVal + binSize - th > tolerance) {\n thresholds.push(th);\n th += binSize;\n }\n\n minVal = thresholds[0];\n maxVal = thresholds[thresholds.length - 1];\n binGenerator.domain([minVal, maxVal]).thresholds(thresholds);\n }\n\n // NOTE: The last bin generated by d3Bin often has identical x0 and x1 values (both inclusive) and\n // can be ignored if the highest value is already included in the previous bin.\n return binGenerator(data as number[]);\n};\n\nconst calculateHistFunc = (histfunc: PlotData['histfunc'] | undefined, bin: number[]) => {\n switch (histfunc) {\n case 'sum':\n return d3Sum(bin);\n case 'avg':\n return bin.length === 0 ? 0 : d3Sum(bin) / bin.length;\n case 'min':\n return d3Min(bin) ?? 0;\n case 'max':\n return d3Max(bin) ?? 0;\n default:\n return bin.length;\n }\n};\n\nconst calculateHistNorm = (\n histnorm: PlotData['histnorm'] | undefined,\n value: number,\n total: number,\n dx: number,\n dy: number = 1,\n) => {\n switch (histnorm) {\n case 'percent':\n return total === 0 ? 0 : (value / total) * 100;\n case 'probability':\n return total === 0 ? 0 : value / total;\n case 'density':\n return dx * dy === 0 ? 0 : value / (dx * dy);\n case 'probability density':\n return total * dx * dy === 0 ? 0 : value / (total * dx * dy);\n default:\n return value;\n }\n};\n"],"names":["correctYearMonth","findArrayAttributes","getColor","transformPlotlyJsonToDonutProps","transformPlotlyJsonToGVBCProps","transformPlotlyJsonToGaugeProps","transformPlotlyJsonToHeatmapProps","transformPlotlyJsonToHorizontalBarWithAxisProps","transformPlotlyJsonToSankeyProps","transformPlotlyJsonToScatterChartProps","transformPlotlyJsonToVBCProps","transformPlotlyJsonToVSBCProps","dashOptions","dot","strokeDasharray","strokeLinecap","strokeWidth","lineBorderWidth","dash","longdash","dashdot","longdashdot","solid","getLegend","series","index","name","getTitles","layout","titles","chartTitle","title","text","xAxisTitle","xaxis","yAxisTitle","yaxis","xValues","presentYear","Date","getFullYear","length","Array","isArray","Error","dates","map","possiblyMonthValue","parsedDate","isDate","i","currentMonth","getMonth","previousMonth","currentYear","previousYear","setFullYear","month","legendLabel","colorMap","isDarkTheme","current","has","nextColor","getNextColor","size","set","get","getSecondaryYAxisValues","secondaryYAxisValues","yaxis2","secondaryYAxistitle","range","secondaryYScaleOptions","yMinValue","yMaxValue","yValues","y","Math","min","max","undefined","Object","keys","input","firstData","data","mapLegendToDataPoint","labels","forEach","label","color","value","values","legend","width","height","hideLabels","textinfo","includes","donutMarginHorizontal","donutMarginVertical","innerRadius","hole","chartData","hideLegend","showlegend","showLabelsInPercent","fallbackVSBC","mapXToDataPoints","index1","isXYearCategory","isYearArray","x","_series_x","index2","xAxisPoint","toString","lineData","yVal","type","push","lineOptions","getLineOptions","line","barWidth","mode","hideTickOverlap","key","xAxisCalloutData","vbcData","seriesIdx","isXString","isStringArray","xBins","createBins","xbins","start","end","yBins","total","xVal","binIdx","findBinIndex","bin","calculateHistFunc","histfunc","calculateHistNorm","histnorm","getBinSize","join","getBinCenter","x0","x1","isAreaChart","isString","isXDate","isDateArray","isXNumber","isNumberArray","lineColor","fill","parseFloat","marker","markerSize","yMinMaxValues","findNumericMinMaxOfY","chartProps","lineChartData","supportNegativeData","useUTC","roundedTicks","startValue","endValue","enableReflow","yValue","flat","reverse","chartHeight","margin","l","padding","pad","availableHeight","numberOfBars","scalingFactor","gapFactor","barHeight","showYAxisLables","heatmapDataPoints","zMin","Number","POSITIVE_INFINITY","zMax","NEGATIVE_INFINITY","isYString","ybins","zBins","xBinIdx","yBinIdx","z","row","zVal","xBin","xIdx","yBin","yIdx","rectText","_firstData_x1","_firstData_z_yIdx","_firstData_z","heatmapData","defaultDomain","defaultRange","getColorFromToken","DataVizPalette","color1","color2","color3","domainValuesForColorScale","colorscale","arr","rangeValuesForColorScale","sortOrder","node","link","validLinks","val","source","target","filter","sankeyChartData","nodes","nodeId","links","validLink","SankeyChartData","segments","gauge","steps","step","axis","disabled","sublabel","delta","reference","diff","abs","chartValue","minValue","maxValue","chartValueFormat","variant","isPlainObject","obj","prototype","call","getPrototypeOf","hasOwnProperty","arrayAttributes","stack","isArrayStack","baseContainer","baseAttrName","trace","crawlIntoTrace","container","astrPartial","item","newAstrPartial","isArrayOrTypedArray","j","shape","smoothing","curve","d3CurveCardinal","tension","isArrayOfType","bins","findIndex","binStart","binEnd","binSize","categories","from","Set","ceil","stop","floor","d3Range","slice","scale","d3ScaleLinear","domain","d3Extent","nice","minVal","maxVal","binGenerator","d3Bin","thresholds","th","tolerance","pow","split","d3Sum","d3Min","d3Max","dx","dy"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -235,24 +235,25 @@ const useStyles = /*#__PURE__*/ (0, _react.__styles)({
|
|
|
235
235
|
]
|
|
236
236
|
});
|
|
237
237
|
const useGaugeChartStyles = (props)=>{
|
|
238
|
+
var _props_styles, _props_styles1, _props_styles2, _props_styles3, _props_styles4, _props_styles5, _props_styles6, _props_styles7, _props_styles8, _props_styles9, _props_styles10, _props_styles11, _props_styles12, _props_styles13, _props_styles14, _props_styles15, _props_styles16;
|
|
238
239
|
const baseStyles = useStyles();
|
|
239
240
|
return {
|
|
240
|
-
root: (0, _react.mergeClasses)(gaugeChartClassNames.root, baseStyles.root),
|
|
241
|
-
chart: (0, _react.mergeClasses)(gaugeChartClassNames.chart, baseStyles.chart),
|
|
242
|
-
limits: (0, _react.mergeClasses)(gaugeChartClassNames.limits, baseStyles.limits),
|
|
243
|
-
chartValue: (0, _react.mergeClasses)(gaugeChartClassNames.chartValue, baseStyles.chartValue),
|
|
244
|
-
sublabel: (0, _react.mergeClasses)(gaugeChartClassNames.sublabel, baseStyles.sublabel),
|
|
245
|
-
needle: (0, _react.mergeClasses)(gaugeChartClassNames.needle, baseStyles.needle),
|
|
246
|
-
chartTitle: (0, _react.mergeClasses)(gaugeChartClassNames.chartTitle, baseStyles.chartTitle),
|
|
247
|
-
segment: (0, _react.mergeClasses)(gaugeChartClassNames.segment, baseStyles.segment),
|
|
248
|
-
gradientSegment: (0, _react.mergeClasses)(gaugeChartClassNames.gradientSegment, baseStyles.gradientSegment),
|
|
249
|
-
calloutContentRoot: (0, _react.mergeClasses)(gaugeChartClassNames.calloutContentRoot, baseStyles.calloutContentRoot),
|
|
250
|
-
calloutDateTimeContainer: (0, _react.mergeClasses)(gaugeChartClassNames.calloutDateTimeContainer, baseStyles.calloutDateTimeContainer),
|
|
251
|
-
calloutContentX: (0, _react.mergeClasses)(gaugeChartClassNames.calloutContentX, baseStyles.calloutContentX),
|
|
252
|
-
calloutBlockContainer: (0, _react.mergeClasses)(gaugeChartClassNames.calloutBlockContainer, baseStyles.calloutBlockContainer),
|
|
253
|
-
shapeStyles: (0, _react.mergeClasses)(gaugeChartClassNames.shapeStyles, baseStyles.shapeStyles),
|
|
254
|
-
calloutlegendText: (0, _react.mergeClasses)(gaugeChartClassNames.calloutlegendText, baseStyles.calloutlegendText),
|
|
255
|
-
calloutContentY: (0, _react.mergeClasses)(gaugeChartClassNames.calloutContentY, baseStyles.calloutContentY),
|
|
256
|
-
descriptionMessage: (0, _react.mergeClasses)(gaugeChartClassNames.descriptionMessage, baseStyles.descriptionMessage)
|
|
241
|
+
root: (0, _react.mergeClasses)(gaugeChartClassNames.root, baseStyles.root, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),
|
|
242
|
+
chart: (0, _react.mergeClasses)(gaugeChartClassNames.chart, baseStyles.chart, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.chart),
|
|
243
|
+
limits: (0, _react.mergeClasses)(gaugeChartClassNames.limits, baseStyles.limits, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.limits),
|
|
244
|
+
chartValue: (0, _react.mergeClasses)(gaugeChartClassNames.chartValue, baseStyles.chartValue, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.chartValue),
|
|
245
|
+
sublabel: (0, _react.mergeClasses)(gaugeChartClassNames.sublabel, baseStyles.sublabel, (_props_styles4 = props.styles) === null || _props_styles4 === void 0 ? void 0 : _props_styles4.sublabel),
|
|
246
|
+
needle: (0, _react.mergeClasses)(gaugeChartClassNames.needle, baseStyles.needle, (_props_styles5 = props.styles) === null || _props_styles5 === void 0 ? void 0 : _props_styles5.needle),
|
|
247
|
+
chartTitle: (0, _react.mergeClasses)(gaugeChartClassNames.chartTitle, baseStyles.chartTitle, (_props_styles6 = props.styles) === null || _props_styles6 === void 0 ? void 0 : _props_styles6.chartTitle),
|
|
248
|
+
segment: (0, _react.mergeClasses)(gaugeChartClassNames.segment, baseStyles.segment, (_props_styles7 = props.styles) === null || _props_styles7 === void 0 ? void 0 : _props_styles7.segment),
|
|
249
|
+
gradientSegment: (0, _react.mergeClasses)(gaugeChartClassNames.gradientSegment, baseStyles.gradientSegment, (_props_styles8 = props.styles) === null || _props_styles8 === void 0 ? void 0 : _props_styles8.gradientSegment),
|
|
250
|
+
calloutContentRoot: (0, _react.mergeClasses)(gaugeChartClassNames.calloutContentRoot, baseStyles.calloutContentRoot, (_props_styles9 = props.styles) === null || _props_styles9 === void 0 ? void 0 : _props_styles9.calloutContentRoot),
|
|
251
|
+
calloutDateTimeContainer: (0, _react.mergeClasses)(gaugeChartClassNames.calloutDateTimeContainer, baseStyles.calloutDateTimeContainer, (_props_styles10 = props.styles) === null || _props_styles10 === void 0 ? void 0 : _props_styles10.calloutDateTimeContainer),
|
|
252
|
+
calloutContentX: (0, _react.mergeClasses)(gaugeChartClassNames.calloutContentX, baseStyles.calloutContentX, (_props_styles11 = props.styles) === null || _props_styles11 === void 0 ? void 0 : _props_styles11.calloutContentX),
|
|
253
|
+
calloutBlockContainer: (0, _react.mergeClasses)(gaugeChartClassNames.calloutBlockContainer, baseStyles.calloutBlockContainer, (_props_styles12 = props.styles) === null || _props_styles12 === void 0 ? void 0 : _props_styles12.calloutBlockContainer),
|
|
254
|
+
shapeStyles: (0, _react.mergeClasses)(gaugeChartClassNames.shapeStyles, baseStyles.shapeStyles, (_props_styles13 = props.styles) === null || _props_styles13 === void 0 ? void 0 : _props_styles13.shapeStyles),
|
|
255
|
+
calloutlegendText: (0, _react.mergeClasses)(gaugeChartClassNames.calloutlegendText, baseStyles.calloutlegendText, (_props_styles14 = props.styles) === null || _props_styles14 === void 0 ? void 0 : _props_styles14.calloutlegendText),
|
|
256
|
+
calloutContentY: (0, _react.mergeClasses)(gaugeChartClassNames.calloutContentY, baseStyles.calloutContentY, (_props_styles15 = props.styles) === null || _props_styles15 === void 0 ? void 0 : _props_styles15.calloutContentY),
|
|
257
|
+
descriptionMessage: (0, _react.mergeClasses)(gaugeChartClassNames.descriptionMessage, baseStyles.descriptionMessage, (_props_styles16 = props.styles) === null || _props_styles16 === void 0 ? void 0 : _props_styles16.descriptionMessage)
|
|
257
258
|
};
|
|
258
259
|
}; //# sourceMappingURL=useGaugeChartStyles.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useGaugeChartStyles.styles.js"],"sourcesContent":["import { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nexport const gaugeChartClassNames = {\n root: 'fui-gc__root',\n chart: 'fui-gc__chart',\n limits: 'fui-gc__limits',\n chartValue: 'fui-gc__chartValue',\n sublabel: 'fui-gc__sublabel',\n needle: 'fui-gc__needle',\n chartTitle: 'fui-gc__chartTitle',\n segment: 'fui-gc__segment',\n gradientSegment: 'fui-gc__gradientSegment',\n calloutContentRoot: 'fui-gc__calloutContentRoot',\n calloutDateTimeContainer: 'fui-gc__calloutDateTimeContainer',\n calloutContentX: 'fui-gc__calloutContentX',\n calloutBlockContainer: 'fui-gc__calloutBlockContainer',\n shapeStyles: 'fui-gc__shapeStyles',\n calloutlegendText: 'fui-gc__calloutlegendText',\n calloutContentY: 'fui-gc__calloutContentY',\n descriptionMessage: 'fui-gc__descriptionMessage',\n calloutInfoContainer: '',\n legendsContainer: ''\n};\nconst useStyles = makeStyles({\n root: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n height: '100%'\n },\n chart: {\n display: 'block'\n },\n limits: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n },\n chartValue: {\n fontWeight: tokens.fontWeightSemibold,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n },\n sublabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1\n },\n needle: {\n fill: tokens.colorNeutralForeground1,\n stroke: tokens.colorNeutralBackground1\n },\n chartTitle: {\n ...typographyStyles.caption1,\n fill: tokens.colorNeutralForeground1\n },\n segment: {\n outline: 'none',\n stroke: tokens.colorNeutralStroke1\n },\n gradientSegment: {\n width: '100%',\n height: '100%'\n },\n calloutContentRoot: {\n display: 'grid',\n overflow: 'hidden',\n ...shorthands.padding('11px', '16px', '10px', '16px'),\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 lineHeight: '16px',\n opacity: '0.85'\n },\n calloutBlockContainer: {\n ...typographyStyles.body1Strong,\n marginTop: '13px',\n color: tokens.colorNeutralForeground1,\n paddingLeft: '8px',\n display: 'block',\n forcedColorAdjust: 'none'\n },\n shapeStyles: {\n marginRight: '8px'\n },\n calloutlegendText: {\n ...typographyStyles.caption1,\n lineHeight: '16px',\n color: tokens.colorNeutralForeground2,\n forcedColorAdjust: 'auto'\n },\n calloutContentY: {\n ...typographyStyles.body1Strong,\n lineHeight: '22px',\n forcedColorAdjust: 'auto'\n },\n descriptionMessage: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground1,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: `1px solid ${tokens.colorNeutralStroke1}`\n }\n});\nexport const useGaugeChartStyles = (props)=>{\n const baseStyles = useStyles();\n return {\n root: mergeClasses(gaugeChartClassNames.root, baseStyles.root),\n chart: mergeClasses(gaugeChartClassNames.chart, baseStyles.chart),\n limits: mergeClasses(gaugeChartClassNames.limits, baseStyles.limits),\n chartValue: mergeClasses(gaugeChartClassNames.chartValue, baseStyles.chartValue),\n sublabel: mergeClasses(gaugeChartClassNames.sublabel, baseStyles.sublabel),\n needle: mergeClasses(gaugeChartClassNames.needle, baseStyles.needle),\n chartTitle: mergeClasses(gaugeChartClassNames.chartTitle, baseStyles.chartTitle),\n segment: mergeClasses(gaugeChartClassNames.segment, baseStyles.segment),\n gradientSegment: mergeClasses(gaugeChartClassNames.gradientSegment, baseStyles.gradientSegment),\n calloutContentRoot: mergeClasses(gaugeChartClassNames.calloutContentRoot, baseStyles.calloutContentRoot),\n calloutDateTimeContainer: mergeClasses(gaugeChartClassNames.calloutDateTimeContainer, baseStyles.calloutDateTimeContainer),\n calloutContentX: mergeClasses(gaugeChartClassNames.calloutContentX, baseStyles.calloutContentX),\n calloutBlockContainer: mergeClasses(gaugeChartClassNames.calloutBlockContainer, baseStyles.calloutBlockContainer),\n shapeStyles: mergeClasses(gaugeChartClassNames.shapeStyles, baseStyles.shapeStyles),\n calloutlegendText: mergeClasses(gaugeChartClassNames.calloutlegendText, baseStyles.calloutlegendText),\n calloutContentY: mergeClasses(gaugeChartClassNames.calloutContentY, baseStyles.calloutContentY),\n descriptionMessage: mergeClasses(gaugeChartClassNames.descriptionMessage, baseStyles.descriptionMessage)\n };\n};\n"],"names":["gaugeChartClassNames","useGaugeChartStyles","root","chart","limits","chartValue","sublabel","needle","chartTitle","segment","gradientSegment","calloutContentRoot","calloutDateTimeContainer","calloutContentX","calloutBlockContainer","shapeStyles","calloutlegendText","calloutContentY","descriptionMessage","calloutInfoContainer","legendsContainer","useStyles","__styles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","Bt984gj","a9b677","Bqenvij","Bkfmm31","Bvjb7m6","ojy3ng","Bw0xxkn","oeaueh","Bpd4iqm","Befb4lg","B68tc82","Bmxbyg5","Bpg54ce","z8tnut","z189sj","Byoj8tv","uwmqm3","De3pzq","jy2i9i","Brf1p80","abs64n","B6of3ja","sj55zd","t21cq0","g2u3we","icvyot","B4j52fo","i8vvqc","d","p","props","baseStyles","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAEaA,oBAAoB;eAApBA;;IA8GAC,mBAAmB;eAAnBA;;;uBA/GwC;AAC9C,MAAMD,uBAAuB;IAChCE,MAAM;IACNC,OAAO;IACPC,QAAQ;IACRC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC,YAAY;IACZC,SAAS;IACTC,iBAAiB;IACjBC,oBAAoB;IACpBC,0BAA0B;IAC1BC,iBAAiB;IACjBC,uBAAuB;IACvBC,aAAa;IACbC,mBAAmB;IACnBC,iBAAiB;IACjBC,oBAAoB;IACpBC,sBAAsB;IACtBC,kBAAkB;AACtB;AACA,MAAMC,YAAS,WAAA,GAAGC,IAAAA,eAAA,EAAA;IAAApB,MAAA;QAAAqB,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,SAAA;IAAA;IAAA5B,OAAA;QAAAwB,QAAA;IAAA;IAAAvB,QAAA;QAAAmB,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAM,SAAA;QAAAC,SAAA;IAAA;IAAA5B,YAAA;QAAAoB,SAAA;QAAAO,SAAA;QAAAC,SAAA;IAAA;IAAA3B,UAAA;QAAAiB,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAM,SAAA;IAAA;IAAAzB,QAAA;QAAAyB,SAAA;QAAAE,QAAA;IAAA;IAAA1B,YAAA;QAAAe,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAM,SAAA;IAAA;IAAAvB,SAAA;QAAA0B,SAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAJ,QAAA;IAAA;IAAAxB,iBAAA;QAAAoB,QAAA;QAAAC,SAAA;IAAA;IAAApB,oBAAA;QAAAgB,QAAA;QAAAY,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,QAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,SAAA;QAAAC,QAAA;YAAA;YAAA;SAAA;QAAAC,QAAA;QAAAC,QAAA;IAAA;IAAAnC,0BAAA;QAAAe,QAAA;QAAAC,SAAA;QAAAoB,SAAA;IAAA;IAAAnC,iBAAA;QAAAU,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAuB,QAAA;IAAA;IAAAnC,uBAAA;QAAAS,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAwB,SAAA;QAAAC,QAAA;QAAAN,QAAA;YAAA;YAAA;SAAA;QAAAlB,QAAA;QAAAM,SAAA;IAAA;IAAAlB,aAAA;QAAAqC,QAAA;YAAA;YAAA;SAAA;IAAA;IAAApC,mBAAA;QAAAO,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAyB,QAAA;QAAAlB,SAAA;IAAA;IAAAhB,iBAAA;QAAAM,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAO,SAAA;IAAA;IAAAf,oBAAA;QAAAK,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAC,SAAA;QAAAyB,QAAA;QAAAD,SAAA;QAAAR,QAAA;QAAAW,QAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC,QAAA;IAAA;AAAA,GAAA;IAAAC,GAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,GAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAA,GAAA,CAAA;YAAA;SAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAA,GAAA,CAAA;YAAA;SAAA;KAAA;AAAA;AAyFX,MAAMzD,sBAAuB0D,CAAAA;IAChC,MAAMC,aAAavC;IACnB,OAAO;QACHnB,MAAM2D,IAAAA,mBAAY,EAAC7D,qBAAqBE,IAAI,EAAE0D,WAAW1D,IAAI;QAC7DC,OAAO0D,IAAAA,mBAAY,EAAC7D,qBAAqBG,KAAK,EAAEyD,WAAWzD,KAAK;QAChEC,QAAQyD,IAAAA,mBAAY,EAAC7D,qBAAqBI,MAAM,EAAEwD,WAAWxD,MAAM;QACnEC,YAAYwD,IAAAA,mBAAY,EAAC7D,qBAAqBK,UAAU,EAAEuD,WAAWvD,UAAU;QAC/EC,UAAUuD,IAAAA,mBAAY,EAAC7D,qBAAqBM,QAAQ,EAAEsD,WAAWtD,QAAQ;QACzEC,QAAQsD,IAAAA,mBAAY,EAAC7D,qBAAqBO,MAAM,EAAEqD,WAAWrD,MAAM;QACnEC,YAAYqD,IAAAA,mBAAY,EAAC7D,qBAAqBQ,UAAU,EAAEoD,WAAWpD,UAAU;QAC/EC,SAASoD,IAAAA,mBAAY,EAAC7D,qBAAqBS,OAAO,EAAEmD,WAAWnD,OAAO;QACtEC,iBAAiBmD,IAAAA,mBAAY,EAAC7D,qBAAqBU,eAAe,EAAEkD,WAAWlD,eAAe;QAC9FC,oBAAoBkD,IAAAA,mBAAY,EAAC7D,qBAAqBW,kBAAkB,EAAEiD,WAAWjD,kBAAkB;QACvGC,0BAA0BiD,IAAAA,mBAAY,EAAC7D,qBAAqBY,wBAAwB,EAAEgD,WAAWhD,wBAAwB;QACzHC,iBAAiBgD,IAAAA,mBAAY,EAAC7D,qBAAqBa,eAAe,EAAE+C,WAAW/C,eAAe;QAC9FC,uBAAuB+C,IAAAA,mBAAY,EAAC7D,qBAAqBc,qBAAqB,EAAE8C,WAAW9C,qBAAqB;QAChHC,aAAa8C,IAAAA,mBAAY,EAAC7D,qBAAqBe,WAAW,EAAE6C,WAAW7C,WAAW;QAClFC,mBAAmB6C,IAAAA,mBAAY,EAAC7D,qBAAqBgB,iBAAiB,EAAE4C,WAAW5C,iBAAiB;QACpGC,iBAAiB4C,IAAAA,mBAAY,EAAC7D,qBAAqBiB,eAAe,EAAE2C,WAAW3C,eAAe;QAC9FC,oBAAoB2C,IAAAA,mBAAY,EAAC7D,qBAAqBkB,kBAAkB,EAAE0C,WAAW1C,kBAAkB;IAC3G;AACJ"}
|
|
1
|
+
{"version":3,"sources":["useGaugeChartStyles.styles.js"],"sourcesContent":["import { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nexport const gaugeChartClassNames = {\n root: 'fui-gc__root',\n chart: 'fui-gc__chart',\n limits: 'fui-gc__limits',\n chartValue: 'fui-gc__chartValue',\n sublabel: 'fui-gc__sublabel',\n needle: 'fui-gc__needle',\n chartTitle: 'fui-gc__chartTitle',\n segment: 'fui-gc__segment',\n gradientSegment: 'fui-gc__gradientSegment',\n calloutContentRoot: 'fui-gc__calloutContentRoot',\n calloutDateTimeContainer: 'fui-gc__calloutDateTimeContainer',\n calloutContentX: 'fui-gc__calloutContentX',\n calloutBlockContainer: 'fui-gc__calloutBlockContainer',\n shapeStyles: 'fui-gc__shapeStyles',\n calloutlegendText: 'fui-gc__calloutlegendText',\n calloutContentY: 'fui-gc__calloutContentY',\n descriptionMessage: 'fui-gc__descriptionMessage',\n calloutInfoContainer: '',\n legendsContainer: ''\n};\nconst useStyles = makeStyles({\n root: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n height: '100%'\n },\n chart: {\n display: 'block'\n },\n limits: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n },\n chartValue: {\n fontWeight: tokens.fontWeightSemibold,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n },\n sublabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1\n },\n needle: {\n fill: tokens.colorNeutralForeground1,\n stroke: tokens.colorNeutralBackground1\n },\n chartTitle: {\n ...typographyStyles.caption1,\n fill: tokens.colorNeutralForeground1\n },\n segment: {\n outline: 'none',\n stroke: tokens.colorNeutralStroke1\n },\n gradientSegment: {\n width: '100%',\n height: '100%'\n },\n calloutContentRoot: {\n display: 'grid',\n overflow: 'hidden',\n ...shorthands.padding('11px', '16px', '10px', '16px'),\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 lineHeight: '16px',\n opacity: '0.85'\n },\n calloutBlockContainer: {\n ...typographyStyles.body1Strong,\n marginTop: '13px',\n color: tokens.colorNeutralForeground1,\n paddingLeft: '8px',\n display: 'block',\n forcedColorAdjust: 'none'\n },\n shapeStyles: {\n marginRight: '8px'\n },\n calloutlegendText: {\n ...typographyStyles.caption1,\n lineHeight: '16px',\n color: tokens.colorNeutralForeground2,\n forcedColorAdjust: 'auto'\n },\n calloutContentY: {\n ...typographyStyles.body1Strong,\n lineHeight: '22px',\n forcedColorAdjust: 'auto'\n },\n descriptionMessage: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground1,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: `1px solid ${tokens.colorNeutralStroke1}`\n }\n});\nexport const useGaugeChartStyles = (props)=>{\n var _props_styles, _props_styles1, _props_styles2, _props_styles3, _props_styles4, _props_styles5, _props_styles6, _props_styles7, _props_styles8, _props_styles9, _props_styles10, _props_styles11, _props_styles12, _props_styles13, _props_styles14, _props_styles15, _props_styles16;\n const baseStyles = useStyles();\n return {\n root: mergeClasses(gaugeChartClassNames.root, baseStyles.root, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),\n chart: mergeClasses(gaugeChartClassNames.chart, baseStyles.chart, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.chart),\n limits: mergeClasses(gaugeChartClassNames.limits, baseStyles.limits, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.limits),\n chartValue: mergeClasses(gaugeChartClassNames.chartValue, baseStyles.chartValue, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.chartValue),\n sublabel: mergeClasses(gaugeChartClassNames.sublabel, baseStyles.sublabel, (_props_styles4 = props.styles) === null || _props_styles4 === void 0 ? void 0 : _props_styles4.sublabel),\n needle: mergeClasses(gaugeChartClassNames.needle, baseStyles.needle, (_props_styles5 = props.styles) === null || _props_styles5 === void 0 ? void 0 : _props_styles5.needle),\n chartTitle: mergeClasses(gaugeChartClassNames.chartTitle, baseStyles.chartTitle, (_props_styles6 = props.styles) === null || _props_styles6 === void 0 ? void 0 : _props_styles6.chartTitle),\n segment: mergeClasses(gaugeChartClassNames.segment, baseStyles.segment, (_props_styles7 = props.styles) === null || _props_styles7 === void 0 ? void 0 : _props_styles7.segment),\n gradientSegment: mergeClasses(gaugeChartClassNames.gradientSegment, baseStyles.gradientSegment, (_props_styles8 = props.styles) === null || _props_styles8 === void 0 ? void 0 : _props_styles8.gradientSegment),\n calloutContentRoot: mergeClasses(gaugeChartClassNames.calloutContentRoot, baseStyles.calloutContentRoot, (_props_styles9 = props.styles) === null || _props_styles9 === void 0 ? void 0 : _props_styles9.calloutContentRoot),\n calloutDateTimeContainer: mergeClasses(gaugeChartClassNames.calloutDateTimeContainer, baseStyles.calloutDateTimeContainer, (_props_styles10 = props.styles) === null || _props_styles10 === void 0 ? void 0 : _props_styles10.calloutDateTimeContainer),\n calloutContentX: mergeClasses(gaugeChartClassNames.calloutContentX, baseStyles.calloutContentX, (_props_styles11 = props.styles) === null || _props_styles11 === void 0 ? void 0 : _props_styles11.calloutContentX),\n calloutBlockContainer: mergeClasses(gaugeChartClassNames.calloutBlockContainer, baseStyles.calloutBlockContainer, (_props_styles12 = props.styles) === null || _props_styles12 === void 0 ? void 0 : _props_styles12.calloutBlockContainer),\n shapeStyles: mergeClasses(gaugeChartClassNames.shapeStyles, baseStyles.shapeStyles, (_props_styles13 = props.styles) === null || _props_styles13 === void 0 ? void 0 : _props_styles13.shapeStyles),\n calloutlegendText: mergeClasses(gaugeChartClassNames.calloutlegendText, baseStyles.calloutlegendText, (_props_styles14 = props.styles) === null || _props_styles14 === void 0 ? void 0 : _props_styles14.calloutlegendText),\n calloutContentY: mergeClasses(gaugeChartClassNames.calloutContentY, baseStyles.calloutContentY, (_props_styles15 = props.styles) === null || _props_styles15 === void 0 ? void 0 : _props_styles15.calloutContentY),\n descriptionMessage: mergeClasses(gaugeChartClassNames.descriptionMessage, baseStyles.descriptionMessage, (_props_styles16 = props.styles) === null || _props_styles16 === void 0 ? void 0 : _props_styles16.descriptionMessage)\n };\n};\n"],"names":["gaugeChartClassNames","useGaugeChartStyles","root","chart","limits","chartValue","sublabel","needle","chartTitle","segment","gradientSegment","calloutContentRoot","calloutDateTimeContainer","calloutContentX","calloutBlockContainer","shapeStyles","calloutlegendText","calloutContentY","descriptionMessage","calloutInfoContainer","legendsContainer","useStyles","__styles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","Bt984gj","a9b677","Bqenvij","Bkfmm31","Bvjb7m6","ojy3ng","Bw0xxkn","oeaueh","Bpd4iqm","Befb4lg","B68tc82","Bmxbyg5","Bpg54ce","z8tnut","z189sj","Byoj8tv","uwmqm3","De3pzq","jy2i9i","Brf1p80","abs64n","B6of3ja","sj55zd","t21cq0","g2u3we","icvyot","B4j52fo","i8vvqc","d","p","props","_props_styles","_props_styles1","_props_styles2","_props_styles3","_props_styles4","_props_styles5","_props_styles6","_props_styles7","_props_styles8","_props_styles9","_props_styles10","_props_styles11","_props_styles12","_props_styles13","_props_styles14","_props_styles15","_props_styles16","baseStyles","mergeClasses","styles"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -327,7 +327,7 @@ const GroupedVerticalBarChart = /*#__PURE__*/ _react.forwardRef((props = {
|
|
|
327
327
|
onBlur: _onBarLeave,
|
|
328
328
|
onClick: pointData.onClick,
|
|
329
329
|
"aria-label": getAriaLabel(pointData, singleSet.xAxisPoint),
|
|
330
|
-
tabIndex: pointData.legend
|
|
330
|
+
tabIndex: _legendHighlighted(pointData.legend) || _noLegendHighlighted() ? 0 : undefined,
|
|
331
331
|
role: "img"
|
|
332
332
|
})));
|
|
333
333
|
if (pointData.data && !props.hideLabels && _barWidth >= 16 && (_legendHighlighted(pointData.legend) || _noLegendHighlighted())) {
|