@hisptz/dhis2-analytics 1.0.5 → 1.0.7

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 (367) 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 +14 -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/locales/en/translations.json +128 -0
  102. package/build/cjs/locales/index.js +22 -0
  103. package/build/es/components/ChartAnalytics/ChartAnalytics.stories.js +235 -0
  104. package/build/es/components/ChartAnalytics/ChartAnalytics.test.js +46 -0
  105. package/build/es/components/ChartAnalytics/components/DownloadMenu/components/Menu.js +41 -0
  106. package/build/es/components/ChartAnalytics/components/DownloadMenu/constants/menu.js +26 -0
  107. package/build/es/components/ChartAnalytics/components/DownloadMenu/index.js +58 -0
  108. package/build/es/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.js +1 -0
  109. package/build/es/components/ChartAnalytics/data/column-data.json +210 -0
  110. package/build/es/components/ChartAnalytics/data/complex-multi-series-data.json +124 -0
  111. package/build/es/components/ChartAnalytics/data/multi-series-data.json +536 -0
  112. package/build/es/components/ChartAnalytics/data/pie-data.json +115 -0
  113. package/build/es/components/ChartAnalytics/data/stacked-chart-data.json +415 -0
  114. package/build/es/components/ChartAnalytics/hooks/useChart.js +32 -0
  115. package/build/es/components/ChartAnalytics/index.js +40 -0
  116. package/build/es/components/ChartAnalytics/models/column.js +45 -0
  117. package/build/es/components/ChartAnalytics/models/index.js +95 -0
  118. package/build/es/components/ChartAnalytics/models/line.js +28 -0
  119. package/build/es/components/ChartAnalytics/models/multi-series.js +104 -0
  120. package/build/es/components/ChartAnalytics/models/pie.js +46 -0
  121. package/build/es/components/ChartAnalytics/services/export.js +36 -0
  122. package/build/es/components/ChartAnalytics/styles/custom-highchart.css +48 -0
  123. package/build/es/components/ChartAnalytics/types/props.js +1 -0
  124. package/build/es/components/ChartAnalytics/utils/chart.js +122 -0
  125. package/{src/components/CircularProgressDashboard/CircularProgressIndicator.stories.tsx → build/es/components/CircularProgressDashboard/CircularProgressIndicator.stories.js} +9 -16
  126. package/build/es/components/CircularProgressDashboard/CircularProgressIndicator.test.js +10 -0
  127. package/build/es/components/CircularProgressDashboard/index.js +41 -0
  128. package/build/es/components/CircularProgressDashboard/types/props.js +1 -0
  129. package/build/es/components/Map/Map.stories.js +334 -0
  130. package/build/es/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.js +23 -0
  131. package/build/es/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.js +31 -0
  132. package/build/es/components/Map/components/EarthEngineLayerConfiguration/index.js +448 -0
  133. package/build/es/components/Map/components/MapArea/index.js +91 -0
  134. package/build/es/components/Map/components/MapArea/interfaces/index.js +1 -0
  135. package/build/es/components/Map/components/MapControls/components/CustomControl/index.js +25 -0
  136. package/build/es/components/Map/components/MapControls/components/DownloadControl/index.js +18 -0
  137. package/build/es/components/Map/components/MapControls/components/FullscreenControl/index.js +6 -0
  138. package/build/es/components/Map/components/MapControls/index.js +35 -0
  139. package/build/es/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.js +7 -0
  140. package/build/es/components/Map/components/MapLayer/components/BoundaryLayer/index.js +41 -0
  141. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.js +95 -0
  142. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.js +369 -0
  143. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.js +29 -0
  144. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/index.js +191 -0
  145. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.js +1 -0
  146. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +14 -0
  147. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.js +403 -0
  148. package/build/es/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.js +111 -0
  149. package/build/es/components/Map/components/MapLayer/components/LegendArea/LegendArea.module.css +12 -0
  150. package/build/es/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js +19 -0
  151. package/build/es/components/Map/components/MapLayer/components/LegendArea/index.js +172 -0
  152. package/build/es/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.js +76 -0
  153. package/build/es/components/Map/components/MapLayer/components/PointLayer/hooks/index.js +8 -0
  154. package/build/es/components/Map/components/MapLayer/components/PointLayer/index.js +39 -0
  155. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.js +49 -0
  156. 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
  157. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.js +33 -0
  158. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.js +47 -0
  159. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js +50 -0
  160. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js +36 -0
  161. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js +28 -0
  162. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.js +9 -0
  163. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/index.js +50 -0
  164. package/build/es/components/Map/components/MapLayer/components/ThematicLayer/styles/legends.css +62 -0
  165. package/build/es/components/Map/components/MapLayer/index.js +33 -0
  166. package/build/es/components/Map/components/MapLayer/interfaces/index.js +1 -0
  167. package/build/es/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.js +381 -0
  168. package/build/es/components/Map/components/MapProvider/components/MapLayerProvider/index.js +107 -0
  169. package/{src/components/Map/components/MapProvider/hooks/index.ts → build/es/components/Map/components/MapProvider/hooks/index.js} +3 -6
  170. package/build/es/components/Map/components/MapProvider/index.js +112 -0
  171. package/build/es/components/Map/components/MapUpdater/index.js +17 -0
  172. package/build/es/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.js +23 -0
  173. package/build/es/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.js +31 -0
  174. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.js +33 -0
  175. package/{src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.ts → build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.js} +46 -59
  176. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.js +53 -0
  177. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScale.module.css +15 -0
  178. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/styles/ColorScaleSelect.module.css +12 -0
  179. package/build/es/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.js +56 -0
  180. package/build/es/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.js +64 -0
  181. package/build/es/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.js +38 -0
  182. package/build/es/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.js +70 -0
  183. package/build/es/components/Map/components/ThematicLayerConfiguration/index.js +254 -0
  184. package/{src/components/Map/constants/colors.ts → build/es/components/Map/constants/colors.js} +46 -59
  185. package/build/es/components/Map/constants/legendSet.js +15 -0
  186. package/build/es/components/Map/hooks/map.js +44 -0
  187. package/build/es/components/Map/index.js +51 -0
  188. package/build/es/components/Map/interfaces/index.js +1 -0
  189. package/build/es/components/Map/state/index.js +14 -0
  190. package/build/es/components/Map/utils/colors.js +61 -0
  191. package/build/es/components/Map/utils/helpers.js +14 -0
  192. package/build/es/components/Map/utils/map.js +147 -0
  193. package/build/es/components/SingleValueContainer/SingleValueContainer.stories.js +115 -0
  194. package/build/es/components/SingleValueContainer/SingleValueContainer.test.js +20 -0
  195. package/build/es/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.js +47 -0
  196. package/build/es/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.js +17 -0
  197. package/build/es/components/SingleValueContainer/index.js +29 -0
  198. package/build/es/components/SingleValueContainer/styles/SingleValueContainer.module.css +39 -0
  199. package/build/es/components/SingleValueContainer/types/props.js +1 -0
  200. package/build/es/data/map.json +5984 -0
  201. package/build/es/dataProviders/map.js +24 -0
  202. package/build/es/index.js +5 -0
  203. package/build/es/locales/en/translations.json +128 -0
  204. package/build/es/locales/index.js +13 -0
  205. package/build/types/components/ChartAnalytics/components/DownloadMenu/components/Menu.d.ts +8 -0
  206. package/build/types/components/ChartAnalytics/components/DownloadMenu/constants/menu.d.ts +7 -0
  207. package/build/types/components/ChartAnalytics/components/DownloadMenu/index.d.ts +9 -0
  208. package/{src/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.ts → build/types/components/ChartAnalytics/components/DownloadMenu/interfaces/menu.d.ts} +0 -0
  209. package/build/types/components/ChartAnalytics/hooks/useChart.d.ts +11 -0
  210. package/build/types/components/ChartAnalytics/index.d.ts +9 -0
  211. package/build/types/components/ChartAnalytics/models/column.d.ts +12 -0
  212. package/build/types/components/ChartAnalytics/models/index.d.ts +17 -0
  213. package/build/types/components/ChartAnalytics/models/line.d.ts +8 -0
  214. package/build/types/components/ChartAnalytics/models/multi-series.d.ts +9 -0
  215. package/build/types/components/ChartAnalytics/models/pie.d.ts +8 -0
  216. package/build/types/components/ChartAnalytics/services/export.d.ts +8 -0
  217. package/build/types/components/ChartAnalytics/types/props.d.ts +43 -0
  218. package/build/types/components/ChartAnalytics/utils/chart.d.ts +15 -0
  219. package/build/types/components/CircularProgressDashboard/index.d.ts +3 -0
  220. package/build/types/components/CircularProgressDashboard/types/props.d.ts +17 -0
  221. package/build/types/components/Map/components/EarthEngineLayerConfiguration/index.d.ts +17 -0
  222. package/build/types/components/Map/components/MapArea/index.d.ts +5 -0
  223. package/build/types/components/Map/components/MapArea/interfaces/index.d.ts +30 -0
  224. package/build/types/components/Map/components/MapControls/components/CustomControl/index.d.ts +7 -0
  225. package/build/types/components/Map/components/MapControls/components/DownloadControl/index.d.ts +8 -0
  226. package/build/types/components/Map/components/MapControls/components/FullscreenControl/index.d.ts +5 -0
  227. package/build/types/components/Map/components/MapControls/index.d.ts +6 -0
  228. package/build/types/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.d.ts +1 -0
  229. package/build/types/components/Map/components/MapLayer/components/BoundaryLayer/index.d.ts +15 -0
  230. package/build/types/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.d.ts +17 -0
  231. package/build/types/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.d.ts +4 -0
  232. package/build/types/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.d.ts +9 -0
  233. package/build/types/components/Map/components/MapLayer/components/GoogleEngineLayer/index.d.ts +4 -0
  234. package/build/types/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.d.ts +58 -0
  235. package/build/types/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.d.ts +1 -0
  236. package/build/types/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.d.ts +55 -0
  237. package/build/types/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.d.ts +20 -0
  238. package/build/types/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.d.ts +6 -0
  239. package/build/types/components/Map/components/MapLayer/components/LegendArea/index.d.ts +9 -0
  240. package/build/types/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.d.ts +3 -0
  241. package/build/types/components/Map/components/MapLayer/components/PointLayer/hooks/index.d.ts +2 -0
  242. package/build/types/components/Map/components/MapLayer/components/PointLayer/index.d.ts +2 -0
  243. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.d.ts +13 -0
  244. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubbles.d.ts +10 -0
  245. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.d.ts +16 -0
  246. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.d.ts +12 -0
  247. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts +21 -0
  248. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.d.ts +12 -0
  249. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.d.ts +5 -0
  250. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.d.ts +2 -0
  251. package/build/types/components/Map/components/MapLayer/components/ThematicLayer/index.d.ts +5 -0
  252. package/build/types/components/Map/components/MapLayer/index.d.ts +6 -0
  253. package/build/types/components/Map/components/MapLayer/interfaces/index.d.ts +123 -0
  254. package/build/types/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.d.ts +9 -0
  255. package/build/types/components/Map/components/MapProvider/components/MapLayerProvider/index.d.ts +6 -0
  256. package/build/types/components/Map/components/MapProvider/hooks/index.d.ts +15 -0
  257. package/build/types/components/Map/components/MapProvider/index.d.ts +3 -0
  258. package/build/types/components/Map/components/MapUpdater/index.d.ts +5 -0
  259. package/build/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.d.ts +8 -0
  260. package/build/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/constants/colors.d.ts +419 -0
  261. package/build/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.d.ts +9 -0
  262. package/build/types/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.d.ts +11 -0
  263. package/build/types/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.d.ts +2 -0
  264. package/build/types/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.d.ts +8 -0
  265. package/build/types/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.d.ts +9 -0
  266. package/build/types/components/Map/components/ThematicLayerConfiguration/index.d.ts +18 -0
  267. package/build/types/components/Map/constants/colors.d.ts +419 -0
  268. package/build/types/components/Map/constants/legendSet.d.ts +7 -0
  269. package/build/types/components/Map/hooks/map.d.ts +9 -0
  270. package/build/types/components/Map/index.d.ts +8 -0
  271. package/build/types/components/Map/interfaces/index.d.ts +65 -0
  272. package/build/types/components/Map/state/index.d.ts +20 -0
  273. package/build/types/components/Map/utils/colors.d.ts +12 -0
  274. package/build/types/components/Map/utils/helpers.d.ts +6 -0
  275. package/build/types/components/Map/utils/map.d.ts +40 -0
  276. package/build/types/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.d.ts +8 -0
  277. package/build/types/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.d.ts +2 -0
  278. package/build/types/components/SingleValueContainer/index.d.ts +5 -0
  279. package/build/types/components/SingleValueContainer/types/props.d.ts +15 -0
  280. package/build/types/dataProviders/map.d.ts +4 -0
  281. package/{src/index.ts → build/types/index.d.ts} +0 -0
  282. package/package.json +26 -5
  283. package/d2.config.js +0 -8
  284. package/i18n/en.pot +0 -409
  285. package/src/components/ChartAnalytics/ChartAnalytics.stories.tsx +0 -250
  286. package/src/components/ChartAnalytics/ChartAnalytics.test.tsx +0 -51
  287. package/src/components/ChartAnalytics/components/DownloadMenu/components/Menu.tsx +0 -48
  288. package/src/components/ChartAnalytics/components/DownloadMenu/constants/menu.ts +0 -38
  289. package/src/components/ChartAnalytics/components/DownloadMenu/index.tsx +0 -67
  290. package/src/components/ChartAnalytics/hooks/useChart.ts +0 -35
  291. package/src/components/ChartAnalytics/index.tsx +0 -23
  292. package/src/components/ChartAnalytics/models/column.ts +0 -50
  293. package/src/components/ChartAnalytics/models/index.ts +0 -78
  294. package/src/components/ChartAnalytics/models/line.ts +0 -31
  295. package/src/components/ChartAnalytics/models/multi-series.ts +0 -115
  296. package/src/components/ChartAnalytics/models/pie.ts +0 -54
  297. package/src/components/ChartAnalytics/services/export.ts +0 -38
  298. package/src/components/ChartAnalytics/types/props.tsx +0 -48
  299. package/src/components/ChartAnalytics/utils/chart.ts +0 -123
  300. package/src/components/CircularProgressDashboard/CircularProgressIndicator.test.tsx +0 -9
  301. package/src/components/CircularProgressDashboard/index.tsx +0 -35
  302. package/src/components/CircularProgressDashboard/types/props.tsx +0 -17
  303. package/src/components/Map/Map.stories.tsx +0 -339
  304. package/src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfigModal.stories.tsx +0 -28
  305. package/src/components/Map/components/EarthEngineLayerConfiguration/EarthEngineLayerConfiguration.stories.tsx +0 -34
  306. package/src/components/Map/components/EarthEngineLayerConfiguration/index.tsx +0 -412
  307. package/src/components/Map/components/MapArea/index.tsx +0 -83
  308. package/src/components/Map/components/MapArea/interfaces/index.ts +0 -39
  309. package/src/components/Map/components/MapControls/components/CustomControl/index.tsx +0 -24
  310. package/src/components/Map/components/MapControls/components/DownloadControl/index.tsx +0 -10
  311. package/src/components/Map/components/MapControls/components/FullscreenControl/index.tsx +0 -7
  312. package/src/components/Map/components/MapControls/index.tsx +0 -24
  313. package/src/components/Map/components/MapLayer/components/BoundaryLayer/hooks/useBoundaryData.ts +0 -7
  314. package/src/components/Map/components/MapLayer/components/BoundaryLayer/index.tsx +0 -55
  315. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/components/EarthEngineLegend.tsx +0 -76
  316. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/constants/index.ts +0 -430
  317. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/hooks/index.ts +0 -34
  318. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/index.tsx +0 -185
  319. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/interfaces/index.ts +0 -56
  320. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/services/api.js +0 -34233
  321. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/services/engine.ts +0 -431
  322. package/src/components/Map/components/MapLayer/components/GoogleEngineLayer/utils/index.ts +0 -105
  323. package/src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx +0 -17
  324. package/src/components/Map/components/MapLayer/components/LegendArea/index.tsx +0 -168
  325. package/src/components/Map/components/MapLayer/components/PointLayer/components/PointLegend/index.tsx +0 -44
  326. package/src/components/Map/components/MapLayer/components/PointLayer/hooks/index.ts +0 -8
  327. package/src/components/Map/components/MapLayer/components/PointLayer/index.tsx +0 -36
  328. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/components/Bubble.tsx +0 -48
  329. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/components/BubbleLegend/index.tsx +0 -39
  330. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Bubble/index.tsx +0 -57
  331. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.tsx +0 -43
  332. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx +0 -38
  333. package/src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx +0 -26
  334. package/src/components/Map/components/MapLayer/components/ThematicLayer/hooks/config.ts +0 -10
  335. package/src/components/Map/components/MapLayer/components/ThematicLayer/index.tsx +0 -46
  336. package/src/components/Map/components/MapLayer/index.tsx +0 -32
  337. package/src/components/Map/components/MapLayer/interfaces/index.ts +0 -139
  338. package/src/components/Map/components/MapProvider/components/MapLayerProvider/hooks/index.tsx +0 -359
  339. package/src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx +0 -105
  340. package/src/components/Map/components/MapProvider/index.tsx +0 -93
  341. package/src/components/Map/components/MapUpdater/index.tsx +0 -8
  342. package/src/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfigModal.stories.tsx +0 -28
  343. package/src/components/Map/components/ThematicLayerConfiguration/ThematicLayerConfiguration.stories.tsx +0 -34
  344. package/src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/components/ColorScale/index.tsx +0 -24
  345. package/src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/index.tsx +0 -50
  346. package/src/components/Map/components/ThematicLayerConfiguration/components/ColorScaleSelect/utils/colors.ts +0 -91
  347. package/src/components/Map/components/ThematicLayerConfiguration/components/CustomLegend/index.tsx +0 -45
  348. package/src/components/Map/components/ThematicLayerConfiguration/components/IndicatorSelectorModal/index.tsx +0 -47
  349. package/src/components/Map/components/ThematicLayerConfiguration/components/LegendSetSelector/index.tsx +0 -57
  350. package/src/components/Map/components/ThematicLayerConfiguration/index.tsx +0 -248
  351. package/src/components/Map/constants/legendSet.ts +0 -19
  352. package/src/components/Map/hooks/map.ts +0 -47
  353. package/src/components/Map/index.tsx +0 -65
  354. package/src/components/Map/interfaces/index.ts +0 -57
  355. package/src/components/Map/state/index.tsx +0 -31
  356. package/src/components/Map/utils/colors.ts +0 -95
  357. package/src/components/Map/utils/helpers.ts +0 -15
  358. package/src/components/Map/utils/map.ts +0 -150
  359. package/src/components/SingleValueContainer/SingleValueContainer.stories.tsx +0 -146
  360. package/src/components/SingleValueContainer/SingleValueContainer.test.tsx +0 -24
  361. package/src/components/SingleValueContainer/components/SingleValueItem/SingleValueItem.tsx +0 -46
  362. package/src/components/SingleValueContainer/components/SingleValueItem/SingleValuePercentage.tsx +0 -12
  363. package/src/components/SingleValueContainer/index.tsx +0 -30
  364. package/src/components/SingleValueContainer/types/props.tsx +0 -16
  365. package/src/dataProviders/map.tsx +0 -24
  366. package/src/index.test.ts +0 -7
  367. package/tsconfig.json +0 -45
@@ -1,431 +0,0 @@
1
- import {MapOrgUnit} from "../../../../../interfaces";
2
- import {EarthEngineOptions, EarthEngineToken, RefreshToken} from "../interfaces";
3
- import {
4
- combineReducers,
5
- getFeatureCollectionProperties,
6
- getHistogramStatistics,
7
- getInfo,
8
- getScale,
9
- hasClasses
10
- } from "../utils";
11
- import {find, head, isEmpty} from "lodash";
12
-
13
- async function importEEModule(): Promise<any> {
14
- // @ts-ignore
15
- if (import.meta.env.STORYBOOK_BUILD === "true") {
16
- return await import("@google/earthengine")
17
- }
18
- return await import("./api")
19
- }
20
-
21
- const EE = await importEEModule();
22
-
23
- // @ts-ignore
24
- const ee = EE as any;
25
- // @ts-ignore
26
- window.ee = ee;
27
-
28
- const FEATURE_STYLE = {color: "FFA500", strokeWidth: 2};
29
- const DEFAULT_TILE_SCALE = 1;
30
-
31
- export class EarthEngine {
32
- token?: EarthEngineToken;
33
- options: EarthEngineOptions;
34
- refresh?: RefreshToken;
35
- orgUnits?: MapOrgUnit[];
36
- initialized = false;
37
- period?: string | string[];
38
- instance: any;
39
- scale?: any;
40
- image: any;
41
- aggregationData: any;
42
-
43
- constructor({options}: { options: EarthEngineOptions }) {
44
- this.options = options;
45
- this.initialized = true;
46
- this.getInstance();
47
- }
48
-
49
- static async setToken(token: EarthEngineToken, refresh: RefreshToken): Promise<void> {
50
- const tokenType = "Bearer";
51
-
52
- function refreshToken(authArgs: { scope: any }, callback: (props: any) => void) {
53
- refresh().then(({token}: { token: EarthEngineToken }) => {
54
- callback({
55
- ...token,
56
- token_type: tokenType ?? "Bearer",
57
- state: authArgs?.scope,
58
- });
59
- });
60
- }
61
-
62
- await new Promise((resolve, reject) => {
63
- if (ee.data.getAuthToken()) {
64
- ee.initialize(null, null, resolve, reject);
65
- }
66
- if (token) {
67
- const {access_token, client_id, expires_in} = token;
68
- ee.data.setAuthToken(
69
- client_id,
70
- tokenType ?? "Bearer",
71
- access_token,
72
- expires_in,
73
- null,
74
- () => {
75
- ee.initialize(null, null, resolve, reject);
76
- },
77
- false
78
- );
79
- ee.data.setAuthTokenRefresher(refreshToken);
80
- }
81
- resolve("Token not found");
82
- });
83
- }
84
-
85
- setOrgUnits(orgUnits: MapOrgUnit[]): EarthEngine {
86
- this.orgUnits = orgUnits;
87
- return this;
88
- }
89
-
90
- setPeriod(period: string) {
91
- this.period = period;
92
- }
93
-
94
- async getValue(geoJSON: any, type: string) {
95
- return new Promise((resolve, reject) => {
96
- const point = this.getGeometryByType(geoJSON);
97
- const reducer = this.getReducerByType(type);
98
- const image = this.getImage();
99
-
100
- const reducedImage = image.reduceRegion(reducer, point, 1);
101
-
102
- reducedImage.evaluate((data: unknown, error: any) => {
103
- if (error) {
104
- reject(error);
105
- } else {
106
- resolve(data);
107
- }
108
- });
109
- });
110
- }
111
-
112
- async getPeriod() {
113
- const {type} = this.options;
114
- if (type !== "ImageCollection") {
115
- return;
116
- }
117
-
118
- const imageCollection = this.instance.distinct("system:time_start").sort("system:time_start", false);
119
- const featureCollection = ee.FeatureCollection(imageCollection).select(["system:time_start", "system:time_end"], null, false);
120
-
121
- return getInfo(featureCollection);
122
- }
123
-
124
- async info() {
125
- return new Promise((resolve) => {
126
- this.instance.getInfo(resolve);
127
- });
128
- }
129
-
130
- async getScale() {
131
- try {
132
- const {type} = this.options;
133
- switch (type) {
134
- case "ImageCollection":
135
- this.scale = await getScale(this.instance.first());
136
- break;
137
- default:
138
- this.scale = await getScale(this.getImage());
139
- }
140
- } catch (e) {
141
- }
142
- }
143
-
144
- async getFeatureCollectionAggregation() {
145
- const {datasetId} = this.options;
146
- const dataset = ee.FeatureCollection(datasetId);
147
- const collection = this.getFeatureCollection() as any;
148
- const aggFeatures = collection
149
- ?.map((feature: any) => {
150
- feature = ee.Feature(feature);
151
- const count = dataset.filterBounds(feature.geometry()).size();
152
-
153
- return feature.set("count", count);
154
- })
155
- .select(["count"], null, false);
156
-
157
- return getInfo(aggFeatures).then(getFeatureCollectionProperties);
158
- }
159
-
160
- async getHistogramAggregations() {
161
- try {
162
- const aggregation = head(this.options.aggregations) ?? "";
163
- const reducer = ee.Reducer.frequencyHistogram();
164
- const collection = this.getFeatureCollection();
165
- const legend = this.options.legend?.items;
166
- const scale = this.scale;
167
- const tileScale = this.options.tileScale ?? DEFAULT_TILE_SCALE;
168
- const scaleValue = await getInfo(scale);
169
-
170
- const image = this.getImage();
171
- const features = Object.values(
172
- await getInfo(
173
- image
174
- .reduceRegions({
175
- collection,
176
- reducer,
177
- scale,
178
- tileScale,
179
- })
180
- .select(["histogram"], null, false)
181
- ).then((data) =>
182
- getHistogramStatistics({
183
- data,
184
- scale: scaleValue,
185
- aggregationType: aggregation,
186
- legend,
187
- })
188
- )
189
- );
190
-
191
- return features.map((feature: any, index: number) => {
192
- return {
193
- orgUnit: this.orgUnits?.[index],
194
- data: feature,
195
- };
196
- });
197
- } catch (e: any) {
198
- throw Error("Could not get histogram", {
199
- cause: e,
200
- });
201
- }
202
- }
203
-
204
- async getAggregations() {
205
- await this.getScale();
206
- const {type} = this.options;
207
- if (type === "FeatureCollection") {
208
- this.aggregationData = await this.getFeatureCollectionAggregation();
209
- return;
210
- }
211
- const aggregations = this.options.aggregations;
212
- if (!aggregations) return;
213
-
214
- if (hasClasses(head(aggregations) ?? "")) {
215
- this.aggregationData = await this.getHistogramAggregations();
216
- return;
217
- }
218
-
219
- const reducer = combineReducers(ee)(aggregations);
220
- const collection = this.getFeatureCollection();
221
- const image = this.getImage();
222
- const scale = this.scale;
223
- const tileScale = this.options.tileScale ?? DEFAULT_TILE_SCALE;
224
- const aggregatedFeatures = image
225
- .reduceRegions({
226
- collection,
227
- reducer,
228
- scale,
229
- tileScale,
230
- })
231
- .select(aggregations, null, false);
232
-
233
- const features = Object.values(getFeatureCollectionProperties(await getInfo(aggregatedFeatures))) as any[];
234
- if (!isEmpty(features) && features.length === this.orgUnits?.length) {
235
- //Mapping features to orgUnits using index.
236
- this.aggregationData = features.map((feature: any, index: number) => {
237
- return {
238
- orgUnit: this.orgUnits?.[index],
239
- data: feature,
240
- };
241
- });
242
- }
243
- }
244
-
245
- getAggregation(orgUnit: MapOrgUnit) {
246
- if (isEmpty(this.aggregationData)) {
247
- return;
248
- }
249
- return find(this.aggregationData, (aggregation) => aggregation.orgUnit.id === orgUnit.id);
250
- }
251
-
252
- async url(): Promise<string> {
253
- if (!this.initialized) throw "You need to call init() first";
254
- return this.visualize(this.getImage());
255
- }
256
-
257
- protected applyPeriod(imageCollection: any) {
258
- const period = this.period;
259
- if (period) {
260
- return imageCollection.filterDate(period);
261
- }
262
- }
263
-
264
- protected applyMask(image: any) {
265
- if (this.options.mask) {
266
- return image.updateMask(image.gt(0));
267
- } else {
268
- return image;
269
- }
270
- }
271
-
272
- protected applyBand(imageCollection: any) {
273
- if (this.options.selectedBands) {
274
- return imageCollection.select(this.options.selectedBands);
275
- } else {
276
- return imageCollection;
277
- }
278
- }
279
-
280
- protected getReducerByType(type: string) {
281
- return ee.Reducer[type].call();
282
- }
283
-
284
- protected getGeometryByType(geoJSON: any) {
285
- return ee.Geometry(geoJSON?.geometry);
286
- }
287
-
288
- protected getFeatureByType(geoJSON: any) {
289
- const featureType = geoJSON.type;
290
- const features = geoJSON.features ?? [];
291
- const geometry = this.getGeometryByType(geoJSON);
292
- switch (featureType) {
293
- case "Feature":
294
- return ee.Feature(geometry);
295
- case "FeatureCollection":
296
- return ee.FeatureCollection([...features.map((feature: any) => ee.Feature(this.getGeometryByType(feature)))]);
297
- }
298
- }
299
-
300
- protected getFeatureCollection(): unknown {
301
- if (this.orgUnits) {
302
- return ee.FeatureCollection(this.orgUnits.map((orgUnit: MapOrgUnit) => this.getFeatureByType(orgUnit.geoJSON)));
303
- } else {
304
- throw "You need to set org units first";
305
- }
306
- }
307
-
308
- protected getParamsFromLegend() {
309
- if (!this.options.legend) return;
310
- const legend = this.options.legend.items;
311
- const keys = legend.map((l) => l.id);
312
- const min = Math.min(...keys);
313
- const max = Math.max(...keys);
314
- const palette = legend.map((l) => l.color).join(",");
315
- return {min, max, palette};
316
- }
317
-
318
- protected async visualize(image: any): Promise<string> {
319
- const {min, max, palette} = this.getParamsFromLegend() ??
320
- this.options.params ?? {
321
- min: null,
322
- max: null,
323
- palette: null,
324
- };
325
- return (
326
- (await new Promise((resolve, reject) => {
327
- image.getMap({min, max, palette}, resolve);
328
- })) as any
329
- )?.urlFormat;
330
- }
331
-
332
- protected getImageCollectionInstance() {
333
- const {datasetId} = this.options;
334
- let imageCollection = ee.ImageCollection(datasetId);
335
- if (this.period) {
336
- imageCollection = this.applyPeriod(imageCollection);
337
- }
338
- imageCollection = this.applyBand(imageCollection);
339
- return imageCollection;
340
- }
341
-
342
- protected getImageFromImageCollection() {
343
- const {mosaic} = this.options;
344
- const imageCollection = this.instance;
345
- return mosaic
346
- ? imageCollection.mosaic().clipToCollection(this.getFeatureCollection())
347
- : ee.Image(imageCollection.first()).clipToCollection(this.getFeatureCollection());
348
- }
349
-
350
- protected getImageInstance() {
351
- const {datasetId} = this.options;
352
- return ee.Image(datasetId).clipToCollection(this.getFeatureCollection());
353
- }
354
-
355
- protected getImageFromImage() {
356
- return this.instance;
357
- }
358
-
359
- protected getFeatureInstance() {
360
- const {datasetId} = this.options;
361
- const feature = ee.Feature(datasetId);
362
- this.instance = feature;
363
- return feature;
364
- }
365
-
366
- protected getImageFromFeature() {
367
- return this.instance;
368
- }
369
-
370
- protected getFeatureCollectionInstance() {
371
- const {datasetId} = this.options;
372
- let featureCollection = ee.FeatureCollection(datasetId);
373
- if (this.period) {
374
- featureCollection = this.applyPeriod(featureCollection);
375
- }
376
- return featureCollection;
377
- }
378
-
379
- protected getImageFromFeatureCollection() {
380
- let featureCollection = this.instance;
381
- return featureCollection.draw(FEATURE_STYLE).clipToCollection(this.getFeatureCollection());
382
- }
383
-
384
- protected getInstance() {
385
- const {type} = this.options;
386
- switch (type) {
387
- case "Feature":
388
- this.instance = this.getFeatureInstance();
389
- break;
390
- case "FeatureCollection":
391
- this.instance = this.getFeatureCollectionInstance();
392
- break;
393
- case "Image":
394
- this.instance = this.getImageInstance();
395
- break;
396
- case "ImageCollection":
397
- this.instance = this.getImageCollectionInstance();
398
- break;
399
- default:
400
- this.instance = this.getImageFromImage();
401
- }
402
- }
403
-
404
- protected getImage(): any {
405
- if (this.image) {
406
- return this.image;
407
- }
408
- const {type} = this.options;
409
- let image;
410
- switch (type) {
411
- case "Feature":
412
- image = this.getImageFromFeature();
413
- break;
414
- case "FeatureCollection":
415
- image = this.getImageFromFeatureCollection();
416
- break;
417
- case "Image":
418
- image = this.getImageFromImage();
419
- break;
420
- case "ImageCollection":
421
- image = this.getImageFromImageCollection();
422
- break;
423
- default:
424
- image = this.getImageFromImage();
425
- }
426
- image = this.applyMask(image);
427
- image = this.applyBand(image);
428
- this.image = image;
429
- return image;
430
- }
431
- }
@@ -1,105 +0,0 @@
1
- import {EarthEngineOptions} from "../interfaces";
2
-
3
- export const combineReducers = (ee: any) => (types: string[]) =>
4
- types.reduce(
5
- (r: any, t: any, i: any) =>
6
- i === 0
7
- ? r[t]()
8
- : r.combine({
9
- reducer2: ee.Reducer[t](),
10
- sharedInputs: true,
11
- }),
12
- ee.Reducer
13
- );
14
-
15
- export const getInfo = (instance: any) =>
16
- new Promise((resolve, reject) =>
17
- instance.evaluate((data: any, error: Error) => {
18
- if (error) {
19
- reject(error);
20
- } else {
21
- resolve(data);
22
- }
23
- })
24
- );
25
-
26
- export const getFeatureCollectionProperties = (data: any) =>
27
- data.features.reduce(
28
- (obj: any, f: any) => ({
29
- ...obj,
30
- [f.id]: f.properties,
31
- }),
32
- {}
33
- );
34
-
35
- export const getScale = async (image: any) => {
36
- return image.select(0).projection().nominalScale();
37
- };
38
-
39
- const getParamsFromLegend = (legend: any[]) => {
40
- const keys = legend.map((l) => l.id);
41
- const min = Math.min(...keys);
42
- const max = Math.max(...keys);
43
- const palette = legend.map((l) => l.color).join(",");
44
-
45
- return { min, max, palette };
46
- };
47
-
48
- export const getClassifiedImage = (eeImage: any, { legend: legends, params }: EarthEngineOptions) => {
49
- const legend = legends?.items ?? [];
50
- if (!params) {
51
- // Image has classes (e.g. landcover)
52
- return { eeImage, params: getParamsFromLegend(legend) };
53
- }
54
-
55
- const min = 0;
56
- const max = legend.length - 1;
57
- const { palette } = params;
58
- let zones;
59
-
60
- for (let i = min, item; i < max; i++) {
61
- item = legend[i] as any;
62
-
63
- if (!zones) {
64
- zones = eeImage.gt(item.to);
65
- } else {
66
- zones = zones.add(eeImage.gt(item.to));
67
- }
68
- }
69
-
70
- return { eeImage: zones, params: { min, max, palette } };
71
- };
72
-
73
- const squareMetersToHectares = (value: number) => value / 10000;
74
-
75
- const squareMetersToAcres = (value: number) => value / 4046.8564224;
76
-
77
- const classAggregation = ["percentage", "hectares", "acres"];
78
-
79
- export const hasClasses = (type: string) => classAggregation.includes(type);
80
-
81
- export const getHistogramStatistics = ({ data, scale, aggregationType, legend }: { data: any; scale: any; aggregationType: string; legend: any }) =>
82
- data.features.reduce((obj: Record<any, any>, { id, properties }: { id: string; properties: any }) => {
83
- const { histogram } = properties;
84
- const sum: number = Object.values(histogram).reduce((a: any, b: any) => a + b, 0) as number;
85
- obj[id] = legend.reduce((values: any, { id }: { id: string }) => {
86
- const count = histogram[id] || 0;
87
- const sqMeters = count * (scale * scale);
88
- let value;
89
- switch (aggregationType) {
90
- case "hectares":
91
- value = Math.round(squareMetersToHectares(sqMeters));
92
- break;
93
- case "acres":
94
- value = Math.round(squareMetersToAcres(sqMeters));
95
- break;
96
- default:
97
- value = (count / sum) * 100; // percentage
98
- }
99
-
100
- values[id] = value;
101
-
102
- return values;
103
- }, {});
104
- return obj;
105
- }, {});
@@ -1,17 +0,0 @@
1
- import {IconLaunch16} from "@dhis2/ui";
2
- import React from "react";
3
-
4
- export default function LegendCardHeader({ title, collapsible, onCollapse }: { title: string; onCollapse?: () => void; collapsible?: boolean }) {
5
- return (
6
- <div className="row w-100 space-between align-items-center">
7
- <h4 style={{ margin: 0 }} className="legend-header">
8
- {title}
9
- </h4>
10
- {collapsible && (
11
- <div onClick={onCollapse}>
12
- <IconLaunch16 />
13
- </div>
14
- )}
15
- </div>
16
- );
17
- }