@fluentui/react-charts 9.3.5 → 9.3.6
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 +23 -2
- package/dist/index.d.ts +223 -44
- package/lib/AnnotationOnlyChart.js +1 -0
- package/lib/AnnotationOnlyChart.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js +208 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +1 -0
- package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/index.js +2 -0
- package/lib/components/AnnotationOnlyChart/index.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.js +31 -0
- package/lib/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.js.map +1 -0
- package/lib/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.raw.js +23 -0
- package/lib/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.raw.js.map +1 -0
- package/lib/components/AreaChart/useAreaChartStyles.styles.js +11 -6
- package/lib/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js +3 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
- package/lib/components/ChartTable/useChartTableStyles.styles.js +59 -39
- package/lib/components/ChartTable/useChartTableStyles.styles.js.map +1 -1
- package/lib/components/ChartTable/useChartTableStyles.styles.raw.js +5 -5
- package/lib/components/ChartTable/useChartTableStyles.styles.raw.js.map +1 -1
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js +617 -0
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -0
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js +1 -0
- package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -0
- package/lib/components/CommonComponents/Annotations/index.js +2 -0
- package/lib/components/CommonComponents/Annotations/index.js.map +1 -0
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js +173 -0
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js.map +1 -0
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js +126 -0
- package/lib/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -0
- package/lib/components/CommonComponents/CartesianChart.js +157 -132
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/CommonComponents/index.js +2 -0
- package/lib/components/CommonComponents/index.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +29 -13
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js +14 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +2 -6
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js +3 -2
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +39 -19
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlyColorAdapter.js +4 -8
- package/lib/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +644 -72
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js +23 -8
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
- package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js +2 -2
- package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
- package/lib/components/DonutChart/useDonutChartStyles.styles.js +2 -2
- package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib/components/GanttChart/GanttChart.js +3 -3
- package/lib/components/GanttChart/GanttChart.js.map +1 -1
- package/lib/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.js +3 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.js.map +1 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js +3 -1
- package/lib/components/GanttChart/useGanttChartStyles.styles.raw.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 +11 -6
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +3 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +3 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +3 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -1
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +25 -12
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +4 -4
- package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +2 -2
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +3 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +3 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
- package/lib/components/Legends/useLegendsStyles.styles.js +97 -37
- package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -1
- package/lib/components/Legends/useLegendsStyles.styles.raw.js +10 -11
- package/lib/components/Legends/useLegendsStyles.styles.raw.js.map +1 -1
- package/lib/components/LineChart/LineChart.js +1 -1
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/useLineChartStyles.styles.js +15 -10
- package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib/components/LineChart/useLineChartStyles.styles.raw.js +3 -1
- package/lib/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +13 -10
- package/lib/components/SankeyChart/useSankeyChartStyles.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/ScatterChart.types.js.map +1 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js +13 -8
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js +3 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.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/useVerticalBarChartStyles.styles.js +13 -8
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +3 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +11 -6
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +3 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/types/ChartAnnotation.js +1 -0
- package/lib/types/ChartAnnotation.js.map +1 -0
- package/lib/types/index.js +1 -0
- package/lib/types/index.js.map +1 -1
- package/lib/utilities/Common.styles.js +1 -2
- package/lib/utilities/Common.styles.js.map +1 -1
- package/lib/utilities/Common.styles.raw.js +1 -2
- package/lib/utilities/Common.styles.raw.js.map +1 -1
- package/lib/utilities/image-export-utils.js +108 -0
- package/lib/utilities/image-export-utils.js.map +1 -1
- package/lib/utilities/utilities.js +16 -13
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-commonjs/AnnotationOnlyChart.js +6 -0
- package/lib-commonjs/AnnotationOnlyChart.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js +219 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js +6 -0
- package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.types.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/index.js +7 -0
- package/lib-commonjs/components/AnnotationOnlyChart/index.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.js +56 -0
- package/lib-commonjs/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.js.map +1 -0
- package/lib-commonjs/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.raw.js +33 -0
- package/lib-commonjs/components/AnnotationOnlyChart/useAnnotationOnlyChartStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +14 -15
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.js +74 -102
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.raw.js +4 -4
- package/lib-commonjs/components/ChartTable/useChartTableStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js +628 -0
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js +4 -0
- package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/index.js +7 -0
- package/lib-commonjs/components/CommonComponents/Annotations/index.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js +265 -0
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js +161 -0
- package/lib-commonjs/components/CommonComponents/Annotations/useChartAnnotationLayer.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +157 -131
- 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/index.js +2 -0
- package/lib-commonjs/components/CommonComponents/index.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +32 -21
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js +14 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +0 -14
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js +2 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +38 -18
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +630 -38
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +25 -16
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +2 -2
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GanttChart/GanttChart.js +3 -3
- package/lib-commonjs/components/GanttChart/GanttChart.js.map +1 -1
- package/lib-commonjs/components/GanttChart/GanttChart.types.js.map +1 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js +3 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.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 +14 -15
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +3 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +47 -34
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +3 -3
- package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +2 -2
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +3 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +144 -86
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js +9 -10
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +18 -19
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +16 -19
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.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/ScatterChart.types.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +16 -17
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.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/useVerticalBarChartStyles.styles.js +16 -17
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +14 -15
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +3 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/index.js +1 -0
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/types/ChartAnnotation.js +6 -0
- package/lib-commonjs/types/ChartAnnotation.js.map +1 -0
- package/lib-commonjs/types/index.js +1 -0
- package/lib-commonjs/types/index.js.map +1 -1
- package/lib-commonjs/utilities/Common.styles.js +1 -2
- package/lib-commonjs/utilities/Common.styles.js.map +1 -1
- package/lib-commonjs/utilities/Common.styles.raw.js +1 -2
- package/lib-commonjs/utilities/Common.styles.raw.js.map +1 -1
- package/lib-commonjs/utilities/image-export-utils.js +108 -0
- package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
- package/lib-commonjs/utilities/utilities.js +16 -13
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +11 -11
|
@@ -182,8 +182,7 @@ const getSecondaryYAxisValues = (data, layout)=>{
|
|
|
182
182
|
}
|
|
183
183
|
};
|
|
184
184
|
};
|
|
185
|
-
export const _getGaugeAxisColor = (colorway, colorwayType, color,
|
|
186
|
-
colorMap, isDarkTheme)=>{
|
|
185
|
+
export const _getGaugeAxisColor = (colorway, colorwayType, color, colorMap, isDarkTheme)=>{
|
|
187
186
|
const extractedColors = extractColor(colorway, colorwayType, color, colorMap, isDarkTheme);
|
|
188
187
|
return resolveColor(extractedColors, 0, '', colorMap, colorway, isDarkTheme);
|
|
189
188
|
};
|
|
@@ -206,6 +205,24 @@ export const resolveXAxisPoint = (x, isXYearCategory, isXString, isXDate, isXNum
|
|
|
206
205
|
}
|
|
207
206
|
return x;
|
|
208
207
|
};
|
|
208
|
+
/**
|
|
209
|
+
* Extracts unique X-axis categories from Plotly data traces
|
|
210
|
+
* @param data Array of Plotly data traces
|
|
211
|
+
* @returns Array of unique x values
|
|
212
|
+
*/ const extractXCategories = (data)=>{
|
|
213
|
+
return Array.from(new Set((data !== null && data !== void 0 ? data : []).flatMap((trace)=>{
|
|
214
|
+
const xData = trace.x;
|
|
215
|
+
if (!xData) {
|
|
216
|
+
return [];
|
|
217
|
+
}
|
|
218
|
+
if (Array.isArray(xData)) {
|
|
219
|
+
return xData.flat().map((x)=>{
|
|
220
|
+
return x;
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
return [];
|
|
224
|
+
}).filter((x)=>x !== undefined && x !== null)));
|
|
225
|
+
};
|
|
209
226
|
/**
|
|
210
227
|
* Checks if a key should be ignored during normalization
|
|
211
228
|
* @param key The key to check
|
|
@@ -244,6 +261,526 @@ export const resolveXAxisPoint = (x, isXYearCategory, isXString, isXDate, isXNum
|
|
|
244
261
|
}
|
|
245
262
|
return flattened;
|
|
246
263
|
};
|
|
264
|
+
const encodeHtmlEntities = (value)=>value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
|
265
|
+
const toFiniteNumber = (value)=>{
|
|
266
|
+
if (value === undefined || value === null) {
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
269
|
+
const numeric = typeof value === 'number' ? value : Number(value);
|
|
270
|
+
return Number.isFinite(numeric) ? numeric : undefined;
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* Normalizes Plotly axis reference strings so equivalent aliases (e.g. `xaxis1`, `x1`) collapse to the base axis id.
|
|
274
|
+
*/ const normalizeAxisRef = (ref, axis)=>{
|
|
275
|
+
if (!ref) {
|
|
276
|
+
return axis;
|
|
277
|
+
}
|
|
278
|
+
const normalized = ref.toLowerCase();
|
|
279
|
+
if (normalized === axis || normalized === `${axis}axis` || normalized === `${axis}axis1` || normalized === `${axis}1`) {
|
|
280
|
+
return axis;
|
|
281
|
+
}
|
|
282
|
+
const match = normalized.match(/^([xy])(axis)?(\d+)$/);
|
|
283
|
+
if (match && match[1] === axis && match[3]) {
|
|
284
|
+
return match[3] === '1' ? axis : `${axis}${match[3]}`;
|
|
285
|
+
}
|
|
286
|
+
return normalized;
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* Scans the data traces bound to a given axis and returns the numeric min/max values plotted on that axis.
|
|
290
|
+
*/ const getAxisNumericRangeFromData = (axis, ref, layout, data)=>{
|
|
291
|
+
if (!data || data.length === 0) {
|
|
292
|
+
return undefined;
|
|
293
|
+
}
|
|
294
|
+
const axisLayout = getAxisLayoutByRef(layout, ref, axis);
|
|
295
|
+
const targetRef = normalizeAxisRef(ref, axis);
|
|
296
|
+
const traceAxisKey = axis === 'x' ? 'xaxis' : 'yaxis';
|
|
297
|
+
let minValue;
|
|
298
|
+
let maxValue;
|
|
299
|
+
data.forEach((trace)=>{
|
|
300
|
+
const plotTrace = trace;
|
|
301
|
+
const traceAxisRef = normalizeAxisRef(plotTrace[traceAxisKey], axis);
|
|
302
|
+
if (traceAxisRef !== targetRef) {
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
const values = axis === 'x' ? plotTrace.x : plotTrace.y;
|
|
306
|
+
if (!isArrayOrTypedArray(values)) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const arrayLike = values;
|
|
310
|
+
for(let index = 0; index < arrayLike.length; index++){
|
|
311
|
+
const value = arrayLike[index];
|
|
312
|
+
const numeric = toNumericValue(convertDataValue(value, axisLayout));
|
|
313
|
+
if (numeric === undefined || Number.isNaN(numeric)) {
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
minValue = minValue === undefined ? numeric : Math.min(minValue, numeric);
|
|
317
|
+
maxValue = maxValue === undefined ? numeric : Math.max(maxValue, numeric);
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
if (minValue === undefined || maxValue === undefined || minValue === maxValue) {
|
|
321
|
+
return undefined;
|
|
322
|
+
}
|
|
323
|
+
return [
|
|
324
|
+
minValue,
|
|
325
|
+
maxValue
|
|
326
|
+
];
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Converts Plotly's bottom-origin relative Y coordinate into the SVG top-origin space used by our overlay.
|
|
330
|
+
*/ const transformRelativeYForChart = (value)=>{
|
|
331
|
+
if (value === undefined) {
|
|
332
|
+
return undefined;
|
|
333
|
+
}
|
|
334
|
+
if (!Number.isFinite(value)) {
|
|
335
|
+
return undefined;
|
|
336
|
+
}
|
|
337
|
+
return 1 - value;
|
|
338
|
+
};
|
|
339
|
+
const mapHorizontalAlign = (anchor)=>{
|
|
340
|
+
switch((anchor !== null && anchor !== void 0 ? anchor : '').toLowerCase()){
|
|
341
|
+
case 'left':
|
|
342
|
+
return 'start';
|
|
343
|
+
case 'center':
|
|
344
|
+
return 'center';
|
|
345
|
+
case 'right':
|
|
346
|
+
return 'end';
|
|
347
|
+
default:
|
|
348
|
+
return undefined;
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
const mapVerticalAlign = (anchor)=>{
|
|
352
|
+
switch((anchor !== null && anchor !== void 0 ? anchor : '').toLowerCase()){
|
|
353
|
+
case 'top':
|
|
354
|
+
return 'top';
|
|
355
|
+
case 'middle':
|
|
356
|
+
return 'middle';
|
|
357
|
+
case 'bottom':
|
|
358
|
+
return 'bottom';
|
|
359
|
+
default:
|
|
360
|
+
return undefined;
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
const appendPx = (value)=>{
|
|
364
|
+
if (value === undefined || value === null) {
|
|
365
|
+
return undefined;
|
|
366
|
+
}
|
|
367
|
+
if (typeof value === 'string') {
|
|
368
|
+
return value;
|
|
369
|
+
}
|
|
370
|
+
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
371
|
+
return `${value}px`;
|
|
372
|
+
}
|
|
373
|
+
return undefined;
|
|
374
|
+
};
|
|
375
|
+
/**
|
|
376
|
+
* Maps Plotly's axis reference string to one of our coordinate interpretation modes (axis, relative, or pixel).
|
|
377
|
+
*/ const resolveRefType = (ref, axis)=>{
|
|
378
|
+
if (!ref) {
|
|
379
|
+
return 'axis';
|
|
380
|
+
}
|
|
381
|
+
const normalized = ref.toLowerCase();
|
|
382
|
+
if (normalized === 'pixel') {
|
|
383
|
+
return 'pixel';
|
|
384
|
+
}
|
|
385
|
+
if (normalized === 'paper') {
|
|
386
|
+
return 'relative';
|
|
387
|
+
}
|
|
388
|
+
if (normalized.endsWith(' domain')) {
|
|
389
|
+
return normalized.startsWith(axis) ? 'relative' : undefined;
|
|
390
|
+
}
|
|
391
|
+
const match = normalized.match(/^([xy])(\d*)$/);
|
|
392
|
+
if (match && match[1] === axis) {
|
|
393
|
+
return 'axis';
|
|
394
|
+
}
|
|
395
|
+
return undefined;
|
|
396
|
+
};
|
|
397
|
+
/**
|
|
398
|
+
* Retrieves the appropriate axis layout section from Plotly's layout given an axis reference alias.
|
|
399
|
+
*/ const getAxisLayoutByRef = (layout, ref, axis)=>{
|
|
400
|
+
if (!layout) {
|
|
401
|
+
return undefined;
|
|
402
|
+
}
|
|
403
|
+
const defaultAxisKey = `${axis}axis`;
|
|
404
|
+
if (!ref) {
|
|
405
|
+
return layout[defaultAxisKey];
|
|
406
|
+
}
|
|
407
|
+
const normalized = ref.toLowerCase();
|
|
408
|
+
if (normalized === 'paper' || normalized === 'pixel' || normalized.endsWith(' domain')) {
|
|
409
|
+
return layout[defaultAxisKey];
|
|
410
|
+
}
|
|
411
|
+
const match = normalized.match(/^([xy])(\d*)$/);
|
|
412
|
+
if (match && match[1] === axis) {
|
|
413
|
+
const index = match[2];
|
|
414
|
+
if (index && index !== '' && index !== '1') {
|
|
415
|
+
const axisKey = `${axis}axis${index}`;
|
|
416
|
+
return layout[axisKey];
|
|
417
|
+
}
|
|
418
|
+
return layout[defaultAxisKey];
|
|
419
|
+
}
|
|
420
|
+
return layout[defaultAxisKey];
|
|
421
|
+
};
|
|
422
|
+
/**
|
|
423
|
+
* Normalizes raw Plotly data values into canonical number/date/string types based on axis configuration.
|
|
424
|
+
*/ const convertDataValue = (value, axisLayout)=>{
|
|
425
|
+
if (value === undefined || value === null) {
|
|
426
|
+
return undefined;
|
|
427
|
+
}
|
|
428
|
+
if ((axisLayout === null || axisLayout === void 0 ? void 0 : axisLayout.type) === 'date' || isDate(value)) {
|
|
429
|
+
const dateValue = value instanceof Date ? value : new Date(value);
|
|
430
|
+
return Number.isNaN(dateValue.getTime()) ? undefined : dateValue;
|
|
431
|
+
}
|
|
432
|
+
if (typeof value === 'number') {
|
|
433
|
+
return value;
|
|
434
|
+
}
|
|
435
|
+
if ((axisLayout === null || axisLayout === void 0 ? void 0 : axisLayout.type) === 'linear' || (axisLayout === null || axisLayout === void 0 ? void 0 : axisLayout.type) === 'log') {
|
|
436
|
+
const numeric = Number(value);
|
|
437
|
+
return Number.isFinite(numeric) ? numeric : undefined;
|
|
438
|
+
}
|
|
439
|
+
if (value instanceof Date) {
|
|
440
|
+
return value;
|
|
441
|
+
}
|
|
442
|
+
return value;
|
|
443
|
+
};
|
|
444
|
+
const toNumericValue = (value)=>{
|
|
445
|
+
if (value instanceof Date) {
|
|
446
|
+
const timestamp = value.getTime();
|
|
447
|
+
return Number.isFinite(timestamp) ? timestamp : undefined;
|
|
448
|
+
}
|
|
449
|
+
if (typeof value === 'number') {
|
|
450
|
+
return Number.isFinite(value) ? value : undefined;
|
|
451
|
+
}
|
|
452
|
+
if (typeof value === 'string') {
|
|
453
|
+
const numeric = Number(value);
|
|
454
|
+
return Number.isFinite(numeric) ? numeric : undefined;
|
|
455
|
+
}
|
|
456
|
+
return undefined;
|
|
457
|
+
};
|
|
458
|
+
const toRelativeCoordinate = (value, axisLayout, fallbackRange)=>{
|
|
459
|
+
const range = Array.isArray(axisLayout === null || axisLayout === void 0 ? void 0 : axisLayout.range) ? axisLayout.range : undefined;
|
|
460
|
+
let start = range && range.length >= 2 ? toNumericValue(convertDataValue(range[0], axisLayout)) : undefined;
|
|
461
|
+
let end = range && range.length >= 2 ? toNumericValue(convertDataValue(range[1], axisLayout)) : undefined;
|
|
462
|
+
if ((start === undefined || end === undefined || start === end) && fallbackRange) {
|
|
463
|
+
[start, end] = fallbackRange;
|
|
464
|
+
}
|
|
465
|
+
const current = toNumericValue(convertDataValue(value, axisLayout));
|
|
466
|
+
if (start === undefined || end === undefined || current === undefined || start === end) {
|
|
467
|
+
return undefined;
|
|
468
|
+
}
|
|
469
|
+
const relative = (current - start) / (end - start);
|
|
470
|
+
return Number.isFinite(relative) ? relative : undefined;
|
|
471
|
+
};
|
|
472
|
+
const createAnnotationId = (text, index)=>{
|
|
473
|
+
const normalized = text.replace(/\s+/g, ' ').trim();
|
|
474
|
+
if (normalized) {
|
|
475
|
+
const slug = normalized.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '').slice(0, 32);
|
|
476
|
+
if (slug) {
|
|
477
|
+
return `annotation-${index}-${slug}`;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
return `annotation-${index}`;
|
|
481
|
+
};
|
|
482
|
+
const DEFAULT_ARROW_OFFSET = -40;
|
|
483
|
+
const mapArrowsideToArrow = (annotation)=>{
|
|
484
|
+
let includeStart = false;
|
|
485
|
+
let includeEnd = false;
|
|
486
|
+
const arrowSide = typeof (annotation === null || annotation === void 0 ? void 0 : annotation.arrowside) === 'string' ? annotation === null || annotation === void 0 ? void 0 : annotation.arrowside.toLowerCase() : undefined;
|
|
487
|
+
if (arrowSide) {
|
|
488
|
+
includeStart = arrowSide.includes('start');
|
|
489
|
+
includeEnd = arrowSide.includes('end');
|
|
490
|
+
}
|
|
491
|
+
const endHead = toFiniteNumber(annotation === null || annotation === void 0 ? void 0 : annotation.arrowhead);
|
|
492
|
+
const startHead = toFiniteNumber(annotation.startarrowhead);
|
|
493
|
+
if (endHead !== undefined && endHead > 0) {
|
|
494
|
+
includeEnd = true;
|
|
495
|
+
}
|
|
496
|
+
if (startHead !== undefined && startHead > 0) {
|
|
497
|
+
includeStart = true;
|
|
498
|
+
}
|
|
499
|
+
if (includeStart && includeEnd) {
|
|
500
|
+
return 'both';
|
|
501
|
+
}
|
|
502
|
+
if (includeStart) {
|
|
503
|
+
return 'start';
|
|
504
|
+
}
|
|
505
|
+
if (includeEnd) {
|
|
506
|
+
return 'end';
|
|
507
|
+
}
|
|
508
|
+
return 'none';
|
|
509
|
+
};
|
|
510
|
+
const mapArrowDashToPattern = (value)=>{
|
|
511
|
+
if (!value) {
|
|
512
|
+
return undefined;
|
|
513
|
+
}
|
|
514
|
+
const normalized = value.trim().toLowerCase();
|
|
515
|
+
switch(normalized){
|
|
516
|
+
case 'solid':
|
|
517
|
+
return undefined;
|
|
518
|
+
case 'dot':
|
|
519
|
+
return '1, 5';
|
|
520
|
+
case 'dash':
|
|
521
|
+
return '5, 5';
|
|
522
|
+
case 'longdash':
|
|
523
|
+
return '10, 5';
|
|
524
|
+
case 'dashdot':
|
|
525
|
+
return '5, 5, 1, 5';
|
|
526
|
+
case 'longdashdot':
|
|
527
|
+
return '10, 5, 1, 5';
|
|
528
|
+
default:
|
|
529
|
+
if (/^\d+(\s|,)*\d*$/.test(normalized.replace(/\s+/g, ' '))) {
|
|
530
|
+
return normalized.replace(/\s+/g, ' ');
|
|
531
|
+
}
|
|
532
|
+
return value;
|
|
533
|
+
}
|
|
534
|
+
};
|
|
535
|
+
/**
|
|
536
|
+
* Converts a Plotly annotation definition into the internal `ChartAnnotation` format, translating coordinates,
|
|
537
|
+
* layout alignment, styling, and connector metadata while skipping unsupported configurations.
|
|
538
|
+
*/ const convertPlotlyAnnotation = (annotation, layout, data, index)=>{
|
|
539
|
+
if (!annotation || annotation.visible === false) {
|
|
540
|
+
return undefined;
|
|
541
|
+
}
|
|
542
|
+
const xRefType = resolveRefType(annotation.xref, 'x');
|
|
543
|
+
const yRefType = resolveRefType(annotation.yref, 'y');
|
|
544
|
+
if (!xRefType || !yRefType) {
|
|
545
|
+
return undefined;
|
|
546
|
+
}
|
|
547
|
+
let coordinates;
|
|
548
|
+
if (xRefType === 'axis' && yRefType === 'axis') {
|
|
549
|
+
const xAxisLayout = getAxisLayoutByRef(layout, annotation.xref, 'x');
|
|
550
|
+
const yAxisLayout = getAxisLayoutByRef(layout, annotation.yref, 'y');
|
|
551
|
+
const xValue = convertDataValue(annotation.x, xAxisLayout);
|
|
552
|
+
const yValue = convertDataValue(annotation.y, yAxisLayout);
|
|
553
|
+
if (xValue === undefined || yValue === undefined) {
|
|
554
|
+
return undefined;
|
|
555
|
+
}
|
|
556
|
+
const yRefNormalized = typeof annotation.yref === 'string' ? annotation.yref.toLowerCase() : undefined;
|
|
557
|
+
coordinates = {
|
|
558
|
+
type: 'data',
|
|
559
|
+
x: xValue,
|
|
560
|
+
y: yValue,
|
|
561
|
+
...yRefNormalized === 'y2' ? {
|
|
562
|
+
yAxis: 'secondary'
|
|
563
|
+
} : {}
|
|
564
|
+
};
|
|
565
|
+
} else if (xRefType === 'relative' && yRefType === 'relative') {
|
|
566
|
+
const xValue = toFiniteNumber(annotation.x);
|
|
567
|
+
const yValue = toFiniteNumber(annotation.y);
|
|
568
|
+
const chartRelativeY = transformRelativeYForChart(yValue);
|
|
569
|
+
if (xValue === undefined || chartRelativeY === undefined) {
|
|
570
|
+
return undefined;
|
|
571
|
+
}
|
|
572
|
+
coordinates = {
|
|
573
|
+
type: 'relative',
|
|
574
|
+
x: xValue,
|
|
575
|
+
y: chartRelativeY
|
|
576
|
+
};
|
|
577
|
+
} else if (xRefType === 'relative' && yRefType === 'axis') {
|
|
578
|
+
const xValue = toFiniteNumber(annotation.x);
|
|
579
|
+
const yAxisLayout = getAxisLayoutByRef(layout, annotation.yref, 'y');
|
|
580
|
+
const yFallbackRange = getAxisNumericRangeFromData('y', annotation.yref, layout, data);
|
|
581
|
+
const yRelative = toRelativeCoordinate(annotation.y, yAxisLayout, yFallbackRange);
|
|
582
|
+
const chartRelativeY = transformRelativeYForChart(yRelative);
|
|
583
|
+
if (xValue === undefined || chartRelativeY === undefined) {
|
|
584
|
+
return undefined;
|
|
585
|
+
}
|
|
586
|
+
coordinates = {
|
|
587
|
+
type: 'relative',
|
|
588
|
+
x: xValue,
|
|
589
|
+
y: chartRelativeY
|
|
590
|
+
};
|
|
591
|
+
} else if (xRefType === 'axis' && yRefType === 'relative') {
|
|
592
|
+
const yValue = toFiniteNumber(annotation.y);
|
|
593
|
+
const xAxisLayout = getAxisLayoutByRef(layout, annotation.xref, 'x');
|
|
594
|
+
const xFallbackRange = getAxisNumericRangeFromData('x', annotation.xref, layout, data);
|
|
595
|
+
const xRelative = toRelativeCoordinate(annotation.x, xAxisLayout, xFallbackRange);
|
|
596
|
+
const chartRelativeY = transformRelativeYForChart(yValue);
|
|
597
|
+
if (xRelative === undefined || chartRelativeY === undefined) {
|
|
598
|
+
return undefined;
|
|
599
|
+
}
|
|
600
|
+
coordinates = {
|
|
601
|
+
type: 'relative',
|
|
602
|
+
x: xRelative,
|
|
603
|
+
y: chartRelativeY
|
|
604
|
+
};
|
|
605
|
+
} else if (xRefType === 'pixel' && yRefType === 'pixel') {
|
|
606
|
+
const xValue = toFiniteNumber(annotation.x);
|
|
607
|
+
const yValue = toFiniteNumber(annotation.y);
|
|
608
|
+
if (xValue === undefined || yValue === undefined) {
|
|
609
|
+
return undefined;
|
|
610
|
+
}
|
|
611
|
+
coordinates = {
|
|
612
|
+
type: 'pixel',
|
|
613
|
+
x: xValue,
|
|
614
|
+
y: yValue
|
|
615
|
+
};
|
|
616
|
+
} else {
|
|
617
|
+
return undefined;
|
|
618
|
+
}
|
|
619
|
+
const textValue = annotation.text;
|
|
620
|
+
const rawText = textValue === undefined || textValue === null ? '' : String(textValue);
|
|
621
|
+
const encodedText = encodeHtmlEntities(rawText);
|
|
622
|
+
const chartAnnotation = {
|
|
623
|
+
id: createAnnotationId(encodedText, index),
|
|
624
|
+
text: encodedText,
|
|
625
|
+
coordinates
|
|
626
|
+
};
|
|
627
|
+
const layoutProps = {};
|
|
628
|
+
const styleProps = {};
|
|
629
|
+
const showArrow = annotation.showarrow === undefined ? false : !!annotation.showarrow;
|
|
630
|
+
const clipOnAxis = annotation.cliponaxis;
|
|
631
|
+
if (clipOnAxis !== undefined) {
|
|
632
|
+
layoutProps.clipToBounds = !!clipOnAxis;
|
|
633
|
+
} else if (coordinates.type === 'data') {
|
|
634
|
+
layoutProps.clipToBounds = true;
|
|
635
|
+
}
|
|
636
|
+
const horizontalAlign = mapHorizontalAlign(annotation.xanchor);
|
|
637
|
+
if (horizontalAlign) {
|
|
638
|
+
layoutProps.align = horizontalAlign;
|
|
639
|
+
}
|
|
640
|
+
if (!layoutProps.align) {
|
|
641
|
+
const alignProp = mapHorizontalAlign(annotation.align);
|
|
642
|
+
if (alignProp) {
|
|
643
|
+
layoutProps.align = alignProp;
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
const verticalAlign = mapVerticalAlign(annotation.yanchor);
|
|
647
|
+
if (verticalAlign) {
|
|
648
|
+
layoutProps.verticalAlign = verticalAlign;
|
|
649
|
+
}
|
|
650
|
+
if (!layoutProps.verticalAlign) {
|
|
651
|
+
const valignProp = mapVerticalAlign(annotation.valign);
|
|
652
|
+
if (valignProp) {
|
|
653
|
+
layoutProps.verticalAlign = valignProp;
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
const offsetXComponents = [];
|
|
657
|
+
let hasExplicitOffset = false;
|
|
658
|
+
const ax = toFiniteNumber(annotation.ax);
|
|
659
|
+
const axRef = typeof annotation.axref === 'string' ? annotation.axref.toLowerCase() : undefined;
|
|
660
|
+
if (ax !== undefined && (axRef === undefined || axRef === 'pixel')) {
|
|
661
|
+
offsetXComponents.push(ax);
|
|
662
|
+
hasExplicitOffset = true;
|
|
663
|
+
}
|
|
664
|
+
const xShift = toFiniteNumber(annotation.xshift);
|
|
665
|
+
if (xShift !== undefined) {
|
|
666
|
+
offsetXComponents.push(xShift);
|
|
667
|
+
hasExplicitOffset = true;
|
|
668
|
+
}
|
|
669
|
+
if (offsetXComponents.length > 0) {
|
|
670
|
+
const offsetX = offsetXComponents.reduce((sum, value)=>sum + value, 0);
|
|
671
|
+
if (offsetX !== 0) {
|
|
672
|
+
layoutProps.offsetX = offsetX;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
const offsetYComponents = [];
|
|
676
|
+
const ay = toFiniteNumber(annotation.ay);
|
|
677
|
+
const ayRef = typeof annotation.ayref === 'string' ? annotation.ayref.toLowerCase() : undefined;
|
|
678
|
+
if (ay !== undefined && (ayRef === undefined || ayRef === 'pixel')) {
|
|
679
|
+
offsetYComponents.push(ay);
|
|
680
|
+
hasExplicitOffset = true;
|
|
681
|
+
}
|
|
682
|
+
const yShift = toFiniteNumber(annotation.yshift);
|
|
683
|
+
if (yShift !== undefined) {
|
|
684
|
+
offsetYComponents.push(yShift);
|
|
685
|
+
hasExplicitOffset = true;
|
|
686
|
+
}
|
|
687
|
+
if (offsetYComponents.length > 0) {
|
|
688
|
+
const offsetY = offsetYComponents.reduce((sum, value)=>sum + value, 0);
|
|
689
|
+
if (offsetY !== 0) {
|
|
690
|
+
layoutProps.offsetY = offsetY;
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
if (showArrow && !hasExplicitOffset && layoutProps.offsetY === undefined) {
|
|
694
|
+
layoutProps.offsetY = DEFAULT_ARROW_OFFSET;
|
|
695
|
+
}
|
|
696
|
+
const maxWidth = toFiniteNumber(annotation.width);
|
|
697
|
+
if (maxWidth !== undefined) {
|
|
698
|
+
layoutProps.maxWidth = maxWidth;
|
|
699
|
+
}
|
|
700
|
+
if (annotation.bgcolor) {
|
|
701
|
+
styleProps.backgroundColor = annotation.bgcolor;
|
|
702
|
+
}
|
|
703
|
+
if (annotation.bordercolor) {
|
|
704
|
+
styleProps.borderColor = annotation.bordercolor;
|
|
705
|
+
}
|
|
706
|
+
const borderWidth = toFiniteNumber(annotation.borderwidth);
|
|
707
|
+
if (borderWidth !== undefined) {
|
|
708
|
+
styleProps.borderWidth = borderWidth;
|
|
709
|
+
}
|
|
710
|
+
const borderPad = appendPx(annotation.borderpad);
|
|
711
|
+
if (borderPad) {
|
|
712
|
+
styleProps.padding = borderPad;
|
|
713
|
+
}
|
|
714
|
+
const opacity = toFiniteNumber(annotation.opacity);
|
|
715
|
+
if (opacity !== undefined) {
|
|
716
|
+
styleProps.opacity = opacity;
|
|
717
|
+
}
|
|
718
|
+
if (annotation.font) {
|
|
719
|
+
const font = annotation.font;
|
|
720
|
+
if (font === null || font === void 0 ? void 0 : font.color) {
|
|
721
|
+
styleProps.textColor = font.color;
|
|
722
|
+
}
|
|
723
|
+
const fontSize = appendPx(font === null || font === void 0 ? void 0 : font.size);
|
|
724
|
+
if (fontSize) {
|
|
725
|
+
styleProps.fontSize = fontSize;
|
|
726
|
+
}
|
|
727
|
+
if (font === null || font === void 0 ? void 0 : font.weight) {
|
|
728
|
+
styleProps.fontWeight = font.weight;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
const textAngle = annotation === null || annotation === void 0 ? void 0 : annotation.textangle;
|
|
732
|
+
if (typeof textAngle === 'number' && !Number.isNaN(textAngle)) {
|
|
733
|
+
styleProps.rotation = textAngle;
|
|
734
|
+
} else if (typeof textAngle === 'string' && textAngle.toLowerCase() !== 'auto') {
|
|
735
|
+
const parsedAngle = Number(textAngle);
|
|
736
|
+
if (!Number.isNaN(parsedAngle)) {
|
|
737
|
+
styleProps.rotation = parsedAngle;
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
if (Object.keys(layoutProps).length > 0) {
|
|
741
|
+
chartAnnotation.layout = layoutProps;
|
|
742
|
+
}
|
|
743
|
+
if (Object.keys(styleProps).length > 0) {
|
|
744
|
+
chartAnnotation.style = styleProps;
|
|
745
|
+
}
|
|
746
|
+
if (showArrow) {
|
|
747
|
+
var _annotation_arrowcolor;
|
|
748
|
+
const arrowColor = (_annotation_arrowcolor = annotation.arrowcolor) !== null && _annotation_arrowcolor !== void 0 ? _annotation_arrowcolor : styleProps.textColor;
|
|
749
|
+
const arrowWidth = toFiniteNumber(annotation.arrowwidth);
|
|
750
|
+
const endPadding = toFiniteNumber(annotation.standoff);
|
|
751
|
+
const startPadding = toFiniteNumber(annotation.startstandoff);
|
|
752
|
+
const dashPattern = mapArrowDashToPattern(annotation.arrowdash);
|
|
753
|
+
chartAnnotation.connector = {
|
|
754
|
+
...arrowColor ? {
|
|
755
|
+
strokeColor: arrowColor
|
|
756
|
+
} : {},
|
|
757
|
+
...arrowWidth !== undefined ? {
|
|
758
|
+
strokeWidth: arrowWidth
|
|
759
|
+
} : {},
|
|
760
|
+
...endPadding !== undefined ? {
|
|
761
|
+
endPadding: Math.max(endPadding, 0)
|
|
762
|
+
} : {},
|
|
763
|
+
...startPadding !== undefined ? {
|
|
764
|
+
startPadding: Math.max(startPadding, 0)
|
|
765
|
+
} : {},
|
|
766
|
+
...dashPattern ? {
|
|
767
|
+
dashArray: dashPattern
|
|
768
|
+
} : {},
|
|
769
|
+
arrow: mapArrowsideToArrow(annotation)
|
|
770
|
+
};
|
|
771
|
+
}
|
|
772
|
+
return chartAnnotation;
|
|
773
|
+
};
|
|
774
|
+
const getChartAnnotationsFromLayout = (layout, data, isMultiPlot)=>{
|
|
775
|
+
if (isMultiPlot || !(layout === null || layout === void 0 ? void 0 : layout.annotations)) {
|
|
776
|
+
return undefined;
|
|
777
|
+
}
|
|
778
|
+
const annotationsArray = Array.isArray(layout.annotations) ? layout.annotations : [
|
|
779
|
+
layout.annotations
|
|
780
|
+
];
|
|
781
|
+
const converted = annotationsArray.map((annotation, index)=>convertPlotlyAnnotation(annotation, layout, data, index)).filter((annotation)=>annotation !== undefined);
|
|
782
|
+
return converted.length > 0 ? converted : undefined;
|
|
783
|
+
};
|
|
247
784
|
/**
|
|
248
785
|
* Normalizes an array of objects by flattening nested structures and creating grouped data
|
|
249
786
|
* Uses json_normalize approach with D3 color detection and filtering
|
|
@@ -320,8 +857,35 @@ export const resolveXAxisPoint = (x, isXYearCategory, isXString, isXDate, isXNum
|
|
|
320
857
|
x
|
|
321
858
|
};
|
|
322
859
|
};
|
|
323
|
-
export const
|
|
324
|
-
|
|
860
|
+
export const transformPlotlyJsonToAnnotationChartProps = (input, isMultiPlot, _colorMap, _colorwayType, _isDarkTheme)=>{
|
|
861
|
+
var _layoutWithMeta_meta, _input_layout, _input_layout1, _input_layout2, _input_layout3, _input_layout_font, _input_layout4, _input_layout_font1, _input_layout5, _input_layout6;
|
|
862
|
+
var _getChartAnnotationsFromLayout;
|
|
863
|
+
const annotations = (_getChartAnnotationsFromLayout = getChartAnnotationsFromLayout(input.layout, input.data, isMultiPlot)) !== null && _getChartAnnotationsFromLayout !== void 0 ? _getChartAnnotationsFromLayout : [];
|
|
864
|
+
const titles = getTitles(input.layout);
|
|
865
|
+
const layoutTitle = titles.chartTitle || undefined;
|
|
866
|
+
const layoutWithMeta = input.layout;
|
|
867
|
+
const description = typeof (layoutWithMeta === null || layoutWithMeta === void 0 ? void 0 : (_layoutWithMeta_meta = layoutWithMeta.meta) === null || _layoutWithMeta_meta === void 0 ? void 0 : _layoutWithMeta_meta.description) === 'string' ? layoutWithMeta.meta.description : undefined;
|
|
868
|
+
const width = typeof ((_input_layout = input.layout) === null || _input_layout === void 0 ? void 0 : _input_layout.width) === 'number' ? input.layout.width : undefined;
|
|
869
|
+
const height = typeof ((_input_layout1 = input.layout) === null || _input_layout1 === void 0 ? void 0 : _input_layout1.height) === 'number' ? input.layout.height : undefined;
|
|
870
|
+
const paperBackgroundColor = typeof ((_input_layout2 = input.layout) === null || _input_layout2 === void 0 ? void 0 : _input_layout2.paper_bgcolor) === 'string' ? input.layout.paper_bgcolor : undefined;
|
|
871
|
+
const plotBackgroundColor = typeof ((_input_layout3 = input.layout) === null || _input_layout3 === void 0 ? void 0 : _input_layout3.plot_bgcolor) === 'string' ? input.layout.plot_bgcolor : undefined;
|
|
872
|
+
const fontColor = typeof ((_input_layout4 = input.layout) === null || _input_layout4 === void 0 ? void 0 : (_input_layout_font = _input_layout4.font) === null || _input_layout_font === void 0 ? void 0 : _input_layout_font.color) === 'string' ? input.layout.font.color : undefined;
|
|
873
|
+
const fontFamily = typeof ((_input_layout5 = input.layout) === null || _input_layout5 === void 0 ? void 0 : (_input_layout_font1 = _input_layout5.font) === null || _input_layout_font1 === void 0 ? void 0 : _input_layout_font1.family) === 'string' ? input.layout.font.family : undefined;
|
|
874
|
+
const margin = (_input_layout6 = input.layout) === null || _input_layout6 === void 0 ? void 0 : _input_layout6.margin;
|
|
875
|
+
return {
|
|
876
|
+
annotations,
|
|
877
|
+
chartTitle: layoutTitle,
|
|
878
|
+
description,
|
|
879
|
+
width,
|
|
880
|
+
height,
|
|
881
|
+
paperBackgroundColor,
|
|
882
|
+
plotBackgroundColor,
|
|
883
|
+
fontColor,
|
|
884
|
+
fontFamily,
|
|
885
|
+
margin
|
|
886
|
+
};
|
|
887
|
+
};
|
|
888
|
+
export const transformPlotlyJsonToDonutProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
325
889
|
var _input_layout, _input_layout_template_layout, _input_layout_template, _input_layout1, _input_layout2, _firstData_marker, _input_layout3, _input_layout4, _input_layout5, _input_layout6;
|
|
326
890
|
const firstData = input.data[0];
|
|
327
891
|
var _input_layout_piecolorway, _input_layout_piecolorway1;
|
|
@@ -410,8 +974,7 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
410
974
|
order: 'sorted'
|
|
411
975
|
};
|
|
412
976
|
};
|
|
413
|
-
export const transformPlotlyJsonToVSBCProps = (input, isMultiPlot,
|
|
414
|
-
colorMap, colorwayType, isDarkTheme, fallbackVSBC)=>{
|
|
977
|
+
export const transformPlotlyJsonToVSBCProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme, fallbackVSBC)=>{
|
|
415
978
|
var _input_layout, _input_layout1, _input_layout2, _vsbcData_;
|
|
416
979
|
const mapXToDataPoints = {};
|
|
417
980
|
let yMaxValue = 0;
|
|
@@ -489,19 +1052,7 @@ colorMap, colorwayType, isDarkTheme, fallbackVSBC)=>{
|
|
|
489
1052
|
});
|
|
490
1053
|
});
|
|
491
1054
|
});
|
|
492
|
-
|
|
493
|
-
const xCategories = Array.from(new Set(((_input_data = input.data) !== null && _input_data !== void 0 ? _input_data : []).flatMap((trace)=>{
|
|
494
|
-
const xData = trace.x;
|
|
495
|
-
if (!xData) {
|
|
496
|
-
return [];
|
|
497
|
-
}
|
|
498
|
-
if (Array.isArray(xData)) {
|
|
499
|
-
return xData.flat().map((x)=>{
|
|
500
|
-
return x;
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
return [];
|
|
504
|
-
}).filter((x)=>x !== undefined && x !== null)));
|
|
1055
|
+
const xCategories = extractXCategories(input.data);
|
|
505
1056
|
var _input_layout_shapes;
|
|
506
1057
|
((_input_layout_shapes = (_input_layout = input.layout) === null || _input_layout === void 0 ? void 0 : _input_layout.shapes) !== null && _input_layout_shapes !== void 0 ? _input_layout_shapes : []).filter((shape)=>shape.type === 'line').forEach((shape, shapeIdx)=>{
|
|
507
1058
|
var _shape_line;
|
|
@@ -543,24 +1094,29 @@ colorMap, colorwayType, isDarkTheme, fallbackVSBC)=>{
|
|
|
543
1094
|
};
|
|
544
1095
|
const y0Val = resolveY(shape.y0);
|
|
545
1096
|
const y1Val = resolveY(shape.y1);
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
1097
|
+
if (mapXToDataPoints[x0Key]) {
|
|
1098
|
+
var _rgb_formatHex8;
|
|
1099
|
+
mapXToDataPoints[x0Key].lineData.push({
|
|
1100
|
+
legend: `Reference_${shapeIdx}`,
|
|
1101
|
+
y: y0Val,
|
|
1102
|
+
color: (_rgb_formatHex8 = rgb(lineColor).formatHex8()) !== null && _rgb_formatHex8 !== void 0 ? _rgb_formatHex8 : lineColor,
|
|
1103
|
+
lineOptions: getLineOptions(shape.line),
|
|
1104
|
+
useSecondaryYScale: false
|
|
1105
|
+
});
|
|
1106
|
+
}
|
|
1107
|
+
if (mapXToDataPoints[x1Key]) {
|
|
1108
|
+
var _rgb_formatHex81;
|
|
1109
|
+
mapXToDataPoints[x1Key].lineData.push({
|
|
1110
|
+
legend: `Reference_${shapeIdx}`,
|
|
1111
|
+
y: y1Val,
|
|
1112
|
+
color: (_rgb_formatHex81 = rgb(lineColor).formatHex8()) !== null && _rgb_formatHex81 !== void 0 ? _rgb_formatHex81 : lineColor,
|
|
1113
|
+
lineOptions: getLineOptions(shape.line),
|
|
1114
|
+
useSecondaryYScale: false
|
|
1115
|
+
});
|
|
1116
|
+
}
|
|
562
1117
|
});
|
|
563
1118
|
const vsbcData = Object.values(mapXToDataPoints);
|
|
1119
|
+
const annotations = getChartAnnotationsFromLayout(input.layout, input.data, isMultiPlot);
|
|
564
1120
|
var _input_layout_height;
|
|
565
1121
|
return {
|
|
566
1122
|
data: vsbcData,
|
|
@@ -585,11 +1141,13 @@ colorMap, colorwayType, isDarkTheme, fallbackVSBC)=>{
|
|
|
585
1141
|
...getAxisCategoryOrderProps(input.data, input.layout),
|
|
586
1142
|
...getBarProps(input.data, input.layout),
|
|
587
1143
|
...getYMinMaxValues(input.data[0], input.layout),
|
|
588
|
-
...getAxisTickProps(input.data, input.layout)
|
|
1144
|
+
...getAxisTickProps(input.data, input.layout),
|
|
1145
|
+
...annotations ? {
|
|
1146
|
+
annotations
|
|
1147
|
+
} : {}
|
|
589
1148
|
};
|
|
590
1149
|
};
|
|
591
|
-
export const transformPlotlyJsonToGVBCProps = (input, isMultiPlot,
|
|
592
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1150
|
+
export const transformPlotlyJsonToGVBCProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
593
1151
|
var _processedInput_layout, _processedInput_layout1;
|
|
594
1152
|
// Handle object arrays in y values by normalizing the data first
|
|
595
1153
|
let processedInput = {
|
|
@@ -693,6 +1251,7 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
693
1251
|
});
|
|
694
1252
|
}
|
|
695
1253
|
});
|
|
1254
|
+
const annotations = getChartAnnotationsFromLayout(processedInput.layout, processedInput.data, isMultiPlot);
|
|
696
1255
|
var _processedInput_layout_height;
|
|
697
1256
|
return {
|
|
698
1257
|
dataV2: gvbcDataV2,
|
|
@@ -705,17 +1264,20 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
705
1264
|
wrapXAxisLables: true,
|
|
706
1265
|
hideLegend,
|
|
707
1266
|
roundCorners: true,
|
|
1267
|
+
showYAxisLables: true,
|
|
708
1268
|
...getTitles(processedInput.layout),
|
|
709
1269
|
...getAxisCategoryOrderProps(processedInput.data, processedInput.layout),
|
|
710
1270
|
...getYMinMaxValues(processedInput.data[0], processedInput.layout),
|
|
711
1271
|
...getXAxisTickFormat(processedInput.data[0], processedInput.layout),
|
|
712
1272
|
...yAxisTickFormat,
|
|
713
1273
|
...getBarProps(processedInput.data, processedInput.layout),
|
|
714
|
-
...getAxisTickProps(processedInput.data, processedInput.layout)
|
|
1274
|
+
...getAxisTickProps(processedInput.data, processedInput.layout),
|
|
1275
|
+
...annotations ? {
|
|
1276
|
+
annotations
|
|
1277
|
+
} : {}
|
|
715
1278
|
};
|
|
716
1279
|
};
|
|
717
|
-
export const transformPlotlyJsonToVBCProps = (input, isMultiPlot,
|
|
718
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1280
|
+
export const transformPlotlyJsonToVBCProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
719
1281
|
var _input_layout, _input_layout1, _vbcData_;
|
|
720
1282
|
const vbcData = [];
|
|
721
1283
|
const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);
|
|
@@ -777,6 +1339,7 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
777
1339
|
});
|
|
778
1340
|
});
|
|
779
1341
|
});
|
|
1342
|
+
const annotations = getChartAnnotationsFromLayout(input.layout, input.data, isMultiPlot);
|
|
780
1343
|
var _input_layout_height;
|
|
781
1344
|
return {
|
|
782
1345
|
data: vbcData,
|
|
@@ -788,21 +1351,22 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
788
1351
|
maxBarWidth: 50,
|
|
789
1352
|
hideLegend,
|
|
790
1353
|
roundCorners: true,
|
|
1354
|
+
showYAxisLables: true,
|
|
791
1355
|
...getTitles(input.layout),
|
|
792
1356
|
...getYMinMaxValues(input.data[0], input.layout),
|
|
793
|
-
...getAxisCategoryOrderProps(input.data, input.layout)
|
|
1357
|
+
...getAxisCategoryOrderProps(input.data, input.layout),
|
|
1358
|
+
...annotations ? {
|
|
1359
|
+
annotations
|
|
1360
|
+
} : {}
|
|
794
1361
|
};
|
|
795
1362
|
};
|
|
796
|
-
export const transformPlotlyJsonToAreaChartProps = (input, isMultiPlot,
|
|
797
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1363
|
+
export const transformPlotlyJsonToAreaChartProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
798
1364
|
return transformPlotlyJsonToScatterTraceProps(input, isMultiPlot, 'area', colorMap, colorwayType, isDarkTheme);
|
|
799
1365
|
};
|
|
800
|
-
export const transformPlotlyJsonToLineChartProps = (input, isMultiPlot,
|
|
801
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1366
|
+
export const transformPlotlyJsonToLineChartProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
802
1367
|
return transformPlotlyJsonToScatterTraceProps(input, isMultiPlot, 'line', colorMap, colorwayType, isDarkTheme);
|
|
803
1368
|
};
|
|
804
|
-
export const transformPlotlyJsonToScatterChartProps = (input, isMultiPlot,
|
|
805
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1369
|
+
export const transformPlotlyJsonToScatterChartProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
806
1370
|
return transformPlotlyJsonToScatterTraceProps(input, isMultiPlot, 'scatter', colorMap, colorwayType, isDarkTheme);
|
|
807
1371
|
};
|
|
808
1372
|
const mapColorFillBars = (layout)=>{
|
|
@@ -826,8 +1390,7 @@ const mapColorFillBars = (layout)=>{
|
|
|
826
1390
|
};
|
|
827
1391
|
});
|
|
828
1392
|
};
|
|
829
|
-
const transformPlotlyJsonToScatterTraceProps = (input, isMultiPlot, chartType,
|
|
830
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1393
|
+
const transformPlotlyJsonToScatterTraceProps = (input, isMultiPlot, chartType, colorMap, colorwayType, isDarkTheme)=>{
|
|
831
1394
|
var _input_data_, _chartData__data_, _chartData_, _chartData__data_1, _chartData_1, _chartData__data_2, _chartData_2, _chartData__data_3, _chartData_3, _input_layout, _input_layout1, _input_layout2;
|
|
832
1395
|
const isScatterMarkers = [
|
|
833
1396
|
'text',
|
|
@@ -917,11 +1480,19 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
917
1480
|
const xMaxValue = (_chartData_1 = chartData[0]) === null || _chartData_1 === void 0 ? void 0 : (_chartData__data_1 = _chartData_1.data[chartData[0].data.length - 1]) === null || _chartData__data_1 === void 0 ? void 0 : _chartData__data_1.x;
|
|
918
1481
|
const yMinValue = (_chartData_2 = chartData[0]) === null || _chartData_2 === void 0 ? void 0 : (_chartData__data_2 = _chartData_2.data[0]) === null || _chartData__data_2 === void 0 ? void 0 : _chartData__data_2.y;
|
|
919
1482
|
const yMaxValue = (_chartData_3 = chartData[0]) === null || _chartData_3 === void 0 ? void 0 : (_chartData__data_3 = _chartData_3.data[chartData[0].data.length - 1]) === null || _chartData__data_3 === void 0 ? void 0 : _chartData__data_3.y;
|
|
1483
|
+
const xCategories = extractXCategories(input.data);
|
|
920
1484
|
var _input_layout_shapes;
|
|
921
1485
|
const lineShape = ((_input_layout_shapes = (_input_layout = input.layout) === null || _input_layout === void 0 ? void 0 : _input_layout.shapes) !== null && _input_layout_shapes !== void 0 ? _input_layout_shapes : []).filter((shape)=>shape.type === 'line').map((shape, shapeIdx)=>{
|
|
922
1486
|
var _shape_line;
|
|
923
1487
|
const lineColor = (_shape_line = shape.line) === null || _shape_line === void 0 ? void 0 : _shape_line.color;
|
|
924
1488
|
const resolveX = (val)=>{
|
|
1489
|
+
if (typeof val === 'number' && Array.isArray(xCategories)) {
|
|
1490
|
+
if (xCategories[val] !== undefined) {
|
|
1491
|
+
return xCategories[val];
|
|
1492
|
+
} else {
|
|
1493
|
+
return xCategories[shapeIdx];
|
|
1494
|
+
}
|
|
1495
|
+
}
|
|
925
1496
|
if (shape.xref === 'paper') {
|
|
926
1497
|
if (val === 0) {
|
|
927
1498
|
return xMinValue;
|
|
@@ -956,11 +1527,11 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
956
1527
|
legend: `Reference_${shapeIdx}`,
|
|
957
1528
|
data: [
|
|
958
1529
|
{
|
|
959
|
-
x: resolveX(shape.x0),
|
|
1530
|
+
x: resolveXValue(resolveX(shape.x0)),
|
|
960
1531
|
y: resolveY(shape.y0)
|
|
961
1532
|
},
|
|
962
1533
|
{
|
|
963
|
-
x: resolveX(shape.x1),
|
|
1534
|
+
x: resolveXValue(resolveX(shape.x1)),
|
|
964
1535
|
y: resolveY(shape.y1)
|
|
965
1536
|
}
|
|
966
1537
|
],
|
|
@@ -983,8 +1554,12 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
983
1554
|
]
|
|
984
1555
|
};
|
|
985
1556
|
const scatterChartProps = {
|
|
986
|
-
scatterChartData:
|
|
1557
|
+
scatterChartData: [
|
|
1558
|
+
...chartData,
|
|
1559
|
+
...lineShape
|
|
1560
|
+
]
|
|
987
1561
|
};
|
|
1562
|
+
const annotations = getChartAnnotationsFromLayout(input.layout, input.data, isMultiPlot);
|
|
988
1563
|
var _input_layout_height;
|
|
989
1564
|
const commonProps = {
|
|
990
1565
|
supportNegativeData: true,
|
|
@@ -994,13 +1569,17 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
994
1569
|
hideTickOverlap: true,
|
|
995
1570
|
hideLegend,
|
|
996
1571
|
useUTC: false,
|
|
997
|
-
|
|
1572
|
+
wrapXAxisLabels: shouldWrapLabels,
|
|
998
1573
|
optimizeLargeData: numDataPoints > 1000,
|
|
1574
|
+
showYAxisLables: true,
|
|
999
1575
|
...getTitles(input.layout),
|
|
1000
1576
|
...getXAxisTickFormat(input.data[0], input.layout),
|
|
1001
1577
|
...yAxisTickFormat,
|
|
1002
1578
|
...getAxisScaleTypeProps(input.data, input.layout),
|
|
1003
|
-
...getAxisTickProps(input.data, input.layout)
|
|
1579
|
+
...getAxisTickProps(input.data, input.layout),
|
|
1580
|
+
...annotations ? {
|
|
1581
|
+
annotations
|
|
1582
|
+
} : {}
|
|
1004
1583
|
};
|
|
1005
1584
|
if (isAreaChart) {
|
|
1006
1585
|
return {
|
|
@@ -1027,8 +1606,7 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
1027
1606
|
};
|
|
1028
1607
|
}
|
|
1029
1608
|
};
|
|
1030
|
-
export const transformPlotlyJsonToHorizontalBarWithAxisProps = (input, isMultiPlot,
|
|
1031
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1609
|
+
export const transformPlotlyJsonToHorizontalBarWithAxisProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
1032
1610
|
var _input_layout, _input_layout_margin, _input_layout1, _input_layout_margin1, _input_layout2, _input_layout_yaxis2, _input_layout3, _input_layout_yaxis21, _input_layout4, _input_layout_yaxis2_title, _input_layout_yaxis22, _input_layout5, _input_layout6;
|
|
1033
1611
|
const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);
|
|
1034
1612
|
let colorScale = undefined;
|
|
@@ -1086,8 +1664,7 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
1086
1664
|
...getAxisTickProps(input.data, input.layout)
|
|
1087
1665
|
};
|
|
1088
1666
|
};
|
|
1089
|
-
export const transformPlotlyJsonToGanttChartProps = (input, isMultiPlot,
|
|
1090
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1667
|
+
export const transformPlotlyJsonToGanttChartProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
1091
1668
|
var _input_layout, _input_layout1;
|
|
1092
1669
|
const data = input.data.filter((series)=>series.type !== 'scatter' || series.mode !== 'markers');
|
|
1093
1670
|
const { legends, hideLegend } = getLegendProps(data, input.layout, isMultiPlot);
|
|
@@ -1169,8 +1746,7 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
1169
1746
|
...getAxisTickProps(data, input.layout)
|
|
1170
1747
|
};
|
|
1171
1748
|
};
|
|
1172
|
-
export const transformPlotlyJsonToHeatmapProps = (input, isMultiPlot,
|
|
1173
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1749
|
+
export const transformPlotlyJsonToHeatmapProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
1174
1750
|
var _input_layout, _input_layout_coloraxis, _input_layout1, _input_layout_template_layout, _input_layout_template, _input_layout2, _input_layout_template_data_histogram2d_, _input_layout_template_data_histogram2d, _input_layout_template_data, _input_layout_template1, _input_layout3, _input_layout_template_data_heatmap_, _input_layout_template_data_heatmap, _input_layout_template_data1, _input_layout_template2, _input_layout4, _input_layout5, _input_layout6;
|
|
1175
1751
|
const firstData = input.data[0];
|
|
1176
1752
|
const heatmapDataPoints = [];
|
|
@@ -1305,8 +1881,7 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
1305
1881
|
...getAxisTickProps(input.data, input.layout)
|
|
1306
1882
|
};
|
|
1307
1883
|
};
|
|
1308
|
-
export const transformPlotlyJsonToSankeyProps = (input, isMultiPlot,
|
|
1309
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1884
|
+
export const transformPlotlyJsonToSankeyProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
1310
1885
|
var _input_layout_template_layout, _input_layout_template, _input_layout, _node_label, _input_layout1, _input_layout2;
|
|
1311
1886
|
const { link, node } = input.data[0];
|
|
1312
1887
|
var _link_value;
|
|
@@ -1356,8 +1931,7 @@ colorMap, colorwayType, isDarkTheme)=>{
|
|
|
1356
1931
|
height: (_input_layout_height = (_input_layout2 = input.layout) === null || _input_layout2 === void 0 ? void 0 : _input_layout2.height) !== null && _input_layout_height !== void 0 ? _input_layout_height : 468
|
|
1357
1932
|
};
|
|
1358
1933
|
};
|
|
1359
|
-
export const transformPlotlyJsonToGaugeProps = (input, isMultiPlot,
|
|
1360
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
1934
|
+
export const transformPlotlyJsonToGaugeProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
1361
1935
|
var _firstData_gauge, _input_layout_template_layout, _input_layout_template, _input_layout, _firstData_gauge_steps, _firstData_gauge1, _firstData_gauge_axis_range, _firstData_gauge_axis, _firstData_gauge2, _input_layout_template_layout1, _input_layout_template1, _input_layout1, _firstData_gauge_axis1, _firstData_gauge3, _firstData_gauge_axis_range1, _firstData_gauge_axis2, _firstData_gauge4, _firstData_delta, _firstData_gauge_axis_range2, _firstData_gauge_axis3, _firstData_gauge5, _firstData_gauge_axis_range3, _firstData_gauge_axis4, _firstData_gauge6, _firstData_gauge_axis_range4, _firstData_gauge_axis5, _firstData_gauge7, _firstData_gauge_axis_range5, _firstData_gauge_axis6, _firstData_gauge8, _input_layout2, _input_layout3, _firstData_gauge_steps1, _firstData_gauge9;
|
|
1362
1936
|
const firstData = input.data[0];
|
|
1363
1937
|
const stepsColors = ((_firstData_gauge = firstData.gauge) === null || _firstData_gauge === void 0 ? void 0 : _firstData_gauge.steps) ? firstData.gauge.steps.map((step)=>step.color) : undefined;
|
|
@@ -1483,8 +2057,7 @@ function mergeCells(tableCells, templateCells) {
|
|
|
1483
2057
|
suffix: (_tableCells_suffix = tableCells === null || tableCells === void 0 ? void 0 : tableCells.suffix) !== null && _tableCells_suffix !== void 0 ? _tableCells_suffix : templateCells === null || templateCells === void 0 ? void 0 : templateCells.suffix
|
|
1484
2058
|
};
|
|
1485
2059
|
}
|
|
1486
|
-
export const transformPlotlyJsonToChartTableProps = (input, isMultiPlot,
|
|
1487
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
2060
|
+
export const transformPlotlyJsonToChartTableProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
1488
2061
|
var _tableData_cells, _input_layout_template_data_table_, _input_layout_template_data_table, _input_layout_template_data, _input_layout_template, _input_layout, _input_layout_font, _input_layout1, _input_layout_template_data_table_1, _input_layout_template_data_table1, _input_layout_template_data1, _input_layout_template1, _input_layout2, _tableData_header, _input_layout3, _input_layout4;
|
|
1489
2062
|
const tableData = input.data[0];
|
|
1490
2063
|
const normalizeHeaders = (values, header)=>{
|
|
@@ -1637,8 +2210,7 @@ function getCategoriesAndValues(series) {
|
|
|
1637
2210
|
}
|
|
1638
2211
|
}
|
|
1639
2212
|
}
|
|
1640
|
-
export const transformPlotlyJsonToFunnelChartProps = (input, isMultiPlot,
|
|
1641
|
-
colorMap, colorwayType, isDarkTheme)=>{
|
|
2213
|
+
export const transformPlotlyJsonToFunnelChartProps = (input, isMultiPlot, colorMap, colorwayType, isDarkTheme)=>{
|
|
1642
2214
|
var _input_layout, _input_layout1, _input_data_, _input_layout2;
|
|
1643
2215
|
const funnelData = [];
|
|
1644
2216
|
// Determine if data is stacked based on multiple series with multiple values per series
|
|
@@ -2035,8 +2607,7 @@ const getLegendShape = (series)=>{
|
|
|
2035
2607
|
}
|
|
2036
2608
|
return 'default';
|
|
2037
2609
|
};
|
|
2038
|
-
export const getAllupLegendsProps = (input,
|
|
2039
|
-
colorMap, colorwayType, traceInfo, isDarkTheme)=>{
|
|
2610
|
+
export const getAllupLegendsProps = (input, colorMap, colorwayType, traceInfo, isDarkTheme)=>{
|
|
2040
2611
|
const allupLegends = [];
|
|
2041
2612
|
// reduce on showlegend boolean propperty. reduce should return true if at least one series has showlegend true
|
|
2042
2613
|
const toShowLegend = input.data.reduce((acc, series)=>{
|
|
@@ -2145,7 +2716,8 @@ export const isNonPlotType = (chartType)=>{
|
|
|
2145
2716
|
return [
|
|
2146
2717
|
'donut',
|
|
2147
2718
|
'sankey',
|
|
2148
|
-
'pie'
|
|
2719
|
+
'pie',
|
|
2720
|
+
'annotation'
|
|
2149
2721
|
].includes(chartType);
|
|
2150
2722
|
};
|
|
2151
2723
|
export const getGridProperties = (schema, isMultiPlot, validTracesInfo)=>{
|