@fluentui/react-charting 5.23.22 → 5.23.24

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.
Files changed (47) hide show
  1. package/CHANGELOG.json +73 -1
  2. package/CHANGELOG.md +27 -2
  3. package/dist/react-charting.d.ts +40 -5
  4. package/dist/react-charting.js +1 -1
  5. package/dist/react-charting.min.js +1 -1
  6. package/etc/react-charting.api.md +2 -0
  7. package/lib/components/DeclarativeChart/DeclarativeChart.d.ts +1 -0
  8. package/lib/components/DeclarativeChart/DeclarativeChart.js +17 -10
  9. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  10. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +9 -9
  11. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +31 -27
  12. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  13. package/lib/components/Legends/Legends.base.d.ts +14 -8
  14. package/lib/components/Legends/Legends.base.js +53 -34
  15. package/lib/components/Legends/Legends.base.js.map +1 -1
  16. package/lib/components/Legends/Legends.types.d.ts +40 -5
  17. package/lib/components/Legends/Legends.types.js.map +1 -1
  18. package/lib/components/LineChart/LineChart.base.js +2 -2
  19. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  20. package/lib-amd/components/DeclarativeChart/DeclarativeChart.d.ts +1 -0
  21. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +19 -12
  22. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  23. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +9 -9
  24. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +31 -27
  25. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  26. package/lib-amd/components/Legends/Legends.base.d.ts +14 -8
  27. package/lib-amd/components/Legends/Legends.base.js +53 -34
  28. package/lib-amd/components/Legends/Legends.base.js.map +1 -1
  29. package/lib-amd/components/Legends/Legends.types.d.ts +40 -5
  30. package/lib-amd/components/Legends/Legends.types.js.map +1 -1
  31. package/lib-amd/components/LineChart/LineChart.base.js +2 -2
  32. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  33. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.d.ts +1 -0
  34. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +19 -11
  35. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  36. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +9 -9
  37. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +31 -27
  38. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  39. package/lib-commonjs/components/Legends/Legends.base.d.ts +14 -8
  40. package/lib-commonjs/components/Legends/Legends.base.js +53 -34
  41. package/lib-commonjs/components/Legends/Legends.base.js.map +1 -1
  42. package/lib-commonjs/components/Legends/Legends.types.d.ts +40 -5
  43. package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
  44. package/lib-commonjs/components/LineChart/LineChart.base.js +2 -2
  45. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  46. package/package.json +4 -4
  47. package/src/components/Legends/Legends.types.ts +42 -5
@@ -1 +1 @@
1
- {"version":3,"file":"DeclarativeChart.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/DeclarativeChart.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport {\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n isDateArray,\n isNumberArray,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n} from './PlotlySchemaAdapter';\nimport { LineChart } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\n\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n plotlySchema: any;\n\n /**\n * The legends selected by the user to persist in the chart\n */\n selectedLegends?: string[];\n\n /**\n * Dictionary for localizing the accessibility labels\n */\n accesibilityLabels?: { [key: string]: string };\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\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\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 } = props.chartSchema;\n const xValues = plotlySchema.data[0].x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const colorMap = useColorMapping();\n\n switch (plotlySchema.data[0].type) {\n case 'pie':\n return <DonutChart {...transformPlotlyJsonToDonutProps(plotlySchema, colorMap)} />;\n case 'bar':\n const orientation = plotlySchema.data[0].orientation;\n if (orientation === 'h') {\n return (\n <HorizontalBarChartWithAxis {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlySchema, colorMap)} />\n );\n } else {\n if (['group', 'overlay'].includes(plotlySchema?.layout?.barmode)) {\n return <GroupedVerticalBarChart {...transformPlotlyJsonToGVBCProps(plotlySchema, colorMap)} />;\n }\n return <VerticalStackedBarChart {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap)} />;\n }\n case 'scatter':\n const isAreaChart = plotlySchema.data.some((series: any) => series.fill === 'tonexty');\n if (isXDate || isXNumber) {\n if (isAreaChart) {\n return <AreaChart {...transformPlotlyJsonToScatterChartProps(plotlySchema, true, colorMap)} />;\n }\n return <LineChart {...transformPlotlyJsonToScatterChartProps(plotlySchema, false, colorMap)} />;\n }\n return <VerticalStackedBarChart {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap)} />;\n case 'heatmap':\n return <HeatMapChart {...transformPlotlyJsonToHeatmapProps(plotlySchema)} />;\n case 'sankey':\n return <SankeyChart {...transformPlotlyJsonToSankeyProps(plotlySchema, colorMap)} />;\n case 'indicator':\n if (plotlySchema?.data?.[0]?.mode?.includes('gauge')) {\n return <GaugeChart {...transformPlotlyJsonToGaugeProps(plotlySchema, colorMap)} />;\n }\n return <div>Unsupported Schema</div>;\n case 'histogram':\n return <VerticalBarChart {...transformPlotlyJsonToVBCProps(plotlySchema, colorMap)} />;\n default:\n return <div>Unsupported Schema</div>;\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"]}
1
+ {"version":3,"file":"DeclarativeChart.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/DeclarativeChart.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport {\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n isDateArray,\n isNumberArray,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n} from './PlotlySchemaAdapter';\nimport { LineChart } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\n\nimport { useTheme } from '@fluentui/react';\n\nexport const UseIsDarkTheme = (): boolean => {\n const theme = useTheme();\n return theme?.isInverted ?? false;\n};\n\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n plotlySchema: any;\n\n /**\n * The legends selected by the user to persist in the chart\n */\n selectedLegends?: string[];\n\n /**\n * Dictionary for localizing the accessibility labels\n */\n accesibilityLabels?: { [key: string]: string };\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\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\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 } = props.chartSchema;\n const xValues = plotlySchema.data[0].x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const colorMap = useColorMapping();\n const isDarkTheme = UseIsDarkTheme();\n\n switch (plotlySchema.data[0].type) {\n case 'pie':\n return <DonutChart {...transformPlotlyJsonToDonutProps(plotlySchema, colorMap, isDarkTheme)} />;\n case 'bar':\n const orientation = plotlySchema.data[0].orientation;\n if (orientation === 'h') {\n return (\n <HorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlySchema, colorMap, isDarkTheme)}\n />\n );\n } else {\n if (['group', 'overlay'].includes(plotlySchema?.layout?.barmode)) {\n return <GroupedVerticalBarChart {...transformPlotlyJsonToGVBCProps(plotlySchema, colorMap, isDarkTheme)} />;\n }\n return <VerticalStackedBarChart {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme)} />;\n }\n case 'scatter':\n const isAreaChart = plotlySchema.data.some((series: any) => series.fill === 'tonexty');\n if (isXDate || isXNumber) {\n if (isAreaChart) {\n return <AreaChart {...transformPlotlyJsonToScatterChartProps(plotlySchema, true, colorMap, isDarkTheme)} />;\n }\n return <LineChart {...transformPlotlyJsonToScatterChartProps(plotlySchema, false, colorMap, isDarkTheme)} />;\n }\n return <VerticalStackedBarChart {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme)} />;\n case 'heatmap':\n return <HeatMapChart {...transformPlotlyJsonToHeatmapProps(plotlySchema)} />;\n case 'sankey':\n return <SankeyChart {...transformPlotlyJsonToSankeyProps(plotlySchema, colorMap, isDarkTheme)} />;\n case 'indicator':\n if (plotlySchema?.data?.[0]?.mode?.includes('gauge')) {\n return <GaugeChart {...transformPlotlyJsonToGaugeProps(plotlySchema, colorMap, isDarkTheme)} />;\n }\n return <div>Unsupported Schema</div>;\n case 'histogram':\n return <VerticalBarChart {...transformPlotlyJsonToVBCProps(plotlySchema, colorMap, isDarkTheme)} />;\n default:\n return <div>Unsupported Schema</div>;\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"]}
@@ -11,16 +11,16 @@ import { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index'
11
11
  import { IVerticalBarChartProps } from '../VerticalBarChart/index';
12
12
  export declare const isDateArray: (array: any[]) => boolean;
13
13
  export declare const isNumberArray: (array: any[]) => boolean;
14
- export declare const getColor: (legendLabel: string, colorMap: React.MutableRefObject<Map<string, string>>) => string;
15
- export declare const transformPlotlyJsonToDonutProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>) => IDonutChartProps;
16
- export declare const transformPlotlyJsonToVSBCProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>) => IVerticalStackedBarChartProps;
17
- export declare const transformPlotlyJsonToGVBCProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>) => IGroupedVerticalBarChartProps;
18
- export declare const transformPlotlyJsonToVBCProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>) => IVerticalBarChartProps;
19
- export declare const transformPlotlyJsonToScatterChartProps: (jsonObj: any, isAreaChart: boolean, colorMap: React.MutableRefObject<Map<string, string>>) => ILineChartProps | IAreaChartProps;
20
- export declare const transformPlotlyJsonToHorizontalBarWithAxisProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>) => IHorizontalBarChartWithAxisProps;
14
+ export declare const getColor: (legendLabel: string, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => string;
15
+ export declare const transformPlotlyJsonToDonutProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IDonutChartProps;
16
+ export declare const transformPlotlyJsonToVSBCProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IVerticalStackedBarChartProps;
17
+ export declare const transformPlotlyJsonToGVBCProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IGroupedVerticalBarChartProps;
18
+ export declare const transformPlotlyJsonToVBCProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IVerticalBarChartProps;
19
+ export declare const transformPlotlyJsonToScatterChartProps: (jsonObj: any, isAreaChart: boolean, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => ILineChartProps | IAreaChartProps;
20
+ export declare const transformPlotlyJsonToHorizontalBarWithAxisProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IHorizontalBarChartWithAxisProps;
21
21
  export declare const transformPlotlyJsonToHeatmapProps: (jsonObj: any) => IHeatMapChartProps;
22
- export declare const transformPlotlyJsonToSankeyProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>) => ISankeyChartProps;
23
- export declare const transformPlotlyJsonToGaugeProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>) => IGaugeChartProps;
22
+ export declare const transformPlotlyJsonToSankeyProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => ISankeyChartProps;
23
+ export declare const transformPlotlyJsonToGaugeProps: (jsonObj: any, colorMap: React.MutableRefObject<Map<string, string>>, isDarkTheme?: boolean) => IGaugeChartProps;
24
24
  /**
25
25
  * Interate iteratively through the trace object and find all the array attributes.
26
26
  * 1 trace record = 1 series of data
@@ -8,22 +8,22 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
8
8
  exports.isDateArray = isDateArray;
9
9
  var isNumberArray = function (array) { return isArrayOrTypedArray(array) && array.every(isNumber); };
10
10
  exports.isNumberArray = isNumberArray;
11
- var getColor = function (legendLabel, colorMap) {
11
+ var getColor = function (legendLabel, colorMap, isDarkTheme) {
12
12
  if (!colorMap.current.has(legendLabel)) {
13
- var nextColor = (0, colors_1.getNextColor)(colorMap.current.size + 1);
13
+ var nextColor = (0, colors_1.getNextColor)(colorMap.current.size + 1, 0, isDarkTheme);
14
14
  colorMap.current.set(legendLabel, nextColor);
15
15
  return nextColor;
16
16
  }
17
17
  return colorMap.current.get(legendLabel);
18
18
  };
19
19
  exports.getColor = getColor;
20
- var transformPlotlyJsonToDonutProps = function (jsonObj, colorMap) {
20
+ var transformPlotlyJsonToDonutProps = function (jsonObj, colorMap, isDarkTheme) {
21
21
  var _a, _b;
22
22
  var data = jsonObj.data, layout = jsonObj.layout;
23
23
  var firstData = data[0];
24
24
  var donutData = (_a = firstData.labels) === null || _a === void 0 ? void 0 : _a.map(function (label, index) {
25
25
  var _a;
26
- var color = (0, exports.getColor)(label, colorMap);
26
+ var color = (0, exports.getColor)(label, colorMap, isDarkTheme);
27
27
  return {
28
28
  legend: label,
29
29
  data: (_a = firstData.values) === null || _a === void 0 ? void 0 : _a[index],
@@ -60,7 +60,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
60
60
  };
61
61
  };
62
62
  exports.transformPlotlyJsonToDonutProps = transformPlotlyJsonToDonutProps;
63
- var transformPlotlyJsonToVSBCProps = function (jsonObj, colorMap) {
63
+ var transformPlotlyJsonToVSBCProps = function (jsonObj, colorMap, isDarkTheme) {
64
64
  var data = jsonObj.data, layout = jsonObj.layout;
65
65
  var mapXToDataPoints = {};
66
66
  var yMaxValue = 0;
@@ -73,7 +73,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
73
73
  }
74
74
  var legend = series.name || "Series ".concat(index1 + 1);
75
75
  if (series.type === 'bar') {
76
- var color = (0, exports.getColor)(legend, colorMap);
76
+ var color = (0, exports.getColor)(legend, colorMap, isDarkTheme);
77
77
  mapXToDataPoints[x].chartData.push({
78
78
  legend: legend,
79
79
  data: (_a = series.y) === null || _a === void 0 ? void 0 : _a[index2],
@@ -81,7 +81,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
81
81
  });
82
82
  }
83
83
  else if (series.type === 'line') {
84
- var color = (0, exports.getColor)(legend, colorMap);
84
+ var color = (0, exports.getColor)(legend, colorMap, isDarkTheme);
85
85
  mapXToDataPoints[x].lineData.push({
86
86
  legend: legend,
87
87
  y: (_b = series.y) === null || _b === void 0 ? void 0 : _b[index2],
@@ -101,7 +101,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
101
101
  };
102
102
  };
103
103
  exports.transformPlotlyJsonToVSBCProps = transformPlotlyJsonToVSBCProps;
104
- var transformPlotlyJsonToGVBCProps = function (jsonObj, colorMap) {
104
+ var transformPlotlyJsonToGVBCProps = function (jsonObj, colorMap, isDarkTheme) {
105
105
  var data = jsonObj.data, layout = jsonObj.layout;
106
106
  var mapXToDataPoints = {};
107
107
  data.forEach(function (series, index1) {
@@ -113,7 +113,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
113
113
  }
114
114
  if (series.type === 'bar') {
115
115
  var legend = series.name || "Series ".concat(index1 + 1);
116
- var color = (0, exports.getColor)(legend, colorMap);
116
+ var color = (0, exports.getColor)(legend, colorMap, isDarkTheme);
117
117
  mapXToDataPoints[x].series.push({
118
118
  key: legend,
119
119
  data: (_a = series.y) === null || _a === void 0 ? void 0 : _a[index2],
@@ -132,7 +132,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
132
132
  };
133
133
  };
134
134
  exports.transformPlotlyJsonToGVBCProps = transformPlotlyJsonToGVBCProps;
135
- var transformPlotlyJsonToVBCProps = function (jsonObj, colorMap) {
135
+ var transformPlotlyJsonToVBCProps = function (jsonObj, colorMap, isDarkTheme) {
136
136
  var data = jsonObj.data, layout = jsonObj.layout;
137
137
  var vbcData = [];
138
138
  data.forEach(function (series, index) {
@@ -165,7 +165,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
165
165
  var totalDataPoints = (0, d3_array_1.merge)(buckets).length;
166
166
  buckets.forEach(function (bucket) {
167
167
  var legend = series.name || "Series ".concat(index + 1);
168
- var color = (0, exports.getColor)(legend, colorMap);
168
+ var color = (0, exports.getColor)(legend, colorMap, isDarkTheme);
169
169
  var y = bucket.length;
170
170
  if (series.histnorm === 'percent') {
171
171
  y = (bucket.length / totalDataPoints) * 100;
@@ -211,7 +211,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
211
211
  };
212
212
  };
213
213
  exports.transformPlotlyJsonToVBCProps = transformPlotlyJsonToVBCProps;
214
- var transformPlotlyJsonToScatterChartProps = function (jsonObj, isAreaChart, colorMap) {
214
+ var transformPlotlyJsonToScatterChartProps = function (jsonObj, isAreaChart, colorMap, isDarkTheme) {
215
215
  var data = jsonObj.data, layout = jsonObj.layout;
216
216
  var chartData = data.map(function (series, index) {
217
217
  var xValues = series.x;
@@ -219,7 +219,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
219
219
  var isXDate = (0, exports.isDateArray)(xValues);
220
220
  var isXNumber = (0, exports.isNumberArray)(xValues);
221
221
  var legend = series.name || "Series ".concat(index + 1);
222
- var lineColor = (0, exports.getColor)(legend, colorMap);
222
+ var lineColor = (0, exports.getColor)(legend, colorMap, isDarkTheme);
223
223
  return {
224
224
  legend: legend,
225
225
  data: xValues.map(function (x, i) { return ({
@@ -247,13 +247,13 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
247
247
  }
248
248
  };
249
249
  exports.transformPlotlyJsonToScatterChartProps = transformPlotlyJsonToScatterChartProps;
250
- var transformPlotlyJsonToHorizontalBarWithAxisProps = function (jsonObj, colorMap) {
250
+ var transformPlotlyJsonToHorizontalBarWithAxisProps = function (jsonObj, colorMap, isDarkTheme) {
251
251
  var _a, _b;
252
252
  var data = jsonObj.data, layout = jsonObj.layout;
253
253
  var chartData = data
254
254
  .map(function (series, index) {
255
255
  return series.y.map(function (yValue, i) {
256
- var color = (0, exports.getColor)(yValue, colorMap);
256
+ var color = (0, exports.getColor)(yValue, colorMap, isDarkTheme);
257
257
  return {
258
258
  x: series.x[i],
259
259
  y: yValue,
@@ -263,12 +263,13 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
263
263
  });
264
264
  })
265
265
  .flat();
266
- var chartHeight = layout.height || 350;
266
+ var chartHeight = layout.height || 450;
267
267
  var margin = ((_a = layout.margin) === null || _a === void 0 ? void 0 : _a.l) || 0;
268
268
  var padding = ((_b = layout.margin) === null || _b === void 0 ? void 0 : _b.pad) || 0;
269
269
  var availableHeight = chartHeight - margin - padding;
270
270
  var numberOfBars = data[0].y.length;
271
- var gapFactor = 0.5;
271
+ var scalingFactor = 0.01;
272
+ var gapFactor = 1 / (1 + scalingFactor * numberOfBars);
272
273
  var barHeight = availableHeight / (numberOfBars * (1 + gapFactor));
273
274
  return {
274
275
  data: chartData,
@@ -285,7 +286,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
285
286
  };
286
287
  exports.transformPlotlyJsonToHorizontalBarWithAxisProps = transformPlotlyJsonToHorizontalBarWithAxisProps;
287
288
  var transformPlotlyJsonToHeatmapProps = function (jsonObj) {
288
- var _a, _b, _c;
289
+ var _a;
289
290
  var data = jsonObj.data, layout = jsonObj.layout;
290
291
  var firstData = data[0];
291
292
  var heatmapDataPoints = [];
@@ -311,8 +312,10 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
311
312
  value: 0,
312
313
  };
313
314
  // Convert normalized values to actual values
314
- var domainValuesForColorScale = (_b = firstData.colorscale) === null || _b === void 0 ? void 0 : _b.map(function (arr) { return arr[0] * (zMax - zMin) + zMin; });
315
- var rangeValuesForColorScale = (_c = firstData.colorscale) === null || _c === void 0 ? void 0 : _c.map(function (arr) { return arr[1]; });
315
+ var domainValuesForColorScale = firstData.colorscale
316
+ ? firstData.colorscale.map(function (arr) { return arr[0] * (zMax - zMin) + zMin; })
317
+ : [];
318
+ var rangeValuesForColorScale = firstData.colorscale ? firstData.colorscale.map(function (arr) { return arr[1]; }) : [];
316
319
  return {
317
320
  data: [heatmapData],
318
321
  domainValuesForColorScale: domainValuesForColorScale,
@@ -321,7 +324,7 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
321
324
  };
322
325
  };
323
326
  exports.transformPlotlyJsonToHeatmapProps = transformPlotlyJsonToHeatmapProps;
324
- var transformPlotlyJsonToSankeyProps = function (jsonObj, colorMap) {
327
+ var transformPlotlyJsonToSankeyProps = function (jsonObj, colorMap, isDarkTheme) {
325
328
  var _a;
326
329
  var data = jsonObj.data, layout = jsonObj.layout;
327
330
  var _b = data[0], link = _b.link, node = _b.node;
@@ -333,10 +336,11 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
333
336
  }); })
334
337
  // eslint-disable-next-line @typescript-eslint/no-shadow
335
338
  //@ts-expect-error Dynamic link object. Ignore for now.
336
- .filter(function (x) { return x.source !== x.target; }); // Filter out self-references (circular links)
339
+ // Filter out negative nodes, unequal nodes and self-references (circular links)
340
+ .filter(function (x) { return x.source > 0 && x.target > 0 && x.source !== x.target; });
337
341
  var sankeyChartData = {
338
342
  nodes: node.label.map(function (label, index) {
339
- var color = (0, exports.getColor)(label, colorMap);
343
+ var color = (0, exports.getColor)(label, colorMap, isDarkTheme);
340
344
  return {
341
345
  nodeId: index,
342
346
  name: label,
@@ -368,14 +372,14 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
368
372
  };
369
373
  };
370
374
  exports.transformPlotlyJsonToSankeyProps = transformPlotlyJsonToSankeyProps;
371
- var transformPlotlyJsonToGaugeProps = function (jsonObj, colorMap) {
375
+ var transformPlotlyJsonToGaugeProps = function (jsonObj, colorMap, isDarkTheme) {
372
376
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
373
377
  var data = jsonObj.data, layout = jsonObj.layout;
374
378
  var firstData = data[0];
375
379
  var segments = (_b = (_a = firstData.gauge) === null || _a === void 0 ? void 0 : _a.steps) === null || _b === void 0 ? void 0 : _b.map(function (step, index) {
376
380
  var _a, _b;
377
381
  var legend = step.name || "Segment ".concat(index + 1);
378
- var color = (0, exports.getColor)(legend, colorMap);
382
+ var color = (0, exports.getColor)(legend, colorMap, isDarkTheme);
379
383
  return {
380
384
  legend: legend,
381
385
  size: ((_a = step.range) === null || _a === void 0 ? void 0 : _a[1]) - ((_b = step.range) === null || _b === void 0 ? void 0 : _b[0]),
@@ -388,12 +392,12 @@ define(["require", "exports", "tslib", "d3-array", "d3-scale", "d3-format", "../
388
392
  var diff = firstData.value - firstData.delta.reference;
389
393
  if (diff >= 0) {
390
394
  sublabel = "\u25B2 ".concat(diff);
391
- var color = (0, exports.getColor)(((_d = firstData.delta.increasing) === null || _d === void 0 ? void 0 : _d.color) || '', colorMap);
395
+ var color = (0, exports.getColor)(((_d = firstData.delta.increasing) === null || _d === void 0 ? void 0 : _d.color) || '', colorMap, isDarkTheme);
392
396
  sublabelColor = color;
393
397
  }
394
398
  else {
395
399
  sublabel = "\u25BC ".concat(Math.abs(diff));
396
- var color = (0, exports.getColor)(((_e = firstData.delta.decreasing) === null || _e === void 0 ? void 0 : _e.color) || '', colorMap);
400
+ var color = (0, exports.getColor)(((_e = firstData.delta.decreasing) === null || _e === void 0 ? void 0 : _e.color) || '', colorMap, isDarkTheme);
397
401
  sublabelColor = color;
398
402
  }
399
403
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PlotlySchemaAdapter.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/PlotlySchemaAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { bin as d3Bin, extent as d3Extent, sum as d3Sum, min as d3Min, max as d3Max, merge as d3Merge } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { format as d3Format, precisionFixed as d3PrecisionFixed } from 'd3-format';\nimport { IDonutChartProps } from '../DonutChart/index';\nimport {\n IChartDataPoint,\n IChartProps,\n IHorizontalBarChartWithAxisDataPoint,\n ILineChartPoints,\n IVerticalStackedChartProps,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n IGroupedVerticalBarChartData,\n IVerticalBarChartDataPoint,\n} from '../../types/IDataPoint';\nimport { ISankeyChartProps } from '../SankeyChart/index';\nimport { IVerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { IHorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { ILineChartProps } from '../LineChart/index';\nimport { IAreaChartProps } from '../AreaChart/index';\nimport { IHeatMapChartProps } from '../HeatMapChart/index';\nimport { getNextColor } from '../../utilities/colors';\nimport { IGaugeChartProps, IGaugeChartSegment } from '../GaugeChart/index';\nimport { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { IVerticalBarChartProps } from '../VerticalBarChart/index';\n\nconst isDate = (value: any): boolean => !isNaN(Date.parse(value));\nconst isNumber = (value: any): boolean => !isNaN(parseFloat(value)) && isFinite(value);\nexport const isDateArray = (array: any[]): boolean => isArrayOrTypedArray(array) && array.every(isDate);\nexport const isNumberArray = (array: any[]): boolean => isArrayOrTypedArray(array) && array.every(isNumber);\n\nexport const getColor = (legendLabel: string, colorMap: React.MutableRefObject<Map<string, string>>): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n): IDonutChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n\n const donutData = firstData.labels?.map((label: string, index: number): IChartDataPoint => {\n const color = getColor(label, colorMap);\n return {\n legend: label,\n data: firstData.values?.[index],\n color,\n };\n });\n\n const width: number = layout?.width || 440;\n const height: number = layout?.height || 220;\n const hideLabels = firstData.textinfo ? !['value', 'percent'].includes(firstData.textinfo) : false;\n const donutMarginHorizontal = hideLabels ? 0 : 80;\n const donutMarginVertical = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n\n const styles: IDonutChartProps['styles'] = {\n root: {\n '[class^=\"arcLabel\"]': {\n fontSize: firstData.textfont?.size,\n },\n },\n };\n\n return {\n data: {\n chartTitle: layout?.title,\n chartData: donutData,\n },\n hideLegend: layout?.showlegend === false ? true : false,\n width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? firstData.textinfo === 'percent' : true,\n styles,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n): IVerticalStackedBarChartProps => {\n const { data, layout } = jsonObj;\n const mapXToDataPoints: { [key: string]: IVerticalStackedChartProps } = {};\n let yMaxValue = 0;\n\n data.forEach((series: any, index1: number) => {\n series.x?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: x, chartData: [], lineData: [] };\n }\n const legend: string = series.name || `Series ${index1 + 1}`;\n if (series.type === 'bar') {\n const color = getColor(legend, colorMap);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: series.y?.[index2],\n color,\n });\n } else if (series.type === 'line') {\n const color = getColor(legend, colorMap);\n mapXToDataPoints[x].lineData!.push({\n legend,\n y: series.y?.[index2],\n color,\n });\n }\n\n yMaxValue = Math.max(yMaxValue, series.y?.[index2]);\n });\n });\n\n return {\n data: Object.values(mapXToDataPoints),\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n barWidth: 'auto',\n yMaxValue,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n): IGroupedVerticalBarChartProps => {\n const { data, layout } = jsonObj;\n const mapXToDataPoints: Record<string, IGroupedVerticalBarChartData> = {};\n\n data.forEach((series: any, index1: number) => {\n series.x?.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 = series.name || `Series ${index1 + 1}`;\n const color = getColor(legend, colorMap);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: series.y?.[index2],\n color,\n legend,\n });\n }\n });\n });\n\n return {\n data: Object.values(mapXToDataPoints),\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n barwidth: 'auto',\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n): IVerticalBarChartProps => {\n const { data, layout } = jsonObj;\n const vbcData: IVerticalBarChartDataPoint[] = [];\n\n data.forEach((series: any, index: number) => {\n if (!series.x) {\n return;\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(series.x) as [number, number])\n .nice();\n let [xMin, xMax] = scale.domain();\n\n xMin = typeof series.xbins?.start === 'number' ? series.xbins.start : xMin;\n xMax = typeof series.xbins?.end === 'number' ? series.xbins.end : xMax;\n\n const bin = d3Bin().domain([xMin, xMax]);\n\n if (typeof series.xbins?.size === 'number') {\n const thresholds: number[] = [];\n let th = xMin;\n const precision = d3PrecisionFixed(series.xbins.size);\n const format = d3Format(`.${precision}f`);\n\n while (th < xMax + series.xbins.size) {\n thresholds.push(parseFloat(format(th)));\n th += series.xbins.size;\n }\n\n xMin = thresholds[0];\n xMax = thresholds[thresholds.length - 1];\n bin.domain([xMin, xMax]).thresholds(thresholds);\n }\n\n const buckets = bin(series.x);\n // If the start or end of xbins is specified, then the number of datapoints may become less than x.length\n const totalDataPoints = d3Merge(buckets).length;\n\n buckets.forEach(bucket => {\n const legend = series.name || `Series ${index + 1}`;\n const color = getColor(legend, colorMap);\n let y = bucket.length;\n\n if (series.histnorm === 'percent') {\n y = (bucket.length / totalDataPoints) * 100;\n } else if (series.histnorm === 'probability') {\n y = bucket.length / totalDataPoints;\n } else if (series.histnorm === 'density') {\n y = bucket.x0 === bucket.x1 ? 0 : bucket.length / (bucket.x1! - bucket.x0!);\n } else if (series.histnorm === 'probability density') {\n y = bucket.x0 === bucket.x1 ? 0 : bucket.length / (totalDataPoints * (bucket.x1! - bucket.x0!));\n } else if (series.histfunc === 'sum') {\n y = d3Sum(bucket);\n } else if (series.histfunc === 'avg') {\n y = bucket.length === 0 ? 0 : d3Sum(bucket) / bucket.length;\n } else if (series.histfunc === 'min') {\n y = d3Min(bucket)!;\n } else if (series.histfunc === 'max') {\n y = d3Max(bucket)!;\n }\n\n vbcData.push({\n x: (bucket.x1! + bucket.x0!) / 2,\n y,\n legend,\n color,\n xAxisCalloutData: `[${bucket.x0} - ${bucket.x1})`,\n });\n });\n });\n\n return {\n data: vbcData,\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n hideLegend: true,\n barWidth: 24,\n supportNegativeData: true,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n jsonObj: any,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n): ILineChartProps | IAreaChartProps => {\n const { data, layout } = jsonObj;\n\n const chartData: ILineChartPoints[] = data.map((series: any, index: number) => {\n const xValues = series.x;\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend = series.name || `Series ${index + 1}`;\n const lineColor = getColor(legend, colorMap);\n\n return {\n legend,\n data: xValues.map((x: string | number, i: number) => ({\n x: isString ? (isXDate ? new Date(x) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n })),\n color: lineColor,\n };\n });\n\n const chartProps: IChartProps = {\n chartTitle: layout.title || '',\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n } as IAreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n } as ILineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n): IHorizontalBarChartWithAxisProps => {\n const { data, layout } = jsonObj;\n\n const chartData: IHorizontalBarChartWithAxisDataPoint[] = data\n .map((series: any, index: number) => {\n return series.y.map((yValue: string, i: number) => {\n const color = getColor(yValue, colorMap);\n return {\n x: series.x[i],\n y: yValue,\n legend: yValue,\n color,\n };\n });\n })\n .flat();\n\n const chartHeight = layout.height || 350;\n const margin = layout.margin?.l || 0;\n const padding = layout.margin?.pad || 0;\n const availableHeight = chartHeight - margin - padding;\n const numberOfBars = data[0].y.length;\n const gapFactor = 0.5;\n const barHeight = availableHeight / (numberOfBars * (1 + gapFactor));\n\n return {\n data: chartData,\n chartTitle: layout.title || '',\n barHeight,\n showYAxisLables: true,\n styles: {\n root: {\n height: chartHeight,\n width: layout.width || 600,\n },\n },\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (jsonObj: any): IHeatMapChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n const heatmapDataPoints: IHeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n firstData.x?.forEach((xVal: any, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = firstData.z?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: layout.xaxis?.type === 'date' ? new Date(xVal) : xVal,\n y: layout.yaxis?.type === 'date' ? new Date(yVal) : yVal,\n value: zVal,\n });\n\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n });\n });\n const heatmapData: IHeatMapChartData = {\n legend: firstData.name || '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Convert normalized values to actual values\n const domainValuesForColorScale: number[] = firstData.colorscale?.map((arr: any) => arr[0] * (zMax - zMin) + zMin);\n const rangeValuesForColorScale: string[] = firstData.colorscale?.map((arr: any) => arr[1]);\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n): ISankeyChartProps => {\n const { data, layout } = jsonObj;\n const { link, node } = data[0];\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 //@ts-expect-error Dynamic link object. Ignore for now.\n .filter(x => x.source !== x.target); // Filter out self-references (circular links)\n\n const sankeyChartData = {\n nodes: node.label.map((label: string, index: number) => {\n const color = getColor(label, colorMap);\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 };\n\n const width: number = layout?.width || 440;\n const height: number = layout?.height || 220;\n const styles: ISankeyChartProps['styles'] = {\n root: {\n fontSize: layout.font?.size,\n },\n };\n const shouldResize: number = width + height;\n return {\n data: {\n chartTitle: layout?.title,\n SankeyChartData: sankeyChartData,\n },\n width,\n height,\n styles,\n shouldResize,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n): IGaugeChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n\n const segments = firstData.gauge?.steps?.map((step: any, index: number): IGaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n });\n\n let sublabel: string | undefined;\n let sublabelColor: string | undefined;\n if (typeof firstData.delta?.reference === 'number') {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n const color = getColor(firstData.delta.increasing?.color || '', colorMap);\n sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n const color = getColor(firstData.delta.decreasing?.color || '', colorMap);\n sublabelColor = color;\n }\n }\n\n const styles: IGaugeChartProps['styles'] = {\n sublabel: {\n fill: sublabelColor,\n },\n };\n\n return {\n segments,\n chartValue: firstData.value,\n chartTitle: firstData.title?.text,\n sublabel,\n // range values can be null\n minValue: firstData.gauge?.axis?.range?.[0] ?? undefined,\n maxValue: firstData.gauge?.axis?.range?.[1] ?? undefined,\n chartValueFormat: () => firstData.value,\n width: layout?.width,\n height: layout?.height,\n hideLegend: true,\n styles,\n };\n};\n\nfunction isTypedArray(a: any) {\n return ArrayBuffer.isView(a) && !(a instanceof DataView);\n}\n\nfunction isArrayOrTypedArray(a: any) {\n return Array.isArray(a) || isTypedArray(a);\n}\n\nfunction isPlainObject(obj: any) {\n if (window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\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 for (const attribute of arrayAttributes) {\n console.log(attribute);\n }\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"]}
1
+ {"version":3,"file":"PlotlySchemaAdapter.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/PlotlySchemaAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { bin as d3Bin, extent as d3Extent, sum as d3Sum, min as d3Min, max as d3Max, merge as d3Merge } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { format as d3Format, precisionFixed as d3PrecisionFixed } from 'd3-format';\nimport { IDonutChartProps } from '../DonutChart/index';\nimport {\n IChartDataPoint,\n IChartProps,\n IHorizontalBarChartWithAxisDataPoint,\n ILineChartPoints,\n IVerticalStackedChartProps,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n IGroupedVerticalBarChartData,\n IVerticalBarChartDataPoint,\n} from '../../types/IDataPoint';\nimport { ISankeyChartProps } from '../SankeyChart/index';\nimport { IVerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { IHorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { ILineChartProps } from '../LineChart/index';\nimport { IAreaChartProps } from '../AreaChart/index';\nimport { IHeatMapChartProps } from '../HeatMapChart/index';\nimport { getNextColor } from '../../utilities/colors';\nimport { IGaugeChartProps, IGaugeChartSegment } from '../GaugeChart/index';\nimport { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { IVerticalBarChartProps } from '../VerticalBarChart/index';\n\nconst isDate = (value: any): boolean => !isNaN(Date.parse(value));\nconst isNumber = (value: any): boolean => !isNaN(parseFloat(value)) && isFinite(value);\nexport const isDateArray = (array: any[]): boolean => isArrayOrTypedArray(array) && array.every(isDate);\nexport const isNumberArray = (array: any[]): boolean => isArrayOrTypedArray(array) && array.every(isNumber);\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\nexport const transformPlotlyJsonToDonutProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IDonutChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n\n const donutData = firstData.labels?.map((label: string, index: number): IChartDataPoint => {\n const color = getColor(label, colorMap, isDarkTheme);\n return {\n legend: label,\n data: firstData.values?.[index],\n color,\n };\n });\n\n const width: number = layout?.width || 440;\n const height: number = layout?.height || 220;\n const hideLabels = firstData.textinfo ? !['value', 'percent'].includes(firstData.textinfo) : false;\n const donutMarginHorizontal = hideLabels ? 0 : 80;\n const donutMarginVertical = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n\n const styles: IDonutChartProps['styles'] = {\n root: {\n '[class^=\"arcLabel\"]': {\n fontSize: firstData.textfont?.size,\n },\n },\n };\n\n return {\n data: {\n chartTitle: layout?.title,\n chartData: donutData,\n },\n hideLegend: layout?.showlegend === false ? true : false,\n width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? firstData.textinfo === 'percent' : true,\n styles,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IVerticalStackedBarChartProps => {\n const { data, layout } = jsonObj;\n const mapXToDataPoints: { [key: string]: IVerticalStackedChartProps } = {};\n let yMaxValue = 0;\n\n data.forEach((series: any, index1: number) => {\n series.x?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: x, chartData: [], lineData: [] };\n }\n const legend: string = series.name || `Series ${index1 + 1}`;\n if (series.type === 'bar') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: series.y?.[index2],\n color,\n });\n } else if (series.type === 'line') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].lineData!.push({\n legend,\n y: series.y?.[index2],\n color,\n });\n }\n\n yMaxValue = Math.max(yMaxValue, series.y?.[index2]);\n });\n });\n\n return {\n data: Object.values(mapXToDataPoints),\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n barWidth: 'auto',\n yMaxValue,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGroupedVerticalBarChartProps => {\n const { data, layout } = jsonObj;\n const mapXToDataPoints: Record<string, IGroupedVerticalBarChartData> = {};\n\n data.forEach((series: any, index1: number) => {\n series.x?.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 = series.name || `Series ${index1 + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: series.y?.[index2],\n color,\n legend,\n });\n }\n });\n });\n\n return {\n data: Object.values(mapXToDataPoints),\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n barwidth: 'auto',\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IVerticalBarChartProps => {\n const { data, layout } = jsonObj;\n const vbcData: IVerticalBarChartDataPoint[] = [];\n\n data.forEach((series: any, index: number) => {\n if (!series.x) {\n return;\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(series.x) as [number, number])\n .nice();\n let [xMin, xMax] = scale.domain();\n\n xMin = typeof series.xbins?.start === 'number' ? series.xbins.start : xMin;\n xMax = typeof series.xbins?.end === 'number' ? series.xbins.end : xMax;\n\n const bin = d3Bin().domain([xMin, xMax]);\n\n if (typeof series.xbins?.size === 'number') {\n const thresholds: number[] = [];\n let th = xMin;\n const precision = d3PrecisionFixed(series.xbins.size);\n const format = d3Format(`.${precision}f`);\n\n while (th < xMax + series.xbins.size) {\n thresholds.push(parseFloat(format(th)));\n th += series.xbins.size;\n }\n\n xMin = thresholds[0];\n xMax = thresholds[thresholds.length - 1];\n bin.domain([xMin, xMax]).thresholds(thresholds);\n }\n\n const buckets = bin(series.x);\n // If the start or end of xbins is specified, then the number of datapoints may become less than x.length\n const totalDataPoints = d3Merge(buckets).length;\n\n buckets.forEach(bucket => {\n const legend = series.name || `Series ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n let y = bucket.length;\n\n if (series.histnorm === 'percent') {\n y = (bucket.length / totalDataPoints) * 100;\n } else if (series.histnorm === 'probability') {\n y = bucket.length / totalDataPoints;\n } else if (series.histnorm === 'density') {\n y = bucket.x0 === bucket.x1 ? 0 : bucket.length / (bucket.x1! - bucket.x0!);\n } else if (series.histnorm === 'probability density') {\n y = bucket.x0 === bucket.x1 ? 0 : bucket.length / (totalDataPoints * (bucket.x1! - bucket.x0!));\n } else if (series.histfunc === 'sum') {\n y = d3Sum(bucket);\n } else if (series.histfunc === 'avg') {\n y = bucket.length === 0 ? 0 : d3Sum(bucket) / bucket.length;\n } else if (series.histfunc === 'min') {\n y = d3Min(bucket)!;\n } else if (series.histfunc === 'max') {\n y = d3Max(bucket)!;\n }\n\n vbcData.push({\n x: (bucket.x1! + bucket.x0!) / 2,\n y,\n legend,\n color,\n xAxisCalloutData: `[${bucket.x0} - ${bucket.x1})`,\n });\n });\n });\n\n return {\n data: vbcData,\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n hideLegend: true,\n barWidth: 24,\n supportNegativeData: true,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n jsonObj: any,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): ILineChartProps | IAreaChartProps => {\n const { data, layout } = jsonObj;\n\n const chartData: ILineChartPoints[] = data.map((series: any, index: number) => {\n const xValues = series.x;\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend = series.name || `Series ${index + 1}`;\n const lineColor = getColor(legend, colorMap, isDarkTheme);\n\n return {\n legend,\n data: xValues.map((x: string | number, i: number) => ({\n x: isString ? (isXDate ? new Date(x) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n })),\n color: lineColor,\n };\n });\n\n const chartProps: IChartProps = {\n chartTitle: layout.title || '',\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n } as IAreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n } as ILineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IHorizontalBarChartWithAxisProps => {\n const { data, layout } = jsonObj;\n\n const chartData: IHorizontalBarChartWithAxisDataPoint[] = data\n .map((series: any, index: number) => {\n return series.y.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 };\n });\n })\n .flat();\n\n const chartHeight = layout.height || 450;\n const margin = layout.margin?.l || 0;\n const padding = layout.margin?.pad || 0;\n const availableHeight = chartHeight - margin - padding;\n const numberOfBars = data[0].y.length;\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfBars);\n const barHeight = availableHeight / (numberOfBars * (1 + gapFactor));\n\n return {\n data: chartData,\n chartTitle: layout.title || '',\n barHeight,\n showYAxisLables: true,\n styles: {\n root: {\n height: chartHeight,\n width: layout.width || 600,\n },\n },\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (jsonObj: any): IHeatMapChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n const heatmapDataPoints: IHeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n firstData.x?.forEach((xVal: any, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = firstData.z?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: layout.xaxis?.type === 'date' ? new Date(xVal) : xVal,\n y: layout.yaxis?.type === 'date' ? new Date(yVal) : yVal,\n value: zVal,\n });\n\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n });\n });\n const heatmapData: IHeatMapChartData = {\n legend: firstData.name || '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Convert normalized values to actual values\n const domainValuesForColorScale: number[] = firstData.colorscale\n ? firstData.colorscale.map((arr: any) => arr[0] * (zMax - zMin) + zMin)\n : [];\n const rangeValuesForColorScale: string[] = firstData.colorscale ? firstData.colorscale.map((arr: any) => arr[1]) : [];\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): ISankeyChartProps => {\n const { data, layout } = jsonObj;\n const { link, node } = data[0];\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 //@ts-expect-error Dynamic link object. Ignore for now.\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 };\n\n const width: number = layout?.width || 440;\n const height: number = layout?.height || 220;\n const styles: ISankeyChartProps['styles'] = {\n root: {\n fontSize: layout.font?.size,\n },\n };\n const shouldResize: number = width + height;\n return {\n data: {\n chartTitle: layout?.title,\n SankeyChartData: sankeyChartData,\n },\n width,\n height,\n styles,\n shouldResize,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGaugeChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n\n const segments = firstData.gauge?.steps?.map((step: any, index: number): IGaugeChartSegment => {\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 let sublabel: string | undefined;\n let sublabelColor: string | undefined;\n if (typeof firstData.delta?.reference === 'number') {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n const color = getColor(firstData.delta.increasing?.color || '', colorMap, isDarkTheme);\n sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n const color = getColor(firstData.delta.decreasing?.color || '', colorMap, isDarkTheme);\n sublabelColor = color;\n }\n }\n\n const styles: IGaugeChartProps['styles'] = {\n sublabel: {\n fill: sublabelColor,\n },\n };\n\n return {\n segments,\n chartValue: firstData.value,\n chartTitle: firstData.title?.text,\n sublabel,\n // range values can be null\n minValue: firstData.gauge?.axis?.range?.[0] ?? undefined,\n maxValue: firstData.gauge?.axis?.range?.[1] ?? undefined,\n chartValueFormat: () => firstData.value,\n width: layout?.width,\n height: layout?.height,\n hideLegend: true,\n styles,\n };\n};\n\nfunction isTypedArray(a: any) {\n return ArrayBuffer.isView(a) && !(a instanceof DataView);\n}\n\nfunction isArrayOrTypedArray(a: any) {\n return Array.isArray(a) || isTypedArray(a);\n}\n\nfunction isPlainObject(obj: any) {\n if (window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\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 for (const attribute of arrayAttributes) {\n console.log(attribute);\n }\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"]}
@@ -13,6 +13,7 @@ export declare class LegendsBase extends React.Component<ILegendsProps, ILegendS
13
13
  private _classNames;
14
14
  /** Boolean variable to check if one or more legends are selected */
15
15
  private _isLegendSelected;
16
+ static getDerivedStateFromProps(newProps: ILegendsProps, prevState: ILegendState): ILegendState;
16
17
  constructor(props: ILegendsProps);
17
18
  render(): JSX.Element;
18
19
  private _generateData;
@@ -20,17 +21,22 @@ export declare class LegendsBase extends React.Component<ILegendsProps, ILegendS
20
21
  private _onReduceData;
21
22
  private _onGrowData;
22
23
  /**
23
- * This function will get called when there is an ability to
24
- * select multiple legends
25
- * @param legend ILegend
24
+ * Determine whether the component is in "controlled" mode for selections, where the selected legend(s) are
25
+ * determined entirely by props passed in from the parent component.
26
26
  */
27
- private _canSelectMultipleLegends;
27
+ private _isInControlledMode;
28
28
  /**
29
- * This function will get called when there is
30
- * ability to select only single legend
31
- * @param legend ILegend
29
+ * Get the new selected legends based on the legend that was clicked when multi-select is enabled.
30
+ * @param legend The legend that was clicked
31
+ * @returns An object with the new selected legend(s) state data.
32
32
  */
33
- private _canSelectOnlySingleLegend;
33
+ private _getNewSelectedLegendsForMultiselect;
34
+ /**
35
+ * Get the new selected legends based on the legend that was clicked when single-select is enabled.
36
+ * @param legend The legend that was clicked
37
+ * @returns An object with the new selected legend state data.
38
+ */
39
+ private _getNewSelectedLegendsForSingleSelect;
34
40
  private _onClick;
35
41
  private _onRenderCompactCard;
36
42
  private _renderOverflowItems;