@hitachivantara/uikit-react-viz 4.0.3 → 4.0.4

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 (142) hide show
  1. package/dist/Barchart/Barchart.js +45 -72
  2. package/dist/Barchart/Barchart.js.map +1 -1
  3. package/dist/Barchart/barchartPlotlyOverrides.js +1 -13
  4. package/dist/Barchart/barchartPlotlyOverrides.js.map +1 -1
  5. package/dist/Barchart/index.js +0 -2
  6. package/dist/Barchart/index.js.map +1 -1
  7. package/dist/Barchart/styles.js.map +1 -1
  8. package/dist/Chart/Chart.js +28 -75
  9. package/dist/Chart/Chart.js.map +1 -1
  10. package/dist/Chart/Plot/Plot.js +10 -47
  11. package/dist/Chart/Plot/Plot.js.map +1 -1
  12. package/dist/Chart/Plot/index.js +0 -2
  13. package/dist/Chart/Plot/index.js.map +1 -1
  14. package/dist/Chart/Plot/styles.js.map +1 -1
  15. package/dist/Chart/Tooltip/MultiTooltip/MultiTooltip.js +1 -36
  16. package/dist/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  17. package/dist/Chart/Tooltip/MultiTooltip/index.js +0 -2
  18. package/dist/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
  19. package/dist/Chart/Tooltip/MultiTooltip/styles.js +0 -2
  20. package/dist/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
  21. package/dist/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -26
  22. package/dist/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  23. package/dist/Chart/Tooltip/SingleTooltip/index.js +0 -2
  24. package/dist/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
  25. package/dist/Chart/Tooltip/SingleTooltip/styles.js +0 -2
  26. package/dist/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
  27. package/dist/Chart/Tooltip/Tooltip.js +16 -51
  28. package/dist/Chart/Tooltip/Tooltip.js.map +1 -1
  29. package/dist/Chart/Tooltip/index.js +0 -2
  30. package/dist/Chart/Tooltip/index.js.map +1 -1
  31. package/dist/Chart/Tooltip/styles.js.map +1 -1
  32. package/dist/Chart/chartPlotlyOverrides.js +9 -33
  33. package/dist/Chart/chartPlotlyOverrides.js.map +1 -1
  34. package/dist/Chart/index.js +0 -2
  35. package/dist/Chart/index.js.map +1 -1
  36. package/dist/Chart/styles.js +0 -13
  37. package/dist/Chart/styles.js.map +1 -1
  38. package/dist/Donutchart/Donutchart.js +10 -47
  39. package/dist/Donutchart/Donutchart.js.map +1 -1
  40. package/dist/Donutchart/donutchartPlotlyOverrides.js +1 -13
  41. package/dist/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
  42. package/dist/Donutchart/index.js +0 -2
  43. package/dist/Donutchart/index.js.map +1 -1
  44. package/dist/Donutchart/styles.js.map +1 -1
  45. package/dist/Linechart/Linechart.js +12 -50
  46. package/dist/Linechart/Linechart.js.map +1 -1
  47. package/dist/Linechart/index.js +0 -2
  48. package/dist/Linechart/index.js.map +1 -1
  49. package/dist/Linechart/lineChartPlotlyOverrides.js +1 -17
  50. package/dist/Linechart/lineChartPlotlyOverrides.js.map +1 -1
  51. package/dist/Linechart/styles.js.map +1 -1
  52. package/dist/index.js +0 -4
  53. package/dist/index.js.map +1 -1
  54. package/dist/legacy/Barchart/Barchart.js +45 -43
  55. package/dist/legacy/Barchart/Barchart.js.map +1 -1
  56. package/dist/legacy/Barchart/barchartPlotlyOverrides.js +1 -6
  57. package/dist/legacy/Barchart/barchartPlotlyOverrides.js.map +1 -1
  58. package/dist/legacy/Barchart/index.js.map +1 -1
  59. package/dist/legacy/Barchart/styles.js.map +1 -1
  60. package/dist/legacy/Chart/Chart.js +28 -46
  61. package/dist/legacy/Chart/Chart.js.map +1 -1
  62. package/dist/legacy/Chart/Plot/Plot.js +10 -21
  63. package/dist/legacy/Chart/Plot/Plot.js.map +1 -1
  64. package/dist/legacy/Chart/Plot/index.js.map +1 -1
  65. package/dist/legacy/Chart/Plot/styles.js.map +1 -1
  66. package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js +1 -17
  67. package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  68. package/dist/legacy/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
  69. package/dist/legacy/Chart/Tooltip/MultiTooltip/styles.js +0 -1
  70. package/dist/legacy/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
  71. package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -9
  72. package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  73. package/dist/legacy/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
  74. package/dist/legacy/Chart/Tooltip/SingleTooltip/styles.js +0 -1
  75. package/dist/legacy/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
  76. package/dist/legacy/Chart/Tooltip/Tooltip.js +16 -30
  77. package/dist/legacy/Chart/Tooltip/Tooltip.js.map +1 -1
  78. package/dist/legacy/Chart/Tooltip/index.js.map +1 -1
  79. package/dist/legacy/Chart/Tooltip/styles.js.map +1 -1
  80. package/dist/legacy/Chart/chartPlotlyOverrides.js +9 -20
  81. package/dist/legacy/Chart/chartPlotlyOverrides.js.map +1 -1
  82. package/dist/legacy/Chart/index.js.map +1 -1
  83. package/dist/legacy/Chart/styles.js +0 -4
  84. package/dist/legacy/Chart/styles.js.map +1 -1
  85. package/dist/legacy/Donutchart/Donutchart.js +11 -22
  86. package/dist/legacy/Donutchart/Donutchart.js.map +1 -1
  87. package/dist/legacy/Donutchart/donutchartPlotlyOverrides.js +1 -6
  88. package/dist/legacy/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
  89. package/dist/legacy/Donutchart/index.js.map +1 -1
  90. package/dist/legacy/Donutchart/styles.js.map +1 -1
  91. package/dist/legacy/Linechart/Linechart.js +13 -25
  92. package/dist/legacy/Linechart/Linechart.js.map +1 -1
  93. package/dist/legacy/Linechart/index.js.map +1 -1
  94. package/dist/legacy/Linechart/lineChartPlotlyOverrides.js +1 -10
  95. package/dist/legacy/Linechart/lineChartPlotlyOverrides.js.map +1 -1
  96. package/dist/legacy/Linechart/styles.js.map +1 -1
  97. package/dist/legacy/index.js.map +1 -1
  98. package/dist/modern/Barchart/Barchart.js +38 -31
  99. package/dist/modern/Barchart/Barchart.js.map +1 -1
  100. package/dist/modern/Barchart/barchartPlotlyOverrides.js +1 -6
  101. package/dist/modern/Barchart/barchartPlotlyOverrides.js.map +1 -1
  102. package/dist/modern/Barchart/index.js.map +1 -1
  103. package/dist/modern/Barchart/styles.js.map +1 -1
  104. package/dist/modern/Chart/Chart.js +17 -33
  105. package/dist/modern/Chart/Chart.js.map +1 -1
  106. package/dist/modern/Chart/Plot/Plot.js +11 -22
  107. package/dist/modern/Chart/Plot/Plot.js.map +1 -1
  108. package/dist/modern/Chart/Plot/index.js.map +1 -1
  109. package/dist/modern/Chart/Plot/styles.js.map +1 -1
  110. package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js +0 -17
  111. package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  112. package/dist/modern/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
  113. package/dist/modern/Chart/Tooltip/MultiTooltip/styles.js +0 -1
  114. package/dist/modern/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
  115. package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js +0 -7
  116. package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  117. package/dist/modern/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
  118. package/dist/modern/Chart/Tooltip/SingleTooltip/styles.js +0 -1
  119. package/dist/modern/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
  120. package/dist/modern/Chart/Tooltip/Tooltip.js +2 -13
  121. package/dist/modern/Chart/Tooltip/Tooltip.js.map +1 -1
  122. package/dist/modern/Chart/Tooltip/index.js.map +1 -1
  123. package/dist/modern/Chart/Tooltip/styles.js.map +1 -1
  124. package/dist/modern/Chart/chartPlotlyOverrides.js +9 -20
  125. package/dist/modern/Chart/chartPlotlyOverrides.js.map +1 -1
  126. package/dist/modern/Chart/index.js.map +1 -1
  127. package/dist/modern/Chart/styles.js +0 -4
  128. package/dist/modern/Chart/styles.js.map +1 -1
  129. package/dist/modern/Donutchart/Donutchart.js +11 -22
  130. package/dist/modern/Donutchart/Donutchart.js.map +1 -1
  131. package/dist/modern/Donutchart/donutchartPlotlyOverrides.js +1 -6
  132. package/dist/modern/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
  133. package/dist/modern/Donutchart/index.js.map +1 -1
  134. package/dist/modern/Donutchart/styles.js.map +1 -1
  135. package/dist/modern/Linechart/Linechart.js +12 -24
  136. package/dist/modern/Linechart/Linechart.js.map +1 -1
  137. package/dist/modern/Linechart/index.js.map +1 -1
  138. package/dist/modern/Linechart/lineChartPlotlyOverrides.js +1 -10
  139. package/dist/modern/Linechart/lineChartPlotlyOverrides.js.map +1 -1
  140. package/dist/modern/Linechart/styles.js.map +1 -1
  141. package/dist/modern/index.js.map +1 -1
  142. package/package.json +3 -3
@@ -2,11 +2,8 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
4
  var _excluded = ["id", "classes", "data", "layout", "config", "tooltipType", "stack", "horizontal"];
5
-
6
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
-
8
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
-
10
7
  import "core-js/modules/es.array.map.js";
11
8
  import "core-js/modules/es.object.keys.js";
12
9
  import "core-js/modules/es.symbol.js";
@@ -26,42 +23,43 @@ var MARGIN = 50;
26
23
  var MAX_BAR_WIDTH = 90;
27
24
  var MIN_BAR_WIDTH = 3;
28
25
  var MIN_WIDTH = 75;
26
+
29
27
  /**
30
28
  * A Bar chart is a chart or graph that presents categorical data with rectangular bars.
31
29
  *
32
30
  * Our implementation leverages the Plotly charting library. If you have a specific case
33
31
  * that we don't cover, the Plotly [documentation](https://plotly.com/javascript/) is a good starting point.
34
32
  */
35
-
36
33
  var Barchart = function Barchart(_ref) {
37
34
  var id = _ref.id,
38
- classes = _ref.classes,
39
- data = _ref.data,
40
- layout = _ref.layout,
41
- config = _ref.config,
42
- _ref$tooltipType = _ref.tooltipType,
43
- tooltipType = _ref$tooltipType === void 0 ? "multiple" : _ref$tooltipType,
44
- _ref$stack = _ref.stack,
45
- stack = _ref$stack === void 0 ? false : _ref$stack,
46
- _ref$horizontal = _ref.horizontal,
47
- horizontal = _ref$horizontal === void 0 ? false : _ref$horizontal,
48
- others = _objectWithoutProperties(_ref, _excluded);
49
-
35
+ classes = _ref.classes,
36
+ data = _ref.data,
37
+ layout = _ref.layout,
38
+ config = _ref.config,
39
+ _ref$tooltipType = _ref.tooltipType,
40
+ tooltipType = _ref$tooltipType === void 0 ? "multiple" : _ref$tooltipType,
41
+ _ref$stack = _ref.stack,
42
+ stack = _ref$stack === void 0 ? false : _ref$stack,
43
+ _ref$horizontal = _ref.horizontal,
44
+ horizontal = _ref$horizontal === void 0 ? false : _ref$horizontal,
45
+ others = _objectWithoutProperties(_ref, _excluded);
50
46
  /* Values derived from props */
47
+
51
48
  var dataWithDefaults = useMemo(function () {
52
49
  return applyDataDefaults(data, horizontal);
53
50
  }, [data, horizontal]);
54
51
  var chartLayout = useMemo(function () {
55
52
  return applyLayoutDefaults(layout, stack, horizontal);
56
53
  }, [layout, stack, horizontal]);
54
+
57
55
  /* State */
58
56
 
59
57
  var _useState = useState(dataWithDefaults),
60
- _useState2 = _slicedToArray(_useState, 2),
61
- chartData = _useState2[0],
62
- setChartData = _useState2[1];
63
- /* Effects */
58
+ _useState2 = _slicedToArray(_useState, 2),
59
+ chartData = _useState2[0],
60
+ setChartData = _useState2[1];
64
61
 
62
+ /* Effects */
65
63
 
66
64
  var firstRender = useRef(true);
67
65
  useEffect(function () {
@@ -71,32 +69,28 @@ var Barchart = function Barchart(_ref) {
71
69
  if (!firstRender.current) {
72
70
  setChartData(dataWithDefaults);
73
71
  }
74
-
75
72
  firstRender.current = false;
76
73
  }, [dataWithDefaults]);
74
+
77
75
  /**
78
76
  * Used to force the max width of each bar with 90px.
79
77
  *
80
78
  * (this is effectively more an effect than a callback)
81
79
  */
82
-
83
80
  var recalculateBarWidth = useCallback(function (ref) {
84
81
  // use the data and layout info directly from the plotly ref
85
82
  // as it's always the most uptodate version.
86
83
  var plotData = ref.current.props.data;
87
84
  var plotLayout = ref.current.props.layout;
88
-
89
85
  if (plotData.length > 0) {
90
86
  var barmode = plotLayout.barmode,
91
- bargap = plotLayout.bargap,
92
- bargroupgap = plotLayout.bargroupgap;
87
+ bargap = plotLayout.bargap,
88
+ bargroupgap = plotLayout.bargroupgap;
93
89
  var isStack = barmode === "stack";
94
90
  var numberOfBarsByGroup = isStack ? 1 : plotData.length;
95
91
  var numberOfGroup = plotData[0].x.length;
96
-
97
92
  var _ref$current$el$getBo = ref.current.el.getBoundingClientRect(),
98
- boundingRect = _ref$current$el$getBo.width;
99
-
93
+ boundingRect = _ref$current$el$getBo.width;
100
94
  var width = boundingRect < MIN_WIDTH ? MIN_WIDTH : boundingRect;
101
95
  var plotWidth = width - MARGIN;
102
96
  var groupWidth = plotWidth / numberOfGroup;
@@ -105,7 +99,6 @@ var Barchart = function Barchart(_ref) {
105
99
  var greaterThan90 = calculatedBarWidth > MAX_BAR_WIDTH;
106
100
  var lessThan3 = calculatedBarWidth < MIN_BAR_WIDTH;
107
101
  var isAlreadyGreaterThan90 = plotData[0].width !== undefined;
108
-
109
102
  if (greaterThan90 && !isAlreadyGreaterThan90) {
110
103
  var newWidth = MAX_BAR_WIDTH / plotWidth * numberOfGroup;
111
104
  var newData = plotData.map(function (subData) {
@@ -115,26 +108,21 @@ var Barchart = function Barchart(_ref) {
115
108
  });
116
109
  setChartData(newData);
117
110
  }
118
-
119
111
  if (lessThan3 && !isAlreadyGreaterThan90) {
120
112
  var _newWidth = MIN_BAR_WIDTH / plotWidth * numberOfGroup;
121
-
122
113
  var _newData = plotData.map(function (subData) {
123
114
  return _objectSpread(_objectSpread({}, subData), {}, {
124
115
  width: _newWidth
125
116
  });
126
117
  });
127
-
128
118
  setChartData(_newData);
129
119
  }
130
-
131
120
  if (!greaterThan90 && isAlreadyGreaterThan90) {
132
121
  var _newData2 = plotData.map(function (subData) {
133
122
  return _objectSpread(_objectSpread({}, subData), {}, {
134
123
  width: undefined
135
124
  });
136
125
  });
137
-
138
126
  setChartData(_newData2);
139
127
  }
140
128
  }
@@ -149,43 +137,57 @@ var Barchart = function Barchart(_ref) {
149
137
  afterPlot: recalculateBarWidth
150
138
  }, others));
151
139
  };
152
-
153
140
  process.env.NODE_ENV !== "production" ? Barchart.propTypes = {
154
141
  /**
155
142
  * An Id passed on to the component
156
143
  */
157
144
  id: PropTypes.string,
158
-
159
145
  /**
160
146
  * A Jss Object used to override or extend the styles applied.
161
147
  */
162
- classes: PropTypes.instanceOf(Object),
163
-
148
+ classes: PropTypes.shape({
149
+ root: PropTypes.string
150
+ }),
164
151
  /**
165
152
  * Plotly data object (see https://plot.ly/javascript/reference/).
166
153
  */
167
154
  data: PropTypes.arrayOf(PropTypes.instanceOf(Object)).isRequired,
168
-
169
155
  /**
170
156
  * Plotly layout object (see https://plot.ly/javascript/reference/#layout).
171
157
  */
172
158
  layout: PropTypes.instanceOf(Object),
173
-
174
159
  /**
175
160
  * Plotly config object (see https://plot.ly/javascript/configuration-options/).
176
161
  */
177
162
  config: PropTypes.instanceOf(Object),
178
-
179
163
  /**
180
164
  * Defines if should use a single or multiline tooltip.
181
165
  */
182
166
  tooltipType: PropTypes.oneOf(["single", "multiple"]),
183
-
167
+ /**
168
+ * Custom tooltip element to be displayed
169
+ */
170
+ tooltip: PropTypes.func,
171
+ /**
172
+ * Function to be called after plot render.
173
+ */
174
+ afterPlot: PropTypes.func,
175
+ /**
176
+ * Defines the X axis title.
177
+ */
178
+ xAxisTitle: PropTypes.string,
179
+ /**
180
+ * Defines the Y axis title.
181
+ */
182
+ yAxisTitle: PropTypes.string,
183
+ /**
184
+ * Defines the chart subtitle.
185
+ */
186
+ subtitle: PropTypes.string,
184
187
  /**
185
188
  * Sets is the chart is stack.
186
189
  */
187
190
  stack: PropTypes.bool,
188
-
189
191
  /**
190
192
  * Sets is the chart is horizontal.
191
193
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Barchart.js","names":["React","useMemo","useEffect","useState","useCallback","useRef","PropTypes","withStyles","Chart","applyLayoutDefaults","applyDataDefaults","styles","MARGIN","MAX_BAR_WIDTH","MIN_BAR_WIDTH","MIN_WIDTH","Barchart","id","classes","data","layout","config","tooltipType","stack","horizontal","others","dataWithDefaults","chartLayout","chartData","setChartData","firstRender","current","recalculateBarWidth","ref","plotData","props","plotLayout","length","barmode","bargap","bargroupgap","isStack","numberOfBarsByGroup","numberOfGroup","x","el","getBoundingClientRect","boundingRect","width","plotWidth","groupWidth","colWidth","calculatedBarWidth","greaterThan90","lessThan3","isAlreadyGreaterThan90","undefined","newWidth","newData","map","subData","propTypes","string","instanceOf","Object","arrayOf","isRequired","oneOf","bool","name"],"sources":["../../../src/Barchart/Barchart.js"],"sourcesContent":["import React, { useMemo, useEffect, useState, useCallback, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@mui/styles\";\nimport Chart from \"../Chart\";\nimport { applyLayoutDefaults, applyDataDefaults } from \"./barchartPlotlyOverrides\";\nimport styles from \"./styles\";\n\nconst MARGIN = 50;\nconst MAX_BAR_WIDTH = 90;\nconst MIN_BAR_WIDTH = 3;\nconst MIN_WIDTH = 75;\n\n/**\n * A Bar chart is a chart or graph that presents categorical data with rectangular bars.\n *\n * Our implementation leverages the Plotly charting library. If you have a specific case\n * that we don't cover, the Plotly [documentation](https://plotly.com/javascript/) is a good starting point.\n */\nconst Barchart = ({\n id,\n classes,\n data,\n layout,\n config,\n tooltipType = \"multiple\",\n stack = false,\n horizontal = false,\n ...others\n}) => {\n /* Values derived from props */\n\n const dataWithDefaults = useMemo(() => applyDataDefaults(data, horizontal), [data, horizontal]);\n const chartLayout = useMemo(\n () => applyLayoutDefaults(layout, stack, horizontal),\n [layout, stack, horizontal]\n );\n\n /* State */\n\n const [chartData, setChartData] = useState(dataWithDefaults);\n\n /* Effects */\n\n const firstRender = useRef(true);\n useEffect(() => {\n // only setChartData when prop value changes\n // not needed on first render because the\n // initial state is already properly set\n if (!firstRender.current) {\n setChartData(dataWithDefaults);\n }\n\n firstRender.current = false;\n }, [dataWithDefaults]);\n\n /**\n * Used to force the max width of each bar with 90px.\n *\n * (this is effectively more an effect than a callback)\n */\n const recalculateBarWidth = useCallback((ref) => {\n // use the data and layout info directly from the plotly ref\n // as it's always the most uptodate version.\n const plotData = ref.current.props.data;\n const plotLayout = ref.current.props.layout;\n\n if (plotData.length > 0) {\n const { barmode, bargap, bargroupgap } = plotLayout;\n\n const isStack = barmode === \"stack\";\n const numberOfBarsByGroup = isStack ? 1 : plotData.length;\n const numberOfGroup = plotData[0].x.length;\n\n const { width: boundingRect } = ref.current.el.getBoundingClientRect();\n const width = boundingRect < MIN_WIDTH ? MIN_WIDTH : boundingRect;\n const plotWidth = width - MARGIN;\n const groupWidth = plotWidth / numberOfGroup;\n const colWidth = groupWidth * (1 - bargap) - groupWidth * (1 - bargap) * bargroupgap;\n\n const calculatedBarWidth = colWidth / numberOfBarsByGroup;\n const greaterThan90 = calculatedBarWidth > MAX_BAR_WIDTH;\n const lessThan3 = calculatedBarWidth < MIN_BAR_WIDTH;\n const isAlreadyGreaterThan90 = plotData[0].width !== undefined;\n\n if (greaterThan90 && !isAlreadyGreaterThan90) {\n const newWidth = (MAX_BAR_WIDTH / plotWidth) * numberOfGroup;\n\n const newData = plotData.map((subData) => {\n return { ...subData, width: newWidth };\n });\n\n setChartData(newData);\n }\n\n if (lessThan3 && !isAlreadyGreaterThan90) {\n const newWidth = (MIN_BAR_WIDTH / plotWidth) * numberOfGroup;\n\n const newData = plotData.map((subData) => {\n return { ...subData, width: newWidth };\n });\n\n setChartData(newData);\n }\n\n if (!greaterThan90 && isAlreadyGreaterThan90) {\n const newData = plotData.map((subData) => {\n return { ...subData, width: undefined };\n });\n\n setChartData(newData);\n }\n }\n }, []);\n\n return (\n <Chart\n id={id}\n classes={classes}\n data={chartData}\n layout={chartLayout}\n config={config}\n tooltipType={tooltipType}\n afterPlot={recalculateBarWidth}\n {...others}\n />\n );\n};\nBarchart.propTypes = {\n /**\n * An Id passed on to the component\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.instanceOf(Object),\n /**\n * Plotly data object (see https://plot.ly/javascript/reference/).\n */\n data: PropTypes.arrayOf(PropTypes.instanceOf(Object)).isRequired,\n /**\n * Plotly layout object (see https://plot.ly/javascript/reference/#layout).\n */\n layout: PropTypes.instanceOf(Object),\n /**\n * Plotly config object (see https://plot.ly/javascript/configuration-options/).\n */\n config: PropTypes.instanceOf(Object),\n /**\n * Defines if should use a single or multiline tooltip.\n */\n tooltipType: PropTypes.oneOf([\"single\", \"multiple\"]),\n /**\n * Sets is the chart is stack.\n */\n stack: PropTypes.bool,\n /**\n * Sets is the chart is horizontal.\n */\n horizontal: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvBarchart\" })(Barchart);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Barchart.js","names":["React","useMemo","useEffect","useState","useCallback","useRef","PropTypes","withStyles","Chart","applyLayoutDefaults","applyDataDefaults","styles","MARGIN","MAX_BAR_WIDTH","MIN_BAR_WIDTH","MIN_WIDTH","Barchart","id","classes","data","layout","config","tooltipType","stack","horizontal","others","dataWithDefaults","chartLayout","chartData","setChartData","firstRender","current","recalculateBarWidth","ref","plotData","props","plotLayout","length","barmode","bargap","bargroupgap","isStack","numberOfBarsByGroup","numberOfGroup","x","el","getBoundingClientRect","boundingRect","width","plotWidth","groupWidth","colWidth","calculatedBarWidth","greaterThan90","lessThan3","isAlreadyGreaterThan90","undefined","newWidth","newData","map","subData","propTypes","string","shape","root","arrayOf","instanceOf","Object","isRequired","oneOf","tooltip","func","afterPlot","xAxisTitle","yAxisTitle","subtitle","bool","name"],"sources":["../../../src/Barchart/Barchart.js"],"sourcesContent":["import React, { useMemo, useEffect, useState, useCallback, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@mui/styles\";\nimport Chart from \"../Chart\";\nimport { applyLayoutDefaults, applyDataDefaults } from \"./barchartPlotlyOverrides\";\nimport styles from \"./styles\";\n\nconst MARGIN = 50;\nconst MAX_BAR_WIDTH = 90;\nconst MIN_BAR_WIDTH = 3;\nconst MIN_WIDTH = 75;\n\n/**\n * A Bar chart is a chart or graph that presents categorical data with rectangular bars.\n *\n * Our implementation leverages the Plotly charting library. If you have a specific case\n * that we don't cover, the Plotly [documentation](https://plotly.com/javascript/) is a good starting point.\n */\nconst Barchart = ({\n id,\n classes,\n data,\n layout,\n config,\n tooltipType = \"multiple\",\n stack = false,\n horizontal = false,\n ...others\n}) => {\n /* Values derived from props */\n\n const dataWithDefaults = useMemo(() => applyDataDefaults(data, horizontal), [data, horizontal]);\n const chartLayout = useMemo(\n () => applyLayoutDefaults(layout, stack, horizontal),\n [layout, stack, horizontal]\n );\n\n /* State */\n\n const [chartData, setChartData] = useState(dataWithDefaults);\n\n /* Effects */\n\n const firstRender = useRef(true);\n useEffect(() => {\n // only setChartData when prop value changes\n // not needed on first render because the\n // initial state is already properly set\n if (!firstRender.current) {\n setChartData(dataWithDefaults);\n }\n\n firstRender.current = false;\n }, [dataWithDefaults]);\n\n /**\n * Used to force the max width of each bar with 90px.\n *\n * (this is effectively more an effect than a callback)\n */\n const recalculateBarWidth = useCallback((ref) => {\n // use the data and layout info directly from the plotly ref\n // as it's always the most uptodate version.\n const plotData = ref.current.props.data;\n const plotLayout = ref.current.props.layout;\n\n if (plotData.length > 0) {\n const { barmode, bargap, bargroupgap } = plotLayout;\n\n const isStack = barmode === \"stack\";\n const numberOfBarsByGroup = isStack ? 1 : plotData.length;\n const numberOfGroup = plotData[0].x.length;\n\n const { width: boundingRect } = ref.current.el.getBoundingClientRect();\n const width = boundingRect < MIN_WIDTH ? MIN_WIDTH : boundingRect;\n const plotWidth = width - MARGIN;\n const groupWidth = plotWidth / numberOfGroup;\n const colWidth = groupWidth * (1 - bargap) - groupWidth * (1 - bargap) * bargroupgap;\n\n const calculatedBarWidth = colWidth / numberOfBarsByGroup;\n const greaterThan90 = calculatedBarWidth > MAX_BAR_WIDTH;\n const lessThan3 = calculatedBarWidth < MIN_BAR_WIDTH;\n const isAlreadyGreaterThan90 = plotData[0].width !== undefined;\n\n if (greaterThan90 && !isAlreadyGreaterThan90) {\n const newWidth = (MAX_BAR_WIDTH / plotWidth) * numberOfGroup;\n\n const newData = plotData.map((subData) => {\n return { ...subData, width: newWidth };\n });\n\n setChartData(newData);\n }\n\n if (lessThan3 && !isAlreadyGreaterThan90) {\n const newWidth = (MIN_BAR_WIDTH / plotWidth) * numberOfGroup;\n\n const newData = plotData.map((subData) => {\n return { ...subData, width: newWidth };\n });\n\n setChartData(newData);\n }\n\n if (!greaterThan90 && isAlreadyGreaterThan90) {\n const newData = plotData.map((subData) => {\n return { ...subData, width: undefined };\n });\n\n setChartData(newData);\n }\n }\n }, []);\n\n return (\n <Chart\n id={id}\n classes={classes}\n data={chartData}\n layout={chartLayout}\n config={config}\n tooltipType={tooltipType}\n afterPlot={recalculateBarWidth}\n {...others}\n />\n );\n};\nBarchart.propTypes = {\n /**\n * An Id passed on to the component\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n root: PropTypes.string,\n }),\n /**\n * Plotly data object (see https://plot.ly/javascript/reference/).\n */\n data: PropTypes.arrayOf(PropTypes.instanceOf(Object)).isRequired,\n /**\n * Plotly layout object (see https://plot.ly/javascript/reference/#layout).\n */\n layout: PropTypes.instanceOf(Object),\n /**\n * Plotly config object (see https://plot.ly/javascript/configuration-options/).\n */\n config: PropTypes.instanceOf(Object),\n /**\n * Defines if should use a single or multiline tooltip.\n */\n tooltipType: PropTypes.oneOf([\"single\", \"multiple\"]),\n /**\n * Custom tooltip element to be displayed\n */\n tooltip: PropTypes.func,\n /**\n * Function to be called after plot render.\n */\n afterPlot: PropTypes.func,\n /**\n * Defines the X axis title.\n */\n xAxisTitle: PropTypes.string,\n /**\n * Defines the Y axis title.\n */\n yAxisTitle: PropTypes.string,\n /**\n * Defines the chart subtitle.\n */\n subtitle: PropTypes.string,\n /**\n * Sets is the chart is stack.\n */\n stack: PropTypes.bool,\n /**\n * Sets is the chart is horizontal.\n */\n horizontal: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvBarchart\" })(Barchart);\n"],"mappings":"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"}
@@ -1,18 +1,15 @@
1
1
  import "core-js/modules/es.object.to-string.js";
2
2
  import "core-js/modules/web.dom-collections.for-each.js";
3
3
  import clone from "lodash/cloneDeep";
4
-
5
4
  var setterIfNil = function setterIfNil(object, property, value) {
6
5
  var _object$property;
7
-
8
6
  // eslint-disable-next-line no-param-reassign
9
7
  object[property] = (_object$property = object[property]) !== null && _object$property !== void 0 ? _object$property : value;
10
8
  };
9
+
11
10
  /**
12
11
  * Auxiliary functions to set the layout in order to follow the DS guideline.
13
12
  */
14
-
15
-
16
13
  export var applyLayoutDefaults = function applyLayoutDefaults(inputLayout, stack, isHorizontal) {
17
14
  var layout = inputLayout === undefined ? {} : clone(inputLayout);
18
15
  setterIfNil(layout, "bargap", 0.25);
@@ -21,14 +18,12 @@ export var applyLayoutDefaults = function applyLayoutDefaults(inputLayout, stack
21
18
  if (stack) setterIfNil(layout, "barmode", "stack");
22
19
  setterIfNil(layout, "yaxis", {});
23
20
  setterIfNil(layout, "xaxis", {});
24
-
25
21
  if (isHorizontal) {
26
22
  setterIfNil(layout.yaxis, "showline", true);
27
23
  setterIfNil(layout.xaxis, "showline", false);
28
24
  } else {
29
25
  setterIfNil(layout.yaxis, "showline", false);
30
26
  }
31
-
32
27
  return layout;
33
28
  };
34
29
  export var applyDataDefaults = function applyDataDefaults(inputData, isHorizontal) {
@@ -1 +1 @@
1
- {"version":3,"file":"barchartPlotlyOverrides.js","names":["clone","setterIfNil","object","property","value","applyLayoutDefaults","inputLayout","stack","isHorizontal","layout","undefined","yaxis","xaxis","applyDataDefaults","inputData","data","forEach","trace"],"sources":["../../../src/Barchart/barchartPlotlyOverrides.js"],"sourcesContent":["import clone from \"lodash/cloneDeep\";\n\nconst setterIfNil = (object, property, value) => {\n // eslint-disable-next-line no-param-reassign\n object[property] = object[property] ?? value;\n};\n\n/**\n * Auxiliary functions to set the layout in order to follow the DS guideline.\n */\nexport const applyLayoutDefaults = (inputLayout, stack, isHorizontal) => {\n const layout = inputLayout === undefined ? {} : clone(inputLayout);\n setterIfNil(layout, \"bargap\", 0.25);\n setterIfNil(layout, \"bargroupgap\", 0.25);\n setterIfNil(layout, \"hovermode\", \"closest\");\n if (stack) setterIfNil(layout, \"barmode\", \"stack\");\n\n setterIfNil(layout, \"yaxis\", {});\n setterIfNil(layout, \"xaxis\", {});\n\n if (isHorizontal) {\n setterIfNil(layout.yaxis, \"showline\", true);\n setterIfNil(layout.xaxis, \"showline\", false);\n } else {\n setterIfNil(layout.yaxis, \"showline\", false);\n }\n\n return layout;\n};\n\nexport const applyDataDefaults = (inputData, isHorizontal) => {\n const data = inputData;\n\n data.forEach((trace) => {\n setterIfNil(trace, \"type\", \"bar\");\n setterIfNil(trace, \"hoverinfo\", \"none\");\n if (isHorizontal) setterIfNil(trace, \"orientation\", \"h\");\n });\n\n return data;\n};\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,kBAAlB;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAASC,QAAT,EAAmBC,KAAnB,EAA6B;EAAA;;EAC/C;EACAF,MAAM,CAACC,QAAD,CAAN,uBAAmBD,MAAM,CAACC,QAAD,CAAzB,+DAAuCC,KAAvC;AACD,CAHD;AAKA;AACA;AACA;;;AACA,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,WAAD,EAAcC,KAAd,EAAqBC,YAArB,EAAsC;EACvE,IAAMC,MAAM,GAAGH,WAAW,KAAKI,SAAhB,GAA4B,EAA5B,GAAiCV,KAAK,CAACM,WAAD,CAArD;EACAL,WAAW,CAACQ,MAAD,EAAS,QAAT,EAAmB,IAAnB,CAAX;EACAR,WAAW,CAACQ,MAAD,EAAS,aAAT,EAAwB,IAAxB,CAAX;EACAR,WAAW,CAACQ,MAAD,EAAS,WAAT,EAAsB,SAAtB,CAAX;EACA,IAAIF,KAAJ,EAAWN,WAAW,CAACQ,MAAD,EAAS,SAAT,EAAoB,OAApB,CAAX;EAEXR,WAAW,CAACQ,MAAD,EAAS,OAAT,EAAkB,EAAlB,CAAX;EACAR,WAAW,CAACQ,MAAD,EAAS,OAAT,EAAkB,EAAlB,CAAX;;EAEA,IAAID,YAAJ,EAAkB;IAChBP,WAAW,CAACQ,MAAM,CAACE,KAAR,EAAe,UAAf,EAA2B,IAA3B,CAAX;IACAV,WAAW,CAACQ,MAAM,CAACG,KAAR,EAAe,UAAf,EAA2B,KAA3B,CAAX;EACD,CAHD,MAGO;IACLX,WAAW,CAACQ,MAAM,CAACE,KAAR,EAAe,UAAf,EAA2B,KAA3B,CAAX;EACD;;EAED,OAAOF,MAAP;AACD,CAlBM;AAoBP,OAAO,IAAMI,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,SAAD,EAAYN,YAAZ,EAA6B;EAC5D,IAAMO,IAAI,GAAGD,SAAb;EAEAC,IAAI,CAACC,OAAL,CAAa,UAACC,KAAD,EAAW;IACtBhB,WAAW,CAACgB,KAAD,EAAQ,MAAR,EAAgB,KAAhB,CAAX;IACAhB,WAAW,CAACgB,KAAD,EAAQ,WAAR,EAAqB,MAArB,CAAX;IACA,IAAIT,YAAJ,EAAkBP,WAAW,CAACgB,KAAD,EAAQ,aAAR,EAAuB,GAAvB,CAAX;EACnB,CAJD;EAMA,OAAOF,IAAP;AACD,CAVM"}
1
+ {"version":3,"file":"barchartPlotlyOverrides.js","names":["clone","setterIfNil","object","property","value","applyLayoutDefaults","inputLayout","stack","isHorizontal","layout","undefined","yaxis","xaxis","applyDataDefaults","inputData","data","forEach","trace"],"sources":["../../../src/Barchart/barchartPlotlyOverrides.js"],"sourcesContent":["import clone from \"lodash/cloneDeep\";\n\nconst setterIfNil = (object, property, value) => {\n // eslint-disable-next-line no-param-reassign\n object[property] = object[property] ?? value;\n};\n\n/**\n * Auxiliary functions to set the layout in order to follow the DS guideline.\n */\nexport const applyLayoutDefaults = (inputLayout, stack, isHorizontal) => {\n const layout = inputLayout === undefined ? {} : clone(inputLayout);\n setterIfNil(layout, \"bargap\", 0.25);\n setterIfNil(layout, \"bargroupgap\", 0.25);\n setterIfNil(layout, \"hovermode\", \"closest\");\n if (stack) setterIfNil(layout, \"barmode\", \"stack\");\n\n setterIfNil(layout, \"yaxis\", {});\n setterIfNil(layout, \"xaxis\", {});\n\n if (isHorizontal) {\n setterIfNil(layout.yaxis, \"showline\", true);\n setterIfNil(layout.xaxis, \"showline\", false);\n } else {\n setterIfNil(layout.yaxis, \"showline\", false);\n }\n\n return layout;\n};\n\nexport const applyDataDefaults = (inputData, isHorizontal) => {\n const data = inputData;\n\n data.forEach((trace) => {\n setterIfNil(trace, \"type\", \"bar\");\n setterIfNil(trace, \"hoverinfo\", \"none\");\n if (isHorizontal) setterIfNil(trace, \"orientation\", \"h\");\n });\n\n return data;\n};\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,kBAAkB;AAEpC,IAAMC,WAAW,GAAG,SAAdA,WAAW,CAAIC,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAK;EAAA;EAC/C;EACAF,MAAM,CAACC,QAAQ,CAAC,uBAAGD,MAAM,CAACC,QAAQ,CAAC,+DAAIC,KAAK;AAC9C,CAAC;;AAED;AACA;AACA;AACA,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIC,WAAW,EAAEC,KAAK,EAAEC,YAAY,EAAK;EACvE,IAAMC,MAAM,GAAGH,WAAW,KAAKI,SAAS,GAAG,CAAC,CAAC,GAAGV,KAAK,CAACM,WAAW,CAAC;EAClEL,WAAW,CAACQ,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;EACnCR,WAAW,CAACQ,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC;EACxCR,WAAW,CAACQ,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC;EAC3C,IAAIF,KAAK,EAAEN,WAAW,CAACQ,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;EAElDR,WAAW,CAACQ,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;EAChCR,WAAW,CAACQ,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;EAEhC,IAAID,YAAY,EAAE;IAChBP,WAAW,CAACQ,MAAM,CAACE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC;IAC3CV,WAAW,CAACQ,MAAM,CAACG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;EAC9C,CAAC,MAAM;IACLX,WAAW,CAACQ,MAAM,CAACE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;EAC9C;EAEA,OAAOF,MAAM;AACf,CAAC;AAED,OAAO,IAAMI,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,SAAS,EAAEN,YAAY,EAAK;EAC5D,IAAMO,IAAI,GAAGD,SAAS;EAEtBC,IAAI,CAACC,OAAO,CAAC,UAACC,KAAK,EAAK;IACtBhB,WAAW,CAACgB,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;IACjChB,WAAW,CAACgB,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC;IACvC,IAAIT,YAAY,EAAEP,WAAW,CAACgB,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC;EAC1D,CAAC,CAAC;EAEF,OAAOF,IAAI;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default"],"sources":["../../../src/Barchart/index.js"],"sourcesContent":["export { default } from \"./Barchart\";\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,YAAxB"}
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../src/Barchart/index.js"],"sourcesContent":["export { default } from \"./Barchart\";\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["styles"],"sources":["../../../src/Barchart/styles.js"],"sourcesContent":["const styles = {};\n\nexport default styles;\n"],"mappings":"AAAA,IAAMA,MAAM,GAAG,EAAf;AAEA,eAAeA,MAAf"}
1
+ {"version":3,"file":"styles.js","names":["styles"],"sources":["../../../src/Barchart/styles.js"],"sourcesContent":["const styles = {};\n\nexport default styles;\n"],"mappings":"AAAA,IAAMA,MAAM,GAAG,CAAC,CAAC;AAEjB,eAAeA,MAAM"}
@@ -2,11 +2,8 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
4
  var _excluded = ["id", "classes", "data", "layout", "config", "tooltipType", "tooltip", "afterPlot", "xAxisTitle", "yAxisTitle"];
5
-
6
5
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
-
8
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
-
10
7
  import "core-js/modules/es.object.to-string.js";
11
8
  import "core-js/modules/web.dom-collections.for-each.js";
12
9
  import "core-js/modules/es.function.name.js";
@@ -26,28 +23,26 @@ import styles from "./styles";
26
23
  import { jsx as _jsx } from "react/jsx-runtime";
27
24
  import { Fragment as _Fragment } from "react/jsx-runtime";
28
25
  import { jsxs as _jsxs } from "react/jsx-runtime";
29
-
30
26
  var Chart = function Chart(_ref) {
31
27
  var id = _ref.id,
32
- classes = _ref.classes,
33
- data = _ref.data,
34
- layout = _ref.layout,
35
- config = _ref.config,
36
- _ref$tooltipType = _ref.tooltipType,
37
- tooltipType = _ref$tooltipType === void 0 ? "multiple" : _ref$tooltipType,
38
- tooltip = _ref.tooltip,
39
- afterPlot = _ref.afterPlot,
40
- xAxisTitle = _ref.xAxisTitle,
41
- yAxisTitle = _ref.yAxisTitle,
42
- others = _objectWithoutProperties(_ref, _excluded);
43
-
28
+ classes = _ref.classes,
29
+ data = _ref.data,
30
+ layout = _ref.layout,
31
+ config = _ref.config,
32
+ _ref$tooltipType = _ref.tooltipType,
33
+ tooltipType = _ref$tooltipType === void 0 ? "multiple" : _ref$tooltipType,
34
+ tooltip = _ref.tooltip,
35
+ afterPlot = _ref.afterPlot,
36
+ xAxisTitle = _ref.xAxisTitle,
37
+ yAxisTitle = _ref.yAxisTitle,
38
+ others = _objectWithoutProperties(_ref, _excluded);
44
39
  var theme = useTheme();
40
+
45
41
  /* Values derived from props */
46
- // Check if the barchart is horizontal or vertical.
47
42
 
43
+ // Check if the barchart is horizontal or vertical.
48
44
  var isHorizontal = useMemo(function () {
49
45
  var _data$;
50
-
51
46
  return !isNil((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.orientation) ? data[0].orientation.toUpperCase() === "H" : false;
52
47
  }, [data]);
53
48
  var chartLayout = useMemo(function () {
@@ -57,29 +52,28 @@ var Chart = function Chart(_ref) {
57
52
  return applyConfigDefaults(config);
58
53
  }, [config]);
59
54
  var useSingle = tooltipType === "single";
55
+
60
56
  /* State */
61
57
 
62
58
  var _useState = useState(false),
63
- _useState2 = _slicedToArray(_useState, 2),
64
- isHover = _useState2[0],
65
- setIsHover = _useState2[1];
66
-
59
+ _useState2 = _slicedToArray(_useState, 2),
60
+ isHover = _useState2[0],
61
+ setIsHover = _useState2[1];
67
62
  var _useState3 = useState({
68
- x: 0,
69
- y: 0
70
- }),
71
- _useState4 = _slicedToArray(_useState3, 2),
72
- coordinates = _useState4[0],
73
- setCoordinates = _useState4[1];
74
-
63
+ x: 0,
64
+ y: 0
65
+ }),
66
+ _useState4 = _slicedToArray(_useState3, 2),
67
+ coordinates = _useState4[0],
68
+ setCoordinates = _useState4[1];
75
69
  var _useState5 = useState(),
76
- _useState6 = _slicedToArray(_useState5, 2),
77
- dataTooltip = _useState6[0],
78
- setDataTooltip = _useState6[1];
79
- /* Callbacks */
80
- // Extract data from the plotly onHover event to be used to create the tooltip.
70
+ _useState6 = _slicedToArray(_useState5, 2),
71
+ dataTooltip = _useState6[0],
72
+ setDataTooltip = _useState6[1];
81
73
 
74
+ /* Callbacks */
82
75
 
76
+ // Extract data from the plotly onHover event to be used to create the tooltip.
83
77
  var onHover = useCallback(function (event) {
84
78
  var points = event.points;
85
79
  var dataFromPoints = {
@@ -88,7 +82,6 @@ var Chart = function Chart(_ref) {
88
82
  };
89
83
  points.forEach(function (p, i) {
90
84
  var _fData$marker, _fData$line, _fData$labels;
91
-
92
85
  var fData = p.fullData;
93
86
  var pNumber = p.pointNumber;
94
87
  if (i === 0) dataFromPoints.title = isHorizontal ? p.y : p.x || fData.name;
@@ -133,60 +126,49 @@ var Chart = function Chart(_ref) {
133
126
  })]
134
127
  });
135
128
  };
136
-
137
129
  process.env.NODE_ENV !== "production" ? Chart.propTypes = {
138
130
  /**
139
131
  * An Id passed on to the component
140
132
  */
141
133
  id: PropTypes.string,
142
-
143
134
  /**
144
135
  * A Jss Object used to override or extend the styles applied.
145
136
  */
146
137
  classes: PropTypes.shape({
147
138
  root: PropTypes.string
148
139
  }),
149
-
150
140
  /**
151
141
  * Plotly data object (see https://plot.ly/javascript/reference/).
152
142
  */
153
143
  data: PropTypes.arrayOf(PropTypes.instanceOf(Object)).isRequired,
154
-
155
144
  /**
156
145
  * Plotly layout object (see https://plot.ly/javascript/reference/#layout).
157
146
  */
158
147
  layout: PropTypes.instanceOf(Object).isRequired,
159
-
160
148
  /**
161
149
  * Plotly config object (see https://plot.ly/javascript/configuration-options/).
162
150
  */
163
151
  config: PropTypes.instanceOf(Object),
164
-
165
152
  /**
166
153
  * Defines if should use a single or multiline tooltip.
167
154
  */
168
155
  tooltipType: PropTypes.oneOf(["single", "multiple"]),
169
-
170
156
  /**
171
157
  * Custom tooltip element to be displayed
172
158
  */
173
159
  tooltip: PropTypes.func,
174
-
175
160
  /**
176
161
  * Function to be called after plot render.
177
162
  */
178
163
  afterPlot: PropTypes.func,
179
-
180
164
  /**
181
165
  * Defines the X axis title.
182
166
  */
183
167
  xAxisTitle: PropTypes.string,
184
-
185
168
  /**
186
169
  * Defines the Y axis title.
187
170
  */
188
171
  yAxisTitle: PropTypes.string,
189
-
190
172
  /**
191
173
  * Defines the chart subtitle.
192
174
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","names":["React","useState","useMemo","useCallback","PropTypes","isNil","withStyles","useTheme","Tooltip","applyLayoutDefaults","applyConfigDefaults","Plot","styles","Chart","id","classes","data","layout","config","tooltipType","tooltip","afterPlot","xAxisTitle","yAxisTitle","others","theme","isHorizontal","orientation","toUpperCase","chartLayout","chartConfig","useSingle","isHover","setIsHover","x","y","coordinates","setCoordinates","dataTooltip","setDataTooltip","onHover","event","points","dataFromPoints","title","elements","forEach","p","i","fData","fullData","pNumber","pointNumber","name","push","color","marker","line","labels","value","onUnHover","onMouseMove","clientX","clientY","root","propTypes","string","shape","arrayOf","instanceOf","Object","isRequired","oneOf","func","subtitle"],"sources":["../../../src/Chart/Chart.js"],"sourcesContent":["import React, { useState, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isNil from \"lodash/isNil\";\nimport { withStyles, useTheme } from \"@mui/styles\";\n\nimport Tooltip from \"./Tooltip\";\nimport { applyLayoutDefaults, applyConfigDefaults } from \"./chartPlotlyOverrides\";\n\nimport Plot from \"./Plot\";\nimport styles from \"./styles\";\n\nconst Chart = ({\n id,\n classes,\n data,\n layout,\n config,\n tooltipType = \"multiple\",\n tooltip,\n afterPlot,\n xAxisTitle,\n yAxisTitle,\n ...others\n}) => {\n const theme = useTheme();\n\n /* Values derived from props */\n\n // Check if the barchart is horizontal or vertical.\n const isHorizontal = useMemo(\n () => (!isNil(data[0]?.orientation) ? data[0].orientation.toUpperCase() === \"H\" : false),\n [data]\n );\n\n const chartLayout = useMemo(\n () => applyLayoutDefaults(layout, theme, isHorizontal, xAxisTitle, yAxisTitle),\n [isHorizontal, layout, theme, xAxisTitle, yAxisTitle]\n );\n\n const chartConfig = useMemo(() => applyConfigDefaults(config), [config]);\n\n const useSingle = tooltipType === \"single\";\n\n /* State */\n\n const [isHover, setIsHover] = useState(false);\n const [coordinates, setCoordinates] = useState({ x: 0, y: 0 });\n const [dataTooltip, setDataTooltip] = useState();\n\n /* Callbacks */\n\n // Extract data from the plotly onHover event to be used to create the tooltip.\n const onHover = useCallback(\n (event) => {\n const { points } = event;\n\n const dataFromPoints = {\n title: \"\",\n elements: [],\n };\n\n points.forEach((p, i) => {\n const fData = p.fullData;\n const pNumber = p.pointNumber;\n\n if (i === 0) dataFromPoints.title = isHorizontal ? p.y : p.x || fData.name;\n\n dataFromPoints.elements.push({\n color: fData.marker?.color || fData.line?.color || p.color,\n name: fData.labels?.[pNumber] || fData.name,\n value: isHorizontal ? p.x : p.y || p.value,\n });\n });\n\n setDataTooltip(dataFromPoints);\n setIsHover(true);\n },\n [isHorizontal]\n );\n\n const onUnHover = useCallback(() => {\n setIsHover(false);\n }, []);\n\n const onMouseMove = useCallback((event) => {\n setCoordinates({\n x: event.clientX,\n y: event.clientY,\n });\n }, []);\n\n return (\n <>\n {isHover && (\n <Tooltip\n coordinates={coordinates}\n data={dataTooltip}\n useSingle={useSingle}\n tooltip={tooltip}\n />\n )}\n <div id={id} className={classes.root}>\n <div onMouseMove={onMouseMove}>\n <Plot\n data={data}\n layout={chartLayout}\n config={chartConfig}\n onHover={onHover}\n onUnHover={onUnHover}\n afterPlot={afterPlot}\n {...others}\n />\n </div>\n </div>\n </>\n );\n};\n\nChart.propTypes = {\n /**\n * An Id passed on to the component\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n root: PropTypes.string,\n }),\n\n /**\n * Plotly data object (see https://plot.ly/javascript/reference/).\n */\n data: PropTypes.arrayOf(PropTypes.instanceOf(Object)).isRequired,\n /**\n * Plotly layout object (see https://plot.ly/javascript/reference/#layout).\n */\n layout: PropTypes.instanceOf(Object).isRequired,\n /**\n * Plotly config object (see https://plot.ly/javascript/configuration-options/).\n */\n config: PropTypes.instanceOf(Object),\n /**\n * Defines if should use a single or multiline tooltip.\n */\n tooltipType: PropTypes.oneOf([\"single\", \"multiple\"]),\n /**\n * Custom tooltip element to be displayed\n */\n tooltip: PropTypes.func,\n /**\n * Function to be called after plot render.\n */\n afterPlot: PropTypes.func,\n /**\n * Defines the X axis title.\n */\n xAxisTitle: PropTypes.string,\n /**\n * Defines the Y axis title.\n */\n yAxisTitle: PropTypes.string,\n /**\n * Defines the chart subtitle.\n */\n subtitle: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvChart\" })(Chart);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Chart.js","names":["React","useState","useMemo","useCallback","PropTypes","isNil","withStyles","useTheme","Tooltip","applyLayoutDefaults","applyConfigDefaults","Plot","styles","Chart","id","classes","data","layout","config","tooltipType","tooltip","afterPlot","xAxisTitle","yAxisTitle","others","theme","isHorizontal","orientation","toUpperCase","chartLayout","chartConfig","useSingle","isHover","setIsHover","x","y","coordinates","setCoordinates","dataTooltip","setDataTooltip","onHover","event","points","dataFromPoints","title","elements","forEach","p","i","fData","fullData","pNumber","pointNumber","name","push","color","marker","line","labels","value","onUnHover","onMouseMove","clientX","clientY","root","propTypes","string","shape","arrayOf","instanceOf","Object","isRequired","oneOf","func","subtitle"],"sources":["../../../src/Chart/Chart.js"],"sourcesContent":["import React, { useState, useMemo, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isNil from \"lodash/isNil\";\nimport { withStyles, useTheme } from \"@mui/styles\";\n\nimport Tooltip from \"./Tooltip\";\nimport { applyLayoutDefaults, applyConfigDefaults } from \"./chartPlotlyOverrides\";\n\nimport Plot from \"./Plot\";\nimport styles from \"./styles\";\n\nconst Chart = ({\n id,\n classes,\n data,\n layout,\n config,\n tooltipType = \"multiple\",\n tooltip,\n afterPlot,\n xAxisTitle,\n yAxisTitle,\n ...others\n}) => {\n const theme = useTheme();\n\n /* Values derived from props */\n\n // Check if the barchart is horizontal or vertical.\n const isHorizontal = useMemo(\n () => (!isNil(data[0]?.orientation) ? data[0].orientation.toUpperCase() === \"H\" : false),\n [data]\n );\n\n const chartLayout = useMemo(\n () => applyLayoutDefaults(layout, theme, isHorizontal, xAxisTitle, yAxisTitle),\n [isHorizontal, layout, theme, xAxisTitle, yAxisTitle]\n );\n\n const chartConfig = useMemo(() => applyConfigDefaults(config), [config]);\n\n const useSingle = tooltipType === \"single\";\n\n /* State */\n\n const [isHover, setIsHover] = useState(false);\n const [coordinates, setCoordinates] = useState({ x: 0, y: 0 });\n const [dataTooltip, setDataTooltip] = useState();\n\n /* Callbacks */\n\n // Extract data from the plotly onHover event to be used to create the tooltip.\n const onHover = useCallback(\n (event) => {\n const { points } = event;\n\n const dataFromPoints = {\n title: \"\",\n elements: [],\n };\n\n points.forEach((p, i) => {\n const fData = p.fullData;\n const pNumber = p.pointNumber;\n\n if (i === 0) dataFromPoints.title = isHorizontal ? p.y : p.x || fData.name;\n\n dataFromPoints.elements.push({\n color: fData.marker?.color || fData.line?.color || p.color,\n name: fData.labels?.[pNumber] || fData.name,\n value: isHorizontal ? p.x : p.y || p.value,\n });\n });\n\n setDataTooltip(dataFromPoints);\n setIsHover(true);\n },\n [isHorizontal]\n );\n\n const onUnHover = useCallback(() => {\n setIsHover(false);\n }, []);\n\n const onMouseMove = useCallback((event) => {\n setCoordinates({\n x: event.clientX,\n y: event.clientY,\n });\n }, []);\n\n return (\n <>\n {isHover && (\n <Tooltip\n coordinates={coordinates}\n data={dataTooltip}\n useSingle={useSingle}\n tooltip={tooltip}\n />\n )}\n <div id={id} className={classes.root}>\n <div onMouseMove={onMouseMove}>\n <Plot\n data={data}\n layout={chartLayout}\n config={chartConfig}\n onHover={onHover}\n onUnHover={onUnHover}\n afterPlot={afterPlot}\n {...others}\n />\n </div>\n </div>\n </>\n );\n};\n\nChart.propTypes = {\n /**\n * An Id passed on to the component\n */\n id: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n root: PropTypes.string,\n }),\n\n /**\n * Plotly data object (see https://plot.ly/javascript/reference/).\n */\n data: PropTypes.arrayOf(PropTypes.instanceOf(Object)).isRequired,\n /**\n * Plotly layout object (see https://plot.ly/javascript/reference/#layout).\n */\n layout: PropTypes.instanceOf(Object).isRequired,\n /**\n * Plotly config object (see https://plot.ly/javascript/configuration-options/).\n */\n config: PropTypes.instanceOf(Object),\n /**\n * Defines if should use a single or multiline tooltip.\n */\n tooltipType: PropTypes.oneOf([\"single\", \"multiple\"]),\n /**\n * Custom tooltip element to be displayed\n */\n tooltip: PropTypes.func,\n /**\n * Function to be called after plot render.\n */\n afterPlot: PropTypes.func,\n /**\n * Defines the X axis title.\n */\n xAxisTitle: PropTypes.string,\n /**\n * Defines the Y axis title.\n */\n yAxisTitle: PropTypes.string,\n /**\n * Defines the chart subtitle.\n */\n subtitle: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvChart\" })(Chart);\n"],"mappings":"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"}