@hisptz/dhis2-analytics 2.1.27 → 2.1.29

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 (214) 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/area.js.map +1 -1
  7. package/dist/components/ChartAnalytics/models/bar.js.map +1 -1
  8. package/dist/components/ChartAnalytics/models/column.js.map +1 -1
  9. package/dist/components/ChartAnalytics/models/gauge.js.map +1 -1
  10. package/dist/components/ChartAnalytics/models/index.js.map +1 -1
  11. package/dist/components/ChartAnalytics/models/line.js.map +1 -1
  12. package/dist/components/ChartAnalytics/models/multi-series.js.map +1 -1
  13. package/dist/components/ChartAnalytics/models/pie.js.map +1 -1
  14. package/dist/components/ChartAnalytics/models/radar.js.map +1 -1
  15. package/dist/components/ChartAnalytics/models/scatter.js.map +1 -1
  16. package/dist/components/ChartAnalytics/services/export.js.map +1 -1
  17. package/dist/components/ChartAnalytics/utils/chart.js.map +1 -1
  18. package/dist/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -1
  19. package/dist/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
  20. package/dist/components/DHIS2PivotTable/components/Table/index.js.map +1 -1
  21. package/dist/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -1
  22. package/dist/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
  23. package/dist/components/DHIS2PivotTable/services/engine.js.map +1 -1
  24. package/dist/components/DHIS2PivotTable/state/engine.js.map +1 -1
  25. package/dist/components/DHIS2PivotTable/utils/color.js.map +1 -1
  26. package/dist/components/Map/DHIS2Map.js.map +1 -1
  27. package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -1
  28. package/dist/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -1
  29. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -1
  30. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -1
  31. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -1
  32. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -1
  33. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -1
  34. package/dist/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -1
  35. package/dist/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -1
  36. package/dist/components/Map/components/MapArea/index.js.map +1 -1
  37. package/dist/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
  38. package/dist/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -1
  39. package/dist/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -1
  40. package/dist/components/Map/components/MapControls/index.js.map +1 -1
  41. package/dist/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -1
  42. package/dist/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -1
  43. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -1
  44. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -1
  45. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -1
  46. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -1
  47. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +22 -22
  48. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -1
  49. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -1
  50. package/dist/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -1
  51. package/dist/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
  52. package/dist/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
  53. package/dist/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -1
  54. package/dist/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -1
  55. package/dist/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -1
  56. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -1
  57. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -1
  58. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -1
  59. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -1
  60. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
  61. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
  62. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
  63. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/LabelMarker/index.js.map +1 -1
  64. package/dist/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -1
  65. package/dist/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -1
  66. package/dist/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map +1 -1
  67. package/dist/components/Map/components/MapLayer/index.js.map +1 -1
  68. package/dist/components/Map/components/MapLayer/interfaces/index.js.map +1 -1
  69. package/dist/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -1
  70. package/dist/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
  71. package/dist/components/Map/components/MapProvider/hooks/index.js.map +1 -1
  72. package/dist/components/Map/components/MapProvider/index.js +1 -1
  73. package/dist/components/Map/components/MapProvider/index.js.map +1 -1
  74. package/dist/components/Map/components/MapTitle/index.js.map +1 -1
  75. package/dist/components/Map/components/MapUpdater/index.js.map +1 -1
  76. package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -1
  77. package/dist/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
  78. package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -1
  79. package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -1
  80. package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -1
  81. package/dist/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -1
  82. package/dist/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -1
  83. package/dist/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -1
  84. package/dist/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -1
  85. package/dist/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -1
  86. package/dist/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -1
  87. package/dist/components/Map/constants/colors.js.map +1 -1
  88. package/dist/components/Map/constants/legendSet.js.map +1 -1
  89. package/dist/components/Map/hooks/map.js.map +1 -1
  90. package/dist/components/Map/state/index.js.map +1 -1
  91. package/dist/components/Map/utils/colors.js.map +1 -1
  92. package/dist/components/Map/utils/helpers.js.map +1 -1
  93. package/dist/components/Map/utils/map.js.map +1 -1
  94. package/dist/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
  95. package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
  96. package/dist/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -1
  97. package/dist/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -1
  98. package/dist/components/Visualization/components/DimensionsProvider/index.js.map +1 -1
  99. package/dist/components/Visualization/components/LayoutProvider/index.js.map +1 -1
  100. package/dist/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
  101. package/dist/components/Visualization/components/VisualizationProvider/index.js.map +1 -1
  102. package/dist/components/Visualization/components/VisualizationSelector/index.js.map +1 -1
  103. package/dist/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -1
  104. package/dist/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -1
  105. package/dist/components/Visualization/index.js.map +1 -1
  106. package/dist/esm/components/ChartAnalytics/DHIS2Chart.js.map +1 -1
  107. package/dist/esm/components/ChartAnalytics/components/DownloadMenu/components/Menu.js.map +1 -1
  108. package/dist/esm/components/ChartAnalytics/components/DownloadMenu/constants/menu.js.map +1 -1
  109. package/dist/esm/components/ChartAnalytics/components/DownloadMenu/index.js.map +1 -1
  110. package/dist/esm/components/ChartAnalytics/hooks/useChart.js.map +1 -1
  111. package/dist/esm/components/ChartAnalytics/models/area.js.map +1 -1
  112. package/dist/esm/components/ChartAnalytics/models/bar.js.map +1 -1
  113. package/dist/esm/components/ChartAnalytics/models/column.js.map +1 -1
  114. package/dist/esm/components/ChartAnalytics/models/gauge.js.map +1 -1
  115. package/dist/esm/components/ChartAnalytics/models/index.js.map +1 -1
  116. package/dist/esm/components/ChartAnalytics/models/line.js.map +1 -1
  117. package/dist/esm/components/ChartAnalytics/models/multi-series.js.map +1 -1
  118. package/dist/esm/components/ChartAnalytics/models/pie.js.map +1 -1
  119. package/dist/esm/components/ChartAnalytics/models/radar.js.map +1 -1
  120. package/dist/esm/components/ChartAnalytics/models/scatter.js.map +1 -1
  121. package/dist/esm/components/ChartAnalytics/services/export.js.map +1 -1
  122. package/dist/esm/components/ChartAnalytics/utils/chart.js.map +1 -1
  123. package/dist/esm/components/CircularProgressDashboard/CircularProgressIndicator.js.map +1 -1
  124. package/dist/esm/components/DHIS2PivotTable/DHIS2PivotTable.js.map +1 -1
  125. package/dist/esm/components/DHIS2PivotTable/components/Table/index.js.map +1 -1
  126. package/dist/esm/components/DHIS2PivotTable/components/TableBody/index.js.map +1 -1
  127. package/dist/esm/components/DHIS2PivotTable/components/TableHeaders/index.js.map +1 -1
  128. package/dist/esm/components/DHIS2PivotTable/services/engine.js.map +1 -1
  129. package/dist/esm/components/DHIS2PivotTable/state/engine.js.map +1 -1
  130. package/dist/esm/components/DHIS2PivotTable/utils/color.js.map +1 -1
  131. package/dist/esm/components/Map/DHIS2Map.js.map +1 -1
  132. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.js.map +1 -1
  133. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.js.map +1 -1
  134. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/AggregationSelector.js.map +1 -1
  135. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/ColorConfig.js.map +1 -1
  136. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/Name.js.map +1 -1
  137. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/PeriodSelector.js.map +1 -1
  138. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/StylesConfig.js.map +1 -1
  139. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/components/TypeField.js.map +1 -1
  140. package/dist/esm/components/Map/components/EarthEngineLayerConfiguration/hooks/data.js.map +1 -1
  141. package/dist/esm/components/Map/components/MapArea/index.js.map +1 -1
  142. package/dist/esm/components/Map/components/MapControls/components/CustomControl/index.js.map +1 -1
  143. package/dist/esm/components/Map/components/MapControls/components/DownloadControl/index.js.map +1 -1
  144. package/dist/esm/components/Map/components/MapControls/components/FullscreenControl/index.js.map +1 -1
  145. package/dist/esm/components/Map/components/MapControls/index.js.map +1 -1
  146. package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js.map +1 -1
  147. package/dist/esm/components/Map/components/MapLayer/components/BoundaryLayer/index.js.map +1 -1
  148. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js.map +1 -1
  149. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js.map +1 -1
  150. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js.map +1 -1
  151. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js.map +1 -1
  152. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +22 -22
  153. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js.map +1 -1
  154. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js.map +1 -1
  155. package/dist/esm/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js.map +1 -1
  156. package/dist/esm/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
  157. package/dist/esm/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
  158. package/dist/esm/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js.map +1 -1
  159. package/dist/esm/components/Map/components/MapLayer/components/PointLayer/hooks/index.js.map +1 -1
  160. package/dist/esm/components/Map/components/MapLayer/components/PointLayer/index.js.map +1 -1
  161. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js.map +1 -1
  162. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js.map +1 -1
  163. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js.map +1 -1
  164. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js.map +1 -1
  165. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
  166. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
  167. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
  168. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/LabelMarker/index.js.map +1 -1
  169. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js.map +1 -1
  170. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/index.js.map +1 -1
  171. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map +1 -1
  172. package/dist/esm/components/Map/components/MapLayer/index.js.map +1 -1
  173. package/dist/esm/components/Map/components/MapLayer/interfaces/index.js.map +1 -1
  174. package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js.map +1 -1
  175. package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
  176. package/dist/esm/components/Map/components/MapProvider/hooks/index.js.map +1 -1
  177. package/dist/esm/components/Map/components/MapProvider/index.js +1 -1
  178. package/dist/esm/components/Map/components/MapProvider/index.js.map +1 -1
  179. package/dist/esm/components/Map/components/MapTitle/index.js.map +1 -1
  180. package/dist/esm/components/Map/components/MapUpdater/index.js.map +1 -1
  181. package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.js.map +1 -1
  182. package/dist/esm/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.js.map +1 -1
  183. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js.map +1 -1
  184. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js.map +1 -1
  185. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js.map +1 -1
  186. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js.map +1 -1
  187. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js.map +1 -1
  188. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js.map +1 -1
  189. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js.map +1 -1
  190. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/RadiusField.js.map +1 -1
  191. package/dist/esm/components/Map/components/ThematicLayerConfiguration/components/TypeField.js.map +1 -1
  192. package/dist/esm/components/Map/constants/colors.js.map +1 -1
  193. package/dist/esm/components/Map/constants/legendSet.js.map +1 -1
  194. package/dist/esm/components/Map/hooks/map.js.map +1 -1
  195. package/dist/esm/components/Map/state/index.js.map +1 -1
  196. package/dist/esm/components/Map/utils/colors.js.map +1 -1
  197. package/dist/esm/components/Map/utils/helpers.js.map +1 -1
  198. package/dist/esm/components/Map/utils/map.js.map +1 -1
  199. package/dist/esm/components/SingleValueContainer/SingleValueVisualizer.js.map +1 -1
  200. package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js.map +1 -1
  201. package/dist/esm/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js.map +1 -1
  202. package/dist/esm/components/Visualization/components/AnalyticsDataProvider/index.js.map +1 -1
  203. package/dist/esm/components/Visualization/components/DimensionsProvider/index.js.map +1 -1
  204. package/dist/esm/components/Visualization/components/LayoutProvider/index.js.map +1 -1
  205. package/dist/esm/components/Visualization/components/VisualizationDimensionSelector/index.js.map +1 -1
  206. package/dist/esm/components/Visualization/components/VisualizationProvider/index.js.map +1 -1
  207. package/dist/esm/components/Visualization/components/VisualizationSelector/index.js.map +1 -1
  208. package/dist/esm/components/Visualization/components/VisualizationTypeProvider/index.js.map +1 -1
  209. package/dist/esm/components/Visualization/components/VisualizationTypeSelector/index.js.map +1 -1
  210. package/dist/esm/components/Visualization/index.js.map +1 -1
  211. package/dist/package.json +63 -0
  212. package/dist/types/components/ChartAnalytics/services/export.d.ts.map +1 -1
  213. package/dist/types/components/DHIS2PivotTable/components/TableHeaders/index.d.ts.map +1 -1
  214. package/package.json +8 -16
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/MapLayer/index.tsx"],"names":[],"mappings":";;;;;;AAYe,SAAR,QAA0B,CAAA;AAAA,EAChC,KAAA;AAAA,EACA;AACD,CAOG,EAAA;AACF,EAAA,QAAQ,MAAM,IAAM;AAAA,IACnB,KAAK,SAAA;AAAA,IACL,KAAK,SAAA;AACJ,MAAO,uBAAA,GAAA,CAAC,aAAe,EAAA,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA,IAClC,KAAK,QAAA;AAAA,IACL,KAAK,YAAA;AACJ,MAAA,uBAAQ,GAAA,CAAA,aAAA,EAAA,EAAc,OAAS,EAAA,KAAA,CAAM,IAAI,KAAc,EAAA,CAAA;AAAA,IACxD,KAAK,OAAA;AACJ,MAAA,2BAAQ,UAAW,EAAA,EAAA,CAAA;AAAA,IACpB,KAAK,YAAA;AAAA,IACL,KAAK,WAAA;AAAA,IACL,KAAK,YAAA;AAAA,IACL,KAAK,WAAA;AACJ,MAAA,uBAAQ,GAAA,CAAA,iBAAA,EAAA,EAAkB,OAAS,EAAA,KAAA,CAAM,EAAI,EAAA,CAAA;AAAA,IAC9C;AACC,MAAO,OAAA,IAAA;AAAA;AAEV","file":"index.js","sourcesContent":["import React from \"react\";\nimport BoundaryLayer from \"./components/BoundaryLayer/index.js\";\nimport GoogleEngineLayer from \"./components/GoogleEngineLayer/index.js\";\nimport { PointLayer } from \"./components/PointLayer/index.js\";\nimport ThematicLayer from \"./components/ThematicLayer/index.js\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n} from \"./interfaces/index.js\";\n\nexport default function MapLayer({\n\tlayer,\n\tindex,\n}: {\n\tlayer:\n\t\t| CustomThematicLayer\n\t\t| CustomBoundaryLayer\n\t\t| CustomPointLayer\n\t\t| CustomGoogleEngineLayer;\n\tindex: number;\n}) {\n\tswitch (layer.type) {\n\t\tcase \"overlay\":\n\t\tcase \"basemap\":\n\t\t\treturn <BoundaryLayer {...layer} />;\n\t\tcase \"bubble\":\n\t\tcase \"choropleth\":\n\t\t\treturn <ThematicLayer layerId={layer.id} index={index} />;\n\t\tcase \"point\":\n\t\t\treturn <PointLayer />;\n\t\tcase \"population\":\n\t\tcase \"elevation\":\n\t\tcase \"footprints\":\n\t\tcase \"landCover\":\n\t\t\treturn <GoogleEngineLayer layerId={layer.id} />;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/MapLayer/index.tsx"],"names":[],"mappings":";;;;;;AAYe,SAAR,QAAA,CAA0B;AAAA,EAChC,KAAA;AAAA,EACA;AACD,CAAA,EAOG;AACF,EAAA,QAAQ,MAAM,IAAA;AAAM,IACnB,KAAK,SAAA;AAAA,IACL,KAAK,SAAA;AACJ,MAAA,uBAAO,GAAA,CAAC,aAAA,EAAA,EAAe,GAAG,KAAA,EAAO,CAAA;AAAA,IAClC,KAAK,QAAA;AAAA,IACL,KAAK,YAAA;AACJ,MAAA,uBAAO,GAAA,CAAC,aAAA,EAAA,EAAc,OAAA,EAAS,KAAA,CAAM,IAAI,KAAA,EAAc,CAAA;AAAA,IACxD,KAAK,OAAA;AACJ,MAAA,2BAAQ,UAAA,EAAA,EAAW,CAAA;AAAA,IACpB,KAAK,YAAA;AAAA,IACL,KAAK,WAAA;AAAA,IACL,KAAK,YAAA;AAAA,IACL,KAAK,WAAA;AACJ,MAAA,uBAAO,GAAA,CAAC,iBAAA,EAAA,EAAkB,OAAA,EAAS,KAAA,CAAM,EAAA,EAAI,CAAA;AAAA,IAC9C;AACC,MAAA,OAAO,IAAA;AAAA;AAEV","file":"index.js","sourcesContent":["import React from \"react\";\nimport BoundaryLayer from \"./components/BoundaryLayer/index.js\";\nimport GoogleEngineLayer from \"./components/GoogleEngineLayer/index.js\";\nimport { PointLayer } from \"./components/PointLayer/index.js\";\nimport ThematicLayer from \"./components/ThematicLayer/index.js\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n} from \"./interfaces/index.js\";\n\nexport default function MapLayer({\n\tlayer,\n\tindex,\n}: {\n\tlayer:\n\t\t| CustomThematicLayer\n\t\t| CustomBoundaryLayer\n\t\t| CustomPointLayer\n\t\t| CustomGoogleEngineLayer;\n\tindex: number;\n}) {\n\tswitch (layer.type) {\n\t\tcase \"overlay\":\n\t\tcase \"basemap\":\n\t\t\treturn <BoundaryLayer {...layer} />;\n\t\tcase \"bubble\":\n\t\tcase \"choropleth\":\n\t\t\treturn <ThematicLayer layerId={layer.id} index={index} />;\n\t\tcase \"point\":\n\t\t\treturn <PointLayer />;\n\t\tcase \"population\":\n\t\tcase \"elevation\":\n\t\tcase \"footprints\":\n\t\tcase \"landCover\":\n\t\t\treturn <GoogleEngineLayer layerId={layer.id} />;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/MapLayer/interfaces/index.ts"],"names":[],"mappings":"AAUO,MAAM,6BAAgC,GAAA;AAAA,EAC5C,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACD","file":"index.js","sourcesContent":["import type { Legend } from \"@hisptz/dhis2-utils\";\nimport { MapOrgUnit, PointOrgUnit } from \"../../../interfaces\";\nimport { LegendColorScale } from \"../../../utils\";\nimport { EarthEngineOptions } from \"../components/GoogleEngineLayer/interfaces\";\nimport { EarthEngine } from \"../components/GoogleEngineLayer/services/engine.js\";\nimport type { LeafletEventHandlerFnMap, LeafletMouseEvent } from \"leaflet\";\n\nexport type BoundaryLayerType = \"basemap\" | \"overlay\";\nexport type ThematicLayerType = \"choropleth\" | \"bubble\";\n\nexport const SUPPORTED_EARTH_ENGINE_LAYERS = [\n\t\"population\",\n\t\"footprints\",\n\t\"elevation\",\n\t\"landCover\",\n];\n\nexport type GoogleEngineLayerType =\n\t| \"population\"\n\t| \"footprints\"\n\t| \"elevation\"\n\t| \"landCover\";\n\nexport interface CustomBoundaryLayer extends CustomMapLayer {\n\tid: string;\n\ttype: BoundaryLayerType;\n\tenabled: boolean;\n}\n\nexport interface EarthEngineLayerConfig extends CustomMapLayer {\n\ttype: GoogleEngineLayerType;\n\taggregations?: string[];\n\tname?: string;\n\tfilters?: {\n\t\tperiod: string;\n\t};\n\tparams?: {\n\t\tmin: number;\n\t\tmax: number;\n\t\tpalette?: string;\n\t};\n}\n\nexport interface CustomGoogleEngineLayer extends CustomMapLayer {\n\ttype: GoogleEngineLayerType;\n\toptions: EarthEngineOptions;\n\taggregations?: string[];\n\tname: string;\n\turl: string;\n\tengine?: EarthEngine;\n}\n\nexport interface CustomPointLayer extends CustomMapLayer {\n\tid: string;\n\ttype: \"point\";\n\tlabel?: string;\n\tlevel?: string | number;\n\tgroup?: string;\n\tstyle?: {\n\t\ticon?: string;\n\t\tgroupSet?: string;\n\t\torgUnitGroups?: Array<{ name: string; symbol: string }>;\n\t};\n\tpoints?: Array<PointOrgUnit>;\n}\n\nexport type DataItemType = \"dataElement\" | \"indicator\" | \"programIndicator\";\n\nexport interface ThematicLayerDataItem {\n\tid: string;\n\tdisplayName: string;\n\ttype: DataItemType;\n\tlegendSet?: string;\n\tlegendConfig?: {\n\t\tcolorClass: LegendColorScale;\n\t\tscale: number;\n\t};\n}\n\nexport interface ThematicLayerControl {\n\tposition: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\";\n\tenabled: boolean;\n}\n\nexport interface ThematicLayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem: ThematicLayerDataItem;\n}\n\nexport interface ThematicLayerRawData {\n\torgUnit: string;\n\tdata?: number;\n\tdataItem: string;\n}\n\nexport interface CustomChoroplethLayer extends CustomMapLayer {\n\tenabled: boolean;\n\tname?: string;\n\tdata: ThematicLayerData[];\n\tdataItem: ThematicLayerDataItem;\n\ttype: \"choropleth\";\n\tcontrol?: ThematicLayerControl;\n\tlegends?: Legend[];\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n}\n\nexport interface CustomBubbleLayer extends CustomMapLayer {\n\tenabled: boolean;\n\tname?: string;\n\tdata: ThematicLayerData[];\n\tdataItem: ThematicLayerDataItem;\n\ttype: \"bubble\";\n\tcontrol?: ThematicLayerControl;\n\tlegends?: Legend[];\n\tradius?: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n}\n\nexport type CustomThematicLayer = CustomBubbleLayer | CustomChoroplethLayer;\n\ninterface LayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem?: ThematicLayerDataItem;\n}\n\nexport type LayerLabelConfig = {\n\tlabels: boolean;\n\tlabelFontWeight: string;\n\tlabelTemplate: string;\n};\n\nexport interface ThematicLayerConfig {\n\tid: string;\n\tdata?: ThematicLayerRawData[];\n\tenabled: boolean;\n\tname?: string;\n\tdataItem: ThematicLayerDataItem;\n\ttype: ThematicLayerType;\n\tcontrol?: ThematicLayerControl;\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\n\tlabelConfig?: LayerLabelConfig;\n\tradius?: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n}\n\nexport interface CustomMapLayer {\n\tid: string;\n\ttype: string;\n\tenabled: boolean;\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\n\tlabelConfig?: LayerLabelConfig;\n}\n\nexport type MapLayer =\n\t| CustomBoundaryLayer\n\t| ThematicLayerConfig\n\t| CustomPointLayer\n\t| CustomGoogleEngineLayer;\n\nexport interface MapLayerProps {\n\tenabled: boolean;\n\ttype: \"boundary\" | \"thematic\" | \"external\" | \"point\" | \"earthEngine\";\n\tlayer: MapLayer;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/MapLayer/interfaces/index.ts"],"names":[],"mappings":"AAUO,MAAM,6BAAA,GAAgC;AAAA,EAC5C,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACD","file":"index.js","sourcesContent":["import type { Legend } from \"@hisptz/dhis2-utils\";\nimport { MapOrgUnit, PointOrgUnit } from \"../../../interfaces\";\nimport { LegendColorScale } from \"../../../utils\";\nimport { EarthEngineOptions } from \"../components/GoogleEngineLayer/interfaces\";\nimport { EarthEngine } from \"../components/GoogleEngineLayer/services/engine.js\";\nimport type { LeafletEventHandlerFnMap, LeafletMouseEvent } from \"leaflet\";\n\nexport type BoundaryLayerType = \"basemap\" | \"overlay\";\nexport type ThematicLayerType = \"choropleth\" | \"bubble\";\n\nexport const SUPPORTED_EARTH_ENGINE_LAYERS = [\n\t\"population\",\n\t\"footprints\",\n\t\"elevation\",\n\t\"landCover\",\n];\n\nexport type GoogleEngineLayerType =\n\t| \"population\"\n\t| \"footprints\"\n\t| \"elevation\"\n\t| \"landCover\";\n\nexport interface CustomBoundaryLayer extends CustomMapLayer {\n\tid: string;\n\ttype: BoundaryLayerType;\n\tenabled: boolean;\n}\n\nexport interface EarthEngineLayerConfig extends CustomMapLayer {\n\ttype: GoogleEngineLayerType;\n\taggregations?: string[];\n\tname?: string;\n\tfilters?: {\n\t\tperiod: string;\n\t};\n\tparams?: {\n\t\tmin: number;\n\t\tmax: number;\n\t\tpalette?: string;\n\t};\n}\n\nexport interface CustomGoogleEngineLayer extends CustomMapLayer {\n\ttype: GoogleEngineLayerType;\n\toptions: EarthEngineOptions;\n\taggregations?: string[];\n\tname: string;\n\turl: string;\n\tengine?: EarthEngine;\n}\n\nexport interface CustomPointLayer extends CustomMapLayer {\n\tid: string;\n\ttype: \"point\";\n\tlabel?: string;\n\tlevel?: string | number;\n\tgroup?: string;\n\tstyle?: {\n\t\ticon?: string;\n\t\tgroupSet?: string;\n\t\torgUnitGroups?: Array<{ name: string; symbol: string }>;\n\t};\n\tpoints?: Array<PointOrgUnit>;\n}\n\nexport type DataItemType = \"dataElement\" | \"indicator\" | \"programIndicator\";\n\nexport interface ThematicLayerDataItem {\n\tid: string;\n\tdisplayName: string;\n\ttype: DataItemType;\n\tlegendSet?: string;\n\tlegendConfig?: {\n\t\tcolorClass: LegendColorScale;\n\t\tscale: number;\n\t};\n}\n\nexport interface ThematicLayerControl {\n\tposition: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\";\n\tenabled: boolean;\n}\n\nexport interface ThematicLayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem: ThematicLayerDataItem;\n}\n\nexport interface ThematicLayerRawData {\n\torgUnit: string;\n\tdata?: number;\n\tdataItem: string;\n}\n\nexport interface CustomChoroplethLayer extends CustomMapLayer {\n\tenabled: boolean;\n\tname?: string;\n\tdata: ThematicLayerData[];\n\tdataItem: ThematicLayerDataItem;\n\ttype: \"choropleth\";\n\tcontrol?: ThematicLayerControl;\n\tlegends?: Legend[];\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n}\n\nexport interface CustomBubbleLayer extends CustomMapLayer {\n\tenabled: boolean;\n\tname?: string;\n\tdata: ThematicLayerData[];\n\tdataItem: ThematicLayerDataItem;\n\ttype: \"bubble\";\n\tcontrol?: ThematicLayerControl;\n\tlegends?: Legend[];\n\tradius?: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n}\n\nexport type CustomThematicLayer = CustomBubbleLayer | CustomChoroplethLayer;\n\ninterface LayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem?: ThematicLayerDataItem;\n}\n\nexport type LayerLabelConfig = {\n\tlabels: boolean;\n\tlabelFontWeight: string;\n\tlabelTemplate: string;\n};\n\nexport interface ThematicLayerConfig {\n\tid: string;\n\tdata?: ThematicLayerRawData[];\n\tenabled: boolean;\n\tname?: string;\n\tdataItem: ThematicLayerDataItem;\n\ttype: ThematicLayerType;\n\tcontrol?: ThematicLayerControl;\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\n\tlabelConfig?: LayerLabelConfig;\n\tradius?: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n}\n\nexport interface CustomMapLayer {\n\tid: string;\n\ttype: string;\n\tenabled: boolean;\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\n\tlabelConfig?: LayerLabelConfig;\n}\n\nexport type MapLayer =\n\t| CustomBoundaryLayer\n\t| ThematicLayerConfig\n\t| CustomPointLayer\n\t| CustomGoogleEngineLayer;\n\nexport interface MapLayerProps {\n\tenabled: boolean;\n\ttype: \"boundary\" | \"thematic\" | \"external\" | \"point\" | \"earthEngine\";\n\tlayer: MapLayer;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.tsx"],"names":["pe","ou","row","ouGroup"],"mappings":"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","file":"index.js","sourcesContent":["import {\n\tcompact,\n\tdifferenceBy,\n\tfind,\n\thead,\n\tisEmpty,\n\tlast,\n\tsortBy,\n} from \"lodash\";\nimport { useMapOrganisationUnit, useMapPeriods } from \"../../../hooks/index.js\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tgenerateLegends,\n\tgetOrgUnitsSelection,\n\tsanitizeDate,\n\tsanitizeOrgUnits,\n\ttoGeoJson,\n} from \"../../../../../utils/map.js\";\nimport { useDataEngine } from \"@dhis2/app-runtime\";\nimport {\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tEarthEngineLayerConfig,\n\tThematicLayerConfig,\n} from \"../../../../MapLayer/interfaces\";\nimport {\n\ttype MapAnalyticsOptions,\n\tMapOrgUnit,\n\tPointOrgUnit,\n} from \"../../../../../interfaces/index.js\";\nimport { asyncify, map } from \"async-es\";\nimport { LegendSet } from \"@hisptz/dhis2-utils\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n} from \"../../../../../utils/colors.js\";\nimport { useGoogleEngineToken } from \"../../../../MapLayer/components/GoogleEngineLayer/hooks/index.js\";\nimport { useBoundaryData } from \"../../../../MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js\";\nimport { EarthEngine } from \"../../../../MapLayer/components/GoogleEngineLayer/services/engine.js\";\nimport { EARTH_ENGINE_LAYERS } from \"../../../../MapLayer/components/GoogleEngineLayer/constants/index.js\";\nimport { EarthEngineOptions } from \"../../../../MapLayer/components/GoogleEngineLayer/interfaces/index.js\";\n\nconst analyticsQuery = {\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ ou, pe, dx, startDate, endDate, analyticsOptions }: any) => {\n\t\t\tconst peDimension = !isEmpty(pe)\n\t\t\t\t? `pe:${pe?.join(\";\")}`\n\t\t\t\t: undefined;\n\t\t\tconst ouDimension = !isEmpty(ou)\n\t\t\t\t? `ou:${ou?.join(\";\")}`\n\t\t\t\t: undefined;\n\t\t\tconst dxDimension = !isEmpty(dx)\n\t\t\t\t? `dx:${dx?.join(\";\")}`\n\t\t\t\t: undefined;\n\n\t\t\treturn {\n\t\t\t\tdimension: compact([dxDimension, peDimension, ouDimension]),\n\t\t\t\tstartDate,\n\t\t\t\tendDate,\n\t\t\t\tdisplayProperty: \"NAME\",\n\t\t\t\t...(analyticsOptions ?? {}),\n\t\t\t};\n\t\t},\n\t},\n};\nconst query = {\n\tlayer: {\n\t\tresource: \"geoFeatures\",\n\t\tparams: ({ ous }: any) => ({\n\t\t\tou: `ou:${ous.join(\";\")}`,\n\t\t}),\n\t},\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ ous }: any) => ({\n\t\t\tdimension: [\n\t\t\t\t`ou:${ous.join(\";\")}`,\n\t\t\t\t`pe:${new Date().getFullYear()}`,\n\t\t\t],\n\t\t\tskipData: true,\n\t\t\thierarchyMeta: true,\n\t\t}),\n\t},\n};\nconst groupSetQuery = {\n\tgroupSet: {\n\t\tresource: \"organisationUnitGroupSets\",\n\t\tid: ({ groupSet }: any) => groupSet,\n\t\tparams: {\n\t\t\tfields: [\n\t\t\t\t\"organisationUnitGroups[name,color,symbol,organisationUnits[id]]\",\n\t\t\t],\n\t\t},\n\t},\n};\nconst legendSetsQuery = {\n\tlegendSets: {\n\t\tresource: \"legendSets\",\n\t\tid: ({ id }: any) => id,\n\t\tparams: {\n\t\t\tfields: [\n\t\t\t\t\"id\",\n\t\t\t\t\"displayName\",\n\t\t\t\t\"legends[id,code,startValue,endValue,color]\",\n\t\t\t],\n\t\t},\n\t},\n};\n\nexport function useThematicLayers({\n\tanalyticsOptions,\n}: {\n\tanalyticsOptions?: MapAnalyticsOptions;\n}): any {\n\tconst engine = useDataEngine();\n\tconst [loading, setLoading] = useState(false);\n\tconst { orgUnits, orgUnitSelection } = useMapOrganisationUnit();\n\tconst { periods, range } = useMapPeriods() ?? {};\n\tconst ou = useMemo(\n\t\t() => getOrgUnitsSelection(orgUnitSelection),\n\t\t[orgUnitSelection],\n\t);\n\tconst pe = useMemo(() => periods?.map((pe: any) => pe.id), [periods]);\n\n\tconst { startDate, endDate } = useMemo(() => {\n\t\tif (!range) {\n\t\t\treturn {\n\t\t\t\tstartDate: undefined,\n\t\t\t\tendDate: undefined,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tstartDate: sanitizeDate(range.start.toDateString()),\n\t\t\tendDate: sanitizeDate(range.end.toDateString()),\n\t\t};\n\t}, [range]);\n\tconst sanitizeData = (data: any, layer: ThematicLayerConfig) => {\n\t\tif (data) {\n\t\t\tconst { analytics } = data as any;\n\t\t\tconst rows = analytics?.rows;\n\t\t\tconst ouIndex = analytics.headers.findIndex(\n\t\t\t\t(header: any) => header.name === \"ou\",\n\t\t\t);\n\t\t\tconst dxIndex = analytics.headers.findIndex(\n\t\t\t\t(header: any) => header.name === \"dx\",\n\t\t\t);\n\t\t\tconst valueIndex = analytics.headers.findIndex(\n\t\t\t\t(header: any) => header.name === \"value\",\n\t\t\t);\n\n\t\t\tif (!isEmpty(rows)) {\n\t\t\t\treturn sortBy(\n\t\t\t\t\torgUnits?.map((ou: MapOrgUnit) => {\n\t\t\t\t\t\tconst row = rows.find(\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[ouIndex] === ou.id &&\n\t\t\t\t\t\t\t\trow[dxIndex] === layer.dataItem.id,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\torgUnit: ou,\n\t\t\t\t\t\t\tdata: row ? parseFloat(row[valueIndex]) : undefined,\n\t\t\t\t\t\t\tdataItem: {\n\t\t\t\t\t\t\t\t...layer.dataItem,\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\t[\"data\"],\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn [];\n\t\t}\n\t\treturn [];\n\t};\n\n\tconst sanitizeLegends = async (\n\t\tlayers: CustomThematicLayer[],\n\t): Promise<CustomThematicLayer[]> => {\n\t\treturn (await map(\n\t\t\tlayers,\n\t\t\tasyncify(async (layer: CustomThematicLayer) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst legends = [];\n\t\t\t\t\tif (layer.dataItem.legendSet) {\n\t\t\t\t\t\tconst legendSetData = await engine.query(\n\t\t\t\t\t\t\tlegendSetsQuery,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvariables: {\n\t\t\t\t\t\t\t\t\tid: layer.dataItem.legendSet,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst legendSet: LegendSet =\n\t\t\t\t\t\t\tlegendSetData?.legendSets as LegendSet;\n\t\t\t\t\t\tif (legendSet) {\n\t\t\t\t\t\t\tlegends.push(...legendSet.legends);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst { scale, colorClass } = layer.dataItem\n\t\t\t\t\t\t\t.legendConfig ?? {\n\t\t\t\t\t\t\tscale: defaultClasses,\n\t\t\t\t\t\t\tcolorClass: defaultColorScaleName,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst sortedData = sortBy(\n\t\t\t\t\t\t\tlayer.data.filter((datum) => !!datum.data),\n\t\t\t\t\t\t\t\"data\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst autoLegends = generateLegends(\n\t\t\t\t\t\t\tlast(sortedData)?.data ?? 0,\n\t\t\t\t\t\t\thead(sortedData)?.data ?? 0,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclassesCount: scale,\n\t\t\t\t\t\t\t\tcolorClass,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tlegends.push(...autoLegends);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...layer,\n\t\t\t\t\t\tlegends,\n\t\t\t\t\t};\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn layer;\n\t\t\t\t}\n\t\t\t}),\n\t\t)) as CustomThematicLayer[];\n\t};\n\n\tconst sanitizeLayers = async (\n\t\tlayers: ThematicLayerConfig[],\n\t): Promise<CustomThematicLayer[]> => {\n\t\ttry {\n\t\t\tsetLoading(true);\n\t\t\tconst layersWithoutData = layers?.filter((layer) => !layer.data);\n\t\t\tconst layersWithData = differenceBy(\n\t\t\t\tlayers,\n\t\t\t\tlayersWithoutData,\n\t\t\t\t\"id\",\n\t\t\t);\n\t\t\tconst dx = layersWithoutData.map((layer) => layer.dataItem.id);\n\t\t\tlet sanitizedLayersWithData: any = [];\n\n\t\t\tif (!isEmpty(dx)) {\n\t\t\t\tconst data = await engine.query(analyticsQuery, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tdx,\n\t\t\t\t\t\tou,\n\t\t\t\t\t\tpe,\n\t\t\t\t\t\tstartDate,\n\t\t\t\t\t\tendDate,\n\t\t\t\t\t\tanalyticsOptions,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tsanitizedLayersWithData = layersWithoutData.map((layer) => ({\n\t\t\t\t\t...layer,\n\t\t\t\t\tname:\n\t\t\t\t\t\tlayer?.name ?? layer?.dataItem?.displayName ?? layer.id,\n\t\t\t\t\tdata: sanitizeData(data, layer),\n\t\t\t\t}));\n\t\t\t}\n\t\t\tconst sanitizedLayersWithOrgUnits = layersWithData.map((layer) => ({\n\t\t\t\t...layer,\n\t\t\t\tdata: layer.data?.map((datum) => ({\n\t\t\t\t\t...datum,\n\t\t\t\t\torgUnit: find(orgUnits, [\n\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\tdatum.orgUnit,\n\t\t\t\t\t]) as MapOrgUnit,\n\t\t\t\t\tdataItem: layer.dataItem,\n\t\t\t\t\tname:\n\t\t\t\t\t\tlayer?.name ?? layer?.dataItem?.displayName ?? layer.id,\n\t\t\t\t})),\n\t\t\t}));\n\t\t\tsetLoading(false);\n\t\t\treturn await sanitizeLegends([\n\t\t\t\t...sanitizedLayersWithData,\n\t\t\t\t...sanitizedLayersWithOrgUnits,\n\t\t\t]);\n\t\t} catch (e: any) {\n\t\t\tconsole.error(`Error getting thematic layers`, e.details);\n\t\t\tsetLoading(false);\n\t\t\treturn [];\n\t\t}\n\t};\n\n\treturn {\n\t\tsanitizeLayers,\n\t\tloading,\n\t};\n}\n\nexport function usePointLayer() {\n\tconst engine = useDataEngine();\n\tconst { orgUnitSelection } = useMapOrganisationUnit();\n\tconst [loading, setLoading] = useState(false);\n\n\tconst sanitizePointData = useCallback(\n\t\t(orgUnitData: any, groupSetData: any): PointOrgUnit[] => {\n\t\t\tconst { analytics, layer } = (orgUnitData as any) ?? {};\n\t\t\tconst rawOrgUnits = sanitizeOrgUnits(analytics?.metaData);\n\t\t\tconst geoJSONObjects = toGeoJson(\n\t\t\t\tlayer?.filter((bound: any) => bound.co),\n\t\t\t);\n\t\t\treturn compact(\n\t\t\t\trawOrgUnits.map((orgUnit: any) => {\n\t\t\t\t\tconst geoJSONObject: any = geoJSONObjects?.find(\n\t\t\t\t\t\t(geoJSON: any) => geoJSON.properties.id === orgUnit.id,\n\t\t\t\t\t);\n\t\t\t\t\tconst orgUnitGroups: any =\n\t\t\t\t\t\t(groupSetData?.groupSet as any)\n\t\t\t\t\t\t\t?.organisationUnitGroups ?? [];\n\t\t\t\t\tconst ouGroup = find(\n\t\t\t\t\t\torgUnitGroups,\n\t\t\t\t\t\t(ouGroup) =>\n\t\t\t\t\t\t\t!!find(ouGroup?.organisationUnits ?? [], [\n\t\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\t\torgUnit.id,\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t!geoJSONObject ||\n\t\t\t\t\t\tgeoJSONObject.properties.type !== \"Point\"\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...orgUnit,\n\t\t\t\t\t\tgeoJSON: geoJSONObject,\n\t\t\t\t\t\tlevel: geoJSONObject.properties.level,\n\t\t\t\t\t\ticon: {\n\t\t\t\t\t\t\ttype: \"groupIcon\",\n\t\t\t\t\t\t\ticon: ouGroup?.symbol,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t\t[],\n\t);\n\n\tconst sanitizeLayer = useCallback(\n\t\tasync (\n\t\t\tlayer: CustomPointLayer,\n\t\t): Promise<CustomPointLayer | undefined> => {\n\t\t\ttry {\n\t\t\t\tif (!layer.level && !layer.group) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsetLoading(true);\n\t\t\t\tconst level = layer.level ? `LEVEL-${layer.level}` : undefined;\n\t\t\t\tconst group = layer.group\n\t\t\t\t\t? `OU_GROUP-${layer.group}`\n\t\t\t\t\t: undefined;\n\t\t\t\tconst ous = [\n\t\t\t\t\t...getOrgUnitsSelection(orgUnitSelection),\n\t\t\t\t\tlevel,\n\t\t\t\t\tgroup,\n\t\t\t\t];\n\n\t\t\t\tconst pointData = await engine.query(query, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tous,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tconst groupSetData = await engine.query(groupSetQuery, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tgroupSet: layer.style?.groupSet,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tconst sanitizedOrgUnitData = sanitizePointData(\n\t\t\t\t\tpointData,\n\t\t\t\t\tgroupSetData,\n\t\t\t\t);\n\n\t\t\t\tconst orgUnitGroups =\n\t\t\t\t\t(groupSetData?.groupSet as any)?.organisationUnitGroups ??\n\t\t\t\t\t[];\n\n\t\t\t\tconst sanitizedOrgUnitGroups = orgUnitGroups.map(\n\t\t\t\t\t(ouGroup: any) => ({\n\t\t\t\t\t\t...ouGroup,\n\t\t\t\t\t\torganisationUnits: undefined,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn {\n\t\t\t\t\t...layer,\n\t\t\t\t\tpoints: sanitizedOrgUnitData,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...layer.style,\n\t\t\t\t\t\torgUnitGroups: sanitizedOrgUnitGroups,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} catch (e: any) {\n\t\t\t\tsetLoading(false);\n\t\t\t\tconsole.error(`Error getting point layer`, e.details);\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\n\treturn {\n\t\tloading,\n\t\tsanitizeLayer,\n\t};\n}\n\nexport function useGoogleEngineLayers() {\n\tconst { refresh } = useGoogleEngineToken();\n\tconst orgUnits = useBoundaryData();\n\n\tasync function getImageUrl(\n\t\tearthEngine: EarthEngine,\n\t\t{ filters }: EarthEngineLayerConfig,\n\t): Promise<string | undefined> {\n\t\tif (earthEngine.initialized) {\n\t\t\ttry {\n\t\t\t\tearthEngine.setOrgUnits(orgUnits ?? []);\n\t\t\t\tconst period = filters?.period;\n\t\t\t\tif (period) {\n\t\t\t\t\tearthEngine.setPeriod(period);\n\t\t\t\t}\n\t\t\t\treturn earthEngine.url();\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst sanitizeLayers = useCallback(\n\t\tasync (\n\t\t\tlayers: EarthEngineLayerConfig[],\n\t\t): Promise<CustomGoogleEngineLayer[]> => {\n\t\t\tif (isEmpty(layers)) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst { token } = await refresh();\n\t\t\t\tif (!token) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`Google token not available in this instance`,\n\t\t\t\t\t);\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tawait EarthEngine.setToken(token, refresh);\n\t\t\t\treturn map(\n\t\t\t\t\tlayers,\n\t\t\t\t\tasyncify(async (layer: EarthEngineLayerConfig) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst defaultOptions: any =\n\t\t\t\t\t\t\t\tfind(EARTH_ENGINE_LAYERS, [\"id\", layer.type]) ??\n\t\t\t\t\t\t\t\t{};\n\t\t\t\t\t\t\tconst options: EarthEngineOptions = {\n\t\t\t\t\t\t\t\t...defaultOptions,\n\t\t\t\t\t\t\t\taggregations:\n\t\t\t\t\t\t\t\t\tlayer.aggregations ??\n\t\t\t\t\t\t\t\t\tdefaultOptions?.aggregations,\n\t\t\t\t\t\t\t\tparams: layer.params ?? defaultOptions?.params,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst updatedLayer = {\n\t\t\t\t\t\t\t\t...layer,\n\t\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst earthEngine = new EarthEngine({ options });\n\t\t\t\t\t\t\tconst url = await getImageUrl(\n\t\t\t\t\t\t\t\tearthEngine,\n\t\t\t\t\t\t\t\tupdatedLayer,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...updatedLayer,\n\t\t\t\t\t\t\t\tengine: earthEngine,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t} catch (e: any) {\n\t\t\t\tconsole.log(e);\n\t\t\t\tconsole.error(`Error getting thematic layers`, e.details);\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\t\t[refresh],\n\t);\n\n\treturn {\n\t\tsanitizeLayers,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.tsx"],"names":["pe","ou","row","ouGroup"],"mappings":"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","file":"index.js","sourcesContent":["import {\n\tcompact,\n\tdifferenceBy,\n\tfind,\n\thead,\n\tisEmpty,\n\tlast,\n\tsortBy,\n} from \"lodash\";\nimport { useMapOrganisationUnit, useMapPeriods } from \"../../../hooks/index.js\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tgenerateLegends,\n\tgetOrgUnitsSelection,\n\tsanitizeDate,\n\tsanitizeOrgUnits,\n\ttoGeoJson,\n} from \"../../../../../utils/map.js\";\nimport { useDataEngine } from \"@dhis2/app-runtime\";\nimport {\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tEarthEngineLayerConfig,\n\tThematicLayerConfig,\n} from \"../../../../MapLayer/interfaces\";\nimport {\n\ttype MapAnalyticsOptions,\n\tMapOrgUnit,\n\tPointOrgUnit,\n} from \"../../../../../interfaces/index.js\";\nimport { asyncify, map } from \"async-es\";\nimport { LegendSet } from \"@hisptz/dhis2-utils\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n} from \"../../../../../utils/colors.js\";\nimport { useGoogleEngineToken } from \"../../../../MapLayer/components/GoogleEngineLayer/hooks/index.js\";\nimport { useBoundaryData } from \"../../../../MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js\";\nimport { EarthEngine } from \"../../../../MapLayer/components/GoogleEngineLayer/services/engine.js\";\nimport { EARTH_ENGINE_LAYERS } from \"../../../../MapLayer/components/GoogleEngineLayer/constants/index.js\";\nimport { EarthEngineOptions } from \"../../../../MapLayer/components/GoogleEngineLayer/interfaces/index.js\";\n\nconst analyticsQuery = {\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ ou, pe, dx, startDate, endDate, analyticsOptions }: any) => {\n\t\t\tconst peDimension = !isEmpty(pe)\n\t\t\t\t? `pe:${pe?.join(\";\")}`\n\t\t\t\t: undefined;\n\t\t\tconst ouDimension = !isEmpty(ou)\n\t\t\t\t? `ou:${ou?.join(\";\")}`\n\t\t\t\t: undefined;\n\t\t\tconst dxDimension = !isEmpty(dx)\n\t\t\t\t? `dx:${dx?.join(\";\")}`\n\t\t\t\t: undefined;\n\n\t\t\treturn {\n\t\t\t\tdimension: compact([dxDimension, peDimension, ouDimension]),\n\t\t\t\tstartDate,\n\t\t\t\tendDate,\n\t\t\t\tdisplayProperty: \"NAME\",\n\t\t\t\t...(analyticsOptions ?? {}),\n\t\t\t};\n\t\t},\n\t},\n};\nconst query = {\n\tlayer: {\n\t\tresource: \"geoFeatures\",\n\t\tparams: ({ ous }: any) => ({\n\t\t\tou: `ou:${ous.join(\";\")}`,\n\t\t}),\n\t},\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ ous }: any) => ({\n\t\t\tdimension: [\n\t\t\t\t`ou:${ous.join(\";\")}`,\n\t\t\t\t`pe:${new Date().getFullYear()}`,\n\t\t\t],\n\t\t\tskipData: true,\n\t\t\thierarchyMeta: true,\n\t\t}),\n\t},\n};\nconst groupSetQuery = {\n\tgroupSet: {\n\t\tresource: \"organisationUnitGroupSets\",\n\t\tid: ({ groupSet }: any) => groupSet,\n\t\tparams: {\n\t\t\tfields: [\n\t\t\t\t\"organisationUnitGroups[name,color,symbol,organisationUnits[id]]\",\n\t\t\t],\n\t\t},\n\t},\n};\nconst legendSetsQuery = {\n\tlegendSets: {\n\t\tresource: \"legendSets\",\n\t\tid: ({ id }: any) => id,\n\t\tparams: {\n\t\t\tfields: [\n\t\t\t\t\"id\",\n\t\t\t\t\"displayName\",\n\t\t\t\t\"legends[id,code,startValue,endValue,color]\",\n\t\t\t],\n\t\t},\n\t},\n};\n\nexport function useThematicLayers({\n\tanalyticsOptions,\n}: {\n\tanalyticsOptions?: MapAnalyticsOptions;\n}): any {\n\tconst engine = useDataEngine();\n\tconst [loading, setLoading] = useState(false);\n\tconst { orgUnits, orgUnitSelection } = useMapOrganisationUnit();\n\tconst { periods, range } = useMapPeriods() ?? {};\n\tconst ou = useMemo(\n\t\t() => getOrgUnitsSelection(orgUnitSelection),\n\t\t[orgUnitSelection],\n\t);\n\tconst pe = useMemo(() => periods?.map((pe: any) => pe.id), [periods]);\n\n\tconst { startDate, endDate } = useMemo(() => {\n\t\tif (!range) {\n\t\t\treturn {\n\t\t\t\tstartDate: undefined,\n\t\t\t\tendDate: undefined,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tstartDate: sanitizeDate(range.start.toDateString()),\n\t\t\tendDate: sanitizeDate(range.end.toDateString()),\n\t\t};\n\t}, [range]);\n\tconst sanitizeData = (data: any, layer: ThematicLayerConfig) => {\n\t\tif (data) {\n\t\t\tconst { analytics } = data as any;\n\t\t\tconst rows = analytics?.rows;\n\t\t\tconst ouIndex = analytics.headers.findIndex(\n\t\t\t\t(header: any) => header.name === \"ou\",\n\t\t\t);\n\t\t\tconst dxIndex = analytics.headers.findIndex(\n\t\t\t\t(header: any) => header.name === \"dx\",\n\t\t\t);\n\t\t\tconst valueIndex = analytics.headers.findIndex(\n\t\t\t\t(header: any) => header.name === \"value\",\n\t\t\t);\n\n\t\t\tif (!isEmpty(rows)) {\n\t\t\t\treturn sortBy(\n\t\t\t\t\torgUnits?.map((ou: MapOrgUnit) => {\n\t\t\t\t\t\tconst row = rows.find(\n\t\t\t\t\t\t\t(row: any) =>\n\t\t\t\t\t\t\t\trow[ouIndex] === ou.id &&\n\t\t\t\t\t\t\t\trow[dxIndex] === layer.dataItem.id,\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\torgUnit: ou,\n\t\t\t\t\t\t\tdata: row ? parseFloat(row[valueIndex]) : undefined,\n\t\t\t\t\t\t\tdataItem: {\n\t\t\t\t\t\t\t\t...layer.dataItem,\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\t[\"data\"],\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn [];\n\t\t}\n\t\treturn [];\n\t};\n\n\tconst sanitizeLegends = async (\n\t\tlayers: CustomThematicLayer[],\n\t): Promise<CustomThematicLayer[]> => {\n\t\treturn (await map(\n\t\t\tlayers,\n\t\t\tasyncify(async (layer: CustomThematicLayer) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst legends = [];\n\t\t\t\t\tif (layer.dataItem.legendSet) {\n\t\t\t\t\t\tconst legendSetData = await engine.query(\n\t\t\t\t\t\t\tlegendSetsQuery,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvariables: {\n\t\t\t\t\t\t\t\t\tid: layer.dataItem.legendSet,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst legendSet: LegendSet =\n\t\t\t\t\t\t\tlegendSetData?.legendSets as LegendSet;\n\t\t\t\t\t\tif (legendSet) {\n\t\t\t\t\t\t\tlegends.push(...legendSet.legends);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst { scale, colorClass } = layer.dataItem\n\t\t\t\t\t\t\t.legendConfig ?? {\n\t\t\t\t\t\t\tscale: defaultClasses,\n\t\t\t\t\t\t\tcolorClass: defaultColorScaleName,\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst sortedData = sortBy(\n\t\t\t\t\t\t\tlayer.data.filter((datum) => !!datum.data),\n\t\t\t\t\t\t\t\"data\",\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst autoLegends = generateLegends(\n\t\t\t\t\t\t\tlast(sortedData)?.data ?? 0,\n\t\t\t\t\t\t\thead(sortedData)?.data ?? 0,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tclassesCount: scale,\n\t\t\t\t\t\t\t\tcolorClass,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tlegends.push(...autoLegends);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...layer,\n\t\t\t\t\t\tlegends,\n\t\t\t\t\t};\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn layer;\n\t\t\t\t}\n\t\t\t}),\n\t\t)) as CustomThematicLayer[];\n\t};\n\n\tconst sanitizeLayers = async (\n\t\tlayers: ThematicLayerConfig[],\n\t): Promise<CustomThematicLayer[]> => {\n\t\ttry {\n\t\t\tsetLoading(true);\n\t\t\tconst layersWithoutData = layers?.filter((layer) => !layer.data);\n\t\t\tconst layersWithData = differenceBy(\n\t\t\t\tlayers,\n\t\t\t\tlayersWithoutData,\n\t\t\t\t\"id\",\n\t\t\t);\n\t\t\tconst dx = layersWithoutData.map((layer) => layer.dataItem.id);\n\t\t\tlet sanitizedLayersWithData: any = [];\n\n\t\t\tif (!isEmpty(dx)) {\n\t\t\t\tconst data = await engine.query(analyticsQuery, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tdx,\n\t\t\t\t\t\tou,\n\t\t\t\t\t\tpe,\n\t\t\t\t\t\tstartDate,\n\t\t\t\t\t\tendDate,\n\t\t\t\t\t\tanalyticsOptions,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tsanitizedLayersWithData = layersWithoutData.map((layer) => ({\n\t\t\t\t\t...layer,\n\t\t\t\t\tname:\n\t\t\t\t\t\tlayer?.name ?? layer?.dataItem?.displayName ?? layer.id,\n\t\t\t\t\tdata: sanitizeData(data, layer),\n\t\t\t\t}));\n\t\t\t}\n\t\t\tconst sanitizedLayersWithOrgUnits = layersWithData.map((layer) => ({\n\t\t\t\t...layer,\n\t\t\t\tdata: layer.data?.map((datum) => ({\n\t\t\t\t\t...datum,\n\t\t\t\t\torgUnit: find(orgUnits, [\n\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\tdatum.orgUnit,\n\t\t\t\t\t]) as MapOrgUnit,\n\t\t\t\t\tdataItem: layer.dataItem,\n\t\t\t\t\tname:\n\t\t\t\t\t\tlayer?.name ?? layer?.dataItem?.displayName ?? layer.id,\n\t\t\t\t})),\n\t\t\t}));\n\t\t\tsetLoading(false);\n\t\t\treturn await sanitizeLegends([\n\t\t\t\t...sanitizedLayersWithData,\n\t\t\t\t...sanitizedLayersWithOrgUnits,\n\t\t\t]);\n\t\t} catch (e: any) {\n\t\t\tconsole.error(`Error getting thematic layers`, e.details);\n\t\t\tsetLoading(false);\n\t\t\treturn [];\n\t\t}\n\t};\n\n\treturn {\n\t\tsanitizeLayers,\n\t\tloading,\n\t};\n}\n\nexport function usePointLayer() {\n\tconst engine = useDataEngine();\n\tconst { orgUnitSelection } = useMapOrganisationUnit();\n\tconst [loading, setLoading] = useState(false);\n\n\tconst sanitizePointData = useCallback(\n\t\t(orgUnitData: any, groupSetData: any): PointOrgUnit[] => {\n\t\t\tconst { analytics, layer } = (orgUnitData as any) ?? {};\n\t\t\tconst rawOrgUnits = sanitizeOrgUnits(analytics?.metaData);\n\t\t\tconst geoJSONObjects = toGeoJson(\n\t\t\t\tlayer?.filter((bound: any) => bound.co),\n\t\t\t);\n\t\t\treturn compact(\n\t\t\t\trawOrgUnits.map((orgUnit: any) => {\n\t\t\t\t\tconst geoJSONObject: any = geoJSONObjects?.find(\n\t\t\t\t\t\t(geoJSON: any) => geoJSON.properties.id === orgUnit.id,\n\t\t\t\t\t);\n\t\t\t\t\tconst orgUnitGroups: any =\n\t\t\t\t\t\t(groupSetData?.groupSet as any)\n\t\t\t\t\t\t\t?.organisationUnitGroups ?? [];\n\t\t\t\t\tconst ouGroup = find(\n\t\t\t\t\t\torgUnitGroups,\n\t\t\t\t\t\t(ouGroup) =>\n\t\t\t\t\t\t\t!!find(ouGroup?.organisationUnits ?? [], [\n\t\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\t\torgUnit.id,\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t!geoJSONObject ||\n\t\t\t\t\t\tgeoJSONObject.properties.type !== \"Point\"\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...orgUnit,\n\t\t\t\t\t\tgeoJSON: geoJSONObject,\n\t\t\t\t\t\tlevel: geoJSONObject.properties.level,\n\t\t\t\t\t\ticon: {\n\t\t\t\t\t\t\ttype: \"groupIcon\",\n\t\t\t\t\t\t\ticon: ouGroup?.symbol,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t\t[],\n\t);\n\n\tconst sanitizeLayer = useCallback(\n\t\tasync (\n\t\t\tlayer: CustomPointLayer,\n\t\t): Promise<CustomPointLayer | undefined> => {\n\t\t\ttry {\n\t\t\t\tif (!layer.level && !layer.group) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsetLoading(true);\n\t\t\t\tconst level = layer.level ? `LEVEL-${layer.level}` : undefined;\n\t\t\t\tconst group = layer.group\n\t\t\t\t\t? `OU_GROUP-${layer.group}`\n\t\t\t\t\t: undefined;\n\t\t\t\tconst ous = [\n\t\t\t\t\t...getOrgUnitsSelection(orgUnitSelection),\n\t\t\t\t\tlevel,\n\t\t\t\t\tgroup,\n\t\t\t\t];\n\n\t\t\t\tconst pointData = await engine.query(query, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tous,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tconst groupSetData = await engine.query(groupSetQuery, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tgroupSet: layer.style?.groupSet,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tconst sanitizedOrgUnitData = sanitizePointData(\n\t\t\t\t\tpointData,\n\t\t\t\t\tgroupSetData,\n\t\t\t\t);\n\n\t\t\t\tconst orgUnitGroups =\n\t\t\t\t\t(groupSetData?.groupSet as any)?.organisationUnitGroups ??\n\t\t\t\t\t[];\n\n\t\t\t\tconst sanitizedOrgUnitGroups = orgUnitGroups.map(\n\t\t\t\t\t(ouGroup: any) => ({\n\t\t\t\t\t\t...ouGroup,\n\t\t\t\t\t\torganisationUnits: undefined,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\tsetLoading(false);\n\t\t\t\treturn {\n\t\t\t\t\t...layer,\n\t\t\t\t\tpoints: sanitizedOrgUnitData,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...layer.style,\n\t\t\t\t\t\torgUnitGroups: sanitizedOrgUnitGroups,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} catch (e: any) {\n\t\t\t\tsetLoading(false);\n\t\t\t\tconsole.error(`Error getting point layer`, e.details);\n\t\t\t\treturn;\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\n\treturn {\n\t\tloading,\n\t\tsanitizeLayer,\n\t};\n}\n\nexport function useGoogleEngineLayers() {\n\tconst { refresh } = useGoogleEngineToken();\n\tconst orgUnits = useBoundaryData();\n\n\tasync function getImageUrl(\n\t\tearthEngine: EarthEngine,\n\t\t{ filters }: EarthEngineLayerConfig,\n\t): Promise<string | undefined> {\n\t\tif (earthEngine.initialized) {\n\t\t\ttry {\n\t\t\t\tearthEngine.setOrgUnits(orgUnits ?? []);\n\t\t\t\tconst period = filters?.period;\n\t\t\t\tif (period) {\n\t\t\t\t\tearthEngine.setPeriod(period);\n\t\t\t\t}\n\t\t\t\treturn earthEngine.url();\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst sanitizeLayers = useCallback(\n\t\tasync (\n\t\t\tlayers: EarthEngineLayerConfig[],\n\t\t): Promise<CustomGoogleEngineLayer[]> => {\n\t\t\tif (isEmpty(layers)) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst { token } = await refresh();\n\t\t\t\tif (!token) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t`Google token not available in this instance`,\n\t\t\t\t\t);\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t\tawait EarthEngine.setToken(token, refresh);\n\t\t\t\treturn map(\n\t\t\t\t\tlayers,\n\t\t\t\t\tasyncify(async (layer: EarthEngineLayerConfig) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst defaultOptions: any =\n\t\t\t\t\t\t\t\tfind(EARTH_ENGINE_LAYERS, [\"id\", layer.type]) ??\n\t\t\t\t\t\t\t\t{};\n\t\t\t\t\t\t\tconst options: EarthEngineOptions = {\n\t\t\t\t\t\t\t\t...defaultOptions,\n\t\t\t\t\t\t\t\taggregations:\n\t\t\t\t\t\t\t\t\tlayer.aggregations ??\n\t\t\t\t\t\t\t\t\tdefaultOptions?.aggregations,\n\t\t\t\t\t\t\t\tparams: layer.params ?? defaultOptions?.params,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst updatedLayer = {\n\t\t\t\t\t\t\t\t...layer,\n\t\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst earthEngine = new EarthEngine({ options });\n\t\t\t\t\t\t\tconst url = await getImageUrl(\n\t\t\t\t\t\t\t\tearthEngine,\n\t\t\t\t\t\t\t\tupdatedLayer,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...updatedLayer,\n\t\t\t\t\t\t\t\tengine: earthEngine,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t} catch (e: any) {\n\t\t\t\tconsole.log(e);\n\t\t\t\tconsole.error(`Error getting thematic layers`, e.details);\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\t\t[refresh],\n\t);\n\n\treturn {\n\t\tsanitizeLayers,\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":["updatedLayers"],"mappings":"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","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { LayersControlEvent } from \"leaflet\";\nimport { compact, find, head, set } from \"lodash\";\nimport { type ReactNode, useCallback, useEffect, useState } from \"react\";\nimport { useMapEvents } from \"react-leaflet\";\nimport { MapLayersContext } from \"../../../../state\";\nimport { MapLayerConfig } from \"../../../MapArea/interfaces\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomGoogleEngineLayer,\n\tCustomMapLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tThematicLayerConfig,\n} from \"../../../MapLayer/interfaces\";\nimport { useMapOrganisationUnit, useMapPeriods } from \"../../hooks\";\nimport {\n\tuseGoogleEngineLayers,\n\tusePointLayer,\n\tuseThematicLayers,\n} from \"./hooks\";\nimport type { MapAnalyticsOptions } from \"../../../../interfaces\";\n\nexport function MapLayersProvider({\n\tlayers,\n\tchildren,\n\tanalyticsOptions,\n}: {\n\tlayers: MapLayerConfig;\n\tchildren: ReactNode;\n\tanalyticsOptions?: MapAnalyticsOptions;\n}) {\n\tconst period = useMapPeriods();\n\tconst orgUnit = useMapOrganisationUnit();\n\tconst [updatedLayers, setUpdatedLayers] = useState<\n\t\tArray<\n\t\t\t| CustomThematicLayer\n\t\t\t| CustomBoundaryLayer\n\t\t\t| CustomPointLayer\n\t\t\t| CustomGoogleEngineLayer\n\t\t>\n\t>([]);\n\tconst { sanitizeLayers: sanitizeThematicLayers, error } = useThematicLayers(\n\t\t{\n\t\t\tanalyticsOptions,\n\t\t},\n\t);\n\tconst { sanitizeLayer: sanitizePointLayer } = usePointLayer();\n\tconst { sanitizeLayers: sanitizeEarthEngineLayers } =\n\t\tuseGoogleEngineLayers();\n\tconst [loading, setLoading] = useState(false);\n\n\tuseMapEvents({\n\t\toverlayremove: (event) => {\n\t\t\tsetupLayerListeners(\"remove\", event);\n\t\t},\n\t\toverlayadd: (event) => {\n\t\t\tsetupLayerListeners(\"add\", event);\n\t\t},\n\t});\n\n\tconst sanitizeLayers = async () => {\n\t\tsetLoading(true);\n\t\ttry {\n\t\t\tconst {\n\t\t\t\tboundaryLayers,\n\t\t\t\tthematicLayers,\n\t\t\t\tpointLayers,\n\t\t\t\tearthEngineLayers,\n\t\t\t} = layers;\n\t\t\tconst sanitizedThematicLayers = await sanitizeThematicLayers([\n\t\t\t\t...(thematicLayers ?? []),\n\t\t\t] as ThematicLayerConfig[]);\n\t\t\tconst sanitizedBoundaryLayers = (boundaryLayers ??\n\t\t\t\t[]) as CustomBoundaryLayer[];\n\t\t\tconst sanitizedPointLayer = head(pointLayers ?? [])\n\t\t\t\t? await sanitizePointLayer(\n\t\t\t\t\t\thead(pointLayers) as CustomPointLayer,\n\t\t\t\t\t)\n\t\t\t\t: undefined;\n\t\t\tconst sanitizedEarthEngineLayers = await sanitizeEarthEngineLayers([\n\t\t\t\t...(earthEngineLayers ?? []),\n\t\t\t] as unknown as CustomGoogleEngineLayer[]);\n\t\t\tsetUpdatedLayers(\n\t\t\t\tcompact([\n\t\t\t\t\t...(sanitizedBoundaryLayers ?? []),\n\t\t\t\t\t...(sanitizedThematicLayers ?? []),\n\t\t\t\t\tsanitizedPointLayer,\n\t\t\t\t\t...(sanitizedEarthEngineLayers ?? []),\n\t\t\t\t]),\n\t\t\t);\n\t\t} catch (e: any) {\n\t\t\tconsole.error(`Error sanitizing layers`, e.toString());\n\t\t}\n\t\tsetLoading(false);\n\t};\n\n\tconst updateLayer = useCallback(\n\t\t(id: string, updatedLayer: CustomMapLayer) => {\n\t\t\tsetUpdatedLayers((prevLayers) => {\n\t\t\t\tconst updatedLayers = [...prevLayers];\n\t\t\t\tconst layerIndex = updatedLayers.findIndex(\n\t\t\t\t\t(layer) => layer.id === updatedLayer.id,\n\t\t\t\t);\n\t\t\t\tif (layerIndex < 0) {\n\t\t\t\t\treturn prevLayers;\n\t\t\t\t}\n\t\t\t\tset(updatedLayers, layerIndex, updatedLayer);\n\t\t\t\treturn updatedLayers;\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\tuseEffect(() => {\n\t\tsanitizeLayers().catch(console.error);\n\t}, [period, orgUnit]);\n\n\tconst setupLayerListeners = (\n\t\ttype: \"add\" | \"remove\",\n\t\tevent: LayersControlEvent,\n\t) => {\n\t\tconst name = event.name;\n\n\t\tconst layerConfig = find(updatedLayers, (layer: any) => {\n\t\t\tconst nameFromConfig =\n\t\t\t\tlayer?.name ?? layer?.dataItem?.displayname ?? layer?.label;\n\t\t\treturn nameFromConfig === name;\n\t\t});\n\n\t\tif (layerConfig) {\n\t\t\tupdateLayer(layerConfig.id, {\n\t\t\t\t...layerConfig,\n\t\t\t\tenabled: type === \"add\",\n\t\t\t});\n\t\t}\n\t};\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<CircularLoader small />\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<h4>\n\t\t\t\t\t\t{i18n.t(\"Error\")}: {error.message}\n\t\t\t\t\t</h4>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<MapLayersContext.Provider\n\t\t\tvalue={{ layers: updatedLayers, updateLayer }}\n\t\t>\n\t\t\t{children}\n\t\t</MapLayersContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":["updatedLayers"],"mappings":"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","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { LayersControlEvent } from \"leaflet\";\nimport { compact, find, head, set } from \"lodash\";\nimport { type ReactNode, useCallback, useEffect, useState } from \"react\";\nimport { useMapEvents } from \"react-leaflet\";\nimport { MapLayersContext } from \"../../../../state\";\nimport { MapLayerConfig } from \"../../../MapArea/interfaces\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomGoogleEngineLayer,\n\tCustomMapLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tThematicLayerConfig,\n} from \"../../../MapLayer/interfaces\";\nimport { useMapOrganisationUnit, useMapPeriods } from \"../../hooks\";\nimport {\n\tuseGoogleEngineLayers,\n\tusePointLayer,\n\tuseThematicLayers,\n} from \"./hooks\";\nimport type { MapAnalyticsOptions } from \"../../../../interfaces\";\n\nexport function MapLayersProvider({\n\tlayers,\n\tchildren,\n\tanalyticsOptions,\n}: {\n\tlayers: MapLayerConfig;\n\tchildren: ReactNode;\n\tanalyticsOptions?: MapAnalyticsOptions;\n}) {\n\tconst period = useMapPeriods();\n\tconst orgUnit = useMapOrganisationUnit();\n\tconst [updatedLayers, setUpdatedLayers] = useState<\n\t\tArray<\n\t\t\t| CustomThematicLayer\n\t\t\t| CustomBoundaryLayer\n\t\t\t| CustomPointLayer\n\t\t\t| CustomGoogleEngineLayer\n\t\t>\n\t>([]);\n\tconst { sanitizeLayers: sanitizeThematicLayers, error } = useThematicLayers(\n\t\t{\n\t\t\tanalyticsOptions,\n\t\t},\n\t);\n\tconst { sanitizeLayer: sanitizePointLayer } = usePointLayer();\n\tconst { sanitizeLayers: sanitizeEarthEngineLayers } =\n\t\tuseGoogleEngineLayers();\n\tconst [loading, setLoading] = useState(false);\n\n\tuseMapEvents({\n\t\toverlayremove: (event) => {\n\t\t\tsetupLayerListeners(\"remove\", event);\n\t\t},\n\t\toverlayadd: (event) => {\n\t\t\tsetupLayerListeners(\"add\", event);\n\t\t},\n\t});\n\n\tconst sanitizeLayers = async () => {\n\t\tsetLoading(true);\n\t\ttry {\n\t\t\tconst {\n\t\t\t\tboundaryLayers,\n\t\t\t\tthematicLayers,\n\t\t\t\tpointLayers,\n\t\t\t\tearthEngineLayers,\n\t\t\t} = layers;\n\t\t\tconst sanitizedThematicLayers = await sanitizeThematicLayers([\n\t\t\t\t...(thematicLayers ?? []),\n\t\t\t] as ThematicLayerConfig[]);\n\t\t\tconst sanitizedBoundaryLayers = (boundaryLayers ??\n\t\t\t\t[]) as CustomBoundaryLayer[];\n\t\t\tconst sanitizedPointLayer = head(pointLayers ?? [])\n\t\t\t\t? await sanitizePointLayer(\n\t\t\t\t\t\thead(pointLayers) as CustomPointLayer,\n\t\t\t\t\t)\n\t\t\t\t: undefined;\n\t\t\tconst sanitizedEarthEngineLayers = await sanitizeEarthEngineLayers([\n\t\t\t\t...(earthEngineLayers ?? []),\n\t\t\t] as unknown as CustomGoogleEngineLayer[]);\n\t\t\tsetUpdatedLayers(\n\t\t\t\tcompact([\n\t\t\t\t\t...(sanitizedBoundaryLayers ?? []),\n\t\t\t\t\t...(sanitizedThematicLayers ?? []),\n\t\t\t\t\tsanitizedPointLayer,\n\t\t\t\t\t...(sanitizedEarthEngineLayers ?? []),\n\t\t\t\t]),\n\t\t\t);\n\t\t} catch (e: any) {\n\t\t\tconsole.error(`Error sanitizing layers`, e.toString());\n\t\t}\n\t\tsetLoading(false);\n\t};\n\n\tconst updateLayer = useCallback(\n\t\t(id: string, updatedLayer: CustomMapLayer) => {\n\t\t\tsetUpdatedLayers((prevLayers) => {\n\t\t\t\tconst updatedLayers = [...prevLayers];\n\t\t\t\tconst layerIndex = updatedLayers.findIndex(\n\t\t\t\t\t(layer) => layer.id === updatedLayer.id,\n\t\t\t\t);\n\t\t\t\tif (layerIndex < 0) {\n\t\t\t\t\treturn prevLayers;\n\t\t\t\t}\n\t\t\t\tset(updatedLayers, layerIndex, updatedLayer);\n\t\t\t\treturn updatedLayers;\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\tuseEffect(() => {\n\t\tsanitizeLayers().catch(console.error);\n\t}, [period, orgUnit]);\n\n\tconst setupLayerListeners = (\n\t\ttype: \"add\" | \"remove\",\n\t\tevent: LayersControlEvent,\n\t) => {\n\t\tconst name = event.name;\n\n\t\tconst layerConfig = find(updatedLayers, (layer: any) => {\n\t\t\tconst nameFromConfig =\n\t\t\t\tlayer?.name ?? layer?.dataItem?.displayname ?? layer?.label;\n\t\t\treturn nameFromConfig === name;\n\t\t});\n\n\t\tif (layerConfig) {\n\t\t\tupdateLayer(layerConfig.id, {\n\t\t\t\t...layerConfig,\n\t\t\t\tenabled: type === \"add\",\n\t\t\t});\n\t\t}\n\t};\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<CircularLoader small />\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<h4>\n\t\t\t\t\t\t{i18n.t(\"Error\")}: {error.message}\n\t\t\t\t\t</h4>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<MapLayersContext.Provider\n\t\t\tvalue={{ layers: updatedLayers, updateLayer }}\n\t\t>\n\t\t\t{children}\n\t\t</MapLayersContext.Provider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Map/components/MapProvider/hooks/index.ts"],"names":[],"mappings":";;;AAOO,SAAS,sBAAyB,GAAA;AACxC,EAAA,OAAO,WAAW,iBAAiB,CAAA;AACpC;AAEO,SAAS,aAAgB,GAAA;AAC/B,EAAA,OAAO,WAAW,gBAAgB,CAAA;AACnC;AAEO,SAAS,YAAe,GAAA;AAC9B,EAAA,OAAO,WAAW,gBAAgB,CAAA;AACnC","file":"index.js","sourcesContent":["import { useContext } from \"react\";\nimport {\n\tMapLayersContext,\n\tMapOrgUnitContext,\n\tMapPeriodContext,\n} from \"../../../state/index.js\";\n\nexport function useMapOrganisationUnit() {\n\treturn useContext(MapOrgUnitContext);\n}\n\nexport function useMapPeriods() {\n\treturn useContext(MapPeriodContext);\n}\n\nexport function useMapLayers() {\n\treturn useContext(MapLayersContext);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Map/components/MapProvider/hooks/index.ts"],"names":[],"mappings":";;;AAOO,SAAS,sBAAA,GAAyB;AACxC,EAAA,OAAO,WAAW,iBAAiB,CAAA;AACpC;AAEO,SAAS,aAAA,GAAgB;AAC/B,EAAA,OAAO,WAAW,gBAAgB,CAAA;AACnC;AAEO,SAAS,YAAA,GAAe;AAC9B,EAAA,OAAO,WAAW,gBAAgB,CAAA;AACnC","file":"index.js","sourcesContent":["import { useContext } from \"react\";\nimport {\n\tMapLayersContext,\n\tMapOrgUnitContext,\n\tMapPeriodContext,\n} from \"../../../state/index.js\";\n\nexport function useMapOrganisationUnit() {\n\treturn useContext(MapOrgUnitContext);\n}\n\nexport function useMapPeriods() {\n\treturn useContext(MapPeriodContext);\n}\n\nexport function useMapLayers() {\n\treturn useContext(MapLayersContext);\n}\n"]}
@@ -48,7 +48,7 @@ function MapProvider({
48
48
  const { analytics, boundaries } = data ?? {};
49
49
  const rawOrgUnits = sanitizeOrgUnits(analytics?.metaData);
50
50
  const geoJSONObjects = toGeoJson(
51
- boundaries.filter((bound) => bound.co)
51
+ boundaries?.filter((bound) => bound.co)
52
52
  );
53
53
  const orgUnits2 = compact(
54
54
  rawOrgUnits.map((orgUnit) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/MapProvider/index.tsx"],"names":["orgUnits","periods","error"],"mappings":"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","file":"index.js","sourcesContent":["import { useDataQuery } from \"@dhis2/app-runtime\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { compact, isEmpty } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { MapOrgUnit, MapProviderProps } from \"../../interfaces\";\nimport { MapOrgUnitContext, MapPeriodContext } from \"../../state\";\nimport { getOrgUnitsSelection, sanitizeOrgUnits, toGeoJson } from \"../../utils\";\nimport { BasePeriod, PeriodUtility } from \"@hisptz/dhis2-utils\";\n\nconst boundaryQuery = {\n\tboundaries: {\n\t\tresource: \"geoFeatures\",\n\t\tparams: ({ orgUnitIds }: any) => ({\n\t\t\tou: `ou:${orgUnitIds?.join(\";\")}`,\n\t\t}),\n\t},\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ orgUnitIds, periodIds }: any) => ({\n\t\t\tdimension: [\n\t\t\t\t`ou:${orgUnitIds.join(\";\")}`,\n\t\t\t\t`pe:${periodIds?.join(\";\")}`,\n\t\t\t],\n\t\t\tskipData: true,\n\t\t\thierarchyMeta: true,\n\t\t}),\n\t},\n};\n\nexport function MapProvider({\n\tchildren,\n\torgUnitSelection,\n\tperiodSelection,\n}: MapProviderProps) {\n\tconst [orgUnits, setOrgUnits] = useState<MapOrgUnit[]>([]);\n\tconst [periods, setPeriods] = useState<BasePeriod[]>([]);\n\tconst { refetch, loading, error } = useDataQuery(boundaryQuery, {\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\tasync function getOrgUnits() {\n\t\t\tconst rawOrgUnitIds = getOrgUnitsSelection(orgUnitSelection);\n\t\t\tconst data = await refetch({\n\t\t\t\torgUnitIds: rawOrgUnitIds,\n\t\t\t\tperiodIds: !isEmpty(periodSelection?.periods)\n\t\t\t\t\t? periodSelection?.periods\n\t\t\t\t\t: [\"THIS_YEAR\"], // Just a placeholder so as the analytics query doesn't fail, when the period is empty, it means that this isn't a DHIS2 map plot\n\t\t\t});\n\t\t\tconst { analytics, boundaries } = (data as any) ?? {};\n\t\t\tconst rawOrgUnits = sanitizeOrgUnits(analytics?.metaData);\n\t\t\tconst geoJSONObjects = toGeoJson(\n\t\t\t\tboundaries.filter((bound: any) => bound.co),\n\t\t\t);\n\t\t\tconst orgUnits: MapOrgUnit[] = compact(\n\t\t\t\trawOrgUnits.map((orgUnit: any) => {\n\t\t\t\t\tconst geoJSONObject: any = geoJSONObjects?.find(\n\t\t\t\t\t\t(geoJSON: any) => geoJSON.properties.id === orgUnit.id,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!geoJSONObject) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...orgUnit,\n\t\t\t\t\t\tgeoJSON: geoJSONObject,\n\t\t\t\t\t\tbounds: [],\n\t\t\t\t\t\tlevel: geoJSONObject.properties.level,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst periodIds =\n\t\t\t\tanalytics?.metaData?.dimensions?.pe ?? periodSelection?.periods;\n\t\t\tconst periods = periodIds.map((pe: string) =>\n\t\t\t\tPeriodUtility.getPeriodById(pe),\n\t\t\t);\n\t\t\tsetPeriods(periods);\n\t\t\tsetOrgUnits(orgUnits);\n\t\t}\n\t\tgetOrgUnits().catch((error) => console.log(error));\n\t}, [orgUnitSelection, refetch, periodSelection?.periods]);\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<CircularLoader small />\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<h4>\n\t\t\t\t\t\t{i18n.t(\"Error\")}: {error.message}\n\t\t\t\t\t</h4>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!isEmpty(orgUnits)) {\n\t\treturn (\n\t\t\t<MapOrgUnitContext.Provider value={{ orgUnitSelection, orgUnits }}>\n\t\t\t\t<MapPeriodContext.Provider\n\t\t\t\t\tvalue={{ ...periodSelection, periods }}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</MapPeriodContext.Provider>\n\t\t\t</MapOrgUnitContext.Provider>\n\t\t);\n\t}\n\n\treturn null;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/MapProvider/index.tsx"],"names":["orgUnits","periods","error"],"mappings":"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","file":"index.js","sourcesContent":["import { useDataQuery } from \"@dhis2/app-runtime\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { compact, isEmpty } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { MapOrgUnit, MapProviderProps } from \"../../interfaces\";\nimport { MapOrgUnitContext, MapPeriodContext } from \"../../state\";\nimport { getOrgUnitsSelection, sanitizeOrgUnits, toGeoJson } from \"../../utils\";\nimport { BasePeriod, PeriodUtility } from \"@hisptz/dhis2-utils\";\n\nconst boundaryQuery = {\n\tboundaries: {\n\t\tresource: \"geoFeatures\",\n\t\tparams: ({ orgUnitIds }: any) => ({\n\t\t\tou: `ou:${orgUnitIds?.join(\";\")}`,\n\t\t}),\n\t},\n\tanalytics: {\n\t\tresource: \"analytics\",\n\t\tparams: ({ orgUnitIds, periodIds }: any) => ({\n\t\t\tdimension: [\n\t\t\t\t`ou:${orgUnitIds.join(\";\")}`,\n\t\t\t\t`pe:${periodIds?.join(\";\")}`,\n\t\t\t],\n\t\t\tskipData: true,\n\t\t\thierarchyMeta: true,\n\t\t}),\n\t},\n};\n\nexport function MapProvider({\n\tchildren,\n\torgUnitSelection,\n\tperiodSelection,\n}: MapProviderProps) {\n\tconst [orgUnits, setOrgUnits] = useState<MapOrgUnit[]>([]);\n\tconst [periods, setPeriods] = useState<BasePeriod[]>([]);\n\tconst { refetch, loading, error } = useDataQuery(boundaryQuery, {\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\tasync function getOrgUnits() {\n\t\t\tconst rawOrgUnitIds = getOrgUnitsSelection(orgUnitSelection);\n\t\t\tconst data = await refetch({\n\t\t\t\torgUnitIds: rawOrgUnitIds,\n\t\t\t\tperiodIds: !isEmpty(periodSelection?.periods)\n\t\t\t\t\t? periodSelection?.periods\n\t\t\t\t\t: [\"THIS_YEAR\"], // Just a placeholder so as the analytics query doesn't fail, when the period is empty, it means that this isn't a DHIS2 map plot\n\t\t\t});\n\t\t\tconst { analytics, boundaries } = (data as any) ?? {};\n\t\t\tconst rawOrgUnits = sanitizeOrgUnits(analytics?.metaData);\n\t\t\tconst geoJSONObjects = toGeoJson(\n\t\t\t\tboundaries?.filter((bound: any) => bound.co),\n\t\t\t);\n\t\t\tconst orgUnits: MapOrgUnit[] = compact(\n\t\t\t\trawOrgUnits.map((orgUnit: any) => {\n\t\t\t\t\tconst geoJSONObject: any = geoJSONObjects?.find(\n\t\t\t\t\t\t(geoJSON: any) => geoJSON.properties.id === orgUnit.id,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!geoJSONObject) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...orgUnit,\n\t\t\t\t\t\tgeoJSON: geoJSONObject,\n\t\t\t\t\t\tbounds: [],\n\t\t\t\t\t\tlevel: geoJSONObject.properties.level,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst periodIds =\n\t\t\t\tanalytics?.metaData?.dimensions?.pe ?? periodSelection?.periods;\n\t\t\tconst periods = periodIds.map((pe: string) =>\n\t\t\t\tPeriodUtility.getPeriodById(pe),\n\t\t\t);\n\t\t\tsetPeriods(periods);\n\t\t\tsetOrgUnits(orgUnits);\n\t\t}\n\t\tgetOrgUnits().catch((error) => console.log(error));\n\t}, [orgUnitSelection, refetch, periodSelection?.periods]);\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<CircularLoader small />\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<h4>\n\t\t\t\t\t\t{i18n.t(\"Error\")}: {error.message}\n\t\t\t\t\t</h4>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!isEmpty(orgUnits)) {\n\t\treturn (\n\t\t\t<MapOrgUnitContext.Provider value={{ orgUnitSelection, orgUnits }}>\n\t\t\t\t<MapPeriodContext.Provider\n\t\t\t\t\tvalue={{ ...periodSelection, periods }}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</MapPeriodContext.Provider>\n\t\t\t</MapOrgUnitContext.Provider>\n\t\t);\n\t}\n\n\treturn null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/MapTitle/index.tsx"],"names":[],"mappings":";;;;;;;AAMO,MAAM,iBAAiB,MAAM;AACnC,EAAA,MAAM,kBAAkB,aAAc,EAAA;AACtC,EAAA,MAAM,MAAM,MAAO,EAAA;AACnB,EAAM,MAAA,SAAA,GAAY,IAAI,YAAa,EAAA;AAEnC,EAAO,OAAA,YAAA;AAAA,wBACL,KAAI,EAAA,EAAA,SAAA,EAAU,mBACd,EAAA,QAAA,kBAAA,GAAA,CAAC,OACC,QAAiB,EAAA,eAAA,EAAA,OAAA,EAAS,GAAI,CAAA,CAAC,OAAO,EAAG,CAAA,IAAI,EAAE,IAAK,CAAA,GAAG,GACzD,CACD,EAAA,CAAA;AAAA,IACA;AAAA,GACD;AACD","file":"index.js","sourcesContent":["import \"./style/mapTitle.css\";\nimport { useMap } from \"react-leaflet\";\nimport { createPortal } from \"react-dom\";\nimport { Tag } from \"@dhis2/ui\";\nimport { useMapPeriods } from \"../MapProvider/hooks\";\n\nexport const MapPeriodTitle = () => {\n\tconst periodSelection = useMapPeriods();\n\tconst map = useMap();\n\tconst container = map.getContainer(); // the .leaflet-container div\n\n\treturn createPortal(\n\t\t<div className=\"map-title-overlay\">\n\t\t\t<Tag>\n\t\t\t\t{periodSelection?.periods?.map((pe) => pe.name).join(\",\")}\n\t\t\t</Tag>\n\t\t</div>,\n\t\tcontainer,\n\t);\n};\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/MapTitle/index.tsx"],"names":[],"mappings":";;;;;;;AAMO,MAAM,iBAAiB,MAAM;AACnC,EAAA,MAAM,kBAAkB,aAAA,EAAc;AACtC,EAAA,MAAM,MAAM,MAAA,EAAO;AACnB,EAAA,MAAM,SAAA,GAAY,IAAI,YAAA,EAAa;AAEnC,EAAA,OAAO,YAAA;AAAA,wBACL,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EACd,QAAA,kBAAA,GAAA,CAAC,OACC,QAAA,EAAA,eAAA,EAAiB,OAAA,EAAS,GAAA,CAAI,CAAC,OAAO,EAAA,CAAG,IAAI,EAAE,IAAA,CAAK,GAAG,GACzD,CAAA,EACD,CAAA;AAAA,IACA;AAAA,GACD;AACD","file":"index.js","sourcesContent":["import \"./style/mapTitle.css\";\nimport { useMap } from \"react-leaflet\";\nimport { createPortal } from \"react-dom\";\nimport { Tag } from \"@dhis2/ui\";\nimport { useMapPeriods } from \"../MapProvider/hooks\";\n\nexport const MapPeriodTitle = () => {\n\tconst periodSelection = useMapPeriods();\n\tconst map = useMap();\n\tconst container = map.getContainer(); // the .leaflet-container div\n\n\treturn createPortal(\n\t\t<div className=\"map-title-overlay\">\n\t\t\t<Tag>\n\t\t\t\t{periodSelection?.periods?.map((pe) => pe.name).join(\",\")}\n\t\t\t</Tag>\n\t\t</div>,\n\t\tcontainer,\n\t);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/MapUpdater/index.tsx"],"names":[],"mappings":";;AAIe,SAAR,UAA4B,CAAA;AAAA,EAClC,MAAA;AAAA,EACA;AACD,CAGG,EAAA;AACF,EAAa,YAAA,CAAA,EAAE,MAAQ,EAAA,YAAA,EAAc,CAAA;AACrC,EAAO,OAAA,IAAA;AACR","file":"index.js","sourcesContent":["import { useCenterMap } from \"../../hooks/map.js\";\nimport { type RefObject } from \"react\";\nimport { LatLngTuple } from \"leaflet\";\n\nexport default function MapUpdater({\n\tbounds,\n\tcontainerRef,\n}: {\n\tbounds: LatLngTuple[];\n\tcontainerRef: RefObject<HTMLDivElement>;\n}) {\n\tuseCenterMap({ bounds, containerRef });\n\treturn null;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/MapUpdater/index.tsx"],"names":[],"mappings":";;AAIe,SAAR,UAAA,CAA4B;AAAA,EAClC,MAAA;AAAA,EACA;AACD,CAAA,EAGG;AACF,EAAA,YAAA,CAAa,EAAE,MAAA,EAAQ,YAAA,EAAc,CAAA;AACrC,EAAA,OAAO,IAAA;AACR","file":"index.js","sourcesContent":["import { useCenterMap } from \"../../hooks/map.js\";\nimport { type RefObject } from \"react\";\nimport { LatLngTuple } from \"leaflet\";\n\nexport default function MapUpdater({\n\tbounds,\n\tcontainerRef,\n}: {\n\tbounds: LatLngTuple[];\n\tcontainerRef: RefObject<HTMLDivElement>;\n}) {\n\tuseCenterMap({ bounds, containerRef });\n\treturn null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.tsx"],"names":[],"mappings":";;;;;;AAeO,SAAS,wBAAyB,CAAA;AAAA,EACxC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAAkC,EAAA;AACjC,EAAA,MAAM,OAAO,OAA6B,CAAA;AAAA,IACzC,aAAe,EAAA;AAAA,GACf,CAAA;AAED,EAAM,MAAA,aAAA,GAAgB,CAAC,MAAgC,KAAA;AACtD,IAAA,QAAA,CAAS,MAAM,CAAA;AACf,IAAQ,OAAA,EAAA;AAAA,GACT;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,0BAA0B,CAAE,EAAA,CAAA;AAAA,wBAC/C,YACA,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,0BAA2B,EAAA,EAAA,IAAA,EAAY,SAAkB,CAC3D,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":"ThematicLayerConfigModal.js","sourcesContent":["import { ThematicLayerConfigModalProps } from \"./types\";\nimport { useForm } from \"react-hook-form\";\nimport { ThematicLayerConfig } 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 { ThematicLayerConfiguration } from \"./ThematicLayerConfiguration.js\";\n\nexport function ThematicLayerConfigModal({\n\topen,\n\texclude,\n\tconfig,\n\tonClose,\n\tonChange,\n\t...props\n}: ThematicLayerConfigModalProps) {\n\tconst form = useForm<ThematicLayerConfig>({\n\t\tdefaultValues: config,\n\t});\n\n\tconst onSubmitClick = (values: ThematicLayerConfig) => {\n\t\tonChange(values);\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Modal {...props} hide={!open} onClose={onClose}>\n\t\t\t<ModalTitle>{i18n.t(\"Configure Thematic Layer\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t<ThematicLayerConfiguration form={form} exclude={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/ThematicLayerConfiguration/ThematicLayerConfigModal.tsx"],"names":[],"mappings":";;;;;;AAeO,SAAS,wBAAA,CAAyB;AAAA,EACxC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACJ,CAAA,EAAkC;AACjC,EAAA,MAAM,OAAO,OAAA,CAA6B;AAAA,IACzC,aAAA,EAAe;AAAA,GACf,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,CAAC,MAAA,KAAgC;AACtD,IAAA,QAAA,CAAS,MAAM,CAAA;AACf,IAAA,OAAA,EAAQ;AAAA,EACT,CAAA;AAEA,EAAA,4BACE,KAAA,EAAA,EAAO,GAAG,OAAO,IAAA,EAAM,CAAC,MAAM,OAAA,EAC9B,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,IAAA,CAAK,CAAA,CAAE,0BAA0B,CAAA,EAAE,CAAA;AAAA,wBAC/C,YAAA,EAAA,EACA,QAAA,kBAAA,GAAA,CAAC,0BAAA,EAAA,EAA2B,IAAA,EAAY,SAAkB,CAAA,EAC3D,CAAA;AAAA,oBACA,GAAA,CAAC,YAAA,EAAA,EACA,QAAA,kBAAA,IAAA,CAAC,WAAA,EAAA,EACA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAO,OAAA,EAAS,OAAA,EAAU,QAAA,EAAA,IAAA,CAAK,CAAA,CAAE,QAAQ,CAAA,EAAE,CAAA;AAAA,sBAC5C,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACA,OAAA,EAAO,IAAA;AAAA,UACP,OAAA,EAAS,MAAM,IAAA,CAAK,YAAA,CAAa,aAAa,CAAA,EAAE;AAAA,UAE/C,QAAA,EAAA,IAAA,CAAK,EAAE,MAAM;AAAA;AAAA;AACf,KAAA,EACD,CAAA,EACD;AAAA,GAAA,EACD,CAAA;AAEF","file":"ThematicLayerConfigModal.js","sourcesContent":["import { ThematicLayerConfigModalProps } from \"./types\";\nimport { useForm } from \"react-hook-form\";\nimport { ThematicLayerConfig } 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 { ThematicLayerConfiguration } from \"./ThematicLayerConfiguration.js\";\n\nexport function ThematicLayerConfigModal({\n\topen,\n\texclude,\n\tconfig,\n\tonClose,\n\tonChange,\n\t...props\n}: ThematicLayerConfigModalProps) {\n\tconst form = useForm<ThematicLayerConfig>({\n\t\tdefaultValues: config,\n\t});\n\n\tconst onSubmitClick = (values: ThematicLayerConfig) => {\n\t\tonChange(values);\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<Modal {...props} hide={!open} onClose={onClose}>\n\t\t\t<ModalTitle>{i18n.t(\"Configure Thematic Layer\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t<ThematicLayerConfiguration form={form} exclude={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/ThematicLayerConfiguration/ThematicLayerConfiguration.tsx"],"names":["type"],"mappings":"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","file":"ThematicLayerConfiguration.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Button, Field, InputField, Radio } from \"@dhis2/ui\";\nimport { Controller, FormProvider, useWatch } from \"react-hook-form\";\nimport { useMemo, useState } from \"react\";\nimport { compact } from \"lodash\";\nimport { defaultClasses, defaultColorScaleName } from \"../../utils/colors.js\";\nimport IndicatorSelectorModal from \"./components/IndicatorSelectorModal/index.js\";\nimport { LegendSetSelector } from \"./components/LegendSetSelector/index.js\";\nimport { CustomLegend } from \"./components/CustomLegend/index.js\";\nimport { ThematicLayerConfigurationProps } from \"./types/index.js\";\nimport { RadiusField } from \"./components/RadiusField.js\";\nimport { TypeField } from \"./components/TypeField.js\";\n\nexport function ThematicLayerConfiguration({\n\texclude,\n\tform,\n}: ThematicLayerConfigurationProps) {\n\tconst [type, legendSet, dataItemId] = useWatch({\n\t\tcontrol: form.control,\n\t\tname: [\"type\", \"dataItem.legendSet\", \"dataItem.id\"],\n\t});\n\tconst [legendType, setLegendType] = useState(\n\t\tlegendSet ? \"legendSet\" : \"custom\",\n\t);\n\tconst [dataSelectorOpen, setDataSelectorOpen] = useState(false);\n\n\tconst onLegendTypeChange =\n\t\t(type: string) =>\n\t\t({ value }: { value?: string }) => {\n\t\t\tif (type === \"custom\") {\n\t\t\t\tform.setValue(\"dataItem.legendSet\", undefined);\n\t\t\t\tform.setValue(\"dataItem.legendConfig.scale\", defaultClasses);\n\t\t\t\tform.setValue(\n\t\t\t\t\t\"dataItem.legendConfig.colorClass\",\n\t\t\t\t\tdefaultColorScaleName,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tform.setValue(\"dataItem.legendConfig\", undefined);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\tsetLegendType(value);\n\t\t\t}\n\t\t};\n\tconst disabled = useMemo(\n\t\t() => exclude?.filter((indicator) => indicator !== dataItemId) ?? [],\n\t\t[dataItemId, exclude],\n\t);\n\treturn (\n\t\t<FormProvider {...form}>\n\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n\t\t\t\t<TypeField />\n\t\t\t\t<Controller\n\t\t\t\t\trules={{\n\t\t\t\t\t\tvalidate: {\n\t\t\t\t\t\t\trequired: (value: { id: string; name: string }) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tBoolean(value?.id) ||\n\t\t\t\t\t\t\t\t\ti18n.t(\"A data item is required\")\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tonClick={() => setDataSelectorOpen(true)}\n\t\t\t\t\t\t\t\t\tstyle={{ flex: 1 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\t\t\tvalidationText={\n\t\t\t\t\t\t\t\t\t\t\tfieldState.error?.message\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\tinputWidth=\"100%\"\n\t\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Data Item\")}\n\t\t\t\t\t\t\t\t\t\tvalue={field.value?.displayName}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={() => setDataSelectorOpen(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{field.value?.id\n\t\t\t\t\t\t\t\t\t\t? i18n.t(\"Change\")\n\t\t\t\t\t\t\t\t\t\t: i18n.t(\"Select\")}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{dataSelectorOpen && (\n\t\t\t\t\t\t\t\t<IndicatorSelectorModal\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tonUpdate={(values: any[]) => {\n\t\t\t\t\t\t\t\t\t\tconst [indicator] = values ?? [];\n\t\t\t\t\t\t\t\t\t\tfield.onChange({\n\t\t\t\t\t\t\t\t\t\t\tid: indicator.id,\n\t\t\t\t\t\t\t\t\t\t\tdisplayName: indicator.displayName,\n\t\t\t\t\t\t\t\t\t\t\ttype: \"indicator\",\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonClose={() => setDataSelectorOpen(false)}\n\t\t\t\t\t\t\t\t\thide={!dataSelectorOpen}\n\t\t\t\t\t\t\t\t\tselected={compact([\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: field.value?.id,\n\t\t\t\t\t\t\t\t\t\t\tdisplayName:\n\t\t\t\t\t\t\t\t\t\t\t\tfield.value?.displayName,\n\t\t\t\t\t\t\t\t\t\t},\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</>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"dataItem\"}\n\t\t\t\t/>\n\t\t\t\t<div>\n\t\t\t\t\t<Field label={i18n.t(\"Legend\")}>\n\t\t\t\t\t\t<div className=\"column gap-8\">\n\t\t\t\t\t\t\t<div className=\"row gap-16\">\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tchecked={legendType === \"legendSet\"}\n\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Legend set\")}\n\t\t\t\t\t\t\t\t\tname=\"legendSet\"\n\t\t\t\t\t\t\t\t\tvalue=\"legendSet\"\n\t\t\t\t\t\t\t\t\tonChange={onLegendTypeChange(\"legendSet\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tchecked={legendType === \"custom\"}\n\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Custom legend\")}\n\t\t\t\t\t\t\t\t\tname=\"custom\"\n\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\tonChange={onLegendTypeChange(\"custom\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t{legendType === \"legendSet\" && (\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\trequired: i18n.t(\n\t\t\t\t\t\t\t\t\t\t\t\t\"Legend set is required\",\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tname=\"dataItem.legendSet\"\n\t\t\t\t\t\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t\t\t\t\t\t<LegendSetSelector\n\t\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\t\tselected={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t{...fieldState}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\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\t{legendType === \"custom\" && <CustomLegend />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Field>\n\t\t\t\t\t{type === \"bubble\" && (\n\t\t\t\t\t\t<Field label={i18n.t(\"Radius\")}>\n\t\t\t\t\t\t\t<RadiusField />\n\t\t\t\t\t\t</Field>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</FormProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../src/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.tsx"],"names":["type"],"mappings":"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","file":"ThematicLayerConfiguration.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Button, Field, InputField, Radio } from \"@dhis2/ui\";\nimport { Controller, FormProvider, useWatch } from \"react-hook-form\";\nimport { useMemo, useState } from \"react\";\nimport { compact } from \"lodash\";\nimport { defaultClasses, defaultColorScaleName } from \"../../utils/colors.js\";\nimport IndicatorSelectorModal from \"./components/IndicatorSelectorModal/index.js\";\nimport { LegendSetSelector } from \"./components/LegendSetSelector/index.js\";\nimport { CustomLegend } from \"./components/CustomLegend/index.js\";\nimport { ThematicLayerConfigurationProps } from \"./types/index.js\";\nimport { RadiusField } from \"./components/RadiusField.js\";\nimport { TypeField } from \"./components/TypeField.js\";\n\nexport function ThematicLayerConfiguration({\n\texclude,\n\tform,\n}: ThematicLayerConfigurationProps) {\n\tconst [type, legendSet, dataItemId] = useWatch({\n\t\tcontrol: form.control,\n\t\tname: [\"type\", \"dataItem.legendSet\", \"dataItem.id\"],\n\t});\n\tconst [legendType, setLegendType] = useState(\n\t\tlegendSet ? \"legendSet\" : \"custom\",\n\t);\n\tconst [dataSelectorOpen, setDataSelectorOpen] = useState(false);\n\n\tconst onLegendTypeChange =\n\t\t(type: string) =>\n\t\t({ value }: { value?: string }) => {\n\t\t\tif (type === \"custom\") {\n\t\t\t\tform.setValue(\"dataItem.legendSet\", undefined);\n\t\t\t\tform.setValue(\"dataItem.legendConfig.scale\", defaultClasses);\n\t\t\t\tform.setValue(\n\t\t\t\t\t\"dataItem.legendConfig.colorClass\",\n\t\t\t\t\tdefaultColorScaleName,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tform.setValue(\"dataItem.legendConfig\", undefined);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\tsetLegendType(value);\n\t\t\t}\n\t\t};\n\tconst disabled = useMemo(\n\t\t() => exclude?.filter((indicator) => indicator !== dataItemId) ?? [],\n\t\t[dataItemId, exclude],\n\t);\n\treturn (\n\t\t<FormProvider {...form}>\n\t\t\t<div style={{ display: \"flex\", flexDirection: \"column\", gap: 16 }}>\n\t\t\t\t<TypeField />\n\t\t\t\t<Controller\n\t\t\t\t\trules={{\n\t\t\t\t\t\tvalidate: {\n\t\t\t\t\t\t\trequired: (value: { id: string; name: string }) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tBoolean(value?.id) ||\n\t\t\t\t\t\t\t\t\ti18n.t(\"A data item is required\")\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tonClick={() => setDataSelectorOpen(true)}\n\t\t\t\t\t\t\t\t\tstyle={{ flex: 1 }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<InputField\n\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\terror={Boolean(fieldState.error)}\n\t\t\t\t\t\t\t\t\t\tvalidationText={\n\t\t\t\t\t\t\t\t\t\t\tfieldState.error?.message\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t\t\t\tinputWidth=\"100%\"\n\t\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Data Item\")}\n\t\t\t\t\t\t\t\t\t\tvalue={field.value?.displayName}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={() => setDataSelectorOpen(true)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{field.value?.id\n\t\t\t\t\t\t\t\t\t\t? i18n.t(\"Change\")\n\t\t\t\t\t\t\t\t\t\t: i18n.t(\"Select\")}\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{dataSelectorOpen && (\n\t\t\t\t\t\t\t\t<IndicatorSelectorModal\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tonUpdate={(values: any[]) => {\n\t\t\t\t\t\t\t\t\t\tconst [indicator] = values ?? [];\n\t\t\t\t\t\t\t\t\t\tfield.onChange({\n\t\t\t\t\t\t\t\t\t\t\tid: indicator.id,\n\t\t\t\t\t\t\t\t\t\t\tdisplayName: indicator.displayName,\n\t\t\t\t\t\t\t\t\t\t\ttype: \"indicator\",\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonClose={() => setDataSelectorOpen(false)}\n\t\t\t\t\t\t\t\t\thide={!dataSelectorOpen}\n\t\t\t\t\t\t\t\t\tselected={compact([\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: field.value?.id,\n\t\t\t\t\t\t\t\t\t\t\tdisplayName:\n\t\t\t\t\t\t\t\t\t\t\t\tfield.value?.displayName,\n\t\t\t\t\t\t\t\t\t\t},\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</>\n\t\t\t\t\t)}\n\t\t\t\t\tname={\"dataItem\"}\n\t\t\t\t/>\n\t\t\t\t<div>\n\t\t\t\t\t<Field label={i18n.t(\"Legend\")}>\n\t\t\t\t\t\t<div className=\"column gap-8\">\n\t\t\t\t\t\t\t<div className=\"row gap-16\">\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tchecked={legendType === \"legendSet\"}\n\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Legend set\")}\n\t\t\t\t\t\t\t\t\tname=\"legendSet\"\n\t\t\t\t\t\t\t\t\tvalue=\"legendSet\"\n\t\t\t\t\t\t\t\t\tonChange={onLegendTypeChange(\"legendSet\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tchecked={legendType === \"custom\"}\n\t\t\t\t\t\t\t\t\tlabel={i18n.t(\"Custom legend\")}\n\t\t\t\t\t\t\t\t\tname=\"custom\"\n\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\tonChange={onLegendTypeChange(\"custom\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t{legendType === \"legendSet\" && (\n\t\t\t\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\t\t\t\trequired: i18n.t(\n\t\t\t\t\t\t\t\t\t\t\t\t\"Legend set is required\",\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tname=\"dataItem.legendSet\"\n\t\t\t\t\t\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t\t\t\t\t\t<LegendSetSelector\n\t\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\t\tselected={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t{...fieldState}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\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\t{legendType === \"custom\" && <CustomLegend />}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Field>\n\t\t\t\t\t{type === \"bubble\" && (\n\t\t\t\t\t\t<Field label={i18n.t(\"Radius\")}>\n\t\t\t\t\t\t\t<RadiusField />\n\t\t\t\t\t\t</Field>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</FormProvider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../../../src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.tsx"],"names":[],"mappings":";;;;AAKA,MAAM,aAAa,CAAC;AAAA,EACnB,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA;AACD,CAKM,KAAA;AACL,EAAA,MAAM,MAAU,GAAA,cAAA,GAAyB,KAAK,CAAA,GAAI,IAAI,CAAA;AACtD,EAAM,MAAA,SAAA,GAAY,KAAQ,GAAA,KAAA,GAAQ,IAAO,GAAA,EAAA;AAEzC,EACC,uBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,MAC5B,WAAW,MAAO,CAAA,UAAA;AAAA,MAClB,KAAO,EAAA;AAAA,QACN,GAAI,KAAS,IAAA,EAAE,KAAM;AAAA,OACtB;AAAA,MAEC,QAAO,EAAA,MAAA,CAAA,GAAA,CAAI,CAAC,KAAA,EAAe,KAC3B,qBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UAEA,WAAW,MAAO,CAAA,IAAA;AAAA,UAClB,KAAO,EAAA,EAAE,eAAiB,EAAA,KAAA,EAAO,OAAO,SAAU;AAAA,SAAA;AAAA,QAF7C;AAAA,OAIN;AAAA;AAAA,GACF;AAEF,CAAA;AAEA,IAAO,kBAAQ,GAAA","file":"index.js","sourcesContent":["import React from \"react\";\nimport styles from \"../../styles/ColorScale.module.css\";\nimport { COLOR_PALETTES } from \"../../constants/colors.js\";\n\n// Returns one color scale based on a code and number of classes\nconst ColorScale = ({\n\tscale,\n\tbins,\n\twidth,\n\tonClick,\n}: {\n\tscale: string;\n\tbins: number;\n\twidth: number;\n\tonClick: (scale: string) => void;\n}) => {\n\tconst colors = (COLOR_PALETTES as any)?.[scale]?.[bins];\n\tconst itemWidth = width ? width / bins : 36;\n\n\treturn (\n\t\t<ul\n\t\t\tonClick={() => onClick(scale)}\n\t\t\tclassName={styles.colorScale}\n\t\t\tstyle={{\n\t\t\t\t...(width && { width }),\n\t\t\t}}\n\t\t>\n\t\t\t{colors.map((color: string, index: number) => (\n\t\t\t\t<li\n\t\t\t\t\tkey={index}\n\t\t\t\t\tclassName={styles.item}\n\t\t\t\t\tstyle={{ backgroundColor: color, width: itemWidth }}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</ul>\n\t);\n};\n\nexport default ColorScale;\n"]}
1
+ {"version":3,"sources":["../../../../../../../../../../src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.tsx"],"names":[],"mappings":";;;;AAKA,MAAM,aAAa,CAAC;AAAA,EACnB,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA;AACD,CAAA,KAKM;AACL,EAAA,MAAM,MAAA,GAAU,cAAA,GAAyB,KAAK,CAAA,GAAI,IAAI,CAAA;AACtD,EAAA,MAAM,SAAA,GAAY,KAAA,GAAQ,KAAA,GAAQ,IAAA,GAAO,EAAA;AAEzC,EAAA,uBACC,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,MAC5B,WAAW,MAAA,CAAO,UAAA;AAAA,MAClB,KAAA,EAAO;AAAA,QACN,GAAI,KAAA,IAAS,EAAE,KAAA;AAAM,OACtB;AAAA,MAEC,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAe,KAAA,qBAC3B,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UAEA,WAAW,MAAA,CAAO,IAAA;AAAA,UAClB,KAAA,EAAO,EAAE,eAAA,EAAiB,KAAA,EAAO,OAAO,SAAA;AAAU,SAAA;AAAA,QAF7C;AAAA,OAIN;AAAA;AAAA,GACF;AAEF,CAAA;AAEA,IAAO,kBAAA,GAAQ","file":"index.js","sourcesContent":["import React from \"react\";\nimport styles from \"../../styles/ColorScale.module.css\";\nimport { COLOR_PALETTES } from \"../../constants/colors.js\";\n\n// Returns one color scale based on a code and number of classes\nconst ColorScale = ({\n\tscale,\n\tbins,\n\twidth,\n\tonClick,\n}: {\n\tscale: string;\n\tbins: number;\n\twidth: number;\n\tonClick: (scale: string) => void;\n}) => {\n\tconst colors = (COLOR_PALETTES as any)?.[scale]?.[bins];\n\tconst itemWidth = width ? width / bins : 36;\n\n\treturn (\n\t\t<ul\n\t\t\tonClick={() => onClick(scale)}\n\t\t\tclassName={styles.colorScale}\n\t\t\tstyle={{\n\t\t\t\t...(width && { width }),\n\t\t\t}}\n\t\t>\n\t\t\t{colors.map((color: string, index: number) => (\n\t\t\t\t<li\n\t\t\t\t\tkey={index}\n\t\t\t\t\tclassName={styles.item}\n\t\t\t\t\tstyle={{ backgroundColor: color, width: itemWidth }}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</ul>\n\t);\n};\n\nexport default ColorScale;\n"]}