@undp/data-viz 1.5.2 → 1.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/dist/AreaChart.cjs +1 -1
  2. package/dist/AreaChart.cjs.map +1 -1
  3. package/dist/AreaChart.js +3 -2
  4. package/dist/AreaChart.js.map +1 -1
  5. package/dist/BarGraph.cjs +1 -1
  6. package/dist/BarGraph.cjs.map +1 -1
  7. package/dist/BarGraph.js +1196 -1224
  8. package/dist/BarGraph.js.map +1 -1
  9. package/dist/BeeSwarmChart.cjs +1 -1
  10. package/dist/BeeSwarmChart.cjs.map +1 -1
  11. package/dist/BeeSwarmChart.js +130 -142
  12. package/dist/BeeSwarmChart.js.map +1 -1
  13. package/dist/BiVariateChoroplethMap.cjs +1 -1
  14. package/dist/BiVariateChoroplethMap.cjs.map +1 -1
  15. package/dist/BiVariateChoroplethMap.js +41 -41
  16. package/dist/BiVariateChoroplethMap.js.map +1 -1
  17. package/dist/BulletChart.cjs +1 -1
  18. package/dist/BulletChart.cjs.map +1 -1
  19. package/dist/BulletChart.js +484 -488
  20. package/dist/BulletChart.js.map +1 -1
  21. package/dist/ButterflyChart.cjs +1 -1
  22. package/dist/ButterflyChart.cjs.map +1 -1
  23. package/dist/ButterflyChart.js +99 -99
  24. package/dist/ButterflyChart.js.map +1 -1
  25. package/dist/ChoroplethMap.cjs +1 -1
  26. package/dist/ChoroplethMap.cjs.map +1 -1
  27. package/dist/ChoroplethMap.js +125 -125
  28. package/dist/ChoroplethMap.js.map +1 -1
  29. package/dist/CirclePackingGraph.cjs +1 -1
  30. package/dist/CirclePackingGraph.js +2 -2
  31. package/dist/DataCards.cjs +2 -2
  32. package/dist/DataCards.cjs.map +1 -1
  33. package/dist/DataCards.js +6 -6
  34. package/dist/DataCards.js.map +1 -1
  35. package/dist/DataTable.cjs +1 -1
  36. package/dist/DataTable.cjs.map +1 -1
  37. package/dist/DataTable.js +66 -68
  38. package/dist/DataTable.js.map +1 -1
  39. package/dist/DifferenceLineChart.cjs +1 -1
  40. package/dist/DifferenceLineChart.cjs.map +1 -1
  41. package/dist/DifferenceLineChart.js +3 -2
  42. package/dist/DifferenceLineChart.js.map +1 -1
  43. package/dist/DonutChart.cjs +1 -1
  44. package/dist/DonutChart.cjs.map +1 -1
  45. package/dist/DonutChart.js +205 -205
  46. package/dist/DonutChart.js.map +1 -1
  47. package/dist/DotDensityMap.cjs +1 -1
  48. package/dist/DotDensityMap.cjs.map +1 -1
  49. package/dist/DotDensityMap.js +78 -81
  50. package/dist/DotDensityMap.js.map +1 -1
  51. package/dist/DualAxisLineChart.cjs +1 -1
  52. package/dist/DualAxisLineChart.cjs.map +1 -1
  53. package/dist/DualAxisLineChart.js +3 -2
  54. package/dist/DualAxisLineChart.js.map +1 -1
  55. package/dist/DumbbellChart.cjs +1 -1
  56. package/dist/DumbbellChart.cjs.map +1 -1
  57. package/dist/DumbbellChart.js +66 -67
  58. package/dist/DumbbellChart.js.map +1 -1
  59. package/dist/GeoHubMap.cjs +1 -1
  60. package/dist/GeoHubMap.js +1 -1
  61. package/dist/GeoHubMapWithLayerSelection.cjs +1 -1
  62. package/dist/GeoHubMapWithLayerSelection.js +1 -1
  63. package/dist/{GraphEl-4RUlclvW.cjs → GraphEl-BcYgMnN2.cjs} +2 -2
  64. package/dist/{GraphEl-4RUlclvW.cjs.map → GraphEl-BcYgMnN2.cjs.map} +1 -1
  65. package/dist/{GraphEl-ClIxlWa3.js → GraphEl-CMWeARJ3.js} +2 -2
  66. package/dist/{GraphEl-ClIxlWa3.js.map → GraphEl-CMWeARJ3.js.map} +1 -1
  67. package/dist/GriddedGraphs.cjs +1 -1
  68. package/dist/GriddedGraphs.js +4 -4
  69. package/dist/GriddedGraphsFromConfig.cjs +1 -1
  70. package/dist/GriddedGraphsFromConfig.js +1 -1
  71. package/dist/HeatMap.cjs +1 -1
  72. package/dist/HeatMap.cjs.map +1 -1
  73. package/dist/HeatMap.js +83 -83
  74. package/dist/HeatMap.js.map +1 -1
  75. package/dist/Histogram.cjs +1 -1
  76. package/dist/Histogram.js +1 -1
  77. package/dist/LineChartWithConfidenceInterval.cjs +1 -1
  78. package/dist/LineChartWithConfidenceInterval.cjs.map +1 -1
  79. package/dist/LineChartWithConfidenceInterval.js +7 -6
  80. package/dist/LineChartWithConfidenceInterval.js.map +1 -1
  81. package/dist/MultiGraphDashboard.cjs +1 -1
  82. package/dist/MultiGraphDashboard.js +2 -2
  83. package/dist/MultiGraphDashboardFromConfig.cjs +1 -1
  84. package/dist/MultiGraphDashboardFromConfig.js +1 -1
  85. package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
  86. package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
  87. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.cjs +1 -1
  88. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +1 -1
  89. package/dist/MultiLineAltChart.cjs +1 -1
  90. package/dist/MultiLineAltChart.cjs.map +1 -1
  91. package/dist/MultiLineAltChart.js +82 -91
  92. package/dist/MultiLineAltChart.js.map +1 -1
  93. package/dist/MultiLineChart.cjs +1 -1
  94. package/dist/MultiLineChart.cjs.map +1 -1
  95. package/dist/MultiLineChart.js +3 -2
  96. package/dist/MultiLineChart.js.map +1 -1
  97. package/dist/ParetoChart.cjs +1 -1
  98. package/dist/ParetoChart.js +1 -1
  99. package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +1 -1
  100. package/dist/PerformanceIntensiveMultiGraphDashboard.js +2 -2
  101. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +1 -1
  102. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +1 -1
  103. package/dist/RadarChart.cjs +1 -1
  104. package/dist/RadarChart.cjs.map +1 -1
  105. package/dist/RadarChart.js +124 -130
  106. package/dist/RadarChart.js.map +1 -1
  107. package/dist/SankeyChart.cjs +1 -1
  108. package/dist/SankeyChart.cjs.map +1 -1
  109. package/dist/SankeyChart.js +200 -200
  110. package/dist/SankeyChart.js.map +1 -1
  111. package/dist/ScatterPlot.cjs +1 -1
  112. package/dist/ScatterPlot.cjs.map +1 -1
  113. package/dist/ScatterPlot.js +149 -155
  114. package/dist/ScatterPlot.js.map +1 -1
  115. package/dist/SimpleLineChart.cjs +1 -1
  116. package/dist/SimpleLineChart.cjs.map +1 -1
  117. package/dist/SimpleLineChart.js +44 -43
  118. package/dist/SimpleLineChart.js.map +1 -1
  119. package/dist/SingleGraphDashboard.cjs +1 -1
  120. package/dist/SingleGraphDashboard.js +4 -4
  121. package/dist/SingleGraphDashboardFromConfig.cjs +1 -1
  122. package/dist/SingleGraphDashboardFromConfig.js +1 -1
  123. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +1 -1
  124. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +1 -1
  125. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  126. package/dist/SingleGraphDashboardThreeDGraphs.js +3 -3
  127. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +1 -1
  128. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +1 -1
  129. package/dist/SlopeChart.cjs +1 -1
  130. package/dist/SlopeChart.cjs.map +1 -1
  131. package/dist/SlopeChart.js +107 -113
  132. package/dist/SlopeChart.js.map +1 -1
  133. package/dist/SparkLine.cjs +1 -1
  134. package/dist/SparkLine.cjs.map +1 -1
  135. package/dist/SparkLine.js +3 -2
  136. package/dist/SparkLine.js.map +1 -1
  137. package/dist/StripChart.cjs +1 -1
  138. package/dist/StripChart.cjs.map +1 -1
  139. package/dist/StripChart.js +159 -159
  140. package/dist/StripChart.js.map +1 -1
  141. package/dist/ThreeDGlobe.cjs +1 -1
  142. package/dist/ThreeDGlobe.cjs.map +1 -1
  143. package/dist/ThreeDGlobe.js +3 -3
  144. package/dist/ThreeDGlobe.js.map +1 -1
  145. package/dist/TreeMapGraph.cjs +1 -1
  146. package/dist/TreeMapGraph.cjs.map +1 -1
  147. package/dist/TreeMapGraph.js +194 -200
  148. package/dist/TreeMapGraph.js.map +1 -1
  149. package/dist/XAxesLabels-Drf7M3YK.cjs +2 -0
  150. package/dist/XAxesLabels-Drf7M3YK.cjs.map +1 -0
  151. package/dist/{XAxesLabels-CaV2q-6H.js → XAxesLabels-loO78vUO.js} +19 -19
  152. package/dist/XAxesLabels-loO78vUO.js.map +1 -0
  153. package/dist/YAxesLabels-CctDydGR.cjs +2 -0
  154. package/dist/YAxesLabels-CctDydGR.cjs.map +1 -0
  155. package/dist/{YAxesLabels-CPGZjmZJ.js → YAxesLabels-DSm6I5zG.js} +16 -17
  156. package/dist/YAxesLabels-DSm6I5zG.js.map +1 -0
  157. package/dist/ensureCompleteData-DkQYPeDa.cjs +2 -0
  158. package/dist/ensureCompleteData-DkQYPeDa.cjs.map +1 -0
  159. package/dist/{ensureCompleteData-BALdOrsS.js → ensureCompleteData-DlmibgaI.js} +28 -8
  160. package/dist/ensureCompleteData-DlmibgaI.js.map +1 -0
  161. package/dist/fetchAndParseData-Ba-_CgxS.cjs +16 -0
  162. package/dist/fetchAndParseData-Ba-_CgxS.cjs.map +1 -0
  163. package/dist/fetchAndParseData-sapWbnYk.js +583 -0
  164. package/dist/fetchAndParseData-sapWbnYk.js.map +1 -0
  165. package/dist/fetchAndParseData.cjs +1 -1
  166. package/dist/fetchAndParseData.js +1 -1
  167. package/dist/getJenks-BbngDoBQ.js +19 -0
  168. package/dist/getJenks-BbngDoBQ.js.map +1 -0
  169. package/dist/getJenks-GYmdwBqm.cjs +2 -0
  170. package/dist/getJenks-GYmdwBqm.cjs.map +1 -0
  171. package/dist/getSliderMarks-9cNoRkDx.js +1023 -0
  172. package/dist/getSliderMarks-9cNoRkDx.js.map +1 -0
  173. package/dist/getSliderMarks-CRIbTGYV.cjs +6 -0
  174. package/dist/getSliderMarks-CRIbTGYV.cjs.map +1 -0
  175. package/dist/getUniqValue-DiCh_MOD.js +13 -0
  176. package/dist/getUniqValue-DiCh_MOD.js.map +1 -0
  177. package/dist/getUniqValue-RViz8tTw.cjs +2 -0
  178. package/dist/getUniqValue-RViz8tTw.cjs.map +1 -0
  179. package/dist/{index-BMgDMxKJ.js → index-37q0ULNQ.js} +44 -50
  180. package/dist/index-37q0ULNQ.js.map +1 -0
  181. package/dist/index-CVlCtJbC.cjs +2 -0
  182. package/dist/index-CVlCtJbC.cjs.map +1 -0
  183. package/dist/index.cjs +1 -1
  184. package/dist/index.d.ts +1 -1
  185. package/dist/index.js +6 -6
  186. package/dist/sort-DfK1b0F5.js +34 -0
  187. package/dist/sort-DfK1b0F5.js.map +1 -0
  188. package/dist/sort-O96oMZLb.cjs +2 -0
  189. package/dist/sort-O96oMZLb.cjs.map +1 -0
  190. package/dist/transformData.cjs +1 -1
  191. package/dist/transformData.js +3 -3
  192. package/dist/transformDataForAggregation-KXGm6flX.cjs +2 -0
  193. package/dist/{transformDataForAggregation-BVxVu4yY.cjs.map → transformDataForAggregation-KXGm6flX.cjs.map} +1 -1
  194. package/dist/{transformDataForAggregation-1BYVFqvF.js → transformDataForAggregation-sBpdlX8n.js} +40 -44
  195. package/dist/{transformDataForAggregation-1BYVFqvF.js.map → transformDataForAggregation-sBpdlX8n.js.map} +1 -1
  196. package/dist/{transformDataForGraphFromFile-BC9Ha8hF.js → transformDataForGraphFromFile-ComYvzuz.js} +3 -3
  197. package/dist/{transformDataForGraphFromFile-BC9Ha8hF.js.map → transformDataForGraphFromFile-ComYvzuz.js.map} +1 -1
  198. package/dist/{transformDataForGraphFromFile-b41aNQYY.cjs → transformDataForGraphFromFile-DVZodTHd.cjs} +2 -2
  199. package/dist/{transformDataForGraphFromFile-b41aNQYY.cjs.map → transformDataForGraphFromFile-DVZodTHd.cjs.map} +1 -1
  200. package/dist/uniqBy-BHy4I8PK.js +8 -0
  201. package/dist/uniqBy-BHy4I8PK.js.map +1 -0
  202. package/dist/uniqBy-O05lp2S5.cjs +2 -0
  203. package/dist/uniqBy-O05lp2S5.cjs.map +1 -0
  204. package/dist/utils.cjs +1 -1
  205. package/dist/utils.d.ts +1 -1
  206. package/dist/utils.js +2 -2
  207. package/package.json +1 -7
  208. package/dist/XAxesLabels-CaV2q-6H.js.map +0 -1
  209. package/dist/XAxesLabels-OjBNl_lS.cjs +0 -2
  210. package/dist/XAxesLabels-OjBNl_lS.cjs.map +0 -1
  211. package/dist/YAxesLabels-CPGZjmZJ.js.map +0 -1
  212. package/dist/YAxesLabels-D8IydyZj.cjs +0 -2
  213. package/dist/YAxesLabels-D8IydyZj.cjs.map +0 -1
  214. package/dist/ensureCompleteData-BALdOrsS.js.map +0 -1
  215. package/dist/ensureCompleteData-BU5Zlccy.cjs +0 -2
  216. package/dist/ensureCompleteData-BU5Zlccy.cjs.map +0 -1
  217. package/dist/fetchAndParseData-DBOl1Icl.js +0 -1196
  218. package/dist/fetchAndParseData-DBOl1Icl.js.map +0 -1
  219. package/dist/fetchAndParseData-Dcy7AS_0.cjs +0 -16
  220. package/dist/fetchAndParseData-Dcy7AS_0.cjs.map +0 -1
  221. package/dist/getJenks-DW96UYNE.js +0 -23
  222. package/dist/getJenks-DW96UYNE.js.map +0 -1
  223. package/dist/getJenks-vofIZmeb.cjs +0 -2
  224. package/dist/getJenks-vofIZmeb.cjs.map +0 -1
  225. package/dist/getSliderMarks-C0jptXeP.js +0 -1054
  226. package/dist/getSliderMarks-C0jptXeP.js.map +0 -1
  227. package/dist/getSliderMarks-CtsEXiLV.cjs +0 -6
  228. package/dist/getSliderMarks-CtsEXiLV.cjs.map +0 -1
  229. package/dist/getUniqValue-CfuE_l9c.cjs +0 -2
  230. package/dist/getUniqValue-CfuE_l9c.cjs.map +0 -1
  231. package/dist/getUniqValue-CttuU_wn.js +0 -20
  232. package/dist/getUniqValue-CttuU_wn.js.map +0 -1
  233. package/dist/index-AqnpA7_O.js +0 -631
  234. package/dist/index-AqnpA7_O.js.map +0 -1
  235. package/dist/index-BJOeaYTk.cjs +0 -2
  236. package/dist/index-BJOeaYTk.cjs.map +0 -1
  237. package/dist/index-BMgDMxKJ.js.map +0 -1
  238. package/dist/index-DYH8g9WA.cjs +0 -2
  239. package/dist/index-DYH8g9WA.cjs.map +0 -1
  240. package/dist/index-Da2GUKrr.cjs +0 -2
  241. package/dist/index-Da2GUKrr.cjs.map +0 -1
  242. package/dist/index-fwdktvAS.js +0 -707
  243. package/dist/index-fwdktvAS.js.map +0 -1
  244. package/dist/transformDataForAggregation-BVxVu4yY.cjs +0 -2
@@ -1,5 +1,5 @@
1
- import { f as p, a as i, b as m, c as D } from "./fetchAndParseData-DBOl1Icl.js";
2
- import { a as l } from "./transformDataForAggregation-1BYVFqvF.js";
1
+ import { f as p, a as i, b as m, c as D } from "./fetchAndParseData-sapWbnYk.js";
2
+ import { a as l } from "./transformDataForAggregation-sBpdlX8n.js";
3
3
  async function g(r, o, f, s, c, t, n, e, h) {
4
4
  try {
5
5
  const a = await (typeof r == "string" ? s === "json" ? p(r, t, e, !1) : s === "api" ? i(
@@ -21,4 +21,4 @@ async function g(r, o, f, s, c, t, n, e, h) {
21
21
  export {
22
22
  g as t
23
23
  };
24
- //# sourceMappingURL=transformDataForGraphFromFile-BC9Ha8hF.js.map
24
+ //# sourceMappingURL=transformDataForGraphFromFile-ComYvzuz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformDataForGraphFromFile-BC9Ha8hF.js","sources":["../src/Utils/transformData/transformDataForGraphFromFile.ts"],"sourcesContent":["import {\r\n fetchAndParseJSON,\r\n fetchAndParseCSV,\r\n fetchAndTransformDataFromAPI,\r\n fetchAndParseMultipleDataSources,\r\n} from '../fetchAndParseData';\r\n\r\nimport { transformDataForGraph } from './transformDataForGraph';\r\n\r\nimport {\r\n ColumnConfigurationDataType,\r\n FileSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphType,\r\n} from '@/Types';\r\n/**\r\n * Fetches data from a given URL or multiple data sources, processes it according to the specified graph configuration,\r\n * and formats it for use in a graph.\r\n *\r\n * This function supports different file types (CSV, JSON, and API), and can handle multiple data sources. It applies\r\n * any necessary data transformations and column formatting, then prepares the data for visualization in the specified graph.\r\n *\r\n * @param dataURL - The URL or array of data sources to fetch data from. If it's a string, it represents the URL to fetch data from.\r\n * If it's an array, it represents multiple data sources with different types (CSV, JSON, API).\r\n * @param dataConfiguration - The graph configuration data used to determine how the data should be formatted for the graph.\r\n * @param graph - The type of graph to be used (e.g., lineChart, barChart).\r\n * @param fileType - The type of the file being fetched. Can be 'csv', 'json', or 'api'. This parameter is ignored if `dataURL` is an array.\r\n * @param delimiter - The delimiter used in CSV files (default is ',' if not provided).\r\n * @param columnsToArray - Configuration for columns that need to be transformed into arrays (optional).\r\n * @param apiHeaders - Headers for the API request (optional).\r\n * @param dataTransformation - A Handlebars template used for transforming the data (optional).\r\n * @param idColumnTitle - The title of the ID column when merging multiple data sources (optional).\r\n *\r\n * @returns A Promise that resolves to the transformed data ready for the graph, or null if an error occurs.\r\n *\r\n * @throws {Error} Throws an error if the data fetching or processing fails.\r\n *\r\n * @example\r\n * const dataURL = 'https://example.com/data.json';\r\n * const dataConfiguration = [\r\n * { column: 'value', chartConfigId: 'size' },\r\n * { column: 'category', chartConfigId: 'label' },\r\n * ];\r\n * const graph = 'barChart';\r\n * transformDataForGraphFromFile(dataURL, dataConfiguration, graph, 'json')\r\n * .then(data => {\r\n * console.log('Formatted Data:', data);\r\n * })\r\n * .catch(error => {\r\n * console.error('Error:', error);\r\n * });\r\n */\r\nexport async function transformDataForGraphFromFile(\r\n dataURL: string | FileSettingsDataType[],\r\n dataConfiguration: GraphConfigurationDataType[],\r\n graph: GraphType,\r\n fileType?: 'csv' | 'json' | 'api',\r\n delimiter?: string,\r\n columnsToArray?: ColumnConfigurationDataType[],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n apiHeaders?: any,\r\n dataTransformation?: string,\r\n idColumnTitle?: string,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n): Promise<any> {\r\n // Ensure the function returns a Promise\r\n try {\r\n const fetchedData = await (typeof dataURL === 'string'\r\n ? fileType === 'json'\r\n ? fetchAndParseJSON(dataURL, columnsToArray, dataTransformation, false)\r\n : fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataURL,\r\n apiHeaders,\r\n columnsToArray,\r\n dataTransformation,\r\n false,\r\n )\r\n : fetchAndParseCSV(dataURL, dataTransformation, columnsToArray, false, delimiter, true)\r\n : fetchAndParseMultipleDataSources(dataURL, idColumnTitle));\r\n\r\n const formattedData = transformDataForGraph(\r\n fetchedData,\r\n graph,\r\n dataConfiguration as GraphConfigurationDataType[],\r\n );\r\n return formattedData;\r\n } catch (error) {\r\n console.error('Error fetching or processing data', error);\r\n return null; // Return null in case of any errors\r\n }\r\n}\r\n"],"names":["transformDataForGraphFromFile","dataURL","dataConfiguration","graph","fileType","delimiter","columnsToArray","apiHeaders","dataTransformation","idColumnTitle","fetchedData","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformDataForGraph","error"],"mappings":";;AAoDA,eAAsBA,EACpBC,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GAEc;AAEd,MAAI;AACF,UAAMC,IAAc,OAAO,OAAOT,KAAY,WAC1CG,MAAa,SACXO,EAAkBV,GAASK,GAAgBE,GAAoB,EAAK,IACpEJ,MAAa,QACXQ;AAAA,MACEX;AAAA,MACAM;AAAA,MACAD;AAAA,MACAE;AAAA,MACA;AAAA,IAAA,IAEFK,EAAiBZ,GAASO,GAAoBF,GAAgB,IAAOD,GAAW,EAAI,IACxFS,EAAiCb,GAASQ,CAAa;AAO3D,WALsBM;AAAA,MACpBL;AAAA,MACAP;AAAA,MACAD;AAAA,IAAA;AAAA,EAGJ,SAASc,GAAO;AACd,mBAAQ,MAAM,qCAAqCA,CAAK,GACjD;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"transformDataForGraphFromFile-ComYvzuz.js","sources":["../src/Utils/transformData/transformDataForGraphFromFile.ts"],"sourcesContent":["import {\r\n fetchAndParseJSON,\r\n fetchAndParseCSV,\r\n fetchAndTransformDataFromAPI,\r\n fetchAndParseMultipleDataSources,\r\n} from '../fetchAndParseData';\r\n\r\nimport { transformDataForGraph } from './transformDataForGraph';\r\n\r\nimport {\r\n ColumnConfigurationDataType,\r\n FileSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphType,\r\n} from '@/Types';\r\n/**\r\n * Fetches data from a given URL or multiple data sources, processes it according to the specified graph configuration,\r\n * and formats it for use in a graph.\r\n *\r\n * This function supports different file types (CSV, JSON, and API), and can handle multiple data sources. It applies\r\n * any necessary data transformations and column formatting, then prepares the data for visualization in the specified graph.\r\n *\r\n * @param dataURL - The URL or array of data sources to fetch data from. If it's a string, it represents the URL to fetch data from.\r\n * If it's an array, it represents multiple data sources with different types (CSV, JSON, API).\r\n * @param dataConfiguration - The graph configuration data used to determine how the data should be formatted for the graph.\r\n * @param graph - The type of graph to be used (e.g., lineChart, barChart).\r\n * @param fileType - The type of the file being fetched. Can be 'csv', 'json', or 'api'. This parameter is ignored if `dataURL` is an array.\r\n * @param delimiter - The delimiter used in CSV files (default is ',' if not provided).\r\n * @param columnsToArray - Configuration for columns that need to be transformed into arrays (optional).\r\n * @param apiHeaders - Headers for the API request (optional).\r\n * @param dataTransformation - A Handlebars template used for transforming the data (optional).\r\n * @param idColumnTitle - The title of the ID column when merging multiple data sources (optional).\r\n *\r\n * @returns A Promise that resolves to the transformed data ready for the graph, or null if an error occurs.\r\n *\r\n * @throws {Error} Throws an error if the data fetching or processing fails.\r\n *\r\n * @example\r\n * const dataURL = 'https://example.com/data.json';\r\n * const dataConfiguration = [\r\n * { column: 'value', chartConfigId: 'size' },\r\n * { column: 'category', chartConfigId: 'label' },\r\n * ];\r\n * const graph = 'barChart';\r\n * transformDataForGraphFromFile(dataURL, dataConfiguration, graph, 'json')\r\n * .then(data => {\r\n * console.log('Formatted Data:', data);\r\n * })\r\n * .catch(error => {\r\n * console.error('Error:', error);\r\n * });\r\n */\r\nexport async function transformDataForGraphFromFile(\r\n dataURL: string | FileSettingsDataType[],\r\n dataConfiguration: GraphConfigurationDataType[],\r\n graph: GraphType,\r\n fileType?: 'csv' | 'json' | 'api',\r\n delimiter?: string,\r\n columnsToArray?: ColumnConfigurationDataType[],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n apiHeaders?: any,\r\n dataTransformation?: string,\r\n idColumnTitle?: string,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n): Promise<any> {\r\n // Ensure the function returns a Promise\r\n try {\r\n const fetchedData = await (typeof dataURL === 'string'\r\n ? fileType === 'json'\r\n ? fetchAndParseJSON(dataURL, columnsToArray, dataTransformation, false)\r\n : fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataURL,\r\n apiHeaders,\r\n columnsToArray,\r\n dataTransformation,\r\n false,\r\n )\r\n : fetchAndParseCSV(dataURL, dataTransformation, columnsToArray, false, delimiter, true)\r\n : fetchAndParseMultipleDataSources(dataURL, idColumnTitle));\r\n\r\n const formattedData = transformDataForGraph(\r\n fetchedData,\r\n graph,\r\n dataConfiguration as GraphConfigurationDataType[],\r\n );\r\n return formattedData;\r\n } catch (error) {\r\n console.error('Error fetching or processing data', error);\r\n return null; // Return null in case of any errors\r\n }\r\n}\r\n"],"names":["transformDataForGraphFromFile","dataURL","dataConfiguration","graph","fileType","delimiter","columnsToArray","apiHeaders","dataTransformation","idColumnTitle","fetchedData","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformDataForGraph","error"],"mappings":";;AAoDA,eAAsBA,EACpBC,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GAEc;AAEd,MAAI;AACF,UAAMC,IAAc,OAAO,OAAOT,KAAY,WAC1CG,MAAa,SACXO,EAAkBV,GAASK,GAAgBE,GAAoB,EAAK,IACpEJ,MAAa,QACXQ;AAAA,MACEX;AAAA,MACAM;AAAA,MACAD;AAAA,MACAE;AAAA,MACA;AAAA,IAAA,IAEFK,EAAiBZ,GAASO,GAAoBF,GAAgB,IAAOD,GAAW,EAAI,IACxFS,EAAiCb,GAASQ,CAAa;AAO3D,WALsBM;AAAA,MACpBL;AAAA,MACAP;AAAA,MACAD;AAAA,IAAA;AAAA,EAGJ,SAASc,GAAO;AACd,mBAAQ,MAAM,qCAAqCA,CAAK,GACjD;AAAA,EACT;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("./fetchAndParseData-Dcy7AS_0.cjs"),D=require("./transformDataForAggregation-BVxVu4yY.cjs");async function F(r,n,c,s,f,e,h,a,i){try{const o=await(typeof r=="string"?s==="json"?t.fetchAndParseJSON(r,e,a,!1):s==="api"?t.fetchAndTransformDataFromAPI(r,h,e,a,!1):t.fetchAndParseCSV(r,a,e,!1,f,!0):t.fetchAndParseMultipleDataSources(r,i));return D.transformDataForGraph(o,c,n)}catch(o){return console.error("Error fetching or processing data",o),null}}exports.transformDataForGraphFromFile=F;
2
- //# sourceMappingURL=transformDataForGraphFromFile-b41aNQYY.cjs.map
1
+ "use strict";const t=require("./fetchAndParseData-Ba-_CgxS.cjs"),D=require("./transformDataForAggregation-KXGm6flX.cjs");async function F(r,n,c,s,f,e,h,a,i){try{const o=await(typeof r=="string"?s==="json"?t.fetchAndParseJSON(r,e,a,!1):s==="api"?t.fetchAndTransformDataFromAPI(r,h,e,a,!1):t.fetchAndParseCSV(r,a,e,!1,f,!0):t.fetchAndParseMultipleDataSources(r,i));return D.transformDataForGraph(o,c,n)}catch(o){return console.error("Error fetching or processing data",o),null}}exports.transformDataForGraphFromFile=F;
2
+ //# sourceMappingURL=transformDataForGraphFromFile-DVZodTHd.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformDataForGraphFromFile-b41aNQYY.cjs","sources":["../src/Utils/transformData/transformDataForGraphFromFile.ts"],"sourcesContent":["import {\r\n fetchAndParseJSON,\r\n fetchAndParseCSV,\r\n fetchAndTransformDataFromAPI,\r\n fetchAndParseMultipleDataSources,\r\n} from '../fetchAndParseData';\r\n\r\nimport { transformDataForGraph } from './transformDataForGraph';\r\n\r\nimport {\r\n ColumnConfigurationDataType,\r\n FileSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphType,\r\n} from '@/Types';\r\n/**\r\n * Fetches data from a given URL or multiple data sources, processes it according to the specified graph configuration,\r\n * and formats it for use in a graph.\r\n *\r\n * This function supports different file types (CSV, JSON, and API), and can handle multiple data sources. It applies\r\n * any necessary data transformations and column formatting, then prepares the data for visualization in the specified graph.\r\n *\r\n * @param dataURL - The URL or array of data sources to fetch data from. If it's a string, it represents the URL to fetch data from.\r\n * If it's an array, it represents multiple data sources with different types (CSV, JSON, API).\r\n * @param dataConfiguration - The graph configuration data used to determine how the data should be formatted for the graph.\r\n * @param graph - The type of graph to be used (e.g., lineChart, barChart).\r\n * @param fileType - The type of the file being fetched. Can be 'csv', 'json', or 'api'. This parameter is ignored if `dataURL` is an array.\r\n * @param delimiter - The delimiter used in CSV files (default is ',' if not provided).\r\n * @param columnsToArray - Configuration for columns that need to be transformed into arrays (optional).\r\n * @param apiHeaders - Headers for the API request (optional).\r\n * @param dataTransformation - A Handlebars template used for transforming the data (optional).\r\n * @param idColumnTitle - The title of the ID column when merging multiple data sources (optional).\r\n *\r\n * @returns A Promise that resolves to the transformed data ready for the graph, or null if an error occurs.\r\n *\r\n * @throws {Error} Throws an error if the data fetching or processing fails.\r\n *\r\n * @example\r\n * const dataURL = 'https://example.com/data.json';\r\n * const dataConfiguration = [\r\n * { column: 'value', chartConfigId: 'size' },\r\n * { column: 'category', chartConfigId: 'label' },\r\n * ];\r\n * const graph = 'barChart';\r\n * transformDataForGraphFromFile(dataURL, dataConfiguration, graph, 'json')\r\n * .then(data => {\r\n * console.log('Formatted Data:', data);\r\n * })\r\n * .catch(error => {\r\n * console.error('Error:', error);\r\n * });\r\n */\r\nexport async function transformDataForGraphFromFile(\r\n dataURL: string | FileSettingsDataType[],\r\n dataConfiguration: GraphConfigurationDataType[],\r\n graph: GraphType,\r\n fileType?: 'csv' | 'json' | 'api',\r\n delimiter?: string,\r\n columnsToArray?: ColumnConfigurationDataType[],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n apiHeaders?: any,\r\n dataTransformation?: string,\r\n idColumnTitle?: string,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n): Promise<any> {\r\n // Ensure the function returns a Promise\r\n try {\r\n const fetchedData = await (typeof dataURL === 'string'\r\n ? fileType === 'json'\r\n ? fetchAndParseJSON(dataURL, columnsToArray, dataTransformation, false)\r\n : fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataURL,\r\n apiHeaders,\r\n columnsToArray,\r\n dataTransformation,\r\n false,\r\n )\r\n : fetchAndParseCSV(dataURL, dataTransformation, columnsToArray, false, delimiter, true)\r\n : fetchAndParseMultipleDataSources(dataURL, idColumnTitle));\r\n\r\n const formattedData = transformDataForGraph(\r\n fetchedData,\r\n graph,\r\n dataConfiguration as GraphConfigurationDataType[],\r\n );\r\n return formattedData;\r\n } catch (error) {\r\n console.error('Error fetching or processing data', error);\r\n return null; // Return null in case of any errors\r\n }\r\n}\r\n"],"names":["transformDataForGraphFromFile","dataURL","dataConfiguration","graph","fileType","delimiter","columnsToArray","apiHeaders","dataTransformation","idColumnTitle","fetchedData","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformDataForGraph","error"],"mappings":"yHAoDA,eAAsBA,EACpBC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EAEc,CAEd,GAAI,CACF,MAAMC,EAAc,MAAO,OAAOT,GAAY,SAC1CG,IAAa,OACXO,EAAAA,kBAAkBV,EAASK,EAAgBE,EAAoB,EAAK,EACpEJ,IAAa,MACXQ,EAAAA,6BACEX,EACAM,EACAD,EACAE,EACA,EAAA,EAEFK,mBAAiBZ,EAASO,EAAoBF,EAAgB,GAAOD,EAAW,EAAI,EACxFS,EAAAA,iCAAiCb,EAASQ,CAAa,GAO3D,OALsBM,EAAAA,sBACpBL,EACAP,EACAD,CAAA,CAGJ,OAASc,EAAO,CACd,eAAQ,MAAM,oCAAqCA,CAAK,EACjD,IACT,CACF"}
1
+ {"version":3,"file":"transformDataForGraphFromFile-DVZodTHd.cjs","sources":["../src/Utils/transformData/transformDataForGraphFromFile.ts"],"sourcesContent":["import {\r\n fetchAndParseJSON,\r\n fetchAndParseCSV,\r\n fetchAndTransformDataFromAPI,\r\n fetchAndParseMultipleDataSources,\r\n} from '../fetchAndParseData';\r\n\r\nimport { transformDataForGraph } from './transformDataForGraph';\r\n\r\nimport {\r\n ColumnConfigurationDataType,\r\n FileSettingsDataType,\r\n GraphConfigurationDataType,\r\n GraphType,\r\n} from '@/Types';\r\n/**\r\n * Fetches data from a given URL or multiple data sources, processes it according to the specified graph configuration,\r\n * and formats it for use in a graph.\r\n *\r\n * This function supports different file types (CSV, JSON, and API), and can handle multiple data sources. It applies\r\n * any necessary data transformations and column formatting, then prepares the data for visualization in the specified graph.\r\n *\r\n * @param dataURL - The URL or array of data sources to fetch data from. If it's a string, it represents the URL to fetch data from.\r\n * If it's an array, it represents multiple data sources with different types (CSV, JSON, API).\r\n * @param dataConfiguration - The graph configuration data used to determine how the data should be formatted for the graph.\r\n * @param graph - The type of graph to be used (e.g., lineChart, barChart).\r\n * @param fileType - The type of the file being fetched. Can be 'csv', 'json', or 'api'. This parameter is ignored if `dataURL` is an array.\r\n * @param delimiter - The delimiter used in CSV files (default is ',' if not provided).\r\n * @param columnsToArray - Configuration for columns that need to be transformed into arrays (optional).\r\n * @param apiHeaders - Headers for the API request (optional).\r\n * @param dataTransformation - A Handlebars template used for transforming the data (optional).\r\n * @param idColumnTitle - The title of the ID column when merging multiple data sources (optional).\r\n *\r\n * @returns A Promise that resolves to the transformed data ready for the graph, or null if an error occurs.\r\n *\r\n * @throws {Error} Throws an error if the data fetching or processing fails.\r\n *\r\n * @example\r\n * const dataURL = 'https://example.com/data.json';\r\n * const dataConfiguration = [\r\n * { column: 'value', chartConfigId: 'size' },\r\n * { column: 'category', chartConfigId: 'label' },\r\n * ];\r\n * const graph = 'barChart';\r\n * transformDataForGraphFromFile(dataURL, dataConfiguration, graph, 'json')\r\n * .then(data => {\r\n * console.log('Formatted Data:', data);\r\n * })\r\n * .catch(error => {\r\n * console.error('Error:', error);\r\n * });\r\n */\r\nexport async function transformDataForGraphFromFile(\r\n dataURL: string | FileSettingsDataType[],\r\n dataConfiguration: GraphConfigurationDataType[],\r\n graph: GraphType,\r\n fileType?: 'csv' | 'json' | 'api',\r\n delimiter?: string,\r\n columnsToArray?: ColumnConfigurationDataType[],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n apiHeaders?: any,\r\n dataTransformation?: string,\r\n idColumnTitle?: string,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n): Promise<any> {\r\n // Ensure the function returns a Promise\r\n try {\r\n const fetchedData = await (typeof dataURL === 'string'\r\n ? fileType === 'json'\r\n ? fetchAndParseJSON(dataURL, columnsToArray, dataTransformation, false)\r\n : fileType === 'api'\r\n ? fetchAndTransformDataFromAPI(\r\n dataURL,\r\n apiHeaders,\r\n columnsToArray,\r\n dataTransformation,\r\n false,\r\n )\r\n : fetchAndParseCSV(dataURL, dataTransformation, columnsToArray, false, delimiter, true)\r\n : fetchAndParseMultipleDataSources(dataURL, idColumnTitle));\r\n\r\n const formattedData = transformDataForGraph(\r\n fetchedData,\r\n graph,\r\n dataConfiguration as GraphConfigurationDataType[],\r\n );\r\n return formattedData;\r\n } catch (error) {\r\n console.error('Error fetching or processing data', error);\r\n return null; // Return null in case of any errors\r\n }\r\n}\r\n"],"names":["transformDataForGraphFromFile","dataURL","dataConfiguration","graph","fileType","delimiter","columnsToArray","apiHeaders","dataTransformation","idColumnTitle","fetchedData","fetchAndParseJSON","fetchAndTransformDataFromAPI","fetchAndParseCSV","fetchAndParseMultipleDataSources","transformDataForGraph","error"],"mappings":"yHAoDA,eAAsBA,EACpBC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EAEc,CAEd,GAAI,CACF,MAAMC,EAAc,MAAO,OAAOT,GAAY,SAC1CG,IAAa,OACXO,EAAAA,kBAAkBV,EAASK,EAAgBE,EAAoB,EAAK,EACpEJ,IAAa,MACXQ,EAAAA,6BACEX,EACAM,EACAD,EACAE,EACA,EAAA,EAEFK,mBAAiBZ,EAASO,EAAoBF,EAAgB,GAAOD,EAAW,EAAI,EACxFS,EAAAA,iCAAiCb,EAASQ,CAAa,GAO3D,OALsBM,EAAAA,sBACpBL,EACAP,EACAD,CAAA,CAGJ,OAASc,EAAO,CACd,eAAQ,MAAM,oCAAqCA,CAAK,EACjD,IACT,CACF"}
@@ -0,0 +1,8 @@
1
+ function a(t, u, n = !1) {
2
+ const l = t.map((e) => e[u]).filter((e) => n ? e != null && e !== void 0 : !0);
3
+ return [...new Set(l)];
4
+ }
5
+ export {
6
+ a as u
7
+ };
8
+ //# sourceMappingURL=uniqBy-BHy4I8PK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniqBy-BHy4I8PK.js","sources":["../src/Utils/uniqBy.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport function uniqBy<T extends Record<string, any>>(obj: T[], key: keyof T, filterNully = false) {\r\n const defaultValue = obj\r\n .map(d => d[key])\r\n .filter(d => (filterNully ? d != null && d !== undefined : true));\r\n return [...new Set(defaultValue)];\r\n}\r\n"],"names":["uniqBy","obj","key","filterNully","defaultValue","d"],"mappings":"AACO,SAASA,EAAsCC,GAAUC,GAAcC,IAAc,IAAO;AACjG,QAAMC,IAAeH,EAClB,IAAI,CAAAI,MAAKA,EAAEH,CAAG,CAAC,EACf,OAAO,OAAMC,IAAcE,KAAK,QAAQA,MAAM,SAAY,EAAK;AAClE,SAAO,CAAC,GAAG,IAAI,IAAID,CAAY,CAAC;AAClC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";function l(t,u,n=!1){const i=t.map(e=>e[u]).filter(e=>n?e!=null&&e!==void 0:!0);return[...new Set(i)]}exports.uniqBy=l;
2
+ //# sourceMappingURL=uniqBy-O05lp2S5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uniqBy-O05lp2S5.cjs","sources":["../src/Utils/uniqBy.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport function uniqBy<T extends Record<string, any>>(obj: T[], key: keyof T, filterNully = false) {\r\n const defaultValue = obj\r\n .map(d => d[key])\r\n .filter(d => (filterNully ? d != null && d !== undefined : true));\r\n return [...new Set(defaultValue)];\r\n}\r\n"],"names":["uniqBy","obj","key","filterNully","defaultValue","d"],"mappings":"aACO,SAASA,EAAsCC,EAAUC,EAAcC,EAAc,GAAO,CACjG,MAAMC,EAAeH,EAClB,IAAII,GAAKA,EAAEH,CAAG,CAAC,EACf,UAAaC,EAAcE,GAAK,MAAQA,IAAM,OAAY,EAAK,EAClE,MAAO,CAAC,GAAG,IAAI,IAAID,CAAY,CAAC,CAClC"}
package/dist/utils.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),e=require("./removeOutliers-WELHHqiI.cjs"),n=require("./numberFormattingFunction-02t-wJta.cjs"),o=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),t=require("./getJenks-vofIZmeb.cjs"),i=require("./imageDownload-CgDcm1Sj.cjs"),a=require("./svgDownload-D9zEGjTF.cjs"),l=require("./excelDownload-BQpsCa62.cjs"),g=require("./getUniqValue-CfuE_l9c.cjs"),u=require("./getGraphList-gf02xgT2.cjs");exports.checkIfNullOrUndefined=r.checkIfNullOrUndefined;exports.generateEmbedLink=e.generateEmbedLink;exports.generateIframeCode=e.generateIframeCode;exports.getPercentileValue=e.getPercentileValue;exports.getQueryParamsFromLink=e.getQueryParamsFromLink;exports.removeOutliers=e.removeOutliers;exports.numberFormattingFunction=n.numberFormattingFunction;exports.getTextColorBasedOnBgColor=o.getTextColorBasedOnBgColor;exports.getJenks=t.getJenks;exports.imageDownload=i.imageDownload;exports.svgDownload=a.svgDownload;exports.excelDownload=l.excelDownload;exports.getUniqValue=g.getUniqValue;exports.graphList=u.graphList;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./checkIfNullOrUndefined-BCW3Y1ML.cjs"),e=require("./removeOutliers-WELHHqiI.cjs"),n=require("./numberFormattingFunction-02t-wJta.cjs"),o=require("./getTextColorBasedOnBgColor-nqY-bsM_.cjs"),t=require("./getJenks-GYmdwBqm.cjs"),i=require("./imageDownload-CgDcm1Sj.cjs"),a=require("./svgDownload-D9zEGjTF.cjs"),l=require("./excelDownload-BQpsCa62.cjs"),g=require("./getUniqValue-RViz8tTw.cjs"),u=require("./getGraphList-gf02xgT2.cjs");exports.checkIfNullOrUndefined=r.checkIfNullOrUndefined;exports.generateEmbedLink=e.generateEmbedLink;exports.generateIframeCode=e.generateIframeCode;exports.getPercentileValue=e.getPercentileValue;exports.getQueryParamsFromLink=e.getQueryParamsFromLink;exports.removeOutliers=e.removeOutliers;exports.numberFormattingFunction=n.numberFormattingFunction;exports.getTextColorBasedOnBgColor=o.getTextColorBasedOnBgColor;exports.getJenks=t.getJenks;exports.imageDownload=i.imageDownload;exports.svgDownload=a.svgDownload;exports.excelDownload=l.excelDownload;exports.getUniqValue=g.getUniqValue;exports.graphList=u.graphList;
2
2
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.d.ts CHANGED
@@ -126,7 +126,7 @@ export declare const getTextColorBasedOnBgColor: (bgColor: string) => "#000" | "
126
126
  * const csvData = [{ name: 'Alice' }, { name: 'Bob' }, { name: 'Alice' }];
127
127
  * getUniqValue(csvData, 'name'); // Returns: ['Alice', 'Bob']
128
128
  */
129
- export declare function getUniqValue(csvData: any, column: string): any[];
129
+ export declare function getUniqValue(csvData: any, column: string): (string | number)[];
130
130
 
131
131
  export declare const graphList: {
132
132
  graphName: string;
package/dist/utils.js CHANGED
@@ -2,11 +2,11 @@ import { c as o } from "./checkIfNullOrUndefined-DmfiKkNw.js";
2
2
  import { g as t, a as s, b as m, c as n, r as g } from "./removeOutliers-DR48e-18.js";
3
3
  import { n as l } from "./numberFormattingFunction-14YCbkN2.js";
4
4
  import { g as i } from "./getTextColorBasedOnBgColor-B6Nk2WBf.js";
5
- import { g as d } from "./getJenks-DW96UYNE.js";
5
+ import { g as d } from "./getJenks-BbngDoBQ.js";
6
6
  import { i as u } from "./imageDownload-Dcci2LEy.js";
7
7
  import { s as b } from "./svgDownload-C2-E3yf2.js";
8
8
  import { e as C } from "./excelDownload-BOA-lskf.js";
9
- import { g as F } from "./getUniqValue-CttuU_wn.js";
9
+ import { g as F } from "./getUniqValue-DiCh_MOD.js";
10
10
  import { g as O } from "./getGraphList-DuColTJM.js";
11
11
  export {
12
12
  o as checkIfNullOrUndefined,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@undp/data-viz",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "main": "./dist/index.cjs",
5
5
  "module": "./dist/index.js",
6
6
  "browser": "./dist/index.umd.js",
@@ -450,12 +450,9 @@
450
450
  "fast-deep-equal": "^3.1.3",
451
451
  "html-to-image": "^1.11.13",
452
452
  "lodash.flattendeep": "^4.4.0",
453
- "lodash.groupby": "^4.6.0",
454
453
  "lodash.intersection": "^4.4.0",
455
454
  "lodash.orderby": "^4.6.0",
456
- "lodash.sortby": "^4.7.0",
457
455
  "lodash.sum": "^4.0.2",
458
- "lodash.uniqby": "^4.7.0",
459
456
  "motion": "^12.23.12",
460
457
  "papaparse": "^5.5.3",
461
458
  "react-csv": "^2.2.2",
@@ -567,13 +564,10 @@
567
564
  "@types/file-saver": "^2.0.7",
568
565
  "@types/geojson": "^7946.0.16",
569
566
  "@types/lodash.flattendeep": "^4.4.9",
570
- "@types/lodash.groupby": "^4.6.9",
571
567
  "@types/lodash.intersection": "^4.4.9",
572
568
  "@types/lodash.orderby": "^4.6.9",
573
- "@types/lodash.sortby": "^4.7.9",
574
569
  "@types/lodash.sum": "^4.0.9",
575
570
  "@types/lodash.uniq": "^4.5.9",
576
- "@types/lodash.uniqby": "^4.7.9",
577
571
  "@types/node": "^24.3.0",
578
572
  "@types/papaparse": "^5.3.16",
579
573
  "@types/react": "^19.1.12",
@@ -1 +0,0 @@
1
- {"version":3,"file":"XAxesLabels-CaV2q-6H.js","sources":["../src/Components/Elements/Axes/XAxesLabels.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\nimport { motion } from 'motion/react';\r\n\r\nimport { AnimateDataType } from '@/Types';\r\n\r\ninterface Props {\r\n value: number | string;\r\n y: number;\r\n x: number;\r\n width: number;\r\n height: number;\r\n style?: React.CSSProperties;\r\n className?: string;\r\n alignment?: 'top' | 'bottom';\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function XAxesLabels(props: Props) {\r\n const {\r\n value,\r\n y,\r\n x,\r\n style,\r\n className,\r\n width,\r\n height,\r\n alignment = 'top',\r\n animate,\r\n isInView,\r\n } = props;\r\n return (\r\n <motion.foreignObject\r\n width={width}\r\n height={height}\r\n y={y}\r\n variants={{\r\n initial: {\r\n x,\r\n },\r\n whileInView: {\r\n x,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <div\r\n className={`flex flex-col items-center h-inherit ${\r\n alignment === 'top' ? 'justify-start' : 'justify-end'\r\n }`}\r\n >\r\n <p\r\n className={cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs m-0 py-0 px-1.5 text-center leading-none',\r\n className,\r\n )}\r\n style={style}\r\n >\r\n {value}\r\n </p>\r\n </div>\r\n </motion.foreignObject>\r\n );\r\n}\r\n"],"names":["XAxesLabels","props","value","y","x","style","className","width","height","alignment","animate","isInView","jsx","motion","cn"],"mappings":";;AAkBO,SAASA,EAAYC,GAAc;AACxC,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA,GAAAC;AAAA,IACA,GAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,SAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACEV;AACJ,SACEW,gBAAAA,EAAAA;AAAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MACC,OAAAN;AAAA,MACA,QAAAC;AAAA,MACA,GAAAL;AAAA,MACA,UAAU;AAAA,QACR,SAAS;AAAA,UACP,GAAAC;AAAA,QAAA;AAAA,QAEF,aAAa;AAAA,UACX,GAAAA;AAAA,UACA,YAAY,EAAE,UAAUM,EAAQ,SAAA;AAAA,QAAS;AAAA,MAC3C;AAAA,MAEF,SAAQ;AAAA,MACR,SAASC,IAAW,gBAAgB;AAAA,MACpC,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,UAAUD,EAAQ,WAAS;AAAA,MAE7D,UAAAE,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,wCACTH,MAAc,QAAQ,kBAAkB,aAC1C;AAAA,UAEA,UAAAG,gBAAAA,EAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWE;AAAAA,gBACT;AAAA,gBACAR;AAAA,cAAA;AAAA,cAEF,OAAAD;AAAA,cAEC,UAAAH;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
@@ -1,2 +0,0 @@
1
- "use strict";const i=require("./index-CHPV5EwG-DDoeWRVt.cjs"),u=require("./proxy-BHRoeZgd.cjs");function d(n){const{value:a,y:s,x:t,style:r,className:l,width:o,height:x,alignment:c="top",animate:e,isInView:m}=n;return i.jsxRuntimeExports.jsx(u.motion.foreignObject,{width:o,height:x,y:s,variants:{initial:{x:t},whileInView:{x:t,transition:{duration:e.duration}}},initial:"initial",animate:m?"whileInView":"initial",exit:{opacity:0,transition:{duration:e.duration}},children:i.jsxRuntimeExports.jsx("div",{className:`flex flex-col items-center h-inherit ${c==="top"?"justify-start":"justify-end"}`,children:i.jsxRuntimeExports.jsx("p",{className:i.mo("fill-primary-gray-700 dark:fill-primary-gray-300 text-xs m-0 py-0 px-1.5 text-center leading-none",l),style:r,children:a})})})}exports.XAxesLabels=d;
2
- //# sourceMappingURL=XAxesLabels-OjBNl_lS.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"XAxesLabels-OjBNl_lS.cjs","sources":["../src/Components/Elements/Axes/XAxesLabels.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\nimport { motion } from 'motion/react';\r\n\r\nimport { AnimateDataType } from '@/Types';\r\n\r\ninterface Props {\r\n value: number | string;\r\n y: number;\r\n x: number;\r\n width: number;\r\n height: number;\r\n style?: React.CSSProperties;\r\n className?: string;\r\n alignment?: 'top' | 'bottom';\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function XAxesLabels(props: Props) {\r\n const {\r\n value,\r\n y,\r\n x,\r\n style,\r\n className,\r\n width,\r\n height,\r\n alignment = 'top',\r\n animate,\r\n isInView,\r\n } = props;\r\n return (\r\n <motion.foreignObject\r\n width={width}\r\n height={height}\r\n y={y}\r\n variants={{\r\n initial: {\r\n x,\r\n },\r\n whileInView: {\r\n x,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <div\r\n className={`flex flex-col items-center h-inherit ${\r\n alignment === 'top' ? 'justify-start' : 'justify-end'\r\n }`}\r\n >\r\n <p\r\n className={cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs m-0 py-0 px-1.5 text-center leading-none',\r\n className,\r\n )}\r\n style={style}\r\n >\r\n {value}\r\n </p>\r\n </div>\r\n </motion.foreignObject>\r\n );\r\n}\r\n"],"names":["XAxesLabels","props","value","y","x","style","className","width","height","alignment","animate","isInView","jsx","motion","cn"],"mappings":"gGAkBO,SAASA,EAAYC,EAAc,CACxC,KAAM,CACJ,MAAAC,EACA,EAAAC,EACA,EAAAC,EACA,MAAAC,EACA,UAAAC,EACA,MAAAC,EACA,OAAAC,EACA,UAAAC,EAAY,MACZ,QAAAC,EACA,SAAAC,CAAA,EACEV,EACJ,OACEW,EAAAA,kBAAAA,IAACC,EAAAA,OAAO,cAAP,CACC,MAAAN,EACA,OAAAC,EACA,EAAAL,EACA,SAAU,CACR,QAAS,CACP,EAAAC,CAAA,EAEF,YAAa,CACX,EAAAA,EACA,WAAY,CAAE,SAAUM,EAAQ,QAAA,CAAS,CAC3C,EAEF,QAAQ,UACR,QAASC,EAAW,cAAgB,UACpC,KAAM,CAAE,QAAS,EAAG,WAAY,CAAE,SAAUD,EAAQ,SAAS,EAE7D,SAAAE,EAAAA,kBAAAA,IAAC,MAAA,CACC,UAAW,wCACTH,IAAc,MAAQ,gBAAkB,aAC1C,GAEA,SAAAG,EAAAA,kBAAAA,IAAC,IAAA,CACC,UAAWE,EAAAA,GACT,oGACAR,CAAA,EAEF,MAAAD,EAEC,SAAAH,CAAA,CAAA,CACH,CAAA,CACF,CAAA,CAGN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"YAxesLabels-CPGZjmZJ.js","sources":["../src/Components/Elements/Axes/YAxesLabels.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\nimport { motion } from 'motion/react';\r\n\r\nimport { AnimateDataType } from '@/Types';\r\n\r\ninterface Props {\r\n value: number | string;\r\n y: number;\r\n x: number;\r\n width: number;\r\n height: number;\r\n style?: React.CSSProperties;\r\n className?: string;\r\n alignment?: 'left' | 'right' | 'center';\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function YAxesLabels(props: Props) {\r\n const {\r\n value,\r\n y,\r\n x,\r\n style,\r\n className,\r\n width,\r\n height,\r\n alignment = 'right',\r\n animate,\r\n isInView,\r\n } = props;\r\n return (\r\n <motion.foreignObject\r\n width={width}\r\n height={height}\r\n x={x}\r\n variants={{\r\n initial: {\r\n y,\r\n },\r\n whileInView: {\r\n y,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <div className='flex flex-col justify-center h-inherit'>\r\n <p\r\n className={cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs m-0 py-0 px-1.5 leading-none',\r\n `text-${alignment}`,\r\n className,\r\n )}\r\n style={style}\r\n >\r\n {value}\r\n </p>\r\n </div>\r\n </motion.foreignObject>\r\n );\r\n}\r\n"],"names":["YAxesLabels","props","value","y","x","style","className","width","height","alignment","animate","isInView","jsx","motion","cn"],"mappings":";;AAkBO,SAASA,EAAYC,GAAc;AACxC,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA,GAAAC;AAAA,IACA,GAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,SAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACEV;AACJ,SACEW,gBAAAA,EAAAA;AAAAA,IAACC,EAAO;AAAA,IAAP;AAAA,MACC,OAAAN;AAAA,MACA,QAAAC;AAAA,MACA,GAAAJ;AAAA,MACA,UAAU;AAAA,QACR,SAAS;AAAA,UACP,GAAAD;AAAA,QAAA;AAAA,QAEF,aAAa;AAAA,UACX,GAAAA;AAAA,UACA,YAAY,EAAE,UAAUO,EAAQ,SAAA;AAAA,QAAS;AAAA,MAC3C;AAAA,MAEF,SAAQ;AAAA,MACR,SAASC,IAAW,gBAAgB;AAAA,MACpC,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,UAAUD,EAAQ,WAAS;AAAA,MAE7D,UAAAE,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,0CACb,UAAAA,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWE;AAAAA,YACT;AAAA,YACA,QAAQL,CAAS;AAAA,YACjBH;AAAA,UAAA;AAAA,UAEF,OAAAD;AAAA,UAEC,UAAAH;AAAA,QAAA;AAAA,MAAA,EACH,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,2 +0,0 @@
1
- "use strict";const i=require("./index-CHPV5EwG-DDoeWRVt.cjs"),u=require("./proxy-BHRoeZgd.cjs");function d(n){const{value:a,y:t,x:r,style:s,className:l,width:o,height:x,alignment:c="right",animate:e,isInView:m}=n;return i.jsxRuntimeExports.jsx(u.motion.foreignObject,{width:o,height:x,x:r,variants:{initial:{y:t},whileInView:{y:t,transition:{duration:e.duration}}},initial:"initial",animate:m?"whileInView":"initial",exit:{opacity:0,transition:{duration:e.duration}},children:i.jsxRuntimeExports.jsx("div",{className:"flex flex-col justify-center h-inherit",children:i.jsxRuntimeExports.jsx("p",{className:i.mo("fill-primary-gray-700 dark:fill-primary-gray-300 text-xs m-0 py-0 px-1.5 leading-none",`text-${c}`,l),style:s,children:a})})})}exports.YAxesLabels=d;
2
- //# sourceMappingURL=YAxesLabels-D8IydyZj.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"YAxesLabels-D8IydyZj.cjs","sources":["../src/Components/Elements/Axes/YAxesLabels.tsx"],"sourcesContent":["import { cn } from '@undp/design-system-react/cn';\r\nimport { motion } from 'motion/react';\r\n\r\nimport { AnimateDataType } from '@/Types';\r\n\r\ninterface Props {\r\n value: number | string;\r\n y: number;\r\n x: number;\r\n width: number;\r\n height: number;\r\n style?: React.CSSProperties;\r\n className?: string;\r\n alignment?: 'left' | 'right' | 'center';\r\n animate: AnimateDataType;\r\n isInView: boolean;\r\n}\r\n\r\nexport function YAxesLabels(props: Props) {\r\n const {\r\n value,\r\n y,\r\n x,\r\n style,\r\n className,\r\n width,\r\n height,\r\n alignment = 'right',\r\n animate,\r\n isInView,\r\n } = props;\r\n return (\r\n <motion.foreignObject\r\n width={width}\r\n height={height}\r\n x={x}\r\n variants={{\r\n initial: {\r\n y,\r\n },\r\n whileInView: {\r\n y,\r\n transition: { duration: animate.duration },\r\n },\r\n }}\r\n initial='initial'\r\n animate={isInView ? 'whileInView' : 'initial'}\r\n exit={{ opacity: 0, transition: { duration: animate.duration } }}\r\n >\r\n <div className='flex flex-col justify-center h-inherit'>\r\n <p\r\n className={cn(\r\n 'fill-primary-gray-700 dark:fill-primary-gray-300 text-xs m-0 py-0 px-1.5 leading-none',\r\n `text-${alignment}`,\r\n className,\r\n )}\r\n style={style}\r\n >\r\n {value}\r\n </p>\r\n </div>\r\n </motion.foreignObject>\r\n );\r\n}\r\n"],"names":["YAxesLabels","props","value","y","x","style","className","width","height","alignment","animate","isInView","jsx","motion","cn"],"mappings":"gGAkBO,SAASA,EAAYC,EAAc,CACxC,KAAM,CACJ,MAAAC,EACA,EAAAC,EACA,EAAAC,EACA,MAAAC,EACA,UAAAC,EACA,MAAAC,EACA,OAAAC,EACA,UAAAC,EAAY,QACZ,QAAAC,EACA,SAAAC,CAAA,EACEV,EACJ,OACEW,EAAAA,kBAAAA,IAACC,EAAAA,OAAO,cAAP,CACC,MAAAN,EACA,OAAAC,EACA,EAAAJ,EACA,SAAU,CACR,QAAS,CACP,EAAAD,CAAA,EAEF,YAAa,CACX,EAAAA,EACA,WAAY,CAAE,SAAUO,EAAQ,QAAA,CAAS,CAC3C,EAEF,QAAQ,UACR,QAASC,EAAW,cAAgB,UACpC,KAAM,CAAE,QAAS,EAAG,WAAY,CAAE,SAAUD,EAAQ,SAAS,EAE7D,SAAAE,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,yCACb,SAAAA,EAAAA,kBAAAA,IAAC,IAAA,CACC,UAAWE,EAAAA,GACT,wFACA,QAAQL,CAAS,GACjBH,CAAA,EAEF,MAAAD,EAEC,SAAAH,CAAA,CAAA,CACH,CACF,CAAA,CAAA,CAGN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensureCompleteData-BALdOrsS.js","sources":["../src/Utils/ensureCompleteData.ts"],"sourcesContent":["import sortBy from 'lodash.sortby';\r\nimport { parse } from 'date-fns/parse';\r\n\r\nimport {\r\n BarGraphDataType,\r\n ButterflyChartDataType,\r\n DumbbellChartDataType,\r\n GroupedBarGraphDataType,\r\n ScatterPlotDataType,\r\n} from '@/Types';\r\n\r\nexport function ensureCompleteDataForBarChart(data: BarGraphDataType[], dateFormat: string) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const colors = data.reduce((acc: any, curr: any) => {\r\n if (!acc[curr.label]) {\r\n acc[curr.label] = curr.color;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n color: colors[label], // Keep the same color for the label\r\n size: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n\r\nexport function ensureCompleteDataForStackedBarChart(\r\n data: GroupedBarGraphDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n size: data[0].size.map(_d => null),\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n\r\nexport function ensureCompleteDataForButterFlyChart(\r\n data: ButterflyChartDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n leftBar: undefined,\r\n rightBar: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n\r\nexport function ensureCompleteDataForScatterPlot(data: ScatterPlotDataType[], dateFormat: string) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const colors = data.reduce((acc: any, curr: any) => {\r\n if (!acc[curr.label]) {\r\n acc[curr.label] = curr.color;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n color: colors[label], // Keep the same color for the label\r\n x: undefined,\r\n y: undefined,\r\n radius: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n\r\nexport function ensureCompleteDataForDumbbellChart(\r\n data: DumbbellChartDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n x: data[0].x.map(_d => null),\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n"],"names":["ensureCompleteDataForBarChart","data","dateFormat","labels","d","dates","existingCombinations","colors","acc","curr","completeData","label","date","sortBy","parse","ensureCompleteDataForStackedBarChart","ensureCompleteDataForButterFlyChart","ensureCompleteDataForScatterPlot","ensureCompleteDataForDumbbellChart"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const m=require("./index-DYH8g9WA.cjs"),c=require("./parse-hMnG_lRV.cjs");function f(r,a){const l=Array.from(new Set(r.map(t=>t.label))),n=Array.from(new Set(r.map(t=>t.date))).filter(t=>t!==void 0);if(n.length===0)return r;const i=new Set(r.map(t=>`${t.label}-${t.date}`)),s=r.reduce((t,o)=>(t[o.label]||(t[o.label]=o.color),t),{}),e=[...r];return l.forEach(t=>{n.forEach(o=>{i.has(`${t}-${o}`)||e.push({label:t,color:s[t],size:void 0,date:o})})}),m.sortBy(e,t=>c.parse(`${t.date}`,a||"yyyy",new Date))}function p(r,a){const l=Array.from(new Set(r.map(e=>e.label))),n=Array.from(new Set(r.map(e=>e.date))).filter(e=>e!==void 0);if(n.length===0)return r;const i=new Set(r.map(e=>`${e.label}-${e.date}`)),s=[...r];return l.forEach(e=>{n.forEach(t=>{i.has(`${e}-${t}`)||s.push({label:e,size:r[0].size.map(o=>null),date:t})})}),m.sortBy(s,e=>c.parse(`${e.date}`,a||"yyyy",new Date))}function u(r,a){const l=Array.from(new Set(r.map(e=>e.label))),n=Array.from(new Set(r.map(e=>e.date))).filter(e=>e!==void 0);if(n.length===0)return r;const i=new Set(r.map(e=>`${e.label}-${e.date}`)),s=[...r];return l.forEach(e=>{n.forEach(t=>{i.has(`${e}-${t}`)||s.push({label:e,leftBar:void 0,rightBar:void 0,date:t})})}),m.sortBy(s,e=>c.parse(`${e.date}`,a,new Date))}function h(r,a){const l=Array.from(new Set(r.map(t=>t.label))),n=Array.from(new Set(r.map(t=>t.date))).filter(t=>t!==void 0);if(n.length===0)return r;const i=new Set(r.map(t=>`${t.label}-${t.date}`)),s=r.reduce((t,o)=>(t[o.label]||(t[o.label]=o.color),t),{}),e=[...r];return l.forEach(t=>{n.forEach(o=>{i.has(`${t}-${o}`)||e.push({label:t,color:s[t],x:void 0,y:void 0,radius:void 0,date:o})})}),m.sortBy(e,t=>c.parse(`${t.date}`,a,new Date))}function y(r,a){const l=Array.from(new Set(r.map(e=>e.label))),n=Array.from(new Set(r.map(e=>e.date))).filter(e=>e!==void 0);if(n.length===0)return r;const i=new Set(r.map(e=>`${e.label}-${e.date}`)),s=[...r];return l.forEach(e=>{n.forEach(t=>{i.has(`${e}-${t}`)||s.push({label:e,x:r[0].x.map(o=>null),date:t})})}),m.sortBy(s,e=>c.parse(`${e.date}`,a||"yyyy",new Date))}exports.ensureCompleteDataForBarChart=f;exports.ensureCompleteDataForButterFlyChart=u;exports.ensureCompleteDataForDumbbellChart=y;exports.ensureCompleteDataForScatterPlot=h;exports.ensureCompleteDataForStackedBarChart=p;
2
- //# sourceMappingURL=ensureCompleteData-BU5Zlccy.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensureCompleteData-BU5Zlccy.cjs","sources":["../src/Utils/ensureCompleteData.ts"],"sourcesContent":["import sortBy from 'lodash.sortby';\r\nimport { parse } from 'date-fns/parse';\r\n\r\nimport {\r\n BarGraphDataType,\r\n ButterflyChartDataType,\r\n DumbbellChartDataType,\r\n GroupedBarGraphDataType,\r\n ScatterPlotDataType,\r\n} from '@/Types';\r\n\r\nexport function ensureCompleteDataForBarChart(data: BarGraphDataType[], dateFormat: string) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const colors = data.reduce((acc: any, curr: any) => {\r\n if (!acc[curr.label]) {\r\n acc[curr.label] = curr.color;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n color: colors[label], // Keep the same color for the label\r\n size: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n\r\nexport function ensureCompleteDataForStackedBarChart(\r\n data: GroupedBarGraphDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n size: data[0].size.map(_d => null),\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n\r\nexport function ensureCompleteDataForButterFlyChart(\r\n data: ButterflyChartDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n leftBar: undefined,\r\n rightBar: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n\r\nexport function ensureCompleteDataForScatterPlot(data: ScatterPlotDataType[], dateFormat: string) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const colors = data.reduce((acc: any, curr: any) => {\r\n if (!acc[curr.label]) {\r\n acc[curr.label] = curr.color;\r\n }\r\n return acc;\r\n }, {});\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n color: colors[label], // Keep the same color for the label\r\n x: undefined,\r\n y: undefined,\r\n radius: undefined,\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n\r\nexport function ensureCompleteDataForDumbbellChart(\r\n data: DumbbellChartDataType[],\r\n dateFormat: string,\r\n) {\r\n // Extract unique labels and dates\r\n const labels = Array.from(new Set(data.map(d => d.label)));\r\n const dates = Array.from(new Set(data.map(d => d.date))).filter(d => d !== undefined);\r\n if (dates.length === 0) return data;\r\n\r\n // Create a set of existing label-date combinations\r\n const existingCombinations = new Set(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data.map((d: any) => `${d.label}-${d.date}`),\r\n );\r\n\r\n // Add missing label-date combinations with size as undefined\r\n const completeData = [...data];\r\n\r\n labels.forEach(label => {\r\n dates.forEach(date => {\r\n if (!existingCombinations.has(`${label}-${date}`)) {\r\n completeData.push({\r\n label,\r\n x: data[0].x.map(_d => null),\r\n date,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return sortBy(completeData, d => parse(`${d.date}`, dateFormat || 'yyyy', new Date()));\r\n}\r\n"],"names":["ensureCompleteDataForBarChart","data","dateFormat","labels","d","dates","existingCombinations","colors","acc","curr","completeData","label","date","sortBy","parse","ensureCompleteDataForStackedBarChart","ensureCompleteDataForButterFlyChart","ensureCompleteDataForScatterPlot","ensureCompleteDataForDumbbellChart"],"mappings":"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"}