@hisptz/dhis2-scorecard 1.0.13 → 1.0.14

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 (388) hide show
  1. package/dist/Scorecard.js +1 -1
  2. package/dist/Scorecard.js.map +1 -1
  3. package/dist/Scorecard.stories.js +1 -1
  4. package/dist/Scorecard.stories.js.map +1 -1
  5. package/dist/ScorecardContext.stories.js +1 -1
  6. package/dist/ScorecardContext.stories.js.map +1 -1
  7. package/dist/ScorecardPrintArea.stories.js +1 -1
  8. package/dist/ScorecardPrintArea.stories.js.map +1 -1
  9. package/dist/components/ColGroup.js +1 -1
  10. package/dist/components/ColGroup.js.map +1 -1
  11. package/dist/components/ConfigProvider.js +1 -1
  12. package/dist/components/ConfigProvider.js.map +1 -1
  13. package/dist/components/DataProvider.js +1 -1
  14. package/dist/components/DataProvider.js.map +1 -1
  15. package/dist/components/LoadingIndicator.js +1 -1
  16. package/dist/components/LoadingIndicator.js.map +1 -1
  17. package/dist/components/MetaProvider.js +1 -1
  18. package/dist/components/MetaProvider.js.map +1 -1
  19. package/dist/components/ScorecardContext.js +1 -1
  20. package/dist/components/ScorecardContext.js.map +1 -1
  21. package/dist/components/ScorecardHeader.js +1 -1
  22. package/dist/components/ScorecardHeader.js.map +1 -1
  23. package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js +1 -1
  24. package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
  25. package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js +1 -1
  26. package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  27. package/dist/components/ScorecardLegendsView/components/LegendView.js +1 -1
  28. package/dist/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
  29. package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js +1 -1
  30. package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
  31. package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js +1 -1
  32. package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
  33. package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js +1 -1
  34. package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
  35. package/dist/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js +1 -1
  36. package/dist/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js.map +1 -1
  37. package/dist/components/ScorecardLegendsView/index.js +1 -1
  38. package/dist/components/ScorecardLegendsView/index.js.map +1 -1
  39. package/dist/components/ScorecardPrint/ScorecardPrint.js +1 -1
  40. package/dist/components/ScorecardPrint/ScorecardPrint.js.map +1 -1
  41. package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js +3 -3
  42. package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
  43. package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js +28 -30
  44. package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
  45. package/dist/components/ScorecardPrint/print.css +0 -3
  46. package/dist/components/ScorecardPrint/print.css.map +1 -1
  47. package/dist/components/ScorecardPrint/utils/download.js +1 -1
  48. package/dist/components/ScorecardPrint/utils/download.js.map +1 -1
  49. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js +1 -1
  50. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -1
  51. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js +1 -1
  52. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -1
  53. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js +1 -1
  54. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -1
  55. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/index.js +1 -1
  56. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/index.js.map +1 -1
  57. package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js +1 -1
  58. package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
  59. package/dist/components/ScorecardTable/ScorecardTable.js +1 -1
  60. package/dist/components/ScorecardTable/ScorecardTable.js.map +1 -1
  61. package/dist/components/ScorecardTable/ScorecardTable.module.css +6 -1
  62. package/dist/components/ScorecardTable/ScorecardTable.module.css.map +1 -1
  63. package/dist/components/ScorecardTable/components/AverageCell.js +1 -1
  64. package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
  65. package/dist/components/ScorecardTable/components/AverageFooterCell.js +1 -1
  66. package/dist/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  67. package/dist/components/ScorecardTable/components/CellLoader.js +1 -1
  68. package/dist/components/ScorecardTable/components/CellLoader.js.map +1 -1
  69. package/dist/components/ScorecardTable/components/DataContainer.js +1 -1
  70. package/dist/components/ScorecardTable/components/DataContainer.js.map +1 -1
  71. package/dist/components/ScorecardTable/components/DataFooterCell.js +2 -2
  72. package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  73. package/dist/components/ScorecardTable/components/DataRow.js +5 -4
  74. package/dist/components/ScorecardTable/components/DataRow.js.map +1 -1
  75. package/dist/components/ScorecardTable/components/DataValue.js +1 -1
  76. package/dist/components/ScorecardTable/components/DataValue.js.map +1 -1
  77. package/dist/components/ScorecardTable/components/DraggableCell.js +1 -1
  78. package/dist/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  79. package/dist/components/ScorecardTable/components/DroppableCell.js +1 -1
  80. package/dist/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  81. package/dist/components/ScorecardTable/components/EmptyFooterCell.js +1 -1
  82. package/dist/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  83. package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js +2 -1
  84. package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  85. package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js +1 -1
  86. package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
  87. package/dist/components/ScorecardTable/components/FurtherAnalysisModal.js +1 -1
  88. package/dist/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
  89. package/dist/components/ScorecardTable/components/LinkedCell.js +8 -2
  90. package/dist/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  91. package/dist/components/ScorecardTable/components/LinkedDataCell.js +1 -1
  92. package/dist/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  93. package/dist/components/ScorecardTable/components/MetaFooterCell.js +1 -1
  94. package/dist/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  95. package/dist/components/ScorecardTable/components/PaginatedToolbar.js +1 -1
  96. package/dist/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -1
  97. package/dist/components/ScorecardTable/components/SingleDataCell.js +1 -1
  98. package/dist/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  99. package/dist/components/ScorecardTable/components/TableBody.js +1 -1
  100. package/dist/components/ScorecardTable/components/TableBody.js.map +1 -1
  101. package/dist/components/ScorecardTable/components/TableFoot.js +1 -1
  102. package/dist/components/ScorecardTable/components/TableFoot.js.map +1 -1
  103. package/dist/components/ScorecardTable/components/TableHeader/TableHeader.js +1 -1
  104. package/dist/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
  105. package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +1 -1
  106. package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  107. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +1 -1
  108. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  109. package/dist/components/ScorecardTable/components/TableHeader/components/ExpandCell.js +1 -1
  110. package/dist/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
  111. package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js +1 -1
  112. package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  113. package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js +1 -1
  114. package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  115. package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +1 -1
  116. package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  117. package/dist/components/ScorecardTable/components/TableHeader/components/NumberCell.js +1 -1
  118. package/dist/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  119. package/dist/components/ScorecardTable/components/TableHeader/index.js +1 -1
  120. package/dist/components/ScorecardTable/components/TableHeader/index.js.map +1 -1
  121. package/dist/components/ScorecardTable/index.js +1 -1
  122. package/dist/components/ScorecardTable/index.js.map +1 -1
  123. package/dist/components/StateProvider.js +1 -1
  124. package/dist/components/StateProvider.js.map +1 -1
  125. package/dist/components/TableStateProvider.js +1 -1
  126. package/dist/components/TableStateProvider.js.map +1 -1
  127. package/dist/components/index.js +1 -1
  128. package/dist/components/index.js.map +1 -1
  129. package/dist/esm/Scorecard.js +1 -1
  130. package/dist/esm/Scorecard.js.map +1 -1
  131. package/dist/esm/Scorecard.stories.js +1 -1
  132. package/dist/esm/Scorecard.stories.js.map +1 -1
  133. package/dist/esm/ScorecardContext.stories.js +1 -1
  134. package/dist/esm/ScorecardContext.stories.js.map +1 -1
  135. package/dist/esm/ScorecardPrintArea.stories.js +1 -1
  136. package/dist/esm/ScorecardPrintArea.stories.js.map +1 -1
  137. package/dist/esm/components/ColGroup.js +1 -1
  138. package/dist/esm/components/ColGroup.js.map +1 -1
  139. package/dist/esm/components/ConfigProvider.js +1 -1
  140. package/dist/esm/components/ConfigProvider.js.map +1 -1
  141. package/dist/esm/components/DataProvider.js +1 -1
  142. package/dist/esm/components/DataProvider.js.map +1 -1
  143. package/dist/esm/components/LoadingIndicator.js +1 -1
  144. package/dist/esm/components/LoadingIndicator.js.map +1 -1
  145. package/dist/esm/components/MetaProvider.js +1 -1
  146. package/dist/esm/components/MetaProvider.js.map +1 -1
  147. package/dist/esm/components/ScorecardContext.js +1 -1
  148. package/dist/esm/components/ScorecardContext.js.map +1 -1
  149. package/dist/esm/components/ScorecardHeader.js +1 -1
  150. package/dist/esm/components/ScorecardHeader.js.map +1 -1
  151. package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js +1 -1
  152. package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
  153. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js +1 -1
  154. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  155. package/dist/esm/components/ScorecardLegendsView/components/LegendView.js +1 -1
  156. package/dist/esm/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
  157. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js +1 -1
  158. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
  159. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js +1 -1
  160. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
  161. package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js +1 -1
  162. package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
  163. package/dist/esm/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js +1 -1
  164. package/dist/esm/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js.map +1 -1
  165. package/dist/esm/components/ScorecardLegendsView/index.js +1 -1
  166. package/dist/esm/components/ScorecardLegendsView/index.js.map +1 -1
  167. package/dist/esm/components/ScorecardPrint/ScorecardPrint.js +1 -1
  168. package/dist/esm/components/ScorecardPrint/ScorecardPrint.js.map +1 -1
  169. package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js +3 -3
  170. package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
  171. package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js +29 -31
  172. package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
  173. package/dist/esm/components/ScorecardPrint/print.css +0 -3
  174. package/dist/esm/components/ScorecardPrint/print.css.map +1 -1
  175. package/dist/esm/components/ScorecardPrint/utils/download.js +1 -1
  176. package/dist/esm/components/ScorecardPrint/utils/download.js.map +1 -1
  177. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js +1 -1
  178. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -1
  179. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js +1 -1
  180. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -1
  181. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js +1 -1
  182. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -1
  183. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/index.js +1 -1
  184. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/index.js.map +1 -1
  185. package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js +1 -1
  186. package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
  187. package/dist/esm/components/ScorecardTable/ScorecardTable.js +1 -1
  188. package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
  189. package/dist/esm/components/ScorecardTable/ScorecardTable.module.css +6 -1
  190. package/dist/esm/components/ScorecardTable/ScorecardTable.module.css.map +1 -1
  191. package/dist/esm/components/ScorecardTable/components/AverageCell.js +1 -1
  192. package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
  193. package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js +1 -1
  194. package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  195. package/dist/esm/components/ScorecardTable/components/CellLoader.js +1 -1
  196. package/dist/esm/components/ScorecardTable/components/CellLoader.js.map +1 -1
  197. package/dist/esm/components/ScorecardTable/components/DataContainer.js +1 -1
  198. package/dist/esm/components/ScorecardTable/components/DataContainer.js.map +1 -1
  199. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +2 -2
  200. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  201. package/dist/esm/components/ScorecardTable/components/DataRow.js +5 -4
  202. package/dist/esm/components/ScorecardTable/components/DataRow.js.map +1 -1
  203. package/dist/esm/components/ScorecardTable/components/DataValue.js +1 -1
  204. package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
  205. package/dist/esm/components/ScorecardTable/components/DraggableCell.js +1 -1
  206. package/dist/esm/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  207. package/dist/esm/components/ScorecardTable/components/DroppableCell.js +1 -1
  208. package/dist/esm/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  209. package/dist/esm/components/ScorecardTable/components/EmptyFooterCell.js +1 -1
  210. package/dist/esm/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  211. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js +2 -1
  212. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  213. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js +1 -1
  214. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
  215. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisModal.js +1 -1
  216. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
  217. package/dist/esm/components/ScorecardTable/components/LinkedCell.js +10 -4
  218. package/dist/esm/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  219. package/dist/esm/components/ScorecardTable/components/LinkedDataCell.js +1 -1
  220. package/dist/esm/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  221. package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js +1 -1
  222. package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  223. package/dist/esm/components/ScorecardTable/components/PaginatedToolbar.js +1 -1
  224. package/dist/esm/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -1
  225. package/dist/esm/components/ScorecardTable/components/SingleDataCell.js +1 -1
  226. package/dist/esm/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  227. package/dist/esm/components/ScorecardTable/components/TableBody.js +1 -1
  228. package/dist/esm/components/ScorecardTable/components/TableBody.js.map +1 -1
  229. package/dist/esm/components/ScorecardTable/components/TableFoot.js +1 -1
  230. package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
  231. package/dist/esm/components/ScorecardTable/components/TableHeader/TableHeader.js +1 -1
  232. package/dist/esm/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
  233. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +1 -1
  234. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  235. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +1 -1
  236. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  237. package/dist/esm/components/ScorecardTable/components/TableHeader/components/ExpandCell.js +1 -1
  238. package/dist/esm/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
  239. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js +1 -1
  240. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  241. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js +1 -1
  242. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  243. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +1 -1
  244. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  245. package/dist/esm/components/ScorecardTable/components/TableHeader/components/NumberCell.js +1 -1
  246. package/dist/esm/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  247. package/dist/esm/components/ScorecardTable/components/TableHeader/index.js +1 -1
  248. package/dist/esm/components/ScorecardTable/components/TableHeader/index.js.map +1 -1
  249. package/dist/esm/components/ScorecardTable/index.js +1 -1
  250. package/dist/esm/components/ScorecardTable/index.js.map +1 -1
  251. package/dist/esm/components/StateProvider.js +1 -1
  252. package/dist/esm/components/StateProvider.js.map +1 -1
  253. package/dist/esm/components/TableStateProvider.js +1 -1
  254. package/dist/esm/components/TableStateProvider.js.map +1 -1
  255. package/dist/esm/components/index.js +1 -1
  256. package/dist/esm/components/index.js.map +1 -1
  257. package/dist/esm/hooks/cellData.js +2 -3
  258. package/dist/esm/hooks/cellData.js.map +1 -1
  259. package/dist/esm/hooks/columns.js +7 -1
  260. package/dist/esm/hooks/columns.js.map +1 -1
  261. package/dist/esm/hooks/data.js +2 -3
  262. package/dist/esm/hooks/data.js.map +1 -1
  263. package/dist/esm/hooks/dataItem.js +1 -1
  264. package/dist/esm/hooks/dataItem.js.map +1 -1
  265. package/dist/esm/hooks/index.js +1 -1
  266. package/dist/esm/hooks/index.js.map +1 -1
  267. package/dist/esm/hooks/metadata.js +1 -1
  268. package/dist/esm/hooks/metadata.js.map +1 -1
  269. package/dist/esm/hooks/orgUnit.js +1 -1
  270. package/dist/esm/hooks/orgUnit.js.map +1 -1
  271. package/dist/esm/hooks/period.js +1 -1
  272. package/dist/esm/hooks/period.js.map +1 -1
  273. package/dist/esm/hooks/table.js +3 -5
  274. package/dist/esm/hooks/table.js.map +1 -1
  275. package/dist/esm/hooks/value.js +1 -1
  276. package/dist/esm/hooks/value.js.map +1 -1
  277. package/dist/esm/index.js +1 -1
  278. package/dist/esm/index.js.map +1 -1
  279. package/dist/esm/schemas/config.js +1 -1
  280. package/dist/esm/schemas/config.js.map +1 -1
  281. package/dist/esm/state/index.js +1 -1
  282. package/dist/esm/state/index.js.map +1 -1
  283. package/dist/esm/tests/scorecard.test.js +4 -0
  284. package/dist/esm/tests/scorecard.test.js.map +1 -0
  285. package/dist/esm/utils/analytics.js +1 -1
  286. package/dist/esm/utils/analytics.js.map +1 -1
  287. package/dist/esm/utils/columns.js +1 -1
  288. package/dist/esm/utils/columns.js.map +1 -1
  289. package/dist/esm/utils/data.js +1 -1
  290. package/dist/esm/utils/data.js.map +1 -1
  291. package/dist/esm/utils/dataEngine.js +1 -1
  292. package/dist/esm/utils/dataEngine.js.map +1 -1
  293. package/dist/esm/utils/dataSources.js +1 -1
  294. package/dist/esm/utils/dataSources.js.map +1 -1
  295. package/dist/esm/utils/engine.js +1 -1
  296. package/dist/esm/utils/engine.js.map +1 -1
  297. package/dist/esm/utils/index.js +1 -1
  298. package/dist/esm/utils/index.js.map +1 -1
  299. package/dist/esm/utils/legends.js +1 -1
  300. package/dist/esm/utils/legends.js.map +1 -1
  301. package/dist/esm/utils/orgUnits.js +1 -1
  302. package/dist/esm/utils/orgUnits.js.map +1 -1
  303. package/dist/esm/utils/state.js +1 -1
  304. package/dist/esm/utils/state.js.map +1 -1
  305. package/dist/hooks/cellData.js +2 -3
  306. package/dist/hooks/cellData.js.map +1 -1
  307. package/dist/hooks/columns.js +7 -1
  308. package/dist/hooks/columns.js.map +1 -1
  309. package/dist/hooks/data.js +2 -3
  310. package/dist/hooks/data.js.map +1 -1
  311. package/dist/hooks/dataItem.js +1 -1
  312. package/dist/hooks/dataItem.js.map +1 -1
  313. package/dist/hooks/index.js +1 -1
  314. package/dist/hooks/index.js.map +1 -1
  315. package/dist/hooks/metadata.js +1 -1
  316. package/dist/hooks/metadata.js.map +1 -1
  317. package/dist/hooks/orgUnit.js +1 -1
  318. package/dist/hooks/orgUnit.js.map +1 -1
  319. package/dist/hooks/period.js +1 -1
  320. package/dist/hooks/period.js.map +1 -1
  321. package/dist/hooks/table.js +3 -5
  322. package/dist/hooks/table.js.map +1 -1
  323. package/dist/hooks/value.js +1 -1
  324. package/dist/hooks/value.js.map +1 -1
  325. package/dist/index.js +1 -1
  326. package/dist/index.js.map +1 -1
  327. package/dist/schemas/config.js +1 -1
  328. package/dist/schemas/config.js.map +1 -1
  329. package/dist/state/index.js +1 -1
  330. package/dist/state/index.js.map +1 -1
  331. package/dist/tests/scorecard.test.js +6 -0
  332. package/dist/tests/scorecard.test.js.map +1 -0
  333. package/dist/types/components/LoadingIndicator.d.ts.map +1 -1
  334. package/dist/types/components/MetaProvider.d.ts.map +1 -1
  335. package/dist/types/components/ScorecardLegendsView/ScorecardLegendsView.d.ts +0 -1
  336. package/dist/types/components/ScorecardLegendsView/ScorecardLegendsView.d.ts.map +1 -1
  337. package/dist/types/components/ScorecardPrint/components/ScorecardDownloadButton.d.ts.map +1 -1
  338. package/dist/types/components/ScorecardPrint/components/ScorecardPreviewArea.d.ts.map +1 -1
  339. package/dist/types/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.d.ts.map +1 -1
  340. package/dist/types/components/ScorecardTable/ScorecardTable.d.ts +0 -1
  341. package/dist/types/components/ScorecardTable/ScorecardTable.d.ts.map +1 -1
  342. package/dist/types/components/ScorecardTable/components/DataContainer.d.ts +0 -1
  343. package/dist/types/components/ScorecardTable/components/DataContainer.d.ts.map +1 -1
  344. package/dist/types/components/ScorecardTable/components/DataRow.d.ts.map +1 -1
  345. package/dist/types/components/ScorecardTable/components/DataValue.d.ts +2 -3
  346. package/dist/types/components/ScorecardTable/components/DataValue.d.ts.map +1 -1
  347. package/dist/types/components/ScorecardTable/components/ExpandedScorecardTable.d.ts.map +1 -1
  348. package/dist/types/components/ScorecardTable/components/LinkedCell.d.ts.map +1 -1
  349. package/dist/types/components/ScorecardTable/components/LinkedDataCell.d.ts +0 -1
  350. package/dist/types/components/ScorecardTable/components/LinkedDataCell.d.ts.map +1 -1
  351. package/dist/types/components/ScorecardTable/components/TableBody.d.ts.map +1 -1
  352. package/dist/types/components/ScorecardTable/components/TableHeader/TableHeader.d.ts +0 -1
  353. package/dist/types/components/ScorecardTable/components/TableHeader/TableHeader.d.ts.map +1 -1
  354. package/dist/types/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts +0 -1
  355. package/dist/types/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts.map +1 -1
  356. package/dist/types/components/ScorecardTable/components/TableHeader/components/NumberCell.d.ts +0 -1
  357. package/dist/types/components/ScorecardTable/components/TableHeader/components/NumberCell.d.ts.map +1 -1
  358. package/dist/types/components/TableStateProvider.d.ts.map +1 -1
  359. package/dist/types/hooks/columns.d.ts.map +1 -1
  360. package/dist/types/hooks/metadata.d.ts +10 -10
  361. package/dist/types/hooks/metadata.d.ts.map +1 -1
  362. package/dist/types/hooks/orgUnit.d.ts.map +1 -1
  363. package/dist/types/hooks/table.d.ts +0 -1
  364. package/dist/types/hooks/table.d.ts.map +1 -1
  365. package/dist/types/state/index.d.ts +1 -1
  366. package/dist/types/state/index.d.ts.map +1 -1
  367. package/dist/types/utils/dataEngine.d.ts.map +1 -1
  368. package/dist/utils/analytics.js +1 -1
  369. package/dist/utils/analytics.js.map +1 -1
  370. package/dist/utils/columns.js +1 -1
  371. package/dist/utils/columns.js.map +1 -1
  372. package/dist/utils/data.js +1 -1
  373. package/dist/utils/data.js.map +1 -1
  374. package/dist/utils/dataEngine.js +1 -1
  375. package/dist/utils/dataEngine.js.map +1 -1
  376. package/dist/utils/dataSources.js +1 -1
  377. package/dist/utils/dataSources.js.map +1 -1
  378. package/dist/utils/engine.js +1 -1
  379. package/dist/utils/engine.js.map +1 -1
  380. package/dist/utils/index.js +1 -1
  381. package/dist/utils/index.js.map +1 -1
  382. package/dist/utils/legends.js +1 -1
  383. package/dist/utils/legends.js.map +1 -1
  384. package/dist/utils/orgUnits.js +1 -1
  385. package/dist/utils/orgUnits.js.map +1 -1
  386. package/dist/utils/state.js +1 -1
  387. package/dist/utils/state.js.map +1 -1
  388. package/package.json +4 -4
@@ -26,5 +26,5 @@ const ScorecardConfigProvider = react.memo(({ config, children }) => {
26
26
 
27
27
  exports.ScorecardConfigProvider = ScorecardConfigProvider;
28
28
  exports.useScorecardConfig = useScorecardConfig;
29
- //# sourceMappingURL=out.js.map
29
+ //# sourceMappingURL=ConfigProvider.js.map
30
30
  //# sourceMappingURL=ConfigProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ConfigProvider.tsx"],"names":[],"mappings":"AAuBE;AAvBF,SAAgB,eAAe,MAAM,kBAAkB;AAEvD,OAAO,UAAU;AAEjB,MAAM,yBAAyB,cAAsC,IAAI;AAElE,SAAS,qBAAqB;AACpC,QAAM,SAAS,WAAW,sBAAsB;AAChD,MAAI,CAAC,QAAQ;AACZ,UAAM;AAAA,MACL,KAAK;AAAA,QACJ;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAEO,MAAM,0BAGR,KAAK,CAAC,EAAE,QAAQ,SAAS,MAAM;AACnC,SACC,oBAAC,uBAAuB,UAAvB,EAAgC,OAAO,QACtC,UACF;AAEF,CAAC","sourcesContent":["import React, { createContext, memo, useContext } from \"react\";\nimport type { ScorecardConfig } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nconst ScorecardConfigContext = createContext<ScorecardConfig | null>(null);\n\nexport function useScorecardConfig() {\n\tconst config = useContext(ScorecardConfigContext);\n\tif (!config) {\n\t\tthrow Error(\n\t\t\ti18n.t(\n\t\t\t\t\"useScorecardConfig should be used inside a Scorecard Context\",\n\t\t\t),\n\t\t);\n\t}\n\treturn config;\n}\n\nexport const ScorecardConfigProvider: React.FC<{\n\tconfig: ScorecardConfig;\n\tchildren: React.ReactNode;\n}> = memo(({ config, children }) => {\n\treturn (\n\t\t<ScorecardConfigContext.Provider value={config}>\n\t\t\t{children}\n\t\t</ScorecardConfigContext.Provider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../src/components/ConfigProvider.tsx"],"names":["createContext","useContext","i18n","memo"],"mappings":";;;;;;;;;;AAIA,MAAM,sBAAA,GAAyBA,oBAAsC,IAAI,CAAA,CAAA;AAElE,SAAS,kBAAqB,GAAA;AACpC,EAAM,MAAA,MAAA,GAASC,iBAAW,sBAAsB,CAAA,CAAA;AAChD,EAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,IAAM,MAAA,KAAA;AAAA,MACLC,qBAAK,CAAA,CAAA;AAAA,QACJ,8DAAA;AAAA,OACD;AAAA,KACD,CAAA;AAAA,GACD;AACA,EAAO,OAAA,MAAA,CAAA;AACR,CAAA;AAEO,MAAM,0BAGRC,UAAK,CAAA,CAAC,EAAE,MAAA,EAAQ,UAAe,KAAA;AACnC,EAAA,sCACE,sBAAuB,CAAA,QAAA,EAAvB,EAAgC,KAAA,EAAO,QACtC,QACF,EAAA,CAAA,CAAA;AAEF,CAAC","file":"ConfigProvider.js","sourcesContent":["import React, { createContext, memo, useContext } from \"react\";\nimport type { ScorecardConfig } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nconst ScorecardConfigContext = createContext<ScorecardConfig | null>(null);\n\nexport function useScorecardConfig() {\n\tconst config = useContext(ScorecardConfigContext);\n\tif (!config) {\n\t\tthrow Error(\n\t\t\ti18n.t(\n\t\t\t\t\"useScorecardConfig should be used inside a Scorecard Context\",\n\t\t\t),\n\t\t);\n\t}\n\treturn config;\n}\n\nexport const ScorecardConfigProvider: React.FC<{\n\tconfig: ScorecardConfig;\n\tchildren: React.ReactNode;\n}> = memo(({ config, children }) => {\n\treturn (\n\t\t<ScorecardConfigContext.Provider value={config}>\n\t\t\t{children}\n\t\t</ScorecardConfigContext.Provider>\n\t);\n});\n"]}
@@ -29,5 +29,5 @@ const ScorecardDataProvider = react.memo(function ScorecardDataProvider2({
29
29
 
30
30
  exports.ScorecardDataProvider = ScorecardDataProvider;
31
31
  exports.useScorecardData = useScorecardData;
32
- //# sourceMappingURL=out.js.map
32
+ //# sourceMappingURL=DataProvider.js.map
33
33
  //# sourceMappingURL=DataProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/DataProvider.tsx"],"names":["ScorecardDataProvider"],"mappings":"AA4BE;AA5BF,SAAS,eAAe,MAAsB,YAAY,cAAc;AACxE,SAAS,2BAA2B;AACpC;AAAA,EACC;AAAA,OAEM;AAMP,MAAM,uBAAuB,cAA6B;AAAA,EACzD,MAAM,0BAA0B;AACjC,CAAC;AAEM,SAAS,mBAAmB;AAClC,SAAO,WAAW,oBAAoB;AACvC;AAEO,MAAM,wBAAwB,KAAK,SAASA,uBAAsB;AAAA,EACxE;AACD,GAEG;AACF,QAAM,aAAa,OAA4B,0BAA0B,CAAC;AAC1E,sBAAoB,WAAW,OAAO;AAEtC,SACC;AAAA,IAAC,qBAAqB;AAAA,IAArB;AAAA,MACA,OAAO;AAAA,QACN,MAAM,WAAW;AAAA,MAClB;AAAA,MAEC;AAAA;AAAA,EACF;AAEF,CAAC","sourcesContent":["import { createContext, memo, type ReactNode, useContext, useRef } from \"react\";\nimport { useGetScorecardData } from \"../hooks/data\";\nimport {\n\tcreateScorecardDataEngine,\n\ttype ScorecardDataEngine,\n} from \"../utils/dataEngine\";\n\nexport interface ScorecardData {\n\tdata: ScorecardDataEngine;\n}\n\nconst ScorecardDataContext = createContext<ScorecardData>({\n\tdata: createScorecardDataEngine(),\n});\n\nexport function useScorecardData() {\n\treturn useContext(ScorecardDataContext);\n}\n\nexport const ScorecardDataProvider = memo(function ScorecardDataProvider({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst dataEngine = useRef<ScorecardDataEngine>(createScorecardDataEngine());\n\tuseGetScorecardData(dataEngine.current);\n\n\treturn (\n\t\t<ScorecardDataContext.Provider\n\t\t\tvalue={{\n\t\t\t\tdata: dataEngine.current,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</ScorecardDataContext.Provider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../src/components/DataProvider.tsx"],"names":["createContext","createScorecardDataEngine","useContext","memo","ScorecardDataProvider","dataEngine","useRef","useGetScorecardData","jsx"],"mappings":";;;;;;;AAWA,MAAM,uBAAuBA,mBAA6B,CAAA;AAAA,EACzD,MAAMC,oCAA0B,EAAA;AACjC,CAAC,CAAA,CAAA;AAEM,SAAS,gBAAmB,GAAA;AAClC,EAAA,OAAOC,iBAAW,oBAAoB,CAAA,CAAA;AACvC,CAAA;AAEa,MAAA,qBAAA,GAAwBC,UAAK,CAAA,SAASC,sBAAsB,CAAA;AAAA,EACxE,QAAA;AACD,CAEG,EAAA;AACF,EAAM,MAAAC,YAAA,GAAaC,YAA4B,CAAAL,oCAAA,EAA2B,CAAA,CAAA;AAC1E,EAAAM,wBAAA,CAAoBF,aAAW,OAAO,CAAA,CAAA;AAEtC,EACC,uBAAAG,cAAA;AAAA,IAAC,oBAAqB,CAAA,QAAA;AAAA,IAArB;AAAA,MACA,KAAO,EAAA;AAAA,QACN,MAAMH,YAAW,CAAA,OAAA;AAAA,OAClB;AAAA,MAEC,QAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEF,CAAC","file":"DataProvider.js","sourcesContent":["import { createContext, memo, type ReactNode, useContext, useRef } from \"react\";\nimport { useGetScorecardData } from \"../hooks/data\";\nimport {\n\tcreateScorecardDataEngine,\n\ttype ScorecardDataEngine,\n} from \"../utils/dataEngine\";\n\nexport interface ScorecardData {\n\tdata: ScorecardDataEngine;\n}\n\nconst ScorecardDataContext = createContext<ScorecardData>({\n\tdata: createScorecardDataEngine(),\n});\n\nexport function useScorecardData() {\n\treturn useContext(ScorecardDataContext);\n}\n\nexport const ScorecardDataProvider = memo(function ScorecardDataProvider({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst dataEngine = useRef<ScorecardDataEngine>(createScorecardDataEngine());\n\tuseGetScorecardData(dataEngine.current);\n\n\treturn (\n\t\t<ScorecardDataContext.Provider\n\t\t\tvalue={{\n\t\t\t\tdata: dataEngine.current,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</ScorecardDataContext.Provider>\n\t);\n});\n"]}
@@ -50,5 +50,5 @@ const LoadingIndicator = react.memo(function LoadingIndicator2({
50
50
  });
51
51
 
52
52
  exports.LoadingIndicator = LoadingIndicator;
53
- //# sourceMappingURL=out.js.map
53
+ //# sourceMappingURL=LoadingIndicator.js.map
54
54
  //# sourceMappingURL=LoadingIndicator.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/LoadingIndicator.tsx"],"names":["LoadingIndicator"],"mappings":"AAuCI;AAvCJ,SAAS,wBAAwB;AACjC,SAAS,cAAc,oBAAoB;AAC3C,SAAS,qBAAqB;AAC9B,SAAS,MAAsB,WAAW,gBAAgB;AAC1D,OAAO,YAAY;AAEZ,MAAM,mBAAmB,KAAK,SAASA,kBAAiB;AAAA,EAC9D;AACD,GAEG;AACF,QAAM,EAAE,MAAM,WAAW,IAAI,iBAAiB;AAC9C,QAAM,CAAC,UAAU,WAAW,IAAI,SAAiB,CAAC;AAClD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAkB,WAAW,MAAM;AACrE,QAAM,QAAQ,cAAc;AAC5B,QAAM,UAAU,MAAM,sBAAsB,EAAE;AAE9C,QAAM,QACL,SAAS,SAAS,eAAe,sBAAsB,EAAE;AAE1D,YAAU,MAAM;AACf,WAAO,WAAW,sBAAsB,YAAY;AAAA,EACrD,GAAG,CAAC,UAAU,CAAC;AAEf,YAAU,MAAM;AACf,WAAO,WAAW,oBAAoB,CAAC,UAAU;AAChD,kBAAY,KAAK;AAAA,IAClB,CAAC;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AAEf,MAAI,aAAa,KAAK,MAAM,QAAS,KAAK,WAAW;AACpD,WAAO;AAAA,EACR;AACA,SACC,oBAAC,gBACA;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,EAAE,UAAU,UAAU,MAAM,GAAG,KAAK,EAAE;AAAA,MAC7C;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA,WAAW,OAAO,QAAQ;AAAA,UAC1B,QAAQ;AAAA,UACR,OAAO,QAAQ,GAAG,KAAK,MAAM,KAAK,CAAC,OAAO;AAAA,UAC1C,SAAS,YAAY,KAAK;AAAA;AAAA,MAC3B;AAAA;AAAA,EACD,GACD;AAEF,CAAC","sourcesContent":["import { useScorecardData } from \"./DataProvider\";\nimport { DataTableRow, LinearLoader } from \"@dhis2/ui\";\nimport { useTableState } from \"./TableStateProvider\";\nimport { memo, type RefObject, useEffect, useState } from \"react\";\nimport styles from \"./ScorecardTable/ScorecardTable.module.css\";\n\nexport const LoadingIndicator = memo(function LoadingIndicator({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [progress, setProgress] = useState<number>(0);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst table = useTableState();\n\tconst colSpan = table.getVisibleFlatColumns().length;\n\n\tconst width =\n\t\ttableRef.current?.parentElement?.getBoundingClientRect().width;\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener(setCompleted);\n\t}, [dataEngine]);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addProgressListener((value) => {\n\t\t\tsetProgress(value);\n\t\t});\n\t}, [dataEngine]);\n\n\tif (progress === 1 || isNaN(progress!) || completed) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DataTableRow>\n\t\t\t<td\n\t\t\t\tstyle={{ position: \"static\", left: 0, top: 0 }}\n\t\t\t\tcolSpan={colSpan}\n\t\t\t>\n\t\t\t\t<LinearLoader\n\t\t\t\t\tclassName={styles[\"loader\"]}\n\t\t\t\t\tmargin={\"0\"}\n\t\t\t\t\twidth={width ? `${Math.trunc(width)}px` : \"100%\"}\n\t\t\t\t\tamount={(progress ?? 0) * 100}\n\t\t\t\t/>\n\t\t\t</td>\n\t\t</DataTableRow>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../src/components/LoadingIndicator.tsx"],"names":["memo","LoadingIndicator","useScorecardData","useState","useTableState","useEffect","DataTableRow","jsx","LinearLoader","styles"],"mappings":";;;;;;;;;;;;;AAMa,MAAA,gBAAA,GAAmBA,UAAK,CAAA,SAASC,iBAAiB,CAAA;AAAA,EAC9D,QAAA;AACD,CAEG,EAAA;AACF,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAIC,6BAAiB,EAAA,CAAA;AAC9C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,eAAiB,CAAC,CAAA,CAAA;AAClD,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAAA,cAAA,CAAkB,WAAW,MAAM,CAAA,CAAA;AACrE,EAAA,MAAM,QAAQC,gCAAc,EAAA,CAAA;AAC5B,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,qBAAA,EAAwB,CAAA,MAAA,CAAA;AAE9C,EAAA,MAAM,KACL,GAAA,QAAA,CAAS,OAAS,EAAA,aAAA,EAAe,uBAAwB,CAAA,KAAA,CAAA;AAE1D,EAAAC,eAAA,CAAU,MAAM;AACf,IAAO,OAAA,UAAA,CAAW,sBAAsB,YAAY,CAAA,CAAA;AAAA,GACrD,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAAA,eAAA,CAAU,MAAM;AACf,IAAO,OAAA,UAAA,CAAW,mBAAoB,CAAA,CAAC,KAAU,KAAA;AAChD,MAAA,WAAA,CAAY,KAAK,CAAA,CAAA;AAAA,KACjB,CAAA,CAAA;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AAEf,EAAA,IAAI,QAAa,KAAA,CAAA,IAAK,KAAM,CAAA,QAAS,KAAK,SAAW,EAAA;AACpD,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AACA,EAAA,sCACEC,eACA,EAAA,EAAA,QAAA,kBAAAC,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,QAAA,EAAU,UAAU,IAAM,EAAA,CAAA,EAAG,KAAK,CAAE,EAAA;AAAA,MAC7C,OAAA;AAAA,MAEA,QAAA,kBAAAA,cAAA;AAAA,QAACC,eAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAWC,wBAAO,QAAQ,CAAA;AAAA,UAC1B,MAAQ,EAAA,GAAA;AAAA,UACR,OAAO,KAAQ,GAAA,CAAA,EAAG,KAAK,KAAM,CAAA,KAAK,CAAC,CAAO,EAAA,CAAA,GAAA,MAAA;AAAA,UAC1C,MAAA,EAAA,CAAS,YAAY,CAAK,IAAA,GAAA;AAAA,SAAA;AAAA,OAC3B;AAAA,KAAA;AAAA,GAEF,EAAA,CAAA,CAAA;AAEF,CAAC","file":"LoadingIndicator.js","sourcesContent":["import { useScorecardData } from \"./DataProvider\";\nimport { DataTableRow, LinearLoader } from \"@dhis2/ui\";\nimport { useTableState } from \"./TableStateProvider\";\nimport { memo, type RefObject, useEffect, useState } from \"react\";\nimport styles from \"./ScorecardTable/ScorecardTable.module.css\";\n\nexport const LoadingIndicator = memo(function LoadingIndicator({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [progress, setProgress] = useState<number>(0);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst table = useTableState();\n\tconst colSpan = table.getVisibleFlatColumns().length;\n\n\tconst width =\n\t\ttableRef.current?.parentElement?.getBoundingClientRect().width;\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener(setCompleted);\n\t}, [dataEngine]);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addProgressListener((value) => {\n\t\t\tsetProgress(value);\n\t\t});\n\t}, [dataEngine]);\n\n\tif (progress === 1 || isNaN(progress!) || completed) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DataTableRow>\n\t\t\t<td\n\t\t\t\tstyle={{ position: \"static\", left: 0, top: 0 }}\n\t\t\t\tcolSpan={colSpan}\n\t\t\t>\n\t\t\t\t<LinearLoader\n\t\t\t\t\tclassName={styles[\"loader\"]}\n\t\t\t\t\tmargin={\"0\"}\n\t\t\t\t\twidth={width ? `${Math.trunc(width)}px` : \"100%\"}\n\t\t\t\t\tamount={(progress ?? 0) * 100}\n\t\t\t\t/>\n\t\t\t</td>\n\t\t</DataTableRow>\n\t);\n});\n"]}
@@ -57,5 +57,5 @@ const ScorecardMetaProvider = react.memo(
57
57
  exports.ScorecardMetaGetter = ScorecardMetaGetter;
58
58
  exports.ScorecardMetaProvider = ScorecardMetaProvider;
59
59
  exports.useScorecardMeta = useScorecardMeta;
60
- //# sourceMappingURL=out.js.map
60
+ //# sourceMappingURL=MetaProvider.js.map
61
61
  //# sourceMappingURL=MetaProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/MetaProvider.tsx"],"names":["ScorecardMetaGetter"],"mappings":"AAwCI;AAxCJ,SAAS,eAAe,MAAsB,kBAAkB;AAChE,SAAwB,2BAA2B;AACnD,SAAS,sBAAsB;AAC/B,OAAO,UAAU;AACjB,SAAS,eAAe;AAaxB,MAAM,uBAAuB,cAAoC,IAAI;AAE9D,SAAS,mBAAmB;AAClC,SAAO,WAAW,oBAAoB;AACvC;AAEO,MAAM,sBAAsB,KAAK,SAASA,qBAAoB;AAAA,EACpE;AACD,GAEG;AACF,QAAM,EAAE,SAAS,QAAQ,GAAG,KAAK,IAAI,oBAAoB;AACzD,MAAI,WAAW,CAAC,QAAQ;AACvB,WACC;AAAA,MAAC;AAAA;AAAA,QACA,OAAO;AAAA,UACN,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,QACjB;AAAA,QAEA,8BAAC,kBAAe,OAAK,MAAC;AAAA;AAAA,IACvB;AAAA,EAEF;AAEA,MAAI,CAAC,KAAK,YAAY,QAAQ;AAC7B,UAAM,MAAM,KAAK,EAAE,0CAA0C,CAAC;AAAA,EAC/D;AAEA,SACC,oBAAC,yBAAsB,MAAa,UAAS;AAE/C,CAAC;AAEM,MAAM,wBAAwB;AAAA,EACpC,CAAC,EAAE,UAAU,KAAK,MAAoD;AACrE,WACC;AAAA,MAAC,qBAAqB;AAAA,MAArB;AAAA,QACA,OAAO;AAAA,UACN,GAAG;AAAA,QACJ;AAAA,QAEC;AAAA;AAAA,IACF;AAAA,EAEF;AAAA,EACA,CAAC,WAAW,cAAc,QAAQ,UAAU,MAAM,UAAU,IAAI;AACjE","sourcesContent":["import { createContext, memo, type ReactNode, useContext } from \"react\";\nimport { type ItemMeta, useGetScorecardMeta } from \"../hooks/metadata\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { isEqual } from \"lodash\";\n\nexport interface ScorecardMeta {\n\tperiods: Array<ItemMeta>;\n\torgUnits: Array<ItemMeta & { hierarchy: string }>;\n\tdataItems: Array<ItemMeta>;\n\torgUnitLevels: Array<{\n\t\tid: string;\n\t\tlevel: number;\n\t\tdisplayName: string;\n\t}>;\n}\n\nconst ScorecardMetaContext = createContext<ScorecardMeta | null>(null);\n\nexport function useScorecardMeta() {\n\treturn useContext(ScorecardMetaContext);\n}\n\nexport const ScorecardMetaGetter = memo(function ScorecardMetaGetter({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst { loading, called, ...meta } = useGetScorecardMeta();\n\tif (loading || !called) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!meta.orgUnits && called) {\n\t\tthrow Error(i18n.t(\"Error getting metadata for the scorecard\"));\n\t}\n\n\treturn (\n\t\t<ScorecardMetaProvider meta={meta}>{children}</ScorecardMetaProvider>\n\t);\n});\n\nexport const ScorecardMetaProvider = memo(\n\t({ children, meta }: { children: ReactNode; meta: ScorecardMeta }) => {\n\t\treturn (\n\t\t\t<ScorecardMetaContext.Provider\n\t\t\t\tvalue={{\n\t\t\t\t\t...meta,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScorecardMetaContext.Provider>\n\t\t);\n\t},\n\t(prevProps, nextProps) => isEqual(prevProps.meta, nextProps.meta),\n);\n"]}
1
+ {"version":3,"sources":["../../src/components/MetaProvider.tsx"],"names":["createContext","useContext","memo","ScorecardMetaGetter","useGetScorecardMeta","jsx","CircularLoader","i18n","isEqual"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,oBAAA,GAAuBA,oBAAoC,IAAI,CAAA,CAAA;AAE9D,SAAS,gBAAmB,GAAA;AAClC,EAAA,OAAOC,iBAAW,oBAAoB,CAAA,CAAA;AACvC,CAAA;AAEa,MAAA,mBAAA,GAAsBC,UAAK,CAAA,SAASC,oBAAoB,CAAA;AAAA,EACpE,QAAA;AACD,CAEG,EAAA;AACF,EAAA,MAAM,EAAE,OAAS,EAAA,MAAA,EAAQ,GAAG,IAAA,KAASC,4BAAoB,EAAA,CAAA;AACzD,EAAI,IAAA,OAAA,IAAW,CAAC,MAAQ,EAAA;AACvB,IACC,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACN,MAAQ,EAAA,MAAA;AAAA,UACR,KAAO,EAAA,MAAA;AAAA,UACP,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA,QAAA;AAAA,SACjB;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAACC,iBAAe,EAAA,EAAA,KAAA,EAAK,IAAC,EAAA,CAAA;AAAA,OAAA;AAAA,KACvB,CAAA;AAAA,GAEF;AAEA,EAAI,IAAA,CAAC,IAAK,CAAA,QAAA,IAAY,MAAQ,EAAA;AAC7B,IAAA,MAAM,KAAM,CAAAC,qBAAA,CAAK,CAAE,CAAA,0CAA0C,CAAC,CAAA,CAAA;AAAA,GAC/D;AAEA,EACC,uBAAAF,cAAA,CAAC,qBAAsB,EAAA,EAAA,IAAA,EAAa,QAAS,EAAA,CAAA,CAAA;AAE/C,CAAC,EAAA;AAEM,MAAM,qBAAwB,GAAAH,UAAA;AAAA,EACpC,CAAC,EAAE,QAAU,EAAA,IAAA,EAAyD,KAAA;AACrE,IACC,uBAAAG,cAAA;AAAA,MAAC,oBAAqB,CAAA,QAAA;AAAA,MAArB;AAAA,QACA,KAAO,EAAA;AAAA,UACN,GAAG,IAAA;AAAA,SACJ;AAAA,QAEC,QAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEF;AAAA,EACA,CAAC,SAAW,EAAA,SAAA,KAAcG,eAAQ,SAAU,CAAA,IAAA,EAAM,UAAU,IAAI,CAAA;AACjE","file":"MetaProvider.js","sourcesContent":["import { createContext, memo, type ReactNode, useContext } from \"react\";\nimport { type ItemMeta, useGetScorecardMeta } from \"../hooks/metadata\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { isEqual } from \"lodash\";\n\nexport interface ScorecardMeta {\n\tperiods: Array<ItemMeta>;\n\torgUnits: Array<ItemMeta & { hierarchy: string }>;\n\tdataItems: Array<ItemMeta>;\n\torgUnitLevels: Array<{\n\t\tid: string;\n\t\tlevel: number;\n\t\tdisplayName: string;\n\t}>;\n}\n\nconst ScorecardMetaContext = createContext<ScorecardMeta | null>(null);\n\nexport function useScorecardMeta() {\n\treturn useContext(ScorecardMetaContext);\n}\n\nexport const ScorecardMetaGetter = memo(function ScorecardMetaGetter({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst { loading, called, ...meta } = useGetScorecardMeta();\n\tif (loading || !called) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!meta.orgUnits && called) {\n\t\tthrow Error(i18n.t(\"Error getting metadata for the scorecard\"));\n\t}\n\n\treturn (\n\t\t<ScorecardMetaProvider meta={meta}>{children}</ScorecardMetaProvider>\n\t);\n});\n\nexport const ScorecardMetaProvider = memo(\n\t({ children, meta }: { children: ReactNode; meta: ScorecardMeta }) => {\n\t\treturn (\n\t\t\t<ScorecardMetaContext.Provider\n\t\t\t\tvalue={{\n\t\t\t\t\t...meta,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScorecardMetaContext.Provider>\n\t\t);\n\t},\n\t(prevProps, nextProps) => isEqual(prevProps.meta, nextProps.meta),\n);\n"]}
@@ -66,5 +66,5 @@ const ScorecardContext = react.memo(
66
66
  );
67
67
 
68
68
  exports.ScorecardContext = ScorecardContext;
69
- //# sourceMappingURL=out.js.map
69
+ //# sourceMappingURL=ScorecardContext.js.map
70
70
  //# sourceMappingURL=ScorecardContext.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ScorecardContext.tsx"],"names":["ScorecardContext"],"mappings":"AAmBE,SAaC,KAbD;AAnBF,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AACpC,SAAgB,YAA4B;AAE5C,SAAS,qBAAoC;AAC7C,SAAS,QAAQ,QAAQ,mBAAmB;AAC5C,OAAO,UAAU;AAOjB,SAAS,cAAc;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACD,GAAwC;AACvC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,QAAQ,UAAU;AAAA,QAClB,SAAS;AAAA,QACT,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,KAAK;AAAA,QACL,SAAS;AAAA,MACV;AAAA,MAEA;AAAA,4BAAC,eAAY;AAAA,QACb;AAAA,UAAC;AAAA;AAAA,YACA,OAAO;AAAA,cACN,OAAO,OAAO;AAAA,cACd,QAAQ;AAAA,YACT;AAAA,YAEC,eAAK,EAAE,8BAA8B;AAAA;AAAA,QACvC;AAAA,QACA,oBAAC,OAAE,OAAO,EAAE,QAAQ,EAAE,GAAI,gBAAM,SAAQ;AAAA,QACvC,sBACA,oBAAC,UAAO,SAAS,oBAAoB,OAAK,MACxC,eAAK,EAAE,WAAW,GACpB;AAAA;AAAA;AAAA,EAEF;AAEF;AAEO,MAAM,mBAAmB;AAAA,EAC/B,SAASA,kBAAiB,EAAE,QAAQ,SAAS,GAA0B;AACtE,WACC;AAAA,MAAC;AAAA;AAAA,QACA,WAAW,CAAC,MAAM;AAAA,QAClB,mBAAmB;AAAA,QAEnB,8BAAC,2BAAwB,QACxB,8BAAC,uBAAqB,UAAS,GAChC;AAAA;AAAA,IACD;AAAA,EAEF;AAAA,EACA,CAAC,WAAW,cAAc;AACzB,WAAO,UAAU,WAAW,UAAU;AAAA,EACvC;AACD","sourcesContent":["import { ScorecardConfigProvider } from \"./ConfigProvider\";\nimport { ScorecardMetaGetter } from \"./MetaProvider\";\nimport React, { memo, type ReactNode } from \"react\";\nimport type { ScorecardConfig } from \"../schemas/config\";\nimport { ErrorBoundary, FallbackProps } from \"react-error-boundary\";\nimport { Button, colors, IconError24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\n\ninterface ScorecardContextProps {\n\tchildren: ReactNode;\n\tconfig: ScorecardConfig;\n}\n\nfunction ErrorFallback({\n\terror,\n\tresetErrorBoundary,\n\theight,\n}: FallbackProps & { height?: number }) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\theight: height ?? 500,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<IconError24 />\n\t\t\t<h3\n\t\t\t\tstyle={{\n\t\t\t\t\tcolor: colors.grey800,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i18n.t(\"Could not load visualization\")}\n\t\t\t</h3>\n\t\t\t<p style={{ margin: 0 }}>{error.message}</p>\n\t\t\t{resetErrorBoundary && (\n\t\t\t\t<Button onClick={resetErrorBoundary} small>\n\t\t\t\t\t{i18n.t(\"Try again\")}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport const ScorecardContext = memo(\n\tfunction ScorecardContext({ config, children }: ScorecardContextProps) {\n\t\treturn (\n\t\t\t<ErrorBoundary\n\t\t\t\tresetKeys={[config]}\n\t\t\t\tFallbackComponent={ErrorFallback}\n\t\t\t>\n\t\t\t\t<ScorecardConfigProvider config={config}>\n\t\t\t\t\t<ScorecardMetaGetter>{children}</ScorecardMetaGetter>\n\t\t\t\t</ScorecardConfigProvider>\n\t\t\t</ErrorBoundary>\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn prevProps.config === nextProps.config;\n\t},\n);\n"]}
1
+ {"version":3,"sources":["../../src/components/ScorecardContext.tsx"],"names":["jsxs","jsx","IconError24","colors","i18n","Button","memo","ScorecardContext","ErrorBoundary","ScorecardConfigProvider","ScorecardMetaGetter"],"mappings":";;;;;;;;;;;;;;AAaA,SAAS,aAAc,CAAA;AAAA,EACtB,KAAA;AAAA,EACA,kBAAA;AAAA,EACA,MAAA;AACD,CAAwC,EAAA;AACvC,EACC,uBAAAA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,KAAO,EAAA,MAAA;AAAA,QACP,SAAW,EAAA,QAAA;AAAA,QACX,QAAQ,MAAU,IAAA,GAAA;AAAA,QAClB,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,QAAA;AAAA,QAChB,GAAK,EAAA,EAAA;AAAA,QACL,OAAS,EAAA,EAAA;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAACC,cAAY,EAAA,EAAA,CAAA;AAAA,wBACbD,cAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,OAAOE,SAAO,CAAA,OAAA;AAAA,cACd,MAAQ,EAAA,CAAA;AAAA,aACT;AAAA,YAEC,QAAA,EAAAC,qBAAA,CAAK,EAAE,8BAA8B,CAAA;AAAA,WAAA;AAAA,SACvC;AAAA,wBACAH,cAAA,CAAC,OAAE,KAAO,EAAA,EAAE,QAAQ,CAAE,EAAA,EAAI,gBAAM,OAAQ,EAAA,CAAA;AAAA,QACvC,kBAAA,oBACCA,cAAA,CAAAI,SAAA,EAAA,EAAO,OAAS,EAAA,kBAAA,EAAoB,OAAK,IACxC,EAAA,QAAA,EAAAD,qBAAA,CAAK,CAAE,CAAA,WAAW,CACpB,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAEF,CAAA;AAEF,CAAA;AAEO,MAAM,gBAAmB,GAAAE,UAAA;AAAA,EAC/B,SAASC,iBAAAA,CAAiB,EAAE,MAAA,EAAQ,UAAmC,EAAA;AACtE,IACC,uBAAAN,cAAA;AAAA,MAACO,gCAAA;AAAA,MAAA;AAAA,QACA,SAAA,EAAW,CAAC,MAAM,CAAA;AAAA,QAClB,iBAAmB,EAAA,aAAA;AAAA,QAEnB,yCAACC,sCAAwB,EAAA,EAAA,MAAA,EACxB,QAAC,kBAAAR,cAAA,CAAAS,gCAAA,EAAA,EAAqB,UAAS,CAChC,EAAA,CAAA;AAAA,OAAA;AAAA,KACD,CAAA;AAAA,GAEF;AAAA,EACA,CAAC,WAAW,SAAc,KAAA;AACzB,IAAO,OAAA,SAAA,CAAU,WAAW,SAAU,CAAA,MAAA,CAAA;AAAA,GACvC;AACD","file":"ScorecardContext.js","sourcesContent":["import { ScorecardConfigProvider } from \"./ConfigProvider\";\nimport { ScorecardMetaGetter } from \"./MetaProvider\";\nimport React, { memo, type ReactNode } from \"react\";\nimport type { ScorecardConfig } from \"../schemas/config\";\nimport { ErrorBoundary, FallbackProps } from \"react-error-boundary\";\nimport { Button, colors, IconError24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\n\ninterface ScorecardContextProps {\n\tchildren: ReactNode;\n\tconfig: ScorecardConfig;\n}\n\nfunction ErrorFallback({\n\terror,\n\tresetErrorBoundary,\n\theight,\n}: FallbackProps & { height?: number }) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\theight: height ?? 500,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<IconError24 />\n\t\t\t<h3\n\t\t\t\tstyle={{\n\t\t\t\t\tcolor: colors.grey800,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i18n.t(\"Could not load visualization\")}\n\t\t\t</h3>\n\t\t\t<p style={{ margin: 0 }}>{error.message}</p>\n\t\t\t{resetErrorBoundary && (\n\t\t\t\t<Button onClick={resetErrorBoundary} small>\n\t\t\t\t\t{i18n.t(\"Try again\")}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport const ScorecardContext = memo(\n\tfunction ScorecardContext({ config, children }: ScorecardContextProps) {\n\t\treturn (\n\t\t\t<ErrorBoundary\n\t\t\t\tresetKeys={[config]}\n\t\t\t\tFallbackComponent={ErrorFallback}\n\t\t\t>\n\t\t\t\t<ScorecardConfigProvider config={config}>\n\t\t\t\t\t<ScorecardMetaGetter>{children}</ScorecardMetaGetter>\n\t\t\t\t</ScorecardConfigProvider>\n\t\t\t</ErrorBoundary>\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn prevProps.config === nextProps.config;\n\t},\n);\n"]}
@@ -72,5 +72,5 @@ function ScorecardHeader() {
72
72
  }
73
73
 
74
74
  exports.ScorecardHeader = ScorecardHeader;
75
- //# sourceMappingURL=out.js.map
75
+ //# sourceMappingURL=ScorecardHeader.js.map
76
76
  //# sourceMappingURL=ScorecardHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ScorecardHeader.tsx"],"names":[],"mappings":"AAkCE,mBAIE,KAsBC,YA1BH;AAlCF,SAAS,0BAA0B;AACnC,SAAS,eAAe;AACxB,SAAS,sCAAsC;AAE/C,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,OAAO,eAAe;AAEf,SAAS,kBAAkB;AACjC,QAAM,SAAS,mBAAmB;AAClC,QAAM,EAAE,cAAc,OAAO,SAAS,IAAI,UAAU,CAAC;AAErD,QAAM,kBACL,+BAAgD,iBAAiB;AAClE,QAAM,YAAY,+BAAwC;AAAA,IACzD;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,UAAU,QAAQ,MAAM,gBAAgB,SAAS,CAAC,eAAe,CAAC;AAExE,QAAM,SAAS,QAAQ,MAAM;AAC5B,QAAI,QAAQ,SAAS,GAAG;AACvB;AAAA,IACD;AACA,WAAO,cAAc,cAAc,KAAK,OAAO,GAAG,EAAY;AAAA,EAC/D,GAAG,CAAC,OAAO,CAAC;AAEZ,MAAI,CAAC,WAAW;AACf,WAAO;AAAA,EACR;AAEA,SACC,gCACE;AAAA;AAAA;AAAA,IAGA;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,WAAU;AAAA,QACV,SAAS,QAAQ;AAAA,QACjB,UAAU;AAAA,UACT;AAAA,UACA;AAAA,UACA,QAAQ,QAAQ,WAAW,IAAI,QAAQ,OAAO;AAAA,QAC/C;AAAA,QACA,KAAK;AAAA;AAAA,IACN;AAAA,MAEA;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,SAAS;AAAA,QACT,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,OAAO;AAAA,QACP,KAAK;AAAA,MACN;AAAA,MAEA;AAAA,6BAAC,QAAG,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,8BAC5B;AAAA;AAAA,UAAO;AAAA,UACP,GAAG,QAAQ,WAAW,IAAI,MAAM,QAAQ,IAAI,KAAK,EAAE;AAAA,WACrD;AAAA,QACA,oBAAC,QAAG,OAAO,EAAE,OAAO,OAAO,SAAS,QAAQ,EAAE,GAC5C,oBACF;AAAA;AAAA;AAAA,EACD,GAEF;AAEF","sourcesContent":["import { useScorecardConfig } from \"./ConfigProvider\";\nimport { useMemo } from \"react\";\nimport { useScorecardStateSelectorValue } from \"../state\";\nimport type { PeriodSelection } from \"../schemas/config\";\nimport { PeriodUtility } from \"@hisptz/dhis2-utils\";\nimport { head } from \"lodash\";\nimport { colors } from \"@dhis2/ui\";\nimport JsxParser from \"react-jsx-parser\";\n\nexport function ScorecardHeader() {\n\tconst config = useScorecardConfig();\n\tconst { customHeader, title, subtitle } = config ?? {};\n\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<PeriodSelection>(\"periodSelection\");\n\tconst showTitle = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"title\",\n\t]);\n\n\tconst periods = useMemo(() => periodSelection.periods, [periodSelection]);\n\n\tconst period = useMemo(() => {\n\t\tif (periods.length > 1) {\n\t\t\treturn;\n\t\t}\n\t\treturn PeriodUtility.getPeriodById(head(periods)?.id as string);\n\t}, [periods]);\n\n\tif (!showTitle) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{customHeader ? (\n\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t<JsxParser\n\t\t\t\t\tautoCloseVoidElements\n\t\t\t\t\tclassName=\"w-100\"\n\t\t\t\t\tonError={console.error}\n\t\t\t\t\tbindings={{\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tsubtitle,\n\t\t\t\t\t\tperiod: periods.length === 1 ? period?.name : \"\",\n\t\t\t\t\t}}\n\t\t\t\t\tjsx={customHeader}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h1 style={{ margin: 8 }} id={\"data-test-score-card-title\"}>\n\t\t\t\t\t\t{title}{\" \"}\n\t\t\t\t\t\t{`${periods.length === 1 ? ` - ${period?.name}` : \"\"}`}\n\t\t\t\t\t</h1>\n\t\t\t\t\t<h3 style={{ color: colors.grey600, margin: 0 }}>\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</h3>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../src/components/ScorecardHeader.tsx"],"names":["useScorecardConfig","useScorecardStateSelectorValue","useMemo","PeriodUtility","head","jsx","Fragment","JsxParser","jsxs","colors"],"mappings":";;;;;;;;;;;;;;;AASO,SAAS,eAAkB,GAAA;AACjC,EAAA,MAAM,SAASA,iCAAmB,EAAA,CAAA;AAClC,EAAA,MAAM,EAAE,YAAc,EAAA,KAAA,EAAO,QAAS,EAAA,GAAI,UAAU,EAAC,CAAA;AAErD,EAAM,MAAA,eAAA,GACLC,qCAAgD,iBAAiB,CAAA,CAAA;AAClE,EAAA,MAAM,YAAYA,oCAAwC,CAAA;AAAA,IACzD,SAAA;AAAA,IACA,OAAA;AAAA,GACA,CAAA,CAAA;AAED,EAAA,MAAM,UAAUC,aAAQ,CAAA,MAAM,gBAAgB,OAAS,EAAA,CAAC,eAAe,CAAC,CAAA,CAAA;AAExE,EAAM,MAAA,MAAA,GAASA,cAAQ,MAAM;AAC5B,IAAI,IAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACvB,MAAA,OAAA;AAAA,KACD;AACA,IAAA,OAAOC,wBAAc,CAAA,aAAA,CAAcC,WAAK,CAAA,OAAO,GAAG,EAAY,CAAA,CAAA;AAAA,GAC/D,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AAEZ,EAAA,IAAI,CAAC,SAAW,EAAA;AACf,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAEA,EAAA,uBAEGC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,YAAA;AAAA;AAAA;AAAA,oBAGAD,cAAA;AAAA,MAACE,0BAAA;AAAA,MAAA;AAAA,QACA,qBAAqB,EAAA,IAAA;AAAA,QACrB,SAAU,EAAA,OAAA;AAAA,QACV,SAAS,OAAQ,CAAA,KAAA;AAAA,QACjB,QAAU,EAAA;AAAA,UACT,KAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAQ,EAAA,OAAA,CAAQ,MAAW,KAAA,CAAA,GAAI,QAAQ,IAAO,GAAA,EAAA;AAAA,SAC/C;AAAA,QACA,GAAK,EAAA,YAAA;AAAA,OAAA;AAAA,KACN;AAAA,sBAEAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,QAAA;AAAA,QAChB,KAAO,EAAA,MAAA;AAAA,QACP,GAAK,EAAA,EAAA;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,QAAG,KAAO,EAAA,EAAE,QAAQ,CAAE,EAAA,EAAG,IAAI,4BAC5B,EAAA,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UAAO,GAAA;AAAA,UACP,CAAA,EAAG,QAAQ,MAAW,KAAA,CAAA,GAAI,MAAM,MAAQ,EAAA,IAAI,KAAK,EAAE,CAAA,CAAA;AAAA,SACrD,EAAA,CAAA;AAAA,wBACAH,cAAA,CAAC,IAAG,EAAA,EAAA,KAAA,EAAO,EAAE,KAAA,EAAOI,UAAO,OAAS,EAAA,MAAA,EAAQ,CAAE,EAAA,EAC5C,QACF,EAAA,QAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAGH,EAAA,CAAA,CAAA;AAEF","file":"ScorecardHeader.js","sourcesContent":["import { useScorecardConfig } from \"./ConfigProvider\";\nimport { useMemo } from \"react\";\nimport { useScorecardStateSelectorValue } from \"../state\";\nimport type { PeriodSelection } from \"../schemas/config\";\nimport { PeriodUtility } from \"@hisptz/dhis2-utils\";\nimport { head } from \"lodash\";\nimport { colors } from \"@dhis2/ui\";\nimport JsxParser from \"react-jsx-parser\";\n\nexport function ScorecardHeader() {\n\tconst config = useScorecardConfig();\n\tconst { customHeader, title, subtitle } = config ?? {};\n\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<PeriodSelection>(\"periodSelection\");\n\tconst showTitle = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"title\",\n\t]);\n\n\tconst periods = useMemo(() => periodSelection.periods, [periodSelection]);\n\n\tconst period = useMemo(() => {\n\t\tif (periods.length > 1) {\n\t\t\treturn;\n\t\t}\n\t\treturn PeriodUtility.getPeriodById(head(periods)?.id as string);\n\t}, [periods]);\n\n\tif (!showTitle) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{customHeader ? (\n\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t<JsxParser\n\t\t\t\t\tautoCloseVoidElements\n\t\t\t\t\tclassName=\"w-100\"\n\t\t\t\t\tonError={console.error}\n\t\t\t\t\tbindings={{\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tsubtitle,\n\t\t\t\t\t\tperiod: periods.length === 1 ? period?.name : \"\",\n\t\t\t\t\t}}\n\t\t\t\t\tjsx={customHeader}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h1 style={{ margin: 8 }} id={\"data-test-score-card-title\"}>\n\t\t\t\t\t\t{title}{\" \"}\n\t\t\t\t\t\t{`${periods.length === 1 ? ` - ${period?.name}` : \"\"}`}\n\t\t\t\t\t</h1>\n\t\t\t\t\t<h3 style={{ color: colors.grey600, margin: 0 }}>\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</h3>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
@@ -59,5 +59,5 @@ const ScorecardLegendsView = react.memo(function ScorecardLegendsView2() {
59
59
  });
60
60
 
61
61
  exports.ScorecardLegendsView = ScorecardLegendsView;
62
- //# sourceMappingURL=out.js.map
62
+ //# sourceMappingURL=ScorecardLegendsView.js.map
63
63
  //# sourceMappingURL=ScorecardLegendsView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardLegendsView/ScorecardLegendsView.tsx"],"names":["ScorecardLegendsView"],"mappings":"AAkCK,cAID,YAJC;AAlCL,SAAS,wBAAwB;AACjC,SAAS,iCAAiC;AAC1C,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AACnC,SAAS,YAAY;AACrB,SAAS,mCAAmC;AAErC,MAAM,uBAAuB,KAAK,SAASA,wBAAuB;AACxE,QAAM,SAAS,mBAAmB;AAClC,QAAM,oBAAoB,OAAQ;AAClC,QAAM,cAAc,4BAA4B,QAAQ;AAExD,MAAI,CAAC,aAAa;AACjB,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,KAAK;AAAA,QACL,SAAS;AAAA,QACT,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,MACjB;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,OAAO;AAAA,cACN,SAAS;AAAA,cACT,KAAK;AAAA,cACL,qBAAqB,UAAU,kBAAkB,MAAM;AAAA,YACxD;AAAA,YAEC,4BAAkB,IAAI,CAAC,SACvB,oBAAC,cAAW,QAAQ,QAAW,KAAK,EAAI,CACxC;AAAA;AAAA,QACF;AAAA,QACA,oBAAC,SACA;AAAA,UAAC;AAAA;AAAA,YACA,OAAO;AAAA,cACN,KAAK;AAAA,cACL,aAAa;AAAA,cACb,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,YACjB;AAAA,YAEA;AAAA,kCAAC,oBAAiB;AAAA,cAClB,oBAAC,6BAA0B;AAAA;AAAA;AAAA,QAC5B,GACD;AAAA;AAAA;AAAA,EACD;AAEF,CAAC","sourcesContent":["import { ArrowLegendsView } from \"./components/ArrowLegendView\";\nimport { SpecificTargetLegendsView } from \"./components/SpecificTargetLegendsView\";\nimport { LegendView } from \"./components/LegendView\";\nimport { useScorecardConfig } from \"../ConfigProvider\";\nimport { memo } from \"react\";\nimport { useScorecardViewOptionValue } from \"../../state\";\n\nexport const ScorecardLegendsView = memo(function ScorecardLegendsView() {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config!.legendDefinitions;\n\tconst showLegends = useScorecardViewOptionValue(\"legend\");\n\n\tif (!showLegends) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: \"0 16px\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t\tgridTemplateColumns: `repeat(${legendDefinitions.length}, auto)`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legendDefinitions.map((item) => (\n\t\t\t\t\t<LegendView legend={item} key={item.id} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tjustifySelf: \"flex-end\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<ArrowLegendsView />\n\t\t\t\t\t<SpecificTargetLegendsView />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardLegendsView/ScorecardLegendsView.tsx"],"names":["memo","ScorecardLegendsView","useScorecardConfig","useScorecardViewOptionValue","jsxs","jsx","LegendView","ArrowLegendsView","SpecificTargetLegendsView"],"mappings":";;;;;;;;;;AAOa,MAAA,oBAAA,GAAuBA,UAAK,CAAA,SAASC,qBAAuB,GAAA;AACxE,EAAA,MAAM,SAASC,iCAAmB,EAAA,CAAA;AAClC,EAAA,MAAM,oBAAoB,MAAQ,CAAA,iBAAA,CAAA;AAClC,EAAM,MAAA,WAAA,GAAcC,kCAA4B,QAAQ,CAAA,CAAA;AAExD,EAAA,IAAI,CAAC,WAAa,EAAA;AACjB,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAEA,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,GAAK,EAAA,EAAA;AAAA,QACL,OAAS,EAAA,QAAA;AAAA,QACT,OAAS,EAAA,MAAA;AAAA,QACT,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,eAAA;AAAA,OACjB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,OAAS,EAAA,MAAA;AAAA,cACT,GAAK,EAAA,CAAA;AAAA,cACL,mBAAA,EAAqB,CAAU,OAAA,EAAA,iBAAA,CAAkB,MAAM,CAAA,OAAA,CAAA;AAAA,aACxD;AAAA,YAEC,QAAA,EAAA,iBAAA,CAAkB,GAAI,CAAA,CAAC,IACvB,qBAAAA,cAAA,CAACC,yBAAW,MAAQ,EAAA,IAAA,EAAA,EAAW,IAAK,CAAA,EAAI,CACxC,CAAA;AAAA,WAAA;AAAA,SACF;AAAA,uCACC,KACA,EAAA,EAAA,QAAA,kBAAAF,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,GAAK,EAAA,EAAA;AAAA,cACL,WAAa,EAAA,UAAA;AAAA,cACb,OAAS,EAAA,MAAA;AAAA,cACT,UAAY,EAAA,QAAA;AAAA,cACZ,cAAgB,EAAA,eAAA;AAAA,aACjB;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAACE,gCAAiB,EAAA,EAAA,CAAA;AAAA,6CACjBC,mDAA0B,EAAA,EAAA,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SAE7B,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACD,CAAA;AAEF,CAAC","file":"ScorecardLegendsView.js","sourcesContent":["import { ArrowLegendsView } from \"./components/ArrowLegendView\";\nimport { SpecificTargetLegendsView } from \"./components/SpecificTargetLegendsView\";\nimport { LegendView } from \"./components/LegendView\";\nimport { useScorecardConfig } from \"../ConfigProvider\";\nimport { memo } from \"react\";\nimport { useScorecardViewOptionValue } from \"../../state\";\n\nexport const ScorecardLegendsView = memo(function ScorecardLegendsView() {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config!.legendDefinitions;\n\tconst showLegends = useScorecardViewOptionValue(\"legend\");\n\n\tif (!showLegends) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: \"0 16px\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t\tgridTemplateColumns: `repeat(${legendDefinitions.length}, auto)`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legendDefinitions.map((item) => (\n\t\t\t\t\t<LegendView legend={item} key={item.id} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tjustifySelf: \"flex-end\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<ArrowLegendsView />\n\t\t\t\t\t<SpecificTargetLegendsView />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n"]}
@@ -33,5 +33,5 @@ function ArrowLegendsView(props) {
33
33
  }
34
34
 
35
35
  exports.ArrowLegendsView = ArrowLegendsView;
36
- //# sourceMappingURL=out.js.map
36
+ //# sourceMappingURL=ArrowLegendView.js.map
37
37
  //# sourceMappingURL=ArrowLegendView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/ArrowLegendView.tsx"],"names":[],"mappings":"AAeG,SACC,KADD;AAfH,SAAS,iBAAiB,qBAAqB;AAC/C,OAAO,UAAU;AACjB,SAAS,mCAAmC;AAErC,SAAS,iBAAiB,OAAY;AAC5C,QAAM,aAAa,4BAA4B,QAAQ;AAEvD,MAAI,CAAC,YAAY;AAChB,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,EAAE,KAAK,IAAI,SAAS,QAAQ,qBAAqB,UAAU;AAAA,MAElE;AAAA,6BAAC,SAAI,OAAO,EAAE,KAAK,GAAG,SAAS,QAAQ,YAAY,SAAS,GAC3D;AAAA,8BAAC,iBAAc;AAAA,UACd,KAAK,EAAE,4BAA4B;AAAA,WACrC;AAAA,QACA,qBAAC,SAAI,OAAO,EAAE,KAAK,GAAG,SAAS,QAAQ,YAAY,SAAS,GAC3D;AAAA,8BAAC,mBAAgB;AAAA,UAChB,KAAK,EAAE,4BAA4B;AAAA,WACrC;AAAA;AAAA;AAAA,EACD;AAEF","sourcesContent":["import { IconArrowDown24, IconArrowUp24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardViewOptionValue } from \"../../../state\";\n\nexport function ArrowLegendsView(props: any) {\n\tconst showArrows = useScorecardViewOptionValue(\"arrows\");\n\n\tif (!showArrows) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ gap: 16, display: \"grid\", gridTemplateColumns: \"1fr 1fr\" }}\n\t\t>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowUp24 />\n\t\t\t\t{i18n.t(\"Increased from last period\")}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowDown24 />\n\t\t\t\t{i18n.t(\"Decreased from last period\")}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/ArrowLegendView.tsx"],"names":["useScorecardViewOptionValue","jsxs","jsx","IconArrowUp24","i18n","IconArrowDown24"],"mappings":";;;;;;;;;;;AAIO,SAAS,iBAAiB,KAAY,EAAA;AAC5C,EAAM,MAAA,UAAA,GAAaA,kCAA4B,QAAQ,CAAA,CAAA;AAEvD,EAAA,IAAI,CAAC,UAAY,EAAA;AAChB,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAEA,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,GAAA,EAAK,IAAI,OAAS,EAAA,MAAA,EAAQ,qBAAqB,SAAU,EAAA;AAAA,MAElE,QAAA,EAAA;AAAA,wBAACA,eAAA,CAAA,KAAA,EAAA,EAAI,OAAO,EAAE,GAAA,EAAK,GAAG,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,EAClD,EAAA,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,gBAAc,EAAA,EAAA,CAAA;AAAA,UACdC,qBAAA,CAAK,EAAE,4BAA4B,CAAA;AAAA,SACrC,EAAA,CAAA;AAAA,wBACAH,eAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,GAAA,EAAK,GAAG,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,EAClD,EAAA,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACG,kBAAgB,EAAA,EAAA,CAAA;AAAA,UAChBD,qBAAA,CAAK,EAAE,4BAA4B,CAAA;AAAA,SACrC,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACD,CAAA;AAEF","file":"ArrowLegendView.js","sourcesContent":["import { IconArrowDown24, IconArrowUp24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardViewOptionValue } from \"../../../state\";\n\nexport function ArrowLegendsView(props: any) {\n\tconst showArrows = useScorecardViewOptionValue(\"arrows\");\n\n\tif (!showArrows) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ gap: 16, display: \"grid\", gridTemplateColumns: \"1fr 1fr\" }}\n\t\t>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowUp24 />\n\t\t\t\t{i18n.t(\"Increased from last period\")}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowDown24 />\n\t\t\t\t{i18n.t(\"Decreased from last period\")}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -77,5 +77,5 @@ function LegendView({ legend }) {
77
77
 
78
78
  exports.LegendView = LegendView;
79
79
  exports.LegendsView = LegendsView;
80
- //# sourceMappingURL=out.js.map
80
+ //# sourceMappingURL=LegendView.js.map
81
81
  //# sourceMappingURL=LegendView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/LegendView.tsx"],"names":[],"mappings":"AAmBI,cAIC,YAJD;AAnBJ,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,0BAA0B;AAU5B,SAAS,YAAY,EAAE,QAAQ,GAAqB;AAC1D,QAAM,SAAS,mBAAmB;AAClC,QAAM,oBAAoB,OAAO,qBAAqB,CAAC;AAEvD,SACC,oBAAC,SAAI,WAAU,gBACd,+BAAC,WACA;AAAA,wBAAC,SAAI,OAAM,OAAM;AAAA,IACjB,oBAAC,SAAI,OAAM,OAAM;AAAA,IACjB,oBAAC,SAAI,OAAM,OAAM;AAAA,IACjB,oBAAC,WACA,+BAAC,QACA;AAAA,0BAAC,QAAG,OAAM,QAAQ,eAAK,EAAE,QAAQ,GAAE;AAAA,MACnC,oBAAC,QAAI,eAAK,EAAE,KAAK,GAAE;AAAA,MACnB,oBAAC,QAAI,eAAK,EAAE,KAAK,GAAE;AAAA,OACpB,GACD;AAAA,IACA,oBAAC,WACC,mBAAS,IAAI,CAAC,WAAW;AACzB,YAAM,mBAAmB,KAAK,mBAAmB;AAAA,QAChD,IAAI,OAAO;AAAA,MACZ,CAAC;AACD,aACC,qBAAC,QACA;AAAA,4BAAC,QACA,+BAAC,WACA;AAAA,8BAAC,SAAI,OAAM,OAAM;AAAA,UACjB,oBAAC,SAAI,OAAM,OAAM;AAAA,UACjB,oBAAC,WACA,+BAAC,QACA;AAAA,gCAAC,QACA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAO;AAAA,kBACN,QAAQ;AAAA,kBACR,OAAO;AAAA,kBACP,YACC,kBAAkB;AAAA,gBACpB;AAAA;AAAA,YACD,GACD;AAAA,YACA,oBAAC,QACC,4BAAkB,MACpB;AAAA,aACD,GACD;AAAA,WACD,GACD;AAAA,QACA,oBAAC,QAAG,OAAM,UAAU,kBAAQ,YAAW;AAAA,QACvC,oBAAC,QAAG,OAAM,UAAU,kBAAQ,UAAS;AAAA,WAzB7B,GAAG,OAAO,EAAE,OA0BrB;AAAA,IAEF,CAAC,GACF;AAAA,KACD,GACD;AAEF;AAMO,SAAS,WAAW,EAAE,OAAO,GAAoB;AACvD,QAAM,EAAE,OAAO,MAAM,GAAG,IAAI;AAC5B,SACC;AAAA,IAAC;AAAA;AAAA,MAEA,OAAO,EAAE,SAAS,QAAQ,KAAK,GAAG,qBAAqB,WAAW;AAAA,MAElE;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,OAAO;AAAA,cACN,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,YAAY;AAAA,cACZ,QAAQ;AAAA,cACR,SAAS;AAAA,YACV;AAAA;AAAA,QACD;AAAA,QACA,oBAAC,OAAE,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,GAAI,gBAAK;AAAA;AAAA;AAAA,IAZ/C;AAAA,EAaN;AAEF","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { find } from \"lodash\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type {\n\tLegendDefinition,\n\tScorecardLegend,\n} from \"../../../schemas/config\";\n\nexport interface LegendsViewProps {\n\tlegends: ScorecardLegend[];\n}\n\nexport function LegendsView({ legends }: LegendsViewProps) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config.legendDefinitions ?? [];\n\n\treturn (\n\t\t<div className=\"column gap-8\">\n\t\t\t<table>\n\t\t\t\t<col width=\"60%\" />\n\t\t\t\t<col width=\"20%\" />\n\t\t\t\t<col width=\"20%\" />\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th align=\"left\">{i18n.t(\"Legend\")}</th>\n\t\t\t\t\t\t<th>{i18n.t(\"Min\")}</th>\n\t\t\t\t\t\t<th>{i18n.t(\"Max\")}</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{legends?.map((legend) => {\n\t\t\t\t\t\tconst legendDefinition = find(legendDefinitions, {\n\t\t\t\t\t\t\tid: legend.legendDefinitionId,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<tr key={`${legend.id}-view`}>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t\t\t\t<col width=\"20%\" />\n\t\t\t\t\t\t\t\t\t\t<col width=\"80%\" />\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 24,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 32,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlegendDefinition?.color,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{legendDefinition?.name}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align=\"center\">{legend?.startValue}</td>\n\t\t\t\t\t\t\t\t<td align=\"center\">{legend?.endValue}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t);\n}\n\nexport interface LegendViewProps {\n\tlegend: LegendDefinition;\n}\n\nexport function LegendView({ legend }: LegendViewProps) {\n\tconst { color, name, id } = legend;\n\treturn (\n\t\t<div\n\t\t\tkey={id}\n\t\t\tstyle={{ display: \"grid\", gap: 8, gridTemplateColumns: \"auto 1fr\" }}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 25,\n\t\t\t\t\tbackground: color,\n\t\t\t\t\tborder: \"1px solid rgb(232, 237, 242)\",\n\t\t\t\t\tpadding: 16,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<p style={{ paddingLeft: 8, marginRight: 8 }}>{name}</p>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/LegendView.tsx"],"names":["useScorecardConfig","jsx","jsxs","i18n","find"],"mappings":"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","file":"LegendView.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { find } from \"lodash\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type {\n\tLegendDefinition,\n\tScorecardLegend,\n} from \"../../../schemas/config\";\n\nexport interface LegendsViewProps {\n\tlegends: ScorecardLegend[];\n}\n\nexport function LegendsView({ legends }: LegendsViewProps) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config.legendDefinitions ?? [];\n\n\treturn (\n\t\t<div className=\"column gap-8\">\n\t\t\t<table>\n\t\t\t\t<col width=\"60%\" />\n\t\t\t\t<col width=\"20%\" />\n\t\t\t\t<col width=\"20%\" />\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th align=\"left\">{i18n.t(\"Legend\")}</th>\n\t\t\t\t\t\t<th>{i18n.t(\"Min\")}</th>\n\t\t\t\t\t\t<th>{i18n.t(\"Max\")}</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{legends?.map((legend) => {\n\t\t\t\t\t\tconst legendDefinition = find(legendDefinitions, {\n\t\t\t\t\t\t\tid: legend.legendDefinitionId,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<tr key={`${legend.id}-view`}>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t\t\t\t<col width=\"20%\" />\n\t\t\t\t\t\t\t\t\t\t<col width=\"80%\" />\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 24,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 32,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlegendDefinition?.color,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{legendDefinition?.name}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align=\"center\">{legend?.startValue}</td>\n\t\t\t\t\t\t\t\t<td align=\"center\">{legend?.endValue}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t);\n}\n\nexport interface LegendViewProps {\n\tlegend: LegendDefinition;\n}\n\nexport function LegendView({ legend }: LegendViewProps) {\n\tconst { color, name, id } = legend;\n\treturn (\n\t\t<div\n\t\t\tkey={id}\n\t\t\tstyle={{ display: \"grid\", gap: 8, gridTemplateColumns: \"auto 1fr\" }}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 25,\n\t\t\t\t\tbackground: color,\n\t\t\t\t\tborder: \"1px solid rgb(232, 237, 242)\",\n\t\t\t\t\tpadding: 16,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<p style={{ paddingLeft: 8, marginRight: 8 }}>{name}</p>\n\t\t</div>\n\t);\n}\n"]}
@@ -55,5 +55,5 @@ function OrgUnitLevelSpecificTargetView({
55
55
  }
56
56
 
57
57
  exports.OrgUnitLevelSpecificTargetView = OrgUnitLevelSpecificTargetView;
58
- //# sourceMappingURL=out.js.map
58
+ //# sourceMappingURL=OrgUnitLevelSpecificTargetView.js.map
59
59
  //# sourceMappingURL=OrgUnitLevelSpecificTargetView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.tsx"],"names":[],"mappings":"AA6BI,SAYI,KAZJ;AA7BJ,SAAS,cAAc;AACvB,OAAO,UAAU;AACjB,SAAS,mBAAmB;AAE5B,SAAS,wBAAwB;AAO1B,SAAS,+BAA+B;AAAA,EAC9C;AAAA,EACA;AACD,GAAmC;AAClC,QAAM,OAAO,iBAAiB;AAC9B,QAAM,gBAAgB,MAAM,iBAAiB,CAAC;AAE9C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,UAAU;AAAA,QACV,QAAQ,aAAa,OAAO,OAAO;AAAA,QACnC,cAAc;AAAA,QACd,KAAK;AAAA,MACN;AAAA,MACA,WAAU;AAAA,MAEV;AAAA,6BAAC,SACA;AAAA,+BAAC,OAAG;AAAA,iBAAK,EAAE,aAAa;AAAA,YAAE;AAAA,aAAE;AAAA,UAC3B;AAAA,WACF;AAAA,QACA,oBAAC,SAAI,OAAO,EAAE,KAAK,GAAG,GAAG,WAAU,gBACjC,iBAAO,KAAK,cAAc,EAAE,IAAI,CAAC,QAAQ;AACzC,gBAAM,eAAe,cAAc;AAAA,YAClC,CAAC,UAAU,MAAM,OAAO;AAAA,UACzB;AACA,gBAAM,UAAU,eAAe,GAAG;AAClC,iBACC,qBAAC,SACA;AAAA,gCAAC,SAAI,WAAU,iBACd,8BAAC,SACA,+BAAC,OACC;AAAA,mBAAK,EAAE,yBAAyB;AAAA,cAAE;AAAA,cAAE;AAAA,cACpC,cAAc;AAAA,eAChB,GACD,GACD;AAAA,YACA,oBAAC,eAAY,SAAkB;AAAA,aAChC;AAAA,QAEF,CAAC,GACF;AAAA;AAAA;AAAA,EACD;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { LegendsView } from \"./LegendView\";\nimport type { OrgUnitLevelLegend } from \"../../../schemas/config\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: OrgUnitLevelLegend;\n\tlabel: string;\n}\n\nexport function OrgUnitLevelSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst meta = useScorecardMeta();\n\tconst orgUnitLevels = meta?.orgUnitLevels ?? [];\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: 350,\n\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t\tgap: 8,\n\t\t\t}}\n\t\t\tclassName=\"column gap-16 p-16\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<b>{i18n.t(\"Data Source\")}: </b>\n\t\t\t\t{label}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 16 }} className=\"column gap-8\">\n\t\t\t\t{Object.keys(specificTarget).map((key) => {\n\t\t\t\t\tconst orgUnitLevel = orgUnitLevels.find(\n\t\t\t\t\t\t(level) => level.id === key,\n\t\t\t\t\t);\n\t\t\t\t\tconst legends = specificTarget[key];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<div className=\"column gap-16\">\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<b>\n\t\t\t\t\t\t\t\t\t\t{i18n.t(\"Organisation Unit Level\")}:{\" \"}\n\t\t\t\t\t\t\t\t\t\t{orgUnitLevel?.displayName}\n\t\t\t\t\t\t\t\t\t</b>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<LegendsView legends={legends} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.tsx"],"names":["useScorecardMeta","jsxs","colors","i18n","jsx","LegendsView"],"mappings":";;;;;;;;;;;;AAWO,SAAS,8BAA+B,CAAA;AAAA,EAC9C,cAAA;AAAA,EACA,KAAA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,OAAOA,6BAAiB,EAAA,CAAA;AAC9B,EAAM,MAAA,aAAA,GAAgB,IAAM,EAAA,aAAA,IAAiB,EAAC,CAAA;AAE9C,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,QAAU,EAAA,GAAA;AAAA,QACV,MAAA,EAAQ,CAAa,UAAA,EAAAC,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,QACnC,YAAc,EAAA,CAAA;AAAA,QACd,GAAK,EAAA,CAAA;AAAA,OACN;AAAA,MACA,SAAU,EAAA,oBAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAAD,eAAA,CAAC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA;AAAA,YAAAE,qBAAA,CAAK,EAAE,aAAa,CAAA;AAAA,YAAE,IAAA;AAAA,WAAE,EAAA,CAAA;AAAA,UAC3B,KAAA;AAAA,SACF,EAAA,CAAA;AAAA,wBACCC,cAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,KAAK,EAAG,EAAA,EAAG,SAAU,EAAA,cAAA,EACjC,iBAAO,IAAK,CAAA,cAAc,CAAE,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA;AACzC,UAAA,MAAM,eAAe,aAAc,CAAA,IAAA;AAAA,YAClC,CAAC,KAAU,KAAA,KAAA,CAAM,EAAO,KAAA,GAAA;AAAA,WACzB,CAAA;AACA,UAAM,MAAA,OAAA,GAAU,eAAe,GAAG,CAAA,CAAA;AAClC,UAAA,uCACE,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,4BAAAA,cAAA,CAAC,SAAI,SAAU,EAAA,eAAA,EACd,QAAC,kBAAAA,cAAA,CAAA,KAAA,EAAA,EACA,0CAAC,GACC,EAAA,EAAA,QAAA,EAAA;AAAA,cAAAD,qBAAA,CAAK,EAAE,yBAAyB,CAAA;AAAA,cAAE,GAAA;AAAA,cAAE,GAAA;AAAA,cACpC,YAAc,EAAA,WAAA;AAAA,aAAA,EAChB,GACD,CACD,EAAA,CAAA;AAAA,4BACAC,cAAA,CAACC,0BAAY,OAAkB,EAAA,CAAA;AAAA,WAChC,EAAA,CAAA,CAAA;AAAA,SAED,CACF,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GACD,CAAA;AAEF","file":"OrgUnitLevelSpecificTargetView.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { LegendsView } from \"./LegendView\";\nimport type { OrgUnitLevelLegend } from \"../../../schemas/config\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: OrgUnitLevelLegend;\n\tlabel: string;\n}\n\nexport function OrgUnitLevelSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst meta = useScorecardMeta();\n\tconst orgUnitLevels = meta?.orgUnitLevels ?? [];\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: 350,\n\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t\tgap: 8,\n\t\t\t}}\n\t\t\tclassName=\"column gap-16 p-16\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<b>{i18n.t(\"Data Source\")}: </b>\n\t\t\t\t{label}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 16 }} className=\"column gap-8\">\n\t\t\t\t{Object.keys(specificTarget).map((key) => {\n\t\t\t\t\tconst orgUnitLevel = orgUnitLevels.find(\n\t\t\t\t\t\t(level) => level.id === key,\n\t\t\t\t\t);\n\t\t\t\t\tconst legends = specificTarget[key];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<div className=\"column gap-16\">\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<b>\n\t\t\t\t\t\t\t\t\t\t{i18n.t(\"Organisation Unit Level\")}:{\" \"}\n\t\t\t\t\t\t\t\t\t\t{orgUnitLevel?.displayName}\n\t\t\t\t\t\t\t\t\t</b>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<LegendsView legends={legends} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -60,5 +60,5 @@ function OrgUnitSpecificTargetView({
60
60
  }
61
61
 
62
62
  exports.OrgUnitSpecificTargetView = OrgUnitSpecificTargetView;
63
- //# sourceMappingURL=out.js.map
63
+ //# sourceMappingURL=OrgUnitSpecificTargetView.js.map
64
64
  //# sourceMappingURL=OrgUnitSpecificTargetView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.tsx"],"names":[],"mappings":"AAwBI,cAgBC,YAhBD;AAvBJ,SAAS,gBAAgB,cAAc;AACvC,OAAO,UAAU;AACjB,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAOrB,SAAS,0BAA0B;AAAA,EACzC;AAAA,EACA;AACD,GAAmC;AAClC,QAAM,QAAQ,eAAe;AAC7B,QAAM,EAAE,SAAS,SAAS,IAAI,YAAY,KAAK;AAE/C,MAAI,SAAS;AACZ,WACC;AAAA,MAAC;AAAA;AAAA,QACA,OAAO,EAAE,UAAU,KAAK,WAAW,IAAI;AAAA,QACvC,WAAU;AAAA,QAEV,8BAAC,kBAAe,YAAU,MAAC;AAAA;AAAA,IAC5B;AAAA,EAEF;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,UAAU;AAAA,QACV,QAAQ,aAAa,OAAO,OAAO;AAAA,QACnC,cAAc;AAAA,MACf;AAAA,MACA,WAAU;AAAA,MAEV;AAAA,6BAAC,SAAI,WAAU,iBACd;AAAA,+BAAC,SACA;AAAA,iCAAC,OAAG;AAAA,mBAAK,EAAE,sBAAsB;AAAA,cAAE;AAAA,eAAE;AAAA,YAAK;AAAA,YACzC,UAAU,IAAI,CAAC,OAAO,GAAG,WAAW,GAAG,KAAK,IAAI;AAAA,aAClD;AAAA,UACA,qBAAC,SACA;AAAA,iCAAC,OAAG;AAAA,mBAAK,EAAE,aAAa;AAAA,cAAE;AAAA,eAAE;AAAA,YAC3B;AAAA,aACF;AAAA,WACD;AAAA,QACA,oBAAC,eAAY,SAAS,eAAe,SAAS;AAAA;AAAA;AAAA,EAC/C;AAEF","sourcesContent":["import type { SpecificTarget } from \"../../../schemas/config\";\nimport { CircularLoader, colors } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { LegendsView } from \"./LegendView\";\nimport { useOrgUnits } from \"../../../hooks/orgUnit\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: SpecificTarget;\n\tlabel: string;\n}\n\nexport function OrgUnitSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst items = specificTarget.items;\n\tconst { loading, orgUnits } = useOrgUnits(items);\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{ minWidth: 200, minHeight: 200 }}\n\t\t\t\tclassName=\"column align-items-center justify-content-center\"\n\t\t\t>\n\t\t\t\t<CircularLoader extrasmall />\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: 350,\n\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t}}\n\t\t\tclassName=\"column gap-16 p-16\"\n\t\t>\n\t\t\t<div className=\"column gap-16\">\n\t\t\t\t<div>\n\t\t\t\t\t<b>{i18n.t(\"Organisation Unit(s)\")}: </b>{\" \"}\n\t\t\t\t\t{orgUnits?.map((ou) => ou.displayName)?.join(\", \")}\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<b>{i18n.t(\"Data Source\")}: </b>\n\t\t\t\t\t{label}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<LegendsView legends={specificTarget.legends} />\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.tsx"],"names":["useOrgUnits","jsx","CircularLoader","jsxs","colors","i18n","LegendsView"],"mappings":";;;;;;;;;;;;AAWO,SAAS,yBAA0B,CAAA;AAAA,EACzC,cAAA;AAAA,EACA,KAAA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,QAAQ,cAAe,CAAA,KAAA,CAAA;AAC7B,EAAA,MAAM,EAAE,OAAA,EAAS,QAAS,EAAA,GAAIA,oBAAY,KAAK,CAAA,CAAA;AAE/C,EAAA,IAAI,OAAS,EAAA;AACZ,IACC,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAO,EAAA,EAAE,QAAU,EAAA,GAAA,EAAK,WAAW,GAAI,EAAA;AAAA,QACvC,SAAU,EAAA,kDAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAACC,iBAAe,EAAA,EAAA,UAAA,EAAU,IAAC,EAAA,CAAA;AAAA,OAAA;AAAA,KAC5B,CAAA;AAAA,GAEF;AAEA,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,QAAU,EAAA,GAAA;AAAA,QACV,MAAA,EAAQ,CAAa,UAAA,EAAAC,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,QACnC,YAAc,EAAA,CAAA;AAAA,OACf;AAAA,MACA,SAAU,EAAA,oBAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAACD,eAAA,CAAA,KAAA,EAAA,EAAI,WAAU,eACd,EAAA,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,4BAAAA,eAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA;AAAA,cAAAE,qBAAA,CAAK,EAAE,sBAAsB,CAAA;AAAA,cAAE,IAAA;AAAA,aAAE,EAAA,CAAA;AAAA,YAAK,GAAA;AAAA,YACzC,QAAA,EAAU,IAAI,CAAC,EAAA,KAAO,GAAG,WAAW,CAAA,EAAG,KAAK,IAAI,CAAA;AAAA,WAClD,EAAA,CAAA;AAAA,0CACC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,4BAAAF,eAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA;AAAA,cAAAE,qBAAA,CAAK,EAAE,aAAa,CAAA;AAAA,cAAE,IAAA;AAAA,aAAE,EAAA,CAAA;AAAA,YAC3B,KAAA;AAAA,WACF,EAAA,CAAA;AAAA,SACD,EAAA,CAAA;AAAA,wBACCJ,cAAA,CAAAK,sBAAA,EAAA,EAAY,OAAS,EAAA,cAAA,CAAe,OAAS,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAC/C,CAAA;AAEF","file":"OrgUnitSpecificTargetView.js","sourcesContent":["import type { SpecificTarget } from \"../../../schemas/config\";\nimport { CircularLoader, colors } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { LegendsView } from \"./LegendView\";\nimport { useOrgUnits } from \"../../../hooks/orgUnit\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: SpecificTarget;\n\tlabel: string;\n}\n\nexport function OrgUnitSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst items = specificTarget.items;\n\tconst { loading, orgUnits } = useOrgUnits(items);\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{ minWidth: 200, minHeight: 200 }}\n\t\t\t\tclassName=\"column align-items-center justify-content-center\"\n\t\t\t>\n\t\t\t\t<CircularLoader extrasmall />\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: 350,\n\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t}}\n\t\t\tclassName=\"column gap-16 p-16\"\n\t\t>\n\t\t\t<div className=\"column gap-16\">\n\t\t\t\t<div>\n\t\t\t\t\t<b>{i18n.t(\"Organisation Unit(s)\")}: </b>{\" \"}\n\t\t\t\t\t{orgUnits?.map((ou) => ou.displayName)?.join(\", \")}\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<b>{i18n.t(\"Data Source\")}: </b>\n\t\t\t\t\t{label}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<LegendsView legends={specificTarget.legends} />\n\t\t</div>\n\t);\n}\n"]}
@@ -57,5 +57,5 @@ function PeriodSpecificTargetView({
57
57
  }
58
58
 
59
59
  exports.PeriodSpecificTargetView = PeriodSpecificTargetView;
60
- //# sourceMappingURL=out.js.map
60
+ //# sourceMappingURL=PeriodSpecificTargetView.js.map
61
61
  //# sourceMappingURL=PeriodSpecificTargetView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/PeriodSpecificTargetView.tsx"],"names":[],"mappings":"AAoCK,SAQF,KARE;AApCL,SAAS,cAAc;AACvB,OAAO,UAAU;AACjB,SAAS,mBAAmB;AAC5B,SAAS,qCAAqC;AAC9C,SAAS,mBAAmB;AAQrB,SAAS,yBAAyB;AAAA,EACxC;AAAA,EACA;AACD,GAAmC;AAClC,QAAM,QAAQ,eAAe;AAC7B,QAAM,WAAW,YAAY;AAC7B,QAAM,UAAU,MAAM;AAAA,IAAI,CAAC,aAC1B,8BAA8B;AAAA,MAC7B;AAAA,MACA;AAAA,IACD,CAAC;AAAA,EACF;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,UAAU;AAAA,QACV,QAAQ,aAAa,OAAO,OAAO;AAAA,QACnC,cAAc;AAAA,MACf;AAAA,MACA,WAAU;AAAA,MAEV;AAAA,6BAAC,SAAI,WAAU,iBACd;AAAA,+BAAC,SACA;AAAA,iCAAC,OAAG;AAAA,mBAAK,EAAE,WAAW;AAAA,cAAE;AAAA,eAAE;AAAA,YAAK;AAAA,YAC9B,SAAS,IAAI,CAAC,OAAO,GAAG,WAAW,GAAG,KAAK,IAAI;AAAA,aACjD;AAAA,UACA,qBAAC,SACA;AAAA,iCAAC,OAAG;AAAA,mBAAK,EAAE,aAAa;AAAA,cAAE;AAAA,eAAE;AAAA,YAC3B;AAAA,aACF;AAAA,WACD;AAAA,QACA,oBAAC,eAAY,SAAS,eAAe,SAAS;AAAA;AAAA;AAAA,EAC/C;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { LegendsView } from \"./LegendView\";\nimport { createFixedPeriodFromPeriodId } from \"@dhis2/multi-calendar-dates\";\nimport { useCalendar } from \"../../../hooks/metadata\";\nimport type { SpecificTarget } from \"../../../schemas/config\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: SpecificTarget;\n\tlabel: string;\n}\n\nexport function PeriodSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst items = specificTarget.items;\n\tconst calendar = useCalendar();\n\tconst periods = items.map((periodId) =>\n\t\tcreateFixedPeriodFromPeriodId({\n\t\t\tcalendar,\n\t\t\tperiodId,\n\t\t}),\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: 350,\n\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t}}\n\t\t\tclassName=\"column gap-16 p-16\"\n\t\t>\n\t\t\t<div className=\"column gap-16\">\n\t\t\t\t<div>\n\t\t\t\t\t<b>{i18n.t(\"Period(s)\")}: </b>{\" \"}\n\t\t\t\t\t{periods?.map((ou) => ou.displayName)?.join(\", \")}\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<b>{i18n.t(\"Data Source\")}: </b>\n\t\t\t\t\t{label}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<LegendsView legends={specificTarget.legends} />\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/PeriodSpecificTargetView.tsx"],"names":["useCalendar","createFixedPeriodFromPeriodId","jsxs","colors","i18n","jsx","LegendsView"],"mappings":";;;;;;;;;;;;;AAYO,SAAS,wBAAyB,CAAA;AAAA,EACxC,cAAA;AAAA,EACA,KAAA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,QAAQ,cAAe,CAAA,KAAA,CAAA;AAC7B,EAAA,MAAM,WAAWA,oBAAY,EAAA,CAAA;AAC7B,EAAA,MAAM,UAAU,KAAM,CAAA,GAAA;AAAA,IAAI,CAAC,aAC1BC,gDAA8B,CAAA;AAAA,MAC7B,QAAA;AAAA,MACA,QAAA;AAAA,KACA,CAAA;AAAA,GACF,CAAA;AAEA,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,QAAU,EAAA,GAAA;AAAA,QACV,MAAA,EAAQ,CAAa,UAAA,EAAAC,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,QACnC,YAAc,EAAA,CAAA;AAAA,OACf;AAAA,MACA,SAAU,EAAA,oBAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAACD,eAAA,CAAA,KAAA,EAAA,EAAI,WAAU,eACd,EAAA,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,4BAAAA,eAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA;AAAA,cAAAE,qBAAA,CAAK,EAAE,WAAW,CAAA;AAAA,cAAE,IAAA;AAAA,aAAE,EAAA,CAAA;AAAA,YAAK,GAAA;AAAA,YAC9B,OAAA,EAAS,IAAI,CAAC,EAAA,KAAO,GAAG,WAAW,CAAA,EAAG,KAAK,IAAI,CAAA;AAAA,WACjD,EAAA,CAAA;AAAA,0CACC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,4BAAAF,eAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA;AAAA,cAAAE,qBAAA,CAAK,EAAE,aAAa,CAAA;AAAA,cAAE,IAAA;AAAA,aAAE,EAAA,CAAA;AAAA,YAC3B,KAAA;AAAA,WACF,EAAA,CAAA;AAAA,SACD,EAAA,CAAA;AAAA,wBACCC,cAAA,CAAAC,sBAAA,EAAA,EAAY,OAAS,EAAA,cAAA,CAAe,OAAS,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAC/C,CAAA;AAEF","file":"PeriodSpecificTargetView.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { LegendsView } from \"./LegendView\";\nimport { createFixedPeriodFromPeriodId } from \"@dhis2/multi-calendar-dates\";\nimport { useCalendar } from \"../../../hooks/metadata\";\nimport type { SpecificTarget } from \"../../../schemas/config\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: SpecificTarget;\n\tlabel: string;\n}\n\nexport function PeriodSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst items = specificTarget.items;\n\tconst calendar = useCalendar();\n\tconst periods = items.map((periodId) =>\n\t\tcreateFixedPeriodFromPeriodId({\n\t\t\tcalendar,\n\t\t\tperiodId,\n\t\t}),\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: 350,\n\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t}}\n\t\t\tclassName=\"column gap-16 p-16\"\n\t\t>\n\t\t\t<div className=\"column gap-16\">\n\t\t\t\t<div>\n\t\t\t\t\t<b>{i18n.t(\"Period(s)\")}: </b>{\" \"}\n\t\t\t\t\t{periods?.map((ou) => ou.displayName)?.join(\", \")}\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<b>{i18n.t(\"Data Source\")}: </b>\n\t\t\t\t\t{label}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<LegendsView legends={specificTarget.legends} />\n\t\t</div>\n\t);\n}\n"]}
@@ -132,5 +132,5 @@ function SpecificTargetLegendsView() {
132
132
 
133
133
  exports.SpecificTargetLegendsView = SpecificTargetLegendsView;
134
134
  exports.SpecificTargetsLibrary = SpecificTargetsLibrary;
135
- //# sourceMappingURL=out.js.map
135
+ //# sourceMappingURL=SpecificTargetLegendsView.js.map
136
136
  //# sourceMappingURL=SpecificTargetLegendsView.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/SpecificTargetLegendsView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { filter, groupBy, head, isEmpty } from \"lodash\";\nimport {\n\tButton,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useMemo } from \"react\";\nimport { OrgUnitSpecificTargetView } from \"./OrgUnitSpecificTargetView\";\nimport { PeriodSpecificTargetView } from \"./PeriodSpecificTargetView\";\nimport { useBoolean } from \"usehooks-ts\";\nimport { OrgUnitLevelSpecificTargetView } from \"./OrgUnitLevelSpecificTargetView\";\nimport { getDataSourcesFromGroups } from \"../../../utils/dataSources\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type {\n\tOrgUnitLevelLegend,\n\tScorecardDataSource,\n} from \"../../../schemas/config\";\nimport { useGetDataSourceLabel } from \"../../../hooks\";\n\nexport function SpecificTargetsLibrary() {\n\tconst config = useScorecardConfig();\n\tconst dataSources = getDataSourcesFromGroups(\n\t\tconfig.dataSelection.dataGroups,\n\t);\n\tconst specificTargetsDataSourcesByType = useMemo(() => {\n\t\tconst dataSourcesWithSpecificTargets = dataSources.filter(\n\t\t\t(ds) => ds.specificTargetsSet,\n\t\t);\n\t\tconst data = groupBy(\n\t\t\tfilter(\n\t\t\t\tdataSourcesWithSpecificTargets,\n\t\t\t\t(ds) => !isEmpty(ds.specificTargets),\n\t\t\t),\n\t\t\t(ds) => head(ds.specificTargets)?.type,\n\t\t);\n\t\tdata[\"orgUnitLevel\"] = dataSourcesWithSpecificTargets.filter((ds) =>\n\t\t\tisEmpty(ds.specificTargets),\n\t\t);\n\t\treturn data as {\n\t\t\tperiod: Array<ScorecardDataSource> | undefined;\n\t\t\torgUnit: Array<ScorecardDataSource> | undefined;\n\t\t\torgUnitLevel: Array<ScorecardDataSource>;\n\t\t};\n\t}, [dataSources]);\n\n\tconst getDataSourceLabel = useGetDataSourceLabel();\n\treturn (\n\t\t<>\n\t\t\t<div className=\"column gap-16\">\n\t\t\t\t{!isEmpty(specificTargetsDataSourcesByType?.orgUnit) && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<h3>{i18n.t(\"Organisation Units Specific targets\")}</h3>\n\t\t\t\t\t\t<div className=\"row gap-16\">\n\t\t\t\t\t\t\t{specificTargetsDataSourcesByType?.orgUnit?.map(\n\t\t\t\t\t\t\t\t(dataSource) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<OrgUnitSpecificTargetView\n\t\t\t\t\t\t\t\t\t\t\tkey={`${dataSource.id}-orgUnit-specific-target`}\n\t\t\t\t\t\t\t\t\t\t\tspecificTarget={\n\t\t\t\t\t\t\t\t\t\t\t\thead(\n\t\t\t\t\t\t\t\t\t\t\t\t\tdataSource.specificTargets,\n\t\t\t\t\t\t\t\t\t\t\t\t)!\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tlabel={getDataSourceLabel(\n\t\t\t\t\t\t\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!isEmpty(specificTargetsDataSourcesByType?.period) && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<h3>{i18n.t(\"Period Specific targets\")}</h3>\n\t\t\t\t\t\t<div className=\"row gap-16\">\n\t\t\t\t\t\t\t{specificTargetsDataSourcesByType?.period?.map(\n\t\t\t\t\t\t\t\t(dataSource) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<PeriodSpecificTargetView\n\t\t\t\t\t\t\t\t\t\t\tkey={`${dataSource.id}-orgUnit-specific-target`}\n\t\t\t\t\t\t\t\t\t\t\tspecificTarget={\n\t\t\t\t\t\t\t\t\t\t\t\thead(\n\t\t\t\t\t\t\t\t\t\t\t\t\tdataSource.specificTargets,\n\t\t\t\t\t\t\t\t\t\t\t\t)!\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tlabel={getDataSourceLabel(\n\t\t\t\t\t\t\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!isEmpty(specificTargetsDataSourcesByType.orgUnitLevel) && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<h3>{i18n.t(\"Organisation unit level targets\")}</h3>\n\t\t\t\t\t\t<div className=\"column gap-16\">\n\t\t\t\t\t\t\t{specificTargetsDataSourcesByType?.orgUnitLevel.map(\n\t\t\t\t\t\t\t\t(dataSource) => (\n\t\t\t\t\t\t\t\t\t<OrgUnitLevelSpecificTargetView\n\t\t\t\t\t\t\t\t\t\tkey={`${dataSource.id}-orgUnit-specific-target`}\n\t\t\t\t\t\t\t\t\t\tspecificTarget={\n\t\t\t\t\t\t\t\t\t\t\tdataSource.legends as OrgUnitLevelLegend\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={getDataSourceLabel(dataSource)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nfunction SpecificTargetLegendsModal({\n\thide,\n\tonClose,\n}: {\n\thide: boolean;\n\tonClose: () => void;\n}) {\n\treturn (\n\t\t<Modal large position=\"middle\" hide={hide} onClose={onClose}>\n\t\t\t<ModalTitle>{i18n.t(\"Specific targets\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t<SpecificTargetsLibrary />\n\t\t\t</ModalContent>\n\t\t\t<ModalActions>\n\t\t\t\t<Button onClick={onClose}>{i18n.t(\"Close\")}</Button>\n\t\t\t</ModalActions>\n\t\t</Modal>\n\t);\n}\n\nexport function SpecificTargetLegendsView() {\n\tconst config = useScorecardConfig();\n\tconst {\n\t\tvalue: hide,\n\t\tsetTrue: onClose,\n\t\tsetFalse: onShow,\n\t} = useBoolean(true);\n\tconst dataSources = getDataSourcesFromGroups(\n\t\tconfig.dataSelection.dataGroups,\n\t);\n\tconst dataSourcesWithSpecificTargets = dataSources.filter(\n\t\t(dataSource) =>\n\t\t\t!isEmpty(dataSource.specificTargets) ||\n\t\t\t!Array.isArray(dataSource.legends),\n\t);\n\n\tif (isEmpty(dataSourcesWithSpecificTargets)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{!hide && (\n\t\t\t\t<SpecificTargetLegendsModal hide={hide} onClose={onClose} />\n\t\t\t)}\n\t\t\t<Button className=\"print-hide\" onClick={onShow}>\n\t\t\t\t{i18n.t(\"Specific Targets Library\")}\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/SpecificTargetLegendsView.tsx"],"names":["useScorecardConfig","dataSources","getDataSourcesFromGroups","useMemo","groupBy","filter","isEmpty","head","useGetDataSourceLabel","jsx","Fragment","jsxs","i18n","OrgUnitSpecificTargetView","PeriodSpecificTargetView","OrgUnitLevelSpecificTargetView","Modal","ModalTitle","ModalContent","ModalActions","Button","useBoolean"],"mappings":"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","file":"SpecificTargetLegendsView.js","sourcesContent":["import { filter, groupBy, head, isEmpty } from \"lodash\";\nimport {\n\tButton,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useMemo } from \"react\";\nimport { OrgUnitSpecificTargetView } from \"./OrgUnitSpecificTargetView\";\nimport { PeriodSpecificTargetView } from \"./PeriodSpecificTargetView\";\nimport { useBoolean } from \"usehooks-ts\";\nimport { OrgUnitLevelSpecificTargetView } from \"./OrgUnitLevelSpecificTargetView\";\nimport { getDataSourcesFromGroups } from \"../../../utils/dataSources\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type {\n\tOrgUnitLevelLegend,\n\tScorecardDataSource,\n} from \"../../../schemas/config\";\nimport { useGetDataSourceLabel } from \"../../../hooks\";\n\nexport function SpecificTargetsLibrary() {\n\tconst config = useScorecardConfig();\n\tconst dataSources = getDataSourcesFromGroups(\n\t\tconfig.dataSelection.dataGroups,\n\t);\n\tconst specificTargetsDataSourcesByType = useMemo(() => {\n\t\tconst dataSourcesWithSpecificTargets = dataSources.filter(\n\t\t\t(ds) => ds.specificTargetsSet,\n\t\t);\n\t\tconst data = groupBy(\n\t\t\tfilter(\n\t\t\t\tdataSourcesWithSpecificTargets,\n\t\t\t\t(ds) => !isEmpty(ds.specificTargets),\n\t\t\t),\n\t\t\t(ds) => head(ds.specificTargets)?.type,\n\t\t);\n\t\tdata[\"orgUnitLevel\"] = dataSourcesWithSpecificTargets.filter((ds) =>\n\t\t\tisEmpty(ds.specificTargets),\n\t\t);\n\t\treturn data as {\n\t\t\tperiod: Array<ScorecardDataSource> | undefined;\n\t\t\torgUnit: Array<ScorecardDataSource> | undefined;\n\t\t\torgUnitLevel: Array<ScorecardDataSource>;\n\t\t};\n\t}, [dataSources]);\n\n\tconst getDataSourceLabel = useGetDataSourceLabel();\n\treturn (\n\t\t<>\n\t\t\t<div className=\"column gap-16\">\n\t\t\t\t{!isEmpty(specificTargetsDataSourcesByType?.orgUnit) && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<h3>{i18n.t(\"Organisation Units Specific targets\")}</h3>\n\t\t\t\t\t\t<div className=\"row gap-16\">\n\t\t\t\t\t\t\t{specificTargetsDataSourcesByType?.orgUnit?.map(\n\t\t\t\t\t\t\t\t(dataSource) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<OrgUnitSpecificTargetView\n\t\t\t\t\t\t\t\t\t\t\tkey={`${dataSource.id}-orgUnit-specific-target`}\n\t\t\t\t\t\t\t\t\t\t\tspecificTarget={\n\t\t\t\t\t\t\t\t\t\t\t\thead(\n\t\t\t\t\t\t\t\t\t\t\t\t\tdataSource.specificTargets,\n\t\t\t\t\t\t\t\t\t\t\t\t)!\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tlabel={getDataSourceLabel(\n\t\t\t\t\t\t\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!isEmpty(specificTargetsDataSourcesByType?.period) && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<h3>{i18n.t(\"Period Specific targets\")}</h3>\n\t\t\t\t\t\t<div className=\"row gap-16\">\n\t\t\t\t\t\t\t{specificTargetsDataSourcesByType?.period?.map(\n\t\t\t\t\t\t\t\t(dataSource) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<PeriodSpecificTargetView\n\t\t\t\t\t\t\t\t\t\t\tkey={`${dataSource.id}-orgUnit-specific-target`}\n\t\t\t\t\t\t\t\t\t\t\tspecificTarget={\n\t\t\t\t\t\t\t\t\t\t\t\thead(\n\t\t\t\t\t\t\t\t\t\t\t\t\tdataSource.specificTargets,\n\t\t\t\t\t\t\t\t\t\t\t\t)!\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tlabel={getDataSourceLabel(\n\t\t\t\t\t\t\t\t\t\t\t\tdataSource,\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!isEmpty(specificTargetsDataSourcesByType.orgUnitLevel) && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<h3>{i18n.t(\"Organisation unit level targets\")}</h3>\n\t\t\t\t\t\t<div className=\"column gap-16\">\n\t\t\t\t\t\t\t{specificTargetsDataSourcesByType?.orgUnitLevel.map(\n\t\t\t\t\t\t\t\t(dataSource) => (\n\t\t\t\t\t\t\t\t\t<OrgUnitLevelSpecificTargetView\n\t\t\t\t\t\t\t\t\t\tkey={`${dataSource.id}-orgUnit-specific-target`}\n\t\t\t\t\t\t\t\t\t\tspecificTarget={\n\t\t\t\t\t\t\t\t\t\t\tdataSource.legends as OrgUnitLevelLegend\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={getDataSourceLabel(dataSource)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"page-break\" />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nfunction SpecificTargetLegendsModal({\n\thide,\n\tonClose,\n}: {\n\thide: boolean;\n\tonClose: () => void;\n}) {\n\treturn (\n\t\t<Modal large position=\"middle\" hide={hide} onClose={onClose}>\n\t\t\t<ModalTitle>{i18n.t(\"Specific targets\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t<SpecificTargetsLibrary />\n\t\t\t</ModalContent>\n\t\t\t<ModalActions>\n\t\t\t\t<Button onClick={onClose}>{i18n.t(\"Close\")}</Button>\n\t\t\t</ModalActions>\n\t\t</Modal>\n\t);\n}\n\nexport function SpecificTargetLegendsView() {\n\tconst config = useScorecardConfig();\n\tconst {\n\t\tvalue: hide,\n\t\tsetTrue: onClose,\n\t\tsetFalse: onShow,\n\t} = useBoolean(true);\n\tconst dataSources = getDataSourcesFromGroups(\n\t\tconfig.dataSelection.dataGroups,\n\t);\n\tconst dataSourcesWithSpecificTargets = dataSources.filter(\n\t\t(dataSource) =>\n\t\t\t!isEmpty(dataSource.specificTargets) ||\n\t\t\t!Array.isArray(dataSource.legends),\n\t);\n\n\tif (isEmpty(dataSourcesWithSpecificTargets)) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{!hide && (\n\t\t\t\t<SpecificTargetLegendsModal hide={hide} onClose={onClose} />\n\t\t\t)}\n\t\t\t<Button className=\"print-hide\" onClick={onShow}>\n\t\t\t\t{i18n.t(\"Specific Targets Library\")}\n\t\t\t</Button>\n\t\t</>\n\t);\n}\n"]}
@@ -10,5 +10,5 @@ Object.keys(ScorecardLegendsView).forEach(function (k) {
10
10
  get: function () { return ScorecardLegendsView[k]; }
11
11
  });
12
12
  });
13
- //# sourceMappingURL=out.js.map
13
+ //# sourceMappingURL=index.js.map
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardLegendsView/index.ts"],"names":[],"mappings":"AAAA,cAAc","sourcesContent":["export * from \"./ScorecardLegendsView\";\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
@@ -9,5 +9,5 @@ function ScorecardPrint() {
9
9
  }
10
10
 
11
11
  exports.ScorecardPrint = ScorecardPrint;
12
- //# sourceMappingURL=out.js.map
12
+ //# sourceMappingURL=ScorecardPrint.js.map
13
13
  //# sourceMappingURL=ScorecardPrint.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardPrint/ScorecardPrint.tsx"],"names":[],"mappings":"AAIQ;AAJR,SAAS,+BAA+B;AACxC,OAAO;AAEA,SAAS,iBAAiB;AAChC,SAAO,oBAAC,2BAAwB;AACjC","sourcesContent":["import { ScorecardDownloadButton } from \"./components/ScorecardDownloadButton\";\nimport \"./print.css\";\n\nexport function ScorecardPrint() {\n\treturn <ScorecardDownloadButton />;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardPrint/ScorecardPrint.tsx"],"names":["ScorecardDownloadButton"],"mappings":";;;;;;AAGO,SAAS,cAAiB,GAAA;AAChC,EAAA,sCAAQA,+CAAwB,EAAA,EAAA,CAAA,CAAA;AACjC","file":"ScorecardPrint.js","sourcesContent":["import { ScorecardDownloadButton } from \"./components/ScorecardDownloadButton\";\nimport \"./print.css\";\n\nexport function ScorecardPrint() {\n\treturn <ScorecardDownloadButton />;\n}\n"]}
@@ -128,13 +128,13 @@ function ScorecardDownloadButton() {
128
128
  });
129
129
  }, [dataEngine]);
130
130
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
131
- completed && /* @__PURE__ */ jsxRuntime.jsx(ScorecardPreviewArea.ScorecardPreviewArea, { previewRef }),
131
+ completed && openMenu ? /* @__PURE__ */ jsxRuntime.jsx(ScorecardPreviewArea.ScorecardPreviewArea, { previewRef }) : null,
132
132
  /* @__PURE__ */ jsxRuntime.jsx(
133
133
  ui.DropdownButton,
134
134
  {
135
135
  type: "button",
136
136
  value: "scorecard-download-button",
137
- disabled: !completed,
137
+ disabled: !completed || isPending,
138
138
  open: openMenu,
139
139
  onClick: ({ open }) => {
140
140
  startTransition(() => {
@@ -156,5 +156,5 @@ function ScorecardDownloadButton() {
156
156
  }
157
157
 
158
158
  exports.ScorecardDownloadButton = ScorecardDownloadButton;
159
- //# sourceMappingURL=out.js.map
159
+ //# sourceMappingURL=ScorecardDownloadButton.js.map
160
160
  //# sourceMappingURL=ScorecardDownloadButton.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardDownloadButton.tsx"],"names":["completed"],"mappings":"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","sourcesContent":["import {\n\tDropdownButton,\n\tFlyoutMenu,\n\tIconDownload24,\n\tMenuItem,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\ttype RefObject,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseTransition,\n} from \"react\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { useReactToPrint } from \"react-to-print\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { ScorecardPreviewArea } from \"./ScorecardPreviewArea\";\nimport * as xlsx from \"xlsx\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { downloadALMAData, downloadALMAMeta } from \"../utils/download\";\nimport { useAlert } from \"@dhis2/app-runtime\";\nimport \"../print.css\";\n\nfunction DownloadMenu({\n\tpreviewRef,\n\tonClose,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n\tonClose: () => void;\n}) {\n\tconst config = useScorecardConfig();\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst print = useReactToPrint({\n\t\tcontentRef: previewRef,\n\t\tdocumentTitle: config.title,\n\t\tonPrintError: (errorLocation, error) => {\n\t\t\tconsole.error(`Error running ${errorLocation}`);\n\t\t\tconsole.error(error);\n\t\t\tshow({\n\t\t\t\tmessage: `${i18n.t(\"Could not open the print dialog\")}: ${\n\t\t\t\t\terror.message ?? i18n.t(\"Unknown error\")\n\t\t\t\t}`,\n\t\t\t\ttype: { info: true },\n\t\t\t});\n\t\t},\n\t});\n\n\tconst onDownload =\n\t\t(type: \"excel\" | \"csv\" | \"alma\" | \"almaMeta\" | \"pdf\") => () => {\n\t\t\tonClose();\n\t\t\tswitch (type) {\n\t\t\t\tcase \"pdf\":\n\t\t\t\t\tprint();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"csv\":\n\t\t\t\tcase \"excel\":\n\t\t\t\t\tconst extension = type === \"csv\" ? \"csv\" : \"xlsx\";\n\t\t\t\t\tconst workbook = xlsx.utils.table_to_book(\n\t\t\t\t\t\tpreviewRef.current,\n\t\t\t\t\t);\n\t\t\t\t\txlsx.writeFile(workbook, `${config.title}.${extension}`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"almaMeta\":\n\t\t\t\t\tdownloadALMAMeta({ config, meta: meta! });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"alma\":\n\t\t\t\t\tdownloadALMAData({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmeta: meta!,\n\t\t\t\t\t\tdata: dataEngine.data,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t<FlyoutMenu closeMenu={onClose}>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={onDownload(\"excel\")}\n\t\t\t\t\tlabel={i18n.t(\"Excel\")}\n\t\t\t\t/>\n\t\t\t\t<MenuItem onClick={onDownload(\"csv\")} label={i18n.t(\"CSV\")} />\n\t\t\t\t<MenuItem onClick={onDownload(\"pdf\")} label={i18n.t(\"PDF\")} />\n\t\t\t\t<MenuItem label={i18n.t(\"ALMA\")}>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"alma\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Data(JSON)\")}\n\t\t\t\t\t/>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"almaMeta\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Metadata\")}\n\t\t\t\t\t/>\n\t\t\t\t</MenuItem>\n\t\t\t</FlyoutMenu>\n\t\t</>\n\t);\n}\n\nexport function ScorecardDownloadButton() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [openMenu, setOpenMenu] = useState<boolean>(false);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst previewRef = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener((completed) => {\n\t\t\tstartTransition(() => {\n\t\t\t\tsetCompleted(completed);\n\t\t\t});\n\t\t});\n\t}, [dataEngine]);\n\n\treturn (\n\t\t<>\n\t\t\t{completed && <ScorecardPreviewArea previewRef={previewRef} />}\n\t\t\t<DropdownButton\n\t\t\t\ttype=\"button\"\n\t\t\t\tvalue=\"scorecard-download-button\"\n\t\t\t\tdisabled={!completed}\n\t\t\t\topen={openMenu}\n\t\t\t\tonClick={({ open }) => {\n\t\t\t\t\tstartTransition(() => {\n\t\t\t\t\t\tsetOpenMenu(open);\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ticon={<IconDownload24 />}\n\t\t\t\tcomponent={\n\t\t\t\t\tisPending ? (\n\t\t\t\t\t\t<div>Loading</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DownloadMenu\n\t\t\t\t\t\t\tonClose={() => setOpenMenu(false)}\n\t\t\t\t\t\t\tpreviewRef={previewRef}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{!completed\n\t\t\t\t\t? i18n.t(\"Please wait...\")\n\t\t\t\t\t: isPending\n\t\t\t\t\t\t? i18n.t(\"Preparing...\")\n\t\t\t\t\t\t: i18n.t(\"Download\")}\n\t\t\t</DropdownButton>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardDownloadButton.tsx"],"names":["useScorecardConfig","useAlert","useScorecardData","useScorecardMeta","useReactToPrint","i18n","xlsx","downloadALMAMeta","downloadALMAData","jsx","Fragment","jsxs","FlyoutMenu","MenuItem","useTransition","useState","useRef","useEffect","completed","ScorecardPreviewArea","DropdownButton","IconDownload24"],"mappings":"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","file":"ScorecardDownloadButton.js","sourcesContent":["import {\n\tDropdownButton,\n\tFlyoutMenu,\n\tIconDownload24,\n\tMenuItem,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\ttype RefObject,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseTransition,\n} from \"react\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { useReactToPrint } from \"react-to-print\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { ScorecardPreviewArea } from \"./ScorecardPreviewArea\";\nimport * as xlsx from \"xlsx\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { downloadALMAData, downloadALMAMeta } from \"../utils/download\";\nimport { useAlert } from \"@dhis2/app-runtime\";\nimport \"../print.css\";\n\nfunction DownloadMenu({\n\tpreviewRef,\n\tonClose,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n\tonClose: () => void;\n}) {\n\tconst config = useScorecardConfig();\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst print = useReactToPrint({\n\t\tcontentRef: previewRef,\n\t\tdocumentTitle: config.title,\n\t\tonPrintError: (errorLocation, error) => {\n\t\t\tconsole.error(`Error running ${errorLocation}`);\n\t\t\tconsole.error(error);\n\t\t\tshow({\n\t\t\t\tmessage: `${i18n.t(\"Could not open the print dialog\")}: ${\n\t\t\t\t\terror.message ?? i18n.t(\"Unknown error\")\n\t\t\t\t}`,\n\t\t\t\ttype: { info: true },\n\t\t\t});\n\t\t},\n\t});\n\n\tconst onDownload =\n\t\t(type: \"excel\" | \"csv\" | \"alma\" | \"almaMeta\" | \"pdf\") => () => {\n\t\t\tonClose();\n\t\t\tswitch (type) {\n\t\t\t\tcase \"pdf\":\n\t\t\t\t\tprint();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"csv\":\n\t\t\t\tcase \"excel\":\n\t\t\t\t\tconst extension = type === \"csv\" ? \"csv\" : \"xlsx\";\n\t\t\t\t\tconst workbook = xlsx.utils.table_to_book(\n\t\t\t\t\t\tpreviewRef.current,\n\t\t\t\t\t);\n\t\t\t\t\txlsx.writeFile(workbook, `${config.title}.${extension}`);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"almaMeta\":\n\t\t\t\t\tdownloadALMAMeta({ config, meta: meta! });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"alma\":\n\t\t\t\t\tdownloadALMAData({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmeta: meta!,\n\t\t\t\t\t\tdata: dataEngine.data,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\treturn (\n\t\t<>\n\t\t\t<FlyoutMenu closeMenu={onClose}>\n\t\t\t\t<MenuItem\n\t\t\t\t\tonClick={onDownload(\"excel\")}\n\t\t\t\t\tlabel={i18n.t(\"Excel\")}\n\t\t\t\t/>\n\t\t\t\t<MenuItem onClick={onDownload(\"csv\")} label={i18n.t(\"CSV\")} />\n\t\t\t\t<MenuItem onClick={onDownload(\"pdf\")} label={i18n.t(\"PDF\")} />\n\t\t\t\t<MenuItem label={i18n.t(\"ALMA\")}>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"alma\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Data(JSON)\")}\n\t\t\t\t\t/>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={onDownload(\"almaMeta\")}\n\t\t\t\t\t\tlabel={i18n.t(\"Metadata\")}\n\t\t\t\t\t/>\n\t\t\t\t</MenuItem>\n\t\t\t</FlyoutMenu>\n\t\t</>\n\t);\n}\n\nexport function ScorecardDownloadButton() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [openMenu, setOpenMenu] = useState<boolean>(false);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst previewRef = useRef<HTMLDivElement | null>(null);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener((completed) => {\n\t\t\tstartTransition(() => {\n\t\t\t\tsetCompleted(completed);\n\t\t\t});\n\t\t});\n\t}, [dataEngine]);\n\n\treturn (\n\t\t<>\n\t\t\t{completed && openMenu ? (\n\t\t\t\t<ScorecardPreviewArea previewRef={previewRef} />\n\t\t\t) : null}\n\t\t\t<DropdownButton\n\t\t\t\ttype=\"button\"\n\t\t\t\tvalue=\"scorecard-download-button\"\n\t\t\t\tdisabled={!completed || isPending}\n\t\t\t\topen={openMenu}\n\t\t\t\tonClick={({ open }) => {\n\t\t\t\t\tstartTransition(() => {\n\t\t\t\t\t\tsetOpenMenu(open);\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ticon={<IconDownload24 />}\n\t\t\t\tcomponent={\n\t\t\t\t\tisPending ? (\n\t\t\t\t\t\t<div>Loading</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DownloadMenu\n\t\t\t\t\t\t\tonClose={() => setOpenMenu(false)}\n\t\t\t\t\t\t\tpreviewRef={previewRef}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{!completed\n\t\t\t\t\t? i18n.t(\"Please wait...\")\n\t\t\t\t\t: isPending\n\t\t\t\t\t\t? i18n.t(\"Preparing...\")\n\t\t\t\t\t\t: i18n.t(\"Download\")}\n\t\t\t</DropdownButton>\n\t\t</>\n\t);\n}\n"]}