@hisptz/dhis2-scorecard 1.2.23 → 1.2.25

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 (190) hide show
  1. package/dist/Scorecard.js.map +1 -1
  2. package/dist/components/ColGroup.js.map +1 -1
  3. package/dist/components/ConfigProvider.js.map +1 -1
  4. package/dist/components/DataProvider.js.map +1 -1
  5. package/dist/components/HighlightedItems/components/HighlightedItem.js +66 -0
  6. package/dist/components/HighlightedItems/components/HighlightedItem.js.map +1 -0
  7. package/dist/components/HighlightedItems/hooks/data.js +51 -0
  8. package/dist/components/HighlightedItems/hooks/data.js.map +1 -0
  9. package/dist/components/HighlightedItems/index.js +35 -0
  10. package/dist/components/HighlightedItems/index.js.map +1 -0
  11. package/dist/components/LoadingIndicator.js.map +1 -1
  12. package/dist/components/MetaProvider.js.map +1 -1
  13. package/dist/components/ScorecardContext.js.map +1 -1
  14. package/dist/components/ScorecardHeader.js.map +1 -1
  15. package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
  16. package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  17. package/dist/components/ScorecardLegendsView/components/LegendView.js +33 -17
  18. package/dist/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
  19. package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js +55 -21
  20. package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
  21. package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js +7 -2
  22. package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
  23. package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js +32 -19
  24. package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
  25. package/dist/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js +63 -47
  26. package/dist/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js.map +1 -1
  27. package/dist/components/ScorecardPrint/ScorecardPrint.js.map +1 -1
  28. package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
  29. package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
  30. package/dist/components/ScorecardPrint/utils/download.js.map +1 -1
  31. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -1
  32. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -1
  33. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -1
  34. package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
  35. package/dist/components/ScorecardTable/ScorecardTable.js.map +1 -1
  36. package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
  37. package/dist/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  38. package/dist/components/ScorecardTable/components/CellLoader.js.map +1 -1
  39. package/dist/components/ScorecardTable/components/DataContainer.js.map +1 -1
  40. package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  41. package/dist/components/ScorecardTable/components/DataRow.js.map +1 -1
  42. package/dist/components/ScorecardTable/components/DataValue.js.map +1 -1
  43. package/dist/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  44. package/dist/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  45. package/dist/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  46. package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  47. package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
  48. package/dist/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
  49. package/dist/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  50. package/dist/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  51. package/dist/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  52. package/dist/components/ScorecardTable/components/PaginatedToolbar.js +1 -2
  53. package/dist/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -1
  54. package/dist/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  55. package/dist/components/ScorecardTable/components/TableBody.js.map +1 -1
  56. package/dist/components/ScorecardTable/components/TableFoot.js.map +1 -1
  57. package/dist/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
  58. package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  59. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  60. package/dist/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
  61. package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  62. package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  63. package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  64. package/dist/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  65. package/dist/components/StateProvider.js.map +1 -1
  66. package/dist/components/TableStateProvider.js.map +1 -1
  67. package/dist/components/index.js +7 -0
  68. package/dist/esm/Scorecard.js.map +1 -1
  69. package/dist/esm/components/ColGroup.js.map +1 -1
  70. package/dist/esm/components/ConfigProvider.js.map +1 -1
  71. package/dist/esm/components/DataProvider.js.map +1 -1
  72. package/dist/esm/components/HighlightedItems/components/HighlightedItem.js +64 -0
  73. package/dist/esm/components/HighlightedItems/components/HighlightedItem.js.map +1 -0
  74. package/dist/esm/components/HighlightedItems/hooks/data.js +49 -0
  75. package/dist/esm/components/HighlightedItems/hooks/data.js.map +1 -0
  76. package/dist/esm/components/HighlightedItems/index.js +33 -0
  77. package/dist/esm/components/HighlightedItems/index.js.map +1 -0
  78. package/dist/esm/components/LoadingIndicator.js.map +1 -1
  79. package/dist/esm/components/MetaProvider.js.map +1 -1
  80. package/dist/esm/components/ScorecardContext.js.map +1 -1
  81. package/dist/esm/components/ScorecardHeader.js.map +1 -1
  82. package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
  83. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  84. package/dist/esm/components/ScorecardLegendsView/components/LegendView.js +33 -17
  85. package/dist/esm/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
  86. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js +55 -21
  87. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
  88. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js +7 -2
  89. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
  90. package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js +32 -19
  91. package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
  92. package/dist/esm/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js +65 -49
  93. package/dist/esm/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js.map +1 -1
  94. package/dist/esm/components/ScorecardPrint/ScorecardPrint.js.map +1 -1
  95. package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
  96. package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
  97. package/dist/esm/components/ScorecardPrint/utils/download.js.map +1 -1
  98. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -1
  99. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -1
  100. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -1
  101. package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
  102. package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
  103. package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
  104. package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  105. package/dist/esm/components/ScorecardTable/components/CellLoader.js.map +1 -1
  106. package/dist/esm/components/ScorecardTable/components/DataContainer.js.map +1 -1
  107. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  108. package/dist/esm/components/ScorecardTable/components/DataRow.js.map +1 -1
  109. package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
  110. package/dist/esm/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  111. package/dist/esm/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  112. package/dist/esm/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  113. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  114. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
  115. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
  116. package/dist/esm/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  117. package/dist/esm/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  118. package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  119. package/dist/esm/components/ScorecardTable/components/PaginatedToolbar.js +2 -3
  120. package/dist/esm/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -1
  121. package/dist/esm/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  122. package/dist/esm/components/ScorecardTable/components/TableBody.js.map +1 -1
  123. package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
  124. package/dist/esm/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
  125. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  126. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  127. package/dist/esm/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
  128. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  129. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  130. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  131. package/dist/esm/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  132. package/dist/esm/components/StateProvider.js.map +1 -1
  133. package/dist/esm/components/TableStateProvider.js.map +1 -1
  134. package/dist/esm/components/index.js +1 -0
  135. package/dist/esm/hooks/cellData.js.map +1 -1
  136. package/dist/esm/hooks/columns.js.map +1 -1
  137. package/dist/esm/hooks/data.js.map +1 -1
  138. package/dist/esm/hooks/dataItem.js.map +1 -1
  139. package/dist/esm/hooks/metadata.js.map +1 -1
  140. package/dist/esm/hooks/orgUnit.js +3 -4
  141. package/dist/esm/hooks/orgUnit.js.map +1 -1
  142. package/dist/esm/hooks/table.js.map +1 -1
  143. package/dist/esm/hooks/value.js.map +1 -1
  144. package/dist/esm/schemas/config.js.map +1 -1
  145. package/dist/esm/utils/analytics.js.map +1 -1
  146. package/dist/esm/utils/columns.js.map +1 -1
  147. package/dist/esm/utils/data.js.map +1 -1
  148. package/dist/esm/utils/dataEngine.js.map +1 -1
  149. package/dist/esm/utils/dataSources.js.map +1 -1
  150. package/dist/esm/utils/dimensionState.js.map +1 -1
  151. package/dist/esm/utils/legends.js.map +1 -1
  152. package/dist/esm/utils/orgUnits.js.map +1 -1
  153. package/dist/esm/utils/state.js.map +1 -1
  154. package/dist/esm/utils/viewState.js.map +1 -1
  155. package/dist/hooks/cellData.js.map +1 -1
  156. package/dist/hooks/columns.js.map +1 -1
  157. package/dist/hooks/data.js.map +1 -1
  158. package/dist/hooks/dataItem.js.map +1 -1
  159. package/dist/hooks/metadata.js.map +1 -1
  160. package/dist/hooks/orgUnit.js +3 -4
  161. package/dist/hooks/orgUnit.js.map +1 -1
  162. package/dist/hooks/table.js.map +1 -1
  163. package/dist/hooks/value.js.map +1 -1
  164. package/dist/schemas/config.js.map +1 -1
  165. package/dist/types/components/HighlightedItems/components/HighlightedItem.d.ts +6 -0
  166. package/dist/types/components/HighlightedItems/components/HighlightedItem.d.ts.map +1 -0
  167. package/dist/types/components/HighlightedItems/hooks/data.d.ts +7 -0
  168. package/dist/types/components/HighlightedItems/hooks/data.d.ts.map +1 -0
  169. package/dist/types/components/HighlightedItems/index.d.ts +2 -0
  170. package/dist/types/components/HighlightedItems/index.d.ts.map +1 -0
  171. package/dist/types/components/ScorecardLegendsView/components/LegendView.d.ts.map +1 -1
  172. package/dist/types/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.d.ts.map +1 -1
  173. package/dist/types/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.d.ts.map +1 -1
  174. package/dist/types/components/ScorecardLegendsView/components/PeriodSpecificTargetView.d.ts.map +1 -1
  175. package/dist/types/components/ScorecardLegendsView/components/SpecificTargetLegendsView.d.ts.map +1 -1
  176. package/dist/types/components/ScorecardTable/components/PaginatedToolbar.d.ts.map +1 -1
  177. package/dist/types/components/index.d.ts +1 -0
  178. package/dist/types/components/index.d.ts.map +1 -1
  179. package/dist/types/hooks/orgUnit.d.ts.map +1 -1
  180. package/dist/utils/analytics.js.map +1 -1
  181. package/dist/utils/columns.js.map +1 -1
  182. package/dist/utils/data.js.map +1 -1
  183. package/dist/utils/dataEngine.js.map +1 -1
  184. package/dist/utils/dataSources.js.map +1 -1
  185. package/dist/utils/dimensionState.js.map +1 -1
  186. package/dist/utils/legends.js.map +1 -1
  187. package/dist/utils/orgUnits.js.map +1 -1
  188. package/dist/utils/state.js.map +1 -1
  189. package/dist/utils/viewState.js.map +1 -1
  190. package/package.json +4 -4
@@ -30,9 +30,14 @@ function OrgUnitSpecificTargetView({
30
30
  "div",
31
31
  {
32
32
  style: {
33
- maxWidth: 350,
33
+ maxWidth: "fit-content",
34
34
  border: `1px solid ${ui.colors.grey600}`,
35
- borderRadius: 4
35
+ borderRadius: 4,
36
+ display: "flex",
37
+ flexDirection: "column",
38
+ gap: 8,
39
+ padding: 16,
40
+ fontSize: 14
36
41
  },
37
42
  className: "column gap-16 p-16",
38
43
  children: [
@@ -1 +1 @@
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;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,QAAQ,cAAe,CAAA,KAAA;AAC7B,EAAA,MAAM,EAAE,OAAA,EAAS,QAAS,EAAA,GAAIA,oBAAY,KAAK,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;AAAA;AAAA,KAC5B;AAAA;AAIF,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;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;AAAA,aAAE,EAAA,CAAA;AAAA,YAAK,GAAA;AAAA,YACzC,QAAA,EAAU,IAAI,CAAC,EAAA,KAAO,GAAG,WAAW,CAAA,EAAG,KAAK,IAAI;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;AAAA,aAAE,EAAA,CAAA;AAAA,YAC3B;AAAA,WACF,EAAA;AAAA,SACD,EAAA,CAAA;AAAA,wBACCJ,cAAA,CAAAK,sBAAA,EAAA,EAAY,OAAS,EAAA,cAAA,CAAe,OAAS,EAAA;AAAA;AAAA;AAAA,GAC/C;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"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.tsx"],"names":["useOrgUnits","jsx","CircularLoader","jsxs","colors","i18n","LegendsView"],"mappings":";;;;;;;;;;;;AAWO,SAAS,yBAAA,CAA0B;AAAA,EACzC,cAAA;AAAA,EACA;AACD,CAAA,EAAmC;AAClC,EAAA,MAAM,QAAQ,cAAA,CAAe,KAAA;AAC7B,EAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAS,GAAIA,oBAAY,KAAK,CAAA;AAE/C,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,uBACCC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,GAAA,EAAI;AAAA,QACvC,SAAA,EAAU,kDAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAACC,iBAAA,EAAA,EAAe,UAAA,EAAU,IAAA,EAAC;AAAA;AAAA,KAC5B;AAAA,EAEF;AAEA,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,QAAA,EAAU,aAAA;AAAA,QACV,MAAA,EAAQ,CAAA,UAAA,EAAaC,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,QACnC,YAAA,EAAc,CAAA;AAAA,QACd,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,GAAA,EAAK,CAAA;AAAA,QACL,OAAA,EAAS,EAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACX;AAAA,MACA,SAAA,EAAU,oBAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAAD,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,eAAA,EACd,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,KAAA,EAAA,EACA,QAAA,EAAA;AAAA,4BAAAA,eAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA;AAAA,cAAAE,qBAAA,CAAK,EAAE,sBAAsB,CAAA;AAAA,cAAE;AAAA,aAAA,EAAE,CAAA;AAAA,YAAK,GAAA;AAAA,YACzC,QAAA,EAAU,IAAI,CAAC,EAAA,KAAO,GAAG,WAAW,CAAA,EAAG,KAAK,IAAI;AAAA,WAAA,EAClD,CAAA;AAAA,0CACC,KAAA,EAAA,EACA,QAAA,EAAA;AAAA,4BAAAF,eAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA;AAAA,cAAAE,qBAAA,CAAK,EAAE,aAAa,CAAA;AAAA,cAAE;AAAA,aAAA,EAAE,CAAA;AAAA,YAC3B;AAAA,WAAA,EACF;AAAA,SAAA,EACD,CAAA;AAAA,wBACAJ,cAAA,CAACK,sBAAA,EAAA,EAAY,OAAA,EAAS,cAAA,CAAe,OAAA,EAAS;AAAA;AAAA;AAAA,GAC/C;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: \"fit-content\",\n\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\tgap: 8,\n\t\t\t\tpadding: 16,\n\t\t\t\tfontSize: 14,\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"]}
@@ -29,27 +29,40 @@ function PeriodSpecificTargetView({
29
29
  style: {
30
30
  maxWidth: 350,
31
31
  border: `1px solid ${ui.colors.grey600}`,
32
- borderRadius: 4
32
+ borderRadius: 4,
33
+ display: "flex",
34
+ flexDirection: "column",
35
+ gap: 8,
36
+ padding: 16
33
37
  },
34
- className: "column gap-16 p-16",
35
38
  children: [
36
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "column gap-16", children: [
37
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
38
- /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [
39
- i18n__default.default.t("Period(s)"),
40
- ": "
41
- ] }),
42
- " ",
43
- periods?.map((ou) => ou.displayName)?.join(", ")
44
- ] }),
45
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
46
- /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [
47
- i18n__default.default.t("Data Source"),
48
- ": "
49
- ] }),
50
- label
51
- ] })
52
- ] }),
39
+ /* @__PURE__ */ jsxRuntime.jsxs(
40
+ "div",
41
+ {
42
+ style: {
43
+ gap: 8,
44
+ display: "flex",
45
+ flexDirection: "column"
46
+ },
47
+ children: [
48
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
49
+ /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [
50
+ i18n__default.default.t("Period(s)"),
51
+ ": "
52
+ ] }),
53
+ " ",
54
+ periods?.map((ou) => ou.displayName)?.join(", ")
55
+ ] }),
56
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
57
+ /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [
58
+ i18n__default.default.t("Data Source"),
59
+ ": "
60
+ ] }),
61
+ label
62
+ ] })
63
+ ]
64
+ }
65
+ ),
53
66
  /* @__PURE__ */ jsxRuntime.jsx(LegendView.LegendsView, { legends: specificTarget.legends })
54
67
  ]
55
68
  }
@@ -1 +1 @@
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;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,QAAQ,cAAe,CAAA,KAAA;AAC7B,EAAA,MAAM,WAAWA,oBAAY,EAAA;AAC7B,EAAA,MAAM,UAAU,KAAM,CAAA,GAAA;AAAA,IAAI,CAAC,aAC1BC,gDAA8B,CAAA;AAAA,MAC7B,QAAA;AAAA,MACA;AAAA,KACA;AAAA,GACF;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;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;AAAA,aAAE,EAAA,CAAA;AAAA,YAAK,GAAA;AAAA,YAC9B,OAAA,EAAS,IAAI,CAAC,EAAA,KAAO,GAAG,WAAW,CAAA,EAAG,KAAK,IAAI;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;AAAA,aAAE,EAAA,CAAA;AAAA,YAC3B;AAAA,WACF,EAAA;AAAA,SACD,EAAA,CAAA;AAAA,wBACCC,cAAA,CAAAC,sBAAA,EAAA,EAAY,OAAS,EAAA,cAAA,CAAe,OAAS,EAAA;AAAA;AAAA;AAAA,GAC/C;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"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/PeriodSpecificTargetView.tsx"],"names":["useCalendar","createFixedPeriodFromPeriodId","jsxs","colors","i18n","jsx","LegendsView"],"mappings":";;;;;;;;;;;;;AAYO,SAAS,wBAAA,CAAyB;AAAA,EACxC,cAAA;AAAA,EACA;AACD,CAAA,EAAmC;AAClC,EAAA,MAAM,QAAQ,cAAA,CAAe,KAAA;AAC7B,EAAA,MAAM,WAAWA,oBAAA,EAAY;AAC7B,EAAA,MAAM,UAAU,KAAA,CAAM,GAAA;AAAA,IAAI,CAAC,aAC1BC,gDAAA,CAA8B;AAAA,MAC7B,QAAA;AAAA,MACA;AAAA,KACA;AAAA,GACF;AAEA,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,QAAA,EAAU,GAAA;AAAA,QACV,MAAA,EAAQ,CAAA,UAAA,EAAaC,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,QACnC,YAAA,EAAc,CAAA;AAAA,QACd,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,GAAA,EAAK,CAAA;AAAA,QACL,OAAA,EAAS;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAD,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,GAAA,EAAK,CAAA;AAAA,cACL,OAAA,EAAS,MAAA;AAAA,cACT,aAAA,EAAe;AAAA,aAChB;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAA,eAAA,CAAC,KAAA,EAAA,EACA,QAAA,EAAA;AAAA,gCAAAA,eAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA;AAAA,kBAAAE,qBAAA,CAAK,EAAE,WAAW,CAAA;AAAA,kBAAE;AAAA,iBAAA,EAAE,CAAA;AAAA,gBAAK,GAAA;AAAA,gBAC9B,OAAA,EAAS,IAAI,CAAC,EAAA,KAAO,GAAG,WAAW,CAAA,EAAG,KAAK,IAAI;AAAA,eAAA,EACjD,CAAA;AAAA,8CACC,KAAA,EAAA,EACA,QAAA,EAAA;AAAA,gCAAAF,eAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA;AAAA,kBAAAE,qBAAA,CAAK,EAAE,aAAa,CAAA;AAAA,kBAAE;AAAA,iBAAA,EAAE,CAAA;AAAA,gBAC3B;AAAA,eAAA,EACF;AAAA;AAAA;AAAA,SACD;AAAA,wBACAC,cAAA,CAACC,sBAAA,EAAA,EAAY,OAAA,EAAS,cAAA,CAAe,OAAA,EAAS;AAAA;AAAA;AAAA,GAC/C;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\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\tgap: 8,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tgap: 8,\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t}}\n\t\t\t>\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"]}
@@ -22,7 +22,7 @@ function SpecificTargetsLibrary() {
22
22
  const dataSources$1 = dataSources.getDataSourcesFromGroups(
23
23
  config.dataSelection.dataGroups
24
24
  );
25
- const specificTargetsDataSourcesByType = react.useMemo(() => {
25
+ const { orgUnit, orgUnitLevel, periods } = react.useMemo(() => {
26
26
  const dataSourcesWithSpecificTargets = dataSources$1.filter(
27
27
  (ds) => ds.specificTargetsSet
28
28
  );
@@ -33,67 +33,83 @@ function SpecificTargetsLibrary() {
33
33
  ),
34
34
  (ds) => lodash.head(ds.specificTargets)?.type
35
35
  );
36
+ console.log({ data });
36
37
  data["orgUnitLevel"] = dataSourcesWithSpecificTargets.filter(
37
38
  (ds) => lodash.isEmpty(ds.specificTargets)
38
39
  );
39
40
  return data;
40
41
  }, [dataSources$1]);
42
+ const [activeTab, setActiveTab] = react.useState(
43
+ !lodash.isEmpty(orgUnit) ? "orgUnit" : !lodash.isEmpty("orgUnitLevel") ? "orgUnitLevel" : "period"
44
+ );
41
45
  const getDataSourceLabel = hooks.useGetDataSourceLabel();
42
46
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "column gap-16", children: [
43
- !lodash.isEmpty(specificTargetsDataSourcesByType?.orgUnit) && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
47
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.TabBar, { children: [
48
+ !lodash.isEmpty(orgUnit) && /* @__PURE__ */ jsxRuntime.jsx(
49
+ ui.Tab,
50
+ {
51
+ selected: activeTab === "orgUnit",
52
+ onClick: () => setActiveTab("orgUnit"),
53
+ children: i18n__default.default.t("Organisation Units")
54
+ }
55
+ ),
56
+ !lodash.isEmpty(orgUnitLevel) && /* @__PURE__ */ jsxRuntime.jsx(
57
+ ui.Tab,
58
+ {
59
+ selected: activeTab === "orgUnitLevel",
60
+ onClick: () => setActiveTab("orgUnitLevel"),
61
+ children: i18n__default.default.t("Organisation Unit Level")
62
+ }
63
+ ),
64
+ !lodash.isEmpty(periods) && /* @__PURE__ */ jsxRuntime.jsx(
65
+ ui.Tab,
66
+ {
67
+ selected: activeTab === "period",
68
+ onClick: () => setActiveTab("period"),
69
+ children: i18n__default.default.t("Period")
70
+ }
71
+ )
72
+ ] }),
73
+ activeTab === "orgUnit" && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
44
74
  /* @__PURE__ */ jsxRuntime.jsx("h3", { children: i18n__default.default.t("Organisation Units Specific targets") }),
45
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "row gap-16", children: specificTargetsDataSourcesByType?.orgUnit?.map(
46
- (dataSource) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
47
- /* @__PURE__ */ jsxRuntime.jsx(
48
- OrgUnitSpecificTargetView.OrgUnitSpecificTargetView,
49
- {
50
- specificTarget: lodash.head(
51
- dataSource.specificTargets
52
- ),
53
- label: getDataSourceLabel(
54
- dataSource
55
- )
56
- },
57
- `${dataSource.id}-orgUnit-specific-target`
58
- ),
59
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "page-break" })
60
- ] })
61
- ) }),
75
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "row gap-16", children: orgUnit?.map((dataSource) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
76
+ /* @__PURE__ */ jsxRuntime.jsx(
77
+ OrgUnitSpecificTargetView.OrgUnitSpecificTargetView,
78
+ {
79
+ specificTarget: lodash.head(dataSource.specificTargets),
80
+ label: getDataSourceLabel(dataSource)
81
+ },
82
+ `${dataSource.id}-orgUnit-specific-target`
83
+ ),
84
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "page-break" })
85
+ ] })) }),
62
86
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "page-break" })
63
87
  ] }),
64
- !lodash.isEmpty(specificTargetsDataSourcesByType?.period) && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
88
+ activeTab === "period" && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
65
89
  /* @__PURE__ */ jsxRuntime.jsx("h3", { children: i18n__default.default.t("Period Specific targets") }),
66
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "row gap-16", children: specificTargetsDataSourcesByType?.period?.map(
67
- (dataSource) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
68
- /* @__PURE__ */ jsxRuntime.jsx(
69
- PeriodSpecificTargetView.PeriodSpecificTargetView,
70
- {
71
- specificTarget: lodash.head(
72
- dataSource.specificTargets
73
- ),
74
- label: getDataSourceLabel(
75
- dataSource
76
- )
77
- },
78
- `${dataSource.id}-orgUnit-specific-target`
79
- ),
80
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "page-break" })
81
- ] })
82
- ) }),
83
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "page-break" })
84
- ] }),
85
- !lodash.isEmpty(specificTargetsDataSourcesByType.orgUnitLevel) && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
86
- /* @__PURE__ */ jsxRuntime.jsx("h3", { children: i18n__default.default.t("Organisation unit level targets") }),
87
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "column gap-16", children: specificTargetsDataSourcesByType?.orgUnitLevel.map(
88
- (dataSource) => /* @__PURE__ */ jsxRuntime.jsx(
89
- OrgUnitLevelSpecificTargetView.OrgUnitLevelSpecificTargetView,
90
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "row gap-16", children: periods?.map((dataSource) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
91
+ /* @__PURE__ */ jsxRuntime.jsx(
92
+ PeriodSpecificTargetView.PeriodSpecificTargetView,
90
93
  {
91
- specificTarget: dataSource.legends,
94
+ specificTarget: lodash.head(dataSource.specificTargets),
92
95
  label: getDataSourceLabel(dataSource)
93
96
  },
94
97
  `${dataSource.id}-orgUnit-specific-target`
95
- )
96
- ) }),
98
+ ),
99
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "page-break" })
100
+ ] })) }),
101
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "page-break" })
102
+ ] }),
103
+ activeTab === "orgUnitLevel" && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
104
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { children: i18n__default.default.t("Organisation Unit Level Targets") }),
105
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "column gap-16", children: orgUnitLevel.map((dataSource) => /* @__PURE__ */ jsxRuntime.jsx(
106
+ OrgUnitLevelSpecificTargetView.OrgUnitLevelSpecificTargetView,
107
+ {
108
+ specificTarget: dataSource.legends,
109
+ label: getDataSourceLabel(dataSource)
110
+ },
111
+ `${dataSource.id}-orgUnit-specific-target`
112
+ )) }),
97
113
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "page-break" })
98
114
  ] })
99
115
  ] }) });
@@ -1 +1 @@
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":";;;;;;;;;;;;;;;;;;;AAsBO,SAAS,sBAAyB,GAAA;AACxC,EAAA,MAAM,SAASA,iCAAmB,EAAA;AAClC,EAAA,MAAMC,aAAc,GAAAC,oCAAA;AAAA,IACnB,OAAO,aAAc,CAAA;AAAA,GACtB;AACA,EAAM,MAAA,gCAAA,GAAmCC,cAAQ,MAAM;AACtD,IAAA,MAAM,iCAAiCF,aAAY,CAAA,MAAA;AAAA,MAClD,CAAC,OAAO,EAAG,CAAA;AAAA,KACZ;AACA,IAAA,MAAM,IAAO,GAAAG,cAAA;AAAA,MACZC,aAAA;AAAA,QACC,8BAAA;AAAA,QACA,CAAC,EAAA,KAAO,CAACC,cAAA,CAAQ,GAAG,eAAe;AAAA,OACpC;AAAA,MACA,CAAC,EAAA,KAAOC,WAAK,CAAA,EAAA,CAAG,eAAe,CAAG,EAAA;AAAA,KACnC;AACA,IAAK,IAAA,CAAA,cAAc,IAAI,8BAA+B,CAAA,MAAA;AAAA,MAAO,CAAC,EAAA,KAC7DD,cAAQ,CAAA,EAAA,CAAG,eAAe;AAAA,KAC3B;AACA,IAAO,OAAA,IAAA;AAAA,GAKR,EAAG,CAACL,aAAW,CAAC,CAAA;AAEhB,EAAA,MAAM,qBAAqBO,2BAAsB,EAAA;AACjD,EAAA,uBAEEC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,kBAAAC,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,eACb,EAAA,QAAA,EAAA;AAAA,IAAA,CAACL,cAAQ,CAAA,gCAAA,EAAkC,OAAO,CAAA,oCACjD,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAG,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAAG,qBAAA,CAAK,CAAE,CAAA,qCAAqC,CAAE,EAAA,CAAA;AAAA,sBAClDH,cAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,YAAA,EACb,4CAAkC,OAAS,EAAA,GAAA;AAAA,QAC3C,CAAC,+BAECE,eAAA,CAAAD,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAAD,cAAA;AAAA,YAACI,mDAAA;AAAA,YAAA;AAAA,cAEA,cACC,EAAAN,WAAA;AAAA,gBACC,UAAW,CAAA;AAAA,eACZ;AAAA,cAED,KAAO,EAAA,kBAAA;AAAA,gBACN;AAAA;AACD,aAAA;AAAA,YARK,CAAA,EAAG,WAAW,EAAE,CAAA,wBAAA;AAAA,WAStB;AAAA,0BACAE,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA;AAAA,SAC7B,EAAA;AAAA,OAGH,EAAA,CAAA;AAAA,sBACAA,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA;AAAA,KAC7B,EAAA,CAAA;AAAA,IAEA,CAACH,cAAQ,CAAA,gCAAA,EAAkC,MAAM,CAAA,oCAChD,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAG,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAAG,qBAAA,CAAK,CAAE,CAAA,yBAAyB,CAAE,EAAA,CAAA;AAAA,sBACtCH,cAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,YAAA,EACb,4CAAkC,MAAQ,EAAA,GAAA;AAAA,QAC1C,CAAC,+BAECE,eAAA,CAAAD,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAAD,cAAA;AAAA,YAACK,iDAAA;AAAA,YAAA;AAAA,cAEA,cACC,EAAAP,WAAA;AAAA,gBACC,UAAW,CAAA;AAAA,eACZ;AAAA,cAED,KAAO,EAAA,kBAAA;AAAA,gBACN;AAAA;AACD,aAAA;AAAA,YARK,CAAA,EAAG,WAAW,EAAE,CAAA,wBAAA;AAAA,WAStB;AAAA,0BACAE,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA;AAAA,SAC7B,EAAA;AAAA,OAGH,EAAA,CAAA;AAAA,sBACAA,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA;AAAA,KAC7B,EAAA,CAAA;AAAA,IAEA,CAACH,cAAQ,CAAA,gCAAA,CAAiC,YAAY,CAAA,oCACrD,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAG,cAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EAAAG,qBAAA,CAAK,CAAE,CAAA,iCAAiC,CAAE,EAAA,CAAA;AAAA,sBAC9CH,cAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,eAAA,EACb,4CAAkC,YAAa,CAAA,GAAA;AAAA,QAC/C,CAAC,UACA,qBAAAA,cAAA;AAAA,UAACM,6DAAA;AAAA,UAAA;AAAA,YAEA,gBACC,UAAW,CAAA,OAAA;AAAA,YAEZ,KAAA,EAAO,mBAAmB,UAAU;AAAA,WAAA;AAAA,UAJ/B,CAAA,EAAG,WAAW,EAAE,CAAA,wBAAA;AAAA;AAKtB,OAGH,EAAA,CAAA;AAAA,sBACAN,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA;AAAA,KAC7B,EAAA;AAAA,GAAA,EAEF,CACD,EAAA,CAAA;AAEF;AAEA,SAAS,0BAA2B,CAAA;AAAA,EACnC,IAAA;AAAA,EACA;AACD,CAGG,EAAA;AACF,EAAA,uCACEO,QAAM,EAAA,EAAA,KAAA,EAAK,MAAC,QAAS,EAAA,QAAA,EAAS,MAAY,OAC1C,EAAA,QAAA,EAAA;AAAA,oBAAAP,cAAA,CAACQ,aAAY,EAAA,EAAA,QAAA,EAAAL,qBAAA,CAAK,CAAE,CAAA,kBAAkB,CAAE,EAAA,CAAA;AAAA,oBACvCH,cAAA,CAAAS,eAAA,EAAA,EACA,QAAC,kBAAAT,cAAA,CAAA,sBAAA,EAAA,EAAuB,CACzB,EAAA,CAAA;AAAA,oBACAA,cAAA,CAACU,eACA,EAAA,EAAA,QAAA,kBAAAV,cAAA,CAACW,SAAO,EAAA,EAAA,OAAA,EAAS,SAAU,QAAK,EAAAR,qBAAA,CAAA,CAAA,CAAE,OAAO,CAAA,EAAE,CAC5C,EAAA;AAAA,GACD,EAAA,CAAA;AAEF;AAEO,SAAS,yBAA4B,GAAA;AAC3C,EAAA,MAAM,SAASZ,iCAAmB,EAAA;AAClC,EAAM,MAAA;AAAA,IACL,KAAO,EAAA,IAAA;AAAA,IACP,OAAS,EAAA,OAAA;AAAA,IACT,QAAU,EAAA;AAAA,GACX,GAAIqB,sBAAW,IAAI,CAAA;AACnB,EAAA,MAAMpB,aAAc,GAAAC,oCAAA;AAAA,IACnB,OAAO,aAAc,CAAA;AAAA,GACtB;AACA,EAAA,MAAM,iCAAiCD,aAAY,CAAA,MAAA;AAAA,IAClD,CAAC,UACA,KAAA,CAACK,cAAQ,CAAA,UAAA,CAAW,eAAe,CAAA,IACnC,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,OAAO;AAAA,GACnC;AAEA,EAAI,IAAAA,cAAA,CAAQ,8BAA8B,CAAG,EAAA;AAC5C,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uBAEGK,eAAA,CAAAD,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,IAAA,CAAC,IACD,oBAAAD,cAAA,CAAC,0BAA2B,EAAA,EAAA,IAAA,EAAY,OAAkB,EAAA,CAAA;AAAA,oBAE3DA,cAAA,CAACW,aAAO,SAAU,EAAA,YAAA,EAAa,SAAS,MACtC,EAAA,QAAA,EAAAR,qBAAA,CAAK,CAAE,CAAA,0BAA0B,CACnC,EAAA;AAAA,GACD,EAAA,CAAA;AAEF","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"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/SpecificTargetLegendsView.tsx"],"names":["useScorecardConfig","dataSources","getDataSourcesFromGroups","useMemo","groupBy","filter","isEmpty","head","useState","useGetDataSourceLabel","jsx","Fragment","jsxs","TabBar","Tab","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\tTab,\n\tTabBar,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useMemo, useState } 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 { orgUnit, orgUnitLevel, periods } = 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\n\t\tconsole.log({ data });\n\n\t\tdata[\"orgUnitLevel\"] = dataSourcesWithSpecificTargets.filter((ds) =>\n\t\t\tisEmpty(ds.specificTargets),\n\t\t);\n\t\treturn data as {\n\t\t\tperiods: 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 [activeTab, setActiveTab] = useState<\n\t\t\"period\" | \"orgUnit\" | \"orgUnitLevel\"\n\t>(\n\t\t!isEmpty(orgUnit)\n\t\t\t? \"orgUnit\"\n\t\t\t: !isEmpty(\"orgUnitLevel\")\n\t\t\t\t? \"orgUnitLevel\"\n\t\t\t\t: \"period\",\n\t);\n\n\tconst getDataSourceLabel = useGetDataSourceLabel();\n\treturn (\n\t\t<>\n\t\t\t<div className=\"column gap-16\">\n\t\t\t\t<TabBar>\n\t\t\t\t\t{!isEmpty(orgUnit) && (\n\t\t\t\t\t\t<Tab\n\t\t\t\t\t\t\tselected={activeTab === \"orgUnit\"}\n\t\t\t\t\t\t\tonClick={() => setActiveTab(\"orgUnit\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{i18n.t(\"Organisation Units\")}\n\t\t\t\t\t\t</Tab>\n\t\t\t\t\t)}\n\t\t\t\t\t{!isEmpty(orgUnitLevel) && (\n\t\t\t\t\t\t<Tab\n\t\t\t\t\t\t\tselected={activeTab === \"orgUnitLevel\"}\n\t\t\t\t\t\t\tonClick={() => setActiveTab(\"orgUnitLevel\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{i18n.t(\"Organisation Unit Level\")}\n\t\t\t\t\t\t</Tab>\n\t\t\t\t\t)}\n\t\t\t\t\t{!isEmpty(periods) && (\n\t\t\t\t\t\t<Tab\n\t\t\t\t\t\t\tselected={activeTab === \"period\"}\n\t\t\t\t\t\t\tonClick={() => setActiveTab(\"period\")}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{i18n.t(\"Period\")}\n\t\t\t\t\t\t</Tab>\n\t\t\t\t\t)}\n\t\t\t\t</TabBar>\n\t\t\t\t{activeTab === \"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{orgUnit?.map((dataSource) => (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<OrgUnitSpecificTargetView\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\thead(dataSource.specificTargets)!\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\t<div className=\"page-break\" />\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{activeTab === \"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{periods?.map((dataSource) => (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<PeriodSpecificTargetView\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\thead(dataSource.specificTargets)!\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\t<div className=\"page-break\" />\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{activeTab === \"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{orgUnitLevel.map((dataSource) => (\n\t\t\t\t\t\t\t\t<OrgUnitLevelSpecificTargetView\n\t\t\t\t\t\t\t\t\tkey={`${dataSource.id}-orgUnit-specific-target`}\n\t\t\t\t\t\t\t\t\tspecificTarget={\n\t\t\t\t\t\t\t\t\t\tdataSource.legends as OrgUnitLevelLegend\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tlabel={getDataSourceLabel(dataSource)}\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 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardPrint/ScorecardPrint.tsx"],"names":["ScorecardDownloadButton"],"mappings":";;;;;;AAGO,SAAS,cAAiB,GAAA;AAChC,EAAA,sCAAQA,+CAAwB,EAAA,EAAA,CAAA;AACjC","file":"ScorecardPrint.js","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,cAAA,GAAiB;AAChC,EAAA,sCAAQA,+CAAA,EAAA,EAAwB,CAAA;AACjC","file":"ScorecardPrint.js","sourcesContent":["import { ScorecardDownloadButton } from \"./components/ScorecardDownloadButton\";\nimport \"./print.css\";\n\nexport function ScorecardPrint() {\n\treturn <ScorecardDownloadButton />;\n}\n"]}
@@ -1 +1 @@
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"]}
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"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":["memo","ScorecardPreviewArea","useScorecardConfig","useScorecardViewOptions","usePeriodSelectionValue","useOrgUnitSelectionValue","jsx","ScorecardStateProvider","jsxs","ScorecardHeader","ScorecardLegendsView","TableStateProvider","DndProvider","HTML5Backend","ScorecardTable"],"mappings":";;;;;;;;;;;;;;;AAiBa,MAAA,oBAAA,GAAuBA,UAAK,CAAA,SAASC,qBAAqB,CAAA;AAAA,EACtE;AACD,CAEG,EAAA;AACF,EAAA,MAAM,SAASC,iCAAmB,EAAA;AAClC,EAAA,MAAM,UAAUC,6BAAwB,EAAA;AACxC,EAAA,MAAM,kBAAkBC,6BAAwB,EAAA;AAChD,EAAA,MAAM,mBAAmBC,8BAAyB,EAAA;AAElD,EAAA,MAAM,YAAe,GAAA;AAAA,IACpB,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACR,GAAI,WAAW,EAAC;AAAA,MAChB,gBAAkB,EAAA,IAAA;AAAA,MAClB,iBAAmB,EAAA,IAAA;AAAA,MACnB,SAAW,EAAA;AAAA;AACZ,GACD;AAEA,EACC,uBAAAC,cAAA,CAACC,oCAAuB,EAAA,EAAA,YAAA,EAAc,YAAc,EAAA,MAAA,EACnD,QAAC,kBAAAD,cAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,OAAS,EAAA,MAAA,EACtB,EAAA,QAAA,kBAAAE,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAU,EAAA,eAAA;AAAA,MACV,KAAO,EAAA;AAAA,QACN,MAAQ,EAAA,MAAA;AAAA,QACR,OAAS,EAAA,MAAA;AAAA,QACT,GAAK,EAAA,EAAA;AAAA,QACL,aAAe,EAAA;AAAA,OAChB;AAAA,MACA,GAAK,EAAA,UAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAAF,cAAA,CAACG,+BAAgB,EAAA,EAAA,CAAA;AAAA,uCAChBC,yCAAqB,EAAA,EAAA,CAAA;AAAA,wBACrBJ,cAAA,CAAAK,qCAAA,EAAA,EACA,QAAC,kBAAAL,cAAA,CAAAM,oBAAA,EAAA,EAAY,SAASC,iCACrB,EAAA,QAAA,kBAAAP,cAAA;AAAA,UAACQ,6BAAA;AAAA,UAAA;AAAA,YACA,MAAO,EAAA,OAAA;AAAA,YACP,YAAa,EAAA,MAAA;AAAA,YACb,WAAY,EAAA,MAAA;AAAA,YACZ,KAAM,EAAA;AAAA;AAAA,WAER,CACD,EAAA;AAAA;AAAA;AAAA,KAEF,CACD,EAAA,CAAA;AAEF,CAAC","file":"ScorecardPreviewArea.js","sourcesContent":["import { memo, type RefObject } from \"react\";\nimport { TableStateProvider } from \"../../TableStateProvider\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ScorecardTable } from \"../../ScorecardTable\";\nimport { ScorecardHeader } from \"../../ScorecardHeader\";\nimport { ScorecardLegendsView } from \"../../ScorecardLegendsView\";\nimport { ScorecardStateProvider } from \"../../StateProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type { ScorecardState } from \"../../../schemas/config\";\nimport \"../print.css\";\nimport {\n\tuseOrgUnitSelectionValue,\n\tusePeriodSelectionValue,\n\tuseScorecardViewOptions,\n} from \"../../../utils\";\n\nexport const ScorecardPreviewArea = memo(function ScorecardPreviewArea({\n\tpreviewRef,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n}) {\n\tconst config = useScorecardConfig();\n\tconst options = useScorecardViewOptions();\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst orgUnitSelection = useOrgUnitSelectionValue();\n\n\tconst updatedState = {\n\t\tperiodSelection,\n\t\torgUnitSelection,\n\t\toptions: {\n\t\t\t...(options ?? {}),\n\t\t\tdisableExpanding: true,\n\t\t\tdisablePagination: true,\n\t\t\tprintMode: true,\n\t\t},\n\t} as ScorecardState;\n\n\treturn (\n\t\t<ScorecardStateProvider initialState={updatedState} config={config}>\n\t\t\t<div style={{ display: \"none\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"print-preview\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t}}\n\t\t\t\t\tref={previewRef}\n\t\t\t\t>\n\t\t\t\t\t<ScorecardHeader />\n\t\t\t\t\t<ScorecardLegendsView />\n\t\t\t\t\t<TableStateProvider>\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<ScorecardTable\n\t\t\t\t\t\t\t\tlayout=\"fixed\"\n\t\t\t\t\t\t\t\tscrollHeight=\"100%\"\n\t\t\t\t\t\t\t\tscrollWidth=\"100%\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t</TableStateProvider>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ScorecardStateProvider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":["memo","ScorecardPreviewArea","useScorecardConfig","useScorecardViewOptions","usePeriodSelectionValue","useOrgUnitSelectionValue","jsx","ScorecardStateProvider","jsxs","ScorecardHeader","ScorecardLegendsView","TableStateProvider","DndProvider","HTML5Backend","ScorecardTable"],"mappings":";;;;;;;;;;;;;;;AAiBO,MAAM,oBAAA,GAAuBA,UAAA,CAAK,SAASC,qBAAAA,CAAqB;AAAA,EACtE;AACD,CAAA,EAEG;AACF,EAAA,MAAM,SAASC,iCAAA,EAAmB;AAClC,EAAA,MAAM,UAAUC,6BAAA,EAAwB;AACxC,EAAA,MAAM,kBAAkBC,6BAAA,EAAwB;AAChD,EAAA,MAAM,mBAAmBC,8BAAA,EAAyB;AAElD,EAAA,MAAM,YAAA,GAAe;AAAA,IACpB,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACR,GAAI,WAAW,EAAC;AAAA,MAChB,gBAAA,EAAkB,IAAA;AAAA,MAClB,iBAAA,EAAmB,IAAA;AAAA,MACnB,SAAA,EAAW;AAAA;AACZ,GACD;AAEA,EAAA,uBACCC,cAAA,CAACC,oCAAA,EAAA,EAAuB,YAAA,EAAc,YAAA,EAAc,MAAA,EACnD,QAAA,kBAAAD,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAO,EAC7B,QAAA,kBAAAE,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAU,eAAA;AAAA,MACV,KAAA,EAAO;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS,MAAA;AAAA,QACT,GAAA,EAAK,EAAA;AAAA,QACL,aAAA,EAAe;AAAA,OAChB;AAAA,MACA,GAAA,EAAK,UAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAAF,cAAA,CAACG,+BAAA,EAAA,EAAgB,CAAA;AAAA,uCAChBC,yCAAA,EAAA,EAAqB,CAAA;AAAA,wBACtBJ,cAAA,CAACK,qCAAA,EAAA,EACA,QAAA,kBAAAL,cAAA,CAACM,oBAAA,EAAA,EAAY,SAASC,iCAAA,EACrB,QAAA,kBAAAP,cAAA;AAAA,UAACQ,6BAAA;AAAA,UAAA;AAAA,YACA,MAAA,EAAO,OAAA;AAAA,YACP,YAAA,EAAa,MAAA;AAAA,YACb,WAAA,EAAY,MAAA;AAAA,YACZ,KAAA,EAAM;AAAA;AAAA,WAER,CAAA,EACD;AAAA;AAAA;AAAA,KAEF,CAAA,EACD,CAAA;AAEF,CAAC","file":"ScorecardPreviewArea.js","sourcesContent":["import { memo, type RefObject } from \"react\";\nimport { TableStateProvider } from \"../../TableStateProvider\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ScorecardTable } from \"../../ScorecardTable\";\nimport { ScorecardHeader } from \"../../ScorecardHeader\";\nimport { ScorecardLegendsView } from \"../../ScorecardLegendsView\";\nimport { ScorecardStateProvider } from \"../../StateProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type { ScorecardState } from \"../../../schemas/config\";\nimport \"../print.css\";\nimport {\n\tuseOrgUnitSelectionValue,\n\tusePeriodSelectionValue,\n\tuseScorecardViewOptions,\n} from \"../../../utils\";\n\nexport const ScorecardPreviewArea = memo(function ScorecardPreviewArea({\n\tpreviewRef,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n}) {\n\tconst config = useScorecardConfig();\n\tconst options = useScorecardViewOptions();\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst orgUnitSelection = useOrgUnitSelectionValue();\n\n\tconst updatedState = {\n\t\tperiodSelection,\n\t\torgUnitSelection,\n\t\toptions: {\n\t\t\t...(options ?? {}),\n\t\t\tdisableExpanding: true,\n\t\t\tdisablePagination: true,\n\t\t\tprintMode: true,\n\t\t},\n\t} as ScorecardState;\n\n\treturn (\n\t\t<ScorecardStateProvider initialState={updatedState} config={config}>\n\t\t\t<div style={{ display: \"none\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"print-preview\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t}}\n\t\t\t\t\tref={previewRef}\n\t\t\t\t>\n\t\t\t\t\t<ScorecardHeader />\n\t\t\t\t\t<ScorecardLegendsView />\n\t\t\t\t\t<TableStateProvider>\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<ScorecardTable\n\t\t\t\t\t\t\t\tlayout=\"fixed\"\n\t\t\t\t\t\t\t\tscrollHeight=\"100%\"\n\t\t\t\t\t\t\t\tscrollWidth=\"100%\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t</TableStateProvider>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ScorecardStateProvider>\n\t);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardPrint/utils/download.ts"],"names":["orgUnits","dataSources","periods","find","mapValues","set","i18n","getDataSourcesFromGroups","flatten","getHoldersFromGroups","saveAs"],"mappings":"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","file":"download.js","sourcesContent":["import { find, flatten, mapValues, set } from \"lodash\";\nimport type { ScorecardMeta } from \"../../MetaProvider\";\nimport type {\n\tOrgUnitLevelLegend,\n\tScorecardConfig,\n\tScorecardDataSource,\n} from \"../../../schemas/config\";\nimport type { ItemMeta } from \"../../../hooks/metadata\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\tgetDataSourcesFromGroups,\n\tgetHoldersFromGroups,\n} from \"../../../utils/dataSources\";\nimport { saveAs } from \"file-saver\";\nimport type { AnalyticsData } from \"../../../utils/data\";\n\nexport const ALMA_HEADERS = [\n\t{\n\t\tname: \"dx\",\n\t\tcolumn: \"Data\",\n\t\tvalueType: \"TEXT\",\n\t\ttype: \"java.lang.String\",\n\t\thidden: false,\n\t\tmeta: true,\n\t},\n\t{\n\t\tname: \"pe\",\n\t\tcolumn: \"Period\",\n\t\tvalueType: \"TEXT\",\n\t\ttype: \"java.lang.String\",\n\t\thidden: false,\n\t\tmeta: true,\n\t},\n\t{\n\t\tname: \"ou\",\n\t\tcolumn: \"Organisation unit\",\n\t\tvalueType: \"TEXT\",\n\t\ttype: \"java.lang.String\",\n\t\thidden: false,\n\t\tmeta: true,\n\t},\n\t{\n\t\tname: \"value\",\n\t\tcolumn: \"Value\",\n\t\tvalueType: \"NUMBER\",\n\t\ttype: \"java.lang.Double\",\n\t\thidden: false,\n\t\tmeta: false,\n\t},\n];\n\nexport function getALMAMetadata({\n\tconfig,\n\tmeta,\n}: {\n\tmeta: ScorecardMeta;\n\tconfig: ScorecardConfig;\n}) {\n\tconst legendDefinitions = config.legendDefinitions;\n\n\tfunction getMetadataDimensions(\n\t\torgUnits: ItemMeta[],\n\t\tdataSources: ItemMeta[],\n\t\tperiods: ItemMeta[],\n\t) {\n\t\treturn {\n\t\t\tou: orgUnits?.map(({ uid }) => uid),\n\t\t\tpe: periods?.map(({ uid }) => uid),\n\t\t\tdx: dataSources?.map(({ uid }) => uid),\n\t\t\tco: [],\n\t\t};\n\t}\n\n\tfunction getAllLegends(legends: ScorecardDataSource[\"legends\"]) {\n\t\tif (Array.isArray(legends)) {\n\t\t\treturn legends?.map(\n\t\t\t\t({ startValue, endValue, legendDefinitionId }) => ({\n\t\t\t\t\tmin: startValue,\n\t\t\t\t\tmax: endValue,\n\t\t\t\t\tcolor: find(legendDefinitions, [\"id\", legendDefinitionId])\n\t\t\t\t\t\t?.color,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\treturn mapValues(legends as OrgUnitLevelLegend, (value) => {\n\t\t\t\treturn value.map(\n\t\t\t\t\t({ startValue, endValue, legendDefinitionId }) => ({\n\t\t\t\t\t\tmin: startValue,\n\t\t\t\t\t\tmax: endValue,\n\t\t\t\t\t\tcolor: find(legendDefinitions, [\n\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\tlegendDefinitionId,\n\t\t\t\t\t\t])?.color,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction getMetadataItems(\n\t\torgUnits: ItemMeta[],\n\t\tdataSources: ScorecardDataSource[],\n\t) {\n\t\tconst items = {};\n\n\t\tfor (const dataSource of dataSources) {\n\t\t\tconst { label, id, legends } = dataSource ?? {};\n\t\t\tset(items, [id], {\n\t\t\t\tname: label,\n\t\t\t\tlegendSet: getAllLegends(legends),\n\t\t\t});\n\t\t}\n\n\t\tfor (const orgUnit of orgUnits) {\n\t\t\tconst { uid, name } = orgUnit ?? {};\n\t\t\tset(items, [uid], {\n\t\t\t\tname,\n\t\t\t\tid: uid,\n\t\t\t});\n\t\t}\n\n\t\tset(items, \"dx\", { name: i18n.t(\"Data\") });\n\t\tset(items, \"pe\", { name: i18n.t(\"Period\") });\n\t\tset(items, \"ou\", { name: i18n.t(\"Organisation Unit\") });\n\n\t\treturn items;\n\t}\n\n\tconst { orgUnits, dataItems, periods } = meta;\n\tconst dataSources = getDataSourcesFromGroups(\n\t\tconfig.dataSelection.dataGroups,\n\t);\n\treturn {\n\t\tdimensions: getMetadataDimensions(orgUnits, dataItems, periods),\n\t\titems: getMetadataItems(orgUnits, dataSources),\n\t};\n}\n\nexport function downloadALMAMeta({\n\tconfig,\n\tmeta,\n}: {\n\tconfig: ScorecardConfig;\n\tmeta: ScorecardMeta;\n}) {\n\ttry {\n\t\tconst json = JSON.stringify({\n\t\t\torganisationUnits: meta.orgUnits?.map(\n\t\t\t\t({ uid, level, name, hierarchy }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: uid,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tlevel: level ?? hierarchy?.split(\"/\")?.length - 1,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t),\n\t\t\tindicators: flatten(\n\t\t\t\tgetHoldersFromGroups(config.dataSelection.dataGroups)?.map(\n\t\t\t\t\t({ dataSources }) =>\n\t\t\t\t\t\tdataSources?.map(({ id, label }) => ({\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tname: label,\n\t\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t),\n\t\t});\n\t\tconst blob = new Blob([json], { type: \"application/json\" });\n\t\tsaveAs(blob, `${config.title}-metadata.json`);\n\t} catch (e) {\n\t\tconsole.error(e);\n\t\treturn e;\n\t}\n}\n\nfunction getALMAData(data: AnalyticsData[]) {\n\treturn Object.values(data);\n}\n\nexport function downloadALMAData({\n\tconfig,\n\tmeta,\n\tdata,\n}: {\n\tconfig: ScorecardConfig;\n\tmeta: ScorecardMeta;\n\tdata: AnalyticsData[];\n}) {\n\ttry {\n\t\tconst json = JSON.stringify({\n\t\t\tdataValues: [\n\t\t\t\t{\n\t\t\t\t\theaders: ALMA_HEADERS,\n\t\t\t\t\tmetaData: getALMAMetadata({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t}),\n\t\t\t\t\trows: getALMAData(data),\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t\tconst blob = new Blob([json], { type: \"application/json\" });\n\t\tsaveAs(blob, `${config.title}.json`);\n\t} catch (e) {\n\t\treturn e;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardPrint/utils/download.ts"],"names":["orgUnits","dataSources","periods","find","mapValues","set","i18n","getDataSourcesFromGroups","flatten","getHoldersFromGroups","saveAs"],"mappings":"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","file":"download.js","sourcesContent":["import { find, flatten, mapValues, set } from \"lodash\";\nimport type { ScorecardMeta } from \"../../MetaProvider\";\nimport type {\n\tOrgUnitLevelLegend,\n\tScorecardConfig,\n\tScorecardDataSource,\n} from \"../../../schemas/config\";\nimport type { ItemMeta } from \"../../../hooks/metadata\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\tgetDataSourcesFromGroups,\n\tgetHoldersFromGroups,\n} from \"../../../utils/dataSources\";\nimport { saveAs } from \"file-saver\";\nimport type { AnalyticsData } from \"../../../utils/data\";\n\nexport const ALMA_HEADERS = [\n\t{\n\t\tname: \"dx\",\n\t\tcolumn: \"Data\",\n\t\tvalueType: \"TEXT\",\n\t\ttype: \"java.lang.String\",\n\t\thidden: false,\n\t\tmeta: true,\n\t},\n\t{\n\t\tname: \"pe\",\n\t\tcolumn: \"Period\",\n\t\tvalueType: \"TEXT\",\n\t\ttype: \"java.lang.String\",\n\t\thidden: false,\n\t\tmeta: true,\n\t},\n\t{\n\t\tname: \"ou\",\n\t\tcolumn: \"Organisation unit\",\n\t\tvalueType: \"TEXT\",\n\t\ttype: \"java.lang.String\",\n\t\thidden: false,\n\t\tmeta: true,\n\t},\n\t{\n\t\tname: \"value\",\n\t\tcolumn: \"Value\",\n\t\tvalueType: \"NUMBER\",\n\t\ttype: \"java.lang.Double\",\n\t\thidden: false,\n\t\tmeta: false,\n\t},\n];\n\nexport function getALMAMetadata({\n\tconfig,\n\tmeta,\n}: {\n\tmeta: ScorecardMeta;\n\tconfig: ScorecardConfig;\n}) {\n\tconst legendDefinitions = config.legendDefinitions;\n\n\tfunction getMetadataDimensions(\n\t\torgUnits: ItemMeta[],\n\t\tdataSources: ItemMeta[],\n\t\tperiods: ItemMeta[],\n\t) {\n\t\treturn {\n\t\t\tou: orgUnits?.map(({ uid }) => uid),\n\t\t\tpe: periods?.map(({ uid }) => uid),\n\t\t\tdx: dataSources?.map(({ uid }) => uid),\n\t\t\tco: [],\n\t\t};\n\t}\n\n\tfunction getAllLegends(legends: ScorecardDataSource[\"legends\"]) {\n\t\tif (Array.isArray(legends)) {\n\t\t\treturn legends?.map(\n\t\t\t\t({ startValue, endValue, legendDefinitionId }) => ({\n\t\t\t\t\tmin: startValue,\n\t\t\t\t\tmax: endValue,\n\t\t\t\t\tcolor: find(legendDefinitions, [\"id\", legendDefinitionId])\n\t\t\t\t\t\t?.color,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\treturn mapValues(legends as OrgUnitLevelLegend, (value) => {\n\t\t\t\treturn value.map(\n\t\t\t\t\t({ startValue, endValue, legendDefinitionId }) => ({\n\t\t\t\t\t\tmin: startValue,\n\t\t\t\t\t\tmax: endValue,\n\t\t\t\t\t\tcolor: find(legendDefinitions, [\n\t\t\t\t\t\t\t\"id\",\n\t\t\t\t\t\t\tlegendDefinitionId,\n\t\t\t\t\t\t])?.color,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction getMetadataItems(\n\t\torgUnits: ItemMeta[],\n\t\tdataSources: ScorecardDataSource[],\n\t) {\n\t\tconst items = {};\n\n\t\tfor (const dataSource of dataSources) {\n\t\t\tconst { label, id, legends } = dataSource ?? {};\n\t\t\tset(items, [id], {\n\t\t\t\tname: label,\n\t\t\t\tlegendSet: getAllLegends(legends),\n\t\t\t});\n\t\t}\n\n\t\tfor (const orgUnit of orgUnits) {\n\t\t\tconst { uid, name } = orgUnit ?? {};\n\t\t\tset(items, [uid], {\n\t\t\t\tname,\n\t\t\t\tid: uid,\n\t\t\t});\n\t\t}\n\n\t\tset(items, \"dx\", { name: i18n.t(\"Data\") });\n\t\tset(items, \"pe\", { name: i18n.t(\"Period\") });\n\t\tset(items, \"ou\", { name: i18n.t(\"Organisation Unit\") });\n\n\t\treturn items;\n\t}\n\n\tconst { orgUnits, dataItems, periods } = meta;\n\tconst dataSources = getDataSourcesFromGroups(\n\t\tconfig.dataSelection.dataGroups,\n\t);\n\treturn {\n\t\tdimensions: getMetadataDimensions(orgUnits, dataItems, periods),\n\t\titems: getMetadataItems(orgUnits, dataSources),\n\t};\n}\n\nexport function downloadALMAMeta({\n\tconfig,\n\tmeta,\n}: {\n\tconfig: ScorecardConfig;\n\tmeta: ScorecardMeta;\n}) {\n\ttry {\n\t\tconst json = JSON.stringify({\n\t\t\torganisationUnits: meta.orgUnits?.map(\n\t\t\t\t({ uid, level, name, hierarchy }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: uid,\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tlevel: level ?? hierarchy?.split(\"/\")?.length - 1,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t),\n\t\t\tindicators: flatten(\n\t\t\t\tgetHoldersFromGroups(config.dataSelection.dataGroups)?.map(\n\t\t\t\t\t({ dataSources }) =>\n\t\t\t\t\t\tdataSources?.map(({ id, label }) => ({\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tname: label,\n\t\t\t\t\t\t})),\n\t\t\t\t),\n\t\t\t),\n\t\t});\n\t\tconst blob = new Blob([json], { type: \"application/json\" });\n\t\tsaveAs(blob, `${config.title}-metadata.json`);\n\t} catch (e) {\n\t\tconsole.error(e);\n\t\treturn e;\n\t}\n}\n\nfunction getALMAData(data: AnalyticsData[]) {\n\treturn Object.values(data);\n}\n\nexport function downloadALMAData({\n\tconfig,\n\tmeta,\n\tdata,\n}: {\n\tconfig: ScorecardConfig;\n\tmeta: ScorecardMeta;\n\tdata: AnalyticsData[];\n}) {\n\ttry {\n\t\tconst json = JSON.stringify({\n\t\t\tdataValues: [\n\t\t\t\t{\n\t\t\t\t\theaders: ALMA_HEADERS,\n\t\t\t\t\tmetaData: getALMAMetadata({\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t}),\n\t\t\t\t\trows: getALMAData(data),\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t\tconst blob = new Blob([json], { type: \"application/json\" });\n\t\tsaveAs(blob, `${config.title}.json`);\n\t} catch (e) {\n\t\treturn e;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.tsx"],"names":["jsx","i18n"],"mappings":";;;;;;;;;AAOO,SAAS,yBAA0B,CAAA;AAAA,EACzC;AACD,CAAsC,EAAA;AACrC,EACC,uBAAAA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,KAAO,EAAA,MAAA;AAAA,QACP,OAAS,EAAA,EAAA;AAAA,QACT,SAAW,EAAA,GAAA;AAAA,QACX,SAAW,EAAA;AAAA,OACZ;AAAA,MAEC,QAAA,EAAAC,qBAAA,CAAK,EAAE,mBAAmB;AAAA;AAAA,GAC5B;AAEF","file":"FurtherAnalysisDictionary.js","sourcesContent":["import type { FurtherAnalysisConfig } from \"../components/FurtherAnalysisModal\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nexport interface FurtherAnalysisVisualizationProps {\n\tconfig: FurtherAnalysisConfig;\n}\n\nexport function FurtherAnalysisDictionary({\n\tconfig,\n}: FurtherAnalysisVisualizationProps) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\tpadding: 32,\n\t\t\t\tminHeight: 500,\n\t\t\t\tmaxHeight: \"80dvh\",\n\t\t\t}}\n\t\t>\n\t\t\t{i18n.t(\"To be implemented\")}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.tsx"],"names":["jsx","i18n"],"mappings":";;;;;;;;;AAOO,SAAS,yBAAA,CAA0B;AAAA,EACzC;AACD,CAAA,EAAsC;AACrC,EAAA,uBACCA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,KAAA,EAAO,MAAA;AAAA,QACP,OAAA,EAAS,EAAA;AAAA,QACT,SAAA,EAAW,GAAA;AAAA,QACX,SAAA,EAAW;AAAA,OACZ;AAAA,MAEC,QAAA,EAAAC,qBAAA,CAAK,EAAE,mBAAmB;AAAA;AAAA,GAC5B;AAEF","file":"FurtherAnalysisDictionary.js","sourcesContent":["import type { FurtherAnalysisConfig } from \"../components/FurtherAnalysisModal\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nexport interface FurtherAnalysisVisualizationProps {\n\tconfig: FurtherAnalysisConfig;\n}\n\nexport function FurtherAnalysisDictionary({\n\tconfig,\n}: FurtherAnalysisVisualizationProps) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\tpadding: 32,\n\t\t\t\tminHeight: 500,\n\t\t\t\tmaxHeight: \"80dvh\",\n\t\t\t}}\n\t\t>\n\t\t\t{i18n.t(\"To be implemented\")}\n\t\t</div>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.tsx"],"names":["createContext","useContext","useState","jsx"],"mappings":";;;;;AAeA,MAAM,uBAAA,GAA0BA,oBAE9B,IAAI,CAAA;AAEC,SAAS,wBAA2B,GAAA;AAC1C,EAAM,MAAA,OAAA,GAAUC,iBAAW,uBAAuB,CAAA;AAClD,EAAA,IAAI,CAAC,OAAS,EAAA;AACb,IAAM,MAAA,KAAA;AAAA,MACL;AAAA,KACD;AAAA;AAED,EAAA,OAAOA,iBAAW,uBAAuB,CAAA;AAC1C;AAEO,SAAS,wBAAyB,CAAA;AAAA,EACxC,aAAA;AAAA,EACA;AACD,CAGG,EAAA;AACF,EAAM,MAAA,KAAA,GAAQC,eAA2B,aAAa,CAAA;AAEtD,EAAA,IAAI,SAAS,IAAM,EAAA;AAClB,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uBACEC,cAAA,CAAA,uBAAA,CAAwB,QAAxB,EAAA,EAAiC,OAChC,QACF,EAAA,CAAA;AAEF","file":"ConfigProvider.js","sourcesContent":["import {\n\tcreateContext,\n\ttype Dispatch,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseState,\n} from \"react\";\nimport type { ScorecardDataSource } from \"../../../../schemas/config\";\n\nexport interface DictionaryConfig {\n\tselectedDataSource?: ScorecardDataSource;\n\tdataSources: ScorecardDataSource[];\n}\n\nconst DictionaryConfigContext = createContext<\n\t[DictionaryConfig, Dispatch<SetStateAction<DictionaryConfig>>] | null\n>(null);\n\nexport function useDictionaryConfigState() {\n\tconst context = useContext(DictionaryConfigContext);\n\tif (!context) {\n\t\tthrow Error(\n\t\t\t\"The useDictionaryConfigState must be used within the DictionaryConfigContext\",\n\t\t);\n\t}\n\treturn useContext(DictionaryConfigContext)!;\n}\n\nexport function DictionaryConfigProvider({\n\tinitialConfig,\n\tchildren,\n}: {\n\tinitialConfig: DictionaryConfig;\n\tchildren: ReactNode;\n}) {\n\tconst value = useState<DictionaryConfig>(initialConfig);\n\n\tif (value == null) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DictionaryConfigContext.Provider value={value}>\n\t\t\t{children}\n\t\t</DictionaryConfigContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.tsx"],"names":["createContext","useContext","useState","jsx"],"mappings":";;;;;AAeA,MAAM,uBAAA,GAA0BA,oBAE9B,IAAI,CAAA;AAEC,SAAS,wBAAA,GAA2B;AAC1C,EAAA,MAAM,OAAA,GAAUC,iBAAW,uBAAuB,CAAA;AAClD,EAAA,IAAI,CAAC,OAAA,EAAS;AACb,IAAA,MAAM,KAAA;AAAA,MACL;AAAA,KACD;AAAA,EACD;AACA,EAAA,OAAOA,iBAAW,uBAAuB,CAAA;AAC1C;AAEO,SAAS,wBAAA,CAAyB;AAAA,EACxC,aAAA;AAAA,EACA;AACD,CAAA,EAGG;AACF,EAAA,MAAM,KAAA,GAAQC,eAA2B,aAAa,CAAA;AAEtD,EAAA,IAAI,SAAS,IAAA,EAAM;AAClB,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,uBACCC,cAAA,CAAC,uBAAA,CAAwB,QAAA,EAAxB,EAAiC,OAChC,QAAA,EACF,CAAA;AAEF","file":"ConfigProvider.js","sourcesContent":["import {\n\tcreateContext,\n\ttype Dispatch,\n\ttype ReactNode,\n\ttype SetStateAction,\n\tuseContext,\n\tuseState,\n} from \"react\";\nimport type { ScorecardDataSource } from \"../../../../schemas/config\";\n\nexport interface DictionaryConfig {\n\tselectedDataSource?: ScorecardDataSource;\n\tdataSources: ScorecardDataSource[];\n}\n\nconst DictionaryConfigContext = createContext<\n\t[DictionaryConfig, Dispatch<SetStateAction<DictionaryConfig>>] | null\n>(null);\n\nexport function useDictionaryConfigState() {\n\tconst context = useContext(DictionaryConfigContext);\n\tif (!context) {\n\t\tthrow Error(\n\t\t\t\"The useDictionaryConfigState must be used within the DictionaryConfigContext\",\n\t\t);\n\t}\n\treturn useContext(DictionaryConfigContext)!;\n}\n\nexport function DictionaryConfigProvider({\n\tinitialConfig,\n\tchildren,\n}: {\n\tinitialConfig: DictionaryConfig;\n\tchildren: ReactNode;\n}) {\n\tconst value = useState<DictionaryConfig>(initialConfig);\n\n\tif (value == null) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DictionaryConfigContext.Provider value={value}>\n\t\t\t{children}\n\t\t</DictionaryConfigContext.Provider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.tsx"],"names":["createContext","useContext","useDataQuery","jsx","Fragment","i18n"],"mappings":";;;;;;;;;;;AAQA,SAAS,oBAAoB,IAA4B,EAAA;AACxD,EAAA,QAAQ,IAAM;AAAA,IACb,KAAK,aAAA;AACJ,MAAO,OAAA,cAAA;AAAA,IACR,KAAK,WAAA;AACJ,MAAO,OAAA,YAAA;AAAA,IACR,KAAK,SAAA;AACJ,MAAO,OAAA,UAAA;AAAA;AAEV;AAEA,SAAS,aACR,CAAA,IAAA,EACA,EAAE,MAAA,EACI,EAAA;AACN,EAAM,MAAA,QAAA,GAAW,oBAAoB,IAAI,CAAA;AACzC,EAAO,OAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACR,QAAA;AAAA,MACA,EAAI,EAAA,CAAC,EAAE,EAAA,EAAyB,KAAA,EAAA;AAAA,MAChC,MAAQ,EAAA;AAAA,QACP,MAAA,EAAQ,MAAU,IAAA,CAAC,GAAG;AAAA;AACvB;AACD,GACD;AACD;AAEA,MAAM,sBAAA,GAAyBA,oBAErB,IAAI,CAAA;AAEP,SAAS,kBAAwB,GAAA;AACvC,EAAM,MAAA,OAAA,GAAUC,iBAAW,sBAAsB,CAAA;AACjD,EAAA,OAAO,OAAS,EAAA,OAAA;AACjB;AAEO,SAAS,eAAgB,CAAA;AAAA,EAC/B,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAIG,EAAA;AACF,EAAA,MAAM,EAAE,OAAA,EAAS,IAAM,EAAA,KAAA,EAAU,GAAAC,uBAAA,CAE9B,aAAc,CAAA,QAAA,CAAS,IAAM,EAAA,EAAE,MAAO,EAAC,CAAG,EAAA;AAAA,IAC5C,SAAW,EAAA,EAAE,EAAI,EAAA,QAAA,CAAS,EAAG;AAAA,GAC7B,CAAA;AAED,EAAA,IAAI,OAAS,EAAA;AACZ,IAAA,uBAAUC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAAC,qBAAA,CAAK,CAAE,CAAA,YAAY,CAAE,EAAA,CAAA;AAAA;AAGhC,EAAA,IAAI,KAAO,EAAA;AACV,IAAO,uBAAAF,cAAA,CAAC,KAAK,EAAA,EAAA,QAAA,EAAA,KAAA,CAAM,OAAQ,EAAA,CAAA;AAAA;AAG5B,EAAA,IAAI,CAAC,IAAM,EAAA;AACV,IAAA,uBAAQA,cAAA,CAAA,KAAA,EAAA,EAAK,QAAK,EAAAE,qBAAA,CAAA,CAAA,CAAE,oBAAoB,CAAE,EAAA,CAAA;AAAA;AAG3C,EAAA,sCACE,sBAAuB,CAAA,QAAA,EAAvB,EAAgC,KAAA,EAAO,MACtC,QACF,EAAA,CAAA;AAEF","file":"DetailsProvider.js","sourcesContent":["import { createContext, type ReactNode, useContext } from \"react\";\nimport type {\n\tScorecardDataSource,\n\tSupportedDataSources,\n} from \"../../../../schemas/config\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nfunction getResourceFromType(type: SupportedDataSources) {\n\tswitch (type) {\n\t\tcase \"dataElement\":\n\t\t\treturn \"dataElements\";\n\t\tcase \"indicator\":\n\t\t\treturn \"indicators\";\n\t\tcase \"dataSet\":\n\t\t\treturn \"dataSets\";\n\t}\n}\n\nfunction generateQuery(\n\ttype: SupportedDataSources,\n\t{ fields }: { fields?: string[] },\n): any {\n\tconst resource = getResourceFromType(type);\n\treturn {\n\t\tdetails: {\n\t\t\tresource,\n\t\t\tid: ({ id }: { id: string }) => id,\n\t\t\tparams: {\n\t\t\t\tfields: fields ?? [\"*\"],\n\t\t\t},\n\t\t},\n\t};\n}\n\nconst DataItemDetailsContext = createContext<{\n\tdetails: Record<string, any>;\n} | null>(null);\n\nexport function useDataItemDetails<T>() {\n\tconst context = useContext(DataItemDetailsContext);\n\treturn context?.details as T;\n}\n\nexport function DetailsProvider({\n\tchildren,\n\tdataItem,\n\tfields,\n}: {\n\tdataItem: ScorecardDataSource;\n\tchildren: ReactNode;\n\tfields?: string[];\n}) {\n\tconst { loading, data, error } = useDataQuery<{\n\t\tdetails: Record<string, unknown>;\n\t}>(generateQuery(dataItem.type, { fields }), {\n\t\tvariables: { id: dataItem.id },\n\t});\n\n\tif (loading) {\n\t\treturn <>{i18n.t(\"Loading...\")}</>;\n\t}\n\n\tif (error) {\n\t\treturn <div>{error.message}</div>;\n\t}\n\n\tif (!data) {\n\t\treturn <div>{i18n.t(\"Could not get data\")}</div>;\n\t}\n\n\treturn (\n\t\t<DataItemDetailsContext.Provider value={data}>\n\t\t\t{children}\n\t\t</DataItemDetailsContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.tsx"],"names":["createContext","useContext","useDataQuery","jsx","Fragment","i18n"],"mappings":";;;;;;;;;;;AAQA,SAAS,oBAAoB,IAAA,EAA4B;AACxD,EAAA,QAAQ,IAAA;AAAM,IACb,KAAK,aAAA;AACJ,MAAA,OAAO,cAAA;AAAA,IACR,KAAK,WAAA;AACJ,MAAA,OAAO,YAAA;AAAA,IACR,KAAK,SAAA;AACJ,MAAA,OAAO,UAAA;AAAA;AAEV;AAEA,SAAS,aAAA,CACR,IAAA,EACA,EAAE,MAAA,EAAO,EACH;AACN,EAAA,MAAM,QAAA,GAAW,oBAAoB,IAAI,CAAA;AACzC,EAAA,OAAO;AAAA,IACN,OAAA,EAAS;AAAA,MACR,QAAA;AAAA,MACA,EAAA,EAAI,CAAC,EAAE,EAAA,EAAG,KAAsB,EAAA;AAAA,MAChC,MAAA,EAAQ;AAAA,QACP,MAAA,EAAQ,MAAA,IAAU,CAAC,GAAG;AAAA;AACvB;AACD,GACD;AACD;AAEA,MAAM,sBAAA,GAAyBA,oBAErB,IAAI,CAAA;AAEP,SAAS,kBAAA,GAAwB;AACvC,EAAA,MAAM,OAAA,GAAUC,iBAAW,sBAAsB,CAAA;AACjD,EAAA,OAAO,OAAA,EAAS,OAAA;AACjB;AAEO,SAAS,eAAA,CAAgB;AAAA,EAC/B,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAM,KAAA,EAAM,GAAIC,uBAAA,CAE9B,aAAA,CAAc,QAAA,CAAS,IAAA,EAAM,EAAE,MAAA,EAAQ,CAAA,EAAG;AAAA,IAC5C,SAAA,EAAW,EAAE,EAAA,EAAI,QAAA,CAAS,EAAA;AAAG,GAC7B,CAAA;AAED,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,uBAAOC,cAAA,CAAAC,mBAAA,EAAA,EAAG,QAAA,EAAAC,qBAAA,CAAK,CAAA,CAAE,YAAY,CAAA,EAAE,CAAA;AAAA,EAChC;AAEA,EAAA,IAAI,KAAA,EAAO;AACV,IAAA,uBAAOF,cAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,KAAA,CAAM,OAAA,EAAQ,CAAA;AAAA,EAC5B;AAEA,EAAA,IAAI,CAAC,IAAA,EAAM;AACV,IAAA,uBAAOA,cAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAAE,qBAAA,CAAK,CAAA,CAAE,oBAAoB,CAAA,EAAE,CAAA;AAAA,EAC3C;AAEA,EAAA,sCACE,sBAAA,CAAuB,QAAA,EAAvB,EAAgC,KAAA,EAAO,MACtC,QAAA,EACF,CAAA;AAEF","file":"DetailsProvider.js","sourcesContent":["import { createContext, type ReactNode, useContext } from \"react\";\nimport type {\n\tScorecardDataSource,\n\tSupportedDataSources,\n} from \"../../../../schemas/config\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nfunction getResourceFromType(type: SupportedDataSources) {\n\tswitch (type) {\n\t\tcase \"dataElement\":\n\t\t\treturn \"dataElements\";\n\t\tcase \"indicator\":\n\t\t\treturn \"indicators\";\n\t\tcase \"dataSet\":\n\t\t\treturn \"dataSets\";\n\t}\n}\n\nfunction generateQuery(\n\ttype: SupportedDataSources,\n\t{ fields }: { fields?: string[] },\n): any {\n\tconst resource = getResourceFromType(type);\n\treturn {\n\t\tdetails: {\n\t\t\tresource,\n\t\t\tid: ({ id }: { id: string }) => id,\n\t\t\tparams: {\n\t\t\t\tfields: fields ?? [\"*\"],\n\t\t\t},\n\t\t},\n\t};\n}\n\nconst DataItemDetailsContext = createContext<{\n\tdetails: Record<string, any>;\n} | null>(null);\n\nexport function useDataItemDetails<T>() {\n\tconst context = useContext(DataItemDetailsContext);\n\treturn context?.details as T;\n}\n\nexport function DetailsProvider({\n\tchildren,\n\tdataItem,\n\tfields,\n}: {\n\tdataItem: ScorecardDataSource;\n\tchildren: ReactNode;\n\tfields?: string[];\n}) {\n\tconst { loading, data, error } = useDataQuery<{\n\t\tdetails: Record<string, unknown>;\n\t}>(generateQuery(dataItem.type, { fields }), {\n\t\tvariables: { id: dataItem.id },\n\t});\n\n\tif (loading) {\n\t\treturn <>{i18n.t(\"Loading...\")}</>;\n\t}\n\n\tif (error) {\n\t\treturn <div>{error.message}</div>;\n\t}\n\n\tif (!data) {\n\t\treturn <div>{i18n.t(\"Could not get data\")}</div>;\n\t}\n\n\treturn (\n\t\t<DataItemDetailsContext.Provider value={data}>\n\t\t\t{children}\n\t\t</DataItemDetailsContext.Provider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardTable/FurtherAnalysisVisualization.tsx"],"names":["orgUnits","getOrgUnitsForAnalytics","jsx","Visualization"],"mappings":";;;;;;AAUO,SAAS,4BAA6B,CAAA;AAAA,EAC5C;AACD,CAAsC,EAAA;AACrC,EAAM,MAAAA,UAAA,GAAWC,gCAAwB,CAAA,MAAA,CAAO,gBAAgB,CAAA;AAChE,EAAM,MAAA,OAAA,GAAU,OAAO,eAAgB,CAAA,OAAA,CAAQ,IAAI,CAAC,EAAE,EAAG,EAAA,KAAM,EAAE,CAAA;AACjE,EAAM,MAAA,SAAA,GAAY,OAAO,WAAY,CAAA,GAAA,CAAI,CAAC,EAAE,EAAA,OAAS,EAAE,CAAA;AACvD,EACC,uBAAAC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,KAAO,EAAA,MAAA;AAAA,QACP,MAAQ,EAAA,GAAA;AAAA,QACR,OAAS,EAAA,EAAA;AAAA,QACT,SAAW,EAAA,GAAA;AAAA,QACX,SAAW,EAAA;AAAA,OACZ;AAAA,MAEA,QAAA,kBAAAA,cAAA;AAAA,QAACC,4BAAA;AAAA,QAAA;AAAA,UACA,MAAQ,EAAA,GAAA;AAAA,UACR,MAAQ,EAAA;AAAA,YACP,OAAA,EAAS,CAAC,IAAI,CAAA;AAAA,YACd,OAAA,EAAS,CAAC,IAAI,CAAA;AAAA,YACd,IAAA,EAAM,CAAC,IAAI;AAAA,WACZ;AAAA,UACA,WAAW,EAAA,IAAA;AAAA,UACX,mBAAmB,EAAA,IAAA;AAAA,UACnB,kBAAkB,EAAA,IAAA;AAAA,UAClB,wBAA0B,EAAA,OAAA;AAAA,UAC1B,UAAY,EAAA;AAAA,YACX,EAAI,EAAAH,UAAA;AAAA,YACJ,EAAI,EAAA,OAAA;AAAA,YACJ,EAAI,EAAA;AAAA,WACL;AAAA,UACA,MAAQ,EAAA;AAAA,YACP,KAAO,EAAA;AAAA,cACN,IAAM,EAAA,QAAA;AAAA,cACN,MAAQ,EAAA;AAAA,gBACP,MAAA,EAAQ,CAAC,IAAI,CAAA;AAAA,gBACb,QAAA,EAAU,CAAC,IAAI,CAAA;AAAA,gBACf,MAAA,EAAQ,CAAC,IAAI;AAAA;AACd,aACD;AAAA,YACA,YAAY,EAAC;AAAA,YACb,GAAK,EAAA;AAAA,cACJ,eAAiB,EAAA,IAAA;AAAA,cACjB,cAAgB,EAAA,MAAA,CAAO,WAAY,CAAA,GAAA,CAAI,CAAC,IAAU,MAAA;AAAA,gBACjD,OAAS,EAAA,IAAA;AAAA,gBACT,MAAM,IAAK,CAAA,KAAA;AAAA,gBACX,IAAI,IAAK,CAAA,EAAA;AAAA,gBACT,IAAM,EAAA,YAAA;AAAA,gBACN,QAAU,EAAA;AAAA,kBACT,MAAM,IAAK,CAAA,IAAA;AAAA,kBACX,aAAa,IAAK,CAAA,KAAA;AAAA,kBAClB,IAAI,IAAK,CAAA,EAAA;AAAA,kBACT,YAAc,EAAA;AAAA,oBACb,UAAY,EAAA,QAAA;AAAA,oBACZ,KAAO,EAAA;AAAA;AACR;AACD,eACC,CAAA;AAAA;AACH;AACD;AAAA;AACD;AAAA,GACD;AAEF","file":"FurtherAnalysisVisualization.js","sourcesContent":["import { getOrgUnitsForAnalytics } from \"../../utils/orgUnits\";\nimport type { FurtherAnalysisConfig } from \"./components/FurtherAnalysisModal\";\nimport { Visualization } from \"@hisptz/dhis2-analytics\";\n\nexport type DataItemType = \"dataElement\" | \"indicator\" | \"programIndicator\";\n\nexport interface FurtherAnalysisVisualizationProps {\n\tconfig: FurtherAnalysisConfig;\n}\n\nexport function FurtherAnalysisVisualization({\n\tconfig,\n}: FurtherAnalysisVisualizationProps) {\n\tconst orgUnits = getOrgUnitsForAnalytics(config.orgUnitSelection);\n\tconst periods = config.periodSelection.periods.map(({ id }) => id);\n\tconst dataItems = config.dataSources.map(({ id }) => id);\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: 400,\n\t\t\t\tpadding: 32,\n\t\t\t\tminHeight: 500,\n\t\t\t\tmaxHeight: \"80dvh\",\n\t\t\t}}\n\t\t>\n\t\t\t<Visualization\n\t\t\t\theight={400}\n\t\t\t\tlayout={{\n\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\tfilters: [\"pe\"],\n\t\t\t\t\trows: [\"ou\"],\n\t\t\t\t}}\n\t\t\t\tshowToolbar\n\t\t\t\tshowOrgUnitSelector\n\t\t\t\tshowPeriodSelector\n\t\t\t\tdefaultVisualizationType={\"chart\"}\n\t\t\t\tdimensions={{\n\t\t\t\t\tou: orgUnits,\n\t\t\t\t\tpe: periods,\n\t\t\t\t\tdx: dataItems,\n\t\t\t\t}}\n\t\t\t\tconfig={{\n\t\t\t\t\tchart: {\n\t\t\t\t\t\ttype: \"column\",\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tfilter: [\"pe\"],\n\t\t\t\t\t\t\tcategory: [\"ou\"],\n\t\t\t\t\t\t\tseries: [\"dx\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tpivotTable: {},\n\t\t\t\t\tmap: {\n\t\t\t\t\t\tshowPeriodTitle: true,\n\t\t\t\t\t\tthematicLayers: config.dataSources.map((item) => ({\n\t\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\t\tname: item.label,\n\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\ttype: \"choropleth\",\n\t\t\t\t\t\t\tdataItem: {\n\t\t\t\t\t\t\t\ttype: item.type as DataItemType,\n\t\t\t\t\t\t\t\tdisplayName: item.label!,\n\t\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\t\tlegendConfig: {\n\t\t\t\t\t\t\t\t\tcolorClass: \"YlOrBr\",\n\t\t\t\t\t\t\t\t\tscale: 7,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})),\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardTable/FurtherAnalysisVisualization.tsx"],"names":["orgUnits","getOrgUnitsForAnalytics","jsx","Visualization"],"mappings":";;;;;;AAUO,SAAS,4BAAA,CAA6B;AAAA,EAC5C;AACD,CAAA,EAAsC;AACrC,EAAA,MAAMA,UAAA,GAAWC,gCAAA,CAAwB,MAAA,CAAO,gBAAgB,CAAA;AAChE,EAAA,MAAM,OAAA,GAAU,OAAO,eAAA,CAAgB,OAAA,CAAQ,IAAI,CAAC,EAAE,EAAA,EAAG,KAAM,EAAE,CAAA;AACjE,EAAA,MAAM,SAAA,GAAY,OAAO,WAAA,CAAY,GAAA,CAAI,CAAC,EAAE,EAAA,OAAS,EAAE,CAAA;AACvD,EAAA,uBACCC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,EAAA;AAAA,QACT,SAAA,EAAW,GAAA;AAAA,QACX,SAAA,EAAW;AAAA,OACZ;AAAA,MAEA,QAAA,kBAAAA,cAAA;AAAA,QAACC,4BAAA;AAAA,QAAA;AAAA,UACA,MAAA,EAAQ,GAAA;AAAA,UACR,MAAA,EAAQ;AAAA,YACP,OAAA,EAAS,CAAC,IAAI,CAAA;AAAA,YACd,OAAA,EAAS,CAAC,IAAI,CAAA;AAAA,YACd,IAAA,EAAM,CAAC,IAAI;AAAA,WACZ;AAAA,UACA,WAAA,EAAW,IAAA;AAAA,UACX,mBAAA,EAAmB,IAAA;AAAA,UACnB,kBAAA,EAAkB,IAAA;AAAA,UAClB,wBAAA,EAA0B,OAAA;AAAA,UAC1B,UAAA,EAAY;AAAA,YACX,EAAA,EAAIH,UAAA;AAAA,YACJ,EAAA,EAAI,OAAA;AAAA,YACJ,EAAA,EAAI;AAAA,WACL;AAAA,UACA,MAAA,EAAQ;AAAA,YACP,KAAA,EAAO;AAAA,cACN,IAAA,EAAM,QAAA;AAAA,cACN,MAAA,EAAQ;AAAA,gBACP,MAAA,EAAQ,CAAC,IAAI,CAAA;AAAA,gBACb,QAAA,EAAU,CAAC,IAAI,CAAA;AAAA,gBACf,MAAA,EAAQ,CAAC,IAAI;AAAA;AACd,aACD;AAAA,YACA,YAAY,EAAC;AAAA,YACb,GAAA,EAAK;AAAA,cACJ,eAAA,EAAiB,IAAA;AAAA,cACjB,cAAA,EAAgB,MAAA,CAAO,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,gBACjD,OAAA,EAAS,IAAA;AAAA,gBACT,MAAM,IAAA,CAAK,KAAA;AAAA,gBACX,IAAI,IAAA,CAAK,EAAA;AAAA,gBACT,IAAA,EAAM,YAAA;AAAA,gBACN,QAAA,EAAU;AAAA,kBACT,MAAM,IAAA,CAAK,IAAA;AAAA,kBACX,aAAa,IAAA,CAAK,KAAA;AAAA,kBAClB,IAAI,IAAA,CAAK,EAAA;AAAA,kBACT,YAAA,EAAc;AAAA,oBACb,UAAA,EAAY,QAAA;AAAA,oBACZ,KAAA,EAAO;AAAA;AACR;AACD,eACD,CAAE;AAAA;AACH;AACD;AAAA;AACD;AAAA,GACD;AAEF","file":"FurtherAnalysisVisualization.js","sourcesContent":["import { getOrgUnitsForAnalytics } from \"../../utils/orgUnits\";\nimport type { FurtherAnalysisConfig } from \"./components/FurtherAnalysisModal\";\nimport { Visualization } from \"@hisptz/dhis2-analytics\";\n\nexport type DataItemType = \"dataElement\" | \"indicator\" | \"programIndicator\";\n\nexport interface FurtherAnalysisVisualizationProps {\n\tconfig: FurtherAnalysisConfig;\n}\n\nexport function FurtherAnalysisVisualization({\n\tconfig,\n}: FurtherAnalysisVisualizationProps) {\n\tconst orgUnits = getOrgUnitsForAnalytics(config.orgUnitSelection);\n\tconst periods = config.periodSelection.periods.map(({ id }) => id);\n\tconst dataItems = config.dataSources.map(({ id }) => id);\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: 400,\n\t\t\t\tpadding: 32,\n\t\t\t\tminHeight: 500,\n\t\t\t\tmaxHeight: \"80dvh\",\n\t\t\t}}\n\t\t>\n\t\t\t<Visualization\n\t\t\t\theight={400}\n\t\t\t\tlayout={{\n\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\tfilters: [\"pe\"],\n\t\t\t\t\trows: [\"ou\"],\n\t\t\t\t}}\n\t\t\t\tshowToolbar\n\t\t\t\tshowOrgUnitSelector\n\t\t\t\tshowPeriodSelector\n\t\t\t\tdefaultVisualizationType={\"chart\"}\n\t\t\t\tdimensions={{\n\t\t\t\t\tou: orgUnits,\n\t\t\t\t\tpe: periods,\n\t\t\t\t\tdx: dataItems,\n\t\t\t\t}}\n\t\t\t\tconfig={{\n\t\t\t\t\tchart: {\n\t\t\t\t\t\ttype: \"column\",\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tfilter: [\"pe\"],\n\t\t\t\t\t\t\tcategory: [\"ou\"],\n\t\t\t\t\t\t\tseries: [\"dx\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tpivotTable: {},\n\t\t\t\t\tmap: {\n\t\t\t\t\t\tshowPeriodTitle: true,\n\t\t\t\t\t\tthematicLayers: config.dataSources.map((item) => ({\n\t\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\t\tname: item.label,\n\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\ttype: \"choropleth\",\n\t\t\t\t\t\t\tdataItem: {\n\t\t\t\t\t\t\t\ttype: item.type as DataItemType,\n\t\t\t\t\t\t\t\tdisplayName: item.label!,\n\t\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\t\tlegendConfig: {\n\t\t\t\t\t\t\t\t\tcolorClass: \"YlOrBr\",\n\t\t\t\t\t\t\t\t\tscale: 7,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t})),\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardTable/ScorecardTable.tsx"],"names":["memo","useRef","useDragDropManager","useTransition","useScorecardViewStateEngine","useEffect","jsx","CircularLoader","jsxs","DataTable","ColGroup","TableHeader","TableBody","TableFoot","PaginatedToolbar"],"mappings":";;;;;;;;;;;;;AAYO,MAAM,cAAiB,GAAAA,UAAA,CAAK,SAAS,cAAA,CAC3C,KACC,EAAA;AACD,EAAM,MAAA,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM,UAAUC,2BAAmB,EAAA;AACnC,EAAA,MAAM,CAAC,SAAA,EAAW,eAAe,CAAA,GAAIC,mBAAc,EAAA;AACnD,EAAA,MAAM,kBAAkBC,yCAA4B,EAAA;AAEpD,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,OAAO,OAAQ,CAAA,UAAA,EAAa,CAAA,sBAAA,CAAuB,MAAM;AACxD,MAAA,MAAM,UAAa,GAAA,OAAA,CAAQ,UAAW,EAAA,CAAE,aAAc,EAAA;AACtD,MAAA,IAAI,UAAY,EAAA;AACf,QAAA,eAAA,CAAgB,MAAM;AACrB,UAAgB,eAAA,CAAA,YAAA;AAAA,YACf,gBAAA;AAAA,YACA,CAAC,gBAAgB,OAAQ,CAAA;AAAA,WAC1B;AAAA,SACA,CAAA;AAAA;AACF,KACA,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,SAAW,EAAA;AACd,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;AAAA,SACjB;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAACC,iBAAe,EAAA,EAAA,KAAA,EAAK,IAAC,EAAA;AAAA;AAAA,KACvB;AAAA;AAIF,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,KAAA,EAAO,KAAM,CAAA,KAAA,IAAS,KAAM,CAAA,WAAA;AAAA,QAC5B,QAAQ,KAAM,CAAA;AAAA,OACf;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA;AAAA,UAACC,YAAA;AAAA,UAAA;AAAA,YACA,MAAO,EAAA,MAAA;AAAA,YACN,GAAG,KAAA;AAAA,YAEJ,GAAK,EAAA,QAAA;AAAA,YAEL,QAAA,EAAA;AAAA,8BAAAH,cAAA,CAACI,iBAAS,EAAA,EAAA,CAAA;AAAA,6CACTC,uBAAY,EAAA,EAAA,CAAA;AAAA,8BACbL,cAAA,CAACM,uBAAU,QAAoB,EAAA,CAAA;AAAA,6CAC9BC,mBAAU,EAAA,EAAA;AAAA;AAAA;AAAA,SACZ;AAAA,uCACCC,iCAAiB,EAAA,EAAA;AAAA;AAAA;AAAA,GACnB;AAEF,CAAC","file":"ScorecardTable.js","sourcesContent":["import { CircularLoader, DataTable, type DataTableProps } from \"@dhis2/ui\";\nimport { TableHeader } from \"./components/TableHeader\";\nimport { TableBody } from \"./components/TableBody\";\nimport { TableFoot } from \"./components/TableFoot\";\nimport { memo, useEffect, useRef, useTransition } from \"react\";\nimport { PaginatedToolbar } from \"./components/PaginatedToolbar\";\nimport { useDragDropManager } from \"react-dnd\";\nimport { ColGroup } from \"../ColGroup\";\nimport { useScorecardViewStateEngine } from \"../StateProvider\";\n\nexport interface ScorecardTableProps extends Omit<DataTableProps, \"children\"> {}\n\nexport const ScorecardTable = memo(function TableComponent(\n\tprops: ScorecardTableProps,\n) {\n\tconst tableRef = useRef<HTMLTableElement>(null);\n\tconst manager = useDragDropManager();\n\tconst [isPending, startTransition] = useTransition();\n\tconst viewStateEngine = useScorecardViewStateEngine();\n\n\tuseEffect(() => {\n\t\treturn manager.getMonitor().subscribeToStateChange(() => {\n\t\t\tconst dropResult = manager.getMonitor().getDropResult();\n\t\t\tif (dropResult) {\n\t\t\t\tstartTransition(() => {\n\t\t\t\t\tviewStateEngine.updateOption(\n\t\t\t\t\t\t\"showDataInRows\",\n\t\t\t\t\t\t!viewStateEngine.options.showDataInRows,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}, [manager]);\n\n\tif (isPending) {\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\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: props.width ?? props.scrollWidth,\n\t\t\t\theight: props.scrollHeight,\n\t\t\t}}\n\t\t>\n\t\t\t<DataTable\n\t\t\t\tlayout=\"auto\"\n\t\t\t\t{...props} /*\n // @ts-ignore */\n\t\t\t\tref={tableRef}\n\t\t\t>\n\t\t\t\t<ColGroup />\n\t\t\t\t<TableHeader />\n\t\t\t\t<TableBody tableRef={tableRef} />\n\t\t\t\t<TableFoot />\n\t\t\t</DataTable>\n\t\t\t<PaginatedToolbar />\n\t\t</div>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardTable/ScorecardTable.tsx"],"names":["memo","useRef","useDragDropManager","useTransition","useScorecardViewStateEngine","useEffect","jsx","CircularLoader","jsxs","DataTable","ColGroup","TableHeader","TableBody","TableFoot","PaginatedToolbar"],"mappings":";;;;;;;;;;;;;AAYO,MAAM,cAAA,GAAiBA,UAAA,CAAK,SAAS,cAAA,CAC3C,KAAA,EACC;AACD,EAAA,MAAM,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM,UAAUC,2BAAA,EAAmB;AACnC,EAAA,MAAM,CAAC,SAAA,EAAW,eAAe,CAAA,GAAIC,mBAAA,EAAc;AACnD,EAAA,MAAM,kBAAkBC,yCAAA,EAA4B;AAEpD,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,OAAO,OAAA,CAAQ,UAAA,EAAW,CAAE,sBAAA,CAAuB,MAAM;AACxD,MAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,UAAA,EAAW,CAAE,aAAA,EAAc;AACtD,MAAA,IAAI,UAAA,EAAY;AACf,QAAA,eAAA,CAAgB,MAAM;AACrB,UAAA,eAAA,CAAgB,YAAA;AAAA,YACf,gBAAA;AAAA,YACA,CAAC,gBAAgB,OAAA,CAAQ;AAAA,WAC1B;AAAA,QACD,CAAC,CAAA;AAAA,MACF;AAAA,IACD,CAAC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,SAAA,EAAW;AACd,IAAA,uBACCC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACN,MAAA,EAAQ,MAAA;AAAA,UACR,KAAA,EAAO,MAAA;AAAA,UACP,OAAA,EAAS,MAAA;AAAA,UACT,UAAA,EAAY,QAAA;AAAA,UACZ,cAAA,EAAgB;AAAA,SACjB;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAACC,iBAAA,EAAA,EAAe,KAAA,EAAK,IAAA,EAAC;AAAA;AAAA,KACvB;AAAA,EAEF;AAEA,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,KAAA,EAAO,KAAA,CAAM,KAAA,IAAS,KAAA,CAAM,WAAA;AAAA,QAC5B,QAAQ,KAAA,CAAM;AAAA,OACf;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA;AAAA,UAACC,YAAA;AAAA,UAAA;AAAA,YACA,MAAA,EAAO,MAAA;AAAA,YACN,GAAG,KAAA;AAAA,YAEJ,GAAA,EAAK,QAAA;AAAA,YAEL,QAAA,EAAA;AAAA,8BAAAH,cAAA,CAACI,iBAAA,EAAA,EAAS,CAAA;AAAA,6CACTC,uBAAA,EAAA,EAAY,CAAA;AAAA,8BACbL,cAAA,CAACM,uBAAU,QAAA,EAAoB,CAAA;AAAA,6CAC9BC,mBAAA,EAAA,EAAU;AAAA;AAAA;AAAA,SACZ;AAAA,uCACCC,iCAAA,EAAA,EAAiB;AAAA;AAAA;AAAA,GACnB;AAEF,CAAC","file":"ScorecardTable.js","sourcesContent":["import { CircularLoader, DataTable, type DataTableProps } from \"@dhis2/ui\";\nimport { TableHeader } from \"./components/TableHeader\";\nimport { TableBody } from \"./components/TableBody\";\nimport { TableFoot } from \"./components/TableFoot\";\nimport { memo, useEffect, useRef, useTransition } from \"react\";\nimport { PaginatedToolbar } from \"./components/PaginatedToolbar\";\nimport { useDragDropManager } from \"react-dnd\";\nimport { ColGroup } from \"../ColGroup\";\nimport { useScorecardViewStateEngine } from \"../StateProvider\";\n\nexport interface ScorecardTableProps extends Omit<DataTableProps, \"children\"> {}\n\nexport const ScorecardTable = memo(function TableComponent(\n\tprops: ScorecardTableProps,\n) {\n\tconst tableRef = useRef<HTMLTableElement>(null);\n\tconst manager = useDragDropManager();\n\tconst [isPending, startTransition] = useTransition();\n\tconst viewStateEngine = useScorecardViewStateEngine();\n\n\tuseEffect(() => {\n\t\treturn manager.getMonitor().subscribeToStateChange(() => {\n\t\t\tconst dropResult = manager.getMonitor().getDropResult();\n\t\t\tif (dropResult) {\n\t\t\t\tstartTransition(() => {\n\t\t\t\t\tviewStateEngine.updateOption(\n\t\t\t\t\t\t\"showDataInRows\",\n\t\t\t\t\t\t!viewStateEngine.options.showDataInRows,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}, [manager]);\n\n\tif (isPending) {\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\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: props.width ?? props.scrollWidth,\n\t\t\t\theight: props.scrollHeight,\n\t\t\t}}\n\t\t>\n\t\t\t<DataTable\n\t\t\t\tlayout=\"auto\"\n\t\t\t\t{...props} /*\n // @ts-ignore */\n\t\t\t\tref={tableRef}\n\t\t\t>\n\t\t\t\t<ColGroup />\n\t\t\t\t<TableHeader />\n\t\t\t\t<TableBody tableRef={tableRef} />\n\t\t\t\t<TableFoot />\n\t\t\t</DataTable>\n\t\t\t<PaginatedToolbar />\n\t\t</div>\n\t);\n});\n"]}