@undp/data-viz 2.0.9 → 2.1.1

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 (224) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.d.ts +2 -0
  3. package/dist/AreaChart.js +4 -4
  4. package/dist/BarGraph.cjs +1 -1
  5. package/dist/BarGraph.cjs.map +1 -1
  6. package/dist/BarGraph.d.ts +2 -0
  7. package/dist/BarGraph.js +1699 -1577
  8. package/dist/BarGraph.js.map +1 -1
  9. package/dist/BasicStatCard.d.ts +2 -0
  10. package/dist/BeeSwarmChart.cjs +1 -1
  11. package/dist/BeeSwarmChart.cjs.map +1 -1
  12. package/dist/BeeSwarmChart.d.ts +2 -0
  13. package/dist/BeeSwarmChart.js +258 -267
  14. package/dist/BeeSwarmChart.js.map +1 -1
  15. package/dist/BiVariateChoroplethMap.cjs +1 -1
  16. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  17. package/dist/BiVariateChoroplethMap.d.ts +2 -0
  18. package/dist/BiVariateChoroplethMap.js +252 -245
  19. package/dist/BiVariateChoroplethMap.js.map +1 -1
  20. package/dist/BulletChart.cjs +1 -1
  21. package/dist/BulletChart.cjs.map +1 -1
  22. package/dist/BulletChart.d.ts +2 -0
  23. package/dist/BulletChart.js +566 -536
  24. package/dist/BulletChart.js.map +1 -1
  25. package/dist/ButterflyChart.cjs +1 -1
  26. package/dist/ButterflyChart.cjs.map +1 -1
  27. package/dist/ButterflyChart.d.ts +2 -0
  28. package/dist/ButterflyChart.js +388 -378
  29. package/dist/ButterflyChart.js.map +1 -1
  30. package/dist/ChoroplethMap.cjs +1 -1
  31. package/dist/ChoroplethMap.cjs.map +1 -1
  32. package/dist/ChoroplethMap.d.ts +2 -0
  33. package/dist/ChoroplethMap.js +297 -291
  34. package/dist/ChoroplethMap.js.map +1 -1
  35. package/dist/CirclePackingGraph.cjs +1 -1
  36. package/dist/CirclePackingGraph.d.ts +2 -0
  37. package/dist/CirclePackingGraph.js +1 -1
  38. package/dist/DataCards.d.ts +2 -0
  39. package/dist/DataCards.js +1 -1
  40. package/dist/DataTable.d.ts +2 -0
  41. package/dist/DetailsModal-0Ry5nXiC.js +32 -0
  42. package/dist/DetailsModal-0Ry5nXiC.js.map +1 -0
  43. package/dist/DetailsModal-BN0HDFlV.cjs +2 -0
  44. package/dist/DetailsModal-BN0HDFlV.cjs.map +1 -0
  45. package/dist/DifferenceLineChart.cjs +1 -1
  46. package/dist/DifferenceLineChart.d.ts +2 -0
  47. package/dist/DifferenceLineChart.js +4 -4
  48. package/dist/DonutChart.cjs +1 -1
  49. package/dist/DonutChart.cjs.map +1 -1
  50. package/dist/DonutChart.d.ts +2 -0
  51. package/dist/DonutChart.js +185 -190
  52. package/dist/DonutChart.js.map +1 -1
  53. package/dist/DotDensityMap.cjs +1 -1
  54. package/dist/DotDensityMap.cjs.map +1 -1
  55. package/dist/DotDensityMap.d.ts +2 -0
  56. package/dist/DotDensityMap.js +252 -244
  57. package/dist/DotDensityMap.js.map +1 -1
  58. package/dist/DualAxisLineChart.cjs +1 -1
  59. package/dist/DualAxisLineChart.d.ts +2 -0
  60. package/dist/DualAxisLineChart.js +4 -4
  61. package/dist/DumbbellChart.cjs +1 -1
  62. package/dist/DumbbellChart.cjs.map +1 -1
  63. package/dist/DumbbellChart.d.ts +2 -0
  64. package/dist/DumbbellChart.js +563 -525
  65. package/dist/DumbbellChart.js.map +1 -1
  66. package/dist/GeoHubCompareMaps.d.ts +2 -0
  67. package/dist/GeoHubMap.d.ts +2 -0
  68. package/dist/GeoHubMapWithLayerSelection.d.ts +2 -0
  69. package/dist/{GraphEl-BcKU0bG1.cjs → GraphEl-B16EYkko.cjs} +2 -2
  70. package/dist/{GraphEl-BcKU0bG1.cjs.map → GraphEl-B16EYkko.cjs.map} +1 -1
  71. package/dist/{GraphEl-CGq1EWRn.js → GraphEl-DEzobeOM.js} +3 -3
  72. package/dist/{GraphEl-CGq1EWRn.js.map → GraphEl-DEzobeOM.js.map} +1 -1
  73. package/dist/GriddedGraphs.cjs +1 -1
  74. package/dist/GriddedGraphs.cjs.map +1 -1
  75. package/dist/GriddedGraphs.d.ts +2 -0
  76. package/dist/GriddedGraphs.js +19 -19
  77. package/dist/GriddedGraphs.js.map +1 -1
  78. package/dist/GriddedGraphsFromConfig.d.ts +2 -0
  79. package/dist/HeatMap.cjs +1 -1
  80. package/dist/HeatMap.cjs.map +1 -1
  81. package/dist/HeatMap.d.ts +2 -0
  82. package/dist/HeatMap.js +112 -117
  83. package/dist/HeatMap.js.map +1 -1
  84. package/dist/Histogram.cjs +1 -1
  85. package/dist/Histogram.d.ts +2 -0
  86. package/dist/Histogram.js +3 -3
  87. package/dist/HybridMap.cjs +1 -1
  88. package/dist/HybridMap.cjs.map +1 -1
  89. package/dist/HybridMap.d.ts +2 -0
  90. package/dist/HybridMap.js +366 -359
  91. package/dist/HybridMap.js.map +1 -1
  92. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  93. package/dist/LineChartWithConfidenceInterval.d.ts +2 -0
  94. package/dist/LineChartWithConfidenceInterval.js +4 -4
  95. package/dist/{Modal-DGcuAHyK.js → Modal-bMQA6bL_.js} +5 -5
  96. package/dist/{Modal-DGcuAHyK.js.map → Modal-bMQA6bL_.js.map} +1 -1
  97. package/dist/MultiGraphDashboard.cjs +1 -1
  98. package/dist/MultiGraphDashboard.cjs.map +1 -1
  99. package/dist/MultiGraphDashboard.d.ts +2 -0
  100. package/dist/MultiGraphDashboard.js +10 -10
  101. package/dist/MultiGraphDashboard.js.map +1 -1
  102. package/dist/MultiGraphDashboardFromConfig.d.ts +2 -0
  103. package/dist/MultiGraphDashboardWideToLongFormat.d.ts +2 -0
  104. package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
  105. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +2 -0
  106. package/dist/MultiLineAltChart.cjs +1 -1
  107. package/dist/MultiLineAltChart.cjs.map +1 -1
  108. package/dist/MultiLineAltChart.d.ts +2 -0
  109. package/dist/MultiLineAltChart.js +453 -425
  110. package/dist/MultiLineAltChart.js.map +1 -1
  111. package/dist/MultiLineChart.cjs +1 -1
  112. package/dist/MultiLineChart.d.ts +2 -0
  113. package/dist/MultiLineChart.js +4 -4
  114. package/dist/ParetoChart.cjs +1 -1
  115. package/dist/ParetoChart.cjs.map +1 -1
  116. package/dist/ParetoChart.d.ts +2 -0
  117. package/dist/ParetoChart.js +188 -193
  118. package/dist/ParetoChart.js.map +1 -1
  119. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  120. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -1
  121. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +2 -0
  122. package/dist/PerformanceIntensiveMultiGraphDashboard.js +16 -16
  123. package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -1
  124. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +2 -0
  125. package/dist/PerformanceIntensiveScrollStory.d.ts +2 -0
  126. package/dist/RadarChart.cjs +1 -1
  127. package/dist/RadarChart.cjs.map +1 -1
  128. package/dist/RadarChart.d.ts +2 -0
  129. package/dist/RadarChart.js +158 -163
  130. package/dist/RadarChart.js.map +1 -1
  131. package/dist/SankeyChart.cjs +1 -1
  132. package/dist/SankeyChart.cjs.map +1 -1
  133. package/dist/SankeyChart.d.ts +2 -0
  134. package/dist/SankeyChart.js +172 -177
  135. package/dist/SankeyChart.js.map +1 -1
  136. package/dist/ScatterPlot.cjs +1 -1
  137. package/dist/ScatterPlot.cjs.map +1 -1
  138. package/dist/ScatterPlot.d.ts +2 -0
  139. package/dist/ScatterPlot.js +494 -483
  140. package/dist/ScatterPlot.js.map +1 -1
  141. package/dist/ScrollStory.d.ts +2 -0
  142. package/dist/SimpleLineChart.cjs +1 -1
  143. package/dist/SimpleLineChart.d.ts +2 -0
  144. package/dist/SimpleLineChart.js +4 -4
  145. package/dist/SingleGraphDashboard.cjs +1 -1
  146. package/dist/SingleGraphDashboard.cjs.map +1 -1
  147. package/dist/SingleGraphDashboard.d.ts +2 -0
  148. package/dist/SingleGraphDashboard.js +24 -24
  149. package/dist/SingleGraphDashboard.js.map +1 -1
  150. package/dist/SingleGraphDashboardFromConfig.d.ts +2 -0
  151. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +2 -0
  152. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +2 -0
  153. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  154. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  155. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +2 -0
  156. package/dist/SingleGraphDashboardThreeDGraphs.js +46 -46
  157. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  158. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +2 -0
  159. package/dist/SlopeChart.cjs +1 -1
  160. package/dist/SlopeChart.cjs.map +1 -1
  161. package/dist/SlopeChart.d.ts +2 -0
  162. package/dist/SlopeChart.js +182 -187
  163. package/dist/SlopeChart.js.map +1 -1
  164. package/dist/SparkLine.cjs +1 -1
  165. package/dist/SparkLine.d.ts +2 -0
  166. package/dist/SparkLine.js +4 -4
  167. package/dist/StatCardFromData.d.ts +2 -0
  168. package/dist/StripChart.cjs +1 -1
  169. package/dist/StripChart.cjs.map +1 -1
  170. package/dist/StripChart.d.ts +2 -0
  171. package/dist/StripChart.js +249 -258
  172. package/dist/StripChart.js.map +1 -1
  173. package/dist/ThreeDGlobe.cjs +1 -1
  174. package/dist/ThreeDGlobe.cjs.map +1 -1
  175. package/dist/ThreeDGlobe.d.ts +2 -0
  176. package/dist/ThreeDGlobe.js +142 -147
  177. package/dist/ThreeDGlobe.js.map +1 -1
  178. package/dist/Tooltip-Dj5eVppQ.js +45 -0
  179. package/dist/Tooltip-Dj5eVppQ.js.map +1 -0
  180. package/dist/Tooltip-uUdw6wJL.cjs +2 -0
  181. package/dist/Tooltip-uUdw6wJL.cjs.map +1 -0
  182. package/dist/TreeMapGraph.cjs +1 -1
  183. package/dist/TreeMapGraph.cjs.map +1 -1
  184. package/dist/TreeMapGraph.d.ts +2 -0
  185. package/dist/TreeMapGraph.js +159 -164
  186. package/dist/TreeMapGraph.js.map +1 -1
  187. package/dist/Types.d.ts +2 -0
  188. package/dist/UnitChart.d.ts +2 -0
  189. package/dist/{band-CyHaVft5.js → band-DHUZ2X7J.js} +3 -3
  190. package/dist/{band-CyHaVft5.js.map → band-DHUZ2X7J.js.map} +1 -1
  191. package/dist/{checkIfMultiple-Y9iKaV_u.js → checkIfMultiple-CIRtG0KE.js} +2 -2
  192. package/dist/{checkIfMultiple-Y9iKaV_u.js.map → checkIfMultiple-CIRtG0KE.js.map} +1 -1
  193. package/dist/index-CF5hnGvG.cjs +2 -0
  194. package/dist/index-CF5hnGvG.cjs.map +1 -0
  195. package/dist/index-DPGq3eIL.js +330 -0
  196. package/dist/index-DPGq3eIL.js.map +1 -0
  197. package/dist/index.cjs +1 -1
  198. package/dist/index.d.ts +2 -0
  199. package/dist/index.js +1 -1
  200. package/dist/{init-BJFW6EwE.js → init-BhZylTFx.js} +3 -3
  201. package/dist/{init-BJFW6EwE.js.map → init-BhZylTFx.js.map} +1 -1
  202. package/dist/{linear-BwnDd9KF.js → linear-BqltdMeF.js} +2 -2
  203. package/dist/{linear-BwnDd9KF.js.map → linear-BqltdMeF.js.map} +1 -1
  204. package/dist/{ordinal-P77xw8aL.js → ordinal-BJ6O_LC5.js} +2 -2
  205. package/dist/{ordinal-P77xw8aL.js.map → ordinal-BJ6O_LC5.js.map} +1 -1
  206. package/dist/{pow-DE4c7dbW.js → pow-CM2aze4M.js} +3 -3
  207. package/dist/{pow-DE4c7dbW.js.map → pow-CM2aze4M.js.map} +1 -1
  208. package/dist/{threshold-Bgr20hik.js → threshold-DFfqcDMa.js} +2 -2
  209. package/dist/{threshold-Bgr20hik.js.map → threshold-DFfqcDMa.js.map} +1 -1
  210. package/dist/{time-DCCfQk3V.js → time-BUL-dwnK.js} +3 -3
  211. package/dist/{time-DCCfQk3V.js.map → time-BUL-dwnK.js.map} +1 -1
  212. package/package.json +4 -4
  213. package/dist/Tooltip-4dJo4_AF.cjs +0 -2
  214. package/dist/Tooltip-4dJo4_AF.cjs.map +0 -1
  215. package/dist/Tooltip-CwWUegPB.js +0 -43
  216. package/dist/Tooltip-CwWUegPB.js.map +0 -1
  217. package/dist/index-B2LQV7Tk.js +0 -335
  218. package/dist/index-B2LQV7Tk.js.map +0 -1
  219. package/dist/index-xRHRLDIp.cjs +0 -2
  220. package/dist/index-xRHRLDIp.cjs.map +0 -1
  221. package/dist/sort-BIvMlUH1.js +0 -34
  222. package/dist/sort-BIvMlUH1.js.map +0 -1
  223. package/dist/sort-O96oMZLb.cjs +0 -2
  224. package/dist/sort-O96oMZLb.cjs.map +0 -1
@@ -4,7 +4,7 @@ import { p as w, f as Re } from "./parse-DlCRUFh_.js";
4
4
  import { l as He, a as Fe } from "./simple-statistics-flVzqVtt.js";
5
5
  import { o as Ie } from "./index-BZQYSqar.js";
6
6
  import { n as Se } from "./numberFormattingFunction-14YCbkN2.js";
7
- import { T as We } from "./Tooltip-CwWUegPB.js";
7
+ import { T as We } from "./Tooltip-Dj5eVppQ.js";
8
8
  import { c as bt } from "./checkIfNullOrUndefined-DmfiKkNw.js";
9
9
  import { g as Ye, A as Xe, C as Ge } from "./customArea-BUhPiPT6.js";
10
10
  import { A as Pe } from "./Axis-CRyfcLjc.js";
@@ -14,12 +14,12 @@ import { a as ze } from "./ReferenceLine-2XCwHXQ4.js";
14
14
  import { R as Ue } from "./RegressionLine-DAcY2DjT.js";
15
15
  import { Y as qe } from "./YTicksAndGridLines-Blepl7XF.js";
16
16
  import { H as Je } from "./index-SKgJALZg.js";
17
- import { t as Ke } from "./time-DCCfQk3V.js";
18
- import { a as Qe } from "./linear-BwnDd9KF.js";
17
+ import { t as Ke } from "./time-BUL-dwnK.js";
18
+ import { a as Qe } from "./linear-BqltdMeF.js";
19
19
  import { l as Ze, c as _e } from "./line-CPfhohvF.js";
20
20
  import { c as ti, s as ei, a as ii, m as oi } from "./step-BrDul-H4.js";
21
21
  import { s as ni } from "./select-DKy99ogv.js";
22
- import { c as si } from "./init-BJFW6EwE.js";
22
+ import { a as si } from "./init-BhZylTFx.js";
23
23
  import { p as ai } from "./pointer-CWRWOsrb.js";
24
24
  import { u as ri } from "./use-in-view-Cxa7y1TH.js";
25
25
  import { m as _t } from "./proxy-BxkFHwUw.js";
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index-CHPV5EwG-CTPQjnHt.cjs"),o=require("react"),te=require("./index-CyZ1lmi_.cjs"),q=require("./index-BS2TADPj.cjs"),le=require("./index-DQA8q5sC.cjs"),x=require("./DropdownSelect-Doz3mCrM.cjs"),d=require("./checkIfMultiple-wg6hJLXy.cjs"),ne=require("./Spinner-DRMBUsX7.cjs"),ie=require("./GraphContainer-d8A46BK2.cjs"),re=require("./GraphEl-BcKU0bG1.cjs"),$=require("./fetchAndParseData-l5HGMAEs.cjs"),U=require("./transformDataForAggregation-XNg0OGYE.cjs"),z=require("./getUniqValue-NX8DgwND.cjs"),se=require("./GraphHeader.cjs"),W=require("./filterData-T5DQBE9b.cjs"),oe=require("./getGraphList-CA17dvFB.cjs"),J=require("./transformDataForSelect-YmStusCI.cjs"),ue=u=>{if(u.findIndex(n=>n.chartConfigId==="yMin")!==-1&&u.findIndex(n=>n.chartConfigId==="yMax")!==-1)return u;const i=[...u];return u.findIndex(n=>n.chartConfigId==="yMin")===-1&&i.push({chartConfigId:"yMin",columnId:`${u[u.findIndex(n=>n.chartConfigId==="y")].columnId}Min`}),u.findIndex(n=>n.chartConfigId==="yMax")===-1&&i.push({chartConfigId:"yMax",columnId:`${u[u.findIndex(n=>n.chartConfigId==="y")].columnId}Max`}),i},M=(u,i)=>{const n=i?.map(D=>{const b=u?.findIndex(s=>s.chartConfigId===D.chartConfigId);if(b===-1)return{};const w=u[b]?.allowedColumnIds?.findIndex(s=>s.value===D.columnId);return w===-1?{}:u[b].allowedColumnIds[w].graphSettings||{}})||[];return Object.assign({},...n)};function de(u){const{graphSettings:i,dataSettings:n,filters:D,graphType:b,dataTransform:w,graphDataConfiguration:s,dataFilters:A,debugMode:S,dataSelectionOptions:I,advancedDataSelectionOptions:N,readableHeader:B,noOfFiltersPerRow:p=4,updateFilters:K,uiMode:f="normal",highlightDataPointSettings:C}=u,[P,F]=o.useState(void 0),[c,Q]=o.useState(void 0),[v,j]=o.useState(s),[m,V]=o.useState({}),[E,X]=o.useState(void 0),[Y,Z]=o.useState([]),H=o.useRef(null),O=o.useRef(s),[R,k]=o.useState([]),G={ignoreCase:!0,ignoreAccents:!0,trim:!0},L=o.useEffectEvent(()=>{const e=(D||[]).map(r=>({filter:r.column,label:r.label||`Filter by ${r.column}`,singleSelect:r.singleSelect,clearable:r.clearable,ui:r.ui,defaultValue:J.transformDefaultValue(r.defaultValue),value:J.transformDefaultValue(r.defaultValue),availableValues:z.getUniqValue(c,r.column).filter(a=>!r.excludeValues?.includes(`${a}`)).map(a=>({value:a,label:a})),allowSelectAll:r.allowSelectAll,width:r.width}));k(e)});o.useEffect(()=>{(async()=>{try{const r=n.dataURL?typeof n.dataURL=="string"?n.fileType==="json"?await $.fetchAndParseJSON(n.dataURL,n.columnsToArray,n.dataTransformation,S):n.fileType==="api"?await $.fetchAndTransformDataFromAPI(n.dataURL,n.apiHeaders,n.columnsToArray,n.dataTransformation,S):await $.fetchAndParseCSV(n.dataURL,n.dataTransformation,n.columnsToArray,S,n.delimiter,!0):await $.fetchAndParseMultipleDataSources(n.dataURL,n.idColumnTitle):await $.transformColumnsToArray(n.data,n.columnsToArray);Q(r)}catch(r){console.error("Data fetching error:",r)}})(),L()},[n,S]),o.useEffect(()=>{L()},[D,c]);const _=o.useEffectEvent(()=>{if(!c||R.length===0)F(c);else{const e=c.filter(r=>R.every(a=>a.value&&q.flattenDeep([a.value]).length>0?te.intersection(q.flattenDeep([r[a.filter]]),q.flattenDeep([a.value]).map(t=>t.value)).length>0:!0));F(e)}});o.useEffect(()=>{_()},[R,c]),o.useEffect(()=>{I&&V(M(I,s))},[I,s]);const ee=o.useEffectEvent(()=>{C?.column&&P&&Z(z.getUniqValue(P,C.column).filter(e=>!C?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))});o.useEffect(()=>{ee()},[C]),o.useEffect(()=>{le.isEqual(O.current,s)||(j(s),O.current=s)},[s]);const y=(e,r)=>{k(a=>a.map(t=>t.filter===e?{...t,value:r}:t))},ae=c?U.transformDataForGraph(w?U.transformDataForAggregation(W.filterData(c,A||[]),w.keyColumn,w.aggregationColumnsSetting):W.filterData(c,A||[]),b,b==="lineChartWithConfidenceInterval"&&v?ue(v):v):void 0;return l.jsxRuntimeExports.jsx(ie.GraphContainer,{className:i?.classNames?.graphContainer,style:i?.styles?.graphContainer,id:i?.graphID,ref:H,"aria-label":i?.ariaLabel,backgroundColor:i?.backgroundColor??!1,theme:i?.theme||"light",language:i?.language||"en",width:i?.width,height:i?.height,padding:i?.padding,minHeight:i?.minHeight,relativeHeight:i?.relativeHeight,children:c||oe.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(b)!==-1?l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[m?.graphTitle||m?.graphDescription||i?.graphTitle||i?.graphDescription||i?.graphDownload||i?.dataDownload?l.jsxRuntimeExports.jsx(se.GraphHeader,{styles:{title:m?.styles?.title||i?.styles?.title,description:m?.styles?.description||i?.styles?.description},classNames:{title:m?.classNames?.title||i?.classNames?.title,description:m?.classNames?.description||i?.classNames?.description},graphTitle:m?.graphTitle||i?.graphTitle,graphDescription:m?.graphDescription||i?.graphDescription,width:m?.width||i?.width,graphDownload:i?.graphDownload?H:void 0,dataDownload:i?.dataDownload&&c&&c.length>0?c:null}):null,R.length!==0||(I||[]).length!==0||(N||[]).length!==0||C?l.jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-start gap-x-4 gap-y-0 w-full",children:[N?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.options.map(a=>({...a,value:a.label})),size:"sm",isClearable:!1,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:e.defaultValue?{...e.defaultValue,value:e.defaultValue?.label}:{...e.options[0],value:e.options[0].label},onChange:a=>{V(a?.graphSettings||{}),j(a?.dataConfiguration)}}):l.jsxRuntimeExports.jsx(d.ye,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:f,onValueChange:a=>{const t=e.options[e.options.findIndex(g=>g.label===a)];V(t.graphSettings||{}),j(t.dataConfiguration)},children:e.options.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:a.label,value:a.label},t))})]},r)),I?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:e.ui!=="radio"?0:1,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),d.checkIfMultiple(e.chartConfigId,v||[])?e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.allowedColumnIds,size:"sm",isMulti:!0,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]):void 0,filterOption:x.Du(G),onChange:a=>{const t={columnId:(a||[]).map(h=>h.value),chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);j(g)}}):l.jsxRuntimeExports.jsx(d.$,{variant:f,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]).map(a=>a.value):[],onValueChange:a=>{const t={columnId:a||[],chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);j(g)},children:e.allowedColumnIds.map((a,t)=>l.jsxRuntimeExports.jsx(d.P,{label:a.label,value:a.label},t))}):e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.allowedColumnIds,size:"sm",isClearable:!1,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)]:void 0,onChange:a=>{const t={columnId:a?.value,chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);V(M(I,g)),j(g)}}):l.jsxRuntimeExports.jsx(d.ye,{variant:f,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const g={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(T=>T.label===a)].value,chartConfigId:e.chartConfigId},h=v?.map(T=>T.chartConfigId===g.chartConfigId?g:T);V(M(I,h)),j(h)},children:e.allowedColumnIds.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:a.label,value:a.label},t))})]},r)),R?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label}),e.singleSelect?e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.availableValues,variant:f,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:a=>{y(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):l.jsxRuntimeExports.jsx(d.ye,{variant:f,defaultValue:e.defaultValue.value,onValueChange:a=>{y(e.filter,e.availableValues.filter(t=>t.value===a))},children:e.availableValues.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:`${a.label}`,value:`${a.value}`},t))}):l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?l.jsxRuntimeExports.jsx(x.ja,{options:e.availableValues,variant:f,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:a=>{y(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):l.jsxRuntimeExports.jsx(d.$,{variant:f,defaultValue:e.defaultValue?e.defaultValue.map(a=>`${a.value}`):[],value:e.value?e.value.map(a=>`${a.value}`):void 0,onValueChange:a=>{y(e.filter,e.availableValues.filter(t=>a.indexOf(`${t.value}`)!==-1))},children:e.availableValues.map((a,t)=>l.jsxRuntimeExports.jsx(d.P,{label:`${a.label}`,value:`${a.value}`},t))}),e.allowSelectAll?l.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{y(e.filter,e.availableValues)},children:"Select all options"}):null]})]},r)),C?l.jsxRuntimeExports.jsxs("div",{style:{width:C.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:1,flexShrink:0,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:C.label||"Highlight data"}),l.jsxRuntimeExports.jsx(x.ja,{options:Y,variant:f,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:x.Du(G),onChange:e=>{X(e?.map(r=>r.value))},value:E?.map(e=>({label:e,value:e})),defaultValue:C.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,l.jsxRuntimeExports.jsx(re.GraphEl,{graph:b,graphData:ae,graphDataConfiguration:v,debugMode:S,readableHeader:B||[],updateFilters:K,settings:{...i||{},...m,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,width:void 0,height:void 0,relativeHeight:void 0,minHeight:void 0,padding:"0",theme:i?.theme,...E?{highlightedDataPoints:E,highlightedIds:E?.map(e=>`${e}`),highlightedLines:E?.map(e=>e)}:{}}})]}):l.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:l.jsxRuntimeExports.jsx(ne.w,{})})})}exports.SingleGraphDashboard=de;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index-CHPV5EwG-CTPQjnHt.cjs"),o=require("react"),te=require("./index-CyZ1lmi_.cjs"),q=require("./index-BS2TADPj.cjs"),le=require("./index-DQA8q5sC.cjs"),C=require("./DropdownSelect-Doz3mCrM.cjs"),d=require("./checkIfMultiple-wg6hJLXy.cjs"),ne=require("./Spinner-DRMBUsX7.cjs"),ie=require("./GraphContainer-d8A46BK2.cjs"),re=require("./GraphEl-B16EYkko.cjs"),$=require("./fetchAndParseData-l5HGMAEs.cjs"),U=require("./transformDataForAggregation-XNg0OGYE.cjs"),z=require("./getUniqValue-NX8DgwND.cjs"),se=require("./GraphHeader.cjs"),W=require("./filterData-T5DQBE9b.cjs"),oe=require("./getGraphList-CA17dvFB.cjs"),J=require("./transformDataForSelect-YmStusCI.cjs"),ue=u=>{if(u.findIndex(n=>n.chartConfigId==="yMin")!==-1&&u.findIndex(n=>n.chartConfigId==="yMax")!==-1)return u;const i=[...u];return u.findIndex(n=>n.chartConfigId==="yMin")===-1&&i.push({chartConfigId:"yMin",columnId:`${u[u.findIndex(n=>n.chartConfigId==="y")].columnId}Min`}),u.findIndex(n=>n.chartConfigId==="yMax")===-1&&i.push({chartConfigId:"yMax",columnId:`${u[u.findIndex(n=>n.chartConfigId==="y")].columnId}Max`}),i},M=(u,i)=>{const n=i?.map(D=>{const b=u?.findIndex(s=>s.chartConfigId===D.chartConfigId);if(b===-1)return{};const w=u[b]?.allowedColumnIds?.findIndex(s=>s.value===D.columnId);return w===-1?{}:u[b].allowedColumnIds[w].graphSettings||{}})||[];return Object.assign({},...n)};function de(u){const{graphSettings:i,dataSettings:n,filters:D,graphType:b,dataTransform:w,graphDataConfiguration:s,dataFilters:A,debugMode:S,dataSelectionOptions:I,advancedDataSelectionOptions:N,readableHeader:B,noOfFiltersPerRow:p=4,updateFilters:K,uiMode:f="normal",highlightDataPointSettings:m}=u,[P,F]=o.useState(void 0),[c,Q]=o.useState(void 0),[v,j]=o.useState(s),[x,V]=o.useState({}),[E,X]=o.useState(void 0),[Y,Z]=o.useState([]),H=o.useRef(null),O=o.useRef(s),[R,k]=o.useState([]),G={ignoreCase:!0,ignoreAccents:!0,trim:!0},L=o.useEffectEvent(()=>{const e=(D||[]).map(r=>({filter:r.column,label:r.label||`Filter by ${r.column}`,singleSelect:r.singleSelect,clearable:r.clearable,ui:r.ui,defaultValue:J.transformDefaultValue(r.defaultValue),value:J.transformDefaultValue(r.defaultValue),availableValues:z.getUniqValue(c,r.column).filter(a=>!r.excludeValues?.includes(`${a}`)).map(a=>({value:a,label:a})),allowSelectAll:r.allowSelectAll,width:r.width}));k(e)});o.useEffect(()=>{(async()=>{try{const r=n.dataURL?typeof n.dataURL=="string"?n.fileType==="json"?await $.fetchAndParseJSON(n.dataURL,n.columnsToArray,n.dataTransformation,S):n.fileType==="api"?await $.fetchAndTransformDataFromAPI(n.dataURL,n.apiHeaders,n.columnsToArray,n.dataTransformation,S):await $.fetchAndParseCSV(n.dataURL,n.dataTransformation,n.columnsToArray,S,n.delimiter,!0):await $.fetchAndParseMultipleDataSources(n.dataURL,n.idColumnTitle):await $.transformColumnsToArray(n.data,n.columnsToArray);Q(r)}catch(r){console.error("Data fetching error:",r)}})(),L()},[n,S]),o.useEffect(()=>{L()},[D,c]);const _=o.useEffectEvent(()=>{if(!c||R.length===0)F(c);else{const e=c.filter(r=>R.every(a=>a.value&&q.flattenDeep([a.value]).length>0?te.intersection(q.flattenDeep([r[a.filter]]),q.flattenDeep([a.value]).map(t=>t.value)).length>0:!0));F(e)}});o.useEffect(()=>{_()},[R,c]),o.useEffect(()=>{I&&V(M(I,s))},[I,s]);const ee=o.useEffectEvent(()=>{m?.column&&P&&Z(z.getUniqValue(P,m.column).filter(e=>!m?.excludeValues?.includes(`${e}`)).map(e=>({value:e,label:e})))});o.useEffect(()=>{ee()},[m]),o.useEffect(()=>{le.isEqual(O.current,s)||(j(s),O.current=s)},[s]);const y=(e,r)=>{k(a=>a.map(t=>t.filter===e?{...t,value:r}:t))},ae=c?U.transformDataForGraph(w?U.transformDataForAggregation(W.filterData(c,A||[]),w.keyColumn,w.aggregationColumnsSetting):W.filterData(c,A||[]),b,b==="lineChartWithConfidenceInterval"&&v?ue(v):v):void 0;return l.jsxRuntimeExports.jsx(ie.GraphContainer,{className:i?.classNames?.graphContainer,style:i?.styles?.graphContainer,id:i?.graphID,ref:H,"aria-label":i?.ariaLabel,backgroundColor:i?.backgroundColor??!1,theme:i?.theme||"light",language:i?.language||"en",width:i?.width,height:i?.height,padding:i?.padding,minHeight:i?.minHeight,relativeHeight:i?.relativeHeight,children:c||oe.graphList.filter(e=>e.geoHubMapPresentation).map(e=>e.graphID).indexOf(b)!==-1?l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[x?.graphTitle||x?.graphDescription||i?.graphTitle||i?.graphDescription||i?.graphDownload||i?.dataDownload?l.jsxRuntimeExports.jsx(se.GraphHeader,{styles:{title:x?.styles?.title||i?.styles?.title,description:x?.styles?.description||i?.styles?.description},classNames:{title:x?.classNames?.title||i?.classNames?.title,description:x?.classNames?.description||i?.classNames?.description},graphTitle:x?.graphTitle||i?.graphTitle,graphDescription:x?.graphDescription||i?.graphDescription,width:x?.width||i?.width,graphDownload:i?.graphDownload?H:void 0,dataDownload:i?.dataDownload&&c&&c.length>0?c:null}):null,R.length!==0||(I||[]).length!==0||(N||[]).length!==0||m?l.jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-start gap-x-4 gap-y-0 w-full",children:[N?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:e.width?0:1,flexShrink:e.ui!=="radio"||e.width?0:1,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label||"Graph by"}),e.ui!=="radio"?l.jsxRuntimeExports.jsx(C.ja,{options:e.options.map(a=>({...a,value:a.label})),size:"sm",isClearable:!1,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:e.defaultValue?{...e.defaultValue,value:e.defaultValue?.label}:{...e.options[0],value:e.options[0].label},onChange:a=>{V(a?.graphSettings||{}),j(a?.dataConfiguration)}}):l.jsxRuntimeExports.jsx(d.ye,{defaultValue:e.defaultValue?.label||e.options[0].label,variant:f,onValueChange:a=>{const t=e.options[e.options.findIndex(g=>g.label===a)];V(t.graphSettings||{}),j(t.dataConfiguration)},children:e.options.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:a.label,value:a.label},t))})]},r)),I?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:e.width?0:1,flexShrink:e.ui!=="radio"||e.width?0:1,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label||`Visualize ${e.chartConfigId} by`}),d.checkIfMultiple(e.chartConfigId,v||[])?e.ui!=="radio"?l.jsxRuntimeExports.jsx(C.ja,{options:e.allowedColumnIds,size:"sm",isMulti:!0,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]):void 0,filterOption:C.Du(G),onChange:a=>{const t={columnId:(a||[]).map(h=>h.value),chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);j(g)}}):l.jsxRuntimeExports.jsx(d.$,{variant:f,defaultValue:s?s[s.findIndex(a=>a.chartConfigId===e.chartConfigId)].columnId.map(a=>e.allowedColumnIds[e.allowedColumnIds.findIndex(t=>t.value===a)]).map(a=>a.value):[],onValueChange:a=>{const t={columnId:a||[],chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);j(g)},children:e.allowedColumnIds.map((a,t)=>l.jsxRuntimeExports.jsx(d.P,{label:a.label,value:a.label},t))}):e.ui!=="radio"?l.jsxRuntimeExports.jsx(C.ja,{options:e.allowedColumnIds,size:"sm",isClearable:!1,isSearchable:!0,variant:f,controlShouldRenderValue:!0,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)]:void 0,onChange:a=>{const t={columnId:a?.value,chartConfigId:e.chartConfigId},g=v?.map(h=>h.chartConfigId===t.chartConfigId?t:h);V(M(I,g)),j(g)}}):l.jsxRuntimeExports.jsx(d.ye,{variant:f,defaultValue:s?e.allowedColumnIds[e.allowedColumnIds.findIndex(a=>a.value===s[s.findIndex(t=>t.chartConfigId===e.chartConfigId)].columnId)].label:"",onValueChange:a=>{const g={columnId:e.allowedColumnIds[e.allowedColumnIds.findIndex(T=>T.label===a)].value,chartConfigId:e.chartConfigId},h=v?.map(T=>T.chartConfigId===g.chartConfigId?g:T);V(M(I,h)),j(h)},children:e.allowedColumnIds.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:a.label,value:a.label},t))})]},r)),R?.map((e,r)=>l.jsxRuntimeExports.jsxs("div",{style:{width:e.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:e.width?0:1,flexShrink:0,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:e.label}),e.singleSelect?e.ui!=="radio"?l.jsxRuntimeExports.jsx(C.ja,{options:e.availableValues,variant:f,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Du(G),onChange:a=>{y(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):l.jsxRuntimeExports.jsx(d.ye,{variant:f,defaultValue:e.defaultValue.value,onValueChange:a=>{y(e.filter,e.availableValues.filter(t=>t.value===a))},children:e.availableValues.map((a,t)=>l.jsxRuntimeExports.jsx(d.he,{label:`${a.label}`,value:`${a.value}`},t))}):l.jsxRuntimeExports.jsxs(l.jsxRuntimeExports.Fragment,{children:[e.ui!=="radio"?l.jsxRuntimeExports.jsx(C.ja,{options:e.availableValues,variant:f,size:"sm",isMulti:!0,isClearable:e.clearable===void 0?!0:e.clearable,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Du(G),onChange:a=>{y(e.filter,a)},value:e.value,defaultValue:e.defaultValue}):l.jsxRuntimeExports.jsx(d.$,{variant:f,defaultValue:e.defaultValue?e.defaultValue.map(a=>`${a.value}`):[],value:e.value?e.value.map(a=>`${a.value}`):void 0,onValueChange:a=>{y(e.filter,e.availableValues.filter(t=>a.indexOf(`${t.value}`)!==-1))},children:e.availableValues.map((a,t)=>l.jsxRuntimeExports.jsx(d.P,{label:`${a.label}`,value:`${a.value}`},t))}),e.allowSelectAll?l.jsxRuntimeExports.jsx("button",{type:"button",className:"bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400",onClick:()=>{y(e.filter,e.availableValues)},children:"Select all options"}):null]})]},r)),m?l.jsxRuntimeExports.jsxs("div",{style:{width:m.width||`calc(${100/p}% - ${(p-1)/p}rem)`,flexGrow:m.width?0:1,flexShrink:0,minWidth:"240px"},className:"pb-4",children:[l.jsxRuntimeExports.jsx(d.b,{className:"mb-2",children:m.label||"Highlight data"}),l.jsxRuntimeExports.jsx(C.ja,{options:Y,variant:f,size:"sm",isMulti:!0,isClearable:!0,isSearchable:!0,controlShouldRenderValue:!0,filterOption:C.Du(G),onChange:e=>{X(e?.map(r=>r.value))},value:E?.map(e=>({label:e,value:e})),defaultValue:m.defaultValues?.map(e=>({label:e,value:e}))})]}):null]}):null,l.jsxRuntimeExports.jsx(re.GraphEl,{graph:b,graphData:ae,graphDataConfiguration:v,debugMode:S,readableHeader:B||[],updateFilters:K,settings:{...i||{},...x,graphTitle:void 0,graphDescription:void 0,graphDownload:!1,dataDownload:!1,backgroundColor:void 0,width:void 0,height:void 0,relativeHeight:void 0,minHeight:void 0,padding:"0",theme:i?.theme,...E?{highlightedDataPoints:E,highlightedIds:E?.map(e=>`${e}`),highlightedLines:E?.map(e=>e)}:{}}})]}):l.jsxRuntimeExports.jsx("div",{className:"w-full flex justify-center p-4",children:l.jsxRuntimeExports.jsx(ne.w,{})})})}exports.SingleGraphDashboard=de;
2
2
  //# sourceMappingURL=SingleGraphDashboard.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleGraphDashboard.cjs","sources":["../src/Components/Dashboard/SingleGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n HighlightDataPointSettingsDataType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { graphList } from '@/Utils/getGraphList';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n highlightDataPointSettings?: HighlightDataPointSettingsDataType;\r\n noOfFiltersPerRow?: number;\r\n graphType: GraphType;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nconst addMinAndMax = (config: GraphConfigurationDataType[]) => {\r\n if (\r\n config.findIndex(d => d.chartConfigId === 'yMin') !== -1 &&\r\n config.findIndex(d => d.chartConfigId === 'yMax') !== -1\r\n )\r\n return config;\r\n const configTemp = [...config];\r\n if (config.findIndex(d => d.chartConfigId === 'yMin') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMin',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Min`,\r\n });\r\n }\r\n if (config.findIndex(d => d.chartConfigId === 'yMax') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMax',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Max`,\r\n });\r\n }\r\n return configTemp;\r\n};\r\n\r\nconst getGraphSettings = (\r\n dataSelectionOptions: DataSelectionDataType[],\r\n updatedConfig?: GraphConfigurationDataType[],\r\n) => {\r\n const updatedSettings =\r\n updatedConfig?.map(c => {\r\n const indx = dataSelectionOptions?.findIndex(opt => opt.chartConfigId === c.chartConfigId);\r\n if (indx === -1) return {};\r\n const allowedValIndx = dataSelectionOptions[indx]?.allowedColumnIds?.findIndex(\r\n col => col.value === c.columnId,\r\n );\r\n if (allowedValIndx === -1) return {};\r\n return dataSelectionOptions[indx].allowedColumnIds[allowedValIndx].graphSettings || {};\r\n }) || [];\r\n return Object.assign({}, ...updatedSettings);\r\n};\r\n\r\nexport function SingleGraphDashboard(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n dataFilters,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n updateFilters,\r\n uiMode = 'normal',\r\n highlightDataPointSettings,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n const [highlightedDataPointList, setHighlightedDataPointList] = useState<\r\n (string | number)[] | undefined\r\n >(undefined);\r\n const [highlightedDataPointOptions, setHighlightedDataPointOption] = useState<\r\n { label: string | number; value: string | number }[]\r\n >([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const prevGraphDataConfigRef = useRef<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n ui: el.ui,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, data]);\r\n\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n const updateHighlightedDataPointOptions = useEffectEvent(() => {\r\n if (highlightDataPointSettings?.column && filteredData)\r\n setHighlightedDataPointOption(\r\n getUniqValue(filteredData, highlightDataPointSettings.column)\r\n .filter(v => !highlightDataPointSettings?.excludeValues?.includes(`${v}`))\r\n .map(d => ({ value: d, label: d })),\r\n );\r\n });\r\n\r\n useEffect(() => {\r\n updateHighlightedDataPointOptions();\r\n }, [highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\r\n }, [graphDataConfiguration]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n\r\n const graphData = !data\r\n ? undefined\r\n : transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []),\r\n graphType,\r\n graphType === 'lineChartWithConfidenceInterval' && graphConfig\r\n ? addMinAndMax(graphConfig)\r\n : graphConfig,\r\n );\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n minHeight={graphSettings?.minHeight}\r\n relativeHeight={graphSettings?.relativeHeight}\r\n >\r\n {data ||\r\n graphList\r\n .filter(el => el.geoHubMapPresentation)\r\n .map(el => el.graphID)\r\n .indexOf(graphType) !== -1 ? (\r\n <>\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: d.ui !== 'radio' ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isMulti\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: (el || []).map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n {highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n width:\r\n highlightDataPointSettings.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n >\r\n <Label className='mb-2'>\r\n {highlightDataPointSettings.label || 'Highlight data'}\r\n </Label>\r\n <DropdownSelect\r\n options={highlightedDataPointOptions}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setHighlightedDataPointList(el?.map((d: any) => d.value));\r\n }}\r\n value={highlightedDataPointList?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n defaultValue={highlightDataPointSettings.defaultValues?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n />\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <GraphEl\r\n graph={graphType}\r\n graphData={graphData}\r\n graphDataConfiguration={graphConfig}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n updateFilters={updateFilters}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n graphTitle: undefined,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: undefined,\r\n minHeight: undefined,\r\n padding: '0',\r\n theme: graphSettings?.theme,\r\n ...(highlightedDataPointList\r\n ? {\r\n highlightedDataPoints: highlightedDataPointList,\r\n highlightedIds: highlightedDataPointList?.map(d => `${d}`),\r\n highlightedLines: highlightedDataPointList?.map(d => d),\r\n }\r\n : {}),\r\n }}\r\n />\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["addMinAndMax","config","findIndex","d","chartConfigId","configTemp","push","columnId","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","map","c","indx","opt","allowedValIndx","allowedColumnIds","col","value","graphSettings","Object","assign","SingleGraphDashboard","props","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","dataFilters","debugMode","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","updateFilters","uiMode","highlightDataPointSettings","filteredData","setFilteredData","useState","undefined","data","setData","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","ui","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","filteredDataEvent","length","result","item","every","flattenDeep","intersection","updateHighlightedDataPointOptions","isEqual","current","handleFilterChange","values","prev","f","graphData","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","jsx","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","theme","language","height","padding","minHeight","relativeHeight","graphList","geoHubMapPresentation","indexOf","jsxs","Fragment","graphTitle","graphDescription","graphDownload","dataDownload","GraphHeader","title","description","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","options","dataConfiguration","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","defaultValues","GraphEl","highlightedDataPoints","highlightedIds","highlightedLines","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"SingleGraphDashboard.cjs","sources":["../src/Components/Dashboard/SingleGraphDashboard.tsx"],"sourcesContent":["import { useEffect, useEffectEvent, useRef, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport isEqual from 'fast-deep-equal';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { CheckboxGroup, CheckboxGroupItem } from '@undp/design-system-react/CheckboxGroup';\r\nimport { RadioGroup, RadioGroupItem } from '@undp/design-system-react/RadioGroup';\r\nimport { Spinner } from '@undp/design-system-react/Spinner';\r\nimport { Label } from '@undp/design-system-react/Label';\r\n\r\nimport { GraphContainer } from '../Elements/GraphContainer';\r\n\r\nimport GraphEl from './GraphEl';\r\n\r\nimport {\r\n AdvancedDataSelectionDataType,\r\n AggregationSettingsDataType,\r\n DataFilterDataType,\r\n DataSelectionDataType,\r\n DataSettingsDataType,\r\n FilterSettingsDataType,\r\n FilterUiSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphSettingsDataType,\r\n GraphType,\r\n HighlightDataPointSettingsDataType,\r\n} from '@/Types';\r\nimport {\r\n fetchAndParseCSV,\r\n fetchAndParseJSON,\r\n fetchAndParseMultipleDataSources,\r\n fetchAndTransformDataFromAPI,\r\n} from '@/Utils/fetchAndParseData';\r\nimport { transformDataForGraph } from '@/Utils/transformData/transformDataForGraph';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDataForAggregation } from '@/Utils/transformData/transformDataForAggregation';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { filterData } from '@/Utils/transformData/filterData';\r\nimport { checkIfMultiple } from '@/Utils/checkIfMultiple';\r\nimport { transformColumnsToArray } from '@/Utils/transformData/transformColumnsToArray';\r\nimport { graphList } from '@/Utils/getGraphList';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\ninterface Props {\r\n graphSettings?: GraphSettingsDataType;\r\n readableHeader?: {\r\n value: string;\r\n label: string;\r\n }[];\r\n dataSettings: DataSettingsDataType;\r\n filters?: FilterUiSettingsDataType[];\r\n highlightDataPointSettings?: HighlightDataPointSettingsDataType;\r\n noOfFiltersPerRow?: number;\r\n graphType: GraphType;\r\n dataTransform?: {\r\n keyColumn: string;\r\n aggregationColumnsSetting?: AggregationSettingsDataType[];\r\n };\r\n dataFilters?: DataFilterDataType[];\r\n graphDataConfiguration?: GraphConfigurationDataType[];\r\n dataSelectionOptions?: DataSelectionDataType[];\r\n advancedDataSelectionOptions?: AdvancedDataSelectionDataType[];\r\n debugMode?: boolean;\r\n uiMode?: 'light' | 'normal';\r\n updateFilters?: (_d: string) => void;\r\n}\r\n\r\nconst addMinAndMax = (config: GraphConfigurationDataType[]) => {\r\n if (\r\n config.findIndex(d => d.chartConfigId === 'yMin') !== -1 &&\r\n config.findIndex(d => d.chartConfigId === 'yMax') !== -1\r\n )\r\n return config;\r\n const configTemp = [...config];\r\n if (config.findIndex(d => d.chartConfigId === 'yMin') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMin',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Min`,\r\n });\r\n }\r\n if (config.findIndex(d => d.chartConfigId === 'yMax') === -1) {\r\n configTemp.push({\r\n chartConfigId: 'yMax',\r\n columnId: `${config[config.findIndex(d => d.chartConfigId === 'y')].columnId}Max`,\r\n });\r\n }\r\n return configTemp;\r\n};\r\n\r\nconst getGraphSettings = (\r\n dataSelectionOptions: DataSelectionDataType[],\r\n updatedConfig?: GraphConfigurationDataType[],\r\n) => {\r\n const updatedSettings =\r\n updatedConfig?.map(c => {\r\n const indx = dataSelectionOptions?.findIndex(opt => opt.chartConfigId === c.chartConfigId);\r\n if (indx === -1) return {};\r\n const allowedValIndx = dataSelectionOptions[indx]?.allowedColumnIds?.findIndex(\r\n col => col.value === c.columnId,\r\n );\r\n if (allowedValIndx === -1) return {};\r\n return dataSelectionOptions[indx].allowedColumnIds[allowedValIndx].graphSettings || {};\r\n }) || [];\r\n return Object.assign({}, ...updatedSettings);\r\n};\r\n\r\nexport function SingleGraphDashboard(props: Props) {\r\n const {\r\n graphSettings,\r\n dataSettings,\r\n filters,\r\n graphType,\r\n dataTransform,\r\n graphDataConfiguration,\r\n dataFilters,\r\n debugMode,\r\n dataSelectionOptions,\r\n advancedDataSelectionOptions,\r\n readableHeader,\r\n noOfFiltersPerRow = 4,\r\n updateFilters,\r\n uiMode = 'normal',\r\n highlightDataPointSettings,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [filteredData, setFilteredData] = useState<any>(undefined);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [data, setData] = useState<any>(undefined);\r\n const [graphConfig, setGraphConfig] = useState<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [advancedGraphSettings, setAdvancedGraphSettings] = useState<GraphSettingsDataType>({});\r\n const [highlightedDataPointList, setHighlightedDataPointList] = useState<\r\n (string | number)[] | undefined\r\n >(undefined);\r\n const [highlightedDataPointOptions, setHighlightedDataPointOption] = useState<\r\n { label: string | number; value: string | number }[]\r\n >([]);\r\n const graphParentDiv = useRef<HTMLDivElement>(null);\r\n\r\n const prevGraphDataConfigRef = useRef<GraphConfigurationDataType[] | undefined>(\r\n graphDataConfiguration,\r\n );\r\n const [filterSettings, setFilterSettings] = useState<FilterSettingsDataType[]>([]);\r\n\r\n const filterConfig = {\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n };\r\n\r\n const updateFiltersEvent = useEffectEvent(() => {\r\n const filterSettingsTemp = (filters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: el.singleSelect,\r\n clearable: el.clearable,\r\n ui: el.ui,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n value: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n allowSelectAll: el.allowSelectAll,\r\n width: el.width,\r\n }));\r\n setFilterSettings(filterSettingsTemp);\r\n });\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n try {\r\n const dataFromFile = dataSettings.dataURL\r\n ? typeof dataSettings.dataURL === 'string'\r\n ? dataSettings.fileType === 'json'\r\n ? await fetchAndParseJSON(\r\n dataSettings.dataURL,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : dataSettings.fileType === 'api'\r\n ? await fetchAndTransformDataFromAPI(\r\n dataSettings.dataURL,\r\n dataSettings.apiHeaders,\r\n dataSettings.columnsToArray,\r\n dataSettings.dataTransformation,\r\n debugMode,\r\n )\r\n : await fetchAndParseCSV(\r\n dataSettings.dataURL,\r\n dataSettings.dataTransformation,\r\n dataSettings.columnsToArray,\r\n debugMode,\r\n dataSettings.delimiter,\r\n true,\r\n )\r\n : await fetchAndParseMultipleDataSources(\r\n dataSettings.dataURL,\r\n dataSettings.idColumnTitle,\r\n )\r\n : await transformColumnsToArray(dataSettings.data, dataSettings.columnsToArray);\r\n setData(dataFromFile);\r\n } catch (error) {\r\n console.error('Data fetching error:', error);\r\n }\r\n };\r\n fetchData();\r\n updateFiltersEvent();\r\n }, [dataSettings, debugMode]);\r\n\r\n useEffect(() => {\r\n updateFiltersEvent();\r\n }, [filters, data]);\r\n\r\n const filteredDataEvent = useEffectEvent(() => {\r\n if (!data || filterSettings.length === 0) setFilteredData(data);\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const result = data.filter((item: any) =>\r\n filterSettings.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n setFilteredData(result);\r\n }\r\n });\r\n useEffect(() => {\r\n filteredDataEvent();\r\n }, [filterSettings, data]);\r\n\r\n useEffect(() => {\r\n if (dataSelectionOptions)\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setAdvancedGraphSettings(getGraphSettings(dataSelectionOptions, graphDataConfiguration));\r\n }, [dataSelectionOptions, graphDataConfiguration]);\r\n\r\n const updateHighlightedDataPointOptions = useEffectEvent(() => {\r\n if (highlightDataPointSettings?.column && filteredData)\r\n setHighlightedDataPointOption(\r\n getUniqValue(filteredData, highlightDataPointSettings.column)\r\n .filter(v => !highlightDataPointSettings?.excludeValues?.includes(`${v}`))\r\n .map(d => ({ value: d, label: d })),\r\n );\r\n });\r\n\r\n useEffect(() => {\r\n updateHighlightedDataPointOptions();\r\n }, [highlightDataPointSettings]);\r\n\r\n useEffect(() => {\r\n if (!isEqual(prevGraphDataConfigRef.current, graphDataConfiguration)) {\r\n // eslint-disable-next-line react-hooks/set-state-in-effect\r\n setGraphConfig(graphDataConfiguration);\r\n prevGraphDataConfigRef.current = graphDataConfiguration;\r\n }\r\n }, [graphDataConfiguration]);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const handleFilterChange = (filter: string, values: any) => {\r\n setFilterSettings(prev => prev.map(f => (f.filter === filter ? { ...f, value: values } : f)));\r\n };\r\n\r\n const graphData = !data\r\n ? undefined\r\n : transformDataForGraph(\r\n dataTransform\r\n ? transformDataForAggregation(\r\n filterData(data, dataFilters || []),\r\n dataTransform.keyColumn,\r\n dataTransform.aggregationColumnsSetting,\r\n )\r\n : filterData(data, dataFilters || []),\r\n graphType,\r\n graphType === 'lineChartWithConfidenceInterval' && graphConfig\r\n ? addMinAndMax(graphConfig)\r\n : graphConfig,\r\n );\r\n return (\r\n <GraphContainer\r\n className={graphSettings?.classNames?.graphContainer}\r\n style={graphSettings?.styles?.graphContainer}\r\n id={graphSettings?.graphID}\r\n ref={graphParentDiv}\r\n aria-label={graphSettings?.ariaLabel}\r\n backgroundColor={graphSettings?.backgroundColor ?? false}\r\n theme={graphSettings?.theme || 'light'}\r\n language={graphSettings?.language || 'en'}\r\n width={graphSettings?.width}\r\n height={graphSettings?.height}\r\n padding={graphSettings?.padding}\r\n minHeight={graphSettings?.minHeight}\r\n relativeHeight={graphSettings?.relativeHeight}\r\n >\r\n {data ||\r\n graphList\r\n .filter(el => el.geoHubMapPresentation)\r\n .map(el => el.graphID)\r\n .indexOf(graphType) !== -1 ? (\r\n <>\r\n {advancedGraphSettings?.graphTitle ||\r\n advancedGraphSettings?.graphDescription ||\r\n graphSettings?.graphTitle ||\r\n graphSettings?.graphDescription ||\r\n graphSettings?.graphDownload ||\r\n graphSettings?.dataDownload ? (\r\n <GraphHeader\r\n styles={{\r\n title: advancedGraphSettings?.styles?.title || graphSettings?.styles?.title,\r\n description:\r\n advancedGraphSettings?.styles?.description || graphSettings?.styles?.description,\r\n }}\r\n classNames={{\r\n title: advancedGraphSettings?.classNames?.title || graphSettings?.classNames?.title,\r\n description:\r\n advancedGraphSettings?.classNames?.description ||\r\n graphSettings?.classNames?.description,\r\n }}\r\n graphTitle={advancedGraphSettings?.graphTitle || graphSettings?.graphTitle}\r\n graphDescription={\r\n advancedGraphSettings?.graphDescription || graphSettings?.graphDescription\r\n }\r\n width={advancedGraphSettings?.width || graphSettings?.width}\r\n graphDownload={graphSettings?.graphDownload ? graphParentDiv : undefined}\r\n dataDownload={\r\n graphSettings?.dataDownload && data ? (data.length > 0 ? data : null) : null\r\n }\r\n />\r\n ) : null}\r\n {filterSettings.length !== 0 ||\r\n (dataSelectionOptions || []).length !== 0 ||\r\n (advancedDataSelectionOptions || []).length !== 0 ||\r\n highlightDataPointSettings ? (\r\n <div className='flex flex-wrap items-start gap-x-4 gap-y-0 w-full'>\r\n {advancedDataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || 'Graph by'}</Label>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.options.map(opt => ({\r\n ...opt,\r\n value: opt.label,\r\n }))}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n d.defaultValue\r\n ? {\r\n ...d.defaultValue,\r\n value: d.defaultValue?.label,\r\n }\r\n : {\r\n ...d.options[0],\r\n value: d.options[0].label,\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setAdvancedGraphSettings(el?.graphSettings || {});\r\n setGraphConfig(el?.dataConfiguration);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n defaultValue={d.defaultValue?.label || d.options[0].label}\r\n variant={uiMode}\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.options[d.options.findIndex(opt => opt.label === el)];\r\n setAdvancedGraphSettings(selectedOption.graphSettings || {});\r\n setGraphConfig(selectedOption.dataConfiguration);\r\n }}\r\n >\r\n {d.options.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n {dataSelectionOptions?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: d.ui !== 'radio' || d.width ? 0 : 1,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label || `Visualize ${d.chartConfigId} by`}</Label>\r\n {!checkIfMultiple(d.chartConfigId, graphConfig || []) ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isClearable={false}\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ]\r\n : undefined\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: el?.value as string,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(\r\n j =>\r\n j.value ===\r\n (graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string),\r\n )\r\n ].label\r\n : ''\r\n }\r\n onValueChange={el => {\r\n const selectedOption =\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(opt => opt.label === el)\r\n ];\r\n const newGraphConfig = {\r\n columnId: selectedOption.value,\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setAdvancedGraphSettings(\r\n getGraphSettings(dataSelectionOptions, updatedConfig),\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <RadioGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.allowedColumnIds}\r\n size='sm'\r\n isMulti\r\n isSearchable\r\n variant={uiMode}\r\n controlShouldRenderValue\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n ).map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n : undefined\r\n }\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n const newGraphConfig = {\r\n columnId: (el || []).map(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) => item.value,\r\n ) as string[],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n graphDataConfiguration\r\n ? (\r\n graphDataConfiguration[\r\n graphDataConfiguration.findIndex(\r\n el => el.chartConfigId === d.chartConfigId,\r\n )\r\n ].columnId as string[]\r\n )\r\n .map(\r\n el =>\r\n d.allowedColumnIds[\r\n d.allowedColumnIds.findIndex(j => j.value === el)\r\n ],\r\n )\r\n .map(el => el.value)\r\n : []\r\n }\r\n onValueChange={el => {\r\n const newGraphConfig = {\r\n columnId: el || [],\r\n chartConfigId: d.chartConfigId,\r\n };\r\n const updatedConfig = graphConfig?.map(item =>\r\n item.chartConfigId === newGraphConfig.chartConfigId\r\n ? newGraphConfig\r\n : item,\r\n );\r\n setGraphConfig(updatedConfig);\r\n }}\r\n >\r\n {d.allowedColumnIds.map((el, j) => (\r\n <CheckboxGroupItem label={el.label} value={el.label} key={j} />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n </div>\r\n ))}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n style={{\r\n width:\r\n d.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: d.width ? 0 : 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n key={i}\r\n >\r\n <Label className='mb-2'>{d.label}</Label>\r\n {d.singleSelect ? (\r\n d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <RadioGroup\r\n variant={uiMode}\r\n defaultValue={(d.defaultValue as { value: string; label: string }).value}\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => v.value === el),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <RadioGroupItem label={`${el.label}`} value={`${el.value}`} key={j} />\r\n ))}\r\n </RadioGroup>\r\n )\r\n ) : (\r\n <>\r\n {d.ui !== 'radio' ? (\r\n <DropdownSelect\r\n options={d.availableValues}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n handleFilterChange(d.filter, el);\r\n }}\r\n value={d.value}\r\n defaultValue={d.defaultValue}\r\n />\r\n ) : (\r\n <CheckboxGroup\r\n variant={uiMode}\r\n defaultValue={\r\n d.defaultValue\r\n ? (\r\n d.defaultValue as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : []\r\n }\r\n value={\r\n d.value\r\n ? (\r\n d.value as {\r\n value: string | number;\r\n label: string | number;\r\n }[]\r\n ).map(el => `${el.value}`)\r\n : undefined\r\n }\r\n onValueChange={el => {\r\n handleFilterChange(\r\n d.filter,\r\n d.availableValues.filter(v => el.indexOf(`${v.value}`) !== -1),\r\n );\r\n }}\r\n >\r\n {d.availableValues.map((el, j) => (\r\n <CheckboxGroupItem\r\n label={`${el.label}`}\r\n value={`${el.value}`}\r\n key={j}\r\n />\r\n ))}\r\n </CheckboxGroup>\r\n )}\r\n {d.allowSelectAll ? (\r\n <button\r\n type='button'\r\n className='bg-transparent border-0 p-0 mt-2 cursor-pointer text-primary-blue-600 dark:text-primary-blue-400'\r\n onClick={() => {\r\n handleFilterChange(d.filter, d.availableValues);\r\n }}\r\n >\r\n Select all options\r\n </button>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n ))}\r\n {highlightDataPointSettings ? (\r\n <div\r\n style={{\r\n width:\r\n highlightDataPointSettings.width ||\r\n `calc(${100 / noOfFiltersPerRow}% - ${\r\n (noOfFiltersPerRow - 1) / noOfFiltersPerRow\r\n }rem)`,\r\n flexGrow: highlightDataPointSettings.width ? 0 : 1,\r\n flexShrink: 0,\r\n minWidth: '240px',\r\n }}\r\n className='pb-4'\r\n >\r\n <Label className='mb-2'>\r\n {highlightDataPointSettings.label || 'Highlight data'}\r\n </Label>\r\n <DropdownSelect\r\n options={highlightedDataPointOptions}\r\n variant={uiMode}\r\n size='sm'\r\n isMulti\r\n isClearable\r\n isSearchable\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setHighlightedDataPointList(el?.map((d: any) => d.value));\r\n }}\r\n value={highlightedDataPointList?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n defaultValue={highlightDataPointSettings.defaultValues?.map(d => ({\r\n label: d,\r\n value: d,\r\n }))}\r\n />\r\n </div>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n <GraphEl\r\n graph={graphType}\r\n graphData={graphData}\r\n graphDataConfiguration={graphConfig}\r\n debugMode={debugMode}\r\n readableHeader={readableHeader || []}\r\n updateFilters={updateFilters}\r\n settings={{\r\n ...(graphSettings || {}),\r\n ...advancedGraphSettings,\r\n graphTitle: undefined,\r\n graphDescription: undefined,\r\n graphDownload: false,\r\n dataDownload: false,\r\n backgroundColor: undefined,\r\n width: undefined,\r\n height: undefined,\r\n relativeHeight: undefined,\r\n minHeight: undefined,\r\n padding: '0',\r\n theme: graphSettings?.theme,\r\n ...(highlightedDataPointList\r\n ? {\r\n highlightedDataPoints: highlightedDataPointList,\r\n highlightedIds: highlightedDataPointList?.map(d => `${d}`),\r\n highlightedLines: highlightedDataPointList?.map(d => d),\r\n }\r\n : {}),\r\n }}\r\n />\r\n </>\r\n ) : (\r\n <div className='w-full flex justify-center p-4'>\r\n <Spinner />\r\n </div>\r\n )}\r\n </GraphContainer>\r\n );\r\n}\r\n"],"names":["addMinAndMax","config","findIndex","d","chartConfigId","configTemp","push","columnId","getGraphSettings","dataSelectionOptions","updatedConfig","updatedSettings","map","c","indx","opt","allowedValIndx","allowedColumnIds","col","value","graphSettings","Object","assign","SingleGraphDashboard","props","dataSettings","filters","graphType","dataTransform","graphDataConfiguration","dataFilters","debugMode","advancedDataSelectionOptions","readableHeader","noOfFiltersPerRow","updateFilters","uiMode","highlightDataPointSettings","filteredData","setFilteredData","useState","undefined","data","setData","graphConfig","setGraphConfig","advancedGraphSettings","setAdvancedGraphSettings","highlightedDataPointList","setHighlightedDataPointList","highlightedDataPointOptions","setHighlightedDataPointOption","graphParentDiv","useRef","prevGraphDataConfigRef","filterSettings","setFilterSettings","filterConfig","ignoreCase","ignoreAccents","trim","updateFiltersEvent","useEffectEvent","filterSettingsTemp","el","filter","column","label","singleSelect","clearable","ui","defaultValue","transformDefaultValue","availableValues","getUniqValue","v","excludeValues","includes","allowSelectAll","width","useEffect","dataFromFile","dataURL","fileType","fetchAndParseJSON","columnsToArray","dataTransformation","fetchAndTransformDataFromAPI","apiHeaders","fetchAndParseCSV","delimiter","fetchAndParseMultipleDataSources","idColumnTitle","transformColumnsToArray","error","console","fetchData","filteredDataEvent","length","result","item","every","flattenDeep","intersection","updateHighlightedDataPointOptions","isEqual","current","handleFilterChange","values","prev","f","graphData","transformDataForGraph","transformDataForAggregation","filterData","keyColumn","aggregationColumnsSetting","jsx","GraphContainer","classNames","graphContainer","styles","graphID","ariaLabel","backgroundColor","theme","language","height","padding","minHeight","relativeHeight","graphList","geoHubMapPresentation","indexOf","jsxs","Fragment","graphTitle","graphDescription","graphDownload","dataDownload","GraphHeader","title","description","i","flexGrow","flexShrink","minWidth","Label","DropdownSelect","options","dataConfiguration","RadioGroup","selectedOption","j","RadioGroupItem","checkIfMultiple","createFilter","newGraphConfig","CheckboxGroup","CheckboxGroupItem","defaultValues","GraphEl","highlightedDataPoints","highlightedIds","highlightedLines","Spinner"],"mappings":"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"}
@@ -95,6 +95,7 @@ declare interface ClassNameObject {
95
95
  regLine?: string;
96
96
  dataCards?: string;
97
97
  colorLegend?: string;
98
+ modal?: string;
98
99
  }
99
100
 
100
101
  declare interface ColumnConfigurationDataType {
@@ -597,6 +598,7 @@ declare interface StyleObject {
597
598
  mouseOverLine?: React.CSSProperties;
598
599
  regLine?: React.CSSProperties;
599
600
  dataCards?: React.CSSProperties;
601
+ modal?: React.CSSProperties;
600
602
  }
601
603
 
602
604
  declare interface TimelineDataType {
@@ -4,10 +4,10 @@ import { i as sa } from "./index-BuwmuDFJ.js";
4
4
  import { f as F } from "./index-EArKRVKg.js";
5
5
  import { i as ua } from "./index-Bwrro8-q.js";
6
6
  import { j as V, D as M } from "./DropdownSelect-BbdPQa2k.js";
7
- import { b as A, y as H, h as O, c as da, $ as K, P as Q } from "./checkIfMultiple-Y9iKaV_u.js";
7
+ import { b as A, y as H, h as O, c as da, $ as K, P as Q } from "./checkIfMultiple-CIRtG0KE.js";
8
8
  import { w as ha } from "./Spinner-D7rnnwnA.js";
9
9
  import { G as ca } from "./GraphContainer-CRqzdKu2.js";
10
- import { G as fa } from "./GraphEl-CGq1EWRn.js";
10
+ import { G as fa } from "./GraphEl-DEzobeOM.js";
11
11
  import { f as ga, a as pa, b as ma, c as Ca, t as va } from "./fetchAndParseData-BpqkBPQL.js";
12
12
  import { a as Ia, t as ba } from "./transformDataForAggregation-DEU__LUl.js";
13
13
  import { g as X } from "./getUniqValue-DsqSii6M.js";
@@ -50,8 +50,8 @@ function Ea(s) {
50
50
  noOfFiltersPerRow: h = 4,
51
51
  updateFilters: aa,
52
52
  uiMode: c = "normal",
53
- highlightDataPointSettings: p
54
- } = s, [E, U] = b(void 0), [u, ea] = b(void 0), [m, I] = b(o), [g, S] = b({}), [j, la] = b(void 0), [ta, ia] = b([]), z = B(null), W = B(o), [$, q] = b([]), G = {
53
+ highlightDataPointSettings: g
54
+ } = s, [E, U] = b(void 0), [u, ea] = b(void 0), [m, I] = b(o), [p, S] = b({}), [j, la] = b(void 0), [ta, ia] = b([]), z = B(null), W = B(o), [$, q] = b([]), G = {
55
55
  ignoreCase: !0,
56
56
  ignoreAccents: !0,
57
57
  trim: !0
@@ -98,14 +98,14 @@ function Ea(s) {
98
98
  v && S(P(v, o));
99
99
  }, [v, o]);
100
100
  const ra = R(() => {
101
- p?.column && E && ia(X(E, p.column).filter((a) => !p?.excludeValues?.includes(`${a}`)).map((a) => ({
101
+ g?.column && E && ia(X(E, g.column).filter((a) => !g?.excludeValues?.includes(`${a}`)).map((a) => ({
102
102
  value: a,
103
103
  label: a
104
104
  })));
105
105
  });
106
106
  w(() => {
107
107
  ra();
108
- }, [p]), w(() => {
108
+ }, [g]), w(() => {
109
109
  ua(W.current, o) || (I(o), W.current = o);
110
110
  }, [o]);
111
111
  const T = (a, r) => {
@@ -115,18 +115,18 @@ function Ea(s) {
115
115
  } : l));
116
116
  }, oa = u ? Ia(x ? ba(Y(u, k || []), x.keyColumn, x.aggregationColumnsSetting) : Y(u, k || []), C, C === "lineChartWithConfidenceInterval" && m ? Va(m) : m) : void 0;
117
117
  return /* @__PURE__ */ t.jsx(ca, { className: n?.classNames?.graphContainer, style: n?.styles?.graphContainer, id: n?.graphID, ref: z, "aria-label": n?.ariaLabel, backgroundColor: n?.backgroundColor ?? !1, theme: n?.theme || "light", language: n?.language || "en", width: n?.width, height: n?.height, padding: n?.padding, minHeight: n?.minHeight, relativeHeight: n?.relativeHeight, children: u || wa.filter((a) => a.geoHubMapPresentation).map((a) => a.graphID).indexOf(C) !== -1 ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
118
- g?.graphTitle || g?.graphDescription || n?.graphTitle || n?.graphDescription || n?.graphDownload || n?.dataDownload ? /* @__PURE__ */ t.jsx(xa, { styles: {
119
- title: g?.styles?.title || n?.styles?.title,
120
- description: g?.styles?.description || n?.styles?.description
118
+ p?.graphTitle || p?.graphDescription || n?.graphTitle || n?.graphDescription || n?.graphDownload || n?.dataDownload ? /* @__PURE__ */ t.jsx(xa, { styles: {
119
+ title: p?.styles?.title || n?.styles?.title,
120
+ description: p?.styles?.description || n?.styles?.description
121
121
  }, classNames: {
122
- title: g?.classNames?.title || n?.classNames?.title,
123
- description: g?.classNames?.description || n?.classNames?.description
124
- }, graphTitle: g?.graphTitle || n?.graphTitle, graphDescription: g?.graphDescription || n?.graphDescription, width: g?.width || n?.width, graphDownload: n?.graphDownload ? z : void 0, dataDownload: n?.dataDownload && u && u.length > 0 ? u : null }) : null,
125
- $.length !== 0 || (v || []).length !== 0 || (L || []).length !== 0 || p ? /* @__PURE__ */ t.jsxs("div", { className: "flex flex-wrap items-start gap-x-4 gap-y-0 w-full", children: [
122
+ title: p?.classNames?.title || n?.classNames?.title,
123
+ description: p?.classNames?.description || n?.classNames?.description
124
+ }, graphTitle: p?.graphTitle || n?.graphTitle, graphDescription: p?.graphDescription || n?.graphDescription, width: p?.width || n?.width, graphDownload: n?.graphDownload ? z : void 0, dataDownload: n?.dataDownload && u && u.length > 0 ? u : null }) : null,
125
+ $.length !== 0 || (v || []).length !== 0 || (L || []).length !== 0 || g ? /* @__PURE__ */ t.jsxs("div", { className: "flex flex-wrap items-start gap-x-4 gap-y-0 w-full", children: [
126
126
  L?.map((a, r) => /* @__PURE__ */ t.jsxs("div", { style: {
127
127
  width: a.width || `calc(${100 / h}% - ${(h - 1) / h}rem)`,
128
- flexGrow: 1,
129
- flexShrink: a.ui !== "radio" ? 0 : 1,
128
+ flexGrow: a.width ? 0 : 1,
129
+ flexShrink: a.ui !== "radio" || a.width ? 0 : 1,
130
130
  minWidth: "240px"
131
131
  }, className: "pb-4", children: [
132
132
  /* @__PURE__ */ t.jsx(A, { className: "mb-2", children: a.label || "Graph by" }),
@@ -160,8 +160,8 @@ function Ea(s) {
160
160
  ] }, r)),
161
161
  v?.map((a, r) => /* @__PURE__ */ t.jsxs("div", { style: {
162
162
  width: a.width || `calc(${100 / h}% - ${(h - 1) / h}rem)`,
163
- flexGrow: 1,
164
- flexShrink: a.ui !== "radio" ? 0 : 1,
163
+ flexGrow: a.width ? 0 : 1,
164
+ flexShrink: a.ui !== "radio" || a.width ? 0 : 1,
165
165
  minWidth: "240px"
166
166
  }, className: "pb-4", children: [
167
167
  /* @__PURE__ */ t.jsx(A, { className: "mb-2", children: a.label || `Visualize ${a.chartConfigId} by` }),
@@ -221,7 +221,7 @@ function Ea(s) {
221
221
  ] }, r)),
222
222
  $?.map((a, r) => /* @__PURE__ */ t.jsxs("div", { style: {
223
223
  width: a.width || `calc(${100 / h}% - ${(h - 1) / h}rem)`,
224
- flexGrow: 1,
224
+ flexGrow: a.width ? 0 : 1,
225
225
  flexShrink: 0,
226
226
  minWidth: "240px"
227
227
  }, className: "pb-4", children: [
@@ -241,13 +241,13 @@ function Ea(s) {
241
241
  }, children: "Select all options" }) : null
242
242
  ] })
243
243
  ] }, r)),
244
- p ? /* @__PURE__ */ t.jsxs("div", { style: {
245
- width: p.width || `calc(${100 / h}% - ${(h - 1) / h}rem)`,
246
- flexGrow: 1,
244
+ g ? /* @__PURE__ */ t.jsxs("div", { style: {
245
+ width: g.width || `calc(${100 / h}% - ${(h - 1) / h}rem)`,
246
+ flexGrow: g.width ? 0 : 1,
247
247
  flexShrink: 0,
248
248
  minWidth: "240px"
249
249
  }, className: "pb-4", children: [
250
- /* @__PURE__ */ t.jsx(A, { className: "mb-2", children: p.label || "Highlight data" }),
250
+ /* @__PURE__ */ t.jsx(A, { className: "mb-2", children: g.label || "Highlight data" }),
251
251
  /* @__PURE__ */ t.jsx(
252
252
  V,
253
253
  {
@@ -266,7 +266,7 @@ function Ea(s) {
266
266
  label: a,
267
267
  value: a
268
268
  })),
269
- defaultValue: p.defaultValues?.map((a) => ({
269
+ defaultValue: g.defaultValues?.map((a) => ({
270
270
  label: a,
271
271
  value: a
272
272
  }))
@@ -276,7 +276,7 @@ function Ea(s) {
276
276
  ] }) : null,
277
277
  /* @__PURE__ */ t.jsx(fa, { graph: C, graphData: oa, graphDataConfiguration: m, debugMode: y, readableHeader: _ || [], updateFilters: aa, settings: {
278
278
  ...n || {},
279
- ...g,
279
+ ...p,
280
280
  graphTitle: void 0,
281
281
  graphDescription: void 0,
282
282
  graphDownload: !1,