@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Scorecard.tsx"],"names":["jsx","TableStateProvider","DndProvider","HTML5Backend","ScorecardTable"],"mappings":";;;;;;;;AAaO,SAAS,SAAA,CAAU,EAAE,UAAA,EAA4C,EAAA;AACvE,EAAA,uBACEA,cAAA,CAAAC,6BAAA,EAAA,EACA,QAAC,kBAAAD,cAAA,CAAAE,oBAAA,EAAA,EAAY,OAAS,EAAAC,iCAAA,EACrB,QAAC,kBAAAH,cAAA,CAAAI,6BAAA,EAAA,EAAgB,GAAI,UAAA,IAAc,EAAC,EAAI,GACzC,CACD,EAAA,CAAA;AAEF","file":"Scorecard.js","sourcesContent":["import { ReactElement } from \"react\";\nimport { TableStateProvider } from \"./components\";\nimport {\n\tScorecardTable,\n\ttype ScorecardTableProps,\n} from \"./components/ScorecardTable\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\n\nexport interface ScorecardProps {\n\ttableProps?: ScorecardTableProps;\n}\n\nexport function Scorecard({ tableProps }: ScorecardProps): ReactElement {\n\treturn (\n\t\t<TableStateProvider>\n\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t<ScorecardTable {...(tableProps ?? {})} />\n\t\t\t</DndProvider>\n\t\t</TableStateProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../src/Scorecard.tsx"],"names":["jsx","TableStateProvider","DndProvider","HTML5Backend","ScorecardTable"],"mappings":";;;;;;;;AAaO,SAAS,SAAA,CAAU,EAAE,UAAA,EAAW,EAAiC;AACvE,EAAA,uBACCA,cAAA,CAACC,6BAAA,EAAA,EACA,QAAA,kBAAAD,cAAA,CAACE,oBAAA,EAAA,EAAY,OAAA,EAASC,iCAAA,EACrB,QAAA,kBAAAH,cAAA,CAACI,6BAAA,EAAA,EAAgB,GAAI,UAAA,IAAc,EAAC,EAAI,GACzC,CAAA,EACD,CAAA;AAEF","file":"Scorecard.js","sourcesContent":["import { ReactElement } from \"react\";\nimport { TableStateProvider } from \"./components\";\nimport {\n\tScorecardTable,\n\ttype ScorecardTableProps,\n} from \"./components/ScorecardTable\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\n\nexport interface ScorecardProps {\n\ttableProps?: ScorecardTableProps;\n}\n\nexport function Scorecard({ tableProps }: ScorecardProps): ReactElement {\n\treturn (\n\t\t<TableStateProvider>\n\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t<ScorecardTable {...(tableProps ?? {})} />\n\t\t\t</DndProvider>\n\t\t</TableStateProvider>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ColGroup.tsx"],"names":["useScorecardViewStateValue","jsx"],"mappings":";;;;;AAEO,SAAS,QAAW,GAAA;AAC1B,EAAM,MAAA,WAAA,GAAcA,qCAAoC,WAAW,CAAA;AACnE,EAAM,MAAA,UAAA,GAAaA,qCAAoC,YAAY,CAAA;AAEnE,EAAA,IAAI,CAAC,WAAa,EAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uCACE,UACC,EAAA,EAAA,QAAA,EAAA;AAAA,IAAc,UAAA,oBAAAC,cAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAI,EAAA,CAAA;AAAA,oBAC/BA,cAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA;AAAA,GACnB,EAAA,CAAA;AAEF","file":"ColGroup.js","sourcesContent":["import { useScorecardViewStateValue } from \"../utils/viewState\";\n\nexport function ColGroup() {\n\tconst inPrintMode = useScorecardViewStateValue<boolean>(\"printMode\");\n\tconst itemNumber = useScorecardViewStateValue<boolean>(\"itemNumber\");\n\n\tif (!inPrintMode) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<colgroup>\n\t\t\t{itemNumber && <col width={48} />}\n\t\t\t<col width=\"auto\" />\n\t\t</colgroup>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../src/components/ColGroup.tsx"],"names":["useScorecardViewStateValue","jsx"],"mappings":";;;;;AAEO,SAAS,QAAA,GAAW;AAC1B,EAAA,MAAM,WAAA,GAAcA,qCAAoC,WAAW,CAAA;AACnE,EAAA,MAAM,UAAA,GAAaA,qCAAoC,YAAY,CAAA;AAEnE,EAAA,IAAI,CAAC,WAAA,EAAa;AACjB,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,uCACE,UAAA,EAAA,EACC,QAAA,EAAA;AAAA,IAAA,UAAA,oBAAcC,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAA,EAAI,CAAA;AAAA,oBAC/BA,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,MAAA,EAAO;AAAA,GAAA,EACnB,CAAA;AAEF","file":"ColGroup.js","sourcesContent":["import { useScorecardViewStateValue } from \"../utils/viewState\";\n\nexport function ColGroup() {\n\tconst inPrintMode = useScorecardViewStateValue<boolean>(\"printMode\");\n\tconst itemNumber = useScorecardViewStateValue<boolean>(\"itemNumber\");\n\n\tif (!inPrintMode) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<colgroup>\n\t\t\t{itemNumber && <col width={48} />}\n\t\t\t<col width=\"auto\" />\n\t\t</colgroup>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ConfigProvider.tsx"],"names":["createContext","useContext","i18n","memo"],"mappings":";;;;;;;;;;AAUA,MAAM,sBAAA,GAAyBA,oBAAsC,IAAI,CAAA;AAElE,SAAS,kBAAqB,GAAA;AACpC,EAAM,MAAA,MAAA,GAASC,iBAAW,sBAAsB,CAAA;AAChD,EAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,IAAM,MAAA,KAAA;AAAA,MACLC,qBAAK,CAAA,CAAA;AAAA,QACJ;AAAA;AACD,KACD;AAAA;AAED,EAAO,OAAA,MAAA;AACR;AAEO,MAAM,0BAGRC,UAAK,CAAA,CAAC,EAAE,MAAA,EAAQ,UAAe,KAAA;AACnC,EAAA,sCACE,sBAAuB,CAAA,QAAA,EAAvB,EAAgC,KAAA,EAAO,QACtC,QACF,EAAA,CAAA;AAEF,CAAC","file":"ConfigProvider.js","sourcesContent":["import {\n\tcreateContext,\n\ttype FC,\n\tmemo,\n\ttype ReactNode,\n\tuseContext,\n} from \"react\";\nimport type { ScorecardConfig } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nconst ScorecardConfigContext = createContext<ScorecardConfig | null>(null);\n\nexport function useScorecardConfig() {\n\tconst config = useContext(ScorecardConfigContext);\n\tif (!config) {\n\t\tthrow Error(\n\t\t\ti18n.t(\n\t\t\t\t\"useScorecardConfig should be used inside a Scorecard Context\",\n\t\t\t),\n\t\t);\n\t}\n\treturn config;\n}\n\nexport const ScorecardConfigProvider: FC<{\n\tconfig: ScorecardConfig;\n\tchildren: ReactNode;\n}> = memo(({ config, children }) => {\n\treturn (\n\t\t<ScorecardConfigContext.Provider value={config}>\n\t\t\t{children}\n\t\t</ScorecardConfigContext.Provider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../src/components/ConfigProvider.tsx"],"names":["createContext","useContext","i18n","memo"],"mappings":";;;;;;;;;;AAUA,MAAM,sBAAA,GAAyBA,oBAAsC,IAAI,CAAA;AAElE,SAAS,kBAAA,GAAqB;AACpC,EAAA,MAAM,MAAA,GAASC,iBAAW,sBAAsB,CAAA;AAChD,EAAA,IAAI,CAAC,MAAA,EAAQ;AACZ,IAAA,MAAM,KAAA;AAAA,MACLC,qBAAA,CAAK,CAAA;AAAA,QACJ;AAAA;AACD,KACD;AAAA,EACD;AACA,EAAA,OAAO,MAAA;AACR;AAEO,MAAM,0BAGRC,UAAA,CAAK,CAAC,EAAE,MAAA,EAAQ,UAAS,KAAM;AACnC,EAAA,sCACE,sBAAA,CAAuB,QAAA,EAAvB,EAAgC,KAAA,EAAO,QACtC,QAAA,EACF,CAAA;AAEF,CAAC","file":"ConfigProvider.js","sourcesContent":["import {\n\tcreateContext,\n\ttype FC,\n\tmemo,\n\ttype ReactNode,\n\tuseContext,\n} from \"react\";\nimport type { ScorecardConfig } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nconst ScorecardConfigContext = createContext<ScorecardConfig | null>(null);\n\nexport function useScorecardConfig() {\n\tconst config = useContext(ScorecardConfigContext);\n\tif (!config) {\n\t\tthrow Error(\n\t\t\ti18n.t(\n\t\t\t\t\"useScorecardConfig should be used inside a Scorecard Context\",\n\t\t\t),\n\t\t);\n\t}\n\treturn config;\n}\n\nexport const ScorecardConfigProvider: FC<{\n\tconfig: ScorecardConfig;\n\tchildren: ReactNode;\n}> = memo(({ config, children }) => {\n\treturn (\n\t\t<ScorecardConfigContext.Provider value={config}>\n\t\t\t{children}\n\t\t</ScorecardConfigContext.Provider>\n\t);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/DataProvider.tsx"],"names":["createContext","createScorecardDataEngine","useContext","memo","ScorecardDataProvider","dataEngine","useRef","useGetScorecardData","jsx"],"mappings":";;;;;;;AAWA,MAAM,uBAAuBA,mBAA6B,CAAA;AAAA,EACzD,MAAMC,oCAA0B;AACjC,CAAC,CAAA;AAEM,SAAS,gBAAmB,GAAA;AAClC,EAAA,OAAOC,iBAAW,oBAAoB,CAAA;AACvC;AAEa,MAAA,qBAAA,GAAwBC,UAAK,CAAA,SAASC,sBAAsB,CAAA;AAAA,EACxE;AACD,CAEG,EAAA;AACF,EAAM,MAAAC,YAAA,GAAaC,YAA4B,CAAAL,oCAAA,EAA2B,CAAA;AAC1E,EAAAM,wBAAA,CAAoBF,aAAW,OAAO,CAAA;AAEtC,EACC,uBAAAG,cAAA;AAAA,IAAC,oBAAqB,CAAA,QAAA;AAAA,IAArB;AAAA,MACA,KAAO,EAAA;AAAA,QACN,MAAMH,YAAW,CAAA;AAAA,OAClB;AAAA,MAEC;AAAA;AAAA,GACF;AAEF,CAAC","file":"DataProvider.js","sourcesContent":["import { createContext, memo, type ReactNode, useContext, useRef } from \"react\";\nimport { useGetScorecardData } from \"../hooks/data\";\nimport {\n\tcreateScorecardDataEngine,\n\ttype ScorecardDataEngine,\n} from \"../utils/dataEngine\";\n\nexport interface ScorecardData {\n\tdata: ScorecardDataEngine;\n}\n\nconst ScorecardDataContext = createContext<ScorecardData>({\n\tdata: createScorecardDataEngine(),\n});\n\nexport function useScorecardData() {\n\treturn useContext(ScorecardDataContext);\n}\n\nexport const ScorecardDataProvider = memo(function ScorecardDataProvider({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst dataEngine = useRef<ScorecardDataEngine>(createScorecardDataEngine());\n\tuseGetScorecardData(dataEngine.current);\n\n\treturn (\n\t\t<ScorecardDataContext.Provider\n\t\t\tvalue={{\n\t\t\t\tdata: dataEngine.current,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</ScorecardDataContext.Provider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../src/components/DataProvider.tsx"],"names":["createContext","createScorecardDataEngine","useContext","memo","ScorecardDataProvider","dataEngine","useRef","useGetScorecardData","jsx"],"mappings":";;;;;;;AAWA,MAAM,uBAAuBA,mBAAA,CAA6B;AAAA,EACzD,MAAMC,oCAAA;AACP,CAAC,CAAA;AAEM,SAAS,gBAAA,GAAmB;AAClC,EAAA,OAAOC,iBAAW,oBAAoB,CAAA;AACvC;AAEO,MAAM,qBAAA,GAAwBC,UAAA,CAAK,SAASC,sBAAAA,CAAsB;AAAA,EACxE;AACD,CAAA,EAEG;AACF,EAAA,MAAMC,YAAA,GAAaC,YAAA,CAA4BL,oCAAA,EAA2B,CAAA;AAC1E,EAAAM,wBAAA,CAAoBF,aAAW,OAAO,CAAA;AAEtC,EAAA,uBACCG,cAAA;AAAA,IAAC,oBAAA,CAAqB,QAAA;AAAA,IAArB;AAAA,MACA,KAAA,EAAO;AAAA,QACN,MAAMH,YAAA,CAAW;AAAA,OAClB;AAAA,MAEC;AAAA;AAAA,GACF;AAEF,CAAC","file":"DataProvider.js","sourcesContent":["import { createContext, memo, type ReactNode, useContext, useRef } from \"react\";\nimport { useGetScorecardData } from \"../hooks/data\";\nimport {\n\tcreateScorecardDataEngine,\n\ttype ScorecardDataEngine,\n} from \"../utils/dataEngine\";\n\nexport interface ScorecardData {\n\tdata: ScorecardDataEngine;\n}\n\nconst ScorecardDataContext = createContext<ScorecardData>({\n\tdata: createScorecardDataEngine(),\n});\n\nexport function useScorecardData() {\n\treturn useContext(ScorecardDataContext);\n}\n\nexport const ScorecardDataProvider = memo(function ScorecardDataProvider({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst dataEngine = useRef<ScorecardDataEngine>(createScorecardDataEngine());\n\tuseGetScorecardData(dataEngine.current);\n\n\treturn (\n\t\t<ScorecardDataContext.Provider\n\t\t\tvalue={{\n\t\t\t\tdata: dataEngine.current,\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</ScorecardDataContext.Provider>\n\t);\n});\n"]}
@@ -0,0 +1,66 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var legends = require('../../../utils/legends');
6
+ var MetaProvider = require('../../MetaProvider');
7
+ var ConfigProvider = require('../../ConfigProvider');
8
+ var ui = require('@dhis2/ui');
9
+
10
+ function HighlightedItem({
11
+ item,
12
+ data
13
+ }) {
14
+ const config = ConfigProvider.useScorecardConfig();
15
+ const meta = MetaProvider.useScorecardMeta();
16
+ const legendDefinition = react.useMemo(() => {
17
+ return data ? legends.getLegend({
18
+ dataSource: item,
19
+ value: parseFloat(data),
20
+ orgUnitLevels: meta.orgUnitLevels,
21
+ config
22
+ }) : void 0;
23
+ }, [item, data, meta, config]);
24
+ return /* @__PURE__ */ jsxRuntime.jsxs(
25
+ "div",
26
+ {
27
+ style: {
28
+ display: "flex",
29
+ gap: 16,
30
+ justifyContent: "space-between",
31
+ border: `1px solid ${ui.colors.grey500}`,
32
+ borderRadius: 4,
33
+ minHeight: 48,
34
+ alignItems: "center",
35
+ width: "100%"
36
+ },
37
+ children: [
38
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { padding: 8, fontSize: 14 }, children: item.label ?? item.name }),
39
+ /* @__PURE__ */ jsxRuntime.jsx(
40
+ "div",
41
+ {
42
+ style: {
43
+ minHeight: 48,
44
+ height: "100%",
45
+ width: 100,
46
+ display: "flex",
47
+ justifyContent: "center",
48
+ borderLeft: `1px solid ${ui.colors.grey500}`,
49
+ alignItems: "center",
50
+ padding: 8,
51
+ background: legendDefinition?.color,
52
+ color: legendDefinition?.color ? legends.getTextColorFromBackgroundColor(
53
+ legendDefinition?.color
54
+ ) : void 0
55
+ },
56
+ children: /* @__PURE__ */ jsxRuntime.jsx("b", { children: data })
57
+ }
58
+ )
59
+ ]
60
+ }
61
+ );
62
+ }
63
+
64
+ exports.HighlightedItem = HighlightedItem;
65
+ //# sourceMappingURL=HighlightedItem.js.map
66
+ //# sourceMappingURL=HighlightedItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/HighlightedItems/components/HighlightedItem.tsx"],"names":["useScorecardConfig","useScorecardMeta","useMemo","getLegend","jsxs","colors","jsx","getTextColorFromBackgroundColor"],"mappings":";;;;;;;;;AAUO,SAAS,eAAA,CAAgB;AAAA,EAC/B,IAAA;AAAA,EACA;AACD,CAAA,EAGG;AACF,EAAA,MAAM,SAASA,iCAAA,EAAmB;AAClC,EAAA,MAAM,OAAOC,6BAAA,EAAiB;AAC9B,EAAA,MAAM,gBAAA,GAAmBC,cAAQ,MAAM;AACtC,IAAA,OAAO,OACJC,iBAAA,CAAU;AAAA,MACV,UAAA,EAAY,IAAA;AAAA,MACZ,KAAA,EAAO,WAAW,IAAI,CAAA;AAAA,MACtB,eAAe,IAAA,CAAM,aAAA;AAAA,MACrB;AAAA,KACA,CAAA,GACA,MAAA;AAAA,EACJ,GAAG,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,MAAM,CAAC,CAAA;AAE7B,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,OAAA,EAAS,MAAA;AAAA,QACT,GAAA,EAAK,EAAA;AAAA,QACL,cAAA,EAAgB,eAAA;AAAA,QAChB,MAAA,EAAQ,CAAA,UAAA,EAAaC,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,QACnC,YAAA,EAAc,CAAA;AAAA,QACd,SAAA,EAAW,EAAA;AAAA,QACX,UAAA,EAAY,QAAA;AAAA,QACZ,KAAA,EAAO;AAAA,OACR;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,OAAA,EAAS,CAAA,EAAG,QAAA,EAAU,EAAA,EAAG,EACtC,QAAA,EAAA,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,IAAA,EACrB,CAAA;AAAA,wBACAA,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,SAAA,EAAW,EAAA;AAAA,cACX,MAAA,EAAQ,MAAA;AAAA,cACR,KAAA,EAAO,GAAA;AAAA,cACP,OAAA,EAAS,MAAA;AAAA,cACT,cAAA,EAAgB,QAAA;AAAA,cAChB,UAAA,EAAY,CAAA,UAAA,EAAaD,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,cACvC,UAAA,EAAY,QAAA;AAAA,cACZ,OAAA,EAAS,CAAA;AAAA,cACT,YAAY,gBAAA,EAAkB,KAAA;AAAA,cAC9B,KAAA,EAAO,kBAAkB,KAAA,GACtBE,uCAAA;AAAA,gBACA,gBAAA,EAAkB;AAAA,eACnB,GACC;AAAA,aACJ;AAAA,YAEA,QAAA,kBAAAD,cAAA,CAAC,OAAG,QAAA,EAAA,IAAA,EAAK;AAAA;AAAA;AACV;AAAA;AAAA,GACD;AAEF","file":"HighlightedItem.js","sourcesContent":["import type { ScorecardDataSource } from \"../../../schemas/config\";\nimport { useMemo } from \"react\";\nimport {\n\tgetLegend,\n\tgetTextColorFromBackgroundColor,\n} from \"../../../utils/legends\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { colors } from \"@dhis2/ui\";\n\nexport function HighlightedItem({\n\titem,\n\tdata,\n}: {\n\titem: ScorecardDataSource;\n\tdata?: string;\n}) {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst legendDefinition = useMemo(() => {\n\t\treturn data\n\t\t\t? getLegend({\n\t\t\t\t\tdataSource: item,\n\t\t\t\t\tvalue: parseFloat(data),\n\t\t\t\t\torgUnitLevels: meta!.orgUnitLevels,\n\t\t\t\t\tconfig: config!,\n\t\t\t\t})\n\t\t\t: undefined;\n\t}, [item, data, meta, config]);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tgap: 16,\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\tborder: `1px solid ${colors.grey500}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t\tminHeight: 48,\n\t\t\t\talignItems: \"center\",\n\t\t\t\twidth: \"100%\",\n\t\t\t}}\n\t\t>\n\t\t\t<span style={{ padding: 8, fontSize: 14 }}>\n\t\t\t\t{item.label ?? item.name}\n\t\t\t</span>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tminHeight: 48,\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\tjustifyContent: \"center\",\n\t\t\t\t\tborderLeft: `1px solid ${colors.grey500}`,\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tpadding: 8,\n\t\t\t\t\tbackground: legendDefinition?.color,\n\t\t\t\t\tcolor: legendDefinition?.color\n\t\t\t\t\t\t? getTextColorFromBackgroundColor(\n\t\t\t\t\t\t\t\tlegendDefinition?.color,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<b>{data}</b>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var MetaProvider = require('../../MetaProvider');
4
+ var ConfigProvider = require('../../ConfigProvider');
5
+ var react = require('react');
6
+ var appRuntime = require('@dhis2/app-runtime');
7
+
8
+ const query = {
9
+ data: {
10
+ resource: "analytics",
11
+ params: ({
12
+ periods,
13
+ orgUnits,
14
+ dataItems
15
+ }) => {
16
+ return {
17
+ skipMeta: true,
18
+ dimension: [`dx:${dataItems.join(";")}`],
19
+ filter: [`ou:${orgUnits.join(";")}`, `pe:${periods.join(";")}`]
20
+ };
21
+ }
22
+ }
23
+ };
24
+ function useHighlightedItemsData() {
25
+ const meta = MetaProvider.useScorecardMeta();
26
+ const { highlightedIndicators } = ConfigProvider.useScorecardConfig();
27
+ const dimensions = react.useMemo(() => {
28
+ const periods = meta?.periods.map((period) => period.uid) || [];
29
+ const orgUnits = meta?.orgUnits.map((orgUnit) => orgUnit.uid) || [];
30
+ const dataItems = highlightedIndicators.map(
31
+ (indicator) => indicator.id
32
+ );
33
+ return {
34
+ periods,
35
+ orgUnits,
36
+ dataItems
37
+ };
38
+ }, [highlightedIndicators, meta]);
39
+ const { data, loading, error } = appRuntime.useDataQuery(query, {
40
+ variables: dimensions
41
+ });
42
+ return {
43
+ data: data?.data,
44
+ loading,
45
+ error
46
+ };
47
+ }
48
+
49
+ exports.useHighlightedItemsData = useHighlightedItemsData;
50
+ //# sourceMappingURL=data.js.map
51
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/HighlightedItems/hooks/data.ts"],"names":["useScorecardMeta","useScorecardConfig","useMemo","useDataQuery"],"mappings":";;;;;;;AAMA,MAAM,KAAA,GAAa;AAAA,EAClB,IAAA,EAAM;AAAA,IACL,QAAA,EAAU,WAAA;AAAA,IACV,QAAQ,CAAC;AAAA,MACR,OAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACD,KAIM;AACL,MAAA,OAAO;AAAA,QACN,QAAA,EAAU,IAAA;AAAA,QACV,WAAW,CAAC,CAAA,GAAA,EAAM,UAAU,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,CAAA;AAAA,QACvC,MAAA,EAAQ,CAAC,CAAA,GAAA,EAAM,QAAA,CAAS,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,EAAI,CAAA,GAAA,EAAM,OAAA,CAAQ,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE;AAAA,OAC/D;AAAA,IACD;AAAA;AAEF,CAAA;AAEO,SAAS,uBAAA,GAA0B;AACzC,EAAA,MAAM,OAAOA,6BAAA,EAAiB;AAE9B,EAAA,MAAM,EAAE,qBAAA,EAAsB,GAAIC,iCAAA,EAAmB;AACrD,EAAA,MAAM,UAAA,GAAaC,cAAQ,MAAM;AAChC,IAAA,MAAM,OAAA,GAAU,MAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW,MAAA,CAAO,GAAG,CAAA,IAAK,EAAC;AAC9D,IAAA,MAAM,QAAA,GAAW,MAAM,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,KAAY,OAAA,CAAQ,GAAG,CAAA,IAAK,EAAC;AAClE,IAAA,MAAM,YAAY,qBAAA,CAAsB,GAAA;AAAA,MACvC,CAAC,cAAc,SAAA,CAAU;AAAA,KAC1B;AACA,IAAA,OAAO;AAAA,MACN,OAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACD;AAAA,EACD,CAAA,EAAG,CAAC,qBAAA,EAAuB,IAAI,CAAC,CAAA;AAChC,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAS,KAAA,EAAM,GAAIC,wBAAkC,KAAA,EAAO;AAAA,IACzE,SAAA,EAAW;AAAA,GACX,CAAA;AAED,EAAA,OAAO;AAAA,IACN,MAAM,IAAA,EAAM,IAAA;AAAA,IACZ,OAAA;AAAA,IACA;AAAA,GACD;AACD","file":"data.js","sourcesContent":["import { useScorecardMeta } from \"../../MetaProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useMemo } from \"react\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport type { Analytics } from \"@hisptz/dhis2-utils\";\n\nconst query: any = {\n\tdata: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipMeta: true,\n\t\t\t\tdimension: [`dx:${dataItems.join(\";\")}`],\n\t\t\t\tfilter: [`ou:${orgUnits.join(\";\")}`, `pe:${periods.join(\";\")}`],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport function useHighlightedItemsData() {\n\tconst meta = useScorecardMeta();\n\n\tconst { highlightedIndicators } = useScorecardConfig();\n\tconst dimensions = useMemo(() => {\n\t\tconst periods = meta?.periods.map((period) => period.uid) || [];\n\t\tconst orgUnits = meta?.orgUnits.map((orgUnit) => orgUnit.uid) || [];\n\t\tconst dataItems = highlightedIndicators.map(\n\t\t\t(indicator) => indicator.id,\n\t\t);\n\t\treturn {\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t};\n\t}, [highlightedIndicators, meta]);\n\tconst { data, loading, error } = useDataQuery<{ data: Analytics }>(query, {\n\t\tvariables: dimensions,\n\t});\n\n\treturn {\n\t\tdata: data?.data,\n\t\tloading,\n\t\terror,\n\t};\n}\n"]}
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var data = require('./hooks/data');
5
+ var ui = require('@dhis2/ui');
6
+ var ConfigProvider = require('../ConfigProvider');
7
+ var HighlightedItem = require('./components/HighlightedItem');
8
+
9
+ function HighlightedItems() {
10
+ const { highlightedIndicators } = ConfigProvider.useScorecardConfig();
11
+ const { loading, error, data: data$1 } = data.useHighlightedItemsData();
12
+ if (loading) {
13
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(ui.CircularLoader, { small: true }) });
14
+ }
15
+ return /* @__PURE__ */ jsxRuntime.jsx(
16
+ "div",
17
+ {
18
+ style: {
19
+ display: "grid",
20
+ gap: 16,
21
+ gridTemplateColumns: "repeat(auto-fill, minmax(400px, 1fr))"
22
+ },
23
+ children: highlightedIndicators?.map((item) => {
24
+ const value = data$1?.rows?.find(
25
+ (row) => row.includes(item.id)
26
+ )?.[1];
27
+ return /* @__PURE__ */ jsxRuntime.jsx(HighlightedItem.HighlightedItem, { item, data: value }, item.id);
28
+ })
29
+ }
30
+ );
31
+ }
32
+
33
+ exports.HighlightedItems = HighlightedItems;
34
+ //# sourceMappingURL=index.js.map
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/HighlightedItems/index.tsx"],"names":["useScorecardConfig","data","useHighlightedItemsData","jsx","CircularLoader","HighlightedItem"],"mappings":";;;;;;;;AAKO,SAAS,gBAAA,GAAmB;AAClC,EAAA,MAAM,EAAE,qBAAA,EAAsB,GAAIA,iCAAA,EAAmB;AACrD,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,QAAOC,MAAA,KAASC,4BAAA,EAAwB;AAEzD,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,sCACE,KAAA,EAAA,EACA,QAAA,kBAAAC,cAAA,CAACC,iBAAA,EAAA,EAAe,KAAA,EAAK,MAAC,CAAA,EACvB,CAAA;AAAA,EAEF;AAEA,EAAA,uBACCD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,OAAA,EAAS,MAAA;AAAA,QACT,GAAA,EAAK,EAAA;AAAA,QACL,mBAAA,EAAqB;AAAA,OACtB;AAAA,MAEC,QAAA,EAAA,qBAAA,EAAuB,GAAA,CAAI,CAAC,IAAA,KAAS;AACrC,QAAA,MAAM,KAAA,GAAQF,QAAM,IAAA,EAAM,IAAA;AAAA,UAAK,CAAC,GAAA,KAC/B,GAAA,CAAI,QAAA,CAAS,KAAK,EAAE;AAAA,YACjB,CAAC,CAAA;AACL,QAAA,sCACEI,+BAAA,EAAA,EAA8B,IAAA,EAAY,IAAA,EAAM,KAAA,EAAA,EAA3B,KAAK,EAA6B,CAAA;AAAA,MAE1D,CAAC;AAAA;AAAA,GACF;AAEF","file":"index.js","sourcesContent":["import { useHighlightedItemsData } from \"./hooks/data\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport { useScorecardConfig } from \"../ConfigProvider\";\nimport { HighlightedItem } from \"./components/HighlightedItem\";\n\nexport function HighlightedItems() {\n\tconst { highlightedIndicators } = useScorecardConfig();\n\tconst { loading, error, data } = useHighlightedItemsData();\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div>\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\tdisplay: \"grid\",\n\t\t\t\tgap: 16,\n\t\t\t\tgridTemplateColumns: \"repeat(auto-fill, minmax(400px, 1fr))\",\n\t\t\t}}\n\t\t>\n\t\t\t{highlightedIndicators?.map((item) => {\n\t\t\t\tconst value = data?.rows?.find((row) =>\n\t\t\t\t\trow.includes(item.id),\n\t\t\t\t)?.[1];\n\t\t\t\treturn (\n\t\t\t\t\t<HighlightedItem key={item.id} item={item} data={value} />\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/LoadingIndicator.tsx"],"names":["memo","LoadingIndicator","useScorecardData","useState","useTableState","useEffect","DataTableRow","jsx","LinearLoader","styles"],"mappings":";;;;;;;;;;;;;AAMa,MAAA,gBAAA,GAAmBA,UAAK,CAAA,SAASC,iBAAiB,CAAA;AAAA,EAC9D;AACD,CAEG,EAAA;AACF,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAIC,6BAAiB,EAAA;AAC9C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,eAAiB,CAAC,CAAA;AAClD,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAAA,cAAA,CAAkB,WAAW,MAAM,CAAA;AACrE,EAAA,MAAM,QAAQC,gCAAc,EAAA;AAC5B,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,qBAAA,EAAwB,CAAA,MAAA;AAE9C,EAAA,MAAM,KACL,GAAA,QAAA,CAAS,OAAS,EAAA,aAAA,EAAe,uBAAwB,CAAA,KAAA;AAE1D,EAAAC,eAAA,CAAU,MAAM;AACf,IAAO,OAAA,UAAA,CAAW,sBAAsB,YAAY,CAAA;AAAA,GACrD,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAAA,eAAA,CAAU,MAAM;AACf,IAAO,OAAA,UAAA,CAAW,mBAAoB,CAAA,CAAC,KAAU,KAAA;AAChD,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,KACjB,CAAA;AAAA,GACF,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,IAAI,QAAa,KAAA,CAAA,IAAK,KAAM,CAAA,QAAS,KAAK,SAAW,EAAA;AACpD,IAAO,OAAA,IAAA;AAAA;AAER,EAAA,sCACEC,eACA,EAAA,EAAA,QAAA,kBAAAC,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,QAAA,EAAU,UAAU,IAAM,EAAA,CAAA,EAAG,KAAK,CAAE,EAAA;AAAA,MAC7C,OAAA;AAAA,MAEA,QAAA,kBAAAA,cAAA;AAAA,QAACC,eAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAWC,wBAAO,QAAQ,CAAA;AAAA,UAC1B,MAAQ,EAAA,GAAA;AAAA,UACR,OAAO,KAAQ,GAAA,CAAA,EAAG,KAAK,KAAM,CAAA,KAAK,CAAC,CAAO,EAAA,CAAA,GAAA,MAAA;AAAA,UAC1C,MAAA,EAAA,CAAS,YAAY,CAAK,IAAA;AAAA;AAAA;AAC3B;AAAA,GAEF,EAAA,CAAA;AAEF,CAAC","file":"LoadingIndicator.js","sourcesContent":["import { useScorecardData } from \"./DataProvider\";\nimport { DataTableRow, LinearLoader } from \"@dhis2/ui\";\nimport { useTableState } from \"./TableStateProvider\";\nimport { memo, type RefObject, useEffect, useState } from \"react\";\nimport styles from \"./ScorecardTable/ScorecardTable.module.css\";\n\nexport const LoadingIndicator = memo(function LoadingIndicator({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [progress, setProgress] = useState<number>(0);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst table = useTableState();\n\tconst colSpan = table.getVisibleFlatColumns().length;\n\n\tconst width =\n\t\ttableRef.current?.parentElement?.getBoundingClientRect().width;\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener(setCompleted);\n\t}, [dataEngine]);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addProgressListener((value) => {\n\t\t\tsetProgress(value);\n\t\t});\n\t}, [dataEngine]);\n\n\tif (progress === 1 || isNaN(progress!) || completed) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DataTableRow>\n\t\t\t<td\n\t\t\t\tstyle={{ position: \"static\", left: 0, top: 0 }}\n\t\t\t\tcolSpan={colSpan}\n\t\t\t>\n\t\t\t\t<LinearLoader\n\t\t\t\t\tclassName={styles[\"loader\"]}\n\t\t\t\t\tmargin={\"0\"}\n\t\t\t\t\twidth={width ? `${Math.trunc(width)}px` : \"100%\"}\n\t\t\t\t\tamount={(progress ?? 0) * 100}\n\t\t\t\t/>\n\t\t\t</td>\n\t\t</DataTableRow>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../src/components/LoadingIndicator.tsx"],"names":["memo","LoadingIndicator","useScorecardData","useState","useTableState","useEffect","DataTableRow","jsx","LinearLoader","styles"],"mappings":";;;;;;;;;;;;;AAMO,MAAM,gBAAA,GAAmBA,UAAA,CAAK,SAASC,iBAAAA,CAAiB;AAAA,EAC9D;AACD,CAAA,EAEG;AACF,EAAA,MAAM,EAAE,IAAA,EAAM,UAAA,EAAW,GAAIC,6BAAA,EAAiB;AAC9C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,eAAiB,CAAC,CAAA;AAClD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,cAAA,CAAkB,WAAW,MAAM,CAAA;AACrE,EAAA,MAAM,QAAQC,gCAAA,EAAc;AAC5B,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,qBAAA,EAAsB,CAAE,MAAA;AAE9C,EAAA,MAAM,KAAA,GACL,QAAA,CAAS,OAAA,EAAS,aAAA,EAAe,uBAAsB,CAAE,KAAA;AAE1D,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,OAAO,UAAA,CAAW,sBAAsB,YAAY,CAAA;AAAA,EACrD,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAAA,eAAA,CAAU,MAAM;AACf,IAAA,OAAO,UAAA,CAAW,mBAAA,CAAoB,CAAC,KAAA,KAAU;AAChD,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IAClB,CAAC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,IAAI,QAAA,KAAa,CAAA,IAAK,KAAA,CAAM,QAAS,KAAK,SAAA,EAAW;AACpD,IAAA,OAAO,IAAA;AAAA,EACR;AACA,EAAA,sCACEC,eAAA,EAAA,EACA,QAAA,kBAAAC,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,QAAA,EAAU,UAAU,IAAA,EAAM,CAAA,EAAG,KAAK,CAAA,EAAE;AAAA,MAC7C,OAAA;AAAA,MAEA,QAAA,kBAAAA,cAAA;AAAA,QAACC,eAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAWC,wBAAO,QAAQ,CAAA;AAAA,UAC1B,MAAA,EAAQ,GAAA;AAAA,UACR,OAAO,KAAA,GAAQ,CAAA,EAAG,KAAK,KAAA,CAAM,KAAK,CAAC,CAAA,EAAA,CAAA,GAAO,MAAA;AAAA,UAC1C,MAAA,EAAA,CAAS,YAAY,CAAA,IAAK;AAAA;AAAA;AAC3B;AAAA,GACD,EACD,CAAA;AAEF,CAAC","file":"LoadingIndicator.js","sourcesContent":["import { useScorecardData } from \"./DataProvider\";\nimport { DataTableRow, LinearLoader } from \"@dhis2/ui\";\nimport { useTableState } from \"./TableStateProvider\";\nimport { memo, type RefObject, useEffect, useState } from \"react\";\nimport styles from \"./ScorecardTable/ScorecardTable.module.css\";\n\nexport const LoadingIndicator = memo(function LoadingIndicator({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [progress, setProgress] = useState<number>(0);\n\tconst [completed, setCompleted] = useState<boolean>(dataEngine.isDone);\n\tconst table = useTableState();\n\tconst colSpan = table.getVisibleFlatColumns().length;\n\n\tconst width =\n\t\ttableRef.current?.parentElement?.getBoundingClientRect().width;\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addOnCompleteListener(setCompleted);\n\t}, [dataEngine]);\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addProgressListener((value) => {\n\t\t\tsetProgress(value);\n\t\t});\n\t}, [dataEngine]);\n\n\tif (progress === 1 || isNaN(progress!) || completed) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DataTableRow>\n\t\t\t<td\n\t\t\t\tstyle={{ position: \"static\", left: 0, top: 0 }}\n\t\t\t\tcolSpan={colSpan}\n\t\t\t>\n\t\t\t\t<LinearLoader\n\t\t\t\t\tclassName={styles[\"loader\"]}\n\t\t\t\t\tmargin={\"0\"}\n\t\t\t\t\twidth={width ? `${Math.trunc(width)}px` : \"100%\"}\n\t\t\t\t\tamount={(progress ?? 0) * 100}\n\t\t\t\t/>\n\t\t\t</td>\n\t\t</DataTableRow>\n\t);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/MetaProvider.tsx"],"names":["createContext","useContext","memo","ScorecardMetaGetter","useGetScorecardMeta","jsx","CircularLoader","i18n","isEqual"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,oBAAA,GAAuBA,oBAAoC,IAAI,CAAA;AAE9D,SAAS,gBAAmB,GAAA;AAClC,EAAA,OAAOC,iBAAW,oBAAoB,CAAA;AACvC;AAEa,MAAA,mBAAA,GAAsBC,UAAK,CAAA,SAASC,oBAAoB,CAAA;AAAA,EACpE;AACD,CAEG,EAAA;AACF,EAAA,MAAM,EAAE,OAAS,EAAA,MAAA,EAAQ,GAAG,IAAA,KAASC,4BAAoB,EAAA;AACzD,EAAI,IAAA,OAAA,IAAW,CAAC,MAAQ,EAAA;AACvB,IACC,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACN,MAAQ,EAAA,MAAA;AAAA,UACR,KAAO,EAAA,MAAA;AAAA,UACP,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA;AAAA,SACjB;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAACC,iBAAe,EAAA,EAAA,KAAA,EAAK,IAAC,EAAA;AAAA;AAAA,KACvB;AAAA;AAIF,EAAI,IAAA,CAAC,IAAK,CAAA,QAAA,IAAY,MAAQ,EAAA;AAC7B,IAAA,MAAM,KAAM,CAAAC,qBAAA,CAAK,CAAE,CAAA,0CAA0C,CAAC,CAAA;AAAA;AAG/D,EACC,uBAAAF,cAAA,CAAC,qBAAsB,EAAA,EAAA,IAAA,EAAa,QAAS,EAAA,CAAA;AAE/C,CAAC;AAEM,MAAM,qBAAwB,GAAAH,UAAA;AAAA,EACpC,CAAC,EAAE,QAAU,EAAA,IAAA,EAAyD,KAAA;AACrE,IACC,uBAAAG,cAAA;AAAA,MAAC,oBAAqB,CAAA,QAAA;AAAA,MAArB;AAAA,QACA,KAAO,EAAA;AAAA,UACN,GAAG;AAAA,SACJ;AAAA,QAEC;AAAA;AAAA,KACF;AAAA,GAEF;AAAA,EACA,CAAC,SAAW,EAAA,SAAA,KAAcG,eAAQ,SAAU,CAAA,IAAA,EAAM,UAAU,IAAI;AACjE","file":"MetaProvider.js","sourcesContent":["import { createContext, memo, type ReactNode, useContext } from \"react\";\nimport { type ItemMeta, useGetScorecardMeta } from \"../hooks/metadata\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { isEqual } from \"lodash\";\n\nexport interface ScorecardMeta {\n\tperiods: Array<ItemMeta>;\n\torgUnits: Array<ItemMeta & { hierarchy: string }>;\n\tdataItems: Array<ItemMeta>;\n\torgUnitLevels: Array<{\n\t\tid: string;\n\t\tlevel: number;\n\t\tdisplayName: string;\n\t}>;\n}\n\nconst ScorecardMetaContext = createContext<ScorecardMeta | null>(null);\n\nexport function useScorecardMeta() {\n\treturn useContext(ScorecardMetaContext);\n}\n\nexport const ScorecardMetaGetter = memo(function ScorecardMetaGetter({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst { loading, called, ...meta } = useGetScorecardMeta();\n\tif (loading || !called) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!meta.orgUnits && called) {\n\t\tthrow Error(i18n.t(\"Error getting metadata for the scorecard\"));\n\t}\n\n\treturn (\n\t\t<ScorecardMetaProvider meta={meta}>{children}</ScorecardMetaProvider>\n\t);\n});\n\nexport const ScorecardMetaProvider = memo(\n\t({ children, meta }: { children: ReactNode; meta: ScorecardMeta }) => {\n\t\treturn (\n\t\t\t<ScorecardMetaContext.Provider\n\t\t\t\tvalue={{\n\t\t\t\t\t...meta,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScorecardMetaContext.Provider>\n\t\t);\n\t},\n\t(prevProps, nextProps) => isEqual(prevProps.meta, nextProps.meta),\n);\n"]}
1
+ {"version":3,"sources":["../../src/components/MetaProvider.tsx"],"names":["createContext","useContext","memo","ScorecardMetaGetter","useGetScorecardMeta","jsx","CircularLoader","i18n","isEqual"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,oBAAA,GAAuBA,oBAAoC,IAAI,CAAA;AAE9D,SAAS,gBAAA,GAAmB;AAClC,EAAA,OAAOC,iBAAW,oBAAoB,CAAA;AACvC;AAEO,MAAM,mBAAA,GAAsBC,UAAA,CAAK,SAASC,oBAAAA,CAAoB;AAAA,EACpE;AACD,CAAA,EAEG;AACF,EAAA,MAAM,EAAE,OAAA,EAAS,MAAA,EAAQ,GAAG,IAAA,KAASC,4BAAA,EAAoB;AACzD,EAAA,IAAI,OAAA,IAAW,CAAC,MAAA,EAAQ;AACvB,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,IAAI,CAAC,IAAA,CAAK,QAAA,IAAY,MAAA,EAAQ;AAC7B,IAAA,MAAM,KAAA,CAAMC,qBAAA,CAAK,CAAA,CAAE,0CAA0C,CAAC,CAAA;AAAA,EAC/D;AAEA,EAAA,uBACCF,cAAA,CAAC,qBAAA,EAAA,EAAsB,IAAA,EAAa,QAAA,EAAS,CAAA;AAE/C,CAAC;AAEM,MAAM,qBAAA,GAAwBH,UAAA;AAAA,EACpC,CAAC,EAAE,QAAA,EAAU,IAAA,EAAK,KAAoD;AACrE,IAAA,uBACCG,cAAA;AAAA,MAAC,oBAAA,CAAqB,QAAA;AAAA,MAArB;AAAA,QACA,KAAA,EAAO;AAAA,UACN,GAAG;AAAA,SACJ;AAAA,QAEC;AAAA;AAAA,KACF;AAAA,EAEF,CAAA;AAAA,EACA,CAAC,SAAA,EAAW,SAAA,KAAcG,eAAQ,SAAA,CAAU,IAAA,EAAM,UAAU,IAAI;AACjE","file":"MetaProvider.js","sourcesContent":["import { createContext, memo, type ReactNode, useContext } from \"react\";\nimport { type ItemMeta, useGetScorecardMeta } from \"../hooks/metadata\";\nimport { CircularLoader } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { isEqual } from \"lodash\";\n\nexport interface ScorecardMeta {\n\tperiods: Array<ItemMeta>;\n\torgUnits: Array<ItemMeta & { hierarchy: string }>;\n\tdataItems: Array<ItemMeta>;\n\torgUnitLevels: Array<{\n\t\tid: string;\n\t\tlevel: number;\n\t\tdisplayName: string;\n\t}>;\n}\n\nconst ScorecardMetaContext = createContext<ScorecardMeta | null>(null);\n\nexport function useScorecardMeta() {\n\treturn useContext(ScorecardMetaContext);\n}\n\nexport const ScorecardMetaGetter = memo(function ScorecardMetaGetter({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst { loading, called, ...meta } = useGetScorecardMeta();\n\tif (loading || !called) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!meta.orgUnits && called) {\n\t\tthrow Error(i18n.t(\"Error getting metadata for the scorecard\"));\n\t}\n\n\treturn (\n\t\t<ScorecardMetaProvider meta={meta}>{children}</ScorecardMetaProvider>\n\t);\n});\n\nexport const ScorecardMetaProvider = memo(\n\t({ children, meta }: { children: ReactNode; meta: ScorecardMeta }) => {\n\t\treturn (\n\t\t\t<ScorecardMetaContext.Provider\n\t\t\t\tvalue={{\n\t\t\t\t\t...meta,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScorecardMetaContext.Provider>\n\t\t);\n\t},\n\t(prevProps, nextProps) => isEqual(prevProps.meta, nextProps.meta),\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ScorecardContext.tsx"],"names":["jsxs","jsx","IconError24","colors","i18n","Button","memo","ScorecardContext","ErrorBoundary","ScorecardConfigProvider","ScorecardMetaGetter"],"mappings":";;;;;;;;;;;;;;AAaA,SAAS,aAAc,CAAA;AAAA,EACtB,KAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACD,CAAwC,EAAA;AACvC,EACC,uBAAAA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,KAAO,EAAA,MAAA;AAAA,QACP,SAAW,EAAA,QAAA;AAAA,QACX,QAAQ,MAAU,IAAA,GAAA;AAAA,QAClB,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,QAAA;AAAA,QAChB,GAAK,EAAA,EAAA;AAAA,QACL,OAAS,EAAA;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAACC,cAAY,EAAA,EAAA,CAAA;AAAA,wBACbD,cAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,OAAOE,SAAO,CAAA,OAAA;AAAA,cACd,MAAQ,EAAA;AAAA,aACT;AAAA,YAEC,QAAA,EAAAC,qBAAA,CAAK,EAAE,8BAA8B;AAAA;AAAA,SACvC;AAAA,wBACAH,cAAA,CAAC,OAAE,KAAO,EAAA,EAAE,QAAQ,CAAE,EAAA,EAAI,gBAAM,OAAQ,EAAA,CAAA;AAAA,QACvC,kBAAA,oBACCA,cAAA,CAAAI,SAAA,EAAA,EAAO,OAAS,EAAA,kBAAA,EAAoB,OAAK,IACxC,EAAA,QAAA,EAAAD,qBAAA,CAAK,CAAE,CAAA,WAAW,CACpB,EAAA;AAAA;AAAA;AAAA,GAEF;AAEF;AAEO,MAAM,gBAAmB,GAAAE,UAAA;AAAA,EAC/B,SAASC,iBAAAA,CAAiB,EAAE,MAAA,EAAQ,UAAmC,EAAA;AACtE,IACC,uBAAAN,cAAA;AAAA,MAACO,gCAAA;AAAA,MAAA;AAAA,QACA,SAAA,EAAW,CAAC,MAAM,CAAA;AAAA,QAClB,iBAAmB,EAAA,aAAA;AAAA,QAEnB,yCAACC,sCAAwB,EAAA,EAAA,MAAA,EACxB,QAAC,kBAAAR,cAAA,CAAAS,gCAAA,EAAA,EAAqB,UAAS,CAChC,EAAA;AAAA;AAAA,KACD;AAAA,GAEF;AAAA,EACA,CAAC,WAAW,SAAc,KAAA;AACzB,IAAO,OAAA,SAAA,CAAU,WAAW,SAAU,CAAA,MAAA;AAAA;AAExC","file":"ScorecardContext.js","sourcesContent":["import { ScorecardConfigProvider } from \"./ConfigProvider\";\nimport { ScorecardMetaGetter } from \"./MetaProvider\";\nimport { memo, type ReactNode } from \"react\";\nimport type { ScorecardConfig } from \"../schemas/config\";\nimport { ErrorBoundary, FallbackProps } from \"react-error-boundary\";\nimport { Button, colors, IconError24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\n\ninterface ScorecardContextProps {\n\tchildren: ReactNode;\n\tconfig: ScorecardConfig;\n}\n\nfunction ErrorFallback({\n\terror,\n\tresetErrorBoundary,\n\theight,\n}: FallbackProps & { height?: number }) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\theight: height ?? 500,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<IconError24 />\n\t\t\t<h3\n\t\t\t\tstyle={{\n\t\t\t\t\tcolor: colors.grey800,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i18n.t(\"Could not load visualization\")}\n\t\t\t</h3>\n\t\t\t<p style={{ margin: 0 }}>{error.message}</p>\n\t\t\t{resetErrorBoundary && (\n\t\t\t\t<Button onClick={resetErrorBoundary} small>\n\t\t\t\t\t{i18n.t(\"Try again\")}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport const ScorecardContext = memo(\n\tfunction ScorecardContext({ config, children }: ScorecardContextProps) {\n\t\treturn (\n\t\t\t<ErrorBoundary\n\t\t\t\tresetKeys={[config]}\n\t\t\t\tFallbackComponent={ErrorFallback}\n\t\t\t>\n\t\t\t\t<ScorecardConfigProvider config={config}>\n\t\t\t\t\t<ScorecardMetaGetter>{children}</ScorecardMetaGetter>\n\t\t\t\t</ScorecardConfigProvider>\n\t\t\t</ErrorBoundary>\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn prevProps.config === nextProps.config;\n\t},\n);\n"]}
1
+ {"version":3,"sources":["../../src/components/ScorecardContext.tsx"],"names":["jsxs","jsx","IconError24","colors","i18n","Button","memo","ScorecardContext","ErrorBoundary","ScorecardConfigProvider","ScorecardMetaGetter"],"mappings":";;;;;;;;;;;;;;AAaA,SAAS,aAAA,CAAc;AAAA,EACtB,KAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACD,CAAA,EAAwC;AACvC,EAAA,uBACCA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,KAAA,EAAO,MAAA;AAAA,QACP,SAAA,EAAW,QAAA;AAAA,QACX,QAAQ,MAAA,IAAU,GAAA;AAAA,QAClB,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,UAAA,EAAY,QAAA;AAAA,QACZ,cAAA,EAAgB,QAAA;AAAA,QAChB,GAAA,EAAK,EAAA;AAAA,QACL,OAAA,EAAS;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAACC,cAAA,EAAA,EAAY,CAAA;AAAA,wBACbD,cAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,OAAOE,SAAA,CAAO,OAAA;AAAA,cACd,MAAA,EAAQ;AAAA,aACT;AAAA,YAEC,QAAA,EAAAC,qBAAA,CAAK,EAAE,8BAA8B;AAAA;AAAA,SACvC;AAAA,wBACAH,cAAA,CAAC,OAAE,KAAA,EAAO,EAAE,QAAQ,CAAA,EAAE,EAAI,gBAAM,OAAA,EAAQ,CAAA;AAAA,QACvC,kBAAA,oBACAA,cAAA,CAACI,SAAA,EAAA,EAAO,OAAA,EAAS,kBAAA,EAAoB,OAAK,IAAA,EACxC,QAAA,EAAAD,qBAAA,CAAK,CAAA,CAAE,WAAW,CAAA,EACpB;AAAA;AAAA;AAAA,GAEF;AAEF;AAEO,MAAM,gBAAA,GAAmBE,UAAA;AAAA,EAC/B,SAASC,iBAAAA,CAAiB,EAAE,MAAA,EAAQ,UAAS,EAA0B;AACtE,IAAA,uBACCN,cAAA;AAAA,MAACO,gCAAA;AAAA,MAAA;AAAA,QACA,SAAA,EAAW,CAAC,MAAM,CAAA;AAAA,QAClB,iBAAA,EAAmB,aAAA;AAAA,QAEnB,yCAACC,sCAAA,EAAA,EAAwB,MAAA,EACxB,QAAA,kBAAAR,cAAA,CAACS,gCAAA,EAAA,EAAqB,UAAS,CAAA,EAChC;AAAA;AAAA,KACD;AAAA,EAEF,CAAA;AAAA,EACA,CAAC,WAAW,SAAA,KAAc;AACzB,IAAA,OAAO,SAAA,CAAU,WAAW,SAAA,CAAU,MAAA;AAAA,EACvC;AACD","file":"ScorecardContext.js","sourcesContent":["import { ScorecardConfigProvider } from \"./ConfigProvider\";\nimport { ScorecardMetaGetter } from \"./MetaProvider\";\nimport { memo, type ReactNode } from \"react\";\nimport type { ScorecardConfig } from \"../schemas/config\";\nimport { ErrorBoundary, FallbackProps } from \"react-error-boundary\";\nimport { Button, colors, IconError24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\n\ninterface ScorecardContextProps {\n\tchildren: ReactNode;\n\tconfig: ScorecardConfig;\n}\n\nfunction ErrorFallback({\n\terror,\n\tresetErrorBoundary,\n\theight,\n}: FallbackProps & { height?: number }) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\theight: height ?? 500,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<IconError24 />\n\t\t\t<h3\n\t\t\t\tstyle={{\n\t\t\t\t\tcolor: colors.grey800,\n\t\t\t\t\tmargin: 0,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i18n.t(\"Could not load visualization\")}\n\t\t\t</h3>\n\t\t\t<p style={{ margin: 0 }}>{error.message}</p>\n\t\t\t{resetErrorBoundary && (\n\t\t\t\t<Button onClick={resetErrorBoundary} small>\n\t\t\t\t\t{i18n.t(\"Try again\")}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport const ScorecardContext = memo(\n\tfunction ScorecardContext({ config, children }: ScorecardContextProps) {\n\t\treturn (\n\t\t\t<ErrorBoundary\n\t\t\t\tresetKeys={[config]}\n\t\t\t\tFallbackComponent={ErrorFallback}\n\t\t\t>\n\t\t\t\t<ScorecardConfigProvider config={config}>\n\t\t\t\t\t<ScorecardMetaGetter>{children}</ScorecardMetaGetter>\n\t\t\t\t</ScorecardConfigProvider>\n\t\t\t</ErrorBoundary>\n\t\t);\n\t},\n\t(prevProps, nextProps) => {\n\t\treturn prevProps.config === nextProps.config;\n\t},\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ScorecardHeader.tsx"],"names":["useScorecardConfig","usePeriodSelectionValue","useScorecardViewStateValue","useMemo","PeriodUtility","head","jsx","Fragment","JsxParser","jsxs","colors"],"mappings":";;;;;;;;;;;;;;;;AASO,SAAS,eAAkB,GAAA;AACjC,EAAA,MAAM,SAASA,iCAAmB,EAAA;AAClC,EAAA,MAAM,EAAE,YAAc,EAAA,KAAA,EAAO,QAAS,EAAA,GAAI,UAAU,EAAC;AAErD,EAAA,MAAM,kBAAkBC,sCAAwB,EAAA;AAChD,EAAM,MAAA,SAAA,GAAYC,qCAAoC,OAAO,CAAA;AAE7D,EAAA,MAAM,OAAU,GAAAC,aAAA;AAAA,IACf,MAAM,eAAgB,CAAA,OAAA;AAAA,IACtB,CAAC,gBAAgB,OAAO;AAAA,GACzB;AAEA,EAAM,MAAA,MAAA,GAASA,cAAQ,MAAM;AAC5B,IAAI,IAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACvB,MAAA;AAAA;AAED,IAAA,OAAOC,wBAAc,CAAA,aAAA,CAAcC,WAAK,CAAA,OAAO,GAAG,EAAY,CAAA;AAAA,GAC/D,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,CAAC,SAAW,EAAA;AACf,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uBAEGC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,YAAA;AAAA;AAAA;AAAA,oBAGAD,cAAA;AAAA,MAACE,0BAAA;AAAA,MAAA;AAAA,QACA,qBAAqB,EAAA,IAAA;AAAA,QACrB,SAAU,EAAA,OAAA;AAAA,QACV,SAAS,OAAQ,CAAA,KAAA;AAAA,QACjB,QAAU,EAAA;AAAA,UACT,KAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAQ,EAAA,OAAA,CAAQ,MAAW,KAAA,CAAA,GAAI,QAAQ,IAAO,GAAA;AAAA,SAC/C;AAAA,QACA,GAAK,EAAA;AAAA;AAAA;AACN,sBAEAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,QAAA;AAAA,QAChB,KAAO,EAAA,MAAA;AAAA,QACP,GAAK,EAAA;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,QAAG,KAAO,EAAA,EAAE,QAAQ,CAAE,EAAA,EAAG,IAAI,4BAC5B,EAAA,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UAAO,GAAA;AAAA,UACP,CAAA,EAAG,QAAQ,MAAW,KAAA,CAAA,GAAI,MAAM,MAAQ,EAAA,IAAI,KAAK,EAAE,CAAA;AAAA,SACrD,EAAA,CAAA;AAAA,wBACAH,cAAA,CAAC,IAAG,EAAA,EAAA,KAAA,EAAO,EAAE,KAAA,EAAOI,UAAO,OAAS,EAAA,MAAA,EAAQ,CAAE,EAAA,EAC5C,QACF,EAAA,QAAA,EAAA;AAAA;AAAA;AAAA,GAGH,EAAA,CAAA;AAEF","file":"ScorecardHeader.js","sourcesContent":["import { useScorecardConfig } from \"./ConfigProvider\";\nimport { useMemo } from \"react\";\nimport { PeriodUtility } from \"@hisptz/dhis2-utils\";\nimport { head } from \"lodash\";\nimport { colors } from \"@dhis2/ui\";\nimport JsxParser from \"react-jsx-parser\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\nimport { usePeriodSelectionValue } from \"../utils/dimensionState\";\n\nexport function ScorecardHeader() {\n\tconst config = useScorecardConfig();\n\tconst { customHeader, title, subtitle } = config ?? {};\n\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst showTitle = useScorecardViewStateValue<boolean>(\"title\");\n\n\tconst periods = useMemo(\n\t\t() => periodSelection.periods,\n\t\t[periodSelection.periods],\n\t);\n\n\tconst period = useMemo(() => {\n\t\tif (periods.length > 1) {\n\t\t\treturn;\n\t\t}\n\t\treturn PeriodUtility.getPeriodById(head(periods)?.id as string);\n\t}, [periods]);\n\n\tif (!showTitle) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{customHeader ? (\n\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t<JsxParser\n\t\t\t\t\tautoCloseVoidElements\n\t\t\t\t\tclassName=\"w-100\"\n\t\t\t\t\tonError={console.error}\n\t\t\t\t\tbindings={{\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tsubtitle,\n\t\t\t\t\t\tperiod: periods.length === 1 ? period?.name : \"\",\n\t\t\t\t\t}}\n\t\t\t\t\tjsx={customHeader}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h1 style={{ margin: 8 }} id={\"data-test-score-card-title\"}>\n\t\t\t\t\t\t{title}{\" \"}\n\t\t\t\t\t\t{`${periods.length === 1 ? ` - ${period?.name}` : \"\"}`}\n\t\t\t\t\t</h1>\n\t\t\t\t\t<h3 style={{ color: colors.grey600, margin: 0 }}>\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</h3>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../src/components/ScorecardHeader.tsx"],"names":["useScorecardConfig","usePeriodSelectionValue","useScorecardViewStateValue","useMemo","PeriodUtility","head","jsx","Fragment","JsxParser","jsxs","colors"],"mappings":";;;;;;;;;;;;;;;;AASO,SAAS,eAAA,GAAkB;AACjC,EAAA,MAAM,SAASA,iCAAA,EAAmB;AAClC,EAAA,MAAM,EAAE,YAAA,EAAc,KAAA,EAAO,QAAA,EAAS,GAAI,UAAU,EAAC;AAErD,EAAA,MAAM,kBAAkBC,sCAAA,EAAwB;AAChD,EAAA,MAAM,SAAA,GAAYC,qCAAoC,OAAO,CAAA;AAE7D,EAAA,MAAM,OAAA,GAAUC,aAAA;AAAA,IACf,MAAM,eAAA,CAAgB,OAAA;AAAA,IACtB,CAAC,gBAAgB,OAAO;AAAA,GACzB;AAEA,EAAA,MAAM,MAAA,GAASA,cAAQ,MAAM;AAC5B,IAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACvB,MAAA;AAAA,IACD;AACA,IAAA,OAAOC,wBAAA,CAAc,aAAA,CAAcC,WAAA,CAAK,OAAO,GAAG,EAAY,CAAA;AAAA,EAC/D,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,CAAC,SAAA,EAAW;AACf,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,uBACCC,cAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA,YAAA;AAAA;AAAA;AAAA,oBAGAD,cAAA;AAAA,MAACE,0BAAA;AAAA,MAAA;AAAA,QACA,qBAAA,EAAqB,IAAA;AAAA,QACrB,SAAA,EAAU,OAAA;AAAA,QACV,SAAS,OAAA,CAAQ,KAAA;AAAA,QACjB,QAAA,EAAU;AAAA,UACT,KAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAA,EAAQ,OAAA,CAAQ,MAAA,KAAW,CAAA,GAAI,QAAQ,IAAA,GAAO;AAAA,SAC/C;AAAA,QACA,GAAA,EAAK;AAAA;AAAA;AACN,sBAEAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,UAAA,EAAY,QAAA;AAAA,QACZ,cAAA,EAAgB,QAAA;AAAA,QAChB,KAAA,EAAO,MAAA;AAAA,QACP,GAAA,EAAK;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,QAAG,KAAA,EAAO,EAAE,QAAQ,CAAA,EAAE,EAAG,IAAI,4BAAA,EAC5B,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UAAO,GAAA;AAAA,UACP,CAAA,EAAG,QAAQ,MAAA,KAAW,CAAA,GAAI,MAAM,MAAA,EAAQ,IAAI,KAAK,EAAE,CAAA;AAAA,SAAA,EACrD,CAAA;AAAA,wBACAH,cAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,KAAA,EAAOI,UAAO,OAAA,EAAS,MAAA,EAAQ,CAAA,EAAE,EAC5C,QAAA,EAAA,QAAA,EACF;AAAA;AAAA;AAAA,GACD,EAEF,CAAA;AAEF","file":"ScorecardHeader.js","sourcesContent":["import { useScorecardConfig } from \"./ConfigProvider\";\nimport { useMemo } from \"react\";\nimport { PeriodUtility } from \"@hisptz/dhis2-utils\";\nimport { head } from \"lodash\";\nimport { colors } from \"@dhis2/ui\";\nimport JsxParser from \"react-jsx-parser\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\nimport { usePeriodSelectionValue } from \"../utils/dimensionState\";\n\nexport function ScorecardHeader() {\n\tconst config = useScorecardConfig();\n\tconst { customHeader, title, subtitle } = config ?? {};\n\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst showTitle = useScorecardViewStateValue<boolean>(\"title\");\n\n\tconst periods = useMemo(\n\t\t() => periodSelection.periods,\n\t\t[periodSelection.periods],\n\t);\n\n\tconst period = useMemo(() => {\n\t\tif (periods.length > 1) {\n\t\t\treturn;\n\t\t}\n\t\treturn PeriodUtility.getPeriodById(head(periods)?.id as string);\n\t}, [periods]);\n\n\tif (!showTitle) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{customHeader ? (\n\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t<JsxParser\n\t\t\t\t\tautoCloseVoidElements\n\t\t\t\t\tclassName=\"w-100\"\n\t\t\t\t\tonError={console.error}\n\t\t\t\t\tbindings={{\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tsubtitle,\n\t\t\t\t\t\tperiod: periods.length === 1 ? period?.name : \"\",\n\t\t\t\t\t}}\n\t\t\t\t\tjsx={customHeader}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h1 style={{ margin: 8 }} id={\"data-test-score-card-title\"}>\n\t\t\t\t\t\t{title}{\" \"}\n\t\t\t\t\t\t{`${periods.length === 1 ? ` - ${period?.name}` : \"\"}`}\n\t\t\t\t\t</h1>\n\t\t\t\t\t<h3 style={{ color: colors.grey600, margin: 0 }}>\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</h3>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardLegendsView/ScorecardLegendsView.tsx"],"names":["memo","ScorecardLegendsView","useScorecardConfig","useScorecardViewStateValue","jsxs","jsx","LegendView","ArrowLegendsView","SpecificTargetLegendsView"],"mappings":";;;;;;;;;;AAOa,MAAA,oBAAA,GAAuBA,UAAK,CAAA,SAASC,qBAAuB,GAAA;AACxE,EAAA,MAAM,SAASC,iCAAmB,EAAA;AAClC,EAAA,MAAM,oBAAoB,MAAQ,CAAA,iBAAA;AAClC,EAAM,MAAA,WAAA,GAAcC,qCAAoC,QAAQ,CAAA;AAEhE,EAAA,IAAI,CAAC,WAAa,EAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAGR,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,GAAK,EAAA,EAAA;AAAA,QACL,OAAS,EAAA,QAAA;AAAA,QACT,OAAS,EAAA,MAAA;AAAA,QACT,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA;AAAA,OACjB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,OAAS,EAAA,MAAA;AAAA,cACT,GAAK,EAAA,CAAA;AAAA,cACL,mBAAA,EAAqB,CAAU,OAAA,EAAA,iBAAA,CAAkB,MAAM,CAAA,OAAA;AAAA,aACxD;AAAA,YAEC,QAAA,EAAA,iBAAA,CAAkB,GAAI,CAAA,CAAC,IACvB,qBAAAA,cAAA,CAACC,yBAAW,MAAQ,EAAA,IAAA,EAAA,EAAW,IAAK,CAAA,EAAI,CACxC;AAAA;AAAA,SACF;AAAA,uCACC,KACA,EAAA,EAAA,QAAA,kBAAAF,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,GAAK,EAAA,EAAA;AAAA,cACL,WAAa,EAAA,UAAA;AAAA,cACb,OAAS,EAAA,MAAA;AAAA,cACT,UAAY,EAAA,QAAA;AAAA,cACZ,cAAgB,EAAA;AAAA,aACjB;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAACE,gCAAiB,EAAA,EAAA,CAAA;AAAA,6CACjBC,mDAA0B,EAAA,EAAA;AAAA;AAAA;AAAA,SAE7B,EAAA;AAAA;AAAA;AAAA,GACD;AAEF,CAAC","file":"ScorecardLegendsView.js","sourcesContent":["import { ArrowLegendsView } from \"./components/ArrowLegendView\";\nimport { SpecificTargetLegendsView } from \"./components/SpecificTargetLegendsView\";\nimport { LegendView } from \"./components/LegendView\";\nimport { useScorecardConfig } from \"../ConfigProvider\";\nimport { memo } from \"react\";\nimport { useScorecardViewStateValue } from \"../../utils/viewState\";\n\nexport const ScorecardLegendsView = memo(function ScorecardLegendsView() {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config!.legendDefinitions;\n\tconst showLegends = useScorecardViewStateValue<boolean>(\"legend\");\n\n\tif (!showLegends) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: \"0 16px\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t\tgridTemplateColumns: `repeat(${legendDefinitions.length}, auto)`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legendDefinitions.map((item) => (\n\t\t\t\t\t<LegendView legend={item} key={item.id} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tjustifySelf: \"flex-end\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<ArrowLegendsView />\n\t\t\t\t\t<SpecificTargetLegendsView />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardLegendsView/ScorecardLegendsView.tsx"],"names":["memo","ScorecardLegendsView","useScorecardConfig","useScorecardViewStateValue","jsxs","jsx","LegendView","ArrowLegendsView","SpecificTargetLegendsView"],"mappings":";;;;;;;;;;AAOO,MAAM,oBAAA,GAAuBA,UAAA,CAAK,SAASC,qBAAAA,GAAuB;AACxE,EAAA,MAAM,SAASC,iCAAA,EAAmB;AAClC,EAAA,MAAM,oBAAoB,MAAA,CAAQ,iBAAA;AAClC,EAAA,MAAM,WAAA,GAAcC,qCAAoC,QAAQ,CAAA;AAEhE,EAAA,IAAI,CAAC,WAAA,EAAa;AACjB,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,GAAA,EAAK,EAAA;AAAA,QACL,OAAA,EAAS,QAAA;AAAA,QACT,OAAA,EAAS,MAAA;AAAA,QACT,UAAA,EAAY,QAAA;AAAA,QACZ,cAAA,EAAgB;AAAA,OACjB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,OAAA,EAAS,MAAA;AAAA,cACT,GAAA,EAAK,CAAA;AAAA,cACL,mBAAA,EAAqB,CAAA,OAAA,EAAU,iBAAA,CAAkB,MAAM,CAAA,OAAA;AAAA,aACxD;AAAA,YAEC,QAAA,EAAA,iBAAA,CAAkB,GAAA,CAAI,CAAC,IAAA,qBACvBA,cAAA,CAACC,yBAAW,MAAA,EAAQ,IAAA,EAAA,EAAW,IAAA,CAAK,EAAI,CACxC;AAAA;AAAA,SACF;AAAA,uCACC,KAAA,EAAA,EACA,QAAA,kBAAAF,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,GAAA,EAAK,EAAA;AAAA,cACL,WAAA,EAAa,UAAA;AAAA,cACb,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB;AAAA,aACjB;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAACE,gCAAA,EAAA,EAAiB,CAAA;AAAA,6CACjBC,mDAAA,EAAA,EAA0B;AAAA;AAAA;AAAA,SAC5B,EACD;AAAA;AAAA;AAAA,GACD;AAEF,CAAC","file":"ScorecardLegendsView.js","sourcesContent":["import { ArrowLegendsView } from \"./components/ArrowLegendView\";\nimport { SpecificTargetLegendsView } from \"./components/SpecificTargetLegendsView\";\nimport { LegendView } from \"./components/LegendView\";\nimport { useScorecardConfig } from \"../ConfigProvider\";\nimport { memo } from \"react\";\nimport { useScorecardViewStateValue } from \"../../utils/viewState\";\n\nexport const ScorecardLegendsView = memo(function ScorecardLegendsView() {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config!.legendDefinitions;\n\tconst showLegends = useScorecardViewStateValue<boolean>(\"legend\");\n\n\tif (!showLegends) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: \"0 16px\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t\tgridTemplateColumns: `repeat(${legendDefinitions.length}, auto)`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legendDefinitions.map((item) => (\n\t\t\t\t\t<LegendView legend={item} key={item.id} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tjustifySelf: \"flex-end\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<ArrowLegendsView />\n\t\t\t\t\t<SpecificTargetLegendsView />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/ArrowLegendView.tsx"],"names":["useScorecardViewStateValue","jsxs","jsx","IconArrowUp24","i18n","IconArrowDown24"],"mappings":";;;;;;;;;;;AAIO,SAAS,gBAAmB,GAAA;AAClC,EAAM,MAAA,UAAA,GAAaA,qCAAoC,QAAQ,CAAA;AAE/D,EAAA,IAAI,CAAC,UAAY,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAGR,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,GAAA,EAAK,IAAI,OAAS,EAAA,MAAA,EAAQ,qBAAqB,SAAU,EAAA;AAAA,MAElE,QAAA,EAAA;AAAA,wBAACA,eAAA,CAAA,KAAA,EAAA,EAAI,OAAO,EAAE,GAAA,EAAK,GAAG,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,EAClD,EAAA,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,gBAAc,EAAA,EAAA,CAAA;AAAA,UACdC,qBAAA,CAAK,EAAE,4BAA4B;AAAA,SACrC,EAAA,CAAA;AAAA,wBACAH,eAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,GAAA,EAAK,GAAG,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,EAClD,EAAA,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACG,kBAAgB,EAAA,EAAA,CAAA;AAAA,UAChBD,qBAAA,CAAK,EAAE,4BAA4B;AAAA,SACrC,EAAA;AAAA;AAAA;AAAA,GACD;AAEF","file":"ArrowLegendView.js","sourcesContent":["import { IconArrowDown24, IconArrowUp24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardViewStateValue } from \"../../../utils/viewState\";\n\nexport function ArrowLegendsView() {\n\tconst showArrows = useScorecardViewStateValue<boolean>(\"arrows\");\n\n\tif (!showArrows) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ gap: 16, display: \"grid\", gridTemplateColumns: \"1fr 1fr\" }}\n\t\t>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowUp24 />\n\t\t\t\t{i18n.t(\"Increased from last period\")}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowDown24 />\n\t\t\t\t{i18n.t(\"Decreased from last period\")}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/ArrowLegendView.tsx"],"names":["useScorecardViewStateValue","jsxs","jsx","IconArrowUp24","i18n","IconArrowDown24"],"mappings":";;;;;;;;;;;AAIO,SAAS,gBAAA,GAAmB;AAClC,EAAA,MAAM,UAAA,GAAaA,qCAAoC,QAAQ,CAAA;AAE/D,EAAA,IAAI,CAAC,UAAA,EAAY;AAChB,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,GAAA,EAAK,IAAI,OAAA,EAAS,MAAA,EAAQ,qBAAqB,SAAA,EAAU;AAAA,MAElE,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,GAAA,EAAK,GAAG,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAS,EAC3D,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,gBAAA,EAAA,EAAc,CAAA;AAAA,UACdC,qBAAA,CAAK,EAAE,4BAA4B;AAAA,SAAA,EACrC,CAAA;AAAA,wBACAH,eAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,GAAA,EAAK,GAAG,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAS,EAC3D,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACG,kBAAA,EAAA,EAAgB,CAAA;AAAA,UAChBD,qBAAA,CAAK,EAAE,4BAA4B;AAAA,SAAA,EACrC;AAAA;AAAA;AAAA,GACD;AAEF","file":"ArrowLegendView.js","sourcesContent":["import { IconArrowDown24, IconArrowUp24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardViewStateValue } from \"../../../utils/viewState\";\n\nexport function ArrowLegendsView() {\n\tconst showArrows = useScorecardViewStateValue<boolean>(\"arrows\");\n\n\tif (!showArrows) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ gap: 16, display: \"grid\", gridTemplateColumns: \"1fr 1fr\" }}\n\t\t>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowUp24 />\n\t\t\t\t{i18n.t(\"Increased from last period\")}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowDown24 />\n\t\t\t\t{i18n.t(\"Decreased from last period\")}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -16,7 +16,7 @@ function LegendsView({ legends }) {
16
16
  /* @__PURE__ */ jsxRuntime.jsx("col", { width: "60%" }),
17
17
  /* @__PURE__ */ jsxRuntime.jsx("col", { width: "20%" }),
18
18
  /* @__PURE__ */ jsxRuntime.jsx("col", { width: "20%" }),
19
- /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
19
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { style: { fontSize: 14 }, children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
20
20
  /* @__PURE__ */ jsxRuntime.jsx("th", { align: "left", children: i18n__default.default.t("Legend") }),
21
21
  /* @__PURE__ */ jsxRuntime.jsx("th", { children: i18n__default.default.t("Min") }),
22
22
  /* @__PURE__ */ jsxRuntime.jsx("th", { children: i18n__default.default.t("Max") })
@@ -25,27 +25,43 @@ function LegendsView({ legends }) {
25
25
  const legendDefinition = lodash.find(legendDefinitions, {
26
26
  id: legend.legendDefinitionId
27
27
  });
28
- return /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
29
- /* @__PURE__ */ jsxRuntime.jsx("td", { children: /* @__PURE__ */ jsxRuntime.jsxs("table", { children: [
30
- /* @__PURE__ */ jsxRuntime.jsx("col", { width: "20%" }),
31
- /* @__PURE__ */ jsxRuntime.jsx("col", { width: "80%" }),
32
- /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
33
- /* @__PURE__ */ jsxRuntime.jsx("td", { children: /* @__PURE__ */ jsxRuntime.jsx(
28
+ return /* @__PURE__ */ jsxRuntime.jsxs(
29
+ "tr",
30
+ {
31
+ style: {
32
+ fontSize: 14
33
+ },
34
+ children: [
35
+ /* @__PURE__ */ jsxRuntime.jsx("td", { children: /* @__PURE__ */ jsxRuntime.jsxs(
34
36
  "div",
35
37
  {
36
38
  style: {
37
- height: 24,
38
- width: 32,
39
- background: legendDefinition?.color
40
- }
39
+ display: "grid",
40
+ alignItems: "center",
41
+ gap: 8,
42
+ gridTemplateColumns: "32px 1fr"
43
+ },
44
+ children: [
45
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
46
+ "div",
47
+ {
48
+ style: {
49
+ height: 24,
50
+ width: 32,
51
+ background: legendDefinition?.color
52
+ }
53
+ }
54
+ ) }),
55
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: legendDefinition?.name })
56
+ ]
41
57
  }
42
58
  ) }),
43
- /* @__PURE__ */ jsxRuntime.jsx("td", { children: legendDefinition?.name })
44
- ] }) })
45
- ] }) }),
46
- /* @__PURE__ */ jsxRuntime.jsx("td", { align: "center", children: legend?.startValue }),
47
- /* @__PURE__ */ jsxRuntime.jsx("td", { align: "center", children: legend?.endValue })
48
- ] }, `${legend.id}-view`);
59
+ /* @__PURE__ */ jsxRuntime.jsx("td", { align: "center", children: legend?.startValue }),
60
+ /* @__PURE__ */ jsxRuntime.jsx("td", { align: "center", children: legend?.endValue })
61
+ ]
62
+ },
63
+ `${legend.id}-view`
64
+ );
49
65
  }) })
50
66
  ] }) });
51
67
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/LegendView.tsx"],"names":["useScorecardConfig","jsx","jsxs","i18n","find"],"mappings":"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","file":"LegendView.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { find } from \"lodash\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type {\n\tLegendDefinition,\n\tScorecardLegend,\n} from \"../../../schemas/config\";\n\nexport interface LegendsViewProps {\n\tlegends: ScorecardLegend[];\n}\n\nexport function LegendsView({ legends }: LegendsViewProps) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config.legendDefinitions ?? [];\n\n\treturn (\n\t\t<div className=\"column gap-8\">\n\t\t\t<table>\n\t\t\t\t<col width=\"60%\" />\n\t\t\t\t<col width=\"20%\" />\n\t\t\t\t<col width=\"20%\" />\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th align=\"left\">{i18n.t(\"Legend\")}</th>\n\t\t\t\t\t\t<th>{i18n.t(\"Min\")}</th>\n\t\t\t\t\t\t<th>{i18n.t(\"Max\")}</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{legends?.map((legend) => {\n\t\t\t\t\t\tconst legendDefinition = find(legendDefinitions, {\n\t\t\t\t\t\t\tid: legend.legendDefinitionId,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<tr key={`${legend.id}-view`}>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<table>\n\t\t\t\t\t\t\t\t\t\t<col width=\"20%\" />\n\t\t\t\t\t\t\t\t\t\t<col width=\"80%\" />\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: 24,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 32,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlegendDefinition?.color,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{legendDefinition?.name}\n\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align=\"center\">{legend?.startValue}</td>\n\t\t\t\t\t\t\t\t<td align=\"center\">{legend?.endValue}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t);\n}\n\nexport interface LegendViewProps {\n\tlegend: LegendDefinition;\n}\n\nexport function LegendView({ legend }: LegendViewProps) {\n\tconst { color, name, id } = legend;\n\treturn (\n\t\t<div\n\t\t\tkey={id}\n\t\t\tstyle={{ display: \"grid\", gap: 8, gridTemplateColumns: \"auto 1fr\" }}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 25,\n\t\t\t\t\tbackground: color,\n\t\t\t\t\tborder: \"1px solid rgb(232, 237, 242)\",\n\t\t\t\t\tpadding: 16,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<p style={{ paddingLeft: 8, marginRight: 8 }}>{name}</p>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/LegendView.tsx"],"names":["useScorecardConfig","jsx","i18n","find","jsxs"],"mappings":"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","file":"LegendView.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { find } from \"lodash\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type {\n\tLegendDefinition,\n\tScorecardLegend,\n} from \"../../../schemas/config\";\n\nexport interface LegendsViewProps {\n\tlegends: ScorecardLegend[];\n}\n\nexport function LegendsView({ legends }: LegendsViewProps) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config.legendDefinitions ?? [];\n\n\treturn (\n\t\t<div className=\"column gap-8\">\n\t\t\t<table>\n\t\t\t\t<col width=\"60%\" />\n\t\t\t\t<col width=\"20%\" />\n\t\t\t\t<col width=\"20%\" />\n\t\t\t\t<thead style={{ fontSize: 14 }}>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th align=\"left\">{i18n.t(\"Legend\")}</th>\n\t\t\t\t\t\t<th>{i18n.t(\"Min\")}</th>\n\t\t\t\t\t\t<th>{i18n.t(\"Max\")}</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{legends?.map((legend) => {\n\t\t\t\t\t\tconst legendDefinition = find(legendDefinitions, {\n\t\t\t\t\t\t\tid: legend.legendDefinitionId,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tkey={`${legend.id}-view`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\t\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t\t\t\t\t\t\tgridTemplateColumns: \"32px 1fr\",\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\t\theight: 24,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth: 32,\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlegendDefinition?.color,\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div>{legendDefinition?.name}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t<td align=\"center\">{legend?.startValue}</td>\n\t\t\t\t\t\t\t\t<td align=\"center\">{legend?.endValue}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t);\n}\n\nexport interface LegendViewProps {\n\tlegend: LegendDefinition;\n}\n\nexport function LegendView({ legend }: LegendViewProps) {\n\tconst { color, name, id } = legend;\n\treturn (\n\t\t<div\n\t\t\tkey={id}\n\t\t\tstyle={{ display: \"grid\", gap: 8, gridTemplateColumns: \"auto 1fr\" }}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 25,\n\t\t\t\t\tbackground: color,\n\t\t\t\t\tborder: \"1px solid rgb(232, 237, 242)\",\n\t\t\t\t\tpadding: 16,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<p style={{ paddingLeft: 8, marginRight: 8 }}>{name}</p>\n\t\t</div>\n\t);\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var ui = require('@dhis2/ui');
5
4
  var i18n = require('@dhis2/d2-i18n');
6
5
  var LegendView = require('./LegendView');
7
6
  var MetaProvider = require('../../MetaProvider');
7
+ var ui = require('@dhis2/ui');
8
8
 
9
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
@@ -20,35 +20,69 @@ function OrgUnitLevelSpecificTargetView({
20
20
  "div",
21
21
  {
22
22
  style: {
23
- maxWidth: 350,
24
- border: `1px solid ${ui.colors.grey600}`,
25
23
  borderRadius: 4,
26
- gap: 8
24
+ gap: 8,
25
+ maxWidth: "fit-content",
26
+ display: "flex",
27
+ flexDirection: "column",
28
+ padding: 16,
29
+ fontSize: 14
27
30
  },
28
- className: "column gap-16 p-16",
29
31
  children: [
30
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
32
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { fontSize: 16 }, children: [
31
33
  /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [
32
34
  i18n__default.default.t("Data Source"),
33
35
  ": "
34
36
  ] }),
35
37
  label
36
38
  ] }),
37
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { gap: 16 }, className: "column gap-8", children: Object.keys(specificTarget).map((key) => {
38
- const orgUnitLevel = orgUnitLevels.find(
39
- (level) => level.id === key
40
- );
41
- const legends = specificTarget[key];
42
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
43
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "column gap-16", children: /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [
44
- i18n__default.default.t("Organisation Unit Level"),
45
- ":",
46
- " ",
47
- orgUnitLevel?.displayName
48
- ] }) }) }),
49
- /* @__PURE__ */ jsxRuntime.jsx(LegendView.LegendsView, { legends })
50
- ] });
51
- }) })
39
+ /* @__PURE__ */ jsxRuntime.jsx(
40
+ "div",
41
+ {
42
+ style: {
43
+ gap: 16,
44
+ display: "grid",
45
+ gridTemplateColumns: "1fr 1fr"
46
+ },
47
+ children: Object.keys(specificTarget).map((key) => {
48
+ const orgUnitLevel = orgUnitLevels.find(
49
+ (level) => level.id === key
50
+ );
51
+ const legends = specificTarget[key];
52
+ return /* @__PURE__ */ jsxRuntime.jsxs(
53
+ "div",
54
+ {
55
+ style: {
56
+ border: `1px solid ${ui.colors.grey600}`,
57
+ padding: 16,
58
+ borderRadius: 4,
59
+ fontSize: 14
60
+ },
61
+ children: [
62
+ /* @__PURE__ */ jsxRuntime.jsx(
63
+ "div",
64
+ {
65
+ style: {
66
+ display: "flex",
67
+ flexDirection: "column",
68
+ gap: 4
69
+ },
70
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
71
+ /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [
72
+ i18n__default.default.t("Organisation Unit Level"),
73
+ ": "
74
+ ] }),
75
+ orgUnitLevel?.displayName
76
+ ] })
77
+ }
78
+ ),
79
+ /* @__PURE__ */ jsxRuntime.jsx(LegendView.LegendsView, { legends })
80
+ ]
81
+ }
82
+ );
83
+ })
84
+ }
85
+ )
52
86
  ]
53
87
  }
54
88
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.tsx"],"names":["useScorecardMeta","jsxs","colors","i18n","jsx","LegendsView"],"mappings":";;;;;;;;;;;;AAWO,SAAS,8BAA+B,CAAA;AAAA,EAC9C,cAAA;AAAA,EACA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,OAAOA,6BAAiB,EAAA;AAC9B,EAAM,MAAA,aAAA,GAAgB,IAAM,EAAA,aAAA,IAAiB,EAAC;AAE9C,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,QAAU,EAAA,GAAA;AAAA,QACV,MAAA,EAAQ,CAAa,UAAA,EAAAC,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,QACnC,YAAc,EAAA,CAAA;AAAA,QACd,GAAK,EAAA;AAAA,OACN;AAAA,MACA,SAAU,EAAA,oBAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAAD,eAAA,CAAC,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA;AAAA,YAAAE,qBAAA,CAAK,EAAE,aAAa,CAAA;AAAA,YAAE;AAAA,WAAE,EAAA,CAAA;AAAA,UAC3B;AAAA,SACF,EAAA,CAAA;AAAA,wBACCC,cAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,KAAK,EAAG,EAAA,EAAG,SAAU,EAAA,cAAA,EACjC,iBAAO,IAAK,CAAA,cAAc,CAAE,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA;AACzC,UAAA,MAAM,eAAe,aAAc,CAAA,IAAA;AAAA,YAClC,CAAC,KAAU,KAAA,KAAA,CAAM,EAAO,KAAA;AAAA,WACzB;AACA,UAAM,MAAA,OAAA,GAAU,eAAe,GAAG,CAAA;AAClC,UAAA,uCACE,KACA,EAAA,EAAA,QAAA,EAAA;AAAA,4BAAAA,cAAA,CAAC,SAAI,SAAU,EAAA,eAAA,EACd,QAAC,kBAAAA,cAAA,CAAA,KAAA,EAAA,EACA,0CAAC,GACC,EAAA,EAAA,QAAA,EAAA;AAAA,cAAAD,qBAAA,CAAK,EAAE,yBAAyB,CAAA;AAAA,cAAE,GAAA;AAAA,cAAE,GAAA;AAAA,cACpC,YAAc,EAAA;AAAA,aAAA,EAChB,GACD,CACD,EAAA,CAAA;AAAA,4BACAC,cAAA,CAACC,0BAAY,OAAkB,EAAA;AAAA,WAChC,EAAA,CAAA;AAAA,SAED,CACF,EAAA;AAAA;AAAA;AAAA,GACD;AAEF","file":"OrgUnitLevelSpecificTargetView.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { LegendsView } from \"./LegendView\";\nimport type { OrgUnitLevelLegend } from \"../../../schemas/config\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: OrgUnitLevelLegend;\n\tlabel: string;\n}\n\nexport function OrgUnitLevelSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst meta = useScorecardMeta();\n\tconst orgUnitLevels = meta?.orgUnitLevels ?? [];\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tmaxWidth: 350,\n\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t\tgap: 8,\n\t\t\t}}\n\t\t\tclassName=\"column gap-16 p-16\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<b>{i18n.t(\"Data Source\")}: </b>\n\t\t\t\t{label}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 16 }} className=\"column gap-8\">\n\t\t\t\t{Object.keys(specificTarget).map((key) => {\n\t\t\t\t\tconst orgUnitLevel = orgUnitLevels.find(\n\t\t\t\t\t\t(level) => level.id === key,\n\t\t\t\t\t);\n\t\t\t\t\tconst legends = specificTarget[key];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<div className=\"column gap-16\">\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<b>\n\t\t\t\t\t\t\t\t\t\t{i18n.t(\"Organisation Unit Level\")}:{\" \"}\n\t\t\t\t\t\t\t\t\t\t{orgUnitLevel?.displayName}\n\t\t\t\t\t\t\t\t\t</b>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<LegendsView legends={legends} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.tsx"],"names":["useScorecardMeta","jsxs","i18n","jsx","colors","LegendsView"],"mappings":";;;;;;;;;;;;AAWO,SAAS,8BAAA,CAA+B;AAAA,EAC9C,cAAA;AAAA,EACA;AACD,CAAA,EAAmC;AAClC,EAAA,MAAM,OAAOA,6BAAA,EAAiB;AAC9B,EAAA,MAAM,aAAA,GAAgB,IAAA,EAAM,aAAA,IAAiB,EAAC;AAE9C,EAAA,uBACCC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,YAAA,EAAc,CAAA;AAAA,QACd,GAAA,EAAK,CAAA;AAAA,QACL,QAAA,EAAU,aAAA;AAAA,QACV,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,OAAA,EAAS,EAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACX;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,IAAG,EAC1B,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA;AAAA,YAAAC,qBAAA,CAAK,EAAE,aAAa,CAAA;AAAA,YAAE;AAAA,WAAA,EAAE,CAAA;AAAA,UAC3B;AAAA,SAAA,EACF,CAAA;AAAA,wBACAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,GAAA,EAAK,EAAA;AAAA,cACL,OAAA,EAAS,MAAA;AAAA,cACT,mBAAA,EAAqB;AAAA,aACtB;AAAA,YAEC,iBAAO,IAAA,CAAK,cAAc,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,KAAQ;AACzC,cAAA,MAAM,eAAe,aAAA,CAAc,IAAA;AAAA,gBAClC,CAAC,KAAA,KAAU,KAAA,CAAM,EAAA,KAAO;AAAA,eACzB;AACA,cAAA,MAAM,OAAA,GAAU,eAAe,GAAG,CAAA;AAClC,cAAA,uBACCF,eAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACA,KAAA,EAAO;AAAA,oBACN,MAAA,EAAQ,CAAA,UAAA,EAAaG,SAAA,CAAO,OAAO,CAAA,CAAA;AAAA,oBACnC,OAAA,EAAS,EAAA;AAAA,oBACT,YAAA,EAAc,CAAA;AAAA,oBACd,QAAA,EAAU;AAAA,mBACX;AAAA,kBAEA,QAAA,EAAA;AAAA,oCAAAD,cAAA;AAAA,sBAAC,KAAA;AAAA,sBAAA;AAAA,wBACA,KAAA,EAAO;AAAA,0BACN,OAAA,EAAS,MAAA;AAAA,0BACT,aAAA,EAAe,QAAA;AAAA,0BACf,GAAA,EAAK;AAAA,yBACN;AAAA,wBAEA,0CAAC,KAAA,EAAA,EACA,QAAA,EAAA;AAAA,0CAAAF,eAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA;AAAA,4BAAAC,qBAAA,CAAK,EAAE,yBAAyB,CAAA;AAAA,4BAAE;AAAA,2BAAA,EAAE,CAAA;AAAA,0BACvC,YAAA,EAAc;AAAA,yBAAA,EAChB;AAAA;AAAA,qBACD;AAAA,oCACAC,cAAA,CAACE,0BAAY,OAAA,EAAkB;AAAA;AAAA;AAAA,eAChC;AAAA,YAEF,CAAC;AAAA;AAAA;AACF;AAAA;AAAA,GACD;AAEF","file":"OrgUnitLevelSpecificTargetView.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { LegendsView } from \"./LegendView\";\nimport type { OrgUnitLevelLegend } from \"../../../schemas/config\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { colors } from \"@dhis2/ui\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: OrgUnitLevelLegend;\n\tlabel: string;\n}\n\nexport function OrgUnitLevelSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst meta = useScorecardMeta();\n\tconst orgUnitLevels = meta?.orgUnitLevels ?? [];\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tborderRadius: 4,\n\t\t\t\tgap: 8,\n\t\t\t\tmaxWidth: \"fit-content\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\tpadding: 16,\n\t\t\t\tfontSize: 14,\n\t\t\t}}\n\t\t>\n\t\t\t<div style={{ fontSize: 16 }}>\n\t\t\t\t<b>{i18n.t(\"Data Source\")}: </b>\n\t\t\t\t{label}\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tgap: 16,\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgridTemplateColumns: \"1fr 1fr\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{Object.keys(specificTarget).map((key) => {\n\t\t\t\t\tconst orgUnitLevel = orgUnitLevels.find(\n\t\t\t\t\t\t(level) => level.id === key,\n\t\t\t\t\t);\n\t\t\t\t\tconst legends = specificTarget[key];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tborder: `1px solid ${colors.grey600}`,\n\t\t\t\t\t\t\t\tpadding: 16,\n\t\t\t\t\t\t\t\tborderRadius: 4,\n\t\t\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\tgap: 4,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<b>{i18n.t(\"Organisation Unit Level\")}: </b>\n\t\t\t\t\t\t\t\t\t{orgUnitLevel?.displayName}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<LegendsView legends={legends} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}