@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.
Files changed (145) 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.d.ts +1 -1
  9. package/dist/Chart/Chart.js +28 -75
  10. package/dist/Chart/Chart.js.map +1 -1
  11. package/dist/Chart/Plot/Plot.js +10 -47
  12. package/dist/Chart/Plot/Plot.js.map +1 -1
  13. package/dist/Chart/Plot/index.js +0 -2
  14. package/dist/Chart/Plot/index.js.map +1 -1
  15. package/dist/Chart/Plot/styles.js.map +1 -1
  16. package/dist/Chart/Tooltip/MultiTooltip/MultiTooltip.js +1 -36
  17. package/dist/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  18. package/dist/Chart/Tooltip/MultiTooltip/index.js +0 -2
  19. package/dist/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
  20. package/dist/Chart/Tooltip/MultiTooltip/styles.js +0 -2
  21. package/dist/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
  22. package/dist/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -26
  23. package/dist/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  24. package/dist/Chart/Tooltip/SingleTooltip/index.js +0 -2
  25. package/dist/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
  26. package/dist/Chart/Tooltip/SingleTooltip/styles.js +0 -2
  27. package/dist/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
  28. package/dist/Chart/Tooltip/Tooltip.js +16 -51
  29. package/dist/Chart/Tooltip/Tooltip.js.map +1 -1
  30. package/dist/Chart/Tooltip/index.js +0 -2
  31. package/dist/Chart/Tooltip/index.js.map +1 -1
  32. package/dist/Chart/Tooltip/styles.js.map +1 -1
  33. package/dist/Chart/chartPlotlyOverrides.js +9 -33
  34. package/dist/Chart/chartPlotlyOverrides.js.map +1 -1
  35. package/dist/Chart/index.js +0 -2
  36. package/dist/Chart/index.js.map +1 -1
  37. package/dist/Chart/styles.js +0 -13
  38. package/dist/Chart/styles.js.map +1 -1
  39. package/dist/Donutchart/Donutchart.js +10 -47
  40. package/dist/Donutchart/Donutchart.js.map +1 -1
  41. package/dist/Donutchart/donutchartPlotlyOverrides.js +1 -13
  42. package/dist/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
  43. package/dist/Donutchart/index.js +0 -2
  44. package/dist/Donutchart/index.js.map +1 -1
  45. package/dist/Donutchart/styles.js.map +1 -1
  46. package/dist/Linechart/Linechart.js +12 -50
  47. package/dist/Linechart/Linechart.js.map +1 -1
  48. package/dist/Linechart/index.js +0 -2
  49. package/dist/Linechart/index.js.map +1 -1
  50. package/dist/Linechart/lineChartPlotlyOverrides.js +1 -17
  51. package/dist/Linechart/lineChartPlotlyOverrides.js.map +1 -1
  52. package/dist/Linechart/styles.js.map +1 -1
  53. package/dist/index.js +0 -4
  54. package/dist/index.js.map +1 -1
  55. package/dist/legacy/Barchart/Barchart.js +45 -43
  56. package/dist/legacy/Barchart/Barchart.js.map +1 -1
  57. package/dist/legacy/Barchart/barchartPlotlyOverrides.js +1 -6
  58. package/dist/legacy/Barchart/barchartPlotlyOverrides.js.map +1 -1
  59. package/dist/legacy/Barchart/index.js.map +1 -1
  60. package/dist/legacy/Barchart/styles.js.map +1 -1
  61. package/dist/legacy/Chart/Chart.d.ts +1 -1
  62. package/dist/legacy/Chart/Chart.js +28 -46
  63. package/dist/legacy/Chart/Chart.js.map +1 -1
  64. package/dist/legacy/Chart/Plot/Plot.js +10 -21
  65. package/dist/legacy/Chart/Plot/Plot.js.map +1 -1
  66. package/dist/legacy/Chart/Plot/index.js.map +1 -1
  67. package/dist/legacy/Chart/Plot/styles.js.map +1 -1
  68. package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js +1 -17
  69. package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  70. package/dist/legacy/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
  71. package/dist/legacy/Chart/Tooltip/MultiTooltip/styles.js +0 -1
  72. package/dist/legacy/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
  73. package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -9
  74. package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  75. package/dist/legacy/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
  76. package/dist/legacy/Chart/Tooltip/SingleTooltip/styles.js +0 -1
  77. package/dist/legacy/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
  78. package/dist/legacy/Chart/Tooltip/Tooltip.js +16 -30
  79. package/dist/legacy/Chart/Tooltip/Tooltip.js.map +1 -1
  80. package/dist/legacy/Chart/Tooltip/index.js.map +1 -1
  81. package/dist/legacy/Chart/Tooltip/styles.js.map +1 -1
  82. package/dist/legacy/Chart/chartPlotlyOverrides.js +9 -20
  83. package/dist/legacy/Chart/chartPlotlyOverrides.js.map +1 -1
  84. package/dist/legacy/Chart/index.js.map +1 -1
  85. package/dist/legacy/Chart/styles.js +0 -4
  86. package/dist/legacy/Chart/styles.js.map +1 -1
  87. package/dist/legacy/Donutchart/Donutchart.js +11 -22
  88. package/dist/legacy/Donutchart/Donutchart.js.map +1 -1
  89. package/dist/legacy/Donutchart/donutchartPlotlyOverrides.js +1 -6
  90. package/dist/legacy/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
  91. package/dist/legacy/Donutchart/index.js.map +1 -1
  92. package/dist/legacy/Donutchart/styles.js.map +1 -1
  93. package/dist/legacy/Linechart/Linechart.js +13 -25
  94. package/dist/legacy/Linechart/Linechart.js.map +1 -1
  95. package/dist/legacy/Linechart/index.js.map +1 -1
  96. package/dist/legacy/Linechart/lineChartPlotlyOverrides.js +1 -10
  97. package/dist/legacy/Linechart/lineChartPlotlyOverrides.js.map +1 -1
  98. package/dist/legacy/Linechart/styles.js.map +1 -1
  99. package/dist/legacy/index.js.map +1 -1
  100. package/dist/modern/Barchart/Barchart.js +38 -31
  101. package/dist/modern/Barchart/Barchart.js.map +1 -1
  102. package/dist/modern/Barchart/barchartPlotlyOverrides.js +1 -6
  103. package/dist/modern/Barchart/barchartPlotlyOverrides.js.map +1 -1
  104. package/dist/modern/Barchart/index.js.map +1 -1
  105. package/dist/modern/Barchart/styles.js.map +1 -1
  106. package/dist/modern/Chart/Chart.d.ts +1 -1
  107. package/dist/modern/Chart/Chart.js +17 -33
  108. package/dist/modern/Chart/Chart.js.map +1 -1
  109. package/dist/modern/Chart/Plot/Plot.js +11 -22
  110. package/dist/modern/Chart/Plot/Plot.js.map +1 -1
  111. package/dist/modern/Chart/Plot/index.js.map +1 -1
  112. package/dist/modern/Chart/Plot/styles.js.map +1 -1
  113. package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js +0 -17
  114. package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  115. package/dist/modern/Chart/Tooltip/MultiTooltip/index.js.map +1 -1
  116. package/dist/modern/Chart/Tooltip/MultiTooltip/styles.js +0 -1
  117. package/dist/modern/Chart/Tooltip/MultiTooltip/styles.js.map +1 -1
  118. package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js +0 -7
  119. package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  120. package/dist/modern/Chart/Tooltip/SingleTooltip/index.js.map +1 -1
  121. package/dist/modern/Chart/Tooltip/SingleTooltip/styles.js +0 -1
  122. package/dist/modern/Chart/Tooltip/SingleTooltip/styles.js.map +1 -1
  123. package/dist/modern/Chart/Tooltip/Tooltip.js +2 -13
  124. package/dist/modern/Chart/Tooltip/Tooltip.js.map +1 -1
  125. package/dist/modern/Chart/Tooltip/index.js.map +1 -1
  126. package/dist/modern/Chart/Tooltip/styles.js.map +1 -1
  127. package/dist/modern/Chart/chartPlotlyOverrides.js +9 -20
  128. package/dist/modern/Chart/chartPlotlyOverrides.js.map +1 -1
  129. package/dist/modern/Chart/index.js.map +1 -1
  130. package/dist/modern/Chart/styles.js +0 -4
  131. package/dist/modern/Chart/styles.js.map +1 -1
  132. package/dist/modern/Donutchart/Donutchart.js +11 -22
  133. package/dist/modern/Donutchart/Donutchart.js.map +1 -1
  134. package/dist/modern/Donutchart/donutchartPlotlyOverrides.js +1 -6
  135. package/dist/modern/Donutchart/donutchartPlotlyOverrides.js.map +1 -1
  136. package/dist/modern/Donutchart/index.js.map +1 -1
  137. package/dist/modern/Donutchart/styles.js.map +1 -1
  138. package/dist/modern/Linechart/Linechart.js +12 -24
  139. package/dist/modern/Linechart/Linechart.js.map +1 -1
  140. package/dist/modern/Linechart/index.js.map +1 -1
  141. package/dist/modern/Linechart/lineChartPlotlyOverrides.js +1 -10
  142. package/dist/modern/Linechart/lineChartPlotlyOverrides.js.map +1 -1
  143. package/dist/modern/Linechart/styles.js.map +1 -1
  144. package/dist/modern/index.js.map +1 -1
  145. 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,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;;;AACA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,SAAD,EAAYC,IAAZ,EAAqB;EACpD,IAAMC,IAAI,GAAGF,SAAb;EAEAE,IAAI,CAACC,OAAL,CAAa,UAACC,KAAD,EAAW;IACtBT,WAAW,CAACS,KAAD,EAAQ,WAAR,EAAqB,MAArB,CAAX;IACAT,WAAW,CAACS,KAAD,EAAQ,MAAR,EAAgB,OAAhB,CAAX;;IAEA,QAAQH,IAAR;MACE,KAAK,MAAL;QACEN,WAAW,CAACS,KAAD,EAAQ,MAAR,EAAgB,SAAhB,CAAX;QACAT,WAAW,CAACS,KAAD,EAAQ,MAAR,EAAgB,SAAhB,CAAX;QACA;;MACF,KAAK,MAAL;QACET,WAAW,CAACS,KAAD,EAAQ,MAAR,EAAgB,MAAhB,CAAX;QACA;;MACF,KAAK,OAAL;QACET,WAAW,CAACS,KAAD,EAAQ,MAAR,EAAgB,SAAhB,CAAX;QACAT,WAAW,CAACS,KAAD,EAAQ,MAAR,EAAgB,SAAhB,CAAX;QACAT,WAAW,CAACS,KAAD,EAAQ,YAAR,EAAsB,KAAtB,CAAX;QACA;;MACF;QACET,WAAW,CAACS,KAAD,EAAQ,MAAR,EAAgB,MAAhB,CAAX;IAdJ;EAgBD,CApBD;EAsBA,OAAOF,IAAP;AACD,CA1BM;AA4BP,OAAO,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAmC;EAAA,IAAlCC,WAAkC,uEAApB,EAAoB;EAAA,IAAhBC,WAAgB;EACpE,IAAMC,MAAM,GAAGd,KAAK,CAACY,WAAD,CAApB;EAEAX,WAAW,CAACa,MAAD,EAAS,OAAT,EAAkB,EAAlB,CAAX;EACAb,WAAW,CAACa,MAAM,CAACC,KAAR,EAAe,UAAf,EAA2B,IAA3B,CAAX;EACAd,WAAW,CAACa,MAAM,CAACC,KAAR,EAAe,UAAf,EAA2B,IAA3B,CAAX;EAEAd,WAAW,CAACa,MAAD,EAAS,OAAT,EAAkB,EAAlB,CAAX;EACAb,WAAW,CAACa,MAAM,CAACE,KAAR,EAAe,UAAf,EAA2B,KAA3B,CAAX;;EAEA,IAAIH,WAAJ,EAAiB;IACfZ,WAAW,CAACa,MAAM,CAACC,KAAR,EAAe,aAAf,EAA8B;MACvCE,OAAO,EAAE;IAD8B,CAA9B,CAAX;EAGD;;EAED,OAAOH,MAAP;AACD,CAjBM"}
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,EAAf;AAEA,eAAeA,MAAf"}
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"}
@@ -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,UAApB,QAAsC,YAAtC;AACA,SAASD,OAAO,IAAIE,YAApB,QAAwC,cAAxC;AACA,SAASF,OAAO,IAAIG,WAApB,QAAuC,aAAvC"}
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
- id,
31
- classes,
32
- data,
33
- layout,
34
- config,
35
- tooltipType = "multiple",
36
- stack = false,
37
- horizontal = false
38
- } = _ref,
39
- others = _objectWithoutProperties(_ref, _excluded);
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.instanceOf(Object),
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,KAAP,MAAkB,kBAAlB;;AAEA,MAAMC,WAAW,GAAG,CAACC,MAAD,EAASC,QAAT,EAAmBC,KAAnB,KAA6B;EAAA;;EAC/C;EACAF,MAAM,CAACC,QAAD,CAAN,uBAAmBD,MAAM,CAACC,QAAD,CAAzB,+DAAuCC,KAAvC;AACD,CAHD;AAKA;AACA;AACA;;;AACA,OAAO,MAAMC,mBAAmB,GAAG,CAACC,WAAD,EAAcC,KAAd,EAAqBC,YAArB,KAAsC;EACvE,MAAMC,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,MAAMI,iBAAiB,GAAG,CAACC,SAAD,EAAYN,YAAZ,KAA6B;EAC5D,MAAMO,IAAI,GAAGD,SAAb;EAEAC,IAAI,CAACC,OAAL,CAAcC,KAAD,IAAW;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,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,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,MAAMA,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,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
- id,
25
- classes,
26
- data,
27
- layout,
28
- config,
29
- tooltipType = "multiple",
30
- tooltip,
31
- afterPlot,
32
- xAxisTitle,
33
- yAxisTitle
34
- } = _ref,
35
- others = _objectWithoutProperties(_ref, _excluded);
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":"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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","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":"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"}