@hisptz/dhis2-analytics 1.0.5 → 1.0.6

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 (293) hide show
  1. package/build/cjs/components/ChartAnalytics/ChartAnalytics.stories.js +253 -0
  2. package/build/cjs/components/ChartAnalytics/ChartAnalytics.test.js +51 -0
  3. package/build/cjs/components/ChartAnalytics/components/DownloadMenu/components/Menu.js +48 -0
  4. package/build/cjs/components/ChartAnalytics/components/DownloadMenu/constants/menu.js +34 -0
  5. package/build/cjs/components/ChartAnalytics/components/DownloadMenu/index.js +67 -0
  6. package/build/cjs/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.js +1 -0
  7. package/{src → build/cjs}/components/ChartAnalytics/data/column-data.json +0 -0
  8. package/{src → build/cjs}/components/ChartAnalytics/data/complex-multi-series-data.json +0 -0
  9. package/{src → build/cjs}/components/ChartAnalytics/data/multi-series-data.json +0 -0
  10. package/{src → build/cjs}/components/ChartAnalytics/data/pie-data.json +0 -0
  11. package/{src → build/cjs}/components/ChartAnalytics/data/stacked-chart-data.json +0 -0
  12. package/build/cjs/components/ChartAnalytics/hooks/useChart.js +38 -0
  13. package/build/cjs/components/ChartAnalytics/index.js +69 -0
  14. package/build/cjs/components/ChartAnalytics/models/column.js +53 -0
  15. package/build/cjs/components/ChartAnalytics/models/index.js +102 -0
  16. package/build/cjs/components/ChartAnalytics/models/line.js +35 -0
  17. package/build/cjs/components/ChartAnalytics/models/multi-series.js +111 -0
  18. package/build/cjs/components/ChartAnalytics/models/pie.js +53 -0
  19. package/build/cjs/components/ChartAnalytics/services/export.js +50 -0
  20. package/{src → build/cjs}/components/ChartAnalytics/styles/custom-highchart.css +0 -0
  21. package/build/cjs/components/ChartAnalytics/types/props.js +1 -0
  22. package/build/cjs/components/ChartAnalytics/utils/chart.js +133 -0
  23. package/build/cjs/components/CircularProgressDashboard/CircularProgressIndicator.stories.js +45 -0
  24. package/build/cjs/components/CircularProgressDashboard/CircularProgressIndicator.test.js +13 -0
  25. package/build/cjs/components/CircularProgressDashboard/index.js +49 -0
  26. package/build/cjs/components/CircularProgressDashboard/types/props.js +1 -0
  27. package/build/cjs/components/Map/Map.stories.js +352 -0
  28. package/build/cjs/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js +32 -0
  29. package/build/cjs/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js +40 -0
  30. package/build/cjs/components/Map/components/EarthEngineLayerConfiguration/index.js +458 -0
  31. package/build/cjs/components/Map/components/MapArea/index.js +101 -0
  32. package/build/cjs/components/Map/components/MapArea/interfaces/index.js +1 -0
  33. package/build/cjs/components/Map/components/MapControls/components/CustomControl/index.js +32 -0
  34. package/build/cjs/components/Map/components/MapControls/components/DownloadControl/index.js +25 -0
  35. package/build/cjs/components/Map/components/MapControls/components/FullscreenControl/index.js +13 -0
  36. package/build/cjs/components/Map/components/MapControls/index.js +42 -0
  37. package/build/cjs/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js +13 -0
  38. package/build/cjs/components/Map/components/MapLayer/components/BoundaryLayer/index.js +51 -0
  39. package/build/cjs/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js +106 -0
  40. package/build/cjs/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js +379 -0
  41. package/build/cjs/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js +36 -0
  42. package/build/cjs/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js +200 -0
  43. package/build/cjs/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.js +1 -0
  44. package/build/cjs/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +10 -0
  45. package/build/cjs/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js +412 -0
  46. package/build/cjs/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js +124 -0
  47. package/{src → build/cjs}/components/Map/components/MapLayer/components/LegendArea/LegendArea.module.css +0 -0
  48. package/build/cjs/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js +26 -0
  49. package/build/cjs/components/Map/components/MapLayer/components/LegendArea/index.js +181 -0
  50. package/build/cjs/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js +86 -0
  51. package/build/cjs/components/Map/components/MapLayer/components/PointLayer/hooks/index.js +14 -0
  52. package/build/cjs/components/Map/components/MapLayer/components/PointLayer/index.js +46 -0
  53. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js +57 -0
  54. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js +145 -0
  55. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js +43 -0
  56. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js +56 -0
  57. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js +61 -0
  58. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js +43 -0
  59. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js +35 -0
  60. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js +15 -0
  61. package/build/cjs/components/Map/components/MapLayer/components/ThematicLayer/index.js +57 -0
  62. package/{src → build/cjs}/components/Map/components/MapLayer/components/ThematicLayer/styles/legends.css +0 -0
  63. package/build/cjs/components/Map/components/MapLayer/index.js +40 -0
  64. package/build/cjs/components/Map/components/MapLayer/interfaces/index.js +8 -0
  65. package/build/cjs/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js +389 -0
  66. package/build/cjs/components/Map/components/MapProvider/components/MapLayerProvider/index.js +116 -0
  67. package/build/cjs/components/Map/components/MapProvider/hooks/index.js +19 -0
  68. package/build/cjs/components/Map/components/MapProvider/index.js +121 -0
  69. package/build/cjs/components/Map/components/MapUpdater/index.js +24 -0
  70. package/build/cjs/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js +32 -0
  71. package/build/cjs/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js +40 -0
  72. package/build/cjs/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js +40 -0
  73. package/build/cjs/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js +428 -0
  74. package/build/cjs/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js +63 -0
  75. package/{src → build/cjs}/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScale.module.css +0 -0
  76. package/{src → build/cjs}/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScaleSelect.module.css +0 -0
  77. package/build/cjs/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js +72 -0
  78. package/build/cjs/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js +71 -0
  79. package/build/cjs/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js +47 -0
  80. package/build/cjs/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js +79 -0
  81. package/build/cjs/components/Map/components/ThematicLayerConfiguration/index.js +265 -0
  82. package/build/cjs/components/Map/constants/colors.js +428 -0
  83. package/build/cjs/components/Map/constants/legendSet.js +22 -0
  84. package/build/cjs/components/Map/hooks/map.js +52 -0
  85. package/build/cjs/components/Map/index.js +108 -0
  86. package/build/cjs/components/Map/interfaces/index.js +1 -0
  87. package/build/cjs/components/Map/state/index.js +23 -0
  88. package/build/cjs/components/Map/utils/colors.js +78 -0
  89. package/build/cjs/components/Map/utils/helpers.js +25 -0
  90. package/build/cjs/components/Map/utils/map.js +161 -0
  91. package/build/cjs/components/SingleValueContainer/SingleValueContainer.stories.js +127 -0
  92. package/build/cjs/components/SingleValueContainer/SingleValueContainer.test.js +23 -0
  93. package/build/cjs/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js +54 -0
  94. package/build/cjs/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js +24 -0
  95. package/build/cjs/components/SingleValueContainer/index.js +43 -0
  96. package/{src → build/cjs}/components/SingleValueContainer/styles/SingleValueContainer.module.css +0 -0
  97. package/build/cjs/components/SingleValueContainer/types/props.js +1 -0
  98. package/{src → build/cjs}/data/map.json +0 -0
  99. package/build/cjs/dataProviders/map.js +31 -0
  100. package/build/cjs/index.js +49 -0
  101. package/build/cjs/index.test.js +7 -0
  102. package/build/cjs/locales/en/translations.json +128 -0
  103. package/build/cjs/locales/index.js +22 -0
  104. package/build/es/components/ChartAnalytics/ChartAnalytics.stories.js +235 -0
  105. package/build/es/components/ChartAnalytics/ChartAnalytics.test.js +46 -0
  106. package/build/es/components/ChartAnalytics/components/DownloadMenu/components/Menu.js +41 -0
  107. package/build/es/components/ChartAnalytics/components/DownloadMenu/constants/menu.js +26 -0
  108. package/build/es/components/ChartAnalytics/components/DownloadMenu/index.js +58 -0
  109. package/build/es/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.js +1 -0
  110. package/build/es/components/ChartAnalytics/data/column-data.json +210 -0
  111. package/build/es/components/ChartAnalytics/data/complex-multi-series-data.json +124 -0
  112. package/build/es/components/ChartAnalytics/data/multi-series-data.json +536 -0
  113. package/build/es/components/ChartAnalytics/data/pie-data.json +115 -0
  114. package/build/es/components/ChartAnalytics/data/stacked-chart-data.json +415 -0
  115. package/build/es/components/ChartAnalytics/hooks/useChart.js +32 -0
  116. package/build/es/components/ChartAnalytics/index.js +40 -0
  117. package/build/es/components/ChartAnalytics/models/column.js +45 -0
  118. package/build/es/components/ChartAnalytics/models/index.js +95 -0
  119. package/build/es/components/ChartAnalytics/models/line.js +28 -0
  120. package/build/es/components/ChartAnalytics/models/multi-series.js +104 -0
  121. package/build/es/components/ChartAnalytics/models/pie.js +46 -0
  122. package/build/es/components/ChartAnalytics/services/export.js +36 -0
  123. package/build/es/components/ChartAnalytics/styles/custom-highchart.css +48 -0
  124. package/build/es/components/ChartAnalytics/types/props.js +1 -0
  125. package/build/es/components/ChartAnalytics/utils/chart.js +122 -0
  126. package/{src/components/CircularProgressDashboard/CircularProgressIndicator.stories.tsx → build/es/components/CircularProgressDashboard/CircularProgressIndicator.stories.js} +9 -16
  127. package/build/es/components/CircularProgressDashboard/CircularProgressIndicator.test.js +10 -0
  128. package/build/es/components/CircularProgressDashboard/index.js +41 -0
  129. package/build/es/components/CircularProgressDashboard/types/props.js +1 -0
  130. package/build/es/components/Map/Map.stories.js +334 -0
  131. package/build/es/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js +23 -0
  132. package/build/es/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js +31 -0
  133. package/build/es/components/Map/components/EarthEngineLayerConfiguration/index.js +448 -0
  134. package/build/es/components/Map/components/MapArea/index.js +91 -0
  135. package/build/es/components/Map/components/MapArea/interfaces/index.js +1 -0
  136. package/build/es/components/Map/components/MapControls/components/CustomControl/index.js +25 -0
  137. package/build/es/components/Map/components/MapControls/components/DownloadControl/index.js +18 -0
  138. package/build/es/components/Map/components/MapControls/components/FullscreenControl/index.js +6 -0
  139. package/build/es/components/Map/components/MapControls/index.js +35 -0
  140. package/build/es/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js +7 -0
  141. package/build/es/components/Map/components/MapLayer/components/BoundaryLayer/index.js +41 -0
  142. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js +95 -0
  143. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js +369 -0
  144. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js +29 -0
  145. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js +191 -0
  146. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.js +1 -0
  147. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +10 -0
  148. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js +403 -0
  149. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js +111 -0
  150. package/build/es/components/Map/components/MapLayer/components/LegendArea/LegendArea.module.css +12 -0
  151. package/build/es/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js +19 -0
  152. package/build/es/components/Map/components/MapLayer/components/LegendArea/index.js +172 -0
  153. package/build/es/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js +76 -0
  154. package/build/es/components/Map/components/MapLayer/components/PointLayer/hooks/index.js +8 -0
  155. package/build/es/components/Map/components/MapLayer/components/PointLayer/index.js +39 -0
  156. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js +49 -0
  157. package/{src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.tsx → build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.js} +57 -74
  158. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js +33 -0
  159. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js +47 -0
  160. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js +50 -0
  161. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js +36 -0
  162. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js +28 -0
  163. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js +9 -0
  164. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/index.js +50 -0
  165. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/styles/legends.css +62 -0
  166. package/build/es/components/Map/components/MapLayer/index.js +33 -0
  167. package/build/es/components/Map/components/MapLayer/interfaces/index.js +1 -0
  168. package/build/es/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js +381 -0
  169. package/build/es/components/Map/components/MapProvider/components/MapLayerProvider/index.js +107 -0
  170. package/{src/components/Map/components/MapProvider/hooks/index.ts → build/es/components/Map/components/MapProvider/hooks/index.js} +3 -6
  171. package/build/es/components/Map/components/MapProvider/index.js +112 -0
  172. package/build/es/components/Map/components/MapUpdater/index.js +17 -0
  173. package/build/es/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js +23 -0
  174. package/build/es/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js +31 -0
  175. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js +33 -0
  176. package/{src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.ts → build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js} +46 -59
  177. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js +53 -0
  178. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScale.module.css +15 -0
  179. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScaleSelect.module.css +12 -0
  180. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js +56 -0
  181. package/build/es/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js +64 -0
  182. package/build/es/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js +38 -0
  183. package/build/es/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js +70 -0
  184. package/build/es/components/Map/components/ThematicLayerConfiguration/index.js +254 -0
  185. package/{src/components/Map/constants/colors.ts → build/es/components/Map/constants/colors.js} +46 -59
  186. package/build/es/components/Map/constants/legendSet.js +15 -0
  187. package/build/es/components/Map/hooks/map.js +44 -0
  188. package/build/es/components/Map/index.js +51 -0
  189. package/build/es/components/Map/interfaces/index.js +1 -0
  190. package/build/es/components/Map/state/index.js +14 -0
  191. package/build/es/components/Map/utils/colors.js +61 -0
  192. package/build/es/components/Map/utils/helpers.js +14 -0
  193. package/build/es/components/Map/utils/map.js +147 -0
  194. package/build/es/components/SingleValueContainer/SingleValueContainer.stories.js +115 -0
  195. package/build/es/components/SingleValueContainer/SingleValueContainer.test.js +20 -0
  196. package/build/es/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js +47 -0
  197. package/build/es/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js +17 -0
  198. package/build/es/components/SingleValueContainer/index.js +29 -0
  199. package/build/es/components/SingleValueContainer/styles/SingleValueContainer.module.css +39 -0
  200. package/build/es/components/SingleValueContainer/types/props.js +1 -0
  201. package/build/es/data/map.json +5984 -0
  202. package/build/es/dataProviders/map.js +24 -0
  203. package/{src/index.ts → build/es/index.js} +1 -0
  204. package/build/es/index.test.js +6 -0
  205. package/build/es/locales/en/translations.json +128 -0
  206. package/build/es/locales/index.js +13 -0
  207. package/package.json +21 -4
  208. package/d2.config.js +0 -8
  209. package/i18n/en.pot +0 -409
  210. package/src/components/ChartAnalytics/ChartAnalytics.stories.tsx +0 -250
  211. package/src/components/ChartAnalytics/ChartAnalytics.test.tsx +0 -51
  212. package/src/components/ChartAnalytics/components/DownloadMenu/components/Menu.tsx +0 -48
  213. package/src/components/ChartAnalytics/components/DownloadMenu/constants/menu.ts +0 -38
  214. package/src/components/ChartAnalytics/components/DownloadMenu/index.tsx +0 -67
  215. package/src/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.ts +0 -1
  216. package/src/components/ChartAnalytics/hooks/useChart.ts +0 -35
  217. package/src/components/ChartAnalytics/index.tsx +0 -23
  218. package/src/components/ChartAnalytics/models/column.ts +0 -50
  219. package/src/components/ChartAnalytics/models/index.ts +0 -78
  220. package/src/components/ChartAnalytics/models/line.ts +0 -31
  221. package/src/components/ChartAnalytics/models/multi-series.ts +0 -115
  222. package/src/components/ChartAnalytics/models/pie.ts +0 -54
  223. package/src/components/ChartAnalytics/services/export.ts +0 -38
  224. package/src/components/ChartAnalytics/types/props.tsx +0 -48
  225. package/src/components/ChartAnalytics/utils/chart.ts +0 -123
  226. package/src/components/CircularProgressDashboard/CircularProgressIndicator.test.tsx +0 -9
  227. package/src/components/CircularProgressDashboard/index.tsx +0 -35
  228. package/src/components/CircularProgressDashboard/types/props.tsx +0 -17
  229. package/src/components/Map/Map.stories.tsx +0 -339
  230. package/src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.tsx +0 -28
  231. package/src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.tsx +0 -34
  232. package/src/components/Map/components/EarthEngineLayerConfiguration/index.tsx +0 -412
  233. package/src/components/Map/components/MapArea/index.tsx +0 -83
  234. package/src/components/Map/components/MapArea/interfaces/index.ts +0 -39
  235. package/src/components/Map/components/MapControls/components/CustomControl/index.tsx +0 -24
  236. package/src/components/Map/components/MapControls/components/DownloadControl/index.tsx +0 -10
  237. package/src/components/Map/components/MapControls/components/FullscreenControl/index.tsx +0 -7
  238. package/src/components/Map/components/MapControls/index.tsx +0 -24
  239. package/src/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.ts +0 -7
  240. package/src/components/Map/components/MapLayer/components/BoundaryLayer/index.tsx +0 -55
  241. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.tsx +0 -76
  242. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.ts +0 -430
  243. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.ts +0 -34
  244. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/index.tsx +0 -185
  245. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.ts +0 -56
  246. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +0 -34233
  247. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.ts +0 -431
  248. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.ts +0 -105
  249. package/src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx +0 -17
  250. package/src/components/Map/components/MapLayer/components/LegendArea/index.tsx +0 -168
  251. package/src/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.tsx +0 -44
  252. package/src/components/Map/components/MapLayer/components/PointLayer/hooks/index.ts +0 -8
  253. package/src/components/Map/components/MapLayer/components/PointLayer/index.tsx +0 -36
  254. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.tsx +0 -48
  255. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.tsx +0 -39
  256. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.tsx +0 -57
  257. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.tsx +0 -43
  258. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx +0 -38
  259. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx +0 -26
  260. package/src/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.ts +0 -10
  261. package/src/components/Map/components/MapLayer/components/ThematicLayer/index.tsx +0 -46
  262. package/src/components/Map/components/MapLayer/index.tsx +0 -32
  263. package/src/components/Map/components/MapLayer/interfaces/index.ts +0 -139
  264. package/src/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.tsx +0 -359
  265. package/src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx +0 -105
  266. package/src/components/Map/components/MapProvider/index.tsx +0 -93
  267. package/src/components/Map/components/MapUpdater/index.tsx +0 -8
  268. package/src/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.tsx +0 -28
  269. package/src/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.tsx +0 -34
  270. package/src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.tsx +0 -24
  271. package/src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.tsx +0 -50
  272. package/src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.ts +0 -91
  273. package/src/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.tsx +0 -45
  274. package/src/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.tsx +0 -47
  275. package/src/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.tsx +0 -57
  276. package/src/components/Map/components/ThematicLayerConfiguration/index.tsx +0 -248
  277. package/src/components/Map/constants/legendSet.ts +0 -19
  278. package/src/components/Map/hooks/map.ts +0 -47
  279. package/src/components/Map/index.tsx +0 -65
  280. package/src/components/Map/interfaces/index.ts +0 -57
  281. package/src/components/Map/state/index.tsx +0 -31
  282. package/src/components/Map/utils/colors.ts +0 -95
  283. package/src/components/Map/utils/helpers.ts +0 -15
  284. package/src/components/Map/utils/map.ts +0 -150
  285. package/src/components/SingleValueContainer/SingleValueContainer.stories.tsx +0 -146
  286. package/src/components/SingleValueContainer/SingleValueContainer.test.tsx +0 -24
  287. package/src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx +0 -46
  288. package/src/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.tsx +0 -12
  289. package/src/components/SingleValueContainer/index.tsx +0 -30
  290. package/src/components/SingleValueContainer/types/props.tsx +0 -16
  291. package/src/dataProviders/map.tsx +0 -24
  292. package/src/index.test.ts +0 -7
  293. package/tsconfig.json +0 -45
@@ -0,0 +1,458 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EarthEngineLayerConfigModal = EarthEngineLayerConfigModal;
7
+ exports.EarthEngineLayerConfiguration = EarthEngineLayerConfiguration;
8
+ var _reactHookForm = require("react-hook-form");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _constants = require("../MapLayer/components/GoogleEngineLayer/constants");
11
+ var _lodash = require("lodash");
12
+ var _d2I18n = _interopRequireDefault(require("@dhis2/d2-i18n"));
13
+ var _ui = require("@dhis2/ui");
14
+ var _hooks = require("../MapLayer/components/GoogleEngineLayer/hooks");
15
+ var _engine = require("../MapLayer/components/GoogleEngineLayer/services/engine");
16
+ var _reactQuery = require("react-query");
17
+ var _ColorScaleSelect = _interopRequireDefault(require("../ThematicLayerConfiguration/components/ColorScaleSelect"));
18
+ var _colors = require("../../utils/colors");
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
+ function useType() {
24
+ const type = (0, _reactHookForm.useWatch)({
25
+ name: "type"
26
+ });
27
+ return (0, _lodash.find)(_constants.EARTH_ENGINE_LAYERS, ["id", type]);
28
+ }
29
+ function AggregationSelector() {
30
+ var _config$defaultAggreg;
31
+ const config = useType();
32
+ if (!(config !== null && config !== void 0 && config.defaultAggregations)) {
33
+ return null;
34
+ }
35
+ const supportedAggregations = (_config$defaultAggreg = config === null || config === void 0 ? void 0 : config.defaultAggregations) !== null && _config$defaultAggreg !== void 0 ? _config$defaultAggreg : [];
36
+ const maxAggregations = config === null || config === void 0 ? void 0 : config.maxAggregations;
37
+ return /*#__PURE__*/_react.default.createElement(_reactHookForm.Controller, {
38
+ render: _ref => {
39
+ var _fieldState$error, _head, _fieldState$error2, _field$value;
40
+ let {
41
+ field,
42
+ fieldState
43
+ } = _ref;
44
+ return maxAggregations === 1 ? /*#__PURE__*/_react.default.createElement(_ui.SingleSelectField, {
45
+ clearable: true,
46
+ error: Boolean(fieldState.error),
47
+ validationText: fieldState === null || fieldState === void 0 ? void 0 : (_fieldState$error = fieldState.error) === null || _fieldState$error === void 0 ? void 0 : _fieldState$error.message,
48
+ selected: supportedAggregations.includes((_head = (0, _lodash.head)(field.value)) !== null && _head !== void 0 ? _head : "") ? (0, _lodash.head)(field.value) : undefined,
49
+ onChange: _ref2 => {
50
+ let {
51
+ selected
52
+ } = _ref2;
53
+ return field.onChange([selected]);
54
+ },
55
+ label: _d2I18n.default.t("Aggregation")
56
+ }, supportedAggregations.map(aggregation => /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
57
+ key: `${aggregation}-option`,
58
+ label: (0, _lodash.capitalize)(aggregation),
59
+ value: aggregation
60
+ }))) : /*#__PURE__*/_react.default.createElement(_ui.MultiSelectField, {
61
+ error: Boolean(fieldState.error),
62
+ validationText: fieldState === null || fieldState === void 0 ? void 0 : (_fieldState$error2 = fieldState.error) === null || _fieldState$error2 === void 0 ? void 0 : _fieldState$error2.message,
63
+ selected: (_field$value = field.value) === null || _field$value === void 0 ? void 0 : _field$value.filter(value => supportedAggregations === null || supportedAggregations === void 0 ? void 0 : supportedAggregations.includes(value)),
64
+ onChange: _ref3 => {
65
+ let {
66
+ selected
67
+ } = _ref3;
68
+ return field.onChange(selected);
69
+ },
70
+ label: _d2I18n.default.t("Aggregations")
71
+ }, supportedAggregations.map(aggregation => /*#__PURE__*/_react.default.createElement(_ui.MultiSelectOption, {
72
+ key: `${aggregation}-option`,
73
+ label: (0, _lodash.capitalize)(aggregation),
74
+ value: aggregation
75
+ })));
76
+ },
77
+ name: "aggregations"
78
+ });
79
+ }
80
+ function useDatasetInfo(shouldRun, config) {
81
+ const {
82
+ refresh
83
+ } = (0, _hooks.useGoogleEngineToken)();
84
+ async function getInfo() {
85
+ if (config) {
86
+ const tokenData = await refresh();
87
+ await _engine.EarthEngine.setToken(tokenData.token, refresh);
88
+ const engine = new _engine.EarthEngine({
89
+ options: config
90
+ });
91
+ return engine.getPeriod();
92
+ }
93
+ }
94
+ const {
95
+ data,
96
+ error,
97
+ isLoading
98
+ } = (0, _reactQuery.useQuery)([config], getInfo);
99
+ const periods = (0, _react.useMemo)(() => {
100
+ const features = data === null || data === void 0 ? void 0 : data.features;
101
+ return features === null || features === void 0 ? void 0 : features.map(feature => {
102
+ var _Date;
103
+ return (_Date = new Date(feature === null || feature === void 0 ? void 0 : feature.properties["system:time_start"])) === null || _Date === void 0 ? void 0 : _Date.getFullYear();
104
+ });
105
+ }, [data]);
106
+ return {
107
+ loading: isLoading,
108
+ error: error,
109
+ periods
110
+ };
111
+ }
112
+ function PeriodSelector() {
113
+ var _config$filters;
114
+ const config = useType();
115
+ const {
116
+ setValue,
117
+ getValues
118
+ } = (0, _reactHookForm.useFormContext)();
119
+ const filters = (_config$filters = config === null || config === void 0 ? void 0 : config.filters) !== null && _config$filters !== void 0 ? _config$filters : [];
120
+ const hasPeriodFilter = filters.includes("period");
121
+ const {
122
+ loading,
123
+ error,
124
+ periods
125
+ } = useDatasetInfo(hasPeriodFilter, config);
126
+ const initialPeriod = getValues("filters.period");
127
+ (0, _react.useEffect)(() => {
128
+ if (!(0, _lodash.isEmpty)(periods) && !initialPeriod) {
129
+ setValue("filters.period", (0, _lodash.head)(periods));
130
+ }
131
+ }, [periods]);
132
+ if (!hasPeriodFilter) {
133
+ return null;
134
+ }
135
+ if (error) {
136
+ var _error$message;
137
+ return /*#__PURE__*/_react.default.createElement("div", {
138
+ style: {
139
+ minWidth: "100%",
140
+ minHeight: 100
141
+ }
142
+ }, /*#__PURE__*/_react.default.createElement(_ui.CenteredContent, null, /*#__PURE__*/_react.default.createElement("p", null, (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : error === null || error === void 0 ? void 0 : error.toString())));
143
+ }
144
+ return /*#__PURE__*/_react.default.createElement(_reactHookForm.Controller, {
145
+ name: "filters.period",
146
+ rules: {
147
+ required: _d2I18n.default.t("Period is required")
148
+ },
149
+ render: _ref4 => {
150
+ var _fieldState$error3, _field$value2;
151
+ let {
152
+ field,
153
+ fieldState
154
+ } = _ref4;
155
+ return /*#__PURE__*/_react.default.createElement("div", {
156
+ style: {
157
+ gap: 4
158
+ },
159
+ className: "row align-items-center"
160
+ }, /*#__PURE__*/_react.default.createElement("div", {
161
+ style: {
162
+ flex: 1
163
+ }
164
+ }, /*#__PURE__*/_react.default.createElement(_ui.SingleSelectField, {
165
+ helpText: _d2I18n.default.t("Available periods are set by the source data"),
166
+ loading: loading,
167
+ filterable: true,
168
+ label: _d2I18n.default.t("Period"),
169
+ required: true,
170
+ error: Boolean(fieldState.error),
171
+ validationText: (_fieldState$error3 = fieldState.error) === null || _fieldState$error3 === void 0 ? void 0 : _fieldState$error3.message,
172
+ onChange: _ref5 => {
173
+ let {
174
+ selected
175
+ } = _ref5;
176
+ return field.onChange(parseInt(selected));
177
+ },
178
+ selected: periods !== null && periods !== void 0 && periods.includes(field.value) ? (_field$value2 = field.value) === null || _field$value2 === void 0 ? void 0 : _field$value2.toString() : undefined
179
+ }, periods === null || periods === void 0 ? void 0 : periods.map(period => /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
180
+ key: `${period}-option`,
181
+ value: period.toString(),
182
+ label: period.toString()
183
+ })))), loading && /*#__PURE__*/_react.default.createElement(_ui.CircularLoader, {
184
+ extrasmall: true
185
+ }));
186
+ }
187
+ });
188
+ }
189
+ function ColorConfig() {
190
+ return /*#__PURE__*/_react.default.createElement("div", {
191
+ className: "column gap-16"
192
+ }, /*#__PURE__*/_react.default.createElement("div", {
193
+ className: "row gap-8"
194
+ }, /*#__PURE__*/_react.default.createElement(_reactHookForm.Controller, {
195
+ render: _ref6 => {
196
+ var _fieldState$error4, _field$value3;
197
+ let {
198
+ field,
199
+ fieldState
200
+ } = _ref6;
201
+ return /*#__PURE__*/_react.default.createElement(_ui.InputField, _extends({}, field, {
202
+ error: Boolean(fieldState.error),
203
+ validationText: (_fieldState$error4 = fieldState.error) === null || _fieldState$error4 === void 0 ? void 0 : _fieldState$error4.message,
204
+ value: (_field$value3 = field.value) === null || _field$value3 === void 0 ? void 0 : _field$value3.toString(),
205
+ onChange: _ref7 => {
206
+ let {
207
+ value
208
+ } = _ref7;
209
+ return field.onChange(parseInt(value));
210
+ },
211
+ label: _d2I18n.default.t("Min"),
212
+ type: "number"
213
+ }));
214
+ },
215
+ name: "params.min"
216
+ }), /*#__PURE__*/_react.default.createElement(_reactHookForm.Controller, {
217
+ render: _ref8 => {
218
+ var _fieldState$error5, _field$value4;
219
+ let {
220
+ field,
221
+ fieldState
222
+ } = _ref8;
223
+ return /*#__PURE__*/_react.default.createElement(_ui.InputField, _extends({}, field, {
224
+ error: Boolean(fieldState.error),
225
+ validationText: (_fieldState$error5 = fieldState.error) === null || _fieldState$error5 === void 0 ? void 0 : _fieldState$error5.message,
226
+ value: (_field$value4 = field.value) === null || _field$value4 === void 0 ? void 0 : _field$value4.toString(),
227
+ onChange: _ref9 => {
228
+ let {
229
+ value
230
+ } = _ref9;
231
+ return field.onChange(parseInt(value));
232
+ },
233
+ label: _d2I18n.default.t("Max"),
234
+ type: "number"
235
+ }));
236
+ },
237
+ name: "params.max"
238
+ }), /*#__PURE__*/_react.default.createElement(_reactHookForm.Controller, {
239
+ name: "params.palette",
240
+ render: _ref10 => {
241
+ var _fieldState$error6, _scale$toString;
242
+ let {
243
+ field,
244
+ fieldState
245
+ } = _ref10;
246
+ const palette = field.value;
247
+ const scale = (0, _colors.getColorClasses)(palette);
248
+ const colorClass = (0, _colors.getColorScale)(palette !== null && palette !== void 0 ? palette : "");
249
+ const onChange = _ref11 => {
250
+ var _getColorPalette;
251
+ let {
252
+ selected
253
+ } = _ref11;
254
+ const palette = (_getColorPalette = (0, _colors.getColorPalette)(colorClass, parseInt(selected))) === null || _getColorPalette === void 0 ? void 0 : _getColorPalette.join(",");
255
+ field.onChange(palette);
256
+ };
257
+ return /*#__PURE__*/_react.default.createElement(_ui.SingleSelectField, {
258
+ validationText: (_fieldState$error6 = fieldState.error) === null || _fieldState$error6 === void 0 ? void 0 : _fieldState$error6.message,
259
+ error: Boolean(fieldState.error),
260
+ selected: (_scale$toString = scale === null || scale === void 0 ? void 0 : scale.toString()) !== null && _scale$toString !== void 0 ? _scale$toString : _colors.defaultClasses.toString(),
261
+ label: _d2I18n.default.t("Steps"),
262
+ onChange: onChange,
263
+ name: "scale"
264
+ }, [3, 4, 5, 6, 7, 8, 9].map(value => /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
265
+ key: `${value}-classes-option`,
266
+ label: `${value}`,
267
+ value: value === null || value === void 0 ? void 0 : value.toString()
268
+ })));
269
+ }
270
+ })), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactHookForm.Controller, {
271
+ name: "params.palette",
272
+ render: _ref12 => {
273
+ var _fieldState$error7;
274
+ let {
275
+ field,
276
+ fieldState
277
+ } = _ref12;
278
+ const palette = field.value;
279
+ const scale = (0, _colors.getColorClasses)(palette);
280
+ const colorClass = (0, _colors.getColorScale)(palette !== null && palette !== void 0 ? palette : "");
281
+ const onChange = colorClass => {
282
+ var _getColorPalette2;
283
+ const palette = (_getColorPalette2 = (0, _colors.getColorPalette)(colorClass, scale)) === null || _getColorPalette2 === void 0 ? void 0 : _getColorPalette2.join(",");
284
+ field.onChange(palette);
285
+ };
286
+ return /*#__PURE__*/_react.default.createElement(_ui.Field, {
287
+ error: Boolean(fieldState.error),
288
+ validationText: (_fieldState$error7 = fieldState.error) === null || _fieldState$error7 === void 0 ? void 0 : _fieldState$error7.message,
289
+ label: _d2I18n.default.t("Colors")
290
+ }, /*#__PURE__*/_react.default.createElement(_ColorScaleSelect.default, {
291
+ count: scale !== null && scale !== void 0 ? scale : _colors.defaultClasses,
292
+ colorClass: colorClass !== null && colorClass !== void 0 ? colorClass : _colors.defaultColorScaleName,
293
+ width: 300,
294
+ onChange: onChange
295
+ }));
296
+ }
297
+ })));
298
+ }
299
+ function StylesConfig() {
300
+ const config = useType();
301
+ const hasParams = Boolean(config === null || config === void 0 ? void 0 : config.params);
302
+ if (!hasParams) {
303
+ return null;
304
+ }
305
+ return /*#__PURE__*/_react.default.createElement("div", {
306
+ style: {
307
+ minWidth: 200,
308
+ minHeight: 100
309
+ },
310
+ className: "row gap-16"
311
+ }, /*#__PURE__*/_react.default.createElement("div", {
312
+ className: "column"
313
+ }, /*#__PURE__*/_react.default.createElement("p", null, _d2I18n.default.t("Unit"), ": ", config === null || config === void 0 ? void 0 : config.unit), /*#__PURE__*/_react.default.createElement(ColorConfig, null)));
314
+ }
315
+ function Name() {
316
+ const config = useType();
317
+ const {
318
+ setValue
319
+ } = (0, _reactHookForm.useFormContext)();
320
+ (0, _react.useEffect)(() => {
321
+ setValue("name", config === null || config === void 0 ? void 0 : config.name);
322
+ setValue("id", config === null || config === void 0 ? void 0 : config.id);
323
+ }, [config]);
324
+ return /*#__PURE__*/_react.default.createElement(_reactHookForm.Controller, {
325
+ name: "name",
326
+ rules: {
327
+ required: _d2I18n.default.t("Name is required")
328
+ },
329
+ render: _ref13 => {
330
+ var _fieldState$error8;
331
+ let {
332
+ field,
333
+ fieldState
334
+ } = _ref13;
335
+ return /*#__PURE__*/_react.default.createElement(_ui.InputField, {
336
+ label: _d2I18n.default.t("Layer name"),
337
+ type: "text",
338
+ required: true,
339
+ error: Boolean(fieldState.error),
340
+ validationText: (_fieldState$error8 = fieldState.error) === null || _fieldState$error8 === void 0 ? void 0 : _fieldState$error8.message,
341
+ onChange: _ref14 => {
342
+ let {
343
+ value
344
+ } = _ref14;
345
+ return field.onChange(value);
346
+ },
347
+ value: field.value
348
+ });
349
+ }
350
+ });
351
+ }
352
+ function TypeField(_ref15) {
353
+ let {
354
+ excluded
355
+ } = _ref15;
356
+ const supportedLayers = (0, _lodash.filter)(_constants.EARTH_ENGINE_LAYERS, _ref16 => {
357
+ var _excluded$includes;
358
+ let {
359
+ id
360
+ } = _ref16;
361
+ return _constants.SUPPORTED_EARTH_ENGINE_LAYERS.includes(id) && !((_excluded$includes = excluded === null || excluded === void 0 ? void 0 : excluded.includes(id)) !== null && _excluded$includes !== void 0 ? _excluded$includes : false);
362
+ });
363
+ const {
364
+ setValue
365
+ } = (0, _reactHookForm.useFormContext)();
366
+ const setConfigDefaults = selected => {
367
+ const config = (0, _lodash.find)(supportedLayers, ["id", selected]);
368
+ if (!config) return;
369
+ if (config !== null && config !== void 0 && config.defaultAggregations) {
370
+ setValue("aggregations", config === null || config === void 0 ? void 0 : config.defaultAggregations);
371
+ } else {
372
+ setValue("aggregations", undefined);
373
+ }
374
+ if (config !== null && config !== void 0 && config.params) {
375
+ const {
376
+ max,
377
+ min,
378
+ palette
379
+ } = config.params;
380
+ setValue("params.max", max);
381
+ setValue("params.min", min);
382
+ setValue("params.palette", palette);
383
+ } else {
384
+ setValue("params", undefined);
385
+ }
386
+ };
387
+ return /*#__PURE__*/_react.default.createElement(_reactHookForm.Controller, {
388
+ name: "type",
389
+ rules: {
390
+ required: _d2I18n.default.t("Type is required")
391
+ },
392
+ render: _ref17 => {
393
+ var _fieldState$error9;
394
+ let {
395
+ field,
396
+ fieldState
397
+ } = _ref17;
398
+ return /*#__PURE__*/_react.default.createElement(_ui.SingleSelectField, {
399
+ label: _d2I18n.default.t("Layer type"),
400
+ required: true,
401
+ error: Boolean(fieldState.error),
402
+ validationText: (_fieldState$error9 = fieldState.error) === null || _fieldState$error9 === void 0 ? void 0 : _fieldState$error9.message,
403
+ onChange: _ref18 => {
404
+ let {
405
+ selected
406
+ } = _ref18;
407
+ setConfigDefaults(selected);
408
+ field.onChange(selected);
409
+ },
410
+ selected: Boolean((0, _lodash.find)(supportedLayers, "id", field.value)) ? field.value : undefined
411
+ }, supportedLayers === null || supportedLayers === void 0 ? void 0 : supportedLayers.map(layer => /*#__PURE__*/_react.default.createElement(_ui.SingleSelectOption, {
412
+ key: `${layer.id}-option`,
413
+ value: layer.id,
414
+ label: layer.name
415
+ })));
416
+ }
417
+ });
418
+ }
419
+ function EarthEngineLayerConfiguration(_ref19) {
420
+ let {
421
+ form,
422
+ excluded
423
+ } = _ref19;
424
+ return /*#__PURE__*/_react.default.createElement(_reactHookForm.FormProvider, form, /*#__PURE__*/_react.default.createElement("div", {
425
+ className: "column gap-16"
426
+ }, /*#__PURE__*/_react.default.createElement(TypeField, {
427
+ excluded: excluded
428
+ }), /*#__PURE__*/_react.default.createElement(Name, null), /*#__PURE__*/_react.default.createElement(AggregationSelector, null), /*#__PURE__*/_react.default.createElement(PeriodSelector, null), /*#__PURE__*/_react.default.createElement(StylesConfig, null)));
429
+ }
430
+ function EarthEngineLayerConfigModal(_ref20) {
431
+ let {
432
+ open,
433
+ exclude,
434
+ config,
435
+ onClose,
436
+ onChange,
437
+ ...props
438
+ } = _ref20;
439
+ const form = (0, _reactHookForm.useForm)({
440
+ defaultValues: config !== null && config !== void 0 ? config : {}
441
+ });
442
+ const onSubmitClick = values => {
443
+ onClose();
444
+ onChange(values);
445
+ };
446
+ return /*#__PURE__*/_react.default.createElement(_ui.Modal, _extends({}, props, {
447
+ open: open,
448
+ onClose: onClose
449
+ }), /*#__PURE__*/_react.default.createElement(_ui.ModalTitle, null, _d2I18n.default.t("Configure Earth Engine Layer")), /*#__PURE__*/_react.default.createElement(_ui.ModalContent, null, /*#__PURE__*/_react.default.createElement(EarthEngineLayerConfiguration, {
450
+ form: form,
451
+ excluded: exclude
452
+ })), /*#__PURE__*/_react.default.createElement(_ui.ModalActions, null, /*#__PURE__*/_react.default.createElement(_ui.ButtonStrip, null, /*#__PURE__*/_react.default.createElement(_ui.Button, {
453
+ onClick: onClose
454
+ }, _d2I18n.default.t("Cancel")), /*#__PURE__*/_react.default.createElement(_ui.Button, {
455
+ primary: true,
456
+ onClick: form.handleSubmit(onSubmitClick)
457
+ }, _d2I18n.default.t("Save")))));
458
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _dhis2Utils = require("@hisptz/dhis2-utils");
8
+ var _lodash = require("lodash");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactLeaflet = require("react-leaflet");
11
+ var _map = require("../../hooks/map");
12
+ var _MapControls = _interopRequireDefault(require("../MapControls"));
13
+ var _MapLayer = _interopRequireDefault(require("../MapLayer"));
14
+ var _LegendArea = _interopRequireDefault(require("../MapLayer/components/LegendArea"));
15
+ var _MapLayerProvider = require("../MapProvider/components/MapLayerProvider");
16
+ var _hooks = require("../MapProvider/hooks");
17
+ var _MapUpdater = _interopRequireDefault(require("../MapUpdater"));
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+ function MapLayerArea(_ref) {
23
+ var _base$attribution, _base$url;
24
+ let {
25
+ id,
26
+ base,
27
+ controls,
28
+ legends
29
+ } = _ref;
30
+ const {
31
+ layers
32
+ } = (0, _hooks.useMapLayers)();
33
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactLeaflet.TileLayer, {
34
+ id: id,
35
+ attribution: (_base$attribution = base === null || base === void 0 ? void 0 : base.attribution) !== null && _base$attribution !== void 0 ? _base$attribution : '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> | &copy; <a href="https://carto.com/attribution">CARTO</a>',
36
+ url: (_base$url = base === null || base === void 0 ? void 0 : base.url) !== null && _base$url !== void 0 ? _base$url : "https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png"
37
+ }), controls === null || controls === void 0 ? void 0 : controls.map(control => /*#__PURE__*/_react.default.createElement(_MapControls.default, _extends({
38
+ mapId: id,
39
+ key: `${control.type}-control`
40
+ }, control))), !(0, _lodash.isEmpty)(layers) && /*#__PURE__*/_react.default.createElement(_reactLeaflet.LayersControl, {
41
+ hideSingleBase: true,
42
+ position: "topleft"
43
+ }, layers.map((layer, index) => /*#__PURE__*/_react.default.createElement(_MapLayer.default, {
44
+ key: layer.id,
45
+ layer: layer,
46
+ index: index
47
+ }))), !(0, _lodash.isEmpty)(layers) && /*#__PURE__*/_react.default.createElement(_LegendArea.default, {
48
+ legends: legends,
49
+ layers: layers,
50
+ position: "topright"
51
+ }));
52
+ }
53
+ const MapArea = (_ref2, ref) => {
54
+ let {
55
+ base,
56
+ controls,
57
+ mapOptions,
58
+ key,
59
+ legends,
60
+ layers
61
+ } = _ref2;
62
+ const {
63
+ center,
64
+ bounds
65
+ } = (0, _map.useMapBounds)();
66
+ const {
67
+ current: id
68
+ } = (0, _react.useRef)((0, _dhis2Utils.uid)());
69
+ return /*#__PURE__*/_react.default.createElement("div", {
70
+ id: `${id}-"map-container`,
71
+ style: {
72
+ height: "100%",
73
+ width: "100%"
74
+ }
75
+ }, /*#__PURE__*/_react.default.createElement(_reactLeaflet.MapContainer, _extends({
76
+ attributionControl: true,
77
+ ref: ref,
78
+ id: id,
79
+ center: center,
80
+ bounceAtZoomLimits: true,
81
+ bounds: bounds,
82
+ style: {
83
+ height: "100%",
84
+ width: "100%",
85
+ minHeight: 500
86
+ },
87
+ key: key,
88
+ trackResize: true
89
+ }, mapOptions), /*#__PURE__*/_react.default.createElement(_MapUpdater.default, {
90
+ bounds: bounds
91
+ }), /*#__PURE__*/_react.default.createElement(_MapLayerProvider.MapLayersProvider, {
92
+ layers: layers
93
+ }, /*#__PURE__*/_react.default.createElement(MapLayerArea, {
94
+ base: base,
95
+ id: id,
96
+ controls: controls,
97
+ legends: legends
98
+ }))));
99
+ };
100
+ var _default = /*#__PURE__*/(0, _react.forwardRef)(MapArea);
101
+ exports.default = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CustomControl = CustomControl;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
10
+ const POSITION_CLASSES = {
11
+ bottomleft: "leaflet-bottom leaflet-left",
12
+ bottomright: "leaflet-bottom leaflet-right",
13
+ topleft: "leaflet-top leaflet-left",
14
+ topright: "leaflet-top leaflet-right"
15
+ };
16
+ function CustomControl(_ref) {
17
+ let {
18
+ children,
19
+ position,
20
+ ...options
21
+ } = _ref;
22
+ const positionClass = position && POSITION_CLASSES[position] || POSITION_CLASSES.topright;
23
+ return /*#__PURE__*/_react.default.createElement("div", _extends({}, options, {
24
+ className: `${positionClass}`
25
+ }), /*#__PURE__*/_react.default.createElement("div", {
26
+ style: {
27
+ overflow: "hidden",
28
+ border: "none"
29
+ },
30
+ className: "leaflet-control leaflet-bar"
31
+ }, children));
32
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = DownloadControl;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _core = require("@react-leaflet/core");
9
+ var _leaflet = _interopRequireDefault(require("leaflet"));
10
+ require("leaflet-easyprint");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
13
+ const DownloadControlComponent = (0, _core.createControlComponent)(props => {
14
+ return _leaflet.default.easyPrint(props);
15
+ });
16
+ function DownloadControl(_ref) {
17
+ let {
18
+ options,
19
+ position,
20
+ mapId
21
+ } = _ref;
22
+ return /*#__PURE__*/_react.default.createElement(DownloadControlComponent, _extends({}, options, {
23
+ position
24
+ }));
25
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _core = require("@react-leaflet/core");
8
+ var _leaflet = require("leaflet");
9
+ require("leaflet.fullscreen");
10
+ require("leaflet.fullscreen/Control.FullScreen.css");
11
+ const FullscreenControl = (0, _core.createControlComponent)(props => _leaflet.control.fullscreen(props));
12
+ var _default = FullscreenControl;
13
+ exports.default = _default;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = MapControl;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactLeaflet = require("react-leaflet");
9
+ var _FullscreenControl = _interopRequireDefault(require("./components/FullscreenControl"));
10
+ var _DownloadControl = _interopRequireDefault(require("./components/DownloadControl"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
13
+ function MapControl(_ref) {
14
+ let {
15
+ type,
16
+ options,
17
+ position,
18
+ mapId
19
+ } = _ref;
20
+ switch (type) {
21
+ case "zoom":
22
+ return /*#__PURE__*/_react.default.createElement(_reactLeaflet.ZoomControl, _extends({
23
+ position: position
24
+ }, options));
25
+ case "scale":
26
+ return /*#__PURE__*/_react.default.createElement(_reactLeaflet.ScaleControl, _extends({
27
+ position: position
28
+ }, options));
29
+ case "fullscreen":
30
+ return /*#__PURE__*/_react.default.createElement(_FullscreenControl.default, _extends({
31
+ position: position
32
+ }, options));
33
+ case "print":
34
+ return /*#__PURE__*/_react.default.createElement(_DownloadControl.default, {
35
+ mapId: mapId,
36
+ position: position,
37
+ options: options
38
+ });
39
+ default:
40
+ return null;
41
+ }
42
+ }