@hisptz/dhis2-analytics 2.0.62 → 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 +9 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":["header","row"],"mappings":"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","file":"chart.js","sourcesContent":["import type {\n\tAnalytics,\n\tAnalyticsHeader,\n\tAnalyticsMetadata,\n} from \"@hisptz/dhis2-utils\";\nimport { compact, find, findIndex, head, isEmpty, set } from \"lodash\";\nimport { DHIS2Chart } from \"../models/index.js\";\nimport { DHIS2ColumnChart, DHIS2StackedColumnChart } from \"../models/column.js\";\nimport { DHIS2LineChart } from \"../models/line.js\";\nimport { DHIS2MultiSeriesChart } from \"../models/multi-series.js\";\nimport { DHIS2PieChart } from \"../models/pie.js\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { DHIS2BarChart, DHIS2StackedBarChart } from \"../models/bar.js\";\n\nexport function getDimensionHeaderIndex(\n\theaders: AnalyticsHeader[],\n\tname: string,\n): number {\n\treturn findIndex(headers, { name });\n}\n\nexport function getPointSeries(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n) {\n\tconst series: string[] = config.layout.series;\n\n\treturn series.map((seriesName: string) => {\n\t\tconst header = analytics?.headers?.find(\n\t\t\t(header: any) => header.name === seriesName,\n\t\t);\n\t\tif (!header) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (analytics?.metaData) {\n\t\t\treturn getColumnSeries(analytics, header, config, highchartsType);\n\t\t}\n\t})[0];\n}\n\nexport function getColumnSeries(\n\tanalytics: Analytics,\n\theader: AnalyticsHeader,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n): any {\n\tconst headerIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: any }) => header.name === h.name,\n\t);\n\tconst valueIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: string }) => h.name === \"value\",\n\t);\n\n\tconst colors = config.colors ?? [];\n\n\tconst { items, dimensions } = analytics?.metaData ?? {};\n\tconst categoriesDimension = config.layout.category;\n\n\tconst seriesDimensionValues: string[] =\n\t\tdimensions?.[header.name as \"dx\" | \"ou\" | \"pe\"] ?? [];\n\n\treturn head(\n\t\tcategoriesDimension?.map((categoryDimension: string) => {\n\t\t\tconst categories: string[] = dimensions?.[\n\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t] as any;\n\t\t\tconst categoryDimensionIndex = analytics?.headers?.findIndex(\n\t\t\t\t(h: { name: string }) => h.name === categoryDimension,\n\t\t\t);\n\t\t\treturn seriesDimensionValues?.map(\n\t\t\t\t(seriesDimensionValue: string, index) => {\n\t\t\t\t\tconst data = categories?.map((category: string) => {\n\t\t\t\t\t\tconst row = find(\n\t\t\t\t\t\t\tanalytics?.rows,\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[headerIndex ?? -1] ===\n\t\t\t\t\t\t\t\t\tseriesDimensionValue &&\n\t\t\t\t\t\t\t\trow[categoryDimensionIndex ?? -1] === category,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn row?.[valueIndex ?? -1]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex ?? -1])\n\t\t\t\t\t\t\t: null;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: seriesDimensionValue,\n\t\t\t\t\t\tname: items?.[seriesDimensionValue as any]?.name,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttype: highchartsType,\n\t\t\t\t\t\tcolor: colors[index % colors.length],\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}),\n\t);\n}\n\nfunction getCategories(\n\t{ name }: AnalyticsHeader,\n\t{ items, dimensions }: AnalyticsMetadata,\n): string[] {\n\tconst categories: string[] = dimensions?.[\n\t\tname as \"dx\" | \"ou\" | \"pe\"\n\t] as any;\n\n\treturn categories?.map((category: string) => {\n\t\treturn items[category as any]?.name ?? \"\";\n\t}) as unknown as string[];\n}\n\nexport function getAllCategories(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): string[] {\n\tconst categories = config.layout.category;\n\n\treturn compact(\n\t\tcategories?.map((category: string) => {\n\t\t\tconst header = analytics?.headers?.find(\n\t\t\t\t(header: any) => header.name === category,\n\t\t\t);\n\t\t\tif (!header) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (analytics?.metaData) {\n\t\t\t\treturn getCategories(header, analytics?.metaData);\n\t\t\t}\n\t\t}),\n\t)[0];\n}\n\nexport function updateLayout(\n\tconfig: ChartConfig,\n\t{ type }: { type: ChartType },\n) {\n\tif (type === config.type) {\n\t\treturn config.layout;\n\t}\n\n\tconst updatedLayout = { ...config.layout };\n\n\tswitch (type) {\n\t\tcase \"pie\":\n\t\t\tset(updatedLayout, \"category\", []);\n\t\t\tif (isEmpty(updatedLayout.series)) {\n\t\t\t\tif (!isEmpty(config.layout.category)) {\n\t\t\t\t\tset(updatedLayout, \"series\", [\n\t\t\t\t\t\thead(config.layout.category),\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Invalid layout for pie chart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updatedLayout.series.length > 1) {\n\t\t\t\tset(updatedLayout, \"series\", [head(updatedLayout.series)]);\n\t\t\t}\n\t}\n\n\treturn updatedLayout;\n}\n\nexport function getChartInstance(\n\tid: string,\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): DHIS2Chart {\n\tswitch (config.type) {\n\t\tcase \"column\":\n\t\t\treturn new DHIS2ColumnChart(id, analytics, config);\n\t\tcase \"bar\":\n\t\t\treturn new DHIS2BarChart(id, analytics, config);\n\t\tcase \"stacked-bar\":\n\t\t\treturn new DHIS2StackedBarChart(id, analytics, config);\n\t\tcase \"stacked-column\":\n\t\t\treturn new DHIS2StackedColumnChart(id, analytics, config);\n\t\tcase \"pie\":\n\t\t\treturn new DHIS2PieChart(id, analytics, config);\n\t\tcase \"line\":\n\t\t\treturn new DHIS2LineChart(id, analytics, config);\n\t\tcase \"multi-series\":\n\t\t\treturn new DHIS2MultiSeriesChart(id, analytics, config);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported chart type: ${config.type}`);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ChartAnalytics/utils/chart.ts"],"names":["header","row"],"mappings":";;;;;;;AAcO,SAAS,uBAAA,CACf,SACA,IACS,EAAA;AACT,EAAA,OAAO,SAAU,CAAA,OAAA,EAAS,EAAE,IAAA,EAAM,CAAA;AACnC;AAEO,SAAS,cAAA,CACf,SACA,EAAA,MAAA,EACA,cACC,EAAA;AACD,EAAM,MAAA,MAAA,GAAmB,OAAO,MAAO,CAAA,MAAA;AAEvC,EAAO,OAAA,MAAA,CAAO,GAAI,CAAA,CAAC,UAAuB,KAAA;AACzC,IAAM,MAAA,MAAA,GAAS,WAAW,OAAS,EAAA,IAAA;AAAA,MAClC,CAACA,OAAgBA,KAAAA,OAAAA,CAAO,IAAS,KAAA;AAAA,KAClC;AACA,IAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,MAAO,OAAA,MAAA;AAAA;AAER,IAAA,IAAI,WAAW,QAAU,EAAA;AACxB,MAAA,OAAO,eAAgB,CAAA,SAAA,EAAW,MAAQ,EAAA,MAAA,EAAQ,cAAc,CAAA;AAAA;AACjE,GACA,EAAE,CAAC,CAAA;AACL;AAEO,SAAS,eACf,CAAA,SAAA,EACA,MACA,EAAA,MAAA,EACA,cACM,EAAA;AACN,EAAM,MAAA,WAAA,GAAc,WAAW,OAAS,EAAA,SAAA;AAAA,IACvC,CAAC,CAAA,KAAqB,MAAO,CAAA,IAAA,KAAS,CAAE,CAAA;AAAA,GACzC;AACA,EAAM,MAAA,UAAA,GAAa,WAAW,OAAS,EAAA,SAAA;AAAA,IACtC,CAAC,CAAwB,KAAA,CAAA,CAAE,IAAS,KAAA;AAAA,GACrC;AAEA,EAAM,MAAA,MAAA,GAAS,MAAO,CAAA,MAAA,IAAU,EAAC;AAEjC,EAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,SAAA,EAAW,YAAY,EAAC;AACtD,EAAM,MAAA,mBAAA,GAAsB,OAAO,MAAO,CAAA,QAAA;AAE1C,EAAA,MAAM,qBACL,GAAA,UAAA,GAAa,MAAO,CAAA,IAA0B,KAAK,EAAC;AAErD,EAAO,OAAA,IAAA;AAAA,IACN,mBAAA,EAAqB,GAAI,CAAA,CAAC,iBAA8B,KAAA;AACvD,MAAM,MAAA,UAAA,GAAuB,aAC5B,iBACD,CAAA;AACA,MAAM,MAAA,sBAAA,GAAyB,WAAW,OAAS,EAAA,SAAA;AAAA,QAClD,CAAC,CAAwB,KAAA,CAAA,CAAE,IAAS,KAAA;AAAA,OACrC;AACA,MAAA,OAAO,qBAAuB,EAAA,GAAA;AAAA,QAC7B,CAAC,sBAA8B,KAAU,KAAA;AACxC,UAAA,MAAM,IAAO,GAAA,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AAClD,YAAA,MAAM,GAAM,GAAA,IAAA;AAAA,cACX,SAAW,EAAA,IAAA;AAAA,cACX,CAACC,IACAA,KAAAA,IAAAA,CAAI,WAAe,IAAA,EAAE,MACpB,oBACDA,IAAAA,IAAAA,CAAI,sBAA0B,IAAA,EAAE,CAAM,KAAA;AAAA,aACxC;AACA,YAAO,OAAA,GAAA,GAAM,cAAc,EAAE,CAAA,GAC1B,WAAW,GAAM,GAAA,UAAA,IAAc,EAAE,CAAC,CAClC,GAAA,IAAA;AAAA,WACH,CAAA;AACD,UAAO,OAAA;AAAA,YACN,EAAI,EAAA,oBAAA;AAAA,YACJ,IAAA,EAAM,KAAQ,GAAA,oBAA2B,CAAG,EAAA,IAAA;AAAA,YAC5C,IAAA;AAAA,YACA,IAAM,EAAA,cAAA;AAAA,YACN,KAAO,EAAA,MAAA,CAAO,KAAQ,GAAA,MAAA,CAAO,MAAM;AAAA,WACpC;AAAA;AACD,OACD;AAAA,KACA;AAAA,GACF;AACD;AAEA,SAAS,cACR,EAAE,IAAA,IACF,EAAE,KAAA,EAAO,YACE,EAAA;AACX,EAAM,MAAA,UAAA,GAAuB,aAC5B,IACD,CAAA;AAEA,EAAO,OAAA,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AAC5C,IAAO,OAAA,KAAA,CAAM,QAAe,CAAA,EAAG,IAAQ,IAAA,EAAA;AAAA,GACvC,CAAA;AACF;AAEO,SAAS,gBAAA,CACf,WACA,MACW,EAAA;AACX,EAAM,MAAA,UAAA,GAAa,OAAO,MAAO,CAAA,QAAA;AAEjC,EAAO,OAAA,OAAA;AAAA,IACN,UAAA,EAAY,GAAI,CAAA,CAAC,QAAqB,KAAA;AACrC,MAAM,MAAA,MAAA,GAAS,WAAW,OAAS,EAAA,IAAA;AAAA,QAClC,CAACD,OAAgBA,KAAAA,OAAAA,CAAO,IAAS,KAAA;AAAA,OAClC;AACA,MAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,QAAO,OAAA,MAAA;AAAA;AAER,MAAA,IAAI,WAAW,QAAU,EAAA;AACxB,QAAO,OAAA,aAAA,CAAc,MAAQ,EAAA,SAAA,EAAW,QAAQ,CAAA;AAAA;AACjD,KACA;AAAA,IACA,CAAC,CAAA;AACJ;AAEO,SAAS,YACf,CAAA,MAAA,EACA,EAAE,IAAA,EACD,EAAA;AACD,EAAI,IAAA,IAAA,KAAS,OAAO,IAAM,EAAA;AACzB,IAAA,OAAO,MAAO,CAAA,MAAA;AAAA;AAGf,EAAA,MAAM,aAAgB,GAAA,EAAE,GAAG,MAAA,CAAO,MAAO,EAAA;AAEzC,EAAA,QAAQ,IAAM;AAAA,IACb,KAAK,KAAA;AACJ,MAAI,GAAA,CAAA,aAAA,EAAe,UAAY,EAAA,EAAE,CAAA;AACjC,MAAI,IAAA,OAAA,CAAQ,aAAc,CAAA,MAAM,CAAG,EAAA;AAClC,QAAA,IAAI,CAAC,OAAA,CAAQ,MAAO,CAAA,MAAA,CAAO,QAAQ,CAAG,EAAA;AACrC,UAAA,GAAA,CAAI,eAAe,QAAU,EAAA;AAAA,YAC5B,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,QAAQ;AAAA,WAC3B,CAAA;AAAA,SACK,MAAA;AACN,UAAM,MAAA,IAAI,MAAM,8BAA8B,CAAA;AAAA;AAC/C;AAED,MAAI,IAAA,aAAA,CAAc,MAAO,CAAA,MAAA,GAAS,CAAG,EAAA;AACpC,QAAA,GAAA,CAAI,eAAe,QAAU,EAAA,CAAC,KAAK,aAAc,CAAA,MAAM,CAAC,CAAC,CAAA;AAAA;AAC1D;AAGF,EAAO,OAAA,aAAA;AACR;AAEO,SAAS,gBAAA,CACf,EACA,EAAA,SAAA,EACA,MACa,EAAA;AACb,EAAA,QAAQ,OAAO,IAAM;AAAA,IACpB,KAAK,QAAA;AACJ,MAAA,OAAO,IAAI,gBAAA,CAAiB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA;AAAA,IAClD,KAAK,KAAA;AACJ,MAAA,OAAO,IAAI,aAAA,CAAc,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA;AAAA,IAC/C,KAAK,aAAA;AACJ,MAAA,OAAO,IAAI,oBAAA,CAAqB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA;AAAA,IACtD,KAAK,gBAAA;AACJ,MAAA,OAAO,IAAI,uBAAA,CAAwB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA;AAAA,IACzD,KAAK,KAAA;AACJ,MAAA,OAAO,IAAI,aAAA,CAAc,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA;AAAA,IAC/C,KAAK,MAAA;AACJ,MAAA,OAAO,IAAI,cAAA,CAAe,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA;AAAA,IAChD,KAAK,cAAA;AACJ,MAAA,OAAO,IAAI,qBAAA,CAAsB,EAAI,EAAA,SAAA,EAAW,MAAM,CAAA;AAAA,IACvD;AACC,MAAA,MAAM,IAAI,KAAA,CAAM,CAA2B,wBAAA,EAAA,MAAA,CAAO,IAAI,CAAE,CAAA,CAAA;AAAA;AAE3D","file":"chart.js","sourcesContent":["import type {\n\tAnalytics,\n\tAnalyticsHeader,\n\tAnalyticsMetadata,\n} from \"@hisptz/dhis2-utils\";\nimport { compact, find, findIndex, head, isEmpty, set } from \"lodash\";\nimport { DHIS2Chart } from \"../models/index.js\";\nimport { DHIS2ColumnChart, DHIS2StackedColumnChart } from \"../models/column.js\";\nimport { DHIS2LineChart } from \"../models/line.js\";\nimport { DHIS2MultiSeriesChart } from \"../models/multi-series.js\";\nimport { DHIS2PieChart } from \"../models/pie.js\";\nimport { ChartConfig, ChartType } from \"../types/props.js\";\nimport { DHIS2BarChart, DHIS2StackedBarChart } from \"../models/bar.js\";\n\nexport function getDimensionHeaderIndex(\n\theaders: AnalyticsHeader[],\n\tname: string,\n): number {\n\treturn findIndex(headers, { name });\n}\n\nexport function getPointSeries(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n) {\n\tconst series: string[] = config.layout.series;\n\n\treturn series.map((seriesName: string) => {\n\t\tconst header = analytics?.headers?.find(\n\t\t\t(header: any) => header.name === seriesName,\n\t\t);\n\t\tif (!header) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (analytics?.metaData) {\n\t\t\treturn getColumnSeries(analytics, header, config, highchartsType);\n\t\t}\n\t})[0];\n}\n\nexport function getColumnSeries(\n\tanalytics: Analytics,\n\theader: AnalyticsHeader,\n\tconfig: ChartConfig,\n\thighchartsType: string,\n): any {\n\tconst headerIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: any }) => header.name === h.name,\n\t);\n\tconst valueIndex = analytics?.headers?.findIndex(\n\t\t(h: { name: string }) => h.name === \"value\",\n\t);\n\n\tconst colors = config.colors ?? [];\n\n\tconst { items, dimensions } = analytics?.metaData ?? {};\n\tconst categoriesDimension = config.layout.category;\n\n\tconst seriesDimensionValues: string[] =\n\t\tdimensions?.[header.name as \"dx\" | \"ou\" | \"pe\"] ?? [];\n\n\treturn head(\n\t\tcategoriesDimension?.map((categoryDimension: string) => {\n\t\t\tconst categories: string[] = dimensions?.[\n\t\t\t\tcategoryDimension as \"dx\" | \"ou\" | \"pe\"\n\t\t\t] as any;\n\t\t\tconst categoryDimensionIndex = analytics?.headers?.findIndex(\n\t\t\t\t(h: { name: string }) => h.name === categoryDimension,\n\t\t\t);\n\t\t\treturn seriesDimensionValues?.map(\n\t\t\t\t(seriesDimensionValue: string, index) => {\n\t\t\t\t\tconst data = categories?.map((category: string) => {\n\t\t\t\t\t\tconst row = find(\n\t\t\t\t\t\t\tanalytics?.rows,\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[headerIndex ?? -1] ===\n\t\t\t\t\t\t\t\t\tseriesDimensionValue &&\n\t\t\t\t\t\t\t\trow[categoryDimensionIndex ?? -1] === category,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn row?.[valueIndex ?? -1]\n\t\t\t\t\t\t\t? parseFloat(row?.[valueIndex ?? -1])\n\t\t\t\t\t\t\t: null;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: seriesDimensionValue,\n\t\t\t\t\t\tname: items?.[seriesDimensionValue as any]?.name,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttype: highchartsType,\n\t\t\t\t\t\tcolor: colors[index % colors.length],\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t}),\n\t);\n}\n\nfunction getCategories(\n\t{ name }: AnalyticsHeader,\n\t{ items, dimensions }: AnalyticsMetadata,\n): string[] {\n\tconst categories: string[] = dimensions?.[\n\t\tname as \"dx\" | \"ou\" | \"pe\"\n\t] as any;\n\n\treturn categories?.map((category: string) => {\n\t\treturn items[category as any]?.name ?? \"\";\n\t}) as unknown as string[];\n}\n\nexport function getAllCategories(\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): string[] {\n\tconst categories = config.layout.category;\n\n\treturn compact(\n\t\tcategories?.map((category: string) => {\n\t\t\tconst header = analytics?.headers?.find(\n\t\t\t\t(header: any) => header.name === category,\n\t\t\t);\n\t\t\tif (!header) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif (analytics?.metaData) {\n\t\t\t\treturn getCategories(header, analytics?.metaData);\n\t\t\t}\n\t\t}),\n\t)[0];\n}\n\nexport function updateLayout(\n\tconfig: ChartConfig,\n\t{ type }: { type: ChartType },\n) {\n\tif (type === config.type) {\n\t\treturn config.layout;\n\t}\n\n\tconst updatedLayout = { ...config.layout };\n\n\tswitch (type) {\n\t\tcase \"pie\":\n\t\t\tset(updatedLayout, \"category\", []);\n\t\t\tif (isEmpty(updatedLayout.series)) {\n\t\t\t\tif (!isEmpty(config.layout.category)) {\n\t\t\t\t\tset(updatedLayout, \"series\", [\n\t\t\t\t\t\thead(config.layout.category),\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Invalid layout for pie chart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updatedLayout.series.length > 1) {\n\t\t\t\tset(updatedLayout, \"series\", [head(updatedLayout.series)]);\n\t\t\t}\n\t}\n\n\treturn updatedLayout;\n}\n\nexport function getChartInstance(\n\tid: string,\n\tanalytics: Analytics,\n\tconfig: ChartConfig,\n): DHIS2Chart {\n\tswitch (config.type) {\n\t\tcase \"column\":\n\t\t\treturn new DHIS2ColumnChart(id, analytics, config);\n\t\tcase \"bar\":\n\t\t\treturn new DHIS2BarChart(id, analytics, config);\n\t\tcase \"stacked-bar\":\n\t\t\treturn new DHIS2StackedBarChart(id, analytics, config);\n\t\tcase \"stacked-column\":\n\t\t\treturn new DHIS2StackedColumnChart(id, analytics, config);\n\t\tcase \"pie\":\n\t\t\treturn new DHIS2PieChart(id, analytics, config);\n\t\tcase \"line\":\n\t\t\treturn new DHIS2LineChart(id, analytics, config);\n\t\tcase \"multi-series\":\n\t\t\treturn new DHIS2MultiSeriesChart(id, analytics, config);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported chart type: ${config.type}`);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CircularProgressDashboard/CircularProgressIndicator.tsx"],"names":[],"mappings":";;;;;;AAOO,SAAS,0BAA2B,CAAA;AAAA,EAC1C,SAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AACD,CAA+C,EAAA;AAC9C,EAAM,MAAA,6BAAA,GAAgC,QAAQ,MAAM;AACnD,IAAO,OAAA,KAAA,KAAU,SACd,KACA,GAAA,IAAA,CAAK,OAAQ,SAAa,IAAA,CAAA,KAAM,WAAe,IAAA,CAAA,CAAA,GAAM,GAAG,CAAA,CAAA;AAAA,GACzD,EAAA,CAAC,SAAW,EAAA,WAAA,EAAa,KAAK,CAAC,CAAA,CAAA;AAClC,EACC,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,eAAiB,EAAA,aAAA;AAAA,QACjB,KAAO,EAAA,IAAA;AAAA,OACR;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,+BAAA;AAAA,QAAA;AAAA,UACA,MAAQ,EAAA;AAAA,YACP,IAAM,EAAA;AAAA,cACL,MAAA,EAAQ,WAAa,EAAA,KAAA,IAAS,MAAO,CAAA,OAAA;AAAA,aACtC;AAAA,WACD;AAAA,UACA,WAAa,EAAA,CAAA;AAAA,UACb,KAAO,EAAA,6BAAA;AAAA,UAEP,QAAA,kBAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACA,KAAO,EAAA;AAAA,gBACN,GAAI,aAAa,EAAC;AAAA,gBAClB,UACC,SAAW,EAAA,QAAA,IAAY,OAAO,IAAS,KAAA,QAAA,GACpC,MAAO,IACP,GAAA,MAAA;AAAA,gBACJ,SAAW,EAAA,CAAA,EAAA;AAAA,eACZ;AAAA,cAEA,QAAA,kBAAA,IAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACA,KAAO,EAAA;AAAA,oBACN,KACC,EAAA,SAAA,EAAW,KACX,IAAA,WAAA,EAAa,SACb,MAAO,CAAA,OAAA;AAAA,mBACT;AAAA,kBAEC,QAAA,EAAA;AAAA,oBAAA,6BAAA;AAAA,oBAA8B,GAAA;AAAA,mBAAA;AAAA,iBAAA;AAAA,eAChC;AAAA,aAAA;AAAA,WACD;AAAA,SAAA;AAAA,OACD;AAAA,KAAA;AAAA,GACD,CAAA;AAEF,CAAA;AAEO,MAAM,yBAA4B,GAAA","file":"CircularProgressIndicator.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React, { useMemo } from \"react\";\nimport { CircularProgressbarWithChildren } from \"react-circular-progressbar\";\nimport { CircularDashboardProps } from \"./types/props.js\";\n\nexport * from \"./types/props.js\";\n\nexport function CircularProgressVisualizer({\n\tnumerator,\n\tsize,\n\tdenominator,\n\tvalue,\n\ttextStyle,\n\tstrokeStyle,\n}: CircularDashboardProps): React.ReactElement {\n\tconst filledSectionFieldsPercentage = useMemo(() => {\n\t\treturn value !== undefined\n\t\t\t? value\n\t\t\t: Math.floor(((numerator ?? 0) / (denominator ?? 1)) * 100);\n\t}, [numerator, denominator, value]);\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\twidth: size,\n\t\t\t}}\n\t\t>\n\t\t\t<CircularProgressbarWithChildren\n\t\t\t\tstyles={{\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tstroke: strokeStyle?.color ?? colors.blue700,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tstrokeWidth={7}\n\t\t\t\tvalue={filledSectionFieldsPercentage}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...(textStyle ?? {}),\n\t\t\t\t\t\tfontSize:\n\t\t\t\t\t\t\ttextStyle?.fontSize ?? typeof size === \"number\"\n\t\t\t\t\t\t\t\t? 0.3 * (size as number)\n\t\t\t\t\t\t\t\t: \"100%\",\n\t\t\t\t\t\tmarginTop: -11,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<strong\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\ttextStyle?.color ??\n\t\t\t\t\t\t\t\tstrokeStyle?.color ??\n\t\t\t\t\t\t\t\tcolors.blue700,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{filledSectionFieldsPercentage}%\n\t\t\t\t\t</strong>\n\t\t\t\t</div>\n\t\t\t</CircularProgressbarWithChildren>\n\t\t</div>\n\t);\n}\n\nexport const CircularProgressDashboard = CircularProgressVisualizer;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/CircularProgressDashboard/CircularProgressIndicator.tsx"],"names":[],"mappings":";;;;;;AAOO,SAAS,0BAA2B,CAAA;AAAA,EAC1C,SAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA;AACD,CAA+C,EAAA;AAC9C,EAAM,MAAA,6BAAA,GAAgC,QAAQ,MAAM;AACnD,IAAO,OAAA,KAAA,KAAU,SACd,KACA,GAAA,IAAA,CAAK,OAAQ,SAAa,IAAA,CAAA,KAAM,WAAe,IAAA,CAAA,CAAA,GAAM,GAAG,CAAA;AAAA,GACzD,EAAA,CAAC,SAAW,EAAA,WAAA,EAAa,KAAK,CAAC,CAAA;AAClC,EACC,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,eAAiB,EAAA,aAAA;AAAA,QACjB,KAAO,EAAA;AAAA,OACR;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,+BAAA;AAAA,QAAA;AAAA,UACA,MAAQ,EAAA;AAAA,YACP,IAAM,EAAA;AAAA,cACL,MAAA,EAAQ,WAAa,EAAA,KAAA,IAAS,MAAO,CAAA;AAAA;AACtC,WACD;AAAA,UACA,WAAa,EAAA,CAAA;AAAA,UACb,KAAO,EAAA,6BAAA;AAAA,UAEP,QAAA,kBAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACA,KAAO,EAAA;AAAA,gBACN,GAAI,aAAa,EAAC;AAAA,gBAClB,UACC,SAAW,EAAA,QAAA,IAAY,OAAO,IAAS,KAAA,QAAA,GACpC,MAAO,IACP,GAAA,MAAA;AAAA,gBACJ,SAAW,EAAA;AAAA,eACZ;AAAA,cAEA,QAAA,kBAAA,IAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACA,KAAO,EAAA;AAAA,oBACN,KACC,EAAA,SAAA,EAAW,KACX,IAAA,WAAA,EAAa,SACb,MAAO,CAAA;AAAA,mBACT;AAAA,kBAEC,QAAA,EAAA;AAAA,oBAAA,6BAAA;AAAA,oBAA8B;AAAA;AAAA;AAAA;AAChC;AAAA;AACD;AAAA;AACD;AAAA,GACD;AAEF;AAEO,MAAM,yBAA4B,GAAA","file":"CircularProgressIndicator.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React, { useMemo } from \"react\";\nimport { CircularProgressbarWithChildren } from \"react-circular-progressbar\";\nimport { CircularDashboardProps } from \"./types/props.js\";\n\nexport * from \"./types/props.js\";\n\nexport function CircularProgressVisualizer({\n\tnumerator,\n\tsize,\n\tdenominator,\n\tvalue,\n\ttextStyle,\n\tstrokeStyle,\n}: CircularDashboardProps): React.ReactElement {\n\tconst filledSectionFieldsPercentage = useMemo(() => {\n\t\treturn value !== undefined\n\t\t\t? value\n\t\t\t: Math.floor(((numerator ?? 0) / (denominator ?? 1)) * 100);\n\t}, [numerator, denominator, value]);\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\twidth: size,\n\t\t\t}}\n\t\t>\n\t\t\t<CircularProgressbarWithChildren\n\t\t\t\tstyles={{\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tstroke: strokeStyle?.color ?? colors.blue700,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tstrokeWidth={7}\n\t\t\t\tvalue={filledSectionFieldsPercentage}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...(textStyle ?? {}),\n\t\t\t\t\t\tfontSize:\n\t\t\t\t\t\t\ttextStyle?.fontSize ?? typeof size === \"number\"\n\t\t\t\t\t\t\t\t? 0.3 * (size as number)\n\t\t\t\t\t\t\t\t: \"100%\",\n\t\t\t\t\t\tmarginTop: -11,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<strong\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\ttextStyle?.color ??\n\t\t\t\t\t\t\t\tstrokeStyle?.color ??\n\t\t\t\t\t\t\t\tcolors.blue700,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{filledSectionFieldsPercentage}%\n\t\t\t\t\t</strong>\n\t\t\t\t</div>\n\t\t\t</CircularProgressbarWithChildren>\n\t\t</div>\n\t);\n}\n\nexport const CircularProgressDashboard = CircularProgressVisualizer;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/DHIS2PivotTable/DHIS2PivotTable.tsx"],"names":[],"mappings":";;;;;;;;AA6BO,SAAS,eAAgB,CAAA;AAAA,EAC/B,SAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AACD,CAAyB,EAAA;AACxB,EAAA,MAAM,MAAS,GAAA,OAAA;AAAA,IACd,MAAM,IAAI,qBAAA,CAAsB,EAAE,SAAA,EAAW,QAAQ,CAAA;AAAA,IACrD,CAAC,WAAW,MAAM,CAAA;AAAA,GACnB,CAAA;AAEA,EAAA,2BACE,6BAA8B,EAAA,EAAA,MAAA,EAC9B,QAAC,kBAAA,IAAA,CAAA,UAAA,EAAA,EAAW,QAAgB,UAC3B,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,CAAA;AAAA,wBACb,oBAAqB,EAAA,EAAA,CAAA;AAAA,GAAA,EACvB,CACD,EAAA,CAAA,CAAA;AAEF","file":"DHIS2PivotTable.js","sourcesContent":["import { Analytics, LegendSet } from \"@hisptz/dhis2-utils\";\nimport { DHIS2PivotTableEngine, type EngineConfig } from \"./services/engine.js\";\nimport React, { useMemo } from \"react\";\nimport { DHIS2PivotTableEngineProvider } from \"./state/engine.js\";\nimport { PivotTable } from \"./components/Table/index.js\";\nimport { TableHeaders } from \"./components/TableHeaders/index.js\";\nimport { CustomPivotTableBody } from \"./components/TableBody/index.js\";\nimport { DataTableProps } from \"@dhis2/ui\";\n\nexport interface DHIS2PivotTableOptions {\n\tlegendSets?: LegendSet[];\n\thideEmptyColumns?: boolean;\n\thideEmptyRows?: boolean;\n\tshowRowTotals?: boolean;\n\tshowColumnTotals?: boolean;\n\tshowRowSubtotals?: boolean;\n\tshowColumnSubtotals?: boolean;\n\tfixColumnHeaders?: boolean;\n\tfixRowHeaders?: boolean;\n\tshowFilterAsTitle?: boolean;\n}\n\nexport interface DHIS2PivotTableProps {\n\tanalytics: Analytics;\n\ttableProps?: DataTableProps;\n\tsetRef?: (ref: HTMLTableElement) => void;\n\tconfig: EngineConfig;\n}\n\nexport function DHIS2PivotTable({\n\tanalytics,\n\tconfig,\n\ttableProps,\n\tsetRef,\n}: DHIS2PivotTableProps) {\n\tconst engine = useMemo(\n\t\t() => new DHIS2PivotTableEngine({ analytics, config }),\n\t\t[analytics, config],\n\t);\n\n\treturn (\n\t\t<DHIS2PivotTableEngineProvider engine={engine}>\n\t\t\t<PivotTable setRef={setRef} tableProps={tableProps}>\n\t\t\t\t<TableHeaders />\n\t\t\t\t<CustomPivotTableBody />\n\t\t\t</PivotTable>\n\t\t</DHIS2PivotTableEngineProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/DHIS2PivotTable/DHIS2PivotTable.tsx"],"names":[],"mappings":";;;;;;;;AA6BO,SAAS,eAAgB,CAAA;AAAA,EAC/B,SAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA;AACD,CAAyB,EAAA;AACxB,EAAA,MAAM,MAAS,GAAA,OAAA;AAAA,IACd,MAAM,IAAI,qBAAA,CAAsB,EAAE,SAAA,EAAW,QAAQ,CAAA;AAAA,IACrD,CAAC,WAAW,MAAM;AAAA,GACnB;AAEA,EAAA,2BACE,6BAA8B,EAAA,EAAA,MAAA,EAC9B,QAAC,kBAAA,IAAA,CAAA,UAAA,EAAA,EAAW,QAAgB,UAC3B,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,CAAA;AAAA,wBACb,oBAAqB,EAAA,EAAA;AAAA,GAAA,EACvB,CACD,EAAA,CAAA;AAEF","file":"DHIS2PivotTable.js","sourcesContent":["import { Analytics, LegendSet } from \"@hisptz/dhis2-utils\";\nimport { DHIS2PivotTableEngine, type EngineConfig } from \"./services/engine.js\";\nimport React, { useMemo } from \"react\";\nimport { DHIS2PivotTableEngineProvider } from \"./state/engine.js\";\nimport { PivotTable } from \"./components/Table/index.js\";\nimport { TableHeaders } from \"./components/TableHeaders/index.js\";\nimport { CustomPivotTableBody } from \"./components/TableBody/index.js\";\nimport { DataTableProps } from \"@dhis2/ui\";\n\nexport interface DHIS2PivotTableOptions {\n\tlegendSets?: LegendSet[];\n\thideEmptyColumns?: boolean;\n\thideEmptyRows?: boolean;\n\tshowRowTotals?: boolean;\n\tshowColumnTotals?: boolean;\n\tshowRowSubtotals?: boolean;\n\tshowColumnSubtotals?: boolean;\n\tfixColumnHeaders?: boolean;\n\tfixRowHeaders?: boolean;\n\tshowFilterAsTitle?: boolean;\n}\n\nexport interface DHIS2PivotTableProps {\n\tanalytics: Analytics;\n\ttableProps?: DataTableProps;\n\tsetRef?: (ref: HTMLTableElement) => void;\n\tconfig: EngineConfig;\n}\n\nexport function DHIS2PivotTable({\n\tanalytics,\n\tconfig,\n\ttableProps,\n\tsetRef,\n}: DHIS2PivotTableProps) {\n\tconst engine = useMemo(\n\t\t() => new DHIS2PivotTableEngine({ analytics, config }),\n\t\t[analytics, config],\n\t);\n\n\treturn (\n\t\t<DHIS2PivotTableEngineProvider engine={engine}>\n\t\t\t<PivotTable setRef={setRef} tableProps={tableProps}>\n\t\t\t\t<TableHeaders />\n\t\t\t\t<CustomPivotTableBody />\n\t\t\t</PivotTable>\n\t\t</DHIS2PivotTableEngineProvider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/DHIS2PivotTable/components/Table/index.tsx"],"names":[],"mappings":";;;AAWO,SAAS,UAAW,CAAA,EAAE,UAAY,EAAA,QAAA,EAAU,QAA2B,EAAA;AAC7E,EACC,uBAAA,GAAA,CAAA,QAAA,EAAA,EAGC,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAU,GAAK,EAAA,MAAA,EAAgB,GAAI,UAAc,IAAA,EAChD,EAAA,QAAA,EACF,CACD,EAAA,CAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React from \"react\";\nimport { DataTable, DataTableProps } from \"@dhis2/ui\";\n\nexport type PivotTableLayoutProps = DataTableProps;\n\nexport interface PivotTableProps {\n\tchildren: React.ReactNode;\n\ttableProps?: DataTableProps;\n\tsetRef?: (ref: HTMLTableElement) => void;\n}\n\nexport function PivotTable({ tableProps, children, setRef }: PivotTableProps) {\n\treturn (\n\t\t<>\n\t\t\t{/*\n// @ts-ignore */}\n\t\t\t<DataTable ref={setRef as any} {...(tableProps ?? {})}>\n\t\t\t\t{children}\n\t\t\t</DataTable>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/DHIS2PivotTable/components/Table/index.tsx"],"names":[],"mappings":";;;AAWO,SAAS,UAAW,CAAA,EAAE,UAAY,EAAA,QAAA,EAAU,QAA2B,EAAA;AAC7E,EACC,uBAAA,GAAA,CAAA,QAAA,EAAA,EAGC,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAU,GAAK,EAAA,MAAA,EAAgB,GAAI,UAAc,IAAA,EAChD,EAAA,QAAA,EACF,CACD,EAAA,CAAA;AAEF","file":"index.js","sourcesContent":["import React from \"react\";\nimport { DataTable, DataTableProps } from \"@dhis2/ui\";\n\nexport type PivotTableLayoutProps = DataTableProps;\n\nexport interface PivotTableProps {\n\tchildren: React.ReactNode;\n\ttableProps?: DataTableProps;\n\tsetRef?: (ref: HTMLTableElement) => void;\n}\n\nexport function PivotTable({ tableProps, children, setRef }: PivotTableProps) {\n\treturn (\n\t\t<>\n\t\t\t{/*\n// @ts-ignore */}\n\t\t\t<DataTable ref={setRef as any} {...(tableProps ?? {})}>\n\t\t\t\t{children}\n\t\t\t</DataTable>\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/DHIS2PivotTable/components/TableBody/index.tsx"],"names":["mapper","Fragment"],"mappings":"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","file":"index.js","sourcesContent":["import { Header } from \"../../services/engine\";\nimport { isEmpty, slice } from \"lodash\";\nimport { useCustomPivotTableEngine } from \"../../state/engine.js\";\nimport { DataTableCell, DataTableRow, TableBody } from \"@dhis2/ui\";\nimport React, { Fragment, ReactNode, useRef } from \"react\";\nimport { AnalyticsItem } from \"@hisptz/dhis2-utils\";\nimport classes from \"./TableBody.module.css\";\nimport { DHIS2Dimension } from \"../../interfaces/index.js\";\nimport { useResizeObserver } from \"usehooks-ts\";\n\nfunction DataRowRenderer({\n\tmapper,\n\titem,\n\tdimension,\n}: {\n\tmapper?: { [key: string]: any };\n\titem: AnalyticsItem;\n\tdimension: DHIS2Dimension;\n}) {\n\tconst engine = useCustomPivotTableEngine();\n\n\tconst columnMappers = engine?.columnMap;\n\tconst completeMapper = columnMappers?.map((map) => ({\n\t\t...map,\n\t\t...mapper,\n\t\t[dimension]: item.uid,\n\t}));\n\treturn (\n\t\t<>\n\t\t\t{completeMapper?.map((mapper) => (\n\t\t\t\t<DataTableCell\n\t\t\t\t\tkey={`${Object.values(mapper).join(\"-\")}-value`}\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tbordered\n\t\t\t\t>\n\t\t\t\t\t{engine?.getValue(mapper) ?? \"\"}\n\t\t\t\t</DataTableCell>\n\t\t\t))}\n\t\t</>\n\t);\n}\n\nfunction RowRenderer({\n\trow,\n\tindex,\n\tconfig: { rows, columns, mapper, prevWidth, fixRowHeaders },\n}: {\n\trow: Header;\n\tindex: number;\n\tconfig: {\n\t\trows: Header[];\n\t\tcolumns?: Header[];\n\t\tmapper?: { [key: string]: string | undefined };\n\t\tprevWidth?: number;\n\t\tfixRowHeaders?: boolean;\n\t};\n}): React.ReactElement | null {\n\tconst cellRef = useRef<HTMLElement | null>(null);\n\tconst { width } = useResizeObserver({\n\t\tref: cellRef,\n\t});\n\n\tconst rowSpan = slice(rows, index + 1).reduce((acc, column) => {\n\t\treturn acc * (column.items?.length ?? 1);\n\t}, 1);\n\tconst hasSubRows = !isEmpty(rows[index + 1]);\n\tconst nextRow = rows[index + 1];\n\n\treturn (\n\t\t<>\n\t\t\t{row?.items?.map((item) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={`${item.name}-${row.dimension}-fragment`}>\n\t\t\t\t\t\t<DataTableRow key={`${item.name}-${row.dimension}-row`}>\n\t\t\t\t\t\t\t<DataTableCell\n\t\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\t\tref={cellRef}\n\t\t\t\t\t\t\t\tfixed={fixRowHeaders}\n\t\t\t\t\t\t\t\tleft={`${prevWidth}px` as unknown as boolean}\n\t\t\t\t\t\t\t\tclassName={classes[\"header-cell\"]}\n\t\t\t\t\t\t\t\ttag=\"th\"\n\t\t\t\t\t\t\t\tbordered\n\t\t\t\t\t\t\t\trowSpan={(\n\t\t\t\t\t\t\t\t\trowSpan + (hasSubRows ? 1 : 0)\n\t\t\t\t\t\t\t\t).toString()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.name as unknown as string | ReactNode}\n\t\t\t\t\t\t\t</DataTableCell>\n\t\t\t\t\t\t\t{!hasSubRows ? (\n\t\t\t\t\t\t\t\t<DataRowRenderer\n\t\t\t\t\t\t\t\t\tdimension={row.dimension}\n\t\t\t\t\t\t\t\t\tmapper={mapper}\n\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t</DataTableRow>\n\t\t\t\t\t\t{hasSubRows ? (\n\t\t\t\t\t\t\t<RowRenderer\n\t\t\t\t\t\t\t\trow={nextRow}\n\t\t\t\t\t\t\t\tindex={index + 1}\n\t\t\t\t\t\t\t\tconfig={{\n\t\t\t\t\t\t\t\t\trows,\n\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\tprevWidth: width,\n\t\t\t\t\t\t\t\t\tmapper: {\n\t\t\t\t\t\t\t\t\t\t...mapper,\n\t\t\t\t\t\t\t\t\t\t[row.dimension]:\n\t\t\t\t\t\t\t\t\t\t\titem.uid as unknown as string,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n}\n\nexport function CustomPivotTableBody() {\n\tconst engine = useCustomPivotTableEngine();\n\tconst rows = engine?.rowHeaders;\n\tconst columns = engine?.columnHeaders;\n\tconst fixRowHeaders = engine?.fixRowHeaders;\n\n\tif (!rows || isEmpty(rows)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TableBody>\n\t\t\t<RowRenderer\n\t\t\t\trow={rows[0]}\n\t\t\t\tindex={0}\n\t\t\t\tconfig={{ rows, columns, fixRowHeaders }}\n\t\t\t/>\n\t\t</TableBody>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/DHIS2PivotTable/components/TableBody/index.tsx"],"names":["mapper","Fragment"],"mappings":"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","file":"index.js","sourcesContent":["import { Header } from \"../../services/engine\";\nimport { isEmpty, slice } from \"lodash\";\nimport { useCustomPivotTableEngine } from \"../../state/engine.js\";\nimport { DataTableCell, DataTableRow, TableBody } from \"@dhis2/ui\";\nimport React, { Fragment, ReactNode, useRef } from \"react\";\nimport { AnalyticsItem } from \"@hisptz/dhis2-utils\";\nimport classes from \"./TableBody.module.css\";\nimport { DHIS2Dimension } from \"../../interfaces/index.js\";\nimport { useResizeObserver } from \"usehooks-ts\";\n\nfunction DataRowRenderer({\n\tmapper,\n\titem,\n\tdimension,\n}: {\n\tmapper?: { [key: string]: any };\n\titem: AnalyticsItem;\n\tdimension: DHIS2Dimension;\n}) {\n\tconst engine = useCustomPivotTableEngine();\n\n\tconst columnMappers = engine?.columnMap;\n\tconst completeMapper = columnMappers?.map((map) => ({\n\t\t...map,\n\t\t...mapper,\n\t\t[dimension]: item.uid,\n\t}));\n\treturn (\n\t\t<>\n\t\t\t{completeMapper?.map((mapper) => (\n\t\t\t\t<DataTableCell\n\t\t\t\t\tkey={`${Object.values(mapper).join(\"-\")}-value`}\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tbordered\n\t\t\t\t>\n\t\t\t\t\t{engine?.getValue(mapper) ?? \"\"}\n\t\t\t\t</DataTableCell>\n\t\t\t))}\n\t\t</>\n\t);\n}\n\nfunction RowRenderer({\n\trow,\n\tindex,\n\tconfig: { rows, columns, mapper, prevWidth, fixRowHeaders },\n}: {\n\trow: Header;\n\tindex: number;\n\tconfig: {\n\t\trows: Header[];\n\t\tcolumns?: Header[];\n\t\tmapper?: { [key: string]: string | undefined };\n\t\tprevWidth?: number;\n\t\tfixRowHeaders?: boolean;\n\t};\n}): React.ReactElement | null {\n\tconst cellRef = useRef<HTMLElement | null>(null);\n\tconst { width } = useResizeObserver({\n\t\tref: cellRef,\n\t});\n\n\tconst rowSpan = slice(rows, index + 1).reduce((acc, column) => {\n\t\treturn acc * (column.items?.length ?? 1);\n\t}, 1);\n\tconst hasSubRows = !isEmpty(rows[index + 1]);\n\tconst nextRow = rows[index + 1];\n\n\treturn (\n\t\t<>\n\t\t\t{row?.items?.map((item) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={`${item.name}-${row.dimension}-fragment`}>\n\t\t\t\t\t\t<DataTableRow key={`${item.name}-${row.dimension}-row`}>\n\t\t\t\t\t\t\t<DataTableCell\n\t\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\t\tref={cellRef}\n\t\t\t\t\t\t\t\tfixed={fixRowHeaders}\n\t\t\t\t\t\t\t\tleft={`${prevWidth}px` as unknown as boolean}\n\t\t\t\t\t\t\t\tclassName={classes[\"header-cell\"]}\n\t\t\t\t\t\t\t\ttag=\"th\"\n\t\t\t\t\t\t\t\tbordered\n\t\t\t\t\t\t\t\trowSpan={(\n\t\t\t\t\t\t\t\t\trowSpan + (hasSubRows ? 1 : 0)\n\t\t\t\t\t\t\t\t).toString()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.name as unknown as string | ReactNode}\n\t\t\t\t\t\t\t</DataTableCell>\n\t\t\t\t\t\t\t{!hasSubRows ? (\n\t\t\t\t\t\t\t\t<DataRowRenderer\n\t\t\t\t\t\t\t\t\tdimension={row.dimension}\n\t\t\t\t\t\t\t\t\tmapper={mapper}\n\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t</DataTableRow>\n\t\t\t\t\t\t{hasSubRows ? (\n\t\t\t\t\t\t\t<RowRenderer\n\t\t\t\t\t\t\t\trow={nextRow}\n\t\t\t\t\t\t\t\tindex={index + 1}\n\t\t\t\t\t\t\t\tconfig={{\n\t\t\t\t\t\t\t\t\trows,\n\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\tprevWidth: width,\n\t\t\t\t\t\t\t\t\tmapper: {\n\t\t\t\t\t\t\t\t\t\t...mapper,\n\t\t\t\t\t\t\t\t\t\t[row.dimension]:\n\t\t\t\t\t\t\t\t\t\t\titem.uid as unknown as string,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n}\n\nexport function CustomPivotTableBody() {\n\tconst engine = useCustomPivotTableEngine();\n\tconst rows = engine?.rowHeaders;\n\tconst columns = engine?.columnHeaders;\n\tconst fixRowHeaders = engine?.fixRowHeaders;\n\n\tif (!rows || isEmpty(rows)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TableBody>\n\t\t\t<RowRenderer\n\t\t\t\trow={rows[0]}\n\t\t\t\tindex={0}\n\t\t\t\tconfig={{ rows, columns, fixRowHeaders }}\n\t\t\t/>\n\t\t</TableBody>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/DHIS2PivotTable/components/TableHeaders/index.tsx"],"names":["column"],"mappings":"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","file":"index.js","sourcesContent":["import React, { useRef } from \"react\";\nimport { useCustomPivotTableEngine } from \"../../state/engine.js\";\nimport { DataTableColumnHeader, DataTableRow, TableHead } from \"@dhis2/ui\";\nimport { isEmpty, slice, times } from \"lodash\";\nimport { DHIS2PivotTableEngine, Header } from \"../../services/engine.js\";\nimport classes from \"./TableHeaders.module.css\";\nimport { useResizeObserver } from \"usehooks-ts\";\n\nfunction ColumnRenderer({\n\tcolumn,\n\tindex,\n\tconfig: { fixColumnHeaders, rowHeaders, prevHeight = 0, columns, engine },\n}: {\n\tcolumn: Header;\n\tindex: number;\n\tconfig: {\n\t\tcolumns: Header[];\n\t\trowHeaders?: Header[];\n\t\tprevHeight?: number;\n\t\tfixColumnHeaders?: boolean;\n\t\tengine: DHIS2PivotTableEngine;\n\t};\n}): React.ReactElement | null {\n\tconst ref = useRef<HTMLElement | null>(null);\n\tconst { height } = useResizeObserver({\n\t\tref,\n\t});\n\n\tif (!column) {\n\t\treturn null;\n\t}\n\tconst colSpan = slice(columns, index + 1).reduce((acc, column) => {\n\t\treturn acc * (column.items?.length ?? 1);\n\t}, 1);\n\n\tconst hasSubColumns = !isEmpty(columns[index + 1]);\n\tconst nextColumn = columns[index + 1];\n\n\tconst multiplicationFactor = slice(columns, 0, index).reduce(\n\t\t(acc, column) => {\n\t\t\treturn acc * (column.items?.length ?? 1);\n\t\t},\n\t\t1,\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{engine?.showTitle && (\n\t\t\t\t<DataTableRow>\n\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tcolSpan={engine.titleSpan.toString()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{engine.title ?? \"\"}\n\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t</DataTableRow>\n\t\t\t)}\n\t\t\t<DataTableRow>\n\t\t\t\t{index === 0 &&\n\t\t\t\t\trowHeaders?.map((header) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\t\t\tfixed={fixColumnHeaders}\n\t\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\t\ttop={\"0\"}\n\t\t\t\t\t\t\t\tclassName={classes[\"table-header\"]}\n\t\t\t\t\t\t\t\trowSpan={columns.length.toString()}\n\t\t\t\t\t\t\t\tkey={`${header.dimension}-header-column`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{header.label ?? \"\"}\n\t\t\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t{times(multiplicationFactor, (colNo) => {\n\t\t\t\t\treturn column.items?.map((item) => (\n\t\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\t\tfixed={fixColumnHeaders}\n\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\ttop={`${prevHeight.toString()}px`}\n\t\t\t\t\t\t\tref={index === 0 ? ref : undefined}\n\t\t\t\t\t\t\tclassName={classes[\"table-header\"]}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tcolSpan={colSpan.toString()}\n\t\t\t\t\t\t\tkey={`${colNo}-${item.name}-column-header`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item.name as unknown as string}\n\t\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t\t));\n\t\t\t\t})}\n\t\t\t</DataTableRow>\n\t\t\t{hasSubColumns ? (\n\t\t\t\t<ColumnRenderer\n\t\t\t\t\tcolumn={nextColumn}\n\t\t\t\t\tindex={index + 1}\n\t\t\t\t\tconfig={{\n\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\trowHeaders,\n\t\t\t\t\t\tprevHeight: height,\n\t\t\t\t\t\tfixColumnHeaders,\n\t\t\t\t\t\tengine,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t</>\n\t);\n}\n\nexport function TableHeaders() {\n\tconst engine = useCustomPivotTableEngine();\n\tconst columns = engine?.columnHeaders;\n\tconst rowHeaders = engine?.rowHeaders;\n\tconst fixColumnHeaders = engine?.fixColumnHeaders;\n\n\tif (!columns || isEmpty(columns)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TableHead>\n\t\t\t<ColumnRenderer\n\t\t\t\tcolumn={columns[0]}\n\t\t\t\tindex={0}\n\t\t\t\tconfig={{ engine, rowHeaders, columns, fixColumnHeaders }}\n\t\t\t/>\n\t\t</TableHead>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/DHIS2PivotTable/components/TableHeaders/index.tsx"],"names":["column"],"mappings":"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","file":"index.js","sourcesContent":["import React, { useRef } from \"react\";\nimport { useCustomPivotTableEngine } from \"../../state/engine.js\";\nimport { DataTableColumnHeader, DataTableRow, TableHead } from \"@dhis2/ui\";\nimport { isEmpty, slice, times } from \"lodash\";\nimport { DHIS2PivotTableEngine, Header } from \"../../services/engine.js\";\nimport classes from \"./TableHeaders.module.css\";\nimport { useResizeObserver } from \"usehooks-ts\";\n\nfunction ColumnRenderer({\n\tcolumn,\n\tindex,\n\tconfig: { fixColumnHeaders, rowHeaders, prevHeight = 0, columns, engine },\n}: {\n\tcolumn: Header;\n\tindex: number;\n\tconfig: {\n\t\tcolumns: Header[];\n\t\trowHeaders?: Header[];\n\t\tprevHeight?: number;\n\t\tfixColumnHeaders?: boolean;\n\t\tengine: DHIS2PivotTableEngine;\n\t};\n}): React.ReactElement | null {\n\tconst ref = useRef<HTMLElement | null>(null);\n\tconst { height } = useResizeObserver({\n\t\tref,\n\t});\n\n\tif (!column) {\n\t\treturn null;\n\t}\n\tconst colSpan = slice(columns, index + 1).reduce((acc, column) => {\n\t\treturn acc * (column.items?.length ?? 1);\n\t}, 1);\n\n\tconst hasSubColumns = !isEmpty(columns[index + 1]);\n\tconst nextColumn = columns[index + 1];\n\n\tconst multiplicationFactor = slice(columns, 0, index).reduce(\n\t\t(acc, column) => {\n\t\t\treturn acc * (column.items?.length ?? 1);\n\t\t},\n\t\t1,\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{engine?.showTitle && (\n\t\t\t\t<DataTableRow>\n\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tcolSpan={engine.titleSpan.toString()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{engine.title ?? \"\"}\n\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t</DataTableRow>\n\t\t\t)}\n\t\t\t<DataTableRow>\n\t\t\t\t{index === 0 &&\n\t\t\t\t\trowHeaders?.map((header) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\t\t\tfixed={fixColumnHeaders}\n\t\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\t\ttop={\"0\"}\n\t\t\t\t\t\t\t\tclassName={classes[\"table-header\"]}\n\t\t\t\t\t\t\t\trowSpan={columns.length.toString()}\n\t\t\t\t\t\t\t\tkey={`${header.dimension}-header-column`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{header.label ?? \"\"}\n\t\t\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t{times(multiplicationFactor, (colNo) => {\n\t\t\t\t\treturn column.items?.map((item) => (\n\t\t\t\t\t\t<DataTableColumnHeader\n\t\t\t\t\t\t\tfixed={fixColumnHeaders}\n\t\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\t\ttop={`${prevHeight.toString()}px`}\n\t\t\t\t\t\t\tref={index === 0 ? ref : undefined}\n\t\t\t\t\t\t\tclassName={classes[\"table-header\"]}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tcolSpan={colSpan.toString()}\n\t\t\t\t\t\t\tkey={`${colNo}-${item.name}-column-header`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item.name as unknown as string}\n\t\t\t\t\t\t</DataTableColumnHeader>\n\t\t\t\t\t));\n\t\t\t\t})}\n\t\t\t</DataTableRow>\n\t\t\t{hasSubColumns ? (\n\t\t\t\t<ColumnRenderer\n\t\t\t\t\tcolumn={nextColumn}\n\t\t\t\t\tindex={index + 1}\n\t\t\t\t\tconfig={{\n\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\trowHeaders,\n\t\t\t\t\t\tprevHeight: height,\n\t\t\t\t\t\tfixColumnHeaders,\n\t\t\t\t\t\tengine,\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t</>\n\t);\n}\n\nexport function TableHeaders() {\n\tconst engine = useCustomPivotTableEngine();\n\tconst columns = engine?.columnHeaders;\n\tconst rowHeaders = engine?.rowHeaders;\n\tconst fixColumnHeaders = engine?.fixColumnHeaders;\n\n\tif (!columns || isEmpty(columns)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TableHead>\n\t\t\t<ColumnRenderer\n\t\t\t\tcolumn={columns[0]}\n\t\t\t\tindex={0}\n\t\t\t\tconfig={{ engine, rowHeaders, columns, fixColumnHeaders }}\n\t\t\t/>\n\t\t</TableHead>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/services/engine.ts"],"names":["dimension"],"mappings":"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","file":"engine.js","sourcesContent":["import { Analytics, AnalyticsItem, LegendSet } from \"@hisptz/dhis2-utils\";\nimport { compact, findIndex, intersection, times, zip } from \"lodash\";\nimport { DHIS2Dimension } from \"../interfaces/index.js\";\n\nexport interface EngineConfig {\n\tlayout: {\n\t\tcolumns: { dimension: DHIS2Dimension; label?: string }[];\n\t\trows: { dimension: DHIS2Dimension; label?: string }[];\n\t\tfilter?: { dimension: DHIS2Dimension; label?: string }[];\n\t};\n\toptions?: {\n\t\tlegendSets?: LegendSet[];\n\t\thideEmptyColumns?: boolean;\n\t\thideEmptyRows?: boolean;\n\t\tshowRowTotals?: boolean;\n\t\tshowColumnTotals?: boolean;\n\t\tshowRowSubtotals?: boolean;\n\t\tshowColumnSubtotals?: boolean;\n\t\tshowFilterAsTitle?: boolean;\n\t\tfixColumnHeaders?: boolean;\n\t\tfixRowHeaders?: boolean;\n\t\t[key: string]: any;\n\t};\n}\n\nexport interface Header {\n\tdimension: DHIS2Dimension;\n\tlabel?: string;\n\titems?: AnalyticsItem[];\n}\n\nexport class DHIS2PivotTableEngine {\n\tanalyticsData: Analytics;\n\tvalueIndex: number;\n\tconfig: EngineConfig;\n\trowHeaders?: Header[];\n\tcolumnHeaders?: Header[];\n\n\tcolumnMap?: { [key: string]: any }[];\n\n\tconstructor({\n\t\tanalytics,\n\t\tconfig,\n\t}: {\n\t\tanalytics: Analytics;\n\t\tconfig: EngineConfig;\n\t}) {\n\t\tthis.config = config;\n\t\tthis.analyticsData = analytics;\n\t\tthis.valueIndex = findIndex(this.analyticsData.headers, [\n\t\t\t\"name\",\n\t\t\t\"value\",\n\t\t]);\n\t\tthis.getHeaders();\n\t\tthis.getColumnMap();\n\t}\n\n\tget title() {\n\t\tconst filters = this.config.layout.filter ?? [];\n\t\tconst labels =\n\t\t\tfilters?.map(({ dimension }) => {\n\t\t\t\tconst dimensions =\n\t\t\t\t\tthis.analyticsData.metaData?.dimensions[dimension];\n\n\t\t\t\treturn dimensions?.map((dimension) => {\n\t\t\t\t\tconst dimensionItem =\n\t\t\t\t\t\tthis.analyticsData.metaData?.items[dimension];\n\t\t\t\t\treturn dimensionItem?.name;\n\t\t\t\t});\n\t\t\t}) ?? [];\n\n\t\treturn compact(labels.flat()).join(\", \");\n\t}\n\n\tget titleSpan() {\n\t\tconst rowHeaders = this.rowHeaders?.length ?? 0;\n\t\tconst columnHeaders =\n\t\t\tthis.columnHeaders?.reduce(\n\t\t\t\t(acc, val) => acc + (val.items?.length ?? 0),\n\t\t\t\t0,\n\t\t\t) ?? 0;\n\n\t\treturn rowHeaders + columnHeaders;\n\t}\n\n\tget showTitle() {\n\t\treturn this.config?.options?.showFilterAsTitle;\n\t}\n\n\tget fixColumnHeaders() {\n\t\treturn this.config.options?.fixColumnHeaders ?? true;\n\t}\n\n\tget fixRowHeaders() {\n\t\treturn this.config.options?.fixRowHeaders ?? true;\n\t}\n\n\tgetDimensionItems(dimension: DHIS2Dimension) {\n\t\treturn this.analyticsData.metaData?.dimensions[dimension] ?? [];\n\t}\n\n\tgetItem(id: string) {\n\t\treturn this.analyticsData.metaData?.items[id as any];\n\t}\n\n\tgetValue(mapper: { [key: string]: any }) {\n\t\tconst dimensions = Object.values(mapper);\n\t\tconst data = this.analyticsData.rows?.filter(\n\t\t\t(row) => intersection(row, dimensions).length >= dimensions.length,\n\t\t);\n\t\treturn data?.reduce((acc, row) => {\n\t\t\treturn acc + parseFloat(row[this.valueIndex]);\n\t\t}, 0);\n\t}\n\n\tgetHeaders() {\n\t\tthis.rowHeaders = this.config.layout.rows.map((rowConfig) => {\n\t\t\treturn {\n\t\t\t\t...rowConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(rowConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tthis.columnHeaders = this.config.layout.columns.map((columnConfig) => {\n\t\t\treturn {\n\t\t\t\t...columnConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(columnConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t}\n\n\tgetColumnMap() {\n\t\tconst columns = this.columnHeaders;\n\t\tconst sanitizedColumns =\n\t\t\tcompact(\n\t\t\t\tcolumns?.map(\n\t\t\t\t\t(column) =>\n\t\t\t\t\t\tcolumn.items?.map((item) => ({\n\t\t\t\t\t\t\t[column.dimension]: item.uid,\n\t\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t) ?? [];\n\t\tconst size = sanitizedColumns.reduce((acc, items) => {\n\t\t\treturn acc * (items?.length ?? 1);\n\t\t}, 1);\n\t\tconst standardiseColumns = sanitizedColumns.map((items) => [\n\t\t\t...times(size / items.length, () => items).flat(),\n\t\t]);\n\t\tthis.columnMap = compact(\n\t\t\tzip(...standardiseColumns).map((arr) =>\n\t\t\t\tarr.reduce((obj, value) => {\n\t\t\t\t\treturn { ...obj, ...value };\n\t\t\t\t}),\n\t\t\t),\n\t\t);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/services/engine.ts"],"names":["dimension"],"mappings":"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","file":"engine.js","sourcesContent":["import { Analytics, AnalyticsItem, LegendSet } from \"@hisptz/dhis2-utils\";\nimport { compact, findIndex, intersection, times, zip } from \"lodash\";\nimport { DHIS2Dimension } from \"../interfaces/index.js\";\n\nexport interface EngineConfig {\n\tlayout: {\n\t\tcolumns: { dimension: DHIS2Dimension; label?: string }[];\n\t\trows: { dimension: DHIS2Dimension; label?: string }[];\n\t\tfilter?: { dimension: DHIS2Dimension; label?: string }[];\n\t};\n\toptions?: {\n\t\tlegendSets?: LegendSet[];\n\t\thideEmptyColumns?: boolean;\n\t\thideEmptyRows?: boolean;\n\t\tshowRowTotals?: boolean;\n\t\tshowColumnTotals?: boolean;\n\t\tshowRowSubtotals?: boolean;\n\t\tshowColumnSubtotals?: boolean;\n\t\tshowFilterAsTitle?: boolean;\n\t\tfixColumnHeaders?: boolean;\n\t\tfixRowHeaders?: boolean;\n\t\t[key: string]: any;\n\t};\n}\n\nexport interface Header {\n\tdimension: DHIS2Dimension;\n\tlabel?: string;\n\titems?: AnalyticsItem[];\n}\n\nexport class DHIS2PivotTableEngine {\n\tanalyticsData: Analytics;\n\tvalueIndex: number;\n\tconfig: EngineConfig;\n\trowHeaders?: Header[];\n\tcolumnHeaders?: Header[];\n\n\tcolumnMap?: { [key: string]: any }[];\n\n\tconstructor({\n\t\tanalytics,\n\t\tconfig,\n\t}: {\n\t\tanalytics: Analytics;\n\t\tconfig: EngineConfig;\n\t}) {\n\t\tthis.config = config;\n\t\tthis.analyticsData = analytics;\n\t\tthis.valueIndex = findIndex(this.analyticsData.headers, [\n\t\t\t\"name\",\n\t\t\t\"value\",\n\t\t]);\n\t\tthis.getHeaders();\n\t\tthis.getColumnMap();\n\t}\n\n\tget title() {\n\t\tconst filters = this.config.layout.filter ?? [];\n\t\tconst labels =\n\t\t\tfilters?.map(({ dimension }) => {\n\t\t\t\tconst dimensions =\n\t\t\t\t\tthis.analyticsData.metaData?.dimensions[dimension];\n\n\t\t\t\treturn dimensions?.map((dimension) => {\n\t\t\t\t\tconst dimensionItem =\n\t\t\t\t\t\tthis.analyticsData.metaData?.items[dimension];\n\t\t\t\t\treturn dimensionItem?.name;\n\t\t\t\t});\n\t\t\t}) ?? [];\n\n\t\treturn compact(labels.flat()).join(\", \");\n\t}\n\n\tget titleSpan() {\n\t\tconst rowHeaders = this.rowHeaders?.length ?? 0;\n\t\tconst columnHeaders =\n\t\t\tthis.columnHeaders?.reduce(\n\t\t\t\t(acc, val) => acc + (val.items?.length ?? 0),\n\t\t\t\t0,\n\t\t\t) ?? 0;\n\n\t\treturn rowHeaders + columnHeaders;\n\t}\n\n\tget showTitle() {\n\t\treturn this.config?.options?.showFilterAsTitle;\n\t}\n\n\tget fixColumnHeaders() {\n\t\treturn this.config.options?.fixColumnHeaders ?? true;\n\t}\n\n\tget fixRowHeaders() {\n\t\treturn this.config.options?.fixRowHeaders ?? true;\n\t}\n\n\tgetDimensionItems(dimension: DHIS2Dimension) {\n\t\treturn this.analyticsData.metaData?.dimensions[dimension] ?? [];\n\t}\n\n\tgetItem(id: string) {\n\t\treturn this.analyticsData.metaData?.items[id as any];\n\t}\n\n\tgetValue(mapper: { [key: string]: any }) {\n\t\tconst dimensions = Object.values(mapper);\n\t\tconst data = this.analyticsData.rows?.filter(\n\t\t\t(row) => intersection(row, dimensions).length >= dimensions.length,\n\t\t);\n\t\treturn data?.reduce((acc, row) => {\n\t\t\treturn acc + parseFloat(row[this.valueIndex]);\n\t\t}, 0);\n\t}\n\n\tgetHeaders() {\n\t\tthis.rowHeaders = this.config.layout.rows.map((rowConfig) => {\n\t\t\treturn {\n\t\t\t\t...rowConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(rowConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tthis.columnHeaders = this.config.layout.columns.map((columnConfig) => {\n\t\t\treturn {\n\t\t\t\t...columnConfig,\n\t\t\t\titems: compact(\n\t\t\t\t\tthis.getDimensionItems(columnConfig.dimension).map(\n\t\t\t\t\t\t(itemId: string) => this.getItem(itemId),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t}\n\n\tgetColumnMap() {\n\t\tconst columns = this.columnHeaders;\n\t\tconst sanitizedColumns =\n\t\t\tcompact(\n\t\t\t\tcolumns?.map(\n\t\t\t\t\t(column) =>\n\t\t\t\t\t\tcolumn.items?.map((item) => ({\n\t\t\t\t\t\t\t[column.dimension]: item.uid,\n\t\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t) ?? [];\n\t\tconst size = sanitizedColumns.reduce((acc, items) => {\n\t\t\treturn acc * (items?.length ?? 1);\n\t\t}, 1);\n\t\tconst standardiseColumns = sanitizedColumns.map((items) => [\n\t\t\t...times(size / items.length, () => items).flat(),\n\t\t]);\n\t\tthis.columnMap = compact(\n\t\t\tzip(...standardiseColumns).map((arr) =>\n\t\t\t\tarr.reduce((obj, value) => {\n\t\t\t\t\treturn { ...obj, ...value };\n\t\t\t\t}),\n\t\t\t),\n\t\t);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/state/engine.tsx"],"names":[],"mappings":";;;AAGA,MAAM,4BAAA,GACL,cAA4C,IAAI,CAAA,CAAA;AAE1C,SAAS,yBAA4B,GAAA;AAC3C,EAAA,OAAO,WAAW,4BAA4B,CAAA,CAAA;AAC/C,CAAA;AAEO,SAAS,6BAA8B,CAAA;AAAA,EAC7C,QAAA;AAAA,EACA,MAAA;AACD,CAGG,EAAA;AACF,EAAA,2BACE,4BAA6B,CAAA,QAAA,EAA7B,EAAsC,KAAA,EAAO,QAC5C,QACF,EAAA,CAAA,CAAA;AAEF","file":"engine.js","sourcesContent":["import React, { createContext, ReactNode, useContext } from \"react\";\nimport { DHIS2PivotTableEngine } from \"../services/engine.js\";\n\nconst DHIS2PivotTableEngineContext =\n\tcreateContext<DHIS2PivotTableEngine | null>(null);\n\nexport function useCustomPivotTableEngine() {\n\treturn useContext(DHIS2PivotTableEngineContext);\n}\n\nexport function DHIS2PivotTableEngineProvider({\n\tchildren,\n\tengine,\n}: {\n\tchildren: ReactNode;\n\tengine: DHIS2PivotTableEngine;\n}) {\n\treturn (\n\t\t<DHIS2PivotTableEngineContext.Provider value={engine}>\n\t\t\t{children}\n\t\t</DHIS2PivotTableEngineContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/DHIS2PivotTable/state/engine.tsx"],"names":[],"mappings":";;;AAGA,MAAM,4BAAA,GACL,cAA4C,IAAI,CAAA;AAE1C,SAAS,yBAA4B,GAAA;AAC3C,EAAA,OAAO,WAAW,4BAA4B,CAAA;AAC/C;AAEO,SAAS,6BAA8B,CAAA;AAAA,EAC7C,QAAA;AAAA,EACA;AACD,CAGG,EAAA;AACF,EAAA,2BACE,4BAA6B,CAAA,QAAA,EAA7B,EAAsC,KAAA,EAAO,QAC5C,QACF,EAAA,CAAA;AAEF","file":"engine.js","sourcesContent":["import React, { createContext, ReactNode, useContext } from \"react\";\nimport { DHIS2PivotTableEngine } from \"../services/engine.js\";\n\nconst DHIS2PivotTableEngineContext =\n\tcreateContext<DHIS2PivotTableEngine | null>(null);\n\nexport function useCustomPivotTableEngine() {\n\treturn useContext(DHIS2PivotTableEngineContext);\n}\n\nexport function DHIS2PivotTableEngineProvider({\n\tchildren,\n\tengine,\n}: {\n\tchildren: ReactNode;\n\tengine: DHIS2PivotTableEngine;\n}) {\n\treturn (\n\t\t<DHIS2PivotTableEngineContext.Provider value={engine}>\n\t\t\t{children}\n\t\t</DHIS2PivotTableEngineContext.Provider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Map/DHIS2Map.tsx"],"names":[],"mappings":";;;;;;AAWA,MAAM,WAAA,GAAc,IAAI,WAAY,EAAA,CAAA;AAEpC,MAAM,eAAe,CAAC;AAAA,EACrB,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,gBAAA;AACD,CAAgB,KAAA;AACf,EAAA,MAAM,oBAA2C,GAAA;AAAA,IAChD;AAAA,MACC,IAAM,EAAA,OAAA;AAAA,MACN,EAAI,EAAA,OAAA;AAAA,MACJ,OAAA,EAAS,YAAY,OAAW,IAAA,KAAA;AAAA,MAChC,GAAG,UAAA;AAAA,KACJ;AAAA,GACD,CAAA;AACA,EAAA,MAAM,uBAAiD,GAAA;AAAA,IACtD;AAAA,MACC,GAAG,aAAA;AAAA,MACH,IAAM,EAAA,SAAA;AAAA,MACN,EAAI,EAAA,UAAA;AAAA,MACJ,OAAA,EAAS,eAAe,OAAW,IAAA,KAAA;AAAA,KACpC;AAAA,GACD,CAAA;AAEA,EACC,uBAAA,GAAA,CAAC,mBAAoB,EAAA,EAAA,MAAA,EAAQ,WAC5B,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACA,MAAQ,EAAA;AAAA,YACP,cAAA;AAAA,YACA,iBAAA;AAAA,YACA,cAAgB,EAAA,uBAAA;AAAA,YAChB,WAAa,EAAA,oBAAA;AAAA,WACd;AAAA,UACA,gBAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA;AAAA,UAEA,GAAK,EAAA,MAAA;AAAA,UACL,UAAA;AAAA,SAAA;AAAA,QAFK,GAAA;AAAA,OAGN;AAAA,KAAA;AAAA,GAEF,EAAA,CAAA,CAAA;AAEF,CAAA,CAAA;AACO,MAAM,QAA+B,GAAA,aAAA;AAKrC,MAAM,GAAM,GAAA","file":"DHIS2Map.js","sourcesContent":["import React from \"react\";\nimport MapArea from \"./components/MapArea/index.js\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomPointLayer,\n} from \"./components/MapLayer/interfaces\";\nimport { MapProvider } from \"./components/MapProvider\";\nimport { MapProps } from \"./interfaces\";\nimport \"leaflet/dist/leaflet.css\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\n\nconst queryClient = new QueryClient();\n\nconst MapComponent = ({\n\torgUnitSelection,\n\tpointLayer,\n\tboundaryLayer,\n\tthematicLayers,\n\tearthEngineLayers,\n\tperiodSelection,\n\tmapOptions,\n\tkey,\n\tcontrols,\n\tlegends,\n\tsetRef,\n\tanalyticsOptions,\n}: MapProps) => {\n\tconst sanitizedPointLayers: CustomPointLayer[] = [\n\t\t{\n\t\t\ttype: \"point\",\n\t\t\tid: \"point\",\n\t\t\tenabled: pointLayer?.enabled ?? false,\n\t\t\t...pointLayer,\n\t\t},\n\t];\n\tconst sanitizedBoundaryLayers: CustomBoundaryLayer[] = [\n\t\t{\n\t\t\t...boundaryLayer,\n\t\t\ttype: \"overlay\",\n\t\t\tid: \"boundary\",\n\t\t\tenabled: boundaryLayer?.enabled ?? false,\n\t\t},\n\t];\n\n\treturn (\n\t\t<QueryClientProvider client={queryClient}>\n\t\t\t<MapProvider\n\t\t\t\tperiodSelection={periodSelection}\n\t\t\t\torgUnitSelection={orgUnitSelection}\n\t\t\t>\n\t\t\t\t<MapArea\n\t\t\t\t\tlayers={{\n\t\t\t\t\t\tthematicLayers,\n\t\t\t\t\t\tearthEngineLayers,\n\t\t\t\t\t\tboundaryLayers: sanitizedBoundaryLayers,\n\t\t\t\t\t\tpointLayers: sanitizedPointLayers,\n\t\t\t\t\t}}\n\t\t\t\t\tanalyticsOptions={analyticsOptions}\n\t\t\t\t\tlegends={legends}\n\t\t\t\t\tcontrols={controls}\n\t\t\t\t\tkey={key}\n\t\t\t\t\tref={setRef}\n\t\t\t\t\tmapOptions={mapOptions}\n\t\t\t\t/>\n\t\t\t</MapProvider>\n\t\t</QueryClientProvider>\n\t);\n};\nexport const DHIS2Map: React.FC<MapProps> = MapComponent;\n\n/**\n * @deprecated since `v2`. Use `DHIS2Map` instead\n * */\nexport const Map = DHIS2Map;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/Map/DHIS2Map.tsx"],"names":[],"mappings":";;;;;;AAWA,MAAM,WAAA,GAAc,IAAI,WAAY,EAAA;AAEpC,MAAM,eAAe,CAAC;AAAA,EACrB,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACD,CAAgB,KAAA;AACf,EAAA,MAAM,oBAA2C,GAAA;AAAA,IAChD;AAAA,MACC,IAAM,EAAA,OAAA;AAAA,MACN,EAAI,EAAA,OAAA;AAAA,MACJ,OAAA,EAAS,YAAY,OAAW,IAAA,KAAA;AAAA,MAChC,GAAG;AAAA;AACJ,GACD;AACA,EAAA,MAAM,uBAAiD,GAAA;AAAA,IACtD;AAAA,MACC,GAAG,aAAA;AAAA,MACH,IAAM,EAAA,SAAA;AAAA,MACN,EAAI,EAAA,UAAA;AAAA,MACJ,OAAA,EAAS,eAAe,OAAW,IAAA;AAAA;AACpC,GACD;AAEA,EACC,uBAAA,GAAA,CAAC,mBAAoB,EAAA,EAAA,MAAA,EAAQ,WAC5B,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACA,MAAQ,EAAA;AAAA,YACP,cAAA;AAAA,YACA,iBAAA;AAAA,YACA,cAAgB,EAAA,uBAAA;AAAA,YAChB,WAAa,EAAA;AAAA,WACd;AAAA,UACA,gBAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA;AAAA,UAEA,GAAK,EAAA,MAAA;AAAA,UACL;AAAA,SAAA;AAAA,QAFK;AAAA;AAGN;AAAA,GAEF,EAAA,CAAA;AAEF,CAAA;AACO,MAAM,QAA+B,GAAA;AAKrC,MAAM,GAAM,GAAA","file":"DHIS2Map.js","sourcesContent":["import React from \"react\";\nimport MapArea from \"./components/MapArea/index.js\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomPointLayer,\n} from \"./components/MapLayer/interfaces\";\nimport { MapProvider } from \"./components/MapProvider\";\nimport { MapProps } from \"./interfaces\";\nimport \"leaflet/dist/leaflet.css\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\n\nconst queryClient = new QueryClient();\n\nconst MapComponent = ({\n\torgUnitSelection,\n\tpointLayer,\n\tboundaryLayer,\n\tthematicLayers,\n\tearthEngineLayers,\n\tperiodSelection,\n\tmapOptions,\n\tkey,\n\tcontrols,\n\tlegends,\n\tsetRef,\n\tanalyticsOptions,\n}: MapProps) => {\n\tconst sanitizedPointLayers: CustomPointLayer[] = [\n\t\t{\n\t\t\ttype: \"point\",\n\t\t\tid: \"point\",\n\t\t\tenabled: pointLayer?.enabled ?? false,\n\t\t\t...pointLayer,\n\t\t},\n\t];\n\tconst sanitizedBoundaryLayers: CustomBoundaryLayer[] = [\n\t\t{\n\t\t\t...boundaryLayer,\n\t\t\ttype: \"overlay\",\n\t\t\tid: \"boundary\",\n\t\t\tenabled: boundaryLayer?.enabled ?? false,\n\t\t},\n\t];\n\n\treturn (\n\t\t<QueryClientProvider client={queryClient}>\n\t\t\t<MapProvider\n\t\t\t\tperiodSelection={periodSelection}\n\t\t\t\torgUnitSelection={orgUnitSelection}\n\t\t\t>\n\t\t\t\t<MapArea\n\t\t\t\t\tlayers={{\n\t\t\t\t\t\tthematicLayers,\n\t\t\t\t\t\tearthEngineLayers,\n\t\t\t\t\t\tboundaryLayers: sanitizedBoundaryLayers,\n\t\t\t\t\t\tpointLayers: sanitizedPointLayers,\n\t\t\t\t\t}}\n\t\t\t\t\tanalyticsOptions={analyticsOptions}\n\t\t\t\t\tlegends={legends}\n\t\t\t\t\tcontrols={controls}\n\t\t\t\t\tkey={key}\n\t\t\t\t\tref={setRef}\n\t\t\t\t\tmapOptions={mapOptions}\n\t\t\t\t/>\n\t\t\t</MapProvider>\n\t\t</QueryClientProvider>\n\t);\n};\nexport const DHIS2Map: React.FC<MapProps> = MapComponent;\n\n/**\n * @deprecated since `v2`. Use `DHIS2Map` instead\n * */\nexport const Map = DHIS2Map;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.tsx"],"names":[],"mappings":";;;;;;AAsBO,SAAS,2BAA4B,CAAA;AAAA,EAC3C,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG,KAAA;AACJ,CAAqC,EAAA;AACpC,EAAA,MAAM,OAAO,OAAgC,CAAA;AAAA,IAC5C,aAAA,EAAe,UAAU,EAAC;AAAA,GAC1B,CAAA,CAAA;AACD,EAAM,MAAA,aAAA,GAAgB,CAAC,MAAmC,KAAA;AACzD,IAAQ,OAAA,EAAA,CAAA;AACR,IAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AAAA,GAChB,CAAA;AAEA,EAAA,4BACE,KAAO,EAAA,EAAA,GAAG,OAAO,IAAM,EAAA,CAAC,MAAM,OAC9B,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAY,EAAA,EAAA,QAAA,EAAA,IAAA,CAAK,CAAE,CAAA,8BAA8B,CAAE,EAAA,CAAA;AAAA,wBACnD,YACA,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,iCAA8B,IAAY,EAAA,QAAA,EAAU,SAAS,CAC/D,EAAA,CAAA;AAAA,oBACA,GAAA,CAAC,YACA,EAAA,EAAA,QAAA,kBAAA,IAAA,CAAC,WACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAO,OAAS,EAAA,OAAA,EAAU,QAAK,EAAA,IAAA,CAAA,CAAA,CAAE,QAAQ,CAAE,EAAA,CAAA;AAAA,sBAC5C,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,OAAO,EAAA,IAAA;AAAA,UACP,OAAS,EAAA,MAAM,IAAK,CAAA,YAAA,CAAa,aAAa,CAAE,EAAA;AAAA,UAE/C,QAAA,EAAA,IAAA,CAAK,EAAE,MAAM,CAAA;AAAA,SAAA;AAAA,OACf;AAAA,KAAA,EACD,CACD,EAAA,CAAA;AAAA,GACD,EAAA,CAAA,CAAA;AAEF","file":"EarthEngineLayerConfigModal.js","sourcesContent":["import { useForm } from \"react-hook-form\";\nimport { EarthEngineLayerConfig } from \"../MapLayer/interfaces/index.js\";\nimport {\n\tButton,\n\tButtonStrip,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { EarthEngineLayerConfiguration } from \"./EarthEngineLayerConfiguration.js\";\n\nexport interface EarthEngineLayerConfigModalProps {\n\topen: boolean;\n\tconfig?: EarthEngineLayerConfig;\n\texclude?: string[];\n\tonClose: () => void;\n\tonChange: (config: EarthEngineLayerConfig) => void;\n}\n\nexport function EarthEngineLayerConfigModal({\n\topen,\n\texclude,\n\tconfig,\n\tonClose,\n\tonChange,\n\t...props\n}: EarthEngineLayerConfigModalProps) {\n\tconst form = useForm<EarthEngineLayerConfig>({\n\t\tdefaultValues: config ?? {},\n\t});\n\tconst onSubmitClick = (values: EarthEngineLayerConfig) => {\n\t\tonClose();\n\t\tonChange(values);\n\t};\n\n\treturn (\n\t\t<Modal {...props} hide={!open} onClose={onClose}>\n\t\t\t<ModalTitle>{i18n.t(\"Configure Earth Engine Layer\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t<EarthEngineLayerConfiguration form={form} excluded={exclude} />\n\t\t\t</ModalContent>\n\t\t\t<ModalActions>\n\t\t\t\t<ButtonStrip>\n\t\t\t\t\t<Button onClick={onClose}>{i18n.t(\"Cancel\")}</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary\n\t\t\t\t\t\tonClick={() => form.handleSubmit(onSubmitClick)()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{i18n.t(\"Save\")}\n\t\t\t\t\t</Button>\n\t\t\t\t</ButtonStrip>\n\t\t\t</ModalActions>\n\t\t</Modal>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.tsx"],"names":[],"mappings":";;;;;;AAsBO,SAAS,2BAA4B,CAAA;AAAA,EAC3C,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAAqC,EAAA;AACpC,EAAA,MAAM,OAAO,OAAgC,CAAA;AAAA,IAC5C,aAAA,EAAe,UAAU;AAAC,GAC1B,CAAA;AACD,EAAM,MAAA,aAAA,GAAgB,CAAC,MAAmC,KAAA;AACzD,IAAQ,OAAA,EAAA;AACR,IAAA,QAAA,CAAS,MAAM,CAAA;AAAA,GAChB;AAEA,EAAA,4BACE,KAAO,EAAA,EAAA,GAAG,OAAO,IAAM,EAAA,CAAC,MAAM,OAC9B,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAY,EAAA,EAAA,QAAA,EAAA,IAAA,CAAK,CAAE,CAAA,8BAA8B,CAAE,EAAA,CAAA;AAAA,wBACnD,YACA,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,iCAA8B,IAAY,EAAA,QAAA,EAAU,SAAS,CAC/D,EAAA,CAAA;AAAA,oBACA,GAAA,CAAC,YACA,EAAA,EAAA,QAAA,kBAAA,IAAA,CAAC,WACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAO,OAAS,EAAA,OAAA,EAAU,QAAK,EAAA,IAAA,CAAA,CAAA,CAAE,QAAQ,CAAE,EAAA,CAAA;AAAA,sBAC5C,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,OAAO,EAAA,IAAA;AAAA,UACP,OAAS,EAAA,MAAM,IAAK,CAAA,YAAA,CAAa,aAAa,CAAE,EAAA;AAAA,UAE/C,QAAA,EAAA,IAAA,CAAK,EAAE,MAAM;AAAA;AAAA;AACf,KAAA,EACD,CACD,EAAA;AAAA,GACD,EAAA,CAAA;AAEF","file":"EarthEngineLayerConfigModal.js","sourcesContent":["import { useForm } from \"react-hook-form\";\nimport { EarthEngineLayerConfig } from \"../MapLayer/interfaces/index.js\";\nimport {\n\tButton,\n\tButtonStrip,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { EarthEngineLayerConfiguration } from \"./EarthEngineLayerConfiguration.js\";\n\nexport interface EarthEngineLayerConfigModalProps {\n\topen: boolean;\n\tconfig?: EarthEngineLayerConfig;\n\texclude?: string[];\n\tonClose: () => void;\n\tonChange: (config: EarthEngineLayerConfig) => void;\n}\n\nexport function EarthEngineLayerConfigModal({\n\topen,\n\texclude,\n\tconfig,\n\tonClose,\n\tonChange,\n\t...props\n}: EarthEngineLayerConfigModalProps) {\n\tconst form = useForm<EarthEngineLayerConfig>({\n\t\tdefaultValues: config ?? {},\n\t});\n\tconst onSubmitClick = (values: EarthEngineLayerConfig) => {\n\t\tonClose();\n\t\tonChange(values);\n\t};\n\n\treturn (\n\t\t<Modal {...props} hide={!open} onClose={onClose}>\n\t\t\t<ModalTitle>{i18n.t(\"Configure Earth Engine Layer\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t<EarthEngineLayerConfiguration form={form} excluded={exclude} />\n\t\t\t</ModalContent>\n\t\t\t<ModalActions>\n\t\t\t\t<ButtonStrip>\n\t\t\t\t\t<Button onClick={onClose}>{i18n.t(\"Cancel\")}</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary\n\t\t\t\t\t\tonClick={() => form.handleSubmit(onSubmitClick)()}\n\t\t\t\t\t>\n\t\t\t\t\t\t{i18n.t(\"Save\")}\n\t\t\t\t\t</Button>\n\t\t\t\t</ButtonStrip>\n\t\t\t</ModalActions>\n\t\t</Modal>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.tsx"],"names":[],"mappings":";;;;;;;;;AAUA,MAAM,WAAA,GAAc,IAAI,WAAY,EAAA,CAAA;AAS7B,SAAS,6BAA8B,CAAA;AAAA,EAC7C,IAAA;AAAA,EACA,QAAA;AACD,CAAuC,EAAA;AACtC,EAAA,2BACE,mBAAoB,EAAA,EAAA,MAAA,EAAQ,aAC5B,QAAC,kBAAA,GAAA,CAAA,YAAA,EAAA,EAAc,GAAG,IACjB,EAAA,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,GAAK,EAAA,EAAA;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,aAAU,QAAoB,EAAA,CAAA;AAAA,4BAC9B,IAAK,EAAA,EAAA,CAAA;AAAA,4BACL,mBAAoB,EAAA,EAAA,CAAA;AAAA,4BACpB,cAAe,EAAA,EAAA,CAAA;AAAA,4BACf,YAAa,EAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,KAEhB,CACD,EAAA,CAAA,CAAA;AAEF","file":"EarthEngineLayerConfiguration.js","sourcesContent":["import { EarthEngineLayerConfig } from \"../MapLayer/interfaces\";\nimport { FormProvider, UseFormReturn } from \"react-hook-form\";\nimport React from \"react\";\nimport { StylesConfig } from \"./components/StylesConfig.js\";\nimport { Name } from \"./components/Name.js\";\nimport { TypeField } from \"./components/TypeField.js\";\nimport { AggregationSelector } from \"./components/AggregationSelector.js\";\nimport { PeriodSelector } from \"./components/PeriodSelector.js\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\n\nconst queryClient = new QueryClient();\n\nexport interface EarthEngineLayerConfigurationProps {\n\tform: UseFormReturn<EarthEngineLayerConfig>;\n\texcluded?: string[];\n\n\t[key: string]: any;\n}\n\nexport function EarthEngineLayerConfiguration({\n\tform,\n\texcluded,\n}: EarthEngineLayerConfigurationProps) {\n\treturn (\n\t\t<QueryClientProvider client={queryClient}>\n\t\t\t<FormProvider {...form}>\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\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<TypeField excluded={excluded} />\n\t\t\t\t\t<Name />\n\t\t\t\t\t<AggregationSelector />\n\t\t\t\t\t<PeriodSelector />\n\t\t\t\t\t<StylesConfig />\n\t\t\t\t</div>\n\t\t\t</FormProvider>\n\t\t</QueryClientProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.tsx"],"names":[],"mappings":";;;;;;;;;AAUA,MAAM,WAAA,GAAc,IAAI,WAAY,EAAA;AAS7B,SAAS,6BAA8B,CAAA;AAAA,EAC7C,IAAA;AAAA,EACA;AACD,CAAuC,EAAA;AACtC,EAAA,2BACE,mBAAoB,EAAA,EAAA,MAAA,EAAQ,aAC5B,QAAC,kBAAA,GAAA,CAAA,YAAA,EAAA,EAAc,GAAG,IACjB,EAAA,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,GAAK,EAAA;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,aAAU,QAAoB,EAAA,CAAA;AAAA,4BAC9B,IAAK,EAAA,EAAA,CAAA;AAAA,4BACL,mBAAoB,EAAA,EAAA,CAAA;AAAA,4BACpB,cAAe,EAAA,EAAA,CAAA;AAAA,4BACf,YAAa,EAAA,EAAA;AAAA;AAAA;AAAA,KAEhB,CACD,EAAA,CAAA;AAEF","file":"EarthEngineLayerConfiguration.js","sourcesContent":["import { EarthEngineLayerConfig } from \"../MapLayer/interfaces\";\nimport { FormProvider, UseFormReturn } from \"react-hook-form\";\nimport React from \"react\";\nimport { StylesConfig } from \"./components/StylesConfig.js\";\nimport { Name } from \"./components/Name.js\";\nimport { TypeField } from \"./components/TypeField.js\";\nimport { AggregationSelector } from \"./components/AggregationSelector.js\";\nimport { PeriodSelector } from \"./components/PeriodSelector.js\";\nimport { QueryClient, QueryClientProvider } from \"react-query\";\n\nconst queryClient = new QueryClient();\n\nexport interface EarthEngineLayerConfigurationProps {\n\tform: UseFormReturn<EarthEngineLayerConfig>;\n\texcluded?: string[];\n\n\t[key: string]: any;\n}\n\nexport function EarthEngineLayerConfiguration({\n\tform,\n\texcluded,\n}: EarthEngineLayerConfigurationProps) {\n\treturn (\n\t\t<QueryClientProvider client={queryClient}>\n\t\t\t<FormProvider {...form}>\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\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<TypeField excluded={excluded} />\n\t\t\t\t\t<Name />\n\t\t\t\t\t<AggregationSelector />\n\t\t\t\t\t<PeriodSelector />\n\t\t\t\t\t<StylesConfig />\n\t\t\t\t</div>\n\t\t\t</FormProvider>\n\t\t</QueryClientProvider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.tsx"],"names":[],"mappings":";;;;;;;AAYO,SAAS,mBAAsB,GAAA;AACrC,EAAA,MAAM,SAAS,OAAQ,EAAA,CAAA;AAEvB,EAAI,IAAA,CAAC,QAAQ,mBAAqB,EAAA;AACjC,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAEA,EAAM,MAAA,qBAAA,GAAwB,MAAQ,EAAA,mBAAA,IAAuB,EAAC,CAAA;AAE9D,EAAA,MAAM,kBAAkB,MAAQ,EAAA,eAAA,CAAA;AAEhC,EACC,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,MAAQ,EAAA,CAAC,EAAE,KAAA,EAAO,YAAiB,KAAA;AAClC,QAAA,OAAO,oBAAoB,CAC1B,mBAAA,GAAA;AAAA,UAAC,iBAAA;AAAA,UAAA;AAAA,YACA,SAAS,EAAA,IAAA;AAAA,YACT,KAAA,EAAO,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAAA,YAC/B,cAAA,EAAgB,YAAY,KAAO,EAAA,OAAA;AAAA,YACnC,UACC,qBAAsB,CAAA,QAAA;AAAA,cACrB,IAAA,CAAK,KAAM,CAAA,KAAK,CAAK,IAAA,EAAA;AAAA,aAEnB,GAAA,IAAA,CAAK,KAAM,CAAA,KAAK,CAChB,GAAA,KAAA,CAAA;AAAA,YAEJ,QAAA,EAAU,CAAC,EAAE,QAAA,OACZ,KAAM,CAAA,QAAA,CAAS,CAAC,QAAQ,CAAC,CAAA;AAAA,YAE1B,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,aAAa,CAAA;AAAA,YAE1B,QAAA,EAAA,qBAAA,CAAsB,GAAI,CAAA,CAAC,WAC3B,qBAAA,GAAA;AAAA,cAAC,kBAAA;AAAA,cAAA;AAAA,gBAEA,KAAA,EAAO,WAAW,WAAW,CAAA;AAAA,gBAC7B,KAAO,EAAA,WAAA;AAAA,eAAA;AAAA,cAFF,GAAG,WAAW,CAAA,OAAA,CAAA;AAAA,aAIpB,CAAA;AAAA,WAAA;AAAA,SAGF,mBAAA,GAAA;AAAA,UAAC,gBAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAAA,YAC/B,cAAA,EAAgB,YAAY,KAAO,EAAA,OAAA;AAAA,YACnC,QAAA,EAAU,MAAM,KAAO,EAAA,MAAA;AAAA,cACtB,CAAC,KAAA,KACA,qBAAuB,EAAA,QAAA,CAAS,KAAK,CAAA;AAAA,aACvC;AAAA,YACA,UAAU,CAAC,EAAE,UACZ,KAAA,KAAA,CAAM,SAAS,QAAQ,CAAA;AAAA,YAExB,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,cAAc,CAAA;AAAA,YAE3B,QAAA,EAAA,qBAAA,CAAsB,GAAI,CAAA,CAAC,WAC3B,qBAAA,GAAA;AAAA,cAAC,iBAAA;AAAA,cAAA;AAAA,gBAEA,KAAA,EAAO,WAAW,WAAW,CAAA;AAAA,gBAC7B,KAAO,EAAA,WAAA;AAAA,eAAA;AAAA,cAFF,GAAG,WAAW,CAAA,OAAA,CAAA;AAAA,aAIpB,CAAA;AAAA,WAAA;AAAA,SACF,CAAA;AAAA,OAEF;AAAA,MACA,IAAM,EAAA,cAAA;AAAA,KAAA;AAAA,GACP,CAAA;AAEF","file":"AggregationSelector.js","sourcesContent":["import { Controller } from \"react-hook-form\";\nimport {\n\tMultiSelectField,\n\tMultiSelectOption,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport { capitalize, head } from \"lodash\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function AggregationSelector() {\n\tconst config = useType();\n\n\tif (!config?.defaultAggregations) {\n\t\treturn null;\n\t}\n\n\tconst supportedAggregations = config?.defaultAggregations ?? [];\n\n\tconst maxAggregations = config?.maxAggregations;\n\n\treturn (\n\t\t<Controller\n\t\t\trender={({ field, fieldState }) => {\n\t\t\t\treturn maxAggregations === 1 ? (\n\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\tclearable\n\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\tvalidationText={fieldState?.error?.message}\n\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\tsupportedAggregations.includes(\n\t\t\t\t\t\t\t\thead(field.value) ?? \"\",\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t? head(field.value)\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={({ selected }: { selected: string }) =>\n\t\t\t\t\t\t\tfield.onChange([selected])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={i18n.t(\"Aggregation\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{supportedAggregations.map((aggregation) => (\n\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\tkey={`${aggregation}-option`}\n\t\t\t\t\t\t\t\tlabel={capitalize(aggregation)}\n\t\t\t\t\t\t\t\tvalue={aggregation}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</SingleSelectField>\n\t\t\t\t) : (\n\t\t\t\t\t<MultiSelectField\n\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\tvalidationText={fieldState?.error?.message}\n\t\t\t\t\t\tselected={field.value?.filter(\n\t\t\t\t\t\t\t(value: string) =>\n\t\t\t\t\t\t\t\tsupportedAggregations?.includes(value),\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonChange={({ selected }: { selected: string[] }) =>\n\t\t\t\t\t\t\tfield.onChange(selected)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={i18n.t(\"Aggregations\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{supportedAggregations.map((aggregation) => (\n\t\t\t\t\t\t\t<MultiSelectOption\n\t\t\t\t\t\t\t\tkey={`${aggregation}-option`}\n\t\t\t\t\t\t\t\tlabel={capitalize(aggregation)}\n\t\t\t\t\t\t\t\tvalue={aggregation}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</MultiSelectField>\n\t\t\t\t);\n\t\t\t}}\n\t\t\tname={\"aggregations\"}\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.tsx"],"names":[],"mappings":";;;;;;;AAYO,SAAS,mBAAsB,GAAA;AACrC,EAAA,MAAM,SAAS,OAAQ,EAAA;AAEvB,EAAI,IAAA,CAAC,QAAQ,mBAAqB,EAAA;AACjC,IAAO,OAAA,IAAA;AAAA;AAGR,EAAM,MAAA,qBAAA,GAAwB,MAAQ,EAAA,mBAAA,IAAuB,EAAC;AAE9D,EAAA,MAAM,kBAAkB,MAAQ,EAAA,eAAA;AAEhC,EACC,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,MAAQ,EAAA,CAAC,EAAE,KAAA,EAAO,YAAiB,KAAA;AAClC,QAAA,OAAO,oBAAoB,CAC1B,mBAAA,GAAA;AAAA,UAAC,iBAAA;AAAA,UAAA;AAAA,YACA,SAAS,EAAA,IAAA;AAAA,YACT,KAAA,EAAO,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAAA,YAC/B,cAAA,EAAgB,YAAY,KAAO,EAAA,OAAA;AAAA,YACnC,UACC,qBAAsB,CAAA,QAAA;AAAA,cACrB,IAAA,CAAK,KAAM,CAAA,KAAK,CAAK,IAAA;AAAA,aAEnB,GAAA,IAAA,CAAK,KAAM,CAAA,KAAK,CAChB,GAAA,MAAA;AAAA,YAEJ,QAAA,EAAU,CAAC,EAAE,QAAA,OACZ,KAAM,CAAA,QAAA,CAAS,CAAC,QAAQ,CAAC,CAAA;AAAA,YAE1B,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,aAAa,CAAA;AAAA,YAE1B,QAAA,EAAA,qBAAA,CAAsB,GAAI,CAAA,CAAC,WAC3B,qBAAA,GAAA;AAAA,cAAC,kBAAA;AAAA,cAAA;AAAA,gBAEA,KAAA,EAAO,WAAW,WAAW,CAAA;AAAA,gBAC7B,KAAO,EAAA;AAAA,eAAA;AAAA,cAFF,GAAG,WAAW,CAAA,OAAA;AAAA,aAIpB;AAAA;AAAA,SAGF,mBAAA,GAAA;AAAA,UAAC,gBAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAAA,YAC/B,cAAA,EAAgB,YAAY,KAAO,EAAA,OAAA;AAAA,YACnC,QAAA,EAAU,MAAM,KAAO,EAAA,MAAA;AAAA,cACtB,CAAC,KAAA,KACA,qBAAuB,EAAA,QAAA,CAAS,KAAK;AAAA,aACvC;AAAA,YACA,UAAU,CAAC,EAAE,UACZ,KAAA,KAAA,CAAM,SAAS,QAAQ,CAAA;AAAA,YAExB,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,cAAc,CAAA;AAAA,YAE3B,QAAA,EAAA,qBAAA,CAAsB,GAAI,CAAA,CAAC,WAC3B,qBAAA,GAAA;AAAA,cAAC,iBAAA;AAAA,cAAA;AAAA,gBAEA,KAAA,EAAO,WAAW,WAAW,CAAA;AAAA,gBAC7B,KAAO,EAAA;AAAA,eAAA;AAAA,cAFF,GAAG,WAAW,CAAA,OAAA;AAAA,aAIpB;AAAA;AAAA,SACF;AAAA,OAEF;AAAA,MACA,IAAM,EAAA;AAAA;AAAA,GACP;AAEF","file":"AggregationSelector.js","sourcesContent":["import { Controller } from \"react-hook-form\";\nimport {\n\tMultiSelectField,\n\tMultiSelectOption,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport { capitalize, head } from \"lodash\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function AggregationSelector() {\n\tconst config = useType();\n\n\tif (!config?.defaultAggregations) {\n\t\treturn null;\n\t}\n\n\tconst supportedAggregations = config?.defaultAggregations ?? [];\n\n\tconst maxAggregations = config?.maxAggregations;\n\n\treturn (\n\t\t<Controller\n\t\t\trender={({ field, fieldState }) => {\n\t\t\t\treturn maxAggregations === 1 ? (\n\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\tclearable\n\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\tvalidationText={fieldState?.error?.message}\n\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\tsupportedAggregations.includes(\n\t\t\t\t\t\t\t\thead(field.value) ?? \"\",\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t? head(field.value)\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={({ selected }: { selected: string }) =>\n\t\t\t\t\t\t\tfield.onChange([selected])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={i18n.t(\"Aggregation\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{supportedAggregations.map((aggregation) => (\n\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\tkey={`${aggregation}-option`}\n\t\t\t\t\t\t\t\tlabel={capitalize(aggregation)}\n\t\t\t\t\t\t\t\tvalue={aggregation}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</SingleSelectField>\n\t\t\t\t) : (\n\t\t\t\t\t<MultiSelectField\n\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\tvalidationText={fieldState?.error?.message}\n\t\t\t\t\t\tselected={field.value?.filter(\n\t\t\t\t\t\t\t(value: string) =>\n\t\t\t\t\t\t\t\tsupportedAggregations?.includes(value),\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonChange={({ selected }: { selected: string[] }) =>\n\t\t\t\t\t\t\tfield.onChange(selected)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={i18n.t(\"Aggregations\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{supportedAggregations.map((aggregation) => (\n\t\t\t\t\t\t\t<MultiSelectOption\n\t\t\t\t\t\t\t\tkey={`${aggregation}-option`}\n\t\t\t\t\t\t\t\tlabel={capitalize(aggregation)}\n\t\t\t\t\t\t\t\tvalue={aggregation}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</MultiSelectField>\n\t\t\t\t);\n\t\t\t}}\n\t\t\tname={\"aggregations\"}\n\t\t/>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.tsx"],"names":["palette","colorClass"],"mappings":"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","file":"ColorConfig.js","sourcesContent":["import { Controller } from \"react-hook-form\";\nimport {\n\tField,\n\tInputField,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n\tgetColorClasses,\n\tgetColorPalette,\n\tgetColorScale,\n} from \"../../../utils/colors.js\";\nimport ColorScaleSelect from \"../../ThematicLayerConfiguration/components/ColorScaleSelect/index.js\";\nimport React from \"react\";\n\nexport function ColorConfig() {\n\treturn (\n\t\t<div className=\"column gap-16\">\n\t\t\t<div className=\"row gap-8\">\n\t\t\t\t<Controller\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tvalue={field.value?.toString()}\n\t\t\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(value));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Min\")}\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"params.min\"}\n\t\t\t\t/>\n\t\t\t\t<Controller\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tvalue={field.value?.toString()}\n\t\t\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(value));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Max\")}\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"params.max\"}\n\t\t\t\t/>\n\t\t\t\t<Controller\n\t\t\t\t\tname=\"params.palette\"\n\t\t\t\t\trender={({ field, fieldState }) => {\n\t\t\t\t\t\tconst palette = field.value;\n\t\t\t\t\t\tconst scale = getColorClasses(palette);\n\t\t\t\t\t\tconst colorClass = getColorScale(palette ?? \"\");\n\n\t\t\t\t\t\tconst onChange = ({\n\t\t\t\t\t\t\tselected,\n\t\t\t\t\t\t}: {\n\t\t\t\t\t\t\tselected: string;\n\t\t\t\t\t\t}) => {\n\t\t\t\t\t\t\tconst palette = getColorPalette(\n\t\t\t\t\t\t\t\tcolorClass as string,\n\t\t\t\t\t\t\t\tparseInt(selected),\n\t\t\t\t\t\t\t)?.join(\",\");\n\t\t\t\t\t\t\tfield.onChange(palette);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\t\tscale?.toString() ??\n\t\t\t\t\t\t\t\t\tdefaultClasses.toString()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabel={i18n.t(\"Steps\")}\n\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{[3, 4, 5, 6, 7, 8, 9].map((value) => (\n\t\t\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\t\t\tkey={`${value}-classes-option`}\n\t\t\t\t\t\t\t\t\t\tlabel={`${value}`}\n\t\t\t\t\t\t\t\t\t\tvalue={value?.toString()}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SingleSelectField>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Controller\n\t\t\t\t\tname=\"params.palette\"\n\t\t\t\t\trender={({ field, fieldState }) => {\n\t\t\t\t\t\tconst palette = field.value;\n\t\t\t\t\t\tconst scale = getColorClasses(palette);\n\t\t\t\t\t\tconst colorClass = getColorScale(palette ?? \"\");\n\n\t\t\t\t\t\tconst onChange = (colorClass: string) => {\n\t\t\t\t\t\t\tconst palette = getColorPalette(\n\t\t\t\t\t\t\t\tcolorClass,\n\t\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\t)?.join(\",\");\n\t\t\t\t\t\t\tfield.onChange(palette);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Field\n\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\t\tlabel={i18n.t(\"Colors\")}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ColorScaleSelect\n\t\t\t\t\t\t\t\t\tcount={scale ?? defaultClasses}\n\t\t\t\t\t\t\t\t\tcolorClass={\n\t\t\t\t\t\t\t\t\t\tcolorClass ?? defaultColorScaleName\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twidth={300}\n\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Field>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.tsx"],"names":["palette","colorClass"],"mappings":"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","file":"ColorConfig.js","sourcesContent":["import { Controller } from \"react-hook-form\";\nimport {\n\tField,\n\tInputField,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n\tgetColorClasses,\n\tgetColorPalette,\n\tgetColorScale,\n} from \"../../../utils/colors.js\";\nimport ColorScaleSelect from \"../../ThematicLayerConfiguration/components/ColorScaleSelect/index.js\";\nimport React from \"react\";\n\nexport function ColorConfig() {\n\treturn (\n\t\t<div className=\"column gap-16\">\n\t\t\t<div className=\"row gap-8\">\n\t\t\t\t<Controller\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tvalue={field.value?.toString()}\n\t\t\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(value));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Min\")}\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"params.min\"}\n\t\t\t\t/>\n\t\t\t\t<Controller\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tvalue={field.value?.toString()}\n\t\t\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(value));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Max\")}\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"params.max\"}\n\t\t\t\t/>\n\t\t\t\t<Controller\n\t\t\t\t\tname=\"params.palette\"\n\t\t\t\t\trender={({ field, fieldState }) => {\n\t\t\t\t\t\tconst palette = field.value;\n\t\t\t\t\t\tconst scale = getColorClasses(palette);\n\t\t\t\t\t\tconst colorClass = getColorScale(palette ?? \"\");\n\n\t\t\t\t\t\tconst onChange = ({\n\t\t\t\t\t\t\tselected,\n\t\t\t\t\t\t}: {\n\t\t\t\t\t\t\tselected: string;\n\t\t\t\t\t\t}) => {\n\t\t\t\t\t\t\tconst palette = getColorPalette(\n\t\t\t\t\t\t\t\tcolorClass as string,\n\t\t\t\t\t\t\t\tparseInt(selected),\n\t\t\t\t\t\t\t)?.join(\",\");\n\t\t\t\t\t\t\tfield.onChange(palette);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\t\tscale?.toString() ??\n\t\t\t\t\t\t\t\t\tdefaultClasses.toString()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabel={i18n.t(\"Steps\")}\n\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{[3, 4, 5, 6, 7, 8, 9].map((value) => (\n\t\t\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\t\t\tkey={`${value}-classes-option`}\n\t\t\t\t\t\t\t\t\t\tlabel={`${value}`}\n\t\t\t\t\t\t\t\t\t\tvalue={value?.toString()}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SingleSelectField>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Controller\n\t\t\t\t\tname=\"params.palette\"\n\t\t\t\t\trender={({ field, fieldState }) => {\n\t\t\t\t\t\tconst palette = field.value;\n\t\t\t\t\t\tconst scale = getColorClasses(palette);\n\t\t\t\t\t\tconst colorClass = getColorScale(palette ?? \"\");\n\n\t\t\t\t\t\tconst onChange = (colorClass: string) => {\n\t\t\t\t\t\t\tconst palette = getColorPalette(\n\t\t\t\t\t\t\t\tcolorClass,\n\t\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\t)?.join(\",\");\n\t\t\t\t\t\t\tfield.onChange(palette);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Field\n\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\t\tlabel={i18n.t(\"Colors\")}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ColorScaleSelect\n\t\t\t\t\t\t\t\t\tcount={scale ?? defaultClasses}\n\t\t\t\t\t\t\t\t\tcolorClass={\n\t\t\t\t\t\t\t\t\t\tcolorClass ?? defaultColorScaleName\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twidth={300}\n\t\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Field>\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/Name.tsx"],"names":[],"mappings":";;;;;;;AAMO,SAAS,IAAO,GAAA;AACtB,EAAA,MAAM,SAAS,OAAQ,EAAA,CAAA;AACvB,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,cAAe,EAAA,CAAA;AACpC,EAAA,SAAA,CAAU,MAAM;AACf,IAAS,QAAA,CAAA,MAAA,EAAQ,QAAQ,IAAI,CAAA,CAAA;AAC7B,IAAS,QAAA,CAAA,IAAA,EAAM,QAAQ,EAAE,CAAA,CAAA;AAAA,GAC1B,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EACC,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,IAAK,EAAA,MAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACN,QAAA,EAAU,IAAK,CAAA,CAAA,CAAE,kBAAkB,CAAA;AAAA,OACpC;AAAA,MACA,MAAQ,EAAA,CAAC,EAAE,KAAA,EAAO,YACjB,qBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACA,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,YAAY,CAAA;AAAA,UAC1B,IAAK,EAAA,MAAA;AAAA,UACL,QAAQ,EAAA,IAAA;AAAA,UACR,KAAA,EAAO,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAAA,UAC/B,cAAA,EAAgB,WAAW,KAAO,EAAA,OAAA;AAAA,UAClC,QAAU,EAAA,CAAC,EAAE,KAAA,EAAgC,KAAA;AAC5C,YAAA,IAAI,CAAC,KAAO,EAAA,OAAA;AACZ,YAAA,KAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAAA,WACrB;AAAA,UACA,OAAO,KAAM,CAAA,KAAA;AAAA,SAAA;AAAA,OACd;AAAA,KAAA;AAAA,GAEF,CAAA;AAEF","file":"Name.js","sourcesContent":["import { Controller, useFormContext } from \"react-hook-form\";\nimport React, { useEffect } from \"react\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { InputField } from \"@dhis2/ui\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function Name() {\n\tconst config = useType();\n\tconst { setValue } = useFormContext();\n\tuseEffect(() => {\n\t\tsetValue(\"name\", config?.name);\n\t\tsetValue(\"id\", config?.id);\n\t}, [config]);\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"name\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Name is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<InputField\n\t\t\t\t\tlabel={i18n.t(\"Layer name\")}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\trequired\n\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\tfield.onChange(value);\n\t\t\t\t\t}}\n\t\t\t\t\tvalue={field.value}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/Name.tsx"],"names":[],"mappings":";;;;;;;AAMO,SAAS,IAAO,GAAA;AACtB,EAAA,MAAM,SAAS,OAAQ,EAAA;AACvB,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,cAAe,EAAA;AACpC,EAAA,SAAA,CAAU,MAAM;AACf,IAAS,QAAA,CAAA,MAAA,EAAQ,QAAQ,IAAI,CAAA;AAC7B,IAAS,QAAA,CAAA,IAAA,EAAM,QAAQ,EAAE,CAAA;AAAA,GAC1B,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EACC,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,IAAK,EAAA,MAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACN,QAAA,EAAU,IAAK,CAAA,CAAA,CAAE,kBAAkB;AAAA,OACpC;AAAA,MACA,MAAQ,EAAA,CAAC,EAAE,KAAA,EAAO,YACjB,qBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACA,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,YAAY,CAAA;AAAA,UAC1B,IAAK,EAAA,MAAA;AAAA,UACL,QAAQ,EAAA,IAAA;AAAA,UACR,KAAA,EAAO,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAAA,UAC/B,cAAA,EAAgB,WAAW,KAAO,EAAA,OAAA;AAAA,UAClC,QAAU,EAAA,CAAC,EAAE,KAAA,EAAgC,KAAA;AAC5C,YAAA,IAAI,CAAC,KAAO,EAAA;AACZ,YAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AAAA,WACrB;AAAA,UACA,OAAO,KAAM,CAAA;AAAA;AAAA;AACd;AAAA,GAEF;AAEF","file":"Name.js","sourcesContent":["import { Controller, useFormContext } from \"react-hook-form\";\nimport React, { useEffect } from \"react\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { InputField } from \"@dhis2/ui\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function Name() {\n\tconst config = useType();\n\tconst { setValue } = useFormContext();\n\tuseEffect(() => {\n\t\tsetValue(\"name\", config?.name);\n\t\tsetValue(\"id\", config?.id);\n\t}, [config]);\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"name\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Name is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<InputField\n\t\t\t\t\tlabel={i18n.t(\"Layer name\")}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\trequired\n\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\tonChange={({ value }: { value?: string }) => {\n\t\t\t\t\t\tif (!value) return;\n\t\t\t\t\t\tfield.onChange(value);\n\t\t\t\t\t}}\n\t\t\t\t\tvalue={field.value}\n\t\t\t\t/>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.tsx"],"names":[],"mappings":"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","file":"PeriodSelector.js","sourcesContent":["import { Controller, useFormContext } from \"react-hook-form\";\nimport React, { useEffect } from \"react\";\nimport { head, isEmpty } from \"lodash\";\nimport {\n\tCenter,\n\tCircularLoader,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useDatasetInfo, useType } from \"../hooks/data.js\";\n\nexport function PeriodSelector() {\n\tconst config = useType();\n\tconst { setValue, getValues } = useFormContext();\n\tconst filters = config?.filters ?? [];\n\tconst hasPeriodFilter = filters.includes(\"period\");\n\tconst { loading, error, periods } = useDatasetInfo(hasPeriodFilter, config);\n\tconst initialPeriod = getValues(\"filters.period\");\n\n\tuseEffect(() => {\n\t\tif (!isEmpty(periods) && !initialPeriod) {\n\t\t\tsetValue(\"filters.period\", head(periods));\n\t\t}\n\t}, [periods]);\n\n\tif (!hasPeriodFilter) {\n\t\treturn null;\n\t}\n\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ minWidth: \"100%\", minHeight: 100 }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<p>{error?.message ?? error?.toString()}</p>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"filters.period\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Period is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<div style={{ gap: 4 }} className=\"row align-items-center\">\n\t\t\t\t\t<div style={{ flex: 1 }}>\n\t\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\t\thelpText={i18n.t(\n\t\t\t\t\t\t\t\t\"Available periods are set by the source data\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\tfilterable\n\t\t\t\t\t\t\tlabel={i18n.t(\"Period\")}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tonChange={({ selected }: { selected: string }) =>\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(selected))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\tperiods?.includes(field.value)\n\t\t\t\t\t\t\t\t\t? field.value?.toString()\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{periods?.map((period: number) => (\n\t\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\t\tkey={`${period}-option`}\n\t\t\t\t\t\t\t\t\tvalue={period.toString()}\n\t\t\t\t\t\t\t\t\tlabel={period.toString()}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</SingleSelectField>\n\t\t\t\t\t</div>\n\t\t\t\t\t{loading && <CircularLoader extrasmall />}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.tsx"],"names":[],"mappings":"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","file":"PeriodSelector.js","sourcesContent":["import { Controller, useFormContext } from \"react-hook-form\";\nimport React, { useEffect } from \"react\";\nimport { head, isEmpty } from \"lodash\";\nimport {\n\tCenter,\n\tCircularLoader,\n\tSingleSelectField,\n\tSingleSelectOption,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useDatasetInfo, useType } from \"../hooks/data.js\";\n\nexport function PeriodSelector() {\n\tconst config = useType();\n\tconst { setValue, getValues } = useFormContext();\n\tconst filters = config?.filters ?? [];\n\tconst hasPeriodFilter = filters.includes(\"period\");\n\tconst { loading, error, periods } = useDatasetInfo(hasPeriodFilter, config);\n\tconst initialPeriod = getValues(\"filters.period\");\n\n\tuseEffect(() => {\n\t\tif (!isEmpty(periods) && !initialPeriod) {\n\t\t\tsetValue(\"filters.period\", head(periods));\n\t\t}\n\t}, [periods]);\n\n\tif (!hasPeriodFilter) {\n\t\treturn null;\n\t}\n\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ minWidth: \"100%\", minHeight: 100 }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<p>{error?.message ?? error?.toString()}</p>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"filters.period\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Period is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<div style={{ gap: 4 }} className=\"row align-items-center\">\n\t\t\t\t\t<div style={{ flex: 1 }}>\n\t\t\t\t\t\t<SingleSelectField\n\t\t\t\t\t\t\thelpText={i18n.t(\n\t\t\t\t\t\t\t\t\"Available periods are set by the source data\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tloading={loading}\n\t\t\t\t\t\t\tfilterable\n\t\t\t\t\t\t\tlabel={i18n.t(\"Period\")}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\t\t\tonChange={({ selected }: { selected: string }) =>\n\t\t\t\t\t\t\t\tfield.onChange(parseInt(selected))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\tperiods?.includes(field.value)\n\t\t\t\t\t\t\t\t\t? field.value?.toString()\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{periods?.map((period: number) => (\n\t\t\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\t\t\tkey={`${period}-option`}\n\t\t\t\t\t\t\t\t\tvalue={period.toString()}\n\t\t\t\t\t\t\t\t\tlabel={period.toString()}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</SingleSelectField>\n\t\t\t\t\t</div>\n\t\t\t\t\t{loading && <CircularLoader extrasmall />}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.tsx"],"names":[],"mappings":";;;;;AAKO,SAAS,YAAe,GAAA;AAC9B,EAAA,MAAM,SAAS,OAAQ,EAAA,CAAA;AACvB,EAAM,MAAA,SAAA,GAAY,OAAQ,CAAA,MAAA,EAAQ,MAAM,CAAA,CAAA;AAExC,EAAA,IAAI,CAAC,SAAW,EAAA;AACf,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAEA,EAAA,uBACE,GAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,UAAU,GAAK,EAAA,SAAA,EAAW,GAAI,EAAA,EAAG,SAAU,EAAA,YAAA,EACxD,QAAC,kBAAA,IAAA,CAAA,KAAA,EAAA,EAAI,WAAU,QACd,EAAA,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,GACC,EAAA,EAAA,QAAA,EAAA;AAAA,MAAA,IAAA,CAAK,EAAE,MAAM,CAAA;AAAA,MAAE,IAAA;AAAA,MAAG,MAAQ,EAAA,IAAA;AAAA,KAC5B,EAAA,CAAA;AAAA,wBACC,WAAY,EAAA,EAAA,CAAA;AAAA,GAAA,EACd,CACD,EAAA,CAAA,CAAA;AAEF","file":"StylesConfig.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { ColorConfig } from \"./ColorConfig.js\";\nimport React from \"react\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function StylesConfig() {\n\tconst config = useType();\n\tconst hasParams = Boolean(config?.params);\n\n\tif (!hasParams) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div style={{ minWidth: 200, minHeight: 100 }} className=\"row gap-16\">\n\t\t\t<div className=\"column\">\n\t\t\t\t<p>\n\t\t\t\t\t{i18n.t(\"Unit\")}: {config?.unit}\n\t\t\t\t</p>\n\t\t\t\t<ColorConfig />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.tsx"],"names":[],"mappings":";;;;;AAKO,SAAS,YAAe,GAAA;AAC9B,EAAA,MAAM,SAAS,OAAQ,EAAA;AACvB,EAAM,MAAA,SAAA,GAAY,OAAQ,CAAA,MAAA,EAAQ,MAAM,CAAA;AAExC,EAAA,IAAI,CAAC,SAAW,EAAA;AACf,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uBACE,GAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,UAAU,GAAK,EAAA,SAAA,EAAW,GAAI,EAAA,EAAG,SAAU,EAAA,YAAA,EACxD,QAAC,kBAAA,IAAA,CAAA,KAAA,EAAA,EAAI,WAAU,QACd,EAAA,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,GACC,EAAA,EAAA,QAAA,EAAA;AAAA,MAAA,IAAA,CAAK,EAAE,MAAM,CAAA;AAAA,MAAE,IAAA;AAAA,MAAG,MAAQ,EAAA;AAAA,KAC5B,EAAA,CAAA;AAAA,wBACC,WAAY,EAAA,EAAA;AAAA,GAAA,EACd,CACD,EAAA,CAAA;AAEF","file":"StylesConfig.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { ColorConfig } from \"./ColorConfig.js\";\nimport React from \"react\";\nimport { useType } from \"../hooks/data.js\";\n\nexport function StylesConfig() {\n\tconst config = useType();\n\tconst hasParams = Boolean(config?.params);\n\n\tif (!hasParams) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div style={{ minWidth: 200, minHeight: 100 }} className=\"row gap-16\">\n\t\t\t<div className=\"column\">\n\t\t\t\t<p>\n\t\t\t\t\t{i18n.t(\"Unit\")}: {config?.unit}\n\t\t\t\t</p>\n\t\t\t\t<ColorConfig />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.tsx"],"names":[],"mappings":";;;;;;;AAUO,SAAS,SAAA,CAAU,EAAE,QAAA,EAAqC,EAAA;AAChE,EAAA,MAAM,eAAkB,GAAA,MAAA;AAAA,IACvB,mBAAA;AAAA,IACA,CAAC,EAAE,EAAG,EAAA,KACL,6BAA8B,CAAA,QAAA,CAAS,EAAE,CAAA,IACzC,EAAE,QAAA,EAAU,QAAS,CAAA,EAAE,CAAK,IAAA,KAAA,CAAA;AAAA,GAC9B,CAAA;AACA,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,cAAe,EAAA,CAAA;AACpC,EAAM,MAAA,iBAAA,GAAoB,CAAC,QAAqB,KAAA;AAC/C,IAAA,MAAM,SAAS,IAAK,CAAA,eAAA,EAAiB,CAAC,IAAA,EAAM,QAAQ,CAAC,CAAA,CAAA;AACrD,IAAA,IAAI,CAAC,MAAQ,EAAA,OAAA;AAEb,IAAA,IAAI,QAAQ,mBAAqB,EAAA;AAChC,MAAS,QAAA,CAAA,cAAA,EAAgB,QAAQ,mBAAmB,CAAA,CAAA;AAAA,KAC9C,MAAA;AACN,MAAA,QAAA,CAAS,gBAAgB,KAAS,CAAA,CAAA,CAAA;AAAA,KACnC;AAEA,IAAA,IAAI,QAAQ,MAAQ,EAAA;AACnB,MAAA,MAAM,EAAE,GAAA,EAAK,GAAK,EAAA,OAAA,KAAY,MAAO,CAAA,MAAA,CAAA;AACrC,MAAA,QAAA,CAAS,cAAc,GAAG,CAAA,CAAA;AAC1B,MAAA,QAAA,CAAS,cAAc,GAAG,CAAA,CAAA;AAC1B,MAAA,QAAA,CAAS,kBAAkB,OAAO,CAAA,CAAA;AAAA,KAC5B,MAAA;AACN,MAAA,QAAA,CAAS,UAAU,KAAS,CAAA,CAAA,CAAA;AAAA,KAC7B;AAAA,GACD,CAAA;AAEA,EACC,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,IAAK,EAAA,MAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACN,QAAA,EAAU,IAAK,CAAA,CAAA,CAAE,kBAAkB,CAAA;AAAA,OACpC;AAAA,MACA,MAAQ,EAAA,CAAC,EAAE,KAAA,EAAO,YACjB,qBAAA,GAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACA,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,YAAY,CAAA;AAAA,UAC1B,QAAQ,EAAA,IAAA;AAAA,UACR,KAAA,EAAO,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAAA,UAC/B,cAAA,EAAgB,WAAW,KAAO,EAAA,OAAA;AAAA,UAClC,QAAU,EAAA,CAAC,EAAE,QAAA,EAAqC,KAAA;AACjD,YAAA,iBAAA,CAAkB,QAAQ,CAAA,CAAA;AAC1B,YAAA,KAAA,CAAM,SAAS,QAAQ,CAAA,CAAA;AAAA,WACxB;AAAA,UACA,QAAA,EACC,OAAQ,CAAA,IAAA,CAAK,eAAiB,EAAA,IAAA,EAAM,MAAM,KAAK,CAAC,CAC7C,GAAA,KAAA,CAAM,KACN,GAAA,KAAA,CAAA;AAAA,UAGH,QAAA,EAAA,eAAA,EAAiB,GAAI,CAAA,CAAC,KACtB,qBAAA,GAAA;AAAA,YAAC,kBAAA;AAAA,YAAA;AAAA,cAEA,OAAO,KAAM,CAAA,EAAA;AAAA,cACb,OAAO,KAAM,CAAA,IAAA;AAAA,aAAA;AAAA,YAFR,CAAA,EAAG,MAAM,EAAE,CAAA,OAAA,CAAA;AAAA,WAIjB,CAAA;AAAA,SAAA;AAAA,OACF;AAAA,KAAA;AAAA,GAEF,CAAA;AAEF","file":"TypeField.js","sourcesContent":["import { filter, find } from \"lodash\";\nimport {\n\tEARTH_ENGINE_LAYERS,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../MapLayer/components/GoogleEngineLayer/constants/index.js\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { SingleSelectField, SingleSelectOption } from \"@dhis2/ui\";\nimport React from \"react\";\n\nexport function TypeField({ excluded }: { excluded?: string[] }) {\n\tconst supportedLayers = filter(\n\t\tEARTH_ENGINE_LAYERS,\n\t\t({ id }) =>\n\t\t\tSUPPORTED_EARTH_ENGINE_LAYERS.includes(id) &&\n\t\t\t!(excluded?.includes(id) ?? false),\n\t);\n\tconst { setValue } = useFormContext();\n\tconst setConfigDefaults = (selected: string) => {\n\t\tconst config = find(supportedLayers, [\"id\", selected]);\n\t\tif (!config) return;\n\n\t\tif (config?.defaultAggregations) {\n\t\t\tsetValue(\"aggregations\", config?.defaultAggregations);\n\t\t} else {\n\t\t\tsetValue(\"aggregations\", undefined);\n\t\t}\n\n\t\tif (config?.params) {\n\t\t\tconst { max, min, palette } = config.params;\n\t\t\tsetValue(\"params.max\", max);\n\t\t\tsetValue(\"params.min\", min);\n\t\t\tsetValue(\"params.palette\", palette);\n\t\t} else {\n\t\t\tsetValue(\"params\", undefined);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"type\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Type is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<SingleSelectField\n\t\t\t\t\tlabel={i18n.t(\"Layer type\")}\n\t\t\t\t\trequired\n\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\tonChange={({ selected }: { selected: string }) => {\n\t\t\t\t\t\tsetConfigDefaults(selected);\n\t\t\t\t\t\tfield.onChange(selected);\n\t\t\t\t\t}}\n\t\t\t\t\tselected={\n\t\t\t\t\t\tBoolean(find(supportedLayers, \"id\", field.value))\n\t\t\t\t\t\t\t? field.value\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{supportedLayers?.map((layer) => (\n\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\tkey={`${layer.id}-option`}\n\t\t\t\t\t\t\tvalue={layer.id}\n\t\t\t\t\t\t\tlabel={layer.name}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</SingleSelectField>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.tsx"],"names":[],"mappings":";;;;;;;AAUO,SAAS,SAAA,CAAU,EAAE,QAAA,EAAqC,EAAA;AAChE,EAAA,MAAM,eAAkB,GAAA,MAAA;AAAA,IACvB,mBAAA;AAAA,IACA,CAAC,EAAE,EAAG,EAAA,KACL,6BAA8B,CAAA,QAAA,CAAS,EAAE,CAAA,IACzC,EAAE,QAAA,EAAU,QAAS,CAAA,EAAE,CAAK,IAAA,KAAA;AAAA,GAC9B;AACA,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,cAAe,EAAA;AACpC,EAAM,MAAA,iBAAA,GAAoB,CAAC,QAAqB,KAAA;AAC/C,IAAA,MAAM,SAAS,IAAK,CAAA,eAAA,EAAiB,CAAC,IAAA,EAAM,QAAQ,CAAC,CAAA;AACrD,IAAA,IAAI,CAAC,MAAQ,EAAA;AAEb,IAAA,IAAI,QAAQ,mBAAqB,EAAA;AAChC,MAAS,QAAA,CAAA,cAAA,EAAgB,QAAQ,mBAAmB,CAAA;AAAA,KAC9C,MAAA;AACN,MAAA,QAAA,CAAS,gBAAgB,MAAS,CAAA;AAAA;AAGnC,IAAA,IAAI,QAAQ,MAAQ,EAAA;AACnB,MAAA,MAAM,EAAE,GAAA,EAAK,GAAK,EAAA,OAAA,KAAY,MAAO,CAAA,MAAA;AACrC,MAAA,QAAA,CAAS,cAAc,GAAG,CAAA;AAC1B,MAAA,QAAA,CAAS,cAAc,GAAG,CAAA;AAC1B,MAAA,QAAA,CAAS,kBAAkB,OAAO,CAAA;AAAA,KAC5B,MAAA;AACN,MAAA,QAAA,CAAS,UAAU,MAAS,CAAA;AAAA;AAC7B,GACD;AAEA,EACC,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,IAAK,EAAA,MAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACN,QAAA,EAAU,IAAK,CAAA,CAAA,CAAE,kBAAkB;AAAA,OACpC;AAAA,MACA,MAAQ,EAAA,CAAC,EAAE,KAAA,EAAO,YACjB,qBAAA,GAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACA,KAAA,EAAO,IAAK,CAAA,CAAA,CAAE,YAAY,CAAA;AAAA,UAC1B,QAAQ,EAAA,IAAA;AAAA,UACR,KAAA,EAAO,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAAA,UAC/B,cAAA,EAAgB,WAAW,KAAO,EAAA,OAAA;AAAA,UAClC,QAAU,EAAA,CAAC,EAAE,QAAA,EAAqC,KAAA;AACjD,YAAA,iBAAA,CAAkB,QAAQ,CAAA;AAC1B,YAAA,KAAA,CAAM,SAAS,QAAQ,CAAA;AAAA,WACxB;AAAA,UACA,QAAA,EACC,OAAQ,CAAA,IAAA,CAAK,eAAiB,EAAA,IAAA,EAAM,MAAM,KAAK,CAAC,CAC7C,GAAA,KAAA,CAAM,KACN,GAAA,MAAA;AAAA,UAGH,QAAA,EAAA,eAAA,EAAiB,GAAI,CAAA,CAAC,KACtB,qBAAA,GAAA;AAAA,YAAC,kBAAA;AAAA,YAAA;AAAA,cAEA,OAAO,KAAM,CAAA,EAAA;AAAA,cACb,OAAO,KAAM,CAAA;AAAA,aAAA;AAAA,YAFR,CAAA,EAAG,MAAM,EAAE,CAAA,OAAA;AAAA,WAIjB;AAAA;AAAA;AACF;AAAA,GAEF;AAEF","file":"TypeField.js","sourcesContent":["import { filter, find } from \"lodash\";\nimport {\n\tEARTH_ENGINE_LAYERS,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../MapLayer/components/GoogleEngineLayer/constants/index.js\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { SingleSelectField, SingleSelectOption } from \"@dhis2/ui\";\nimport React from \"react\";\n\nexport function TypeField({ excluded }: { excluded?: string[] }) {\n\tconst supportedLayers = filter(\n\t\tEARTH_ENGINE_LAYERS,\n\t\t({ id }) =>\n\t\t\tSUPPORTED_EARTH_ENGINE_LAYERS.includes(id) &&\n\t\t\t!(excluded?.includes(id) ?? false),\n\t);\n\tconst { setValue } = useFormContext();\n\tconst setConfigDefaults = (selected: string) => {\n\t\tconst config = find(supportedLayers, [\"id\", selected]);\n\t\tif (!config) return;\n\n\t\tif (config?.defaultAggregations) {\n\t\t\tsetValue(\"aggregations\", config?.defaultAggregations);\n\t\t} else {\n\t\t\tsetValue(\"aggregations\", undefined);\n\t\t}\n\n\t\tif (config?.params) {\n\t\t\tconst { max, min, palette } = config.params;\n\t\t\tsetValue(\"params.max\", max);\n\t\t\tsetValue(\"params.min\", min);\n\t\t\tsetValue(\"params.palette\", palette);\n\t\t} else {\n\t\t\tsetValue(\"params\", undefined);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Controller\n\t\t\tname=\"type\"\n\t\t\trules={{\n\t\t\t\trequired: i18n.t(\"Type is required\"),\n\t\t\t}}\n\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t<SingleSelectField\n\t\t\t\t\tlabel={i18n.t(\"Layer type\")}\n\t\t\t\t\trequired\n\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\tvalidationText={fieldState.error?.message}\n\t\t\t\t\tonChange={({ selected }: { selected: string }) => {\n\t\t\t\t\t\tsetConfigDefaults(selected);\n\t\t\t\t\t\tfield.onChange(selected);\n\t\t\t\t\t}}\n\t\t\t\t\tselected={\n\t\t\t\t\t\tBoolean(find(supportedLayers, \"id\", field.value))\n\t\t\t\t\t\t\t? field.value\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{supportedLayers?.map((layer) => (\n\t\t\t\t\t\t<SingleSelectOption\n\t\t\t\t\t\t\tkey={`${layer.id}-option`}\n\t\t\t\t\t\t\tvalue={layer.id}\n\t\t\t\t\t\t\tlabel={layer.name}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</SingleSelectField>\n\t\t\t)}\n\t\t/>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/hooks/data.ts"],"names":[],"mappings":";;;;;;;;AASO,SAAS,cAAA,CACf,WACA,MACC,EAAA;AACD,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,oBAAqB,EAAA,CAAA;AAEzC,EAAA,eAAe,OAAU,GAAA;AACxB,IAAA,IAAI,MAAQ,EAAA;AACX,MAAM,MAAA,SAAA,GAAY,MAAM,OAAQ,EAAA,CAAA;AAChC,MAAA,MAAM,WAAY,CAAA,QAAA,CAAS,SAAU,CAAA,KAAA,EAAO,OAAO,CAAA,CAAA;AACnD,MAAM,MAAA,MAAA,GAAS,IAAI,WAAY,CAAA;AAAA,QAC9B,OAAS,EAAA,MAAA;AAAA,OACT,CAAA,CAAA;AACD,MAAA,OAAO,OAAO,SAAU,EAAA,CAAA;AAAA,KACzB;AAAA,GACD;AAEA,EAAM,MAAA,EAAE,MAAM,KAAO,EAAA,SAAA,KAAc,QAAS,CAAA,CAAC,MAAM,CAAA,EAAG,OAAO,CAAA,CAAA;AAE7D,EAAM,MAAA,OAAA,GAAU,QAAQ,MAAM;AAC7B,IAAA,MAAM,WAAY,IAAc,EAAA,QAAA,CAAA;AAChC,IAAO,OAAA,QAAA,EAAU,GAAI,CAAA,CAAC,OAAiB,KAAA;AACtC,MAAA,OAAO,IAAI,IAAA;AAAA,QACV,OAAA,EAAS,WAAW,mBAAmB,CAAA;AAAA,SACrC,WAAY,EAAA,CAAA;AAAA,KACf,CAAA,CAAA;AAAA,GACF,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAET,EAAO,OAAA;AAAA,IACN,OAAS,EAAA,SAAA;AAAA,IACT,KAAA;AAAA,IACA,OAAA;AAAA,GACD,CAAA;AACD,CAAA;AAEO,SAAS,OAAU,GAAA;AACzB,EAAA,MAAM,OAAO,QAAS,CAAA;AAAA,IACrB,IAAM,EAAA,MAAA;AAAA,GACN,CAAA,CAAA;AACD,EAAA,OAAO,IAAK,CAAA,mBAAA,EAAqB,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA;AAC9C","file":"data.js","sourcesContent":["import { EarthEngineOptions } from \"../../MapLayer/components/GoogleEngineLayer/interfaces/index.js\";\nimport { useGoogleEngineToken } from \"../../MapLayer/components/GoogleEngineLayer/hooks/index.js\";\nimport { EarthEngine } from \"../../MapLayer/components/GoogleEngineLayer/services/engine.js\";\nimport { useQuery } from \"react-query\";\nimport { useMemo } from \"react\";\nimport { useWatch } from \"react-hook-form\";\nimport { find } from \"lodash\";\nimport { EARTH_ENGINE_LAYERS } from \"../../MapLayer/components/GoogleEngineLayer/constants/index.js\";\n\nexport function useDatasetInfo(\n\tshouldRun: boolean,\n\tconfig?: EarthEngineOptions,\n) {\n\tconst { refresh } = useGoogleEngineToken();\n\n\tasync function getInfo() {\n\t\tif (config) {\n\t\t\tconst tokenData = await refresh();\n\t\t\tawait EarthEngine.setToken(tokenData.token, refresh);\n\t\t\tconst engine = new EarthEngine({\n\t\t\t\toptions: config,\n\t\t\t});\n\t\t\treturn engine.getPeriod();\n\t\t}\n\t}\n\n\tconst { data, error, isLoading } = useQuery([config], getInfo);\n\n\tconst periods = useMemo(() => {\n\t\tconst features = (data as any)?.features;\n\t\treturn features?.map((feature: any) => {\n\t\t\treturn new Date(\n\t\t\t\tfeature?.properties[\"system:time_start\"],\n\t\t\t)?.getFullYear();\n\t\t});\n\t}, [data]);\n\n\treturn {\n\t\tloading: isLoading,\n\t\terror: error as any,\n\t\tperiods,\n\t};\n}\n\nexport function useType() {\n\tconst type = useWatch({\n\t\tname: \"type\",\n\t});\n\treturn find(EARTH_ENGINE_LAYERS, [\"id\", type]);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/EarthEngineLayerConfiguration/hooks/data.ts"],"names":[],"mappings":";;;;;;;;AASO,SAAS,cAAA,CACf,WACA,MACC,EAAA;AACD,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,oBAAqB,EAAA;AAEzC,EAAA,eAAe,OAAU,GAAA;AACxB,IAAA,IAAI,MAAQ,EAAA;AACX,MAAM,MAAA,SAAA,GAAY,MAAM,OAAQ,EAAA;AAChC,MAAA,MAAM,WAAY,CAAA,QAAA,CAAS,SAAU,CAAA,KAAA,EAAO,OAAO,CAAA;AACnD,MAAM,MAAA,MAAA,GAAS,IAAI,WAAY,CAAA;AAAA,QAC9B,OAAS,EAAA;AAAA,OACT,CAAA;AACD,MAAA,OAAO,OAAO,SAAU,EAAA;AAAA;AACzB;AAGD,EAAM,MAAA,EAAE,MAAM,KAAO,EAAA,SAAA,KAAc,QAAS,CAAA,CAAC,MAAM,CAAA,EAAG,OAAO,CAAA;AAE7D,EAAM,MAAA,OAAA,GAAU,QAAQ,MAAM;AAC7B,IAAA,MAAM,WAAY,IAAc,EAAA,QAAA;AAChC,IAAO,OAAA,QAAA,EAAU,GAAI,CAAA,CAAC,OAAiB,KAAA;AACtC,MAAA,OAAO,IAAI,IAAA;AAAA,QACV,OAAA,EAAS,WAAW,mBAAmB;AAAA,SACrC,WAAY,EAAA;AAAA,KACf,CAAA;AAAA,GACF,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAO,OAAA;AAAA,IACN,OAAS,EAAA,SAAA;AAAA,IACT,KAAA;AAAA,IACA;AAAA,GACD;AACD;AAEO,SAAS,OAAU,GAAA;AACzB,EAAA,MAAM,OAAO,QAAS,CAAA;AAAA,IACrB,IAAM,EAAA;AAAA,GACN,CAAA;AACD,EAAA,OAAO,IAAK,CAAA,mBAAA,EAAqB,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA;AAC9C","file":"data.js","sourcesContent":["import { EarthEngineOptions } from \"../../MapLayer/components/GoogleEngineLayer/interfaces/index.js\";\nimport { useGoogleEngineToken } from \"../../MapLayer/components/GoogleEngineLayer/hooks/index.js\";\nimport { EarthEngine } from \"../../MapLayer/components/GoogleEngineLayer/services/engine.js\";\nimport { useQuery } from \"react-query\";\nimport { useMemo } from \"react\";\nimport { useWatch } from \"react-hook-form\";\nimport { find } from \"lodash\";\nimport { EARTH_ENGINE_LAYERS } from \"../../MapLayer/components/GoogleEngineLayer/constants/index.js\";\n\nexport function useDatasetInfo(\n\tshouldRun: boolean,\n\tconfig?: EarthEngineOptions,\n) {\n\tconst { refresh } = useGoogleEngineToken();\n\n\tasync function getInfo() {\n\t\tif (config) {\n\t\t\tconst tokenData = await refresh();\n\t\t\tawait EarthEngine.setToken(tokenData.token, refresh);\n\t\t\tconst engine = new EarthEngine({\n\t\t\t\toptions: config,\n\t\t\t});\n\t\t\treturn engine.getPeriod();\n\t\t}\n\t}\n\n\tconst { data, error, isLoading } = useQuery([config], getInfo);\n\n\tconst periods = useMemo(() => {\n\t\tconst features = (data as any)?.features;\n\t\treturn features?.map((feature: any) => {\n\t\t\treturn new Date(\n\t\t\t\tfeature?.properties[\"system:time_start\"],\n\t\t\t)?.getFullYear();\n\t\t});\n\t}, [data]);\n\n\treturn {\n\t\tloading: isLoading,\n\t\terror: error as any,\n\t\tperiods,\n\t};\n}\n\nexport function useType() {\n\tconst type = useWatch({\n\t\tname: \"type\",\n\t});\n\treturn find(EARTH_ENGINE_LAYERS, [\"id\", type]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/MapArea/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { uid } from \"@hisptz/dhis2-utils\";\nimport { Map as LeafletMap } from \"leaflet\";\nimport { isEmpty } from \"lodash\";\nimport React, { forwardRef, useRef } from \"react\";\nimport { LayersControl, MapContainer, TileLayer } from \"react-leaflet\";\nimport { useMapBounds } from \"../../hooks/map.js\";\nimport MapControl from \"../MapControls/index.js\";\nimport MapLayer from \"../MapLayer/index.js\";\nimport LegendArea from \"../MapLayer/components/LegendArea/index.js\";\nimport { CustomThematicLayer } from \"../MapLayer/interfaces/index.js\";\nimport { MapLayersProvider } from \"../MapProvider/components/MapLayerProvider/index.js\";\nimport { useMapLayers } from \"../MapProvider/hooks/index.js\";\nimport {\n\tMapAreaProps,\n\tMapControls,\n\tMapLegendConfig,\n} from \"./interfaces/index.js\";\nimport MapUpdater from \"../MapUpdater/index.js\";\n\nfunction MapLayerArea({\n\tid,\n\tbase,\n\tcontrols,\n\tlegends,\n}: {\n\tid: string;\n\tbase?: {\n\t\turl: string;\n\t\tattribution: string;\n\t};\n\tcontrols?: MapControls[];\n\tlegends?: MapLegendConfig;\n}) {\n\tconst { layers } = useMapLayers();\n\n\treturn (\n\t\t<>\n\t\t\t<TileLayer\n\t\t\t\tid={id}\n\t\t\t\tattribution={\n\t\t\t\t\tbase?.attribution ??\n\t\t\t\t\t'&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> | &copy; <a href=\"https://carto.com/attribution\">CARTO</a>'\n\t\t\t\t}\n\t\t\t\turl={\n\t\t\t\t\tbase?.url ??\n\t\t\t\t\t\"https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png\"\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{controls?.map((control) => (\n\t\t\t\t<MapControl\n\t\t\t\t\tmapId={id}\n\t\t\t\t\tkey={`${control.type}-control`}\n\t\t\t\t\t{...control}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{!isEmpty(layers) && (\n\t\t\t\t<LayersControl hideSingleBase position={\"topleft\"}>\n\t\t\t\t\t{(layers as CustomThematicLayer[]).map(\n\t\t\t\t\t\t(layer: CustomThematicLayer, index) => (\n\t\t\t\t\t\t\t<MapLayer\n\t\t\t\t\t\t\t\tkey={layer.id}\n\t\t\t\t\t\t\t\tlayer={layer}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t</LayersControl>\n\t\t\t)}\n\t\t\t{!isEmpty(layers) && (\n\t\t\t\t<LegendArea\n\t\t\t\t\tlegends={legends}\n\t\t\t\t\tlayers={layers as CustomThematicLayer[]}\n\t\t\t\t\tposition={\"topright\"}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nconst MapArea = (\n\t{\n\t\tbase,\n\t\tcontrols,\n\t\tmapOptions,\n\t\tkey,\n\t\tlegends,\n\t\tlayers,\n\t\tanalyticsOptions,\n\t}: MapAreaProps,\n\tref: React.Ref<LeafletMap> | undefined,\n) => {\n\tconst { center, bounds } = useMapBounds();\n\tconst { current: id } = useRef<string>(uid());\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tid={`${id}-\"map-container`}\n\t\t\tstyle={{ height: \"100%\", width: \"100%\" }}\n\t\t>\n\t\t\t<MapContainer\n\t\t\t\tattributionControl\n\t\t\t\tref={ref}\n\t\t\t\tid={id}\n\t\t\t\tcenter={center}\n\t\t\t\tbounceAtZoomLimits\n\t\t\t\tbounds={bounds}\n\t\t\t\tstyle={{ height: \"100%\", width: \"100%\", minHeight: 500 }}\n\t\t\t\tkey={key}\n\t\t\t\ttrackResize\n\t\t\t\t{...mapOptions}\n\t\t\t>\n\t\t\t\t<MapUpdater containerRef={containerRef} bounds={bounds} />\n\t\t\t\t<MapLayersProvider\n\t\t\t\t\tanalyticsOptions={analyticsOptions}\n\t\t\t\t\tlayers={layers}\n\t\t\t\t>\n\t\t\t\t\t<MapLayerArea\n\t\t\t\t\t\tbase={base}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tcontrols={controls}\n\t\t\t\t\t\tlegends={legends}\n\t\t\t\t\t/>\n\t\t\t\t</MapLayersProvider>\n\t\t\t</MapContainer>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef(MapArea);\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/MapArea/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { uid } from \"@hisptz/dhis2-utils\";\nimport { Map as LeafletMap } from \"leaflet\";\nimport { isEmpty } from \"lodash\";\nimport React, { forwardRef, useRef } from \"react\";\nimport { LayersControl, MapContainer, TileLayer } from \"react-leaflet\";\nimport { useMapBounds } from \"../../hooks/map.js\";\nimport MapControl from \"../MapControls/index.js\";\nimport MapLayer from \"../MapLayer/index.js\";\nimport LegendArea from \"../MapLayer/components/LegendArea/index.js\";\nimport { CustomThematicLayer } from \"../MapLayer/interfaces/index.js\";\nimport { MapLayersProvider } from \"../MapProvider/components/MapLayerProvider/index.js\";\nimport { useMapLayers } from \"../MapProvider/hooks/index.js\";\nimport {\n\tMapAreaProps,\n\tMapControls,\n\tMapLegendConfig,\n} from \"./interfaces/index.js\";\nimport MapUpdater from \"../MapUpdater/index.js\";\n\nfunction MapLayerArea({\n\tid,\n\tbase,\n\tcontrols,\n\tlegends,\n}: {\n\tid: string;\n\tbase?: {\n\t\turl: string;\n\t\tattribution: string;\n\t};\n\tcontrols?: MapControls[];\n\tlegends?: MapLegendConfig;\n}) {\n\tconst { layers } = useMapLayers();\n\n\treturn (\n\t\t<>\n\t\t\t<TileLayer\n\t\t\t\tid={id}\n\t\t\t\tattribution={\n\t\t\t\t\tbase?.attribution ??\n\t\t\t\t\t'&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> | &copy; <a href=\"https://carto.com/attribution\">CARTO</a>'\n\t\t\t\t}\n\t\t\t\turl={\n\t\t\t\t\tbase?.url ??\n\t\t\t\t\t\"https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png\"\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{controls?.map((control) => (\n\t\t\t\t<MapControl\n\t\t\t\t\tmapId={id}\n\t\t\t\t\tkey={`${control.type}-control`}\n\t\t\t\t\t{...control}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{!isEmpty(layers) && (\n\t\t\t\t<LayersControl hideSingleBase position={\"topleft\"}>\n\t\t\t\t\t{(layers as CustomThematicLayer[]).map(\n\t\t\t\t\t\t(layer: CustomThematicLayer, index) => (\n\t\t\t\t\t\t\t<MapLayer\n\t\t\t\t\t\t\t\tkey={layer.id}\n\t\t\t\t\t\t\t\tlayer={layer}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t</LayersControl>\n\t\t\t)}\n\t\t\t{!isEmpty(layers) && (\n\t\t\t\t<LegendArea\n\t\t\t\t\tlegends={legends}\n\t\t\t\t\tlayers={layers as CustomThematicLayer[]}\n\t\t\t\t\tposition={\"topright\"}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nconst MapArea = (\n\t{\n\t\tbase,\n\t\tcontrols,\n\t\tmapOptions,\n\t\tkey,\n\t\tlegends,\n\t\tlayers,\n\t\tanalyticsOptions,\n\t}: MapAreaProps,\n\tref: React.Ref<LeafletMap> | undefined,\n) => {\n\tconst { center, bounds } = useMapBounds();\n\tconst { current: id } = useRef<string>(uid());\n\tconst containerRef = useRef<HTMLDivElement | null>(null);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tid={`${id}-\"map-container`}\n\t\t\tstyle={{ height: \"100%\", width: \"100%\" }}\n\t\t>\n\t\t\t<MapContainer\n\t\t\t\tattributionControl\n\t\t\t\tref={ref}\n\t\t\t\tid={id}\n\t\t\t\tcenter={center}\n\t\t\t\tbounceAtZoomLimits\n\t\t\t\tbounds={bounds}\n\t\t\t\tstyle={{ height: \"100%\", width: \"100%\", minHeight: 500 }}\n\t\t\t\tkey={key}\n\t\t\t\ttrackResize\n\t\t\t\t{...mapOptions}\n\t\t\t>\n\t\t\t\t<MapUpdater containerRef={containerRef} bounds={bounds} />\n\t\t\t\t<MapLayersProvider\n\t\t\t\t\tanalyticsOptions={analyticsOptions}\n\t\t\t\t\tlayers={layers}\n\t\t\t\t>\n\t\t\t\t\t<MapLayerArea\n\t\t\t\t\t\tbase={base}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tcontrols={controls}\n\t\t\t\t\t\tlegends={legends}\n\t\t\t\t\t/>\n\t\t\t\t</MapLayersProvider>\n\t\t\t</MapContainer>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef(MapArea);\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Map/components/MapControls/components/CustomControl/index.tsx"],"names":[],"mappings":";;AAGA,MAAM,gBAAmB,GAAA;AAAA,EACxB,UAAY,EAAA,6BAAA;AAAA,EACZ,WAAa,EAAA,8BAAA;AAAA,EACb,OAAS,EAAA,0BAAA;AAAA,EACT,QAAU,EAAA,2BAAA;AACX,CAAA,CAAA;AAMO,SAAS,cAAc,EAAE,QAAA,EAAU,QAAU,EAAA,GAAG,SAAiC,EAAA;AACtF,EAAA,MAAM,aAAiB,GAAA,QAAA,IAAY,gBAAiB,CAAA,QAAQ,KAAM,gBAAiB,CAAA,QAAA,CAAA;AACnF,EACE,uBAAA,GAAA,CAAC,SAAK,GAAG,OAAA,EAAS,WAAW,CAAG,EAAA,aAAa,IAC3C,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA,EAAI,OAAO,EAAE,QAAA,EAAU,UAAU,MAAQ,EAAA,MAAA,IAAU,SAAU,EAAA,6BAAA,EAC3D,UACH,CACF,EAAA,CAAA,CAAA;AAEJ","file":"index.js","sourcesContent":["import { ControlOptions } from \"leaflet\";\nimport React from \"react\";\n\nconst POSITION_CLASSES = {\n\tbottomleft: \"leaflet-bottom leaflet-left\",\n\tbottomright: \"leaflet-bottom leaflet-right\",\n\ttopleft: \"leaflet-top leaflet-left\",\n\ttopright: \"leaflet-top leaflet-right\",\n};\n\ninterface CustomControlOptions extends ControlOptions {\n children: React.ReactNode;\n}\n\nexport function CustomControl({ children, position, ...options }: CustomControlOptions) {\n const positionClass = (position && POSITION_CLASSES[position]) || POSITION_CLASSES.topright;\n return (\n <div {...options} className={`${positionClass}`}>\n <div style={{ overflow: \"hidden\", border: \"none\" }} className=\"leaflet-control leaflet-bar\">\n {children}\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Map/components/MapControls/components/CustomControl/index.tsx"],"names":[],"mappings":";;AAGA,MAAM,gBAAmB,GAAA;AAAA,EACxB,UAAY,EAAA,6BAAA;AAAA,EACZ,WAAa,EAAA,8BAAA;AAAA,EACb,OAAS,EAAA,0BAAA;AAAA,EACT,QAAU,EAAA;AACX,CAAA;AAMO,SAAS,cAAc,EAAE,QAAA,EAAU,QAAU,EAAA,GAAG,SAAiC,EAAA;AACtF,EAAA,MAAM,aAAiB,GAAA,QAAA,IAAY,gBAAiB,CAAA,QAAQ,KAAM,gBAAiB,CAAA,QAAA;AACnF,EACE,uBAAA,GAAA,CAAC,SAAK,GAAG,OAAA,EAAS,WAAW,CAAG,EAAA,aAAa,IAC3C,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA,EAAI,OAAO,EAAE,QAAA,EAAU,UAAU,MAAQ,EAAA,MAAA,IAAU,SAAU,EAAA,6BAAA,EAC3D,UACH,CACF,EAAA,CAAA;AAEJ","file":"index.js","sourcesContent":["import { ControlOptions } from \"leaflet\";\nimport React from \"react\";\n\nconst POSITION_CLASSES = {\n\tbottomleft: \"leaflet-bottom leaflet-left\",\n\tbottomright: \"leaflet-bottom leaflet-right\",\n\ttopleft: \"leaflet-top leaflet-left\",\n\ttopright: \"leaflet-top leaflet-right\",\n};\n\ninterface CustomControlOptions extends ControlOptions {\n children: React.ReactNode;\n}\n\nexport function CustomControl({ children, position, ...options }: CustomControlOptions) {\n const positionClass = (position && POSITION_CLASSES[position]) || POSITION_CLASSES.topright;\n return (\n <div {...options} className={`${positionClass}`}>\n <div style={{ overflow: \"hidden\", border: \"none\" }} className=\"leaflet-control leaflet-bar\">\n {children}\n </div>\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Map/components/MapControls/components/DownloadControl/index.tsx"],"names":[],"mappings":";;;;;AAKA,MAAM,wBAAA,GAA2B,sBAAuB,CAAA,CAAC,KAAU,KAAA;AAClE,EAAQ,OAAA,CAAA,CAAU,UAAU,KAAK,CAAA,CAAA;AAClC,CAAC,CAAA,CAAA;AACc,SAAR,eAAiC,CAAA,EAAE,OAAS,EAAA,QAAA,EAAU,OAAqE,EAAA;AAChI,EAAA,2BAAQ,wBAA0B,EAAA,EAAA,GAAG,EAAE,GAAG,OAAA,EAAS,UAAY,EAAA,CAAA,CAAA;AACjE","file":"index.js","sourcesContent":["import { createControlComponent } from \"@react-leaflet/core\";\nimport L, { ControlPosition } from \"leaflet\";\nimport \"leaflet-easyprint\";\nimport React from \"react\";\n\nconst DownloadControlComponent = createControlComponent((props) => {\n\treturn (L as any).easyPrint(props);\n});\nexport default function DownloadControl({ options, position, mapId }: { options: any; position: ControlPosition; mapId: string }) {\n return <DownloadControlComponent {...{ ...options, position }} />;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Map/components/MapControls/components/DownloadControl/index.tsx"],"names":[],"mappings":";;;;;AAKA,MAAM,wBAAA,GAA2B,sBAAuB,CAAA,CAAC,KAAU,KAAA;AAClE,EAAQ,OAAA,CAAA,CAAU,UAAU,KAAK,CAAA;AAClC,CAAC,CAAA;AACc,SAAR,eAAiC,CAAA,EAAE,OAAS,EAAA,QAAA,EAAU,OAAqE,EAAA;AAChI,EAAA,2BAAQ,wBAA0B,EAAA,EAAA,GAAG,EAAE,GAAG,OAAA,EAAS,UAAY,EAAA,CAAA;AACjE","file":"index.js","sourcesContent":["import { createControlComponent } from \"@react-leaflet/core\";\nimport L, { ControlPosition } from \"leaflet\";\nimport \"leaflet-easyprint\";\nimport React from \"react\";\n\nconst DownloadControlComponent = createControlComponent((props) => {\n\treturn (L as any).easyPrint(props);\n});\nexport default function DownloadControl({ options, position, mapId }: { options: any; position: ControlPosition; mapId: string }) {\n return <DownloadControlComponent {...{ ...options, position }} />;\n}\n"]}
@@ -3,9 +3,7 @@ import { control } from 'leaflet';
3
3
  import 'leaflet.fullscreen';
4
4
  import 'leaflet.fullscreen/Control.FullScreen.css';
5
5
 
6
- const FullscreenControl = createControlComponent(
7
- (props) => control.fullscreen(props)
8
- );
6
+ const FullscreenControl = createControlComponent((props) => control.fullscreen(props));
9
7
  var FullscreenControl_default = FullscreenControl;
10
8
 
11
9
  export { FullscreenControl_default as default };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Map/components/MapControls/components/FullscreenControl/index.tsx"],"names":[],"mappings":";;;;;AAKA,MAAM,iBAAoB,GAAA,sBAAA;AAAA,EAAuB,CAAC,KAAA,KAChD,OAAgB,CAAA,UAAA,CAAW,KAAK,CAAA;AAClC,CAAA,CAAA;AACA,IAAO,yBAAQ,GAAA","file":"index.js","sourcesContent":["import { createControlComponent } from \"@react-leaflet/core\";\nimport { control } from \"leaflet\";\nimport \"leaflet.fullscreen\";\nimport \"leaflet.fullscreen/Control.FullScreen.css\";\n\nconst FullscreenControl = createControlComponent((props) =>\n\t(control as any).fullscreen(props),\n);\nexport default FullscreenControl;\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Map/components/MapControls/components/FullscreenControl/index.tsx"],"names":[],"mappings":";;;;;AAKA,MAAM,oBAEF,sBAAuB,CAAA,CAAC,UAAW,OAAgB,CAAA,UAAA,CAAW,KAAK,CAAC,CAAA;AACxE,IAAO,yBAAQ,GAAA","file":"index.js","sourcesContent":["import { createControlComponent } from \"@react-leaflet/core\";\nimport { control, type ControlOptions } from \"leaflet\";\nimport \"leaflet.fullscreen\";\nimport \"leaflet.fullscreen/Control.FullScreen.css\";\n\nconst FullscreenControl: React.ForwardRefExoticComponent<\n\tControlOptions & React.RefAttributes<any>\n> = createControlComponent((props) => (control as any).fullscreen(props));\nexport default FullscreenControl;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/MapControls/index.tsx"],"names":[],"mappings":";;;;;AAUe,SAAR,UAA4B,CAAA;AAAA,EAClC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AACD,CAAoB,EAAA;AACnB,EAAA,QAAQ,IAAM;AAAA,IACb,KAAK,MAAA;AACJ,MAAA,uBAAQ,GAAA,CAAA,WAAA,EAAA,EAAY,QAAqB,EAAA,GAAG,OAAS,EAAA,CAAA,CAAA;AAAA,IACtD,KAAK,OAAA;AACJ,MAAA,uBAAQ,GAAA,CAAA,YAAA,EAAA,EAAa,QAAqB,EAAA,GAAG,OAAS,EAAA,CAAA,CAAA;AAAA,IACvD,KAAK,YAAA;AACJ,MAAA,uBAAQ,GAAA,CAAA,iBAAA,EAAA,EAAkB,QAAqB,EAAA,GAAG,OAAS,EAAA,CAAA,CAAA;AAAA,IAC5D,KAAK,OAAA;AACJ,MACC,uBAAA,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACA,KAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,SAAA;AAAA,OACD,CAAA;AAAA,IAEF;AACC,MAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACD","file":"index.js","sourcesContent":["import React from \"react\";\nimport { ScaleControl, ZoomControl } from \"react-leaflet\";\nimport { MapControls } from \"../MapArea/interfaces/index.js\";\nimport FullscreenControl from \"./components/FullscreenControl/index.js\";\nimport DownloadControl from \"./components/DownloadControl/index.js\";\n\nexport interface MapControlProps extends MapControls {\n\tmapId: string;\n}\n\nexport default function MapControl({\n\ttype,\n\toptions,\n\tposition,\n\tmapId,\n}: MapControlProps) {\n\tswitch (type) {\n\t\tcase \"zoom\":\n\t\t\treturn <ZoomControl position={position} {...options} />;\n\t\tcase \"scale\":\n\t\t\treturn <ScaleControl position={position} {...options} />;\n\t\tcase \"fullscreen\":\n\t\t\treturn <FullscreenControl position={position} {...options} />;\n\t\tcase \"print\":\n\t\t\treturn (\n\t\t\t\t<DownloadControl\n\t\t\t\t\tmapId={mapId}\n\t\t\t\t\tposition={position}\n\t\t\t\t\toptions={options}\n\t\t\t\t/>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/MapControls/index.tsx"],"names":[],"mappings":";;;;;AAUe,SAAR,UAA4B,CAAA;AAAA,EAClC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAAoB,EAAA;AACnB,EAAA,QAAQ,IAAM;AAAA,IACb,KAAK,MAAA;AACJ,MAAA,uBAAQ,GAAA,CAAA,WAAA,EAAA,EAAY,QAAqB,EAAA,GAAG,OAAS,EAAA,CAAA;AAAA,IACtD,KAAK,OAAA;AACJ,MAAA,uBAAQ,GAAA,CAAA,YAAA,EAAA,EAAa,QAAqB,EAAA,GAAG,OAAS,EAAA,CAAA;AAAA,IACvD,KAAK,YAAA;AACJ,MAAA,uBAAQ,GAAA,CAAA,iBAAA,EAAA,EAAkB,QAAqB,EAAA,GAAG,OAAS,EAAA,CAAA;AAAA,IAC5D,KAAK,OAAA;AACJ,MACC,uBAAA,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACA,KAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA;AAAA,OACD;AAAA,IAEF;AACC,MAAO,OAAA,IAAA;AAAA;AAEV","file":"index.js","sourcesContent":["import React from \"react\";\nimport { ScaleControl, ZoomControl } from \"react-leaflet\";\nimport { MapControls } from \"../MapArea/interfaces/index.js\";\nimport FullscreenControl from \"./components/FullscreenControl/index.js\";\nimport DownloadControl from \"./components/DownloadControl/index.js\";\n\nexport interface MapControlProps extends MapControls {\n\tmapId: string;\n}\n\nexport default function MapControl({\n\ttype,\n\toptions,\n\tposition,\n\tmapId,\n}: MapControlProps) {\n\tswitch (type) {\n\t\tcase \"zoom\":\n\t\t\treturn <ZoomControl position={position} {...options} />;\n\t\tcase \"scale\":\n\t\t\treturn <ScaleControl position={position} {...options} />;\n\t\tcase \"fullscreen\":\n\t\t\treturn <FullscreenControl position={position} {...options} />;\n\t\tcase \"print\":\n\t\t\treturn (\n\t\t\t\t<DownloadControl\n\t\t\t\t\tmapId={mapId}\n\t\t\t\t\tposition={position}\n\t\t\t\t\toptions={options}\n\t\t\t\t/>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.ts"],"names":[],"mappings":";;AAEO,SAAS,eAAkB,GAAA;AACjC,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,sBAAuB,EAAA,CAAA;AAE5C,EAAO,OAAA,QAAA,CAAA;AACR","file":"useBoundaryData.js","sourcesContent":["import { useMapOrganisationUnit } from \"../../../../MapProvider/hooks/index.js\";\n\nexport function useBoundaryData() {\n\tconst { orgUnits } = useMapOrganisationUnit();\n\n\treturn orgUnits;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.ts"],"names":[],"mappings":";;AAEO,SAAS,eAAkB,GAAA;AACjC,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,sBAAuB,EAAA;AAE5C,EAAO,OAAA,QAAA;AACR","file":"useBoundaryData.js","sourcesContent":["import { useMapOrganisationUnit } from \"../../../../MapProvider/hooks/index.js\";\n\nexport function useBoundaryData() {\n\tconst { orgUnits } = useMapOrganisationUnit();\n\n\treturn orgUnits;\n}\n"]}
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import i18n from '@dhis2/d2-i18n';
3
3
  import { colors } from '@dhis2/ui';
4
4
  import { LayersControl, LayerGroup, GeoJSON, Tooltip, Popup } from 'react-leaflet';
5
- import { highlightFeature, resetHighlight } from '../../../../utils/map.js';
5
+ import { resetHighlight, highlightFeature } from '../../../../utils/map.js';
6
6
  import { useBoundaryData } from './hooks/useBoundaryData.js';
7
7
 
8
8
  const defaultStyle = {