@hisptz/dhis2-analytics 2.0.63 → 2.0.64

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 (204) hide show
  1. package/dist/components/ChartAnalytics/DHIS2Chart.js.map +1 -1
  2. package/dist/components/ChartAnalytics/components/DownloadMenu/components/Menu.js.map +1 -1
  3. package/dist/components/ChartAnalytics/components/DownloadMenu/constants/menu.js.map +1 -1
  4. package/dist/components/ChartAnalytics/components/DownloadMenu/index.js.map +1 -1
  5. package/dist/components/ChartAnalytics/hooks/useChart.js.map +1 -1
  6. package/dist/components/ChartAnalytics/models/bar.js.map +1 -1
  7. package/dist/components/ChartAnalytics/models/column.js.map +1 -1
  8. package/dist/components/ChartAnalytics/models/index.js.map +1 -1
  9. package/dist/components/ChartAnalytics/models/line.js.map +1 -1
  10. package/dist/components/ChartAnalytics/models/multi-series.js.map +1 -1
  11. package/dist/components/ChartAnalytics/models/pie.js.map +1 -1
  12. package/dist/components/ChartAnalytics/services/export.js.map +1 -1
  13. package/dist/components/ChartAnalytics/utils/chart.js.map +1 -1
  14. package/dist/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -1
  15. package/dist/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
  16. package/dist/components/DHIS2PivotTable/components/Table/index.js.map +1 -1
  17. package/dist/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -1
  18. package/dist/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
  19. package/dist/components/DHIS2PivotTable/services/engine.js.map +1 -1
  20. package/dist/components/DHIS2PivotTable/state/engine.js.map +1 -1
  21. package/dist/components/Map/DHIS2Map.js.map +1 -1
  22. package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -1
  23. package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -1
  24. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -1
  25. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -1
  26. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -1
  27. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -1
  28. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -1
  29. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -1
  30. package/dist/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -1
  31. package/dist/components/Map/components/MapArea/index.js.map +1 -1
  32. package/dist/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
  33. package/dist/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -1
  34. package/dist/components/Map/components/MapControls/components/FullscreenControl/index.js +1 -3
  35. package/dist/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -1
  36. package/dist/components/Map/components/MapControls/index.js.map +1 -1
  37. package/dist/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -1
  38. package/dist/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -1
  39. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -1
  40. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -1
  41. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -1
  42. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -1
  43. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +1 -1
  44. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -1
  45. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -1
  46. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -1
  47. package/dist/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
  48. package/dist/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
  49. package/dist/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -1
  50. package/dist/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -1
  51. package/dist/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -1
  52. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -1
  53. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -1
  54. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -1
  55. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -1
  56. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
  57. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
  58. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
  59. package/dist/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -1
  60. package/dist/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -1
  61. package/dist/components/Map/components/MapLayer/index.js.map +1 -1
  62. package/dist/components/Map/components/MapLayer/interfaces/index.js.map +1 -1
  63. package/dist/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -1
  64. package/dist/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
  65. package/dist/components/Map/components/MapProvider/hooks/index.js.map +1 -1
  66. package/dist/components/Map/components/MapProvider/index.js.map +1 -1
  67. package/dist/components/Map/components/MapUpdater/index.js.map +1 -1
  68. package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -1
  69. package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
  70. package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -1
  71. package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -1
  72. package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -1
  73. package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -1
  74. package/dist/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -1
  75. package/dist/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -1
  76. package/dist/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -1
  77. package/dist/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -1
  78. package/dist/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -1
  79. package/dist/components/Map/constants/colors.js.map +1 -1
  80. package/dist/components/Map/constants/legendSet.js.map +1 -1
  81. package/dist/components/Map/hooks/map.js.map +1 -1
  82. package/dist/components/Map/state/index.js.map +1 -1
  83. package/dist/components/Map/utils/colors.js.map +1 -1
  84. package/dist/components/Map/utils/helpers.js.map +1 -1
  85. package/dist/components/Map/utils/map.js.map +1 -1
  86. package/dist/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
  87. package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
  88. package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -1
  89. package/dist/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -1
  90. package/dist/components/Visualization/components/DimensionsProvider/index.js.map +1 -1
  91. package/dist/components/Visualization/components/LayoutProvider/index.js.map +1 -1
  92. package/dist/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
  93. package/dist/components/Visualization/components/VisualizationProvider/index.js.map +1 -1
  94. package/dist/components/Visualization/components/VisualizationSelector/index.js.map +1 -1
  95. package/dist/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -1
  96. package/dist/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -1
  97. package/dist/components/Visualization/index.js.map +1 -1
  98. package/dist/esm/components/ChartAnalytics/DHIS2Chart.js.map +1 -1
  99. package/dist/esm/components/ChartAnalytics/components/DownloadMenu/components/Menu.js.map +1 -1
  100. package/dist/esm/components/ChartAnalytics/components/DownloadMenu/constants/menu.js.map +1 -1
  101. package/dist/esm/components/ChartAnalytics/components/DownloadMenu/index.js.map +1 -1
  102. package/dist/esm/components/ChartAnalytics/hooks/useChart.js.map +1 -1
  103. package/dist/esm/components/ChartAnalytics/models/bar.js.map +1 -1
  104. package/dist/esm/components/ChartAnalytics/models/column.js.map +1 -1
  105. package/dist/esm/components/ChartAnalytics/models/index.js.map +1 -1
  106. package/dist/esm/components/ChartAnalytics/models/line.js.map +1 -1
  107. package/dist/esm/components/ChartAnalytics/models/multi-series.js.map +1 -1
  108. package/dist/esm/components/ChartAnalytics/models/pie.js.map +1 -1
  109. package/dist/esm/components/ChartAnalytics/services/export.js.map +1 -1
  110. package/dist/esm/components/ChartAnalytics/utils/chart.js.map +1 -1
  111. package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -1
  112. package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
  113. package/dist/esm/components/DHIS2PivotTable/components/Table/index.js.map +1 -1
  114. package/dist/esm/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -1
  115. package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
  116. package/dist/esm/components/DHIS2PivotTable/services/engine.js.map +1 -1
  117. package/dist/esm/components/DHIS2PivotTable/state/engine.js.map +1 -1
  118. package/dist/esm/components/Map/DHIS2Map.js.map +1 -1
  119. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -1
  120. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -1
  121. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -1
  122. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -1
  123. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -1
  124. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -1
  125. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -1
  126. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -1
  127. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -1
  128. package/dist/esm/components/Map/components/MapArea/index.js.map +1 -1
  129. package/dist/esm/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
  130. package/dist/esm/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -1
  131. package/dist/esm/components/Map/components/MapControls/components/FullscreenControl/index.js +1 -3
  132. package/dist/esm/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -1
  133. package/dist/esm/components/Map/components/MapControls/index.js.map +1 -1
  134. package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -1
  135. package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/index.js +1 -1
  136. package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -1
  137. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -1
  138. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -1
  139. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -1
  140. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js +2 -2
  141. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -1
  142. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +1 -1
  143. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -1
  144. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -1
  145. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -1
  146. package/dist/esm/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
  147. package/dist/esm/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
  148. package/dist/esm/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -1
  149. package/dist/esm/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -1
  150. package/dist/esm/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -1
  151. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -1
  152. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -1
  153. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -1
  154. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js +1 -1
  155. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -1
  156. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
  157. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js +1 -1
  158. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
  159. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
  160. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -1
  161. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -1
  162. package/dist/esm/components/Map/components/MapLayer/index.js.map +1 -1
  163. package/dist/esm/components/Map/components/MapLayer/interfaces/index.js.map +1 -1
  164. package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js +1 -1
  165. package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -1
  166. package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
  167. package/dist/esm/components/Map/components/MapProvider/hooks/index.js.map +1 -1
  168. package/dist/esm/components/Map/components/MapProvider/index.js.map +1 -1
  169. package/dist/esm/components/Map/components/MapUpdater/index.js.map +1 -1
  170. package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -1
  171. package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
  172. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -1
  173. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -1
  174. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -1
  175. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -1
  176. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -1
  177. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -1
  178. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -1
  179. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -1
  180. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -1
  181. package/dist/esm/components/Map/constants/colors.js.map +1 -1
  182. package/dist/esm/components/Map/constants/legendSet.js.map +1 -1
  183. package/dist/esm/components/Map/hooks/map.js.map +1 -1
  184. package/dist/esm/components/Map/state/index.js.map +1 -1
  185. package/dist/esm/components/Map/utils/colors.js +1 -1
  186. package/dist/esm/components/Map/utils/colors.js.map +1 -1
  187. package/dist/esm/components/Map/utils/helpers.js.map +1 -1
  188. package/dist/esm/components/Map/utils/map.js +1 -1
  189. package/dist/esm/components/Map/utils/map.js.map +1 -1
  190. package/dist/esm/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
  191. package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
  192. package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -1
  193. package/dist/esm/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -1
  194. package/dist/esm/components/Visualization/components/DimensionsProvider/index.js.map +1 -1
  195. package/dist/esm/components/Visualization/components/LayoutProvider/index.js.map +1 -1
  196. package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
  197. package/dist/esm/components/Visualization/components/VisualizationProvider/index.js.map +1 -1
  198. package/dist/esm/components/Visualization/components/VisualizationSelector/index.js.map +1 -1
  199. package/dist/esm/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -1
  200. package/dist/esm/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -1
  201. package/dist/esm/components/Visualization/index.js.map +1 -1
  202. package/dist/types/components/Map/components/MapControls/components/FullscreenControl/index.d.ts +2 -1
  203. package/dist/types/components/Map/components/MapControls/components/FullscreenControl/index.d.ts.map +1 -1
  204. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Map/utils/map.ts"],"names":["legend"],"mappings":"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","file":"map.js","sourcesContent":["import type {\n\tLegend,\n\tOrganisationUnit,\n\tOrgUnitSelection,\n} from \"@hisptz/dhis2-utils\";\nimport { LeafletMouseEvent } from \"leaflet\";\nimport {\n\tcompact,\n\tfilter,\n\tfind,\n\tforEach,\n\tisEmpty,\n\tisString,\n\tsortBy,\n} from \"lodash\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n\tgetColorPalette,\n} from \"./colors.js\";\n\nexport function highlightFeature(e: LeafletMouseEvent, style: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(style);\n\t// layer.bringToFront();\n}\n\nexport function resetHighlight(e: LeafletMouseEvent, defaultStyle: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(defaultStyle);\n\t// layer.bringToBack();\n}\n\nexport function getColorFromLegendSet(\n\tlegends: Legend[],\n\tvalue?: number,\n): string {\n\tif (!value) {\n\t\treturn \"transparent\";\n\t}\n\tconst legend: any =\n\t\tfind(\n\t\t\tlegends ?? [],\n\t\t\t(legend: any) =>\n\t\t\t\tlegend?.startValue <= value && legend?.endValue >= value,\n\t\t) ?? {};\n\treturn legend.color ? legend.color : \"transparent\";\n}\n\nexport function getLegendCount(legend: any, data: any) {\n\tconst { startValue, endValue } = legend;\n\treturn filter(data, (d: any) => d.data >= startValue && d.data <= endValue)\n\t\t.length;\n}\n\nexport function getOrgUnitsSelection(orgUnitSelection: OrgUnitSelection) {\n\tconst orgUnits = [];\n\tif (orgUnitSelection.userOrgUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT\");\n\t}\n\n\tif (orgUnitSelection.userSubUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT_CHILDREN\");\n\t}\n\n\tif (orgUnitSelection.userSubX2Unit) {\n\t\torgUnits.push(\"USER_ORGUNIT_GRANDCHILDREN\");\n\t}\n\tif (!isEmpty(orgUnitSelection.levels)) {\n\t\tforEach(orgUnitSelection.levels, (level) =>\n\t\t\torgUnits.push(`LEVEL-${level}`),\n\t\t);\n\t}\n\n\treturn [\n\t\t...orgUnits,\n\t\t...(orgUnitSelection?.orgUnits?.map(\n\t\t\t(ou: OrganisationUnit) => `${ou.id}`,\n\t\t) ?? []),\n\t];\n}\n\nexport function sanitizeOrgUnits(metaData: any) {\n\tif (metaData) {\n\t\treturn metaData?.dimensions?.ou?.map((ouId: string) => ({\n\t\t\tid: ouId,\n\t\t\tname: metaData?.items[ouId]?.name,\n\t\t\tpath: metaData?.ouHierarchy?.[ouId],\n\t\t}));\n\t}\n\treturn [];\n}\n\nexport function toGeoJson(organisationUnits: any) {\n\treturn sortBy(organisationUnits, \"le\").map((ou: any) => {\n\t\ttry {\n\t\t\tconst coord = JSON.parse(ou.co);\n\t\t\tlet gpid = \"\";\n\t\t\tlet gppg = \"\";\n\t\t\tlet type = \"Point\";\n\n\t\t\tif (ou.ty === 2) {\n\t\t\t\ttype = \"Polygon\";\n\t\t\t\tif (ou.co.substring(0, 4) === \"[[[[\") {\n\t\t\t\t\ttype = \"MultiPolygon\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Grand parent\n\t\t\tif (isString(ou.pg) && ou.pg.length) {\n\t\t\t\tconst ids = compact(ou.pg.split(\"/\"));\n\n\t\t\t\t// Grand parent id\n\t\t\t\tif (ids.length >= 2) {\n\t\t\t\t\tgpid = ids[ids.length - 2] as string;\n\t\t\t\t}\n\n\t\t\t\t// Grand parent parent graph\n\t\t\t\tif (ids.length > 2) {\n\t\t\t\t\tgppg = \"/\" + ids.slice(0, ids.length - 2).join(\"/\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: \"Feature\",\n\t\t\t\tid: ou.id,\n\t\t\t\tgeometry: {\n\t\t\t\t\ttype,\n\t\t\t\t\tcoordinates: coord,\n\t\t\t\t},\n\t\t\t\tproperties: {\n\t\t\t\t\ttype,\n\t\t\t\t\tid: ou.id,\n\t\t\t\t\tname: ou.na,\n\t\t\t\t\thasCoordinatesDown: ou.hcd,\n\t\t\t\t\thasCoordinatesUp: ou.hcu,\n\t\t\t\t\tlevel: ou.le,\n\t\t\t\t\tgrandParentParentGraph: gppg,\n\t\t\t\t\tgrandParentId: gpid,\n\t\t\t\t\tparentGraph: ou.pg,\n\t\t\t\t\tparentId: ou.pi,\n\t\t\t\t\tparentName: ou.pn,\n\t\t\t\t\tdimensions: ou.dimensions,\n\t\t\t\t},\n\t\t\t};\n\t\t} catch (e) {\n\t\t\treturn {};\n\t\t}\n\t});\n}\n\nexport function sanitizeDate(startDate: string): string {\n\tif (startDate?.split(\"-\")?.[0]?.length < 4) {\n\t\treturn startDate?.split(\"-\")?.reverse()?.join(\"-\");\n\t}\n\treturn startDate;\n}\n\nexport function generateLegends(\n\tmaxValue: number,\n\tminValue: number,\n\t{ classesCount, colorClass }: { classesCount: number; colorClass: string },\n): Array<Legend> {\n\tconst count: number = classesCount ?? defaultClasses;\n\tconst color = colorClass ?? defaultColorScaleName;\n\n\tconst colorScale = [...getColorPalette(color, count)].reverse();\n\n\tconst maxLegendValue = 5 * Math.ceil(maxValue / 5);\n\tconst range = maxLegendValue / count;\n\n\tconst values = [];\n\tlet legendColorsIterator = colorScale.length - 1;\n\tfor (let i = 0; i < maxLegendValue; i += range) {\n\t\tconst id = colorScale[legendColorsIterator];\n\t\tvalues.push({\n\t\t\tstartValue: Math.floor(i),\n\t\t\tendValue: Math.floor(i + range),\n\t\t\tid,\n\t\t\tcolor: id,\n\t\t});\n\t\tlegendColorsIterator--;\n\t}\n\n\treturn values.reverse();\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/Map/utils/map.ts"],"names":["legend"],"mappings":"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","file":"map.js","sourcesContent":["import type {\n\tLegend,\n\tOrganisationUnit,\n\tOrgUnitSelection,\n} from \"@hisptz/dhis2-utils\";\nimport { LeafletMouseEvent } from \"leaflet\";\nimport {\n\tcompact,\n\tfilter,\n\tfind,\n\tforEach,\n\tisEmpty,\n\tisString,\n\tsortBy,\n} from \"lodash\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n\tgetColorPalette,\n} from \"./colors.js\";\n\nexport function highlightFeature(e: LeafletMouseEvent, style: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(style);\n\t// layer.bringToFront();\n}\n\nexport function resetHighlight(e: LeafletMouseEvent, defaultStyle: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(defaultStyle);\n\t// layer.bringToBack();\n}\n\nexport function getColorFromLegendSet(\n\tlegends: Legend[],\n\tvalue?: number,\n): string {\n\tif (!value) {\n\t\treturn \"transparent\";\n\t}\n\tconst legend: any =\n\t\tfind(\n\t\t\tlegends ?? [],\n\t\t\t(legend: any) =>\n\t\t\t\tlegend?.startValue <= value && legend?.endValue >= value,\n\t\t) ?? {};\n\treturn legend.color ? legend.color : \"transparent\";\n}\n\nexport function getLegendCount(legend: any, data: any) {\n\tconst { startValue, endValue } = legend;\n\treturn filter(data, (d: any) => d.data >= startValue && d.data <= endValue)\n\t\t.length;\n}\n\nexport function getOrgUnitsSelection(orgUnitSelection: OrgUnitSelection) {\n\tconst orgUnits = [];\n\tif (orgUnitSelection.userOrgUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT\");\n\t}\n\n\tif (orgUnitSelection.userSubUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT_CHILDREN\");\n\t}\n\n\tif (orgUnitSelection.userSubX2Unit) {\n\t\torgUnits.push(\"USER_ORGUNIT_GRANDCHILDREN\");\n\t}\n\tif (!isEmpty(orgUnitSelection.levels)) {\n\t\tforEach(orgUnitSelection.levels, (level) =>\n\t\t\torgUnits.push(`LEVEL-${level}`),\n\t\t);\n\t}\n\n\treturn [\n\t\t...orgUnits,\n\t\t...(orgUnitSelection?.orgUnits?.map(\n\t\t\t(ou: OrganisationUnit) => `${ou.id}`,\n\t\t) ?? []),\n\t];\n}\n\nexport function sanitizeOrgUnits(metaData: any) {\n\tif (metaData) {\n\t\treturn metaData?.dimensions?.ou?.map((ouId: string) => ({\n\t\t\tid: ouId,\n\t\t\tname: metaData?.items[ouId]?.name,\n\t\t\tpath: metaData?.ouHierarchy?.[ouId],\n\t\t}));\n\t}\n\treturn [];\n}\n\nexport function toGeoJson(organisationUnits: any) {\n\treturn sortBy(organisationUnits, \"le\").map((ou: any) => {\n\t\ttry {\n\t\t\tconst coord = JSON.parse(ou.co);\n\t\t\tlet gpid = \"\";\n\t\t\tlet gppg = \"\";\n\t\t\tlet type = \"Point\";\n\n\t\t\tif (ou.ty === 2) {\n\t\t\t\ttype = \"Polygon\";\n\t\t\t\tif (ou.co.substring(0, 4) === \"[[[[\") {\n\t\t\t\t\ttype = \"MultiPolygon\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Grand parent\n\t\t\tif (isString(ou.pg) && ou.pg.length) {\n\t\t\t\tconst ids = compact(ou.pg.split(\"/\"));\n\n\t\t\t\t// Grand parent id\n\t\t\t\tif (ids.length >= 2) {\n\t\t\t\t\tgpid = ids[ids.length - 2] as string;\n\t\t\t\t}\n\n\t\t\t\t// Grand parent parent graph\n\t\t\t\tif (ids.length > 2) {\n\t\t\t\t\tgppg = \"/\" + ids.slice(0, ids.length - 2).join(\"/\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: \"Feature\",\n\t\t\t\tid: ou.id,\n\t\t\t\tgeometry: {\n\t\t\t\t\ttype,\n\t\t\t\t\tcoordinates: coord,\n\t\t\t\t},\n\t\t\t\tproperties: {\n\t\t\t\t\ttype,\n\t\t\t\t\tid: ou.id,\n\t\t\t\t\tname: ou.na,\n\t\t\t\t\thasCoordinatesDown: ou.hcd,\n\t\t\t\t\thasCoordinatesUp: ou.hcu,\n\t\t\t\t\tlevel: ou.le,\n\t\t\t\t\tgrandParentParentGraph: gppg,\n\t\t\t\t\tgrandParentId: gpid,\n\t\t\t\t\tparentGraph: ou.pg,\n\t\t\t\t\tparentId: ou.pi,\n\t\t\t\t\tparentName: ou.pn,\n\t\t\t\t\tdimensions: ou.dimensions,\n\t\t\t\t},\n\t\t\t};\n\t\t} catch (e) {\n\t\t\treturn {};\n\t\t}\n\t});\n}\n\nexport function sanitizeDate(startDate: string): string {\n\tif (startDate?.split(\"-\")?.[0]?.length < 4) {\n\t\treturn startDate?.split(\"-\")?.reverse()?.join(\"-\");\n\t}\n\treturn startDate;\n}\n\nexport function generateLegends(\n\tmaxValue: number,\n\tminValue: number,\n\t{ classesCount, colorClass }: { classesCount: number; colorClass: string },\n): Array<Legend> {\n\tconst count: number = classesCount ?? defaultClasses;\n\tconst color = colorClass ?? defaultColorScaleName;\n\n\tconst colorScale = [...getColorPalette(color, count)].reverse();\n\n\tconst maxLegendValue = 5 * Math.ceil(maxValue / 5);\n\tconst range = maxLegendValue / count;\n\n\tconst values = [];\n\tlet legendColorsIterator = colorScale.length - 1;\n\tfor (let i = 0; i < maxLegendValue; i += range) {\n\t\tconst id = colorScale[legendColorsIterator];\n\t\tvalues.push({\n\t\t\tstartValue: Math.floor(i),\n\t\t\tendValue: Math.floor(i + range),\n\t\t\tid,\n\t\t\tcolor: id,\n\t\t});\n\t\tlegendColorsIterator--;\n\t}\n\n\treturn values.reverse();\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":[],"mappings":";;;;;;;;;AASO,SAAS,qBAAsB,CAAA;AAAA,EACrC,KAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AACD,CAAmD,EAAA;AAClD,EACC,uBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,aACd,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,CAAA;AAAA,oBACV,GAAA,CAAC,QAAS,EAAA,EAAA,QAAA,kBAAW,GAAA,CAAA,KAAA,EAAA,EAAK,QAAK,EAAA,IAAA,CAAA,CAAA,CAAE,aAAa,CAAA,EAAE,CAC/C,EAAA,QAAA,kBAAA,IAAA,CAAC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAW,GAAG,MAAO,CAAA,cAAc,CAAC,CAAI,CAAA,EAAA,MAAA,CAAO,WAAW,CAAC,CAAA,CAAA;AAAA,UAE1D,QAAA,EAAA,KAAA;AAAA,SAAA;AAAA,OACF;AAAA,0BACC,KAAI,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,mBAAmB,GACxC,QAAiB,EAAA,gBAAA,CAAA,GAAA;AAAA,QACjB,CAAC,eACA,qBAAA,GAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACA,gBAAA;AAAA,YAEC,GAAG,eAAA;AAAA,YACJ,uBAAyB,EAAA,iBAAA;AAAA,YACzB,oBAAsB,EAAA,cAAA;AAAA,WAAA;AAAA,UAHjB,CAAG,EAAA,eAAA,CAAgB,KAAK,CAAA,CAAA,EAAI,gBAAgB,KAAK,CAAA,CAAA;AAAA,SAIvD;AAAA,OAGH,EAAA,CAAA;AAAA,KAAA,EACD,CACD,EAAA,CAAA;AAAA,GACD,EAAA,CAAA,CAAA;AAEF,CAAA;AAKO,MAAM,oBAAuB,GAAA","file":"SingleValueVisualizer.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { CssReset } from \"@dhis2/ui\";\nimport React, { Suspense } from \"react\";\nimport SingleValueItem from \"./components/SingleValueItem/SingleValueItem.js\";\nimport styles from \"./styles/SingleValueContainer.module.css\";\nimport { SingleValue, SingleValueVisualizerProps } from \"./types/props.js\";\n\nexport * from \"./types/props.js\";\n\nexport function SingleValueVisualizer({\n\ttitle,\n\tsingleValueItems,\n\tanimationDuration,\n\tanimationDelay,\n\tdisableAnimation,\n}: SingleValueVisualizerProps): React.ReactElement {\n\treturn (\n\t\t<div className=\"w-100 h-100\">\n\t\t\t<CssReset />\n\t\t\t<Suspense fallback={<div>{i18n.t(\"Loading ...\")}</div>}>\n\t\t\t\t<div>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={`${styles[\"font-x-large\"]} ${styles[\"font-bold\"]}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div className={styles[\"single-value-list\"]}>\n\t\t\t\t\t\t{singleValueItems.map(\n\t\t\t\t\t\t\t(singleValueItem: SingleValue) => (\n\t\t\t\t\t\t\t\t<SingleValueItem\n\t\t\t\t\t\t\t\t\tdisableAnimation={disableAnimation}\n\t\t\t\t\t\t\t\t\tkey={`${singleValueItem.label}-${singleValueItem.value}`}\n\t\t\t\t\t\t\t\t\t{...singleValueItem}\n\t\t\t\t\t\t\t\t\tglobalAnimationDuration={animationDuration}\n\t\t\t\t\t\t\t\t\tglobalAnimationDelay={animationDelay}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Suspense>\n\t\t</div>\n\t);\n}\n\n/**\n * @deprecated since `v2`. Use `SingleValueVisualizer` instead\n * */\nexport const SingleValueContainer = SingleValueVisualizer;\nexport { SingleValueItem };\n"]}
1
+ {"version":3,"sources":["../../../../src/components/SingleValueContainer/SingleValueVisualizer.tsx"],"names":[],"mappings":";;;;;;;;;AASO,SAAS,qBAAsB,CAAA;AAAA,EACrC,KAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACD,CAAmD,EAAA;AAClD,EACC,uBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,aACd,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,CAAA;AAAA,oBACV,GAAA,CAAC,QAAS,EAAA,EAAA,QAAA,kBAAW,GAAA,CAAA,KAAA,EAAA,EAAK,QAAK,EAAA,IAAA,CAAA,CAAA,CAAE,aAAa,CAAA,EAAE,CAC/C,EAAA,QAAA,kBAAA,IAAA,CAAC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAW,GAAG,MAAO,CAAA,cAAc,CAAC,CAAI,CAAA,EAAA,MAAA,CAAO,WAAW,CAAC,CAAA,CAAA;AAAA,UAE1D,QAAA,EAAA;AAAA;AAAA,OACF;AAAA,0BACC,KAAI,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,mBAAmB,GACxC,QAAiB,EAAA,gBAAA,CAAA,GAAA;AAAA,QACjB,CAAC,eACA,qBAAA,GAAA;AAAA,UAAC,eAAA;AAAA,UAAA;AAAA,YACA,gBAAA;AAAA,YAEC,GAAG,eAAA;AAAA,YACJ,uBAAyB,EAAA,iBAAA;AAAA,YACzB,oBAAsB,EAAA;AAAA,WAAA;AAAA,UAHjB,CAAG,EAAA,eAAA,CAAgB,KAAK,CAAA,CAAA,EAAI,gBAAgB,KAAK,CAAA;AAAA;AAIvD,OAGH,EAAA;AAAA,KAAA,EACD,CACD,EAAA;AAAA,GACD,EAAA,CAAA;AAEF;AAKO,MAAM,oBAAuB,GAAA","file":"SingleValueVisualizer.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { CssReset } from \"@dhis2/ui\";\nimport React, { Suspense } from \"react\";\nimport SingleValueItem from \"./components/SingleValueItem/SingleValueItem.js\";\nimport styles from \"./styles/SingleValueContainer.module.css\";\nimport { SingleValue, SingleValueVisualizerProps } from \"./types/props.js\";\n\nexport * from \"./types/props.js\";\n\nexport function SingleValueVisualizer({\n\ttitle,\n\tsingleValueItems,\n\tanimationDuration,\n\tanimationDelay,\n\tdisableAnimation,\n}: SingleValueVisualizerProps): React.ReactElement {\n\treturn (\n\t\t<div className=\"w-100 h-100\">\n\t\t\t<CssReset />\n\t\t\t<Suspense fallback={<div>{i18n.t(\"Loading ...\")}</div>}>\n\t\t\t\t<div>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={`${styles[\"font-x-large\"]} ${styles[\"font-bold\"]}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div className={styles[\"single-value-list\"]}>\n\t\t\t\t\t\t{singleValueItems.map(\n\t\t\t\t\t\t\t(singleValueItem: SingleValue) => (\n\t\t\t\t\t\t\t\t<SingleValueItem\n\t\t\t\t\t\t\t\t\tdisableAnimation={disableAnimation}\n\t\t\t\t\t\t\t\t\tkey={`${singleValueItem.label}-${singleValueItem.value}`}\n\t\t\t\t\t\t\t\t\t{...singleValueItem}\n\t\t\t\t\t\t\t\t\tglobalAnimationDuration={animationDuration}\n\t\t\t\t\t\t\t\t\tglobalAnimationDelay={animationDelay}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Suspense>\n\t\t</div>\n\t);\n}\n\n/**\n * @deprecated since `v2`. Use `SingleValueVisualizer` instead\n * */\nexport const SingleValueContainer = SingleValueVisualizer;\nexport { SingleValueItem };\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx"],"names":["value"],"mappings":";;;;;;;AAce,SAAR,eAAiC,CAAA;AAAA,EACvC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,oBAAA;AAAA,EACA,aAAA;AAAA,EACA,uBAAA;AAAA,EACA,gBAAA;AACD,CAAyC,EAAA;AACxC,EAAA,MAAM,eAAkB,GAAA,CAACA,MACxB,KAAA,IAAA,CAAK,aAAa,OAAS,EAAA;AAAA,IAC1B,QAAU,EAAA,SAAA;AAAA,IACV,uBAAuB,aAAiB,IAAA,CAAA;AAAA,GACxC,CAAE,CAAA,MAAA,CAAOA,MAAK,CAAA,CAAA;AAEhB,EAAA,MAAM,iBAAiB,SAAU,CAAA;AAAA,IAChC,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAA,KAAA;AAAA,IACL,IAAA,EAAM,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,IACf,MAAQ,EAAA;AAAA,MACP,QAAA,EAAU,qBAAqB,uBAA2B,IAAA,GAAA;AAAA,KAC3D;AAAA,IACA,KAAA,EAAO,kBAAkB,oBAAwB,IAAA,EAAA;AAAA,GACjD,CAAA,CAAA;AAED,EAAA,MAAM,cAAiB,GAAA,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA,CAAA;AACzC,EAAA,4BACE,KAAI,EAAA,EAAA,SAAA,EAAW,GAAG,MAAO,CAAA,mBAAmB,CAAC,CAC7C,YAAA,CAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,YAAY,GAAI,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,oBAC5C,GAAA,CAAA,OAAA,EAAA,EAAQ,OAAS,EAAA,UAAA,CAAW,cAAc,CAC1C,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,QAAS,CAAA,GAAA;AAAA,MAAT;AAAA,QACA,SAAW,EAAA,CAAA,EAAG,MAAO,CAAA,WAAW,CAAC,CAAA,CAAA,EAAI,MAAO,CAAA,eAAe,CAAC,CAAA,CAAA,EAAI,MAAO,CAAA,aAAa,CAAC,CAAA,CAAA;AAAA,QAEpF,yBAAe,GAAI,CAAA,EAAA;AAAA,UAAG,CAACA,MACvB,KAAA,eAAA,CAAgB,IAAK,CAAA,KAAA,CAAMA,MAAK,CAAC,CAAA;AAAA,SAClC;AAAA,OAAA;AAAA,KAEF,EAAA,CAAA;AAAA,IACC,6BACC,GAAA,CAAA,qBAAA,EAAA,EAAsB,OAAc,UAAwB,EAAA,CAAA,uBAE5D,MAAK,EAAA,EAAA,CAAA;AAAA,GAER,EAAA,CAAA,CAAA;AAEF","file":"SingleValueItem.js","sourcesContent":["import { Tooltip } from \"@dhis2/ui\";\nimport { capitalize } from \"lodash\";\nimport React from \"react\";\nimport { animated, useSpring } from \"react-spring\";\nimport styles from \"../../styles/SingleValueContainer.module.css\";\nimport { SingleValue } from \"../../types/props.js\";\nimport SingleValuePercentage from \"./SingleValuePercentage.js\";\n\ninterface SingleValueProps extends SingleValue {\n\tglobalAnimationDelay?: number;\n\tglobalAnimationDuration?: number;\n\tdisableAnimation?: boolean;\n}\n\nexport default function SingleValueItem({\n\tlabel,\n\tvalue,\n\tcolor,\n\tpercentage,\n\tanimationDuration,\n\tanimationDelay,\n\tglobalAnimationDelay,\n\tdecimalPlaces,\n\tglobalAnimationDuration,\n\tdisableAnimation,\n}: SingleValueProps): React.ReactElement {\n\tconst numberFormatter = (value: number) =>\n\t\tIntl.NumberFormat(\"en-US\", {\n\t\t\tnotation: \"compact\",\n\t\t\tmaximumFractionDigits: decimalPlaces ?? 1,\n\t\t}).format(value);\n\n\tconst sanitizedValue = useSpring({\n\t\tcancel: disableAnimation,\n\t\tval: value,\n\t\tfrom: { val: 0 },\n\t\tconfig: {\n\t\t\tduration: animationDuration ?? globalAnimationDuration ?? 1000,\n\t\t},\n\t\tdelay: animationDelay ?? globalAnimationDelay ?? 10,\n\t});\n\n\tconst tooltipContent = `${label}: ${value}`;\n\treturn (\n\t\t<div className={`${styles[\"single-value-item\"]} text-center`}>\n\t\t\t<div className={styles[\"font-large\"]}>{label}</div>\n\t\t\t<Tooltip content={capitalize(tooltipContent)}>\n\t\t\t\t<animated.div\n\t\t\t\t\tclassName={`${styles[\"font-bold\"]} ${styles[\"font-xx-large\"]} ${styles[\"padding-top\"]}`}\n\t\t\t\t>\n\t\t\t\t\t{sanitizedValue.val.to((value) =>\n\t\t\t\t\t\tnumberFormatter(Math.floor(value)),\n\t\t\t\t\t)}\n\t\t\t\t</animated.div>\n\t\t\t</Tooltip>\n\t\t\t{percentage ? (\n\t\t\t\t<SingleValuePercentage color={color} percentage={percentage} />\n\t\t\t) : (\n\t\t\t\t<span></span>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx"],"names":["value"],"mappings":";;;;;;;AAce,SAAR,eAAiC,CAAA;AAAA,EACvC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,oBAAA;AAAA,EACA,aAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACD,CAAyC,EAAA;AACxC,EAAA,MAAM,eAAkB,GAAA,CAACA,MACxB,KAAA,IAAA,CAAK,aAAa,OAAS,EAAA;AAAA,IAC1B,QAAU,EAAA,SAAA;AAAA,IACV,uBAAuB,aAAiB,IAAA;AAAA,GACxC,CAAE,CAAA,MAAA,CAAOA,MAAK,CAAA;AAEhB,EAAA,MAAM,iBAAiB,SAAU,CAAA;AAAA,IAChC,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAA,KAAA;AAAA,IACL,IAAA,EAAM,EAAE,GAAA,EAAK,CAAE,EAAA;AAAA,IACf,MAAQ,EAAA;AAAA,MACP,QAAA,EAAU,qBAAqB,uBAA2B,IAAA;AAAA,KAC3D;AAAA,IACA,KAAA,EAAO,kBAAkB,oBAAwB,IAAA;AAAA,GACjD,CAAA;AAED,EAAA,MAAM,cAAiB,GAAA,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,KAAK,CAAA,CAAA;AACzC,EAAA,4BACE,KAAI,EAAA,EAAA,SAAA,EAAW,GAAG,MAAO,CAAA,mBAAmB,CAAC,CAC7C,YAAA,CAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,YAAY,GAAI,QAAM,EAAA,KAAA,EAAA,CAAA;AAAA,oBAC5C,GAAA,CAAA,OAAA,EAAA,EAAQ,OAAS,EAAA,UAAA,CAAW,cAAc,CAC1C,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,QAAS,CAAA,GAAA;AAAA,MAAT;AAAA,QACA,SAAW,EAAA,CAAA,EAAG,MAAO,CAAA,WAAW,CAAC,CAAA,CAAA,EAAI,MAAO,CAAA,eAAe,CAAC,CAAA,CAAA,EAAI,MAAO,CAAA,aAAa,CAAC,CAAA,CAAA;AAAA,QAEpF,yBAAe,GAAI,CAAA,EAAA;AAAA,UAAG,CAACA,MACvB,KAAA,eAAA,CAAgB,IAAK,CAAA,KAAA,CAAMA,MAAK,CAAC;AAAA;AAClC;AAAA,KAEF,EAAA,CAAA;AAAA,IACC,6BACC,GAAA,CAAA,qBAAA,EAAA,EAAsB,OAAc,UAAwB,EAAA,CAAA,uBAE5D,MAAK,EAAA,EAAA;AAAA,GAER,EAAA,CAAA;AAEF","file":"SingleValueItem.js","sourcesContent":["import { Tooltip } from \"@dhis2/ui\";\nimport { capitalize } from \"lodash\";\nimport React from \"react\";\nimport { animated, useSpring } from \"react-spring\";\nimport styles from \"../../styles/SingleValueContainer.module.css\";\nimport { SingleValue } from \"../../types/props.js\";\nimport SingleValuePercentage from \"./SingleValuePercentage.js\";\n\ninterface SingleValueProps extends SingleValue {\n\tglobalAnimationDelay?: number;\n\tglobalAnimationDuration?: number;\n\tdisableAnimation?: boolean;\n}\n\nexport default function SingleValueItem({\n\tlabel,\n\tvalue,\n\tcolor,\n\tpercentage,\n\tanimationDuration,\n\tanimationDelay,\n\tglobalAnimationDelay,\n\tdecimalPlaces,\n\tglobalAnimationDuration,\n\tdisableAnimation,\n}: SingleValueProps): React.ReactElement {\n\tconst numberFormatter = (value: number) =>\n\t\tIntl.NumberFormat(\"en-US\", {\n\t\t\tnotation: \"compact\",\n\t\t\tmaximumFractionDigits: decimalPlaces ?? 1,\n\t\t}).format(value);\n\n\tconst sanitizedValue = useSpring({\n\t\tcancel: disableAnimation,\n\t\tval: value,\n\t\tfrom: { val: 0 },\n\t\tconfig: {\n\t\t\tduration: animationDuration ?? globalAnimationDuration ?? 1000,\n\t\t},\n\t\tdelay: animationDelay ?? globalAnimationDelay ?? 10,\n\t});\n\n\tconst tooltipContent = `${label}: ${value}`;\n\treturn (\n\t\t<div className={`${styles[\"single-value-item\"]} text-center`}>\n\t\t\t<div className={styles[\"font-large\"]}>{label}</div>\n\t\t\t<Tooltip content={capitalize(tooltipContent)}>\n\t\t\t\t<animated.div\n\t\t\t\t\tclassName={`${styles[\"font-bold\"]} ${styles[\"font-xx-large\"]} ${styles[\"padding-top\"]}`}\n\t\t\t\t>\n\t\t\t\t\t{sanitizedValue.val.to((value) =>\n\t\t\t\t\t\tnumberFormatter(Math.floor(value)),\n\t\t\t\t\t)}\n\t\t\t\t</animated.div>\n\t\t\t</Tooltip>\n\t\t\t{percentage ? (\n\t\t\t\t<SingleValuePercentage color={color} percentage={percentage} />\n\t\t\t) : (\n\t\t\t\t<span></span>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.tsx"],"names":[],"mappings":";;;;AAIe,SAAR,qBAAuC,CAAA;AAAA,EAC7C,UAAA;AAAA,EACA,KAAA;AACD,CAA4B,EAAA;AAC3B,EAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AACd,EACC,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,OACd,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,OAAO,eAAe,CAAA;AAAA,MACjC,KAAA;AAAA,MACA,MAAQ,EAAA,UAAA;AAAA,KAAA;AAAA,GAEV,EAAA,CAAA,CAAA;AAEF","file":"SingleValuePercentage.js","sourcesContent":["import { LinearLoader } from \"@dhis2/ui\";\nimport React from \"react\";\nimport styles from \"../../styles/SingleValueContainer.module.css\";\n\nexport default function SingleValuePercentage({\n\tpercentage,\n\tcolor,\n}: any): React.ReactElement {\n\tconst width = \"100%\";\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t<LinearLoader\n\t\t\t\tclassName={styles[\"percent-value\"]}\n\t\t\t\twidth={width}\n\t\t\t\tamount={percentage}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.tsx"],"names":[],"mappings":";;;;AAIe,SAAR,qBAAuC,CAAA;AAAA,EAC7C,UAAA;AAAA,EACA;AACD,CAA4B,EAAA;AAC3B,EAAA,MAAM,KAAQ,GAAA,MAAA;AACd,EACC,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,OACd,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,OAAO,eAAe,CAAA;AAAA,MACjC,KAAA;AAAA,MACA,MAAQ,EAAA;AAAA;AAAA,GAEV,EAAA,CAAA;AAEF","file":"SingleValuePercentage.js","sourcesContent":["import { LinearLoader } from \"@dhis2/ui\";\nimport React from \"react\";\nimport styles from \"../../styles/SingleValueContainer.module.css\";\n\nexport default function SingleValuePercentage({\n\tpercentage,\n\tcolor,\n}: any): React.ReactElement {\n\tconst width = \"100%\";\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t<LinearLoader\n\t\t\t\tclassName={styles[\"percent-value\"]}\n\t\t\t\twidth={width}\n\t\t\t\tamount={percentage}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Visualization/components/AnalyticsDataProvider/index.tsx"],"names":["dimensions","filters"],"mappings":"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","file":"index.js","sourcesContent":["import React, { createContext, useContext, useEffect, useMemo } from \"react\";\nimport { Analytics, AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { useDimensions } from \"../DimensionsProvider/index.js\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport { useLayout } from \"../LayoutProvider/index.js\";\nimport { forEach, set } from \"lodash\";\n\nconst AnalyticsContext = createContext<\n\t{ loading: boolean; analytics: Analytics } | undefined\n>(undefined);\n\nconst analyticsQuery = {\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ dimensions, filters }: any) => {\n\t\t\treturn {\n\t\t\t\tdimension: Object.keys(dimensions).map(\n\t\t\t\t\t(dimension) =>\n\t\t\t\t\t\t`${dimension}:${dimensions[dimension]?.join(\";\")}`,\n\t\t\t\t),\n\t\t\t\tfilter: Object.keys(filters).map(\n\t\t\t\t\t(dimension) =>\n\t\t\t\t\t\t`${dimension}:${filters[dimension]?.join(\";\")}`,\n\t\t\t\t),\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface DataProviderProps {\n\tchildren: React.ReactNode;\n}\n\nexport function useAnalyticsData() {\n\treturn useContext(AnalyticsContext) ?? { analytics: {}, loading: false };\n}\n\nexport function AnalyticsDataProvider({ children }: DataProviderProps) {\n\tconst [analyticsDimensions] = useDimensions();\n\tconst [layout] = useLayout();\n\tconst { dimensions, filters } = useMemo(() => {\n\t\tconst dimensions = {};\n\t\tconst filters = {};\n\n\t\tforEach(\n\t\t\t[...(layout?.columns ?? []), ...(layout?.rows ?? [])],\n\t\t\t(dimension) => {\n\t\t\t\tset(\n\t\t\t\t\tdimensions,\n\t\t\t\t\t[dimension],\n\t\t\t\t\t(analyticsDimensions as AnalyticsDimension)?.[dimension],\n\t\t\t\t);\n\t\t\t},\n\t\t);\n\t\tforEach([...(layout?.filters ?? [])], (dimension) => {\n\t\t\tset(\n\t\t\t\tfilters,\n\t\t\t\t[dimension],\n\t\t\t\t(analyticsDimensions as AnalyticsDimension)?.[dimension],\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t};\n\t}, [layout, analyticsDimensions]);\n\n\tconst {\n\t\tdata: analytics,\n\t\terror,\n\t\tloading,\n\t\trefetch,\n\t\tcalled,\n\t} = useDataQuery(analyticsQuery, {\n\t\tvariables: {\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t},\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\trefetch({\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t});\n\t}, [dimensions, filters]);\n\n\tuseEffect(() => {\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t}, [error]);\n\n\treturn (\n\t\t<AnalyticsContext.Provider\n\t\t\tvalue={{ analytics: analytics?.analytics as Analytics, loading }}\n\t\t>\n\t\t\t{children}\n\t\t</AnalyticsContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Visualization/components/AnalyticsDataProvider/index.tsx"],"names":["dimensions","filters"],"mappings":"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","file":"index.js","sourcesContent":["import React, { createContext, useContext, useEffect, useMemo } from \"react\";\nimport { Analytics, AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { useDimensions } from \"../DimensionsProvider/index.js\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport { useLayout } from \"../LayoutProvider/index.js\";\nimport { forEach, set } from \"lodash\";\n\nconst AnalyticsContext = createContext<\n\t{ loading: boolean; analytics: Analytics } | undefined\n>(undefined);\n\nconst analyticsQuery = {\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ dimensions, filters }: any) => {\n\t\t\treturn {\n\t\t\t\tdimension: Object.keys(dimensions).map(\n\t\t\t\t\t(dimension) =>\n\t\t\t\t\t\t`${dimension}:${dimensions[dimension]?.join(\";\")}`,\n\t\t\t\t),\n\t\t\t\tfilter: Object.keys(filters).map(\n\t\t\t\t\t(dimension) =>\n\t\t\t\t\t\t`${dimension}:${filters[dimension]?.join(\";\")}`,\n\t\t\t\t),\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface DataProviderProps {\n\tchildren: React.ReactNode;\n}\n\nexport function useAnalyticsData() {\n\treturn useContext(AnalyticsContext) ?? { analytics: {}, loading: false };\n}\n\nexport function AnalyticsDataProvider({ children }: DataProviderProps) {\n\tconst [analyticsDimensions] = useDimensions();\n\tconst [layout] = useLayout();\n\tconst { dimensions, filters } = useMemo(() => {\n\t\tconst dimensions = {};\n\t\tconst filters = {};\n\n\t\tforEach(\n\t\t\t[...(layout?.columns ?? []), ...(layout?.rows ?? [])],\n\t\t\t(dimension) => {\n\t\t\t\tset(\n\t\t\t\t\tdimensions,\n\t\t\t\t\t[dimension],\n\t\t\t\t\t(analyticsDimensions as AnalyticsDimension)?.[dimension],\n\t\t\t\t);\n\t\t\t},\n\t\t);\n\t\tforEach([...(layout?.filters ?? [])], (dimension) => {\n\t\t\tset(\n\t\t\t\tfilters,\n\t\t\t\t[dimension],\n\t\t\t\t(analyticsDimensions as AnalyticsDimension)?.[dimension],\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t};\n\t}, [layout, analyticsDimensions]);\n\n\tconst {\n\t\tdata: analytics,\n\t\terror,\n\t\tloading,\n\t\trefetch,\n\t\tcalled,\n\t} = useDataQuery(analyticsQuery, {\n\t\tvariables: {\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t},\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\trefetch({\n\t\t\tdimensions,\n\t\t\tfilters,\n\t\t});\n\t}, [dimensions, filters]);\n\n\tuseEffect(() => {\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t}, [error]);\n\n\treturn (\n\t\t<AnalyticsContext.Provider\n\t\t\tvalue={{ analytics: analytics?.analytics as Analytics, loading }}\n\t\t>\n\t\t\t{children}\n\t\t</AnalyticsContext.Provider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Visualization/components/DimensionsProvider/index.tsx"],"names":[],"mappings":";;;;AAUO,MAAM,iBAAiB,aAAkC,CAAA;AAAA,EAC/D,IAAI,EAAC;AAAA,EACL,IAAI,EAAC;AAAA,EACL,IAAI,EAAC;AACN,CAAC,EAAA;AACM,MAAM,oBAAuB,GAAA,aAAA;AAAA,EACnC,KAAA,CAAA;AACD,EAAA;AAEA,SAAS,OACR,CAAA,KAAA,EACA,EAAE,SAAA,EAAW,OACZ,EAAA;AACD,EAAA,MAAM,YAAe,GAAA,EAAE,GAAI,KAAA,IAAS,EAAI,EAAA,CAAA;AACxC,EAAA,GAAA,CAAI,YAAc,EAAA,CAAC,SAAS,CAAA,EAAG,KAAK,CAAA,CAAA;AACpC,EAAO,OAAA,YAAA,CAAA;AACR,CAAA;AAOO,SAAS,aAAgB,GAAA;AAC/B,EAAA,OAAO,CAAC,UAAW,CAAA,cAAc,CAAG,EAAA,UAAA,CAAW,oBAAoB,CAAC,CAAA,CAAA;AAIrE,CAAA;AAEO,SAAS,kBAAmB,CAAA;AAAA,EAClC,QAAA;AAAA,EACA,UAAA;AACD,CAA2B,EAAA;AAC1B,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,UAAA,CAAW,SAAS,UAAU,CAAA,CAAA;AAExD,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,MAAA,CAAO,IAAK,CAAA,UAAU,CAAE,CAAA,OAAA,CAAQ,CAAC,SAAsB,KAAA;AACtD,MAAS,QAAA,CAAA;AAAA,QACR,SAAA;AAAA,QACA,KAAO,EAAA,UAAA,CAAW,SAAS,CAAA,IAAK,EAAC;AAAA,OACjC,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,uBACE,GAAA,CAAA,cAAA,CAAe,QAAf,EAAA,EAAwB,KAAO,EAAA,KAAA,EAC/B,QAAC,kBAAA,GAAA,CAAA,oBAAA,CAAqB,QAArB,EAAA,EAA8B,KAAO,EAAA,QAAA,EACpC,UACF,CACD,EAAA,CAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React, { createContext, useContext, useEffect, useReducer } from \"react\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { set } from \"lodash\";\n\nexport type Dimension = \"ou\" | \"pe\" | \"dx\" | \"co\";\n\nexport type DimensionUpdater = (data: {\n\tdimension: Dimension;\n\tvalue: string[];\n}) => void;\nexport const DimensionState = createContext<AnalyticsDimension>({\n\tdx: [],\n\tpe: [],\n\tou: [],\n});\nexport const DimensionUpdateState = createContext<DimensionUpdater | undefined>(\n\tundefined,\n);\n\nfunction reducer(\n\tstate: AnalyticsDimension,\n\t{ dimension, value }: { dimension: Dimension; value: string[] },\n) {\n\tconst updatedState = { ...(state ?? {}) };\n\tset(updatedState, [dimension], value);\n\treturn updatedState;\n}\n\nexport interface DimensionProviderProps {\n\tchildren: React.ReactNode;\n\tdimensions: AnalyticsDimension;\n}\n\nexport function useDimensions() {\n\treturn [useContext(DimensionState), useContext(DimensionUpdateState)] as [\n\t\tAnalyticsDimension,\n\t\tDimensionUpdater,\n\t];\n}\n\nexport function DimensionsProvider({\n\tchildren,\n\tdimensions,\n}: DimensionProviderProps) {\n\tconst [state, dispatch] = useReducer(reducer, dimensions);\n\n\tuseEffect(() => {\n\t\tObject.keys(dimensions).forEach((dimension: string) => {\n\t\t\tdispatch({\n\t\t\t\tdimension: dimension as Dimension,\n\t\t\t\tvalue: dimensions[dimension] ?? [],\n\t\t\t});\n\t\t});\n\t}, [dimensions]);\n\n\treturn (\n\t\t<DimensionState.Provider value={state}>\n\t\t\t<DimensionUpdateState.Provider value={dispatch}>\n\t\t\t\t{children}\n\t\t\t</DimensionUpdateState.Provider>\n\t\t</DimensionState.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Visualization/components/DimensionsProvider/index.tsx"],"names":[],"mappings":";;;;AAUO,MAAM,iBAAiB,aAAkC,CAAA;AAAA,EAC/D,IAAI,EAAC;AAAA,EACL,IAAI,EAAC;AAAA,EACL,IAAI;AACL,CAAC;AACM,MAAM,oBAAuB,GAAA,aAAA;AAAA,EACnC;AACD;AAEA,SAAS,OACR,CAAA,KAAA,EACA,EAAE,SAAA,EAAW,OACZ,EAAA;AACD,EAAA,MAAM,YAAe,GAAA,EAAE,GAAI,KAAA,IAAS,EAAI,EAAA;AACxC,EAAA,GAAA,CAAI,YAAc,EAAA,CAAC,SAAS,CAAA,EAAG,KAAK,CAAA;AACpC,EAAO,OAAA,YAAA;AACR;AAOO,SAAS,aAAgB,GAAA;AAC/B,EAAA,OAAO,CAAC,UAAW,CAAA,cAAc,CAAG,EAAA,UAAA,CAAW,oBAAoB,CAAC,CAAA;AAIrE;AAEO,SAAS,kBAAmB,CAAA;AAAA,EAClC,QAAA;AAAA,EACA;AACD,CAA2B,EAAA;AAC1B,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,UAAA,CAAW,SAAS,UAAU,CAAA;AAExD,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,MAAA,CAAO,IAAK,CAAA,UAAU,CAAE,CAAA,OAAA,CAAQ,CAAC,SAAsB,KAAA;AACtD,MAAS,QAAA,CAAA;AAAA,QACR,SAAA;AAAA,QACA,KAAO,EAAA,UAAA,CAAW,SAAS,CAAA,IAAK;AAAC,OACjC,CAAA;AAAA,KACD,CAAA;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,uBACE,GAAA,CAAA,cAAA,CAAe,QAAf,EAAA,EAAwB,KAAO,EAAA,KAAA,EAC/B,QAAC,kBAAA,GAAA,CAAA,oBAAA,CAAqB,QAArB,EAAA,EAA8B,KAAO,EAAA,QAAA,EACpC,UACF,CACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React, { createContext, useContext, useEffect, useReducer } from \"react\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { set } from \"lodash\";\n\nexport type Dimension = \"ou\" | \"pe\" | \"dx\" | \"co\";\n\nexport type DimensionUpdater = (data: {\n\tdimension: Dimension;\n\tvalue: string[];\n}) => void;\nexport const DimensionState = createContext<AnalyticsDimension>({\n\tdx: [],\n\tpe: [],\n\tou: [],\n});\nexport const DimensionUpdateState = createContext<DimensionUpdater | undefined>(\n\tundefined,\n);\n\nfunction reducer(\n\tstate: AnalyticsDimension,\n\t{ dimension, value }: { dimension: Dimension; value: string[] },\n) {\n\tconst updatedState = { ...(state ?? {}) };\n\tset(updatedState, [dimension], value);\n\treturn updatedState;\n}\n\nexport interface DimensionProviderProps {\n\tchildren: React.ReactNode;\n\tdimensions: AnalyticsDimension;\n}\n\nexport function useDimensions() {\n\treturn [useContext(DimensionState), useContext(DimensionUpdateState)] as [\n\t\tAnalyticsDimension,\n\t\tDimensionUpdater,\n\t];\n}\n\nexport function DimensionsProvider({\n\tchildren,\n\tdimensions,\n}: DimensionProviderProps) {\n\tconst [state, dispatch] = useReducer(reducer, dimensions);\n\n\tuseEffect(() => {\n\t\tObject.keys(dimensions).forEach((dimension: string) => {\n\t\t\tdispatch({\n\t\t\t\tdimension: dimension as Dimension,\n\t\t\t\tvalue: dimensions[dimension] ?? [],\n\t\t\t});\n\t\t});\n\t}, [dimensions]);\n\n\treturn (\n\t\t<DimensionState.Provider value={state}>\n\t\t\t<DimensionUpdateState.Provider value={dispatch}>\n\t\t\t\t{children}\n\t\t\t</DimensionUpdateState.Provider>\n\t\t</DimensionState.Provider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Visualization/components/LayoutProvider/index.tsx"],"names":[],"mappings":";;;AAca,MAAA,WAAA,GAAc,cAAkC,KAAS,CAAA,EAAA;AAE/D,SAAS,SAAY,GAAA;AAC3B,EAAA,OAAO,CAAC,UAAA,CAAW,WAAW,CAAA,IAAK,EAAE,IAAM,EAAA,EAAI,EAAA,OAAA,EAAS,EAAC,EAAG,OAAS,EAAA,IAAI,CAAA,CAAA;AAC1E,CAAA;AAEO,SAAS,cAAe,CAAA;AAAA,EAC9B,aAAA;AAAA,EACA,QAAA;AACD,CAAwB,EAAA;AACvB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,aAAa,CAAA,CAAA;AAElD,EAAA,2BACE,WAAY,CAAA,QAAA,EAAZ,EAAqB,KAAA,EAAO,QAAS,QAAS,EAAA,CAAA,CAAA;AAEjD","file":"index.js","sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\nimport { Dimension } from \"../DimensionsProvider/index.js\";\n\nexport interface Layout {\n\trows: Dimension[];\n\tcolumns: Dimension[];\n\tfilters: Dimension[];\n}\n\nexport interface LayoutProviderProps {\n\tchildren: React.ReactNode;\n\tdefaultLayout: Layout;\n}\n\nexport const LayoutState = createContext<Layout | undefined>(undefined);\n\nexport function useLayout() {\n\treturn [useContext(LayoutState) ?? { rows: [], filters: [], columns: [] }];\n}\n\nexport function LayoutProvider({\n\tdefaultLayout,\n\tchildren,\n}: LayoutProviderProps) {\n\tconst [layout, setLayout] = useState(defaultLayout);\n\n\treturn (\n\t\t<LayoutState.Provider value={layout}>{children}</LayoutState.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Visualization/components/LayoutProvider/index.tsx"],"names":[],"mappings":";;;AAca,MAAA,WAAA,GAAc,cAAkC,MAAS;AAE/D,SAAS,SAAY,GAAA;AAC3B,EAAA,OAAO,CAAC,UAAA,CAAW,WAAW,CAAA,IAAK,EAAE,IAAM,EAAA,EAAI,EAAA,OAAA,EAAS,EAAC,EAAG,OAAS,EAAA,IAAI,CAAA;AAC1E;AAEO,SAAS,cAAe,CAAA;AAAA,EAC9B,aAAA;AAAA,EACA;AACD,CAAwB,EAAA;AACvB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,aAAa,CAAA;AAElD,EAAA,2BACE,WAAY,CAAA,QAAA,EAAZ,EAAqB,KAAA,EAAO,QAAS,QAAS,EAAA,CAAA;AAEjD","file":"index.js","sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\nimport { Dimension } from \"../DimensionsProvider/index.js\";\n\nexport interface Layout {\n\trows: Dimension[];\n\tcolumns: Dimension[];\n\tfilters: Dimension[];\n}\n\nexport interface LayoutProviderProps {\n\tchildren: React.ReactNode;\n\tdefaultLayout: Layout;\n}\n\nexport const LayoutState = createContext<Layout | undefined>(undefined);\n\nexport function useLayout() {\n\treturn [useContext(LayoutState) ?? { rows: [], filters: [], columns: [] }];\n}\n\nexport function LayoutProvider({\n\tdefaultLayout,\n\tchildren,\n}: LayoutProviderProps) {\n\tconst [layout, setLayout] = useState(defaultLayout);\n\n\treturn (\n\t\t<LayoutState.Provider value={layout}>{children}</LayoutState.Provider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationDimensionSelector/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { Button, IconClock24, IconLocation24, Tooltip } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useDimensions } from \"../DimensionsProvider/index.js\";\nimport { OrgUnitSelectorModal, PeriodSelectorModal } from \"@hisptz/dhis2-ui\";\nimport { OrgUnitSelection } from \"@hisptz/dhis2-utils\";\nimport { getOrgUnitSelectionFromIds } from \"../VisualizationSelector/index.js\";\nimport { getOrgUnitsSelection } from \"../../../Map/utils/map.js\";\n\nexport function VisualizationDimensionSelector({\n\tshowPeriodSelector,\n\tshowOrgUnitSelector,\n}: {\n\tshowPeriodSelector?: boolean;\n\tshowOrgUnitSelector?: boolean;\n}) {\n\tconst [dimensions, setDimensions] = useDimensions();\n\tconst periods = useMemo(() => dimensions.pe, [dimensions.pe]);\n\tconst orgUnitSelection = useMemo(\n\t\t() => getOrgUnitSelectionFromIds(dimensions.ou ?? []),\n\t\t[dimensions.ou],\n\t);\n\tconst [openFilter, setOpenFilter] = useState<\"pe\" | \"ou\" | undefined>();\n\n\tconst onFilterUpdate = useCallback(\n\t\t(type: \"ou\" | \"pe\") => (data: OrgUnitSelection | any) => {\n\t\t\tsetOpenFilter(undefined);\n\t\t\tif (type === \"ou\") {\n\t\t\t\tsetDimensions({\n\t\t\t\t\tdimension: \"ou\",\n\t\t\t\t\tvalue: getOrgUnitsSelection(data),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (type === \"pe\") {\n\t\t\t\tsetDimensions({ dimension: \"pe\", value: data });\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\t[setDimensions],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div style={{ display: \"flex\", gap: 8 }}>\n\t\t\t\t{showPeriodSelector && (\n\t\t\t\t\t<Tooltip content={i18n.t(\"Period\")}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PeriodSelectorModal\n\t\t\t\t\t\t\t\tposition=\"middle\"\n\t\t\t\t\t\t\t\tenablePeriodSelector\n\t\t\t\t\t\t\t\tselectedPeriods={periods}\n\t\t\t\t\t\t\t\tonClose={() => setOpenFilter(undefined)}\n\t\t\t\t\t\t\t\thide={openFilter !== \"pe\"}\n\t\t\t\t\t\t\t\tonUpdate={onFilterUpdate(\"pe\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setOpenFilter(\"pe\")}\n\t\t\t\t\t\t\t\ticon={<IconClock24 />}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t\t{showOrgUnitSelector && (\n\t\t\t\t\t<Tooltip content={i18n.t(\"Location\")}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<OrgUnitSelectorModal\n\t\t\t\t\t\t\t\tshowUserOptions\n\t\t\t\t\t\t\t\tsearchable\n\t\t\t\t\t\t\t\ttitle={i18n.t(\"Select location(s)\")}\n\t\t\t\t\t\t\t\tvalue={orgUnitSelection}\n\t\t\t\t\t\t\t\tonClose={() => setOpenFilter(undefined)}\n\t\t\t\t\t\t\t\thide={openFilter !== \"ou\"}\n\t\t\t\t\t\t\t\tonUpdate={onFilterUpdate(\"ou\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setOpenFilter(\"ou\")}\n\t\t\t\t\t\t\t\ticon={<IconLocation24 />}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationDimensionSelector/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { Button, IconClock24, IconLocation24, Tooltip } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useDimensions } from \"../DimensionsProvider/index.js\";\nimport { OrgUnitSelectorModal, PeriodSelectorModal } from \"@hisptz/dhis2-ui\";\nimport { OrgUnitSelection } from \"@hisptz/dhis2-utils\";\nimport { getOrgUnitSelectionFromIds } from \"../VisualizationSelector/index.js\";\nimport { getOrgUnitsSelection } from \"../../../Map/utils/map.js\";\n\nexport function VisualizationDimensionSelector({\n\tshowPeriodSelector,\n\tshowOrgUnitSelector,\n}: {\n\tshowPeriodSelector?: boolean;\n\tshowOrgUnitSelector?: boolean;\n}) {\n\tconst [dimensions, setDimensions] = useDimensions();\n\tconst periods = useMemo(() => dimensions.pe, [dimensions.pe]);\n\tconst orgUnitSelection = useMemo(\n\t\t() => getOrgUnitSelectionFromIds(dimensions.ou ?? []),\n\t\t[dimensions.ou],\n\t);\n\tconst [openFilter, setOpenFilter] = useState<\"pe\" | \"ou\" | undefined>();\n\n\tconst onFilterUpdate = useCallback(\n\t\t(type: \"ou\" | \"pe\") => (data: OrgUnitSelection | any) => {\n\t\t\tsetOpenFilter(undefined);\n\t\t\tif (type === \"ou\") {\n\t\t\t\tsetDimensions({\n\t\t\t\t\tdimension: \"ou\",\n\t\t\t\t\tvalue: getOrgUnitsSelection(data),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (type === \"pe\") {\n\t\t\t\tsetDimensions({ dimension: \"pe\", value: data });\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\t[setDimensions],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div style={{ display: \"flex\", gap: 8 }}>\n\t\t\t\t{showPeriodSelector && (\n\t\t\t\t\t<Tooltip content={i18n.t(\"Period\")}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PeriodSelectorModal\n\t\t\t\t\t\t\t\tposition=\"middle\"\n\t\t\t\t\t\t\t\tenablePeriodSelector\n\t\t\t\t\t\t\t\tselectedPeriods={periods}\n\t\t\t\t\t\t\t\tonClose={() => setOpenFilter(undefined)}\n\t\t\t\t\t\t\t\thide={openFilter !== \"pe\"}\n\t\t\t\t\t\t\t\tonUpdate={onFilterUpdate(\"pe\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setOpenFilter(\"pe\")}\n\t\t\t\t\t\t\t\ticon={<IconClock24 />}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t\t{showOrgUnitSelector && (\n\t\t\t\t\t<Tooltip content={i18n.t(\"Location\")}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<OrgUnitSelectorModal\n\t\t\t\t\t\t\t\tshowUserOptions\n\t\t\t\t\t\t\t\tsearchable\n\t\t\t\t\t\t\t\ttitle={i18n.t(\"Select location(s)\")}\n\t\t\t\t\t\t\t\tvalue={orgUnitSelection}\n\t\t\t\t\t\t\t\tonClose={() => setOpenFilter(undefined)}\n\t\t\t\t\t\t\t\thide={openFilter !== \"ou\"}\n\t\t\t\t\t\t\t\tonUpdate={onFilterUpdate(\"ou\")}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={() => setOpenFilter(\"ou\")}\n\t\t\t\t\t\t\t\ticon={<IconLocation24 />}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationProvider/index.tsx"],"names":[],"mappings":";;;;;;AAmBO,SAAS,qBAAsB,CAAA;AAAA,EACrC,MAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AACD,CAA+B,EAAA;AAC9B,EAAA,2BACE,kBAAmB,EAAA,EAAA,UAAA,EACnB,QAAC,kBAAA,GAAA,CAAA,yBAAA,EAAA,EAA0B,QAAgB,WAAa,EAAA,IAAA,EACvD,QAAC,kBAAA,GAAA,CAAA,cAAA,EAAA,EAAe,eAAe,MAC9B,EAAA,QAAA,kBAAA,GAAA,CAAC,yBAAuB,QAAS,EAAA,CAAA,EAClC,GACD,CACD,EAAA,CAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React from \"react\";\nimport { Layout, LayoutProvider } from \"../LayoutProvider/index.js\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { DimensionsProvider } from \"../DimensionsProvider/index.js\";\nimport { AnalyticsDataProvider } from \"../AnalyticsDataProvider/index.js\";\nimport {\n\tVisualizationType,\n\tVisualizationTypeProvider,\n} from \"../VisualizationTypeProvider/index.js\";\nimport { VisualizationConfig } from \"../../index.js\";\n\nexport interface VisualizationProviderProps {\n\tchildren: React.ReactNode;\n\tlayout: Layout;\n\tdimensions: AnalyticsDimension;\n\ttype: VisualizationType;\n\tconfig: VisualizationConfig;\n}\n\nexport function VisualizationProvider({\n\tlayout,\n\tdimensions,\n\tchildren,\n\ttype,\n\tconfig,\n}: VisualizationProviderProps) {\n\treturn (\n\t\t<DimensionsProvider dimensions={dimensions}>\n\t\t\t<VisualizationTypeProvider config={config} defaultType={type}>\n\t\t\t\t<LayoutProvider defaultLayout={layout}>\n\t\t\t\t\t<AnalyticsDataProvider>{children}</AnalyticsDataProvider>\n\t\t\t\t</LayoutProvider>\n\t\t\t</VisualizationTypeProvider>\n\t\t</DimensionsProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationProvider/index.tsx"],"names":[],"mappings":";;;;;;AAmBO,SAAS,qBAAsB,CAAA;AAAA,EACrC,MAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAA+B,EAAA;AAC9B,EAAA,2BACE,kBAAmB,EAAA,EAAA,UAAA,EACnB,QAAC,kBAAA,GAAA,CAAA,yBAAA,EAAA,EAA0B,QAAgB,WAAa,EAAA,IAAA,EACvD,QAAC,kBAAA,GAAA,CAAA,cAAA,EAAA,EAAe,eAAe,MAC9B,EAAA,QAAA,kBAAA,GAAA,CAAC,yBAAuB,QAAS,EAAA,CAAA,EAClC,GACD,CACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React from \"react\";\nimport { Layout, LayoutProvider } from \"../LayoutProvider/index.js\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { DimensionsProvider } from \"../DimensionsProvider/index.js\";\nimport { AnalyticsDataProvider } from \"../AnalyticsDataProvider/index.js\";\nimport {\n\tVisualizationType,\n\tVisualizationTypeProvider,\n} from \"../VisualizationTypeProvider/index.js\";\nimport { VisualizationConfig } from \"../../index.js\";\n\nexport interface VisualizationProviderProps {\n\tchildren: React.ReactNode;\n\tlayout: Layout;\n\tdimensions: AnalyticsDimension;\n\ttype: VisualizationType;\n\tconfig: VisualizationConfig;\n}\n\nexport function VisualizationProvider({\n\tlayout,\n\tdimensions,\n\tchildren,\n\ttype,\n\tconfig,\n}: VisualizationProviderProps) {\n\treturn (\n\t\t<DimensionsProvider dimensions={dimensions}>\n\t\t\t<VisualizationTypeProvider config={config} defaultType={type}>\n\t\t\t\t<LayoutProvider defaultLayout={layout}>\n\t\t\t\t\t<AnalyticsDataProvider>{children}</AnalyticsDataProvider>\n\t\t\t\t</LayoutProvider>\n\t\t\t</VisualizationTypeProvider>\n\t\t</DimensionsProvider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationSelector/index.tsx"],"names":["dimension","value"],"mappings":"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","file":"index.js","sourcesContent":["import React, { useMemo } from \"react\";\nimport { useVisualizationType } from \"../VisualizationTypeProvider/index.js\";\nimport { useAnalyticsData } from \"../AnalyticsDataProvider/index.js\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport {\n\tDHIS2PivotTable,\n\tDHIS2PivotTableOptions,\n} from \"../../../DHIS2PivotTable/index.js\";\nimport { useLayout } from \"../LayoutProvider/index.js\";\nimport { filter, find, findIndex, forEach, mapValues, set } from \"lodash\";\nimport { Dimension, useDimensions } from \"../DimensionsProvider/index.js\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { ChartConfig, DHIS2Chart } from \"../../../ChartAnalytics/index.js\";\nimport { VisualizationConfig } from \"../../index.js\";\nimport { DHIS2Map, MapProps } from \"../../../Map/index.js\";\nimport { OrgUnitSelection } from \"@hisptz/dhis2-utils\";\nimport {\n\tThematicLayerConfig,\n\tThematicLayerRawData,\n} from \"../../../Map/components/MapLayer/interfaces/index.js\";\nimport type { PivotTableLayoutProps } from \"../../../DHIS2PivotTable/components/Table/index.js\";\n\nexport interface VisualizationSelectorProps {\n\tconfig: VisualizationConfig;\n}\n\nexport function getDimensionLabel(dimension: Dimension) {\n\tswitch (dimension) {\n\t\tcase \"pe\":\n\t\t\treturn i18n.t(\"Period\");\n\t\tcase \"ou\":\n\t\t\treturn i18n.t(\"Organisation unit\");\n\t\tcase \"dx\":\n\t\t\treturn i18n.t(\"Data\");\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n}\n\nexport function getOrgUnitSelectionFromIds(ous: string[]) {\n\tconst orgUnitSelection: OrgUnitSelection = {\n\t\torgUnits: [],\n\t};\n\tforEach(ous, (ou) => {\n\t\tif (ou === \"USER_ORGUNIT\") {\n\t\t\tset(orgUnitSelection, [\"userOrgUnit\"], true);\n\t\t} else if (ou === \"USER_ORGUNIT_CHILDREN\") {\n\t\t\tset(orgUnitSelection, [\"userSubUnit\"], true);\n\t\t} else if (ou === \"USER_ORGUNIT_GRANDCHILDREN\") {\n\t\t\tset(orgUnitSelection, [\"userSubX2Unit\"], true);\n\t\t} else {\n\t\t\tconst orgUnits = [...(orgUnitSelection.orgUnits ?? [])];\n\t\t\torgUnits.push({\n\t\t\t\tid: ou,\n\t\t\t\tchildren: [],\n\t\t\t\tpath: \"\",\n\t\t\t});\n\t\t\tset(orgUnitSelection, [\"orgUnits\"], orgUnits);\n\t\t}\n\t});\n\treturn orgUnitSelection;\n}\n\nexport function PivotTableRenderer({\n\toptions,\n}: {\n\toptions: DHIS2PivotTableOptions & PivotTableLayoutProps;\n}) {\n\tconst [layout] = useLayout();\n\tconst { analytics } = useAnalyticsData();\n\n\tconst sanitizedLayout = useMemo(() => {\n\t\treturn mapValues(layout, (dimension) =>\n\t\t\tdimension.map((dimension) => ({\n\t\t\t\tdimension,\n\t\t\t\tlabel: getDimensionLabel(dimension),\n\t\t\t})),\n\t\t);\n\t}, [layout]);\n\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DHIS2PivotTable\n\t\t\ttableProps={{\n\t\t\t\tscrollHeight: options.scrollHeight ?? \"100%\",\n\t\t\t\tscrollWidth: options.scrollWidth ?? \"100%\",\n\t\t\t\twidth: options.width ?? \"100%\",\n\t\t\t}}\n\t\t\tanalytics={analytics}\n\t\t\tconfig={{ layout: sanitizedLayout, options }}\n\t\t/>\n\t);\n}\n\nexport function ChartRenderer({ options }: { options: ChartConfig }) {\n\tconst { analytics } = useAnalyticsData();\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\treturn <DHIS2Chart analytics={analytics} config={{ ...options }} />;\n}\n\nexport function MapRenderer({\n\toptions,\n}: {\n\toptions: Omit<MapProps, \"orgUnitSelection\" | \"periodSelection\">;\n}) {\n\tconst [dimensions] = useDimensions();\n\tconst { analytics } = useAnalyticsData();\n\tconst orgUnitSelection: OrgUnitSelection = useMemo(() => {\n\t\treturn getOrgUnitSelectionFromIds(dimensions.ou ?? []);\n\t}, [dimensions.ou]);\n\n\tconst thematicLayers: ThematicLayerConfig[] = useMemo(() => {\n\t\tconst valueIndex =\n\t\t\tfindIndex(analytics.headers, [\"name\", \"value\"]) ?? -1;\n\t\treturn (\n\t\t\tanalytics.metaData?.dimensions[\"dx\"]?.map((dataId) => {\n\t\t\t\tconst config = find(options.thematicLayers, [\"id\", dataId]);\n\t\t\t\tconst data: ThematicLayerRawData[] =\n\t\t\t\t\tanalytics.metaData?.dimensions?.ou?.map((ouId) => {\n\t\t\t\t\t\tconst values = filter(\n\t\t\t\t\t\t\tanalytics.rows,\n\t\t\t\t\t\t\t(row) => row.includes(dataId) && row.includes(ouId),\n\t\t\t\t\t\t) as unknown as string[];\n\t\t\t\t\t\tconst value = values.reduce(\n\t\t\t\t\t\t\t(acc, value) => acc + parseFloat(value[valueIndex]),\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdata: value,\n\t\t\t\t\t\t\tdataItem: dataId,\n\t\t\t\t\t\t\torgUnit: ouId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}) ?? [];\n\t\t\t\treturn {\n\t\t\t\t\t...config,\n\t\t\t\t\tdata,\n\t\t\t\t} as ThematicLayerConfig;\n\t\t\t}) ?? []\n\t\t);\n\t}, [analytics]);\n\n\treturn (\n\t\t<DHIS2Map\n\t\t\torgUnitSelection={orgUnitSelection}\n\t\t\tthematicLayers={thematicLayers}\n\t\t/>\n\t);\n}\n\nexport function VisualizationSelector({ config }: VisualizationSelectorProps) {\n\tconst [type] = useVisualizationType();\n\tconst { analytics, loading } = useAnalyticsData();\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{type === \"pivotTable\" && (\n\t\t\t\t<PivotTableRenderer\n\t\t\t\t\toptions={config?.pivotTable as DHIS2PivotTableOptions}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{type === \"chart\" && (\n\t\t\t\t<ChartRenderer options={config?.chart as ChartConfig} />\n\t\t\t)}\n\t\t\t{type === \"map\" && (\n\t\t\t\t<MapRenderer\n\t\t\t\t\toptions={\n\t\t\t\t\t\tconfig?.map as Omit<\n\t\t\t\t\t\t\tMapProps,\n\t\t\t\t\t\t\t\"orgUnitSelection\" | \"periodSelection\"\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationSelector/index.tsx"],"names":["dimension","value"],"mappings":"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","file":"index.js","sourcesContent":["import React, { useMemo } from \"react\";\nimport { useVisualizationType } from \"../VisualizationTypeProvider/index.js\";\nimport { useAnalyticsData } from \"../AnalyticsDataProvider/index.js\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport {\n\tDHIS2PivotTable,\n\tDHIS2PivotTableOptions,\n} from \"../../../DHIS2PivotTable/index.js\";\nimport { useLayout } from \"../LayoutProvider/index.js\";\nimport { filter, find, findIndex, forEach, mapValues, set } from \"lodash\";\nimport { Dimension, useDimensions } from \"../DimensionsProvider/index.js\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { ChartConfig, DHIS2Chart } from \"../../../ChartAnalytics/index.js\";\nimport { VisualizationConfig } from \"../../index.js\";\nimport { DHIS2Map, MapProps } from \"../../../Map/index.js\";\nimport { OrgUnitSelection } from \"@hisptz/dhis2-utils\";\nimport {\n\tThematicLayerConfig,\n\tThematicLayerRawData,\n} from \"../../../Map/components/MapLayer/interfaces/index.js\";\nimport type { PivotTableLayoutProps } from \"../../../DHIS2PivotTable/components/Table/index.js\";\n\nexport interface VisualizationSelectorProps {\n\tconfig: VisualizationConfig;\n}\n\nexport function getDimensionLabel(dimension: Dimension) {\n\tswitch (dimension) {\n\t\tcase \"pe\":\n\t\t\treturn i18n.t(\"Period\");\n\t\tcase \"ou\":\n\t\t\treturn i18n.t(\"Organisation unit\");\n\t\tcase \"dx\":\n\t\t\treturn i18n.t(\"Data\");\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n}\n\nexport function getOrgUnitSelectionFromIds(ous: string[]) {\n\tconst orgUnitSelection: OrgUnitSelection = {\n\t\torgUnits: [],\n\t};\n\tforEach(ous, (ou) => {\n\t\tif (ou === \"USER_ORGUNIT\") {\n\t\t\tset(orgUnitSelection, [\"userOrgUnit\"], true);\n\t\t} else if (ou === \"USER_ORGUNIT_CHILDREN\") {\n\t\t\tset(orgUnitSelection, [\"userSubUnit\"], true);\n\t\t} else if (ou === \"USER_ORGUNIT_GRANDCHILDREN\") {\n\t\t\tset(orgUnitSelection, [\"userSubX2Unit\"], true);\n\t\t} else {\n\t\t\tconst orgUnits = [...(orgUnitSelection.orgUnits ?? [])];\n\t\t\torgUnits.push({\n\t\t\t\tid: ou,\n\t\t\t\tchildren: [],\n\t\t\t\tpath: \"\",\n\t\t\t});\n\t\t\tset(orgUnitSelection, [\"orgUnits\"], orgUnits);\n\t\t}\n\t});\n\treturn orgUnitSelection;\n}\n\nexport function PivotTableRenderer({\n\toptions,\n}: {\n\toptions: DHIS2PivotTableOptions & PivotTableLayoutProps;\n}) {\n\tconst [layout] = useLayout();\n\tconst { analytics } = useAnalyticsData();\n\n\tconst sanitizedLayout = useMemo(() => {\n\t\treturn mapValues(layout, (dimension) =>\n\t\t\tdimension.map((dimension) => ({\n\t\t\t\tdimension,\n\t\t\t\tlabel: getDimensionLabel(dimension),\n\t\t\t})),\n\t\t);\n\t}, [layout]);\n\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DHIS2PivotTable\n\t\t\ttableProps={{\n\t\t\t\tscrollHeight: options.scrollHeight ?? \"100%\",\n\t\t\t\tscrollWidth: options.scrollWidth ?? \"100%\",\n\t\t\t\twidth: options.width ?? \"100%\",\n\t\t\t}}\n\t\t\tanalytics={analytics}\n\t\t\tconfig={{ layout: sanitizedLayout, options }}\n\t\t/>\n\t);\n}\n\nexport function ChartRenderer({ options }: { options: ChartConfig }) {\n\tconst { analytics } = useAnalyticsData();\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\treturn <DHIS2Chart analytics={analytics} config={{ ...options }} />;\n}\n\nexport function MapRenderer({\n\toptions,\n}: {\n\toptions: Omit<MapProps, \"orgUnitSelection\" | \"periodSelection\">;\n}) {\n\tconst [dimensions] = useDimensions();\n\tconst { analytics } = useAnalyticsData();\n\tconst orgUnitSelection: OrgUnitSelection = useMemo(() => {\n\t\treturn getOrgUnitSelectionFromIds(dimensions.ou ?? []);\n\t}, [dimensions.ou]);\n\n\tconst thematicLayers: ThematicLayerConfig[] = useMemo(() => {\n\t\tconst valueIndex =\n\t\t\tfindIndex(analytics.headers, [\"name\", \"value\"]) ?? -1;\n\t\treturn (\n\t\t\tanalytics.metaData?.dimensions[\"dx\"]?.map((dataId) => {\n\t\t\t\tconst config = find(options.thematicLayers, [\"id\", dataId]);\n\t\t\t\tconst data: ThematicLayerRawData[] =\n\t\t\t\t\tanalytics.metaData?.dimensions?.ou?.map((ouId) => {\n\t\t\t\t\t\tconst values = filter(\n\t\t\t\t\t\t\tanalytics.rows,\n\t\t\t\t\t\t\t(row) => row.includes(dataId) && row.includes(ouId),\n\t\t\t\t\t\t) as unknown as string[];\n\t\t\t\t\t\tconst value = values.reduce(\n\t\t\t\t\t\t\t(acc, value) => acc + parseFloat(value[valueIndex]),\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tdata: value,\n\t\t\t\t\t\t\tdataItem: dataId,\n\t\t\t\t\t\t\torgUnit: ouId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}) ?? [];\n\t\t\t\treturn {\n\t\t\t\t\t...config,\n\t\t\t\t\tdata,\n\t\t\t\t} as ThematicLayerConfig;\n\t\t\t}) ?? []\n\t\t);\n\t}, [analytics]);\n\n\treturn (\n\t\t<DHIS2Map\n\t\t\torgUnitSelection={orgUnitSelection}\n\t\t\tthematicLayers={thematicLayers}\n\t\t/>\n\t);\n}\n\nexport function VisualizationSelector({ config }: VisualizationSelectorProps) {\n\tconst [type] = useVisualizationType();\n\tconst { analytics, loading } = useAnalyticsData();\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\tif (!analytics) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{type === \"pivotTable\" && (\n\t\t\t\t<PivotTableRenderer\n\t\t\t\t\toptions={config?.pivotTable as DHIS2PivotTableOptions}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{type === \"chart\" && (\n\t\t\t\t<ChartRenderer options={config?.chart as ChartConfig} />\n\t\t\t)}\n\t\t\t{type === \"map\" && (\n\t\t\t\t<MapRenderer\n\t\t\t\t\toptions={\n\t\t\t\t\t\tconfig?.map as Omit<\n\t\t\t\t\t\t\tMapProps,\n\t\t\t\t\t\t\t\"orgUnitSelection\" | \"periodSelection\"\n\t\t\t\t\t\t>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationTypeProvider/index.tsx"],"names":[],"mappings":";;;AAKa,MAAA,wBAAA,GACZ,cAAiC,YAAY,EAAA;AACjC,MAAA,0BAAA,GAA6B,cAExC,KAAS,CAAA,EAAA;AACE,MAAA,uBAAA,GAA0B,cAErC,KAAS,CAAA,EAAA;AAQJ,SAAS,oBAAuB,GAAA;AACtC,EAAO,OAAA;AAAA,IACN,WAAW,wBAAwB,CAAA;AAAA,IACnC,WAAW,uBAAuB,CAAA;AAAA,GACnC,CAAA;AAID,CAAA;AAEO,SAAS,sBAAyB,GAAA;AACxC,EAAA,OAAO,WAAW,0BAA0B,CAAA,CAAA;AAC7C,CAAA;AAEO,SAAS,yBAA0B,CAAA;AAAA,EACzC,QAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA4B,WAAW,CAAA,CAAA;AAE/D,EACC,uBAAA,GAAA,CAAC,yBAAyB,QAAzB,EAAA,EAAkC,OAAO,IACzC,EAAA,QAAA,kBAAA,GAAA,CAAC,2BAA2B,QAA3B,EAAA,EAAoC,OAAO,MAC3C,EAAA,QAAA,kBAAA,GAAA,CAAC,wBAAwB,QAAxB,EAAA,EAAiC,OAAO,OACvC,EAAA,QAAA,EACF,GACD,CACD,EAAA,CAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\nimport { VisualizationConfig } from \"../../index.js\";\n\nexport type VisualizationType = \"pivotTable\" | \"chart\" | \"map\";\n\nexport const VisualizationTypeContext =\n\tcreateContext<VisualizationType>(\"pivotTable\");\nexport const VisualizationConfigContext = createContext<\n\tVisualizationConfig | undefined\n>(undefined);\nexport const VisualizationTypeSetter = createContext<\n\tReact.Dispatch<React.SetStateAction<VisualizationType>> | undefined\n>(undefined);\n\nexport interface VisualizationTypeProviderProps {\n\tchildren: React.ReactNode;\n\tdefaultType: VisualizationType;\n\tconfig: VisualizationConfig;\n}\n\nexport function useVisualizationType() {\n\treturn [\n\t\tuseContext(VisualizationTypeContext),\n\t\tuseContext(VisualizationTypeSetter),\n\t] as [\n\t\tVisualizationType,\n\t\tReact.Dispatch<React.SetStateAction<VisualizationType>>,\n\t];\n}\n\nexport function useVisualizationConfig() {\n\treturn useContext(VisualizationConfigContext);\n}\n\nexport function VisualizationTypeProvider({\n\tchildren,\n\tdefaultType,\n\tconfig,\n}: VisualizationTypeProviderProps) {\n\tconst [type, setType] = useState<VisualizationType>(defaultType);\n\n\treturn (\n\t\t<VisualizationTypeContext.Provider value={type}>\n\t\t\t<VisualizationConfigContext.Provider value={config}>\n\t\t\t\t<VisualizationTypeSetter.Provider value={setType}>\n\t\t\t\t\t{children}\n\t\t\t\t</VisualizationTypeSetter.Provider>\n\t\t\t</VisualizationConfigContext.Provider>\n\t\t</VisualizationTypeContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationTypeProvider/index.tsx"],"names":[],"mappings":";;;AAKa,MAAA,wBAAA,GACZ,cAAiC,YAAY;AACjC,MAAA,0BAAA,GAA6B,cAExC,MAAS;AACE,MAAA,uBAAA,GAA0B,cAErC,MAAS;AAQJ,SAAS,oBAAuB,GAAA;AACtC,EAAO,OAAA;AAAA,IACN,WAAW,wBAAwB,CAAA;AAAA,IACnC,WAAW,uBAAuB;AAAA,GACnC;AAID;AAEO,SAAS,sBAAyB,GAAA;AACxC,EAAA,OAAO,WAAW,0BAA0B,CAAA;AAC7C;AAEO,SAAS,yBAA0B,CAAA;AAAA,EACzC,QAAA;AAAA,EACA,WAAA;AAAA,EACA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA4B,WAAW,CAAA;AAE/D,EACC,uBAAA,GAAA,CAAC,yBAAyB,QAAzB,EAAA,EAAkC,OAAO,IACzC,EAAA,QAAA,kBAAA,GAAA,CAAC,2BAA2B,QAA3B,EAAA,EAAoC,OAAO,MAC3C,EAAA,QAAA,kBAAA,GAAA,CAAC,wBAAwB,QAAxB,EAAA,EAAiC,OAAO,OACvC,EAAA,QAAA,EACF,GACD,CACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React, { createContext, useContext, useState } from \"react\";\nimport { VisualizationConfig } from \"../../index.js\";\n\nexport type VisualizationType = \"pivotTable\" | \"chart\" | \"map\";\n\nexport const VisualizationTypeContext =\n\tcreateContext<VisualizationType>(\"pivotTable\");\nexport const VisualizationConfigContext = createContext<\n\tVisualizationConfig | undefined\n>(undefined);\nexport const VisualizationTypeSetter = createContext<\n\tReact.Dispatch<React.SetStateAction<VisualizationType>> | undefined\n>(undefined);\n\nexport interface VisualizationTypeProviderProps {\n\tchildren: React.ReactNode;\n\tdefaultType: VisualizationType;\n\tconfig: VisualizationConfig;\n}\n\nexport function useVisualizationType() {\n\treturn [\n\t\tuseContext(VisualizationTypeContext),\n\t\tuseContext(VisualizationTypeSetter),\n\t] as [\n\t\tVisualizationType,\n\t\tReact.Dispatch<React.SetStateAction<VisualizationType>>,\n\t];\n}\n\nexport function useVisualizationConfig() {\n\treturn useContext(VisualizationConfigContext);\n}\n\nexport function VisualizationTypeProvider({\n\tchildren,\n\tdefaultType,\n\tconfig,\n}: VisualizationTypeProviderProps) {\n\tconst [type, setType] = useState<VisualizationType>(defaultType);\n\n\treturn (\n\t\t<VisualizationTypeContext.Provider value={type}>\n\t\t\t<VisualizationConfigContext.Provider value={config}>\n\t\t\t\t<VisualizationTypeSetter.Provider value={setType}>\n\t\t\t\t\t{children}\n\t\t\t\t</VisualizationTypeSetter.Provider>\n\t\t\t</VisualizationConfigContext.Provider>\n\t\t</VisualizationTypeContext.Provider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationTypeSelector/index.tsx"],"names":[],"mappings":";;;;;;AAeA,MAAM,2BAA8B,GAAA;AAAA,EACnC;AAAA,IACC,EAAI,EAAA,YAAA;AAAA,IACJ,IAAA,sBAAO,WAAY,EAAA,EAAA,CAAA;AAAA,IACnB,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,aAAa,CAAA;AAAA,GAC5B;AAAA,EACA;AAAA,IACC,EAAI,EAAA,OAAA;AAAA,IACJ,IAAA,sBAAO,yBAA0B,EAAA,EAAA,CAAA;AAAA,IACjC,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,OAAO,CAAA;AAAA,GACtB;AAAA,EACA;AAAA,IACC,EAAI,EAAA,KAAA;AAAA,IACJ,IAAA,sBAAO,WAAY,EAAA,EAAA,CAAA;AAAA,IACnB,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,KAAK,CAAA;AAAA,GACpB;AACD,CAAA,CAAA;AAEO,SAAS,yBAA4B,GAAA;AAC3C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,oBAAqB,EAAA,CAAA;AAC7C,EAAA,MAAM,SAAS,sBAAuB,EAAA,CAAA;AAEtC,EAAA,MAAM,KAAQ,GAAA,OAAA;AAAA,IACb,MACC,2BAAA,CAA4B,MAAO,CAAA,CAAC,aAAkB,KAAA;AACrD,MACC,OAAA,MAAA,CAAO,IAAK,CAAA,MAAA,IAAU,EAAE,CAAE,CAAA,QAAA,CAAS,aAAc,CAAA,EAAE,CACnD,IAAA,aAAA,CAAc,EAAO,KAAA,IAAA,CAAA;AAAA,KAEtB,CAAA;AAAA,IACF,CAAC,MAAM,MAAM,CAAA;AAAA,GACd,CAAA;AAEA,EAAA,2BACE,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,GAAK,EAAA,CAAA,EAClC,EAAA,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,EAAE,IAAM,EAAA,KAAA,EAAO,IAAS,KAAA;AACnC,IACC,uBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QAEA,OAAA,EAAS,IAAK,CAAA,CAAA,CAAE,kBAAoB,EAAA;AAAA,UACnC,IAAA,EAAM,MAAM,WAAY,EAAA;AAAA,SACxB,CAAA;AAAA,QAED,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACA,OAAA,EAAS,MAAM,OAAA,CAAQ,EAAuB,CAAA;AAAA,YAC9C,IAAA;AAAA,WAAA;AAAA,SACD;AAAA,OAAA;AAAA,MARK,GAAG,KAAK,CAAA,QAAA,CAAA;AAAA,KASd,CAAA;AAAA,GAED,CACF,EAAA,CAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React, { useMemo } from \"react\";\nimport {\n\tuseVisualizationConfig,\n\tuseVisualizationType,\n\tVisualizationType,\n} from \"../VisualizationTypeProvider/index.js\";\nimport {\n\tButton,\n\tIconTable24,\n\tIconVisualizationColumn24,\n\tIconWorld24,\n\tTooltip,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nconst supportedVisualizationTypes = [\n\t{\n\t\tid: \"pivotTable\",\n\t\ticon: <IconTable24 />,\n\t\tlabel: i18n.t(\"Pivot table\"),\n\t},\n\t{\n\t\tid: \"chart\",\n\t\ticon: <IconVisualizationColumn24 />,\n\t\tlabel: i18n.t(\"Chart\"),\n\t},\n\t{\n\t\tid: \"map\",\n\t\ticon: <IconWorld24 />,\n\t\tlabel: i18n.t(\"Map\"),\n\t},\n];\n\nexport function VisualizationTypeSelector() {\n\tconst [type, setType] = useVisualizationType();\n\tconst config = useVisualizationConfig();\n\n\tconst types = useMemo(\n\t\t() =>\n\t\t\tsupportedVisualizationTypes.filter((supportedType) => {\n\t\t\t\treturn (\n\t\t\t\t\tObject.keys(config ?? {}).includes(supportedType.id) &&\n\t\t\t\t\tsupportedType.id !== type\n\t\t\t\t);\n\t\t\t}),\n\t\t[type, config],\n\t);\n\n\treturn (\n\t\t<div style={{ display: \"flex\", gap: 8 }}>\n\t\t\t{types.map(({ icon, label, id }) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tkey={`${label}-tooltip`}\n\t\t\t\t\t\tcontent={i18n.t(\"View as {{type}}\", {\n\t\t\t\t\t\t\ttype: label.toLowerCase(),\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={() => setType(id as VisualizationType)}\n\t\t\t\t\t\t\ticon={icon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Visualization/components/VisualizationTypeSelector/index.tsx"],"names":[],"mappings":";;;;;;AAeA,MAAM,2BAA8B,GAAA;AAAA,EACnC;AAAA,IACC,EAAI,EAAA,YAAA;AAAA,IACJ,IAAA,sBAAO,WAAY,EAAA,EAAA,CAAA;AAAA,IACnB,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,aAAa;AAAA,GAC5B;AAAA,EACA;AAAA,IACC,EAAI,EAAA,OAAA;AAAA,IACJ,IAAA,sBAAO,yBAA0B,EAAA,EAAA,CAAA;AAAA,IACjC,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,OAAO;AAAA,GACtB;AAAA,EACA;AAAA,IACC,EAAI,EAAA,KAAA;AAAA,IACJ,IAAA,sBAAO,WAAY,EAAA,EAAA,CAAA;AAAA,IACnB,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,KAAK;AAAA;AAErB,CAAA;AAEO,SAAS,yBAA4B,GAAA;AAC3C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,oBAAqB,EAAA;AAC7C,EAAA,MAAM,SAAS,sBAAuB,EAAA;AAEtC,EAAA,MAAM,KAAQ,GAAA,OAAA;AAAA,IACb,MACC,2BAAA,CAA4B,MAAO,CAAA,CAAC,aAAkB,KAAA;AACrD,MACC,OAAA,MAAA,CAAO,IAAK,CAAA,MAAA,IAAU,EAAE,CAAE,CAAA,QAAA,CAAS,aAAc,CAAA,EAAE,CACnD,IAAA,aAAA,CAAc,EAAO,KAAA,IAAA;AAAA,KAEtB,CAAA;AAAA,IACF,CAAC,MAAM,MAAM;AAAA,GACd;AAEA,EAAA,2BACE,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,GAAK,EAAA,CAAA,EAClC,EAAA,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,EAAE,IAAM,EAAA,KAAA,EAAO,IAAS,KAAA;AACnC,IACC,uBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QAEA,OAAA,EAAS,IAAK,CAAA,CAAA,CAAE,kBAAoB,EAAA;AAAA,UACnC,IAAA,EAAM,MAAM,WAAY;AAAA,SACxB,CAAA;AAAA,QAED,QAAA,kBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACA,OAAA,EAAS,MAAM,OAAA,CAAQ,EAAuB,CAAA;AAAA,YAC9C;AAAA;AAAA;AACD,OAAA;AAAA,MARK,GAAG,KAAK,CAAA,QAAA;AAAA,KASd;AAAA,GAED,CACF,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React, { useMemo } from \"react\";\nimport {\n\tuseVisualizationConfig,\n\tuseVisualizationType,\n\tVisualizationType,\n} from \"../VisualizationTypeProvider/index.js\";\nimport {\n\tButton,\n\tIconTable24,\n\tIconVisualizationColumn24,\n\tIconWorld24,\n\tTooltip,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nconst supportedVisualizationTypes = [\n\t{\n\t\tid: \"pivotTable\",\n\t\ticon: <IconTable24 />,\n\t\tlabel: i18n.t(\"Pivot table\"),\n\t},\n\t{\n\t\tid: \"chart\",\n\t\ticon: <IconVisualizationColumn24 />,\n\t\tlabel: i18n.t(\"Chart\"),\n\t},\n\t{\n\t\tid: \"map\",\n\t\ticon: <IconWorld24 />,\n\t\tlabel: i18n.t(\"Map\"),\n\t},\n];\n\nexport function VisualizationTypeSelector() {\n\tconst [type, setType] = useVisualizationType();\n\tconst config = useVisualizationConfig();\n\n\tconst types = useMemo(\n\t\t() =>\n\t\t\tsupportedVisualizationTypes.filter((supportedType) => {\n\t\t\t\treturn (\n\t\t\t\t\tObject.keys(config ?? {}).includes(supportedType.id) &&\n\t\t\t\t\tsupportedType.id !== type\n\t\t\t\t);\n\t\t\t}),\n\t\t[type, config],\n\t);\n\n\treturn (\n\t\t<div style={{ display: \"flex\", gap: 8 }}>\n\t\t\t{types.map(({ icon, label, id }) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tkey={`${label}-tooltip`}\n\t\t\t\t\t\tcontent={i18n.t(\"View as {{type}}\", {\n\t\t\t\t\t\t\ttype: label.toLowerCase(),\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={() => setType(id as VisualizationType)}\n\t\t\t\t\t\t\ticon={icon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Visualization/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from \"react\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { VisualizationProvider } from \"./components/VisualizationProvider/index.js\";\nimport { Layout } from \"./components/LayoutProvider/index.js\";\nimport { VisualizationType } from \"./components/VisualizationTypeProvider/index.js\";\nimport { VisualizationTypeSelector } from \"./components/VisualizationTypeSelector/index.js\";\nimport { VisualizationDimensionSelector } from \"./components/VisualizationDimensionSelector/index.js\";\nimport { VisualizationSelector } from \"./components/VisualizationSelector/index.js\";\nimport { DHIS2PivotTableOptions } from \"../DHIS2PivotTable/index.js\";\nimport { ChartConfig } from \"../ChartAnalytics/index.js\";\nimport { MapProps } from \"../Map/index.js\";\nimport { ErrorBoundary, FallbackProps } from \"react-error-boundary\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { Button, colors, IconError24 } from \"@dhis2/ui\";\n\nexport interface VisualizationConfig {\n\tpivotTable?: DHIS2PivotTableOptions;\n\tchart?: ChartConfig;\n\tmap?: Omit<MapProps, \"orgUnitSelection\" | \"periodSelection\">;\n}\n\nexport interface VisualizationProps {\n\tlayout: Layout;\n\tdefaultVisualizationType: VisualizationType;\n\tdimensions: AnalyticsDimension;\n\tconfig: VisualizationConfig;\n\theight?: number;\n\tshowToolbar?: boolean;\n\tshowPeriodSelector?: boolean;\n\tshowOrgUnitSelector?: boolean;\n}\n\n/**\n * An analytics component that allows visualization of `chart`, `map`, and `pivot table` by passing analytics object and the default layout and type\n *\n * */\n\nfunction ErrorFallback({\n\terror,\n\tresetErrorBoundary,\n\theight,\n}: FallbackProps & { height?: number }) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\theight: height ?? 500,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<IconError24 />\n\t\t\t<h3\n\t\t\t\tstyle={{\n\t\t\t\t\tcolor: colors.grey800,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i18n.t(\"Could not load visualization\")}\n\t\t\t</h3>\n\t\t\t<p style={{ margin: 0 }}>{error.message}</p>\n\t\t\t{resetErrorBoundary && (\n\t\t\t\t<Button onClick={resetErrorBoundary} small>\n\t\t\t\t\t{i18n.t(\"Try again\")}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function Visualization({\n\tdimensions,\n\tlayout,\n\tdefaultVisualizationType,\n\tconfig,\n\theight,\n\tshowToolbar,\n\tshowOrgUnitSelector,\n\tshowPeriodSelector,\n}: VisualizationProps) {\n\treturn (\n\t\t<ErrorBoundary\n\t\t\tresetKeys={[dimensions, layout, defaultVisualizationType, config]}\n\t\t\tfallbackRender={(props) =>\n\t\t\t\t(<ErrorFallback height={height} {...props} />) as any\n\t\t\t}\n\t\t>\n\t\t\t<VisualizationProvider\n\t\t\t\tconfig={config}\n\t\t\t\ttype={defaultVisualizationType}\n\t\t\t\tlayout={layout}\n\t\t\t\tdimensions={dimensions}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{showToolbar && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<VisualizationTypeSelector />\n\t\t\t\t\t\t\t<VisualizationDimensionSelector\n\t\t\t\t\t\t\t\tshowPeriodSelector={showPeriodSelector}\n\t\t\t\t\t\t\t\tshowOrgUnitSelector={showOrgUnitSelector}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<>\n\t\t\t\t\t\t<VisualizationSelector config={config} />\n\t\t\t\t\t</>\n\t\t\t\t</div>\n\t\t\t</VisualizationProvider>\n\t\t</ErrorBoundary>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/Visualization/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import React from \"react\";\nimport { AnalyticsDimension } from \"@hisptz/dhis2-utils\";\nimport { VisualizationProvider } from \"./components/VisualizationProvider/index.js\";\nimport { Layout } from \"./components/LayoutProvider/index.js\";\nimport { VisualizationType } from \"./components/VisualizationTypeProvider/index.js\";\nimport { VisualizationTypeSelector } from \"./components/VisualizationTypeSelector/index.js\";\nimport { VisualizationDimensionSelector } from \"./components/VisualizationDimensionSelector/index.js\";\nimport { VisualizationSelector } from \"./components/VisualizationSelector/index.js\";\nimport { DHIS2PivotTableOptions } from \"../DHIS2PivotTable/index.js\";\nimport { ChartConfig } from \"../ChartAnalytics/index.js\";\nimport { MapProps } from \"../Map/index.js\";\nimport { ErrorBoundary, FallbackProps } from \"react-error-boundary\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { Button, colors, IconError24 } from \"@dhis2/ui\";\n\nexport interface VisualizationConfig {\n\tpivotTable?: DHIS2PivotTableOptions;\n\tchart?: ChartConfig;\n\tmap?: Omit<MapProps, \"orgUnitSelection\" | \"periodSelection\">;\n}\n\nexport interface VisualizationProps {\n\tlayout: Layout;\n\tdefaultVisualizationType: VisualizationType;\n\tdimensions: AnalyticsDimension;\n\tconfig: VisualizationConfig;\n\theight?: number;\n\tshowToolbar?: boolean;\n\tshowPeriodSelector?: boolean;\n\tshowOrgUnitSelector?: boolean;\n}\n\n/**\n * An analytics component that allows visualization of `chart`, `map`, and `pivot table` by passing analytics object and the default layout and type\n *\n * */\n\nfunction ErrorFallback({\n\terror,\n\tresetErrorBoundary,\n\theight,\n}: FallbackProps & { height?: number }) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\theight: height ?? 500,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<IconError24 />\n\t\t\t<h3\n\t\t\t\tstyle={{\n\t\t\t\t\tcolor: colors.grey800,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i18n.t(\"Could not load visualization\")}\n\t\t\t</h3>\n\t\t\t<p style={{ margin: 0 }}>{error.message}</p>\n\t\t\t{resetErrorBoundary && (\n\t\t\t\t<Button onClick={resetErrorBoundary} small>\n\t\t\t\t\t{i18n.t(\"Try again\")}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport function Visualization({\n\tdimensions,\n\tlayout,\n\tdefaultVisualizationType,\n\tconfig,\n\theight,\n\tshowToolbar,\n\tshowOrgUnitSelector,\n\tshowPeriodSelector,\n}: VisualizationProps) {\n\treturn (\n\t\t<ErrorBoundary\n\t\t\tresetKeys={[dimensions, layout, defaultVisualizationType, config]}\n\t\t\tfallbackRender={(props) =>\n\t\t\t\t(<ErrorFallback height={height} {...props} />) as any\n\t\t\t}\n\t\t>\n\t\t\t<VisualizationProvider\n\t\t\t\tconfig={config}\n\t\t\t\ttype={defaultVisualizationType}\n\t\t\t\tlayout={layout}\n\t\t\t\tdimensions={dimensions}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{showToolbar && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tflexDirection: \"row\",\n\t\t\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<VisualizationTypeSelector />\n\t\t\t\t\t\t\t<VisualizationDimensionSelector\n\t\t\t\t\t\t\t\tshowPeriodSelector={showPeriodSelector}\n\t\t\t\t\t\t\t\tshowOrgUnitSelector={showOrgUnitSelector}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<>\n\t\t\t\t\t\t<VisualizationSelector config={config} />\n\t\t\t\t\t</>\n\t\t\t\t</div>\n\t\t\t</VisualizationProvider>\n\t\t</ErrorBoundary>\n\t);\n}\n"]}
@@ -1,5 +1,6 @@
1
+ import { type ControlOptions } from "leaflet";
1
2
  import "leaflet.fullscreen";
2
3
  import "leaflet.fullscreen/Control.FullScreen.css";
3
- declare const FullscreenControl: import("react").ForwardRefExoticComponent<import("leaflet").ControlOptions & import("react").RefAttributes<any>>;
4
+ declare const FullscreenControl: React.ForwardRefExoticComponent<ControlOptions & React.RefAttributes<any>>;
4
5
  export default FullscreenControl;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/Map/components/MapControls/components/FullscreenControl/index.tsx"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,2CAA2C,CAAC;AAEnD,QAAA,MAAM,iBAAiB,kHAEtB,CAAC;AACF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/Map/components/MapControls/components/FullscreenControl/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,oBAAoB,CAAC;AAC5B,OAAO,2CAA2C,CAAC;AAEnD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,yBAAyB,CACvD,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAC+B,CAAC;AAC1E,eAAe,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hisptz/dhis2-analytics",
3
- "version": "2.0.63",
3
+ "version": "2.0.64",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/types/index.d.ts",
@@ -17,10 +17,10 @@
17
17
  "package.json"
18
18
  ],
19
19
  "devDependencies": {
20
- "@dhis2/app-runtime": "^3.10.2",
20
+ "@dhis2/app-runtime": "^3.14.0",
21
21
  "@dhis2/d2-i18n": "^1.1.3",
22
22
  "@dhis2/multi-calendar-dates": "^1.2.4",
23
- "@dhis2/ui": "^10.1.10",
23
+ "@dhis2/ui": "^10.3.1",
24
24
  "@storybook/react": "^7.6.7",
25
25
  "@types/async": "^3.2.24",
26
26
  "@types/d3-color": "^3.1.0",
@@ -29,7 +29,7 @@
29
29
  "@types/leaflet": "^1.9.0",
30
30
  "@types/lodash": "^4.14.202",
31
31
  "@types/luxon": "^3.4.0",
32
- "@types/react": "^18.2.46",
32
+ "@types/react": "^18.3.11",
33
33
  "@types/react-beautiful-dnd": "^13.1.8",
34
34
  "@types/react-dom": "^18.2.18",
35
35
  "@types/react-helmet": "^6.1.6",
@@ -43,7 +43,7 @@
43
43
  "react-error-boundary": "^4.0.12",
44
44
  "react-hook-form": "^7.43.9",
45
45
  "styled-jsx": "^5.1.2",
46
- "tsup": "^8.0.1",
46
+ "tsup": "^8.4.0",
47
47
  "typescript": "^5.3.3",
48
48
  "usehooks-ts": "^2.16.0",
49
49
  "@repo/typescript-config": "0.0.2",
@@ -78,7 +78,7 @@
78
78
  "screenfull": "^6.0.2",
79
79
  "xlsx": "^0.18.5",
80
80
  "zod": "^3.23.8",
81
- "@hisptz/dhis2-ui": "2.0.40",
81
+ "@hisptz/dhis2-ui": "2.0.41",
82
82
  "@hisptz/dhis2-utils": "2.0.17"
83
83
  },
84
84
  "peerDependencies": {