@hitachivantara/uikit-react-viz 4.0.2 → 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.
- package/dist/Barchart/Barchart.js +45 -72
- package/dist/Barchart/Barchart.js.map +1 -1
- package/dist/Barchart/barchartPlotlyOverrides.js +1 -13
- package/dist/Barchart/barchartPlotlyOverrides.js.map +1 -1
- package/dist/Barchart/index.js +0 -2
- package/dist/Barchart/index.js.map +1 -1
- package/dist/Barchart/styles.js.map +1 -1
- package/dist/Chart/Chart.d.ts +1 -1
- package/dist/Chart/Chart.js +28 -75
- package/dist/Chart/Chart.js.map +1 -1
- package/dist/Chart/Plot/Plot.js +10 -47
- package/dist/Chart/Plot/Plot.js.map +1 -1
- package/dist/Chart/Plot/index.js +0 -2
- package/dist/Chart/Plot/index.js.map +1 -1
- package/dist/Chart/Plot/styles.js.map +1 -1
- package/dist/Chart/Tooltip/MultiTooltip/MultiTooltip.js +1 -36
- package/dist/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
- package/dist/Chart/Tooltip/MultiTooltip/index.js +0 -2
- package/dist/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
- package/dist/Chart/Tooltip/MultiTooltip/styles.js +0 -2
- package/dist/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
- package/dist/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -26
- package/dist/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
- package/dist/Chart/Tooltip/SingleTooltip/index.js +0 -2
- package/dist/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
- package/dist/Chart/Tooltip/SingleTooltip/styles.js +0 -2
- package/dist/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
- package/dist/Chart/Tooltip/Tooltip.js +16 -51
- package/dist/Chart/Tooltip/Tooltip.js.map +1 -1
- package/dist/Chart/Tooltip/index.js +0 -2
- package/dist/Chart/Tooltip/index.js.map +1 -1
- package/dist/Chart/Tooltip/styles.js.map +1 -1
- package/dist/Chart/chartPlotlyOverrides.js +9 -33
- package/dist/Chart/chartPlotlyOverrides.js.map +1 -1
- package/dist/Chart/index.js +0 -2
- package/dist/Chart/index.js.map +1 -1
- package/dist/Chart/styles.js +0 -13
- package/dist/Chart/styles.js.map +1 -1
- package/dist/Donutchart/Donutchart.js +10 -47
- package/dist/Donutchart/Donutchart.js.map +1 -1
- package/dist/Donutchart/donutchartPlotlyOverrides.js +1 -13
- package/dist/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
- package/dist/Donutchart/index.js +0 -2
- package/dist/Donutchart/index.js.map +1 -1
- package/dist/Donutchart/styles.js.map +1 -1
- package/dist/Linechart/Linechart.js +12 -50
- package/dist/Linechart/Linechart.js.map +1 -1
- package/dist/Linechart/index.js +0 -2
- package/dist/Linechart/index.js.map +1 -1
- package/dist/Linechart/lineChartPlotlyOverrides.js +1 -17
- package/dist/Linechart/lineChartPlotlyOverrides.js.map +1 -1
- package/dist/Linechart/styles.js.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/legacy/Barchart/Barchart.js +45 -43
- package/dist/legacy/Barchart/Barchart.js.map +1 -1
- package/dist/legacy/Barchart/barchartPlotlyOverrides.js +1 -6
- package/dist/legacy/Barchart/barchartPlotlyOverrides.js.map +1 -1
- package/dist/legacy/Barchart/index.js.map +1 -1
- package/dist/legacy/Barchart/styles.js.map +1 -1
- package/dist/legacy/Chart/Chart.d.ts +1 -1
- package/dist/legacy/Chart/Chart.js +28 -46
- package/dist/legacy/Chart/Chart.js.map +1 -1
- package/dist/legacy/Chart/Plot/Plot.js +10 -21
- package/dist/legacy/Chart/Plot/Plot.js.map +1 -1
- package/dist/legacy/Chart/Plot/index.js.map +1 -1
- package/dist/legacy/Chart/Plot/styles.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js +1 -17
- package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/MultiTooltip/styles.js +0 -1
- package/dist/legacy/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -9
- package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/SingleTooltip/styles.js +0 -1
- package/dist/legacy/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/Tooltip.js +16 -30
- package/dist/legacy/Chart/Tooltip/Tooltip.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/index.js.map +1 -1
- package/dist/legacy/Chart/Tooltip/styles.js.map +1 -1
- package/dist/legacy/Chart/chartPlotlyOverrides.js +9 -20
- package/dist/legacy/Chart/chartPlotlyOverrides.js.map +1 -1
- package/dist/legacy/Chart/index.js.map +1 -1
- package/dist/legacy/Chart/styles.js +0 -4
- package/dist/legacy/Chart/styles.js.map +1 -1
- package/dist/legacy/Donutchart/Donutchart.js +11 -22
- package/dist/legacy/Donutchart/Donutchart.js.map +1 -1
- package/dist/legacy/Donutchart/donutchartPlotlyOverrides.js +1 -6
- package/dist/legacy/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
- package/dist/legacy/Donutchart/index.js.map +1 -1
- package/dist/legacy/Donutchart/styles.js.map +1 -1
- package/dist/legacy/Linechart/Linechart.js +13 -25
- package/dist/legacy/Linechart/Linechart.js.map +1 -1
- package/dist/legacy/Linechart/index.js.map +1 -1
- package/dist/legacy/Linechart/lineChartPlotlyOverrides.js +1 -10
- package/dist/legacy/Linechart/lineChartPlotlyOverrides.js.map +1 -1
- package/dist/legacy/Linechart/styles.js.map +1 -1
- package/dist/legacy/index.js.map +1 -1
- package/dist/modern/Barchart/Barchart.js +38 -31
- package/dist/modern/Barchart/Barchart.js.map +1 -1
- package/dist/modern/Barchart/barchartPlotlyOverrides.js +1 -6
- package/dist/modern/Barchart/barchartPlotlyOverrides.js.map +1 -1
- package/dist/modern/Barchart/index.js.map +1 -1
- package/dist/modern/Barchart/styles.js.map +1 -1
- package/dist/modern/Chart/Chart.d.ts +1 -1
- package/dist/modern/Chart/Chart.js +17 -33
- package/dist/modern/Chart/Chart.js.map +1 -1
- package/dist/modern/Chart/Plot/Plot.js +11 -22
- package/dist/modern/Chart/Plot/Plot.js.map +1 -1
- package/dist/modern/Chart/Plot/index.js.map +1 -1
- package/dist/modern/Chart/Plot/styles.js.map +1 -1
- package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js +0 -17
- package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
- package/dist/modern/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
- package/dist/modern/Chart/Tooltip/MultiTooltip/styles.js +0 -1
- package/dist/modern/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
- package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js +0 -7
- package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
- package/dist/modern/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
- package/dist/modern/Chart/Tooltip/SingleTooltip/styles.js +0 -1
- package/dist/modern/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
- package/dist/modern/Chart/Tooltip/Tooltip.js +2 -13
- package/dist/modern/Chart/Tooltip/Tooltip.js.map +1 -1
- package/dist/modern/Chart/Tooltip/index.js.map +1 -1
- package/dist/modern/Chart/Tooltip/styles.js.map +1 -1
- package/dist/modern/Chart/chartPlotlyOverrides.js +9 -20
- package/dist/modern/Chart/chartPlotlyOverrides.js.map +1 -1
- package/dist/modern/Chart/index.js.map +1 -1
- package/dist/modern/Chart/styles.js +0 -4
- package/dist/modern/Chart/styles.js.map +1 -1
- package/dist/modern/Donutchart/Donutchart.js +11 -22
- package/dist/modern/Donutchart/Donutchart.js.map +1 -1
- package/dist/modern/Donutchart/donutchartPlotlyOverrides.js +1 -6
- package/dist/modern/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
- package/dist/modern/Donutchart/index.js.map +1 -1
- package/dist/modern/Donutchart/styles.js.map +1 -1
- package/dist/modern/Linechart/Linechart.js +12 -24
- package/dist/modern/Linechart/Linechart.js.map +1 -1
- package/dist/modern/Linechart/index.js.map +1 -1
- package/dist/modern/Linechart/lineChartPlotlyOverrides.js +1 -10
- package/dist/modern/Linechart/lineChartPlotlyOverrides.js.map +1 -1
- package/dist/modern/Linechart/styles.js.map +1 -1
- package/dist/modern/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,41 +1,34 @@
|
|
|
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 data in order to follow the DS guideline.
|
|
13
12
|
*
|
|
14
13
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
14
|
export var applyDataDefaults = function applyDataDefaults(inputData, type) {
|
|
18
15
|
var data = inputData;
|
|
19
16
|
data.forEach(function (trace) {
|
|
20
17
|
setterIfNil(trace, "hoverinfo", "none");
|
|
21
18
|
setterIfNil(trace, "mode", "lines");
|
|
22
|
-
|
|
23
19
|
switch (type) {
|
|
24
20
|
case "area":
|
|
25
21
|
setterIfNil(trace, "fill", "tonexty");
|
|
26
22
|
setterIfNil(trace, "type", "scatter");
|
|
27
23
|
break;
|
|
28
|
-
|
|
29
24
|
case "line":
|
|
30
25
|
setterIfNil(trace, "type", "line");
|
|
31
26
|
break;
|
|
32
|
-
|
|
33
27
|
case "stack":
|
|
34
28
|
setterIfNil(trace, "fill", "tonexty");
|
|
35
29
|
setterIfNil(trace, "type", "scatter");
|
|
36
30
|
setterIfNil(trace, "stackgroup", "one");
|
|
37
31
|
break;
|
|
38
|
-
|
|
39
32
|
default:
|
|
40
33
|
setterIfNil(trace, "type", "line");
|
|
41
34
|
}
|
|
@@ -51,13 +44,11 @@ export var applyLayoutDefaults = function applyLayoutDefaults() {
|
|
|
51
44
|
setterIfNil(layout.xaxis, "showline", true);
|
|
52
45
|
setterIfNil(layout, "yaxis", {});
|
|
53
46
|
setterIfNil(layout.yaxis, "showline", false);
|
|
54
|
-
|
|
55
47
|
if (rangeSlider) {
|
|
56
48
|
setterIfNil(layout.xaxis, "rangeslider", {
|
|
57
49
|
visible: true
|
|
58
50
|
});
|
|
59
51
|
}
|
|
60
|
-
|
|
61
52
|
return layout;
|
|
62
53
|
};
|
|
63
54
|
//# sourceMappingURL=lineChartPlotlyOverrides.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineChartPlotlyOverrides.js","names":["clone","setterIfNil","object","property","value","applyDataDefaults","inputData","type","data","forEach","trace","applyLayoutDefaults","inputLayout","rangeSlider","layout","xaxis","yaxis","visible"],"sources":["../../../src/Linechart/lineChartPlotlyOverrides.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 data in order to follow the DS guideline.\n *\n */\nexport const applyDataDefaults = (inputData, type) => {\n const data = inputData;\n\n data.forEach((trace) => {\n setterIfNil(trace, \"hoverinfo\", \"none\");\n setterIfNil(trace, \"mode\", \"lines\");\n\n switch (type) {\n case \"area\":\n setterIfNil(trace, \"fill\", \"tonexty\");\n setterIfNil(trace, \"type\", \"scatter\");\n break;\n case \"line\":\n setterIfNil(trace, \"type\", \"line\");\n break;\n case \"stack\":\n setterIfNil(trace, \"fill\", \"tonexty\");\n setterIfNil(trace, \"type\", \"scatter\");\n setterIfNil(trace, \"stackgroup\", \"one\");\n break;\n default:\n setterIfNil(trace, \"type\", \"line\");\n }\n });\n\n return data;\n};\n\nexport const applyLayoutDefaults = (inputLayout = {}, rangeSlider) => {\n const layout = clone(inputLayout);\n\n setterIfNil(layout, \"xaxis\", {});\n setterIfNil(layout.xaxis, \"showgrid\", true);\n setterIfNil(layout.xaxis, \"showline\", true);\n\n setterIfNil(layout, \"yaxis\", {});\n setterIfNil(layout.yaxis, \"showline\", false);\n\n if (rangeSlider) {\n setterIfNil(layout.xaxis, \"rangeslider\", {\n visible: true,\n });\n }\n\n return layout;\n};\n"],"mappings":";;AAAA,OAAOA,
|
|
1
|
+
{"version":3,"file":"lineChartPlotlyOverrides.js","names":["clone","setterIfNil","object","property","value","applyDataDefaults","inputData","type","data","forEach","trace","applyLayoutDefaults","inputLayout","rangeSlider","layout","xaxis","yaxis","visible"],"sources":["../../../src/Linechart/lineChartPlotlyOverrides.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 data in order to follow the DS guideline.\n *\n */\nexport const applyDataDefaults = (inputData, type) => {\n const data = inputData;\n\n data.forEach((trace) => {\n setterIfNil(trace, \"hoverinfo\", \"none\");\n setterIfNil(trace, \"mode\", \"lines\");\n\n switch (type) {\n case \"area\":\n setterIfNil(trace, \"fill\", \"tonexty\");\n setterIfNil(trace, \"type\", \"scatter\");\n break;\n case \"line\":\n setterIfNil(trace, \"type\", \"line\");\n break;\n case \"stack\":\n setterIfNil(trace, \"fill\", \"tonexty\");\n setterIfNil(trace, \"type\", \"scatter\");\n setterIfNil(trace, \"stackgroup\", \"one\");\n break;\n default:\n setterIfNil(trace, \"type\", \"line\");\n }\n });\n\n return data;\n};\n\nexport const applyLayoutDefaults = (inputLayout = {}, rangeSlider) => {\n const layout = clone(inputLayout);\n\n setterIfNil(layout, \"xaxis\", {});\n setterIfNil(layout.xaxis, \"showgrid\", true);\n setterIfNil(layout.xaxis, \"showline\", true);\n\n setterIfNil(layout, \"yaxis\", {});\n setterIfNil(layout.yaxis, \"showline\", false);\n\n if (rangeSlider) {\n setterIfNil(layout.xaxis, \"rangeslider\", {\n visible: true,\n });\n }\n\n return layout;\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;AACA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,SAAS,EAAEC,IAAI,EAAK;EACpD,IAAMC,IAAI,GAAGF,SAAS;EAEtBE,IAAI,CAACC,OAAO,CAAC,UAACC,KAAK,EAAK;IACtBT,WAAW,CAACS,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC;IACvCT,WAAW,CAACS,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;IAEnC,QAAQH,IAAI;MACV,KAAK,MAAM;QACTN,WAAW,CAACS,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;QACrCT,WAAW,CAACS,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;QACrC;MACF,KAAK,MAAM;QACTT,WAAW,CAACS,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;QAClC;MACF,KAAK,OAAO;QACVT,WAAW,CAACS,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;QACrCT,WAAW,CAACS,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;QACrCT,WAAW,CAACS,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC;QACvC;MACF;QACET,WAAW,CAACS,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAAC;EAEzC,CAAC,CAAC;EAEF,OAAOF,IAAI;AACb,CAAC;AAED,OAAO,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmB,GAAsC;EAAA,IAAlCC,WAAW,uEAAG,CAAC,CAAC;EAAA,IAAEC,WAAW;EAC/D,IAAMC,MAAM,GAAGd,KAAK,CAACY,WAAW,CAAC;EAEjCX,WAAW,CAACa,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;EAChCb,WAAW,CAACa,MAAM,CAACC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC;EAC3Cd,WAAW,CAACa,MAAM,CAACC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC;EAE3Cd,WAAW,CAACa,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;EAChCb,WAAW,CAACa,MAAM,CAACE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;EAE5C,IAAIH,WAAW,EAAE;IACfZ,WAAW,CAACa,MAAM,CAACC,KAAK,EAAE,aAAa,EAAE;MACvCE,OAAO,EAAE;IACX,CAAC,CAAC;EACJ;EAEA,OAAOH,MAAM;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":["styles"],"sources":["../../../src/Linechart/styles.js"],"sourcesContent":["const styles = {};\n\nexport default styles;\n"],"mappings":"AAAA,IAAMA,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"styles.js","names":["styles"],"sources":["../../../src/Linechart/styles.js"],"sourcesContent":["const styles = {};\n\nexport default styles;\n"],"mappings":"AAAA,IAAMA,MAAM,GAAG,CAAC,CAAC;AAEjB,eAAeA,MAAM"}
|
package/dist/legacy/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","HvBarchart","HvDonutchart","HvLinechart"],"sources":["../../src/index.js"],"sourcesContent":["// components\nexport { default as HvBarchart } from \"./Barchart\";\nexport { default as HvDonutchart } from \"./Donutchart\";\nexport { default as HvLinechart } from \"./Linechart\";\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","HvBarchart","HvDonutchart","HvLinechart"],"sources":["../../src/index.js"],"sourcesContent":["// components\nexport { default as HvBarchart } from \"./Barchart\";\nexport { default as HvDonutchart } from \"./Donutchart\";\nexport { default as HvLinechart } from \"./Linechart\";\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,UAAU,QAAQ,YAAY;AAClD,SAASD,OAAO,IAAIE,YAAY,QAAQ,cAAc;AACtD,SAASF,OAAO,IAAIG,WAAW,QAAQ,aAAa"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
const _excluded = ["id", "classes", "data", "layout", "config", "tooltipType", "stack", "horizontal"];
|
|
4
|
-
|
|
5
4
|
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; }
|
|
6
|
-
|
|
7
5
|
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; }
|
|
8
|
-
|
|
9
|
-
import "core-js/modules/web.dom-collections.iterator.js";
|
|
10
6
|
import React, { useMemo, useEffect, useState, useCallback, useRef } from "react";
|
|
11
7
|
import PropTypes from "prop-types";
|
|
12
8
|
import { withStyles } from "@mui/styles";
|
|
@@ -18,32 +14,34 @@ const MARGIN = 50;
|
|
|
18
14
|
const MAX_BAR_WIDTH = 90;
|
|
19
15
|
const MIN_BAR_WIDTH = 3;
|
|
20
16
|
const MIN_WIDTH = 75;
|
|
17
|
+
|
|
21
18
|
/**
|
|
22
19
|
* A Bar chart is a chart or graph that presents categorical data with rectangular bars.
|
|
23
20
|
*
|
|
24
21
|
* Our implementation leverages the Plotly charting library. If you have a specific case
|
|
25
22
|
* that we don't cover, the Plotly [documentation](https://plotly.com/javascript/) is a good starting point.
|
|
26
23
|
*/
|
|
27
|
-
|
|
28
24
|
const Barchart = _ref => {
|
|
29
25
|
let {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
26
|
+
id,
|
|
27
|
+
classes,
|
|
28
|
+
data,
|
|
29
|
+
layout,
|
|
30
|
+
config,
|
|
31
|
+
tooltipType = "multiple",
|
|
32
|
+
stack = false,
|
|
33
|
+
horizontal = false
|
|
34
|
+
} = _ref,
|
|
35
|
+
others = _objectWithoutProperties(_ref, _excluded);
|
|
41
36
|
/* Values derived from props */
|
|
37
|
+
|
|
42
38
|
const dataWithDefaults = useMemo(() => applyDataDefaults(data, horizontal), [data, horizontal]);
|
|
43
39
|
const chartLayout = useMemo(() => applyLayoutDefaults(layout, stack, horizontal), [layout, stack, horizontal]);
|
|
40
|
+
|
|
44
41
|
/* State */
|
|
45
42
|
|
|
46
43
|
const [chartData, setChartData] = useState(dataWithDefaults);
|
|
44
|
+
|
|
47
45
|
/* Effects */
|
|
48
46
|
|
|
49
47
|
const firstRender = useRef(true);
|
|
@@ -54,21 +52,19 @@ const Barchart = _ref => {
|
|
|
54
52
|
if (!firstRender.current) {
|
|
55
53
|
setChartData(dataWithDefaults);
|
|
56
54
|
}
|
|
57
|
-
|
|
58
55
|
firstRender.current = false;
|
|
59
56
|
}, [dataWithDefaults]);
|
|
57
|
+
|
|
60
58
|
/**
|
|
61
59
|
* Used to force the max width of each bar with 90px.
|
|
62
60
|
*
|
|
63
61
|
* (this is effectively more an effect than a callback)
|
|
64
62
|
*/
|
|
65
|
-
|
|
66
63
|
const recalculateBarWidth = useCallback(ref => {
|
|
67
64
|
// use the data and layout info directly from the plotly ref
|
|
68
65
|
// as it's always the most uptodate version.
|
|
69
66
|
const plotData = ref.current.props.data;
|
|
70
67
|
const plotLayout = ref.current.props.layout;
|
|
71
|
-
|
|
72
68
|
if (plotData.length > 0) {
|
|
73
69
|
const {
|
|
74
70
|
barmode,
|
|
@@ -89,7 +85,6 @@ const Barchart = _ref => {
|
|
|
89
85
|
const greaterThan90 = calculatedBarWidth > MAX_BAR_WIDTH;
|
|
90
86
|
const lessThan3 = calculatedBarWidth < MIN_BAR_WIDTH;
|
|
91
87
|
const isAlreadyGreaterThan90 = plotData[0].width !== undefined;
|
|
92
|
-
|
|
93
88
|
if (greaterThan90 && !isAlreadyGreaterThan90) {
|
|
94
89
|
const newWidth = MAX_BAR_WIDTH / plotWidth * numberOfGroup;
|
|
95
90
|
const newData = plotData.map(subData => {
|
|
@@ -99,7 +94,6 @@ const Barchart = _ref => {
|
|
|
99
94
|
});
|
|
100
95
|
setChartData(newData);
|
|
101
96
|
}
|
|
102
|
-
|
|
103
97
|
if (lessThan3 && !isAlreadyGreaterThan90) {
|
|
104
98
|
const newWidth = MIN_BAR_WIDTH / plotWidth * numberOfGroup;
|
|
105
99
|
const newData = plotData.map(subData => {
|
|
@@ -109,7 +103,6 @@ const Barchart = _ref => {
|
|
|
109
103
|
});
|
|
110
104
|
setChartData(newData);
|
|
111
105
|
}
|
|
112
|
-
|
|
113
106
|
if (!greaterThan90 && isAlreadyGreaterThan90) {
|
|
114
107
|
const newData = plotData.map(subData => {
|
|
115
108
|
return _objectSpread(_objectSpread({}, subData), {}, {
|
|
@@ -130,43 +123,57 @@ const Barchart = _ref => {
|
|
|
130
123
|
afterPlot: recalculateBarWidth
|
|
131
124
|
}, others));
|
|
132
125
|
};
|
|
133
|
-
|
|
134
126
|
process.env.NODE_ENV !== "production" ? Barchart.propTypes = {
|
|
135
127
|
/**
|
|
136
128
|
* An Id passed on to the component
|
|
137
129
|
*/
|
|
138
130
|
id: PropTypes.string,
|
|
139
|
-
|
|
140
131
|
/**
|
|
141
132
|
* A Jss Object used to override or extend the styles applied.
|
|
142
133
|
*/
|
|
143
|
-
classes: PropTypes.
|
|
144
|
-
|
|
134
|
+
classes: PropTypes.shape({
|
|
135
|
+
root: PropTypes.string
|
|
136
|
+
}),
|
|
145
137
|
/**
|
|
146
138
|
* Plotly data object (see https://plot.ly/javascript/reference/).
|
|
147
139
|
*/
|
|
148
140
|
data: PropTypes.arrayOf(PropTypes.instanceOf(Object)).isRequired,
|
|
149
|
-
|
|
150
141
|
/**
|
|
151
142
|
* Plotly layout object (see https://plot.ly/javascript/reference/#layout).
|
|
152
143
|
*/
|
|
153
144
|
layout: PropTypes.instanceOf(Object),
|
|
154
|
-
|
|
155
145
|
/**
|
|
156
146
|
* Plotly config object (see https://plot.ly/javascript/configuration-options/).
|
|
157
147
|
*/
|
|
158
148
|
config: PropTypes.instanceOf(Object),
|
|
159
|
-
|
|
160
149
|
/**
|
|
161
150
|
* Defines if should use a single or multiline tooltip.
|
|
162
151
|
*/
|
|
163
152
|
tooltipType: PropTypes.oneOf(["single", "multiple"]),
|
|
164
|
-
|
|
153
|
+
/**
|
|
154
|
+
* Custom tooltip element to be displayed
|
|
155
|
+
*/
|
|
156
|
+
tooltip: PropTypes.func,
|
|
157
|
+
/**
|
|
158
|
+
* Function to be called after plot render.
|
|
159
|
+
*/
|
|
160
|
+
afterPlot: PropTypes.func,
|
|
161
|
+
/**
|
|
162
|
+
* Defines the X axis title.
|
|
163
|
+
*/
|
|
164
|
+
xAxisTitle: PropTypes.string,
|
|
165
|
+
/**
|
|
166
|
+
* Defines the Y axis title.
|
|
167
|
+
*/
|
|
168
|
+
yAxisTitle: PropTypes.string,
|
|
169
|
+
/**
|
|
170
|
+
* Defines the chart subtitle.
|
|
171
|
+
*/
|
|
172
|
+
subtitle: PropTypes.string,
|
|
165
173
|
/**
|
|
166
174
|
* Sets is the chart is stack.
|
|
167
175
|
*/
|
|
168
176
|
stack: PropTypes.bool,
|
|
169
|
-
|
|
170
177
|
/**
|
|
171
178
|
* Sets is the chart is horizontal.
|
|
172
179
|
*/
|
|
@@ -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","width","boundingRect","el","getBoundingClientRect","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","width","boundingRect","el","getBoundingClientRect","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,16 +1,13 @@
|
|
|
1
1
|
import clone from "lodash/cloneDeep";
|
|
2
|
-
|
|
3
2
|
const setterIfNil = (object, property, value) => {
|
|
4
3
|
var _object$property;
|
|
5
|
-
|
|
6
4
|
// eslint-disable-next-line no-param-reassign
|
|
7
5
|
object[property] = (_object$property = object[property]) !== null && _object$property !== void 0 ? _object$property : value;
|
|
8
6
|
};
|
|
7
|
+
|
|
9
8
|
/**
|
|
10
9
|
* Auxiliary functions to set the layout in order to follow the DS guideline.
|
|
11
10
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
11
|
export const applyLayoutDefaults = (inputLayout, stack, isHorizontal) => {
|
|
15
12
|
const layout = inputLayout === undefined ? {} : clone(inputLayout);
|
|
16
13
|
setterIfNil(layout, "bargap", 0.25);
|
|
@@ -19,14 +16,12 @@ export const applyLayoutDefaults = (inputLayout, stack, isHorizontal) => {
|
|
|
19
16
|
if (stack) setterIfNil(layout, "barmode", "stack");
|
|
20
17
|
setterIfNil(layout, "yaxis", {});
|
|
21
18
|
setterIfNil(layout, "xaxis", {});
|
|
22
|
-
|
|
23
19
|
if (isHorizontal) {
|
|
24
20
|
setterIfNil(layout.yaxis, "showline", true);
|
|
25
21
|
setterIfNil(layout.xaxis, "showline", false);
|
|
26
22
|
} else {
|
|
27
23
|
setterIfNil(layout.yaxis, "showline", false);
|
|
28
24
|
}
|
|
29
|
-
|
|
30
25
|
return layout;
|
|
31
26
|
};
|
|
32
27
|
export const 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,
|
|
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,MAAMC,WAAW,GAAG,CAACC,MAAM,EAAEC,QAAQ,EAAEC,KAAK,KAAK;EAAA;EAC/C;EACAF,MAAM,CAACC,QAAQ,CAAC,uBAAGD,MAAM,CAACC,QAAQ,CAAC,+DAAIC,KAAK;AAC9C,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAG,CAACC,WAAW,EAAEC,KAAK,EAAEC,YAAY,KAAK;EACvE,MAAMC,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,MAAMI,iBAAiB,GAAG,CAACC,SAAS,EAAEN,YAAY,KAAK;EAC5D,MAAMO,IAAI,GAAGD,SAAS;EAEtBC,IAAI,CAACC,OAAO,CAAEC,KAAK,IAAK;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,
|
|
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,MAAMA,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"styles.js","names":["styles"],"sources":["../../../src/Barchart/styles.js"],"sourcesContent":["const styles = {};\n\nexport default styles;\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG,CAAC,CAAC;AAEjB,eAAeA,MAAM"}
|
|
@@ -26,7 +26,7 @@ export interface HvChartProps extends StandardProps<HvPlotProps, HvChartClassKey
|
|
|
26
26
|
/**
|
|
27
27
|
* Custom tooltip element to be displayed
|
|
28
28
|
*/
|
|
29
|
-
tooltip?: (data: TooltipDataObject) => Element;
|
|
29
|
+
tooltip?: (data: TooltipDataObject) => JSX.Element;
|
|
30
30
|
/**
|
|
31
31
|
* Defines the X axis title.
|
|
32
32
|
*/
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
const _excluded = ["id", "classes", "data", "layout", "config", "tooltipType", "tooltip", "afterPlot", "xAxisTitle", "yAxisTitle"];
|
|
4
|
-
|
|
5
4
|
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; }
|
|
6
|
-
|
|
7
5
|
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; }
|
|
8
|
-
|
|
9
|
-
import "core-js/modules/web.dom-collections.iterator.js";
|
|
10
6
|
import React, { useState, useMemo, useCallback } from "react";
|
|
11
7
|
import PropTypes from "prop-types";
|
|
12
8
|
import isNil from "lodash/isNil";
|
|
@@ -18,34 +14,33 @@ import styles from "./styles";
|
|
|
18
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
15
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
20
16
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
|
-
|
|
22
17
|
const Chart = _ref => {
|
|
23
18
|
let {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
19
|
+
id,
|
|
20
|
+
classes,
|
|
21
|
+
data,
|
|
22
|
+
layout,
|
|
23
|
+
config,
|
|
24
|
+
tooltipType = "multiple",
|
|
25
|
+
tooltip,
|
|
26
|
+
afterPlot,
|
|
27
|
+
xAxisTitle,
|
|
28
|
+
yAxisTitle
|
|
29
|
+
} = _ref,
|
|
30
|
+
others = _objectWithoutProperties(_ref, _excluded);
|
|
37
31
|
const theme = useTheme();
|
|
32
|
+
|
|
38
33
|
/* Values derived from props */
|
|
39
|
-
// Check if the barchart is horizontal or vertical.
|
|
40
34
|
|
|
35
|
+
// Check if the barchart is horizontal or vertical.
|
|
41
36
|
const isHorizontal = useMemo(() => {
|
|
42
37
|
var _data$;
|
|
43
|
-
|
|
44
38
|
return !isNil((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$.orientation) ? data[0].orientation.toUpperCase() === "H" : false;
|
|
45
39
|
}, [data]);
|
|
46
40
|
const chartLayout = useMemo(() => applyLayoutDefaults(layout, theme, isHorizontal, xAxisTitle, yAxisTitle), [isHorizontal, layout, theme, xAxisTitle, yAxisTitle]);
|
|
47
41
|
const chartConfig = useMemo(() => applyConfigDefaults(config), [config]);
|
|
48
42
|
const useSingle = tooltipType === "single";
|
|
43
|
+
|
|
49
44
|
/* State */
|
|
50
45
|
|
|
51
46
|
const [isHover, setIsHover] = useState(false);
|
|
@@ -54,9 +49,10 @@ const Chart = _ref => {
|
|
|
54
49
|
y: 0
|
|
55
50
|
});
|
|
56
51
|
const [dataTooltip, setDataTooltip] = useState();
|
|
52
|
+
|
|
57
53
|
/* Callbacks */
|
|
58
|
-
// Extract data from the plotly onHover event to be used to create the tooltip.
|
|
59
54
|
|
|
55
|
+
// Extract data from the plotly onHover event to be used to create the tooltip.
|
|
60
56
|
const onHover = useCallback(event => {
|
|
61
57
|
const {
|
|
62
58
|
points
|
|
@@ -67,7 +63,6 @@ const Chart = _ref => {
|
|
|
67
63
|
};
|
|
68
64
|
points.forEach((p, i) => {
|
|
69
65
|
var _fData$marker, _fData$line, _fData$labels;
|
|
70
|
-
|
|
71
66
|
const fData = p.fullData;
|
|
72
67
|
const pNumber = p.pointNumber;
|
|
73
68
|
if (i === 0) dataFromPoints.title = isHorizontal ? p.y : p.x || fData.name;
|
|
@@ -112,60 +107,49 @@ const Chart = _ref => {
|
|
|
112
107
|
})]
|
|
113
108
|
});
|
|
114
109
|
};
|
|
115
|
-
|
|
116
110
|
process.env.NODE_ENV !== "production" ? Chart.propTypes = {
|
|
117
111
|
/**
|
|
118
112
|
* An Id passed on to the component
|
|
119
113
|
*/
|
|
120
114
|
id: PropTypes.string,
|
|
121
|
-
|
|
122
115
|
/**
|
|
123
116
|
* A Jss Object used to override or extend the styles applied.
|
|
124
117
|
*/
|
|
125
118
|
classes: PropTypes.shape({
|
|
126
119
|
root: PropTypes.string
|
|
127
120
|
}),
|
|
128
|
-
|
|
129
121
|
/**
|
|
130
122
|
* Plotly data object (see https://plot.ly/javascript/reference/).
|
|
131
123
|
*/
|
|
132
124
|
data: PropTypes.arrayOf(PropTypes.instanceOf(Object)).isRequired,
|
|
133
|
-
|
|
134
125
|
/**
|
|
135
126
|
* Plotly layout object (see https://plot.ly/javascript/reference/#layout).
|
|
136
127
|
*/
|
|
137
128
|
layout: PropTypes.instanceOf(Object).isRequired,
|
|
138
|
-
|
|
139
129
|
/**
|
|
140
130
|
* Plotly config object (see https://plot.ly/javascript/configuration-options/).
|
|
141
131
|
*/
|
|
142
132
|
config: PropTypes.instanceOf(Object),
|
|
143
|
-
|
|
144
133
|
/**
|
|
145
134
|
* Defines if should use a single or multiline tooltip.
|
|
146
135
|
*/
|
|
147
136
|
tooltipType: PropTypes.oneOf(["single", "multiple"]),
|
|
148
|
-
|
|
149
137
|
/**
|
|
150
138
|
* Custom tooltip element to be displayed
|
|
151
139
|
*/
|
|
152
140
|
tooltip: PropTypes.func,
|
|
153
|
-
|
|
154
141
|
/**
|
|
155
142
|
* Function to be called after plot render.
|
|
156
143
|
*/
|
|
157
144
|
afterPlot: PropTypes.func,
|
|
158
|
-
|
|
159
145
|
/**
|
|
160
146
|
* Defines the X axis title.
|
|
161
147
|
*/
|
|
162
148
|
xAxisTitle: PropTypes.string,
|
|
163
|
-
|
|
164
149
|
/**
|
|
165
150
|
* Defines the Y axis title.
|
|
166
151
|
*/
|
|
167
152
|
yAxisTitle: PropTypes.string,
|
|
168
|
-
|
|
169
153
|
/**
|
|
170
154
|
* Defines the chart subtitle.
|
|
171
155
|
*/
|
|
@@ -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","coordinates","setCoordinates","x","y","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":"
|
|
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","coordinates","setCoordinates","x","y","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":";;;;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,OAAO,EAAEC,WAAW,QAAQ,OAAO;AAC7D,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,KAAK,MAAM,cAAc;AAChC,SAASC,UAAU,EAAEC,QAAQ,QAAQ,aAAa;AAElD,OAAOC,OAAO,MAAM,WAAW;AAC/B,SAASC,mBAAmB,EAAEC,mBAAmB,QAAQ,wBAAwB;AAEjF,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,MAAM,MAAM,UAAU;AAAC;AAAA;AAAA;AAE9B,MAAMC,KAAK,GAAG,QAYR;EAAA,IAZS;MACbC,EAAE;MACFC,OAAO;MACPC,IAAI;MACJC,MAAM;MACNC,MAAM;MACNC,WAAW,GAAG,UAAU;MACxBC,OAAO;MACPC,SAAS;MACTC,UAAU;MACVC;IAEF,CAAC;IADIC,MAAM;EAET,MAAMC,KAAK,GAAGlB,QAAQ,EAAE;;EAExB;;EAEA;EACA,MAAMmB,YAAY,GAAGxB,OAAO,CAC1B;IAAA;IAAA,OAAO,CAACG,KAAK,WAACW,IAAI,CAAC,CAAC,CAAC,2CAAP,OAASW,WAAW,CAAC,GAAGX,IAAI,CAAC,CAAC,CAAC,CAACW,WAAW,CAACC,WAAW,EAAE,KAAK,GAAG,GAAG,KAAK;EAAA,CAAC,EACxF,CAACZ,IAAI,CAAC,CACP;EAED,MAAMa,WAAW,GAAG3B,OAAO,CACzB,MAAMO,mBAAmB,CAACQ,MAAM,EAAEQ,KAAK,EAAEC,YAAY,EAAEJ,UAAU,EAAEC,UAAU,CAAC,EAC9E,CAACG,YAAY,EAAET,MAAM,EAAEQ,KAAK,EAAEH,UAAU,EAAEC,UAAU,CAAC,CACtD;EAED,MAAMO,WAAW,GAAG5B,OAAO,CAAC,MAAMQ,mBAAmB,CAACQ,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAExE,MAAMa,SAAS,GAAGZ,WAAW,KAAK,QAAQ;;EAE1C;;EAEA,MAAM,CAACa,OAAO,EAAEC,UAAU,CAAC,GAAGhC,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACiC,WAAW,EAAEC,cAAc,CAAC,GAAGlC,QAAQ,CAAC;IAAEmC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,CAAC;EAC9D,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGtC,QAAQ,EAAE;;EAEhD;;EAEA;EACA,MAAMuC,OAAO,GAAGrC,WAAW,CACxBsC,KAAK,IAAK;IACT,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK;IAExB,MAAME,cAAc,GAAG;MACrBC,KAAK,EAAE,EAAE;MACTC,QAAQ,EAAE;IACZ,CAAC;IAEDH,MAAM,CAACI,OAAO,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MAAA;MACvB,MAAMC,KAAK,GAAGF,CAAC,CAACG,QAAQ;MACxB,MAAMC,OAAO,GAAGJ,CAAC,CAACK,WAAW;MAE7B,IAAIJ,CAAC,KAAK,CAAC,EAAEL,cAAc,CAACC,KAAK,GAAGlB,YAAY,GAAGqB,CAAC,CAACV,CAAC,GAAGU,CAAC,CAACX,CAAC,IAAIa,KAAK,CAACI,IAAI;MAE1EV,cAAc,CAACE,QAAQ,CAACS,IAAI,CAAC;QAC3BC,KAAK,EAAE,kBAAAN,KAAK,CAACO,MAAM,kDAAZ,cAAcD,KAAK,qBAAIN,KAAK,CAACQ,IAAI,gDAAV,YAAYF,KAAK,KAAIR,CAAC,CAACQ,KAAK;QAC1DF,IAAI,EAAE,kBAAAJ,KAAK,CAACS,MAAM,kDAAZ,cAAeP,OAAO,CAAC,KAAIF,KAAK,CAACI,IAAI;QAC3CM,KAAK,EAAEjC,YAAY,GAAGqB,CAAC,CAACX,CAAC,GAAGW,CAAC,CAACV,CAAC,IAAIU,CAAC,CAACY;MACvC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFpB,cAAc,CAACI,cAAc,CAAC;IAC9BV,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,EACD,CAACP,YAAY,CAAC,CACf;EAED,MAAMkC,SAAS,GAAGzD,WAAW,CAAC,MAAM;IAClC8B,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM4B,WAAW,GAAG1D,WAAW,CAAEsC,KAAK,IAAK;IACzCN,cAAc,CAAC;MACbC,CAAC,EAAEK,KAAK,CAACqB,OAAO;MAChBzB,CAAC,EAAEI,KAAK,CAACsB;IACX,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE;IAAA,WACG/B,OAAO,iBACN,KAAC,OAAO;MACN,WAAW,EAAEE,WAAY;MACzB,IAAI,EAAEI,WAAY;MAClB,SAAS,EAAEP,SAAU;MACrB,OAAO,EAAEX;IAAQ,EAEpB,eACD;MAAK,EAAE,EAAEN,EAAG;MAAC,SAAS,EAAEC,OAAO,CAACiD,IAAK;MAAA,uBACnC;QAAK,WAAW,EAAEH,WAAY;QAAA,uBAC5B,KAAC,IAAI;UACH,IAAI,EAAE7C,IAAK;UACX,MAAM,EAAEa,WAAY;UACpB,MAAM,EAAEC,WAAY;UACpB,OAAO,EAAEU,OAAQ;UACjB,SAAS,EAAEoB,SAAU;UACrB,SAAS,EAAEvC;QAAU,GACjBG,MAAM;MACV;IACE,EACF;EAAA,EACL;AAEP,CAAC;AAED,wCAAAX,KAAK,CAACoD,SAAS,GAAG;EAChB;AACF;AACA;EACEnD,EAAE,EAAEV,SAAS,CAAC8D,MAAM;EACpB;AACF;AACA;EACEnD,OAAO,EAAEX,SAAS,CAAC+D,KAAK,CAAC;IACvBH,IAAI,EAAE5D,SAAS,CAAC8D;EAClB,CAAC,CAAC;EAEF;AACF;AACA;EACElD,IAAI,EAAEZ,SAAS,CAACgE,OAAO,CAAChE,SAAS,CAACiE,UAAU,CAACC,MAAM,CAAC,CAAC,CAACC,UAAU;EAChE;AACF;AACA;EACEtD,MAAM,EAAEb,SAAS,CAACiE,UAAU,CAACC,MAAM,CAAC,CAACC,UAAU;EAC/C;AACF;AACA;EACErD,MAAM,EAAEd,SAAS,CAACiE,UAAU,CAACC,MAAM,CAAC;EACpC;AACF;AACA;EACEnD,WAAW,EAAEf,SAAS,CAACoE,KAAK,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;EACpD;AACF;AACA;EACEpD,OAAO,EAAEhB,SAAS,CAACqE,IAAI;EACvB;AACF;AACA;EACEpD,SAAS,EAAEjB,SAAS,CAACqE,IAAI;EACzB;AACF;AACA;EACEnD,UAAU,EAAElB,SAAS,CAAC8D,MAAM;EAC5B;AACF;AACA;EACE3C,UAAU,EAAEnB,SAAS,CAAC8D,MAAM;EAC5B;AACF;AACA;EACEQ,QAAQ,EAAEtE,SAAS,CAAC8D;AACtB,CAAC;AAED,eAAe5D,UAAU,CAACM,MAAM,EAAE;EAAEyC,IAAI,EAAE;AAAU,CAAC,CAAC,CAACxC,KAAK,CAAC"}
|