@hisptz/dhis2-analytics 2.0.14 → 2.0.15

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 (379) hide show
  1. package/dist/components/Scorecard/Scorecard.js +22 -0
  2. package/dist/components/Scorecard/Scorecard.js.map +1 -0
  3. package/dist/components/Scorecard/Scorecard.stories.js +1188 -0
  4. package/dist/components/Scorecard/Scorecard.stories.js.map +1 -0
  5. package/dist/components/Scorecard/components/ConfigProvider.js +17 -0
  6. package/dist/components/Scorecard/components/ConfigProvider.js.map +1 -0
  7. package/dist/components/Scorecard/components/DataProvider.js +39 -0
  8. package/dist/components/Scorecard/components/DataProvider.js.map +1 -0
  9. package/dist/components/Scorecard/components/MetaProvider.js +45 -0
  10. package/dist/components/Scorecard/components/MetaProvider.js.map +1 -0
  11. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js +29 -0
  12. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -0
  13. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js +30 -0
  14. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -0
  15. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js +62 -0
  16. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -0
  17. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.js +14 -0
  18. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.js.map +1 -0
  19. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.js +77 -0
  20. package/dist/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -0
  21. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js +42 -0
  22. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -0
  23. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css +11 -0
  24. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css.map +1 -0
  25. package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js +102 -0
  26. package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -0
  27. package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +24 -0
  28. package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -0
  29. package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js +27 -0
  30. package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -0
  31. package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +50 -0
  32. package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -0
  33. package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js +50 -0
  34. package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -0
  35. package/dist/components/Scorecard/components/ScorecardTable/components/DataValue.js +66 -0
  36. package/dist/components/Scorecard/components/ScorecardTable/components/DataValue.js.map +1 -0
  37. package/dist/components/Scorecard/components/ScorecardTable/components/DraggableCell.js +47 -0
  38. package/dist/components/Scorecard/components/ScorecardTable/components/DraggableCell.js.map +1 -0
  39. package/dist/components/Scorecard/components/ScorecardTable/components/DroppableCell.js +38 -0
  40. package/dist/components/Scorecard/components/ScorecardTable/components/DroppableCell.js.map +1 -0
  41. package/dist/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js +12 -0
  42. package/dist/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -0
  43. package/dist/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js +56 -0
  44. package/dist/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -0
  45. package/dist/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.js +152 -0
  46. package/dist/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -0
  47. package/dist/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.js +58 -0
  48. package/dist/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -0
  49. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +100 -0
  50. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -0
  51. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js +95 -0
  52. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -0
  53. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js +45 -0
  54. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js.map +1 -0
  55. package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +20 -0
  56. package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -0
  57. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +98 -0
  58. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -0
  59. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js +38 -0
  60. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js.map +1 -0
  61. package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js +15 -0
  62. package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -0
  63. package/dist/components/Scorecard/components/ScorecardTable/components/TableFoot.js +28 -0
  64. package/dist/components/Scorecard/components/ScorecardTable/components/TableFoot.js.map +1 -0
  65. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js +20 -0
  66. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -0
  67. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.module.css +12 -0
  68. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.module.css.map +1 -0
  69. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +40 -0
  70. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -0
  71. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +62 -0
  72. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -0
  73. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js +16 -0
  74. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -0
  75. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js +37 -0
  76. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -0
  77. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +49 -0
  78. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -0
  79. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +63 -0
  80. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -0
  81. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js +24 -0
  82. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -0
  83. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/index.js +14 -0
  84. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/index.js.map +1 -0
  85. package/dist/components/Scorecard/components/ScorecardTable/index.js +14 -0
  86. package/dist/components/Scorecard/components/ScorecardTable/index.js.map +1 -0
  87. package/dist/components/Scorecard/components/StateProvider.js +26 -0
  88. package/dist/components/Scorecard/components/StateProvider.js.map +1 -0
  89. package/dist/components/Scorecard/components/StateSetProvider.js +17 -0
  90. package/dist/components/Scorecard/components/StateSetProvider.js.map +1 -0
  91. package/dist/components/Scorecard/components/TableStateProvider.js +26 -0
  92. package/dist/components/Scorecard/components/TableStateProvider.js.map +1 -0
  93. package/dist/components/Scorecard/hooks/average.js +50 -0
  94. package/dist/components/Scorecard/hooks/average.js.map +1 -0
  95. package/dist/components/Scorecard/hooks/cellData.js +36 -0
  96. package/dist/components/Scorecard/hooks/cellData.js.map +1 -0
  97. package/dist/components/Scorecard/hooks/columns.js +150 -0
  98. package/dist/components/Scorecard/hooks/columns.js.map +1 -0
  99. package/dist/components/Scorecard/hooks/data.js +97 -0
  100. package/dist/components/Scorecard/hooks/data.js.map +1 -0
  101. package/dist/components/Scorecard/hooks/metadata.js +95 -0
  102. package/dist/components/Scorecard/hooks/metadata.js.map +1 -0
  103. package/dist/components/Scorecard/hooks/orgUnit.js +17 -0
  104. package/dist/components/Scorecard/hooks/orgUnit.js.map +1 -0
  105. package/dist/components/Scorecard/hooks/period.js +15 -0
  106. package/dist/components/Scorecard/hooks/period.js.map +1 -0
  107. package/dist/components/Scorecard/hooks/table.js +40 -0
  108. package/dist/components/Scorecard/hooks/table.js.map +1 -0
  109. package/dist/components/Scorecard/index.js +21 -0
  110. package/dist/components/Scorecard/index.js.map +1 -0
  111. package/dist/components/Scorecard/schemas/config.js +181 -0
  112. package/dist/components/Scorecard/schemas/config.js.map +1 -0
  113. package/dist/components/Scorecard/utils/analytics.js +27 -0
  114. package/dist/components/Scorecard/utils/analytics.js.map +1 -0
  115. package/dist/components/Scorecard/utils/columns.js +331 -0
  116. package/dist/components/Scorecard/utils/columns.js.map +1 -0
  117. package/dist/components/Scorecard/utils/data.js +147 -0
  118. package/dist/components/Scorecard/utils/data.js.map +1 -0
  119. package/dist/components/Scorecard/utils/dataSources.js +16 -0
  120. package/dist/components/Scorecard/utils/dataSources.js.map +1 -0
  121. package/dist/components/Scorecard/utils/engine.js +20 -0
  122. package/dist/components/Scorecard/utils/engine.js.map +1 -0
  123. package/dist/components/Scorecard/utils/legends.js +118 -0
  124. package/dist/components/Scorecard/utils/legends.js.map +1 -0
  125. package/dist/components/Scorecard/utils/orgUnits.js +40 -0
  126. package/dist/components/Scorecard/utils/orgUnits.js.map +1 -0
  127. package/dist/esm/components/Scorecard/Scorecard.js +20 -0
  128. package/dist/esm/components/Scorecard/Scorecard.js.map +1 -0
  129. package/dist/esm/components/Scorecard/Scorecard.stories.js +1178 -0
  130. package/dist/esm/components/Scorecard/Scorecard.stories.js.map +1 -0
  131. package/dist/esm/components/Scorecard/components/ConfigProvider.js +14 -0
  132. package/dist/esm/components/Scorecard/components/ConfigProvider.js.map +1 -0
  133. package/dist/esm/components/Scorecard/components/DataProvider.js +36 -0
  134. package/dist/esm/components/Scorecard/components/DataProvider.js.map +1 -0
  135. package/dist/esm/components/Scorecard/components/MetaProvider.js +42 -0
  136. package/dist/esm/components/Scorecard/components/MetaProvider.js.map +1 -0
  137. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js +23 -0
  138. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -0
  139. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js +27 -0
  140. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -0
  141. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js +55 -0
  142. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -0
  143. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.js +3 -0
  144. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.js.map +1 -0
  145. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.js +75 -0
  146. package/dist/esm/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -0
  147. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js +40 -0
  148. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -0
  149. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css +11 -0
  150. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css.map +1 -0
  151. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js +98 -0
  152. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -0
  153. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +22 -0
  154. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -0
  155. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js +25 -0
  156. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -0
  157. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +48 -0
  158. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -0
  159. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js +44 -0
  160. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -0
  161. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataValue.js +64 -0
  162. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataValue.js.map +1 -0
  163. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DraggableCell.js +45 -0
  164. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DraggableCell.js.map +1 -0
  165. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DroppableCell.js +36 -0
  166. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DroppableCell.js.map +1 -0
  167. package/dist/esm/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js +10 -0
  168. package/dist/esm/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -0
  169. package/dist/esm/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js +54 -0
  170. package/dist/esm/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -0
  171. package/dist/esm/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.js +146 -0
  172. package/dist/esm/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -0
  173. package/dist/esm/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.js +52 -0
  174. package/dist/esm/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -0
  175. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +94 -0
  176. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -0
  177. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js +93 -0
  178. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -0
  179. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js +43 -0
  180. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js.map +1 -0
  181. package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +14 -0
  182. package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -0
  183. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +96 -0
  184. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -0
  185. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js +36 -0
  186. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js.map +1 -0
  187. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js +13 -0
  188. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -0
  189. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableFoot.js +26 -0
  190. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableFoot.js.map +1 -0
  191. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js +18 -0
  192. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -0
  193. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.module.css +12 -0
  194. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.module.css.map +1 -0
  195. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +33 -0
  196. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -0
  197. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +54 -0
  198. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -0
  199. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js +14 -0
  200. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -0
  201. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js +31 -0
  202. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -0
  203. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +42 -0
  204. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -0
  205. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +56 -0
  206. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -0
  207. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js +22 -0
  208. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -0
  209. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/index.js +3 -0
  210. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/index.js.map +1 -0
  211. package/dist/esm/components/Scorecard/components/ScorecardTable/index.js +3 -0
  212. package/dist/esm/components/Scorecard/components/ScorecardTable/index.js.map +1 -0
  213. package/dist/esm/components/Scorecard/components/StateProvider.js +23 -0
  214. package/dist/esm/components/Scorecard/components/StateProvider.js.map +1 -0
  215. package/dist/esm/components/Scorecard/components/StateSetProvider.js +14 -0
  216. package/dist/esm/components/Scorecard/components/StateSetProvider.js.map +1 -0
  217. package/dist/esm/components/Scorecard/components/TableStateProvider.js +23 -0
  218. package/dist/esm/components/Scorecard/components/TableStateProvider.js.map +1 -0
  219. package/dist/esm/components/Scorecard/hooks/average.js +48 -0
  220. package/dist/esm/components/Scorecard/hooks/average.js.map +1 -0
  221. package/dist/esm/components/Scorecard/hooks/cellData.js +34 -0
  222. package/dist/esm/components/Scorecard/hooks/cellData.js.map +1 -0
  223. package/dist/esm/components/Scorecard/hooks/columns.js +147 -0
  224. package/dist/esm/components/Scorecard/hooks/columns.js.map +1 -0
  225. package/dist/esm/components/Scorecard/hooks/data.js +95 -0
  226. package/dist/esm/components/Scorecard/hooks/data.js.map +1 -0
  227. package/dist/esm/components/Scorecard/hooks/metadata.js +92 -0
  228. package/dist/esm/components/Scorecard/hooks/metadata.js.map +1 -0
  229. package/dist/esm/components/Scorecard/hooks/orgUnit.js +15 -0
  230. package/dist/esm/components/Scorecard/hooks/orgUnit.js.map +1 -0
  231. package/dist/esm/components/Scorecard/hooks/period.js +13 -0
  232. package/dist/esm/components/Scorecard/hooks/period.js.map +1 -0
  233. package/dist/esm/components/Scorecard/hooks/table.js +38 -0
  234. package/dist/esm/components/Scorecard/hooks/table.js.map +1 -0
  235. package/dist/esm/components/Scorecard/index.js +4 -0
  236. package/dist/esm/components/Scorecard/index.js.map +1 -0
  237. package/dist/esm/components/Scorecard/schemas/config.js +163 -0
  238. package/dist/esm/components/Scorecard/schemas/config.js.map +1 -0
  239. package/dist/esm/components/Scorecard/utils/analytics.js +25 -0
  240. package/dist/esm/components/Scorecard/utils/analytics.js.map +1 -0
  241. package/dist/esm/components/Scorecard/utils/columns.js +326 -0
  242. package/dist/esm/components/Scorecard/utils/columns.js.map +1 -0
  243. package/dist/esm/components/Scorecard/utils/data.js +144 -0
  244. package/dist/esm/components/Scorecard/utils/data.js.map +1 -0
  245. package/dist/esm/components/Scorecard/utils/dataSources.js +13 -0
  246. package/dist/esm/components/Scorecard/utils/dataSources.js.map +1 -0
  247. package/dist/esm/components/Scorecard/utils/engine.js +18 -0
  248. package/dist/esm/components/Scorecard/utils/engine.js.map +1 -0
  249. package/dist/esm/components/Scorecard/utils/legends.js +115 -0
  250. package/dist/esm/components/Scorecard/utils/legends.js.map +1 -0
  251. package/dist/esm/components/Scorecard/utils/orgUnits.js +37 -0
  252. package/dist/esm/components/Scorecard/utils/orgUnits.js.map +1 -0
  253. package/dist/esm/index.js +1 -0
  254. package/dist/esm/index.js.map +1 -1
  255. package/dist/index.js +7 -0
  256. package/dist/index.js.map +1 -1
  257. package/dist/types/components/Scorecard/Scorecard.d.ts +10 -0
  258. package/dist/types/components/Scorecard/Scorecard.d.ts.map +1 -0
  259. package/dist/types/components/Scorecard/components/ConfigProvider.d.ts +125 -0
  260. package/dist/types/components/Scorecard/components/ConfigProvider.d.ts.map +1 -0
  261. package/dist/types/components/Scorecard/components/DataProvider.d.ts +13 -0
  262. package/dist/types/components/Scorecard/components/DataProvider.d.ts.map +1 -0
  263. package/dist/types/components/Scorecard/components/MetaProvider.d.ts +18 -0
  264. package/dist/types/components/Scorecard/components/MetaProvider.d.ts.map +1 -0
  265. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.d.ts +6 -0
  266. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.d.ts.map +1 -0
  267. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.d.ts +12 -0
  268. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.d.ts.map +1 -0
  269. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.d.ts +9 -0
  270. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.d.ts.map +1 -0
  271. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.d.ts +2 -0
  272. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisDictionary/index.d.ts.map +1 -0
  273. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.d.ts +6 -0
  274. package/dist/types/components/Scorecard/components/ScorecardTable/FurtherAnalysisVisualization.d.ts.map +1 -0
  275. package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts +2 -0
  276. package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts.map +1 -0
  277. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts +19 -0
  278. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts.map +1 -0
  279. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.d.ts +4 -0
  280. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.d.ts.map +1 -0
  281. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts +7 -0
  282. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts.map +1 -0
  283. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts +4 -0
  284. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -0
  285. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataRow.d.ts +8 -0
  286. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataRow.d.ts.map +1 -0
  287. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataValue.d.ts +6 -0
  288. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataValue.d.ts.map +1 -0
  289. package/dist/types/components/Scorecard/components/ScorecardTable/components/DraggableCell.d.ts +8 -0
  290. package/dist/types/components/Scorecard/components/ScorecardTable/components/DraggableCell.d.ts.map +1 -0
  291. package/dist/types/components/Scorecard/components/ScorecardTable/components/DroppableCell.d.ts +7 -0
  292. package/dist/types/components/Scorecard/components/ScorecardTable/components/DroppableCell.d.ts.map +1 -0
  293. package/dist/types/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.d.ts +4 -0
  294. package/dist/types/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.d.ts.map +1 -0
  295. package/dist/types/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.d.ts +7 -0
  296. package/dist/types/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.d.ts.map +1 -0
  297. package/dist/types/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.d.ts +15 -0
  298. package/dist/types/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisMenu.d.ts.map +1 -0
  299. package/dist/types/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.d.ts +13 -0
  300. package/dist/types/components/Scorecard/components/ScorecardTable/components/FurtherAnalysisModal.d.ts.map +1 -0
  301. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts +19 -0
  302. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts.map +1 -0
  303. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts +14 -0
  304. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts.map +1 -0
  305. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.d.ts +6 -0
  306. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.d.ts.map +1 -0
  307. package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts +4 -0
  308. package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts.map +1 -0
  309. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts +14 -0
  310. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts.map +1 -0
  311. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.d.ts +6 -0
  312. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.d.ts.map +1 -0
  313. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts +2 -0
  314. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts.map +1 -0
  315. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableFoot.d.ts +2 -0
  316. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableFoot.d.ts.map +1 -0
  317. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.d.ts +2 -0
  318. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.d.ts.map +1 -0
  319. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts +4 -0
  320. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts.map +1 -0
  321. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts +5 -0
  322. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -0
  323. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.d.ts +4 -0
  324. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.d.ts.map +1 -0
  325. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts +7 -0
  326. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts.map +1 -0
  327. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts +6 -0
  328. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -0
  329. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts +7 -0
  330. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts.map +1 -0
  331. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.d.ts +7 -0
  332. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.d.ts.map +1 -0
  333. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/index.d.ts +2 -0
  334. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/index.d.ts.map +1 -0
  335. package/dist/types/components/Scorecard/components/ScorecardTable/index.d.ts +2 -0
  336. package/dist/types/components/Scorecard/components/ScorecardTable/index.d.ts.map +1 -0
  337. package/dist/types/components/Scorecard/components/StateProvider.d.ts +41 -0
  338. package/dist/types/components/Scorecard/components/StateProvider.d.ts.map +1 -0
  339. package/dist/types/components/Scorecard/components/StateSetProvider.d.ts +9 -0
  340. package/dist/types/components/Scorecard/components/StateSetProvider.d.ts.map +1 -0
  341. package/dist/types/components/Scorecard/components/TableStateProvider.d.ts +55 -0
  342. package/dist/types/components/Scorecard/components/TableStateProvider.d.ts.map +1 -0
  343. package/dist/types/components/Scorecard/hooks/average.d.ts +14 -0
  344. package/dist/types/components/Scorecard/hooks/average.d.ts.map +1 -0
  345. package/dist/types/components/Scorecard/hooks/cellData.d.ts +18 -0
  346. package/dist/types/components/Scorecard/hooks/cellData.d.ts.map +1 -0
  347. package/dist/types/components/Scorecard/hooks/columns.d.ts +54 -0
  348. package/dist/types/components/Scorecard/hooks/columns.d.ts.map +1 -0
  349. package/dist/types/components/Scorecard/hooks/data.d.ts +70 -0
  350. package/dist/types/components/Scorecard/hooks/data.d.ts.map +1 -0
  351. package/dist/types/components/Scorecard/hooks/metadata.d.ts +34 -0
  352. package/dist/types/components/Scorecard/hooks/metadata.d.ts.map +1 -0
  353. package/dist/types/components/Scorecard/hooks/orgUnit.d.ts +5 -0
  354. package/dist/types/components/Scorecard/hooks/orgUnit.d.ts.map +1 -0
  355. package/dist/types/components/Scorecard/hooks/period.d.ts +2 -0
  356. package/dist/types/components/Scorecard/hooks/period.d.ts.map +1 -0
  357. package/dist/types/components/Scorecard/hooks/table.d.ts +4 -0
  358. package/dist/types/components/Scorecard/hooks/table.d.ts.map +1 -0
  359. package/dist/types/components/Scorecard/index.d.ts +3 -0
  360. package/dist/types/components/Scorecard/index.d.ts.map +1 -0
  361. package/dist/types/components/Scorecard/schemas/config.d.ts +2522 -0
  362. package/dist/types/components/Scorecard/schemas/config.d.ts.map +1 -0
  363. package/dist/types/components/Scorecard/utils/analytics.d.ts +10 -0
  364. package/dist/types/components/Scorecard/utils/analytics.d.ts.map +1 -0
  365. package/dist/types/components/Scorecard/utils/columns.d.ts +71 -0
  366. package/dist/types/components/Scorecard/utils/columns.d.ts.map +1 -0
  367. package/dist/types/components/Scorecard/utils/data.d.ts +16 -0
  368. package/dist/types/components/Scorecard/utils/data.d.ts.map +1 -0
  369. package/dist/types/components/Scorecard/utils/dataSources.d.ts +35 -0
  370. package/dist/types/components/Scorecard/utils/dataSources.d.ts.map +1 -0
  371. package/dist/types/components/Scorecard/utils/engine.d.ts +14 -0
  372. package/dist/types/components/Scorecard/utils/engine.d.ts.map +1 -0
  373. package/dist/types/components/Scorecard/utils/legends.d.ts +22 -0
  374. package/dist/types/components/Scorecard/utils/legends.d.ts.map +1 -0
  375. package/dist/types/components/Scorecard/utils/orgUnits.d.ts +7 -0
  376. package/dist/types/components/Scorecard/utils/orgUnits.d.ts.map +1 -0
  377. package/dist/types/index.d.ts +1 -0
  378. package/dist/types/index.d.ts.map +1 -1
  379. package/package.json +8 -1
@@ -0,0 +1,147 @@
1
+ import { createColumnHelper } from '@tanstack/react-table';
2
+ import { useScorecardConfig } from '../components/ConfigProvider';
3
+ import { useScorecardMeta } from '../components/MetaProvider';
4
+ import { useScorecardState } from '../components/StateProvider';
5
+ import { useMemo } from 'react';
6
+ import { getOrgUnitColumnHeaders, getDataColumnHeaders, getAverageColumn } from '../utils/columns';
7
+ import { LabelCell } from '../components/ScorecardTable/components/TableHeader/components/LabelCell';
8
+ import { ExpandCell } from '../components/ScorecardTable/components/TableHeader/components/ExpandCell';
9
+ import { NumberCell } from '../components/ScorecardTable/components/TableHeader/components/NumberCell';
10
+ import { MetaHeaderCell } from '../components/ScorecardTable/components/TableHeader/components/MetaHeaderCell';
11
+ import { useCalendar } from './metadata';
12
+ import { MetaFooterCell } from '../components/ScorecardTable/components/MetaFooterCell';
13
+ import { getOrgUnitLevel } from '../utils/orgUnits';
14
+ import { useLowestOrgUnitLevel } from './orgUnit';
15
+
16
+ const columnHelper = createColumnHelper();
17
+ function useMetaColumns() {
18
+ const state = useScorecardState();
19
+ const lowestLevel = useLowestOrgUnitLevel();
20
+ const metaColumns = [
21
+ columnHelper.accessor(
22
+ (rowData) => {
23
+ if (state?.options?.disableExpanding) {
24
+ return false;
25
+ }
26
+ const dataInRows = state?.options?.showDataInRows;
27
+ if (dataInRows) {
28
+ return false;
29
+ }
30
+ if (!lowestLevel) {
31
+ return false;
32
+ }
33
+ const orgUnit = rowData.orgUnit;
34
+ if (!orgUnit) {
35
+ return false;
36
+ }
37
+ const ouLevel = getOrgUnitLevel(orgUnit);
38
+ return ouLevel !== lowestLevel.level;
39
+ },
40
+ {
41
+ id: "expand",
42
+ header: () => null,
43
+ meta: {
44
+ isMeta: true,
45
+ fixed: true,
46
+ label: ""
47
+ },
48
+ enableColumnFilter: false,
49
+ cell: ExpandCell,
50
+ footer: () => null
51
+ }
52
+ ),
53
+ columnHelper.accessor(
54
+ (_, index) => {
55
+ return index + 1;
56
+ },
57
+ {
58
+ id: "count",
59
+ header: () => null,
60
+ meta: {
61
+ isMeta: true,
62
+ fixed: true,
63
+ label: ""
64
+ },
65
+ enableColumnFilter: false,
66
+ cell: NumberCell,
67
+ footer: () => null
68
+ }
69
+ )
70
+ ];
71
+ if (state?.options?.showDataInRows) {
72
+ metaColumns.push(
73
+ columnHelper.accessor("label", {
74
+ header: () => null,
75
+ id: "dataItems",
76
+ meta: {
77
+ filterable: true
78
+ },
79
+ enableColumnFilter: true,
80
+ cell: LabelCell,
81
+ footer: MetaFooterCell
82
+ })
83
+ );
84
+ } else {
85
+ metaColumns.push(
86
+ columnHelper.accessor("label", {
87
+ header: () => null,
88
+ id: "orgUnits",
89
+ enableColumnFilter: true,
90
+ meta: {
91
+ isMeta: true,
92
+ fixed: true
93
+ },
94
+ cell: LabelCell,
95
+ footer: MetaFooterCell
96
+ })
97
+ );
98
+ }
99
+ return metaColumns;
100
+ }
101
+ function useTableColumns() {
102
+ const config = useScorecardConfig();
103
+ const meta = useScorecardMeta();
104
+ const state = useScorecardState();
105
+ const metaColumns = useMetaColumns();
106
+ const calendar = useCalendar();
107
+ if (!config || !meta || !state) {
108
+ return [];
109
+ }
110
+ return useMemo(() => {
111
+ const columns = [
112
+ columnHelper.group({
113
+ id: "metaHeader",
114
+ columns: metaColumns,
115
+ header: MetaHeaderCell,
116
+ footer: () => null
117
+ })
118
+ ];
119
+ if (state.options.showDataInRows) {
120
+ columns.push(
121
+ ...getOrgUnitColumnHeaders({
122
+ meta,
123
+ calendar
124
+ })
125
+ );
126
+ } else {
127
+ columns.push(
128
+ ...getDataColumnHeaders({
129
+ meta,
130
+ config,
131
+ calendar
132
+ })
133
+ );
134
+ }
135
+ columns.push(
136
+ getAverageColumn({
137
+ meta,
138
+ config
139
+ })
140
+ );
141
+ return columns;
142
+ }, [state.options.showDataInRows]);
143
+ }
144
+
145
+ export { useMetaColumns, useTableColumns };
146
+ //# sourceMappingURL=out.js.map
147
+ //# sourceMappingURL=columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/hooks/columns.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport { useScorecardConfig } from \"../components/ConfigProvider\";\nimport { useScorecardMeta } from \"../components/MetaProvider\";\nimport { useScorecardState } from \"../components/StateProvider\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardTableCellData,\n\ttype ScorecardTableData,\n} from \"../schemas/config\";\nimport {\n\tgetAverageColumn,\n\tgetDataColumnHeaders,\n\tgetOrgUnitColumnHeaders,\n} from \"../utils/columns\";\nimport { LabelCell } from \"../components/ScorecardTable/components/TableHeader/components/LabelCell\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\nimport { NumberCell } from \"../components/ScorecardTable/components/TableHeader/components/NumberCell\";\nimport { MetaHeaderCell } from \"../components/ScorecardTable/components/TableHeader/components/MetaHeaderCell\";\nimport { useCalendar } from \"./metadata\";\nimport { MetaFooterCell } from \"../components/ScorecardTable/components/MetaFooterCell\";\nimport { getOrgUnitLevel } from \"../utils/orgUnits\";\nimport { useLowestOrgUnitLevel } from \"./orgUnit\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst state = useScorecardState();\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\tcolumnHelper.accessor(\n\t\t\t(rowData) => {\n\t\t\t\tif (state?.options?.disableExpanding) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst dataInRows = state?.options?.showDataInRows;\n\t\t\t\tif (dataInRows) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\tif (!orgUnit) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"expand\",\n\t\t\t\theader: () => null,\n\t\t\t\tmeta: {\n\t\t\t\t\tisMeta: true,\n\t\t\t\t\tfixed: true,\n\t\t\t\t\tlabel: \"\",\n\t\t\t\t},\n\t\t\t\tenableColumnFilter: false,\n\t\t\t\tcell: ExpandCell,\n\t\t\t\tfooter: () => null,\n\t\t\t},\n\t\t),\n\t\tcolumnHelper.accessor(\n\t\t\t(_, index) => {\n\t\t\t\treturn index + 1;\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"count\",\n\t\t\t\theader: () => null,\n\t\t\t\tmeta: {\n\t\t\t\t\tisMeta: true,\n\t\t\t\t\tfixed: true,\n\t\t\t\t\tlabel: \"\",\n\t\t\t\t},\n\t\t\t\tenableColumnFilter: false,\n\t\t\t\tcell: NumberCell,\n\t\t\t\tfooter: () => null,\n\t\t\t},\n\t\t),\n\t];\n\n\tif (state?.options?.showDataInRows) {\n\t\tmetaColumns.push(\n\t\t\tcolumnHelper.accessor(\"label\", {\n\t\t\t\theader: () => null,\n\t\t\t\tid: \"dataItems\",\n\t\t\t\tmeta: {\n\t\t\t\t\tfilterable: true,\n\t\t\t\t},\n\t\t\t\tenableColumnFilter: true,\n\t\t\t\tcell: LabelCell,\n\t\t\t\tfooter: MetaFooterCell,\n\t\t\t}),\n\t\t);\n\t} else {\n\t\tmetaColumns.push(\n\t\t\tcolumnHelper.accessor(\"label\", {\n\t\t\t\theader: () => null,\n\t\t\t\tid: \"orgUnits\",\n\t\t\t\tenableColumnFilter: true,\n\t\t\t\tmeta: {\n\t\t\t\t\tisMeta: true,\n\t\t\t\t\tfixed: true,\n\t\t\t\t},\n\t\t\t\tcell: LabelCell,\n\t\t\t\tfooter: MetaFooterCell,\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn metaColumns;\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellData\n>[] {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst state = useScorecardState();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\n\tif (!config || !meta || !state) {\n\t\treturn [];\n\t}\n\treturn useMemo(() => {\n\t\tconst columns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.group({\n\t\t\t\tid: \"metaHeader\",\n\t\t\t\tcolumns: metaColumns,\n\t\t\t\theader: MetaHeaderCell,\n\t\t\t\tfooter: () => null,\n\t\t\t}),\n\t\t];\n\n\t\tif (state.options.showDataInRows) {\n\t\t\tcolumns.push(\n\t\t\t\t...getOrgUnitColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tcalendar,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tcolumns.push(\n\t\t\t\t...getDataColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tconfig,\n\t\t\t\t\tcalendar,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tcolumns.push(\n\t\t\tgetAverageColumn({\n\t\t\t\tmeta,\n\t\t\t\tconfig,\n\t\t\t}),\n\t\t);\n\n\t\treturn columns;\n\t}, [state.options.showDataInRows]);\n}\n"]}
@@ -0,0 +1,95 @@
1
+ import { useScorecardState } from '../components/StateProvider';
2
+ import { useMemo } from 'react';
3
+ import { getDimensions } from '../utils/analytics';
4
+ import { useScorecardConfig } from '../components/ConfigProvider';
5
+ import { useDataQuery } from '@dhis2/app-runtime';
6
+ import { getAdjacentFixedPeriods, createFixedPeriodFromPeriodId } from '@dhis2/multi-calendar-dates';
7
+ import { uniq, isEmpty } from 'lodash';
8
+ import { useScorecardMeta } from '../components/MetaProvider';
9
+ import { sanitizeAnalyticsData, getTableDataFromAnalytics } from '../utils/data';
10
+ import { useCalendar } from './metadata';
11
+
12
+ const query = {
13
+ data: {
14
+ resource: "analytics",
15
+ params: ({
16
+ periods,
17
+ orgUnits,
18
+ dataItems
19
+ }) => {
20
+ return {
21
+ skipMeta: true,
22
+ dimension: [
23
+ `pe:${periods.join(";")}`,
24
+ `dx:${dataItems.join(";")}`,
25
+ `ou:${orgUnits.join(";")}`
26
+ ]
27
+ };
28
+ }
29
+ }
30
+ };
31
+ function useGetScorecardData() {
32
+ const config = useScorecardConfig();
33
+ const meta = useScorecardMeta();
34
+ const state = useScorecardState();
35
+ const calendar = useCalendar();
36
+ if (!config || !state || !meta) {
37
+ throw new Error(
38
+ "Invalid scorecard setup. Make sure the valid config and state props are passed."
39
+ );
40
+ }
41
+ const { dataItemsIds, orgUnitsIds, periodsIds } = getDimensions({
42
+ config,
43
+ state
44
+ });
45
+ const analyticsPeriod = useMemo(() => {
46
+ const pastPeriods = periodsIds.map((periodId) => {
47
+ const pe = getAdjacentFixedPeriods({
48
+ calendar,
49
+ steps: -1,
50
+ period: createFixedPeriodFromPeriodId({
51
+ calendar,
52
+ periodId
53
+ })
54
+ });
55
+ return pe.map(({ id }) => id);
56
+ }).flat();
57
+ return uniq([...periodsIds, ...pastPeriods]);
58
+ }, [periodsIds]);
59
+ const { loading, data: rawAnalyticsData } = useDataQuery(query, {
60
+ variables: {
61
+ periods: analyticsPeriod,
62
+ dataItems: dataItemsIds,
63
+ orgUnits: orgUnitsIds
64
+ }
65
+ });
66
+ const rawData = useMemo(() => {
67
+ if (!rawAnalyticsData)
68
+ return [];
69
+ return sanitizeAnalyticsData(rawAnalyticsData);
70
+ }, [rawAnalyticsData]);
71
+ const data = useMemo(() => {
72
+ if (rawAnalyticsData) {
73
+ const data2 = getTableDataFromAnalytics(rawAnalyticsData, {
74
+ meta,
75
+ state,
76
+ config
77
+ });
78
+ if (!!state.options.emptyRows) {
79
+ return data2;
80
+ } else {
81
+ return data2.filter(({ dataValues }) => !isEmpty(dataValues));
82
+ }
83
+ }
84
+ return [];
85
+ }, [rawAnalyticsData, meta]);
86
+ return {
87
+ loading,
88
+ data,
89
+ rawData
90
+ };
91
+ }
92
+
93
+ export { useGetScorecardData };
94
+ //# sourceMappingURL=out.js.map
95
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/hooks/data.ts"],"names":["data"],"mappings":"AAAA,SAAS,yBAAyB;AAClC,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AAC7B;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,SAAS,YAAY;AAC9B,SAAS,wBAAwB;AACjC;AAAA,EACC;AAAA,EACA;AAAA,OACM;AACP,SAAS,mBAAmB;AAE5B,MAAM,QAAa;AAAA,EAClB,MAAM;AAAA,IACL,UAAU;AAAA,IACV,QAAQ,CAAC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACD,MAIM;AACL,aAAO;AAAA,QACN,UAAU;AAAA,QACV,WAAW;AAAA,UACV,MAAM,QAAQ,KAAK,GAAG,CAAC;AAAA,UACvB,MAAM,UAAU,KAAK,GAAG,CAAC;AAAA,UACzB,MAAM,SAAS,KAAK,GAAG,CAAC;AAAA,QACzB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAkBO,SAAS,sBAAsB;AACrC,QAAM,SAAS,mBAAmB;AAClC,QAAM,OAAO,iBAAiB;AAC9B,QAAM,QAAQ,kBAAkB;AAChC,QAAM,WAAW,YAAY;AAC7B,MAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM;AAC/B,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,QAAM,EAAE,cAAc,aAAa,WAAW,IAAI,cAAc;AAAA,IAC/D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,kBAAkB,QAAQ,MAAM;AACrC,UAAM,cAAc,WAClB,IAAI,CAAC,aAAa;AAClB,YAAM,KAAK,wBAAwB;AAAA,QAClC;AAAA,QACA,OAAO;AAAA,QACP,QAAQ,8BAA8B;AAAA,UACrC;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF,CAAC;AACD,aAAO,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;AAAA,IAC7B,CAAC,EACA,KAAK;AAEP,WAAO,KAAK,CAAC,GAAG,YAAY,GAAG,WAAW,CAAC;AAAA,EAC5C,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,EAAE,SAAS,MAAM,iBAAiB,IACvC,aAAyC,OAAO;AAAA,IAC/C,WAAW;AAAA,MACV,SAAS;AAAA,MACT,WAAW;AAAA,MACX,UAAU;AAAA,IACX;AAAA,EACD,CAAC;AAEF,QAAM,UAAU,QAAQ,MAAM;AAC7B,QAAI,CAAC;AAAkB,aAAO,CAAC;AAC/B,WAAO,sBAAsB,gBAAgB;AAAA,EAC9C,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,OAAO,QAAQ,MAAM;AAC1B,QAAI,kBAAkB;AACrB,YAAMA,QAAO,0BAA0B,kBAAkB;AAAA,QACxD;AAAA,QACA;AAAA,QACA;AAAA,MACD,CAAC;AACD,UAAI,CAAC,CAAC,MAAM,QAAQ,WAAW;AAC9B,eAAOA;AAAA,MACR,OAAO;AACN,eAAOA,MAAK,OAAO,CAAC,EAAE,WAAW,MAAM,CAAC,QAAQ,UAAU,CAAC;AAAA,MAC5D;AAAA,IACD;AACA,WAAO,CAAC;AAAA,EACT,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAE3B,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import { useScorecardState } from \"../components/StateProvider\";\nimport { useMemo } from \"react\";\nimport { getDimensions } from \"../utils/analytics\";\nimport { useScorecardConfig } from \"../components/ConfigProvider\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport {\n\tcreateFixedPeriodFromPeriodId,\n\tgetAdjacentFixedPeriods,\n} from \"@dhis2/multi-calendar-dates\";\nimport { isEmpty, uniq } from \"lodash\";\nimport { useScorecardMeta } from \"../components/MetaProvider\";\nimport {\n\tgetTableDataFromAnalytics,\n\tsanitizeAnalyticsData,\n} from \"../utils/data\";\nimport { useCalendar } from \"./metadata\";\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: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface ScorecardDataQueryResponse {\n\tdata: {\n\t\theaderWidth: number;\n\t\theaders: Array<{\n\t\t\tname: string;\n\t\t\thidden: boolean;\n\t\t\tmeta: boolean;\n\t\t\tcolumn: string;\n\t\t\tvalueType: string;\n\t\t}>;\n\t\trows: Array<Array<string>>;\n\t\theight: number;\n\t\twidth: number;\n\t};\n}\n\nexport function useGetScorecardData() {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst state = useScorecardState();\n\tconst calendar = useCalendar();\n\tif (!config || !state || !meta) {\n\t\tthrow new Error(\n\t\t\t\"Invalid scorecard setup. Make sure the valid config and state props are passed.\",\n\t\t);\n\t}\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = getDimensions({\n\t\tconfig,\n\t\tstate,\n\t});\n\t//We need to make sure each period has a past period\n\tconst analyticsPeriod = useMemo(() => {\n\t\tconst pastPeriods = periodsIds\n\t\t\t.map((periodId) => {\n\t\t\t\tconst pe = getAdjacentFixedPeriods({\n\t\t\t\t\tcalendar,\n\t\t\t\t\tsteps: -1,\n\t\t\t\t\tperiod: createFixedPeriodFromPeriodId({\n\t\t\t\t\t\tcalendar,\n\t\t\t\t\t\tperiodId,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn pe.map(({ id }) => id);\n\t\t\t})\n\t\t\t.flat();\n\n\t\treturn uniq([...periodsIds, ...pastPeriods]);\n\t}, [periodsIds]);\n\n\tconst { loading, data: rawAnalyticsData } =\n\t\tuseDataQuery<ScorecardDataQueryResponse>(query, {\n\t\t\tvariables: {\n\t\t\t\tperiods: analyticsPeriod,\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t},\n\t\t});\n\n\tconst rawData = useMemo(() => {\n\t\tif (!rawAnalyticsData) return [];\n\t\treturn sanitizeAnalyticsData(rawAnalyticsData);\n\t}, [rawAnalyticsData]);\n\n\tconst data = useMemo(() => {\n\t\tif (rawAnalyticsData) {\n\t\t\tconst data = getTableDataFromAnalytics(rawAnalyticsData, {\n\t\t\t\tmeta,\n\t\t\t\tstate,\n\t\t\t\tconfig,\n\t\t\t});\n\t\t\tif (!!state.options.emptyRows) {\n\t\t\t\treturn data;\n\t\t\t} else {\n\t\t\t\treturn data.filter(({ dataValues }) => !isEmpty(dataValues));\n\t\t\t}\n\t\t}\n\t\treturn [];\n\t}, [rawAnalyticsData, meta]);\n\n\treturn {\n\t\tloading,\n\t\tdata,\n\t\trawData,\n\t};\n}\n"]}
@@ -0,0 +1,92 @@
1
+ import { useScorecardConfig } from '../components/ConfigProvider';
2
+ import { useScorecardState } from '../components/StateProvider';
3
+ import { useDataQuery, useConfig } from '@dhis2/app-runtime';
4
+ import { useMemo } from 'react';
5
+ import { getDimensions } from '../utils/analytics';
6
+
7
+ const query = {
8
+ meta: {
9
+ resource: "analytics",
10
+ params: ({
11
+ periods,
12
+ orgUnits,
13
+ dataItems
14
+ }) => {
15
+ return {
16
+ skipData: true,
17
+ hierarchyData: true,
18
+ showHierarchy: true,
19
+ enhancedConditions: true,
20
+ includeMetadataDetails: true,
21
+ dimension: [
22
+ `pe:${periods.join(";")}`,
23
+ `dx:${dataItems.join(";")}`,
24
+ `ou:${orgUnits.join(";")}`
25
+ ]
26
+ };
27
+ }
28
+ },
29
+ ouLevel: {
30
+ resource: "organisationUnitLevels",
31
+ params: {
32
+ fields: ["id", "displayName", "level"]
33
+ }
34
+ }
35
+ };
36
+ function useGetScorecardMeta() {
37
+ const config = useScorecardConfig();
38
+ const state = useScorecardState();
39
+ if (!config || !state) {
40
+ throw new Error(
41
+ "Invalid scorecard setup. Make sure the valid config and state props are passed."
42
+ );
43
+ }
44
+ const { dataItemsIds, orgUnitsIds, periodsIds } = getDimensions({
45
+ config,
46
+ state
47
+ });
48
+ const { loading, data } = useDataQuery(query, {
49
+ variables: {
50
+ periods: periodsIds,
51
+ orgUnits: orgUnitsIds,
52
+ dataItems: dataItemsIds
53
+ }
54
+ });
55
+ const orgUnits = useMemo(() => {
56
+ return data?.meta?.metaData.dimensions["ou"].map((ou) => {
57
+ return {
58
+ ...data?.meta?.metaData.items[ou],
59
+ hierarchy: data?.meta?.metaData?.ouNameHierarchy[ou]
60
+ };
61
+ }).filter(Boolean) ?? [];
62
+ }, [data?.meta]);
63
+ const periods = useMemo(() => {
64
+ return data?.meta?.metaData.dimensions["pe"].map((pe) => {
65
+ return data?.meta?.metaData.items[pe];
66
+ }).filter(Boolean) ?? [];
67
+ }, [data?.meta]);
68
+ const dataItems = useMemo(() => {
69
+ return data?.meta?.metaData.dimensions["dx"].map((dx) => {
70
+ return data?.meta?.metaData.items[dx];
71
+ }).filter(Boolean) ?? [];
72
+ }, [data?.meta]);
73
+ const orgUnitLevels = useMemo(
74
+ () => data?.ouLevel?.organisationUnitLevels ?? [],
75
+ [data?.ouLevel?.organisationUnitLevels]
76
+ );
77
+ return {
78
+ loading,
79
+ orgUnits,
80
+ periods,
81
+ dataItems,
82
+ orgUnitLevels
83
+ };
84
+ }
85
+ function useCalendar() {
86
+ const { systemInfo } = useConfig();
87
+ return systemInfo?.calendar ?? "iso8601";
88
+ }
89
+
90
+ export { useCalendar, useGetScorecardMeta };
91
+ //# sourceMappingURL=out.js.map
92
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/hooks/metadata.ts"],"names":[],"mappings":"AAAA,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAClC,SAAS,WAAW,oBAAoB;AACxC,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAG9B,MAAM,QAAa;AAAA,EAClB,MAAM;AAAA,IACL,UAAU;AAAA,IACV,QAAQ,CAAC;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACD,MAIM;AACL,aAAO;AAAA,QACN,UAAU;AAAA,QACV,eAAe;AAAA,QACf,eAAe;AAAA,QACf,oBAAoB;AAAA,QACpB,wBAAwB;AAAA,QACxB,WAAW;AAAA,UACV,MAAM,QAAQ,KAAK,GAAG,CAAC;AAAA,UACvB,MAAM,UAAU,KAAK,GAAG,CAAC;AAAA,UACzB,MAAM,SAAS,KAAK,GAAG,CAAC;AAAA,QACzB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,SAAS;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,MACP,QAAQ,CAAC,MAAM,eAAe,OAAO;AAAA,IACtC;AAAA,EACD;AACD;AA6CO,SAAS,sBAAsB;AACrC,QAAM,SAAS,mBAAmB;AAClC,QAAM,QAAQ,kBAAkB;AAEhC,MAAI,CAAC,UAAU,CAAC,OAAO;AACtB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,QAAM,EAAE,cAAc,aAAa,WAAW,IAAI,cAAc;AAAA,IAC/D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,EAAE,SAAS,KAAK,IAAI,aAA2B,OAAO;AAAA,IAC3D,WAAW;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,IACZ;AAAA,EACD,CAAC;AAED,QAAM,WAAW,QAAQ,MAAM;AAC9B,WACC,MAAM,MAAM,SAAS,WAAW,IAAI,EAClC,IAAI,CAAC,OAAO;AACZ,aAAO;AAAA,QACN,GAAG,MAAM,MAAM,SAAS,MAAM,EAAE;AAAA,QAChC,WAAW,MAAM,MAAM,UAAU,gBAAgB,EAAE;AAAA,MACpD;AAAA,IACD,CAAC,EACA,OAAO,OAAO,KAAK,CAAC;AAAA,EAExB,GAAG,CAAC,MAAM,IAAI,CAAC;AACf,QAAM,UAAU,QAAQ,MAAM;AAC7B,WACC,MAAM,MAAM,SAAS,WAAW,IAAI,EAClC,IAAI,CAAC,OAAO;AACZ,aAAO,MAAM,MAAM,SAAS,MAAM,EAAE;AAAA,IACrC,CAAC,EACA,OAAO,OAAO,KAAK,CAAC;AAAA,EAExB,GAAG,CAAC,MAAM,IAAI,CAAC;AACf,QAAM,YAAY,QAAQ,MAAM;AAC/B,WACC,MAAM,MAAM,SAAS,WAAW,IAAI,EAClC,IAAI,CAAC,OAAO;AACZ,aAAO,MAAM,MAAM,SAAS,MAAM,EAAE;AAAA,IACrC,CAAC,EACA,OAAO,OAAO,KAAK,CAAC;AAAA,EAExB,GAAG,CAAC,MAAM,IAAI,CAAC;AACf,QAAM,gBAAgB;AAAA,IACrB,MAAM,MAAM,SAAS,0BAA0B,CAAC;AAAA,IAChD,CAAC,MAAM,SAAS,sBAAsB;AAAA,EACvC;AAEA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,cAAc;AAC7B,QAAM,EAAE,WAAW,IAAI,UAAU;AACjC,SACE,YAA4D,YAC7D;AAEF","sourcesContent":["import { useScorecardConfig } from \"../components/ConfigProvider\";\nimport { useScorecardState } from \"../components/StateProvider\";\nimport { useConfig, useDataQuery } from \"@dhis2/app-runtime\";\nimport { useMemo } from \"react\";\nimport { getDimensions } from \"../utils/analytics\";\nimport type { SupportedCalendar } from \"@dhis2/multi-calendar-dates/build/types/types\";\n\nconst query: any = {\n\tmeta: {\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\tskipData: true,\n\t\t\t\thierarchyData: true,\n\t\t\t\tshowHierarchy: true,\n\t\t\t\tenhancedConditions: true,\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n\touLevel: {\n\t\tresource: \"organisationUnitLevels\",\n\t\tparams: {\n\t\t\tfields: [\"id\", \"displayName\", \"level\"],\n\t\t},\n\t},\n};\n\nexport type ItemMeta = {\n\tuid: string;\n\tname: string;\n\tcode?: string;\n\tdescription?: string;\n\tvalueType?: string;\n\ttotalAggregationType?: string;\n\taggregationType?: string;\n\t[key: string]: string | number | undefined;\n};\n\ntype MetaResponse = {\n\tmeta: {\n\t\tcolumns: any[];\n\t\trows: [];\n\t\theaders: [];\n\t\tmetaData: {\n\t\t\tdimensions: {\n\t\t\t\tdx: string[];\n\t\t\t\tou: string[];\n\t\t\t\tpe: string[];\n\t\t\t\tco: string[];\n\t\t\t\t[key: string]: string[];\n\t\t\t};\n\t\t\titems: {\n\t\t\t\t[key: string]: ItemMeta;\n\t\t\t};\n\t\t\touNameHierarchy: {\n\t\t\t\t[key: string]: string;\n\t\t\t};\n\t\t};\n\t};\n\touLevel: {\n\t\torganisationUnitLevels: Array<{\n\t\t\tid: string;\n\t\t\tlevel: number;\n\t\t\torganisationUnits: Array<{\n\t\t\t\tid: string;\n\t\t\t}>;\n\t\t}>;\n\t};\n};\n\nexport function useGetScorecardMeta() {\n\tconst config = useScorecardConfig();\n\tconst state = useScorecardState();\n\n\tif (!config || !state) {\n\t\tthrow new Error(\n\t\t\t\"Invalid scorecard setup. Make sure the valid config and state props are passed.\",\n\t\t);\n\t}\n\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = getDimensions({\n\t\tconfig,\n\t\tstate,\n\t});\n\n\tconst { loading, data } = useDataQuery<MetaResponse>(query, {\n\t\tvariables: {\n\t\t\tperiods: periodsIds,\n\t\t\torgUnits: orgUnitsIds,\n\t\t\tdataItems: dataItemsIds,\n\t\t},\n\t});\n\n\tconst orgUnits = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"ou\"]\n\t\t\t\t.map((ou) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...data?.meta?.metaData.items[ou],\n\t\t\t\t\t\thierarchy: data?.meta?.metaData?.ouNameHierarchy[ou],\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst periods = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"pe\"]\n\t\t\t\t.map((pe) => {\n\t\t\t\t\treturn data?.meta?.metaData.items[pe];\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst dataItems = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"dx\"]\n\t\t\t\t.map((dx) => {\n\t\t\t\t\treturn data?.meta?.metaData.items[dx];\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst orgUnitLevels = useMemo(\n\t\t() => data?.ouLevel?.organisationUnitLevels ?? [],\n\t\t[data?.ouLevel?.organisationUnitLevels],\n\t);\n\n\treturn {\n\t\tloading,\n\t\torgUnits,\n\t\tperiods,\n\t\tdataItems,\n\t\torgUnitLevels,\n\t};\n}\n\nexport function useCalendar() {\n\tconst { systemInfo } = useConfig();\n\treturn (\n\t\t(systemInfo as unknown as { calendar?: SupportedCalendar })?.calendar ??\n\t\t\"iso8601\"\n\t);\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import { useScorecardMeta } from '../components/MetaProvider';
2
+ import { useMemo } from 'react';
3
+ import { sortBy, last } from 'lodash';
4
+
5
+ function useLowestOrgUnitLevel() {
6
+ const meta = useScorecardMeta();
7
+ return useMemo(() => {
8
+ const sortedOrgUnitLevels = sortBy(meta?.orgUnitLevels ?? [], "level");
9
+ return last(sortedOrgUnitLevels);
10
+ }, [meta?.orgUnitLevels]);
11
+ }
12
+
13
+ export { useLowestOrgUnitLevel };
14
+ //# sourceMappingURL=out.js.map
15
+ //# sourceMappingURL=orgUnit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/hooks/orgUnit.ts"],"names":[],"mappings":"AAAA,SAAS,wBAAwB;AACjC,SAAS,eAAe;AACxB,SAAS,MAAM,cAAc;AAEtB,SAAS,wBAAwB;AACvC,QAAM,OAAO,iBAAiB;AAE9B,SAAO,QAAQ,MAAM;AACpB,UAAM,sBAAsB,OAAO,MAAM,iBAAiB,CAAC,GAAG,OAAO;AACrE,WAAO,KAAK,mBAAmB;AAAA,EAChC,GAAG,CAAC,MAAM,aAAa,CAAC;AACzB","sourcesContent":["import { useScorecardMeta } from \"../components/MetaProvider\";\nimport { useMemo } from \"react\";\nimport { last, sortBy } from \"lodash\";\n\nexport function useLowestOrgUnitLevel() {\n\tconst meta = useScorecardMeta();\n\n\treturn useMemo(() => {\n\t\tconst sortedOrgUnitLevels = sortBy(meta?.orgUnitLevels ?? [], \"level\");\n\t\treturn last(sortedOrgUnitLevels);\n\t}, [meta?.orgUnitLevels]);\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { useScorecardConfig } from '../components/ConfigProvider';
2
+
3
+ function usePeriodSelection() {
4
+ const config = useScorecardConfig();
5
+ if (!config) {
6
+ return null;
7
+ }
8
+ config.periodSelection;
9
+ }
10
+
11
+ export { usePeriodSelection };
12
+ //# sourceMappingURL=out.js.map
13
+ //# sourceMappingURL=period.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/hooks/period.ts"],"names":[],"mappings":"AAAA,SAAS,0BAA0B;AAE5B,SAAS,qBAAqB;AACpC,QAAM,SAAS,mBAAmB;AAElC,MAAI,CAAC,QAAQ;AACZ,WAAO;AAAA,EACR;AACA,QAAM,kBAAkB,OAAO;AAChC","sourcesContent":["import { useScorecardConfig } from \"../components/ConfigProvider\";\n\nexport function usePeriodSelection() {\n\tconst config = useScorecardConfig();\n\n\tif (!config) {\n\t\treturn null;\n\t}\n\tconst periodSelection = config.periodSelection;\n}\n"]}
@@ -0,0 +1,38 @@
1
+ import { getCoreRowModel, getFilteredRowModel, getSortedRowModel } from '@tanstack/react-table';
2
+ import { useTableColumns } from './columns';
3
+ import { useScorecardData } from '../components/DataProvider';
4
+ import { useState } from 'react';
5
+ import { useScorecardState } from '../components/StateProvider';
6
+
7
+ function useTableSetup() {
8
+ const state = useScorecardState();
9
+ const showAverageColumn = state?.options?.averageColumn ?? false;
10
+ const showItemNumber = state?.options?.itemNumber ?? false;
11
+ const [columnFilters, setColumnFilters] = useState([]);
12
+ const [columnVisibility, setColumnVisibility] = useState({
13
+ average: showAverageColumn,
14
+ count: showItemNumber
15
+ });
16
+ const [sorting, setSorting] = useState([]);
17
+ const columns = useTableColumns();
18
+ const { data } = useScorecardData();
19
+ return {
20
+ columns,
21
+ data,
22
+ state: {
23
+ columnFilters,
24
+ sorting,
25
+ columnVisibility
26
+ },
27
+ onColumnFiltersChange: setColumnFilters,
28
+ onSortingChange: setSorting,
29
+ getCoreRowModel: getCoreRowModel(),
30
+ getFilteredRowModel: getFilteredRowModel(),
31
+ getSortedRowModel: getSortedRowModel(),
32
+ onColumnVisibilityChange: setColumnVisibility
33
+ };
34
+ }
35
+
36
+ export { useTableSetup };
37
+ //# sourceMappingURL=out.js.map
38
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/hooks/table.ts"],"names":[],"mappings":"AAAA;AAAA,EAEC;AAAA,EACA;AAAA,EACA;AAAA,OAIM;AACP,SAAS,uBAAuB;AAEhC,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAE3B,SAAS,gBAAkD;AACjE,QAAM,QAAQ,kBAAkB;AAEhC,QAAM,oBAAoB,OAAO,SAAS,iBAAiB;AAC3D,QAAM,iBAAiB,OAAO,SAAS,cAAc;AAErD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B,CAAC,CAAC;AACzE,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAA0B;AAAA,IACzE,SAAS;AAAA,IACT,OAAO;AAAA,EACR,CAAC;AAED,QAAM,CAAC,SAAS,UAAU,IAAI,SAAuB,CAAC,CAAC;AACvD,QAAM,UAAU,gBAAgB;AAChC,QAAM,EAAE,KAAK,IAAI,iBAAiB;AAElC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,uBAAuB;AAAA,IACvB,iBAAiB;AAAA,IACjB,iBAAiB,gBAAgB;AAAA,IACjC,qBAAqB,oBAAoB;AAAA,IACzC,mBAAmB,kBAAkB;AAAA,IACrC,0BAA0B;AAAA,EAC3B;AACD","sourcesContent":["import {\n\ttype ColumnFiltersState,\n\tgetCoreRowModel,\n\tgetFilteredRowModel,\n\tgetSortedRowModel,\n\ttype SortingState,\n\ttype TableOptions,\n\ttype VisibilityState,\n} from \"@tanstack/react-table\";\nimport { useTableColumns } from \"./columns\";\nimport type { ScorecardTableData } from \"../schemas/config\";\nimport { useScorecardData } from \"../components/DataProvider\";\nimport { useState } from \"react\";\nimport { useScorecardState } from \"../components/StateProvider\";\n\nexport function useTableSetup(): TableOptions<ScorecardTableData> {\n\tconst state = useScorecardState();\n\n\tconst showAverageColumn = state?.options?.averageColumn ?? false;\n\tconst showItemNumber = state?.options?.itemNumber ?? false;\n\t// const [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n\t\taverage: showAverageColumn,\n\t\tcount: showItemNumber,\n\t});\n\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst columns = useTableColumns();\n\tconst { data } = useScorecardData();\n\n\treturn {\n\t\tcolumns,\n\t\tdata,\n\t\tstate: {\n\t\t\tcolumnFilters,\n\t\t\tsorting,\n\t\t\tcolumnVisibility,\n\t\t},\n\t\tonColumnFiltersChange: setColumnFilters,\n\t\tonSortingChange: setSorting,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t\tonColumnVisibilityChange: setColumnVisibility,\n\t};\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export * from './Scorecard';
2
+ export * from './schemas/config';
3
+ //# sourceMappingURL=out.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Scorecard/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,cAAc","sourcesContent":["export * from \"./Scorecard\";\nexport * from \"./schemas/config\";\n"]}
@@ -0,0 +1,163 @@
1
+ import { z } from 'zod';
2
+
3
+ const supportedDataSources = z.enum([
4
+ "indicator",
5
+ "dataElement",
6
+ "dataSet",
7
+ ""
8
+ ]);
9
+ const legendDefinitionSchema = z.object({
10
+ id: z.string(),
11
+ color: z.string(),
12
+ name: z.string(),
13
+ isDefault: z.boolean().optional()
14
+ });
15
+ const scorecardViewOptionsSchema = z.object({
16
+ averageColumn: z.boolean(),
17
+ averageDisplayType: z.enum(["ALL", "ABOVE_AVERAGE", "BELOW_AVERAGE"]),
18
+ averageRow: z.boolean(),
19
+ emptyRows: z.boolean(),
20
+ highlightedIndicators: z.boolean(),
21
+ itemNumber: z.boolean(),
22
+ legend: z.boolean(),
23
+ showHierarchy: z.boolean(),
24
+ title: z.boolean(),
25
+ arrows: z.boolean(),
26
+ showDataInRows: z.boolean(),
27
+ disableExpanding: z.boolean().optional()
28
+ });
29
+ const organisationUnitSelectionSchema = z.object({
30
+ userOrgUnit: z.boolean().optional(),
31
+ userSubUnit: z.boolean().optional(),
32
+ userSubX2Unit: z.boolean().optional(),
33
+ orgUnits: z.array(
34
+ z.object({
35
+ id: z.string()
36
+ })
37
+ ),
38
+ groups: z.array(z.string()),
39
+ levels: z.array(z.string())
40
+ });
41
+ const periodSelectionSchema = z.object({
42
+ periods: z.array(
43
+ z.object({
44
+ id: z.string()
45
+ })
46
+ ),
47
+ type: z.string().optional()
48
+ });
49
+ const legendSchema = z.object({
50
+ legendDefinitionId: z.string(),
51
+ id: z.string(),
52
+ startValue: z.union([z.string(), z.number()]),
53
+ endValue: z.union([z.string(), z.number()])
54
+ });
55
+ const specificTargetSchema = z.object({
56
+ type: z.enum(["period", "orgUnit"]),
57
+ items: z.array(z.string()),
58
+ legends: z.array(legendSchema)
59
+ });
60
+ const orgUnitLevelLegendSchema = z.record(
61
+ z.string(),
62
+ z.array(legendSchema)
63
+ );
64
+ const dataSourceSchema = z.object({
65
+ id: z.string(),
66
+ label: z.string().optional(),
67
+ type: supportedDataSources,
68
+ displayArrows: z.boolean(),
69
+ highIsGood: z.boolean(),
70
+ effectiveGap: z.number(),
71
+ showColors: z.boolean(),
72
+ weight: z.number(),
73
+ legends: z.union([z.array(legendSchema), orgUnitLevelLegendSchema]),
74
+ specificTargets: z.array(specificTargetSchema),
75
+ description: z.string().optional()
76
+ });
77
+ const dataHolderSchema = z.object({
78
+ id: z.union([z.number(), z.string()]),
79
+ dataSources: z.array(dataSourceSchema)
80
+ });
81
+ const dataGroupSchema = z.object({
82
+ id: z.union([z.number(), z.string()]),
83
+ dataHolders: z.array(dataHolderSchema),
84
+ style: z.object({}),
85
+ title: z.string()
86
+ });
87
+ z.object({
88
+ id: z.string(),
89
+ title: z.string(),
90
+ subtitle: z.string(),
91
+ customHeader: z.string(),
92
+ description: z.string().optional(),
93
+ legendDefinitions: z.array(legendDefinitionSchema),
94
+ options: scorecardViewOptionsSchema,
95
+ orgUnitSelection: organisationUnitSelectionSchema,
96
+ periodSelection: periodSelectionSchema,
97
+ dataSelection: z.object({
98
+ dataGroups: z.array(dataGroupSchema)
99
+ }),
100
+ highlightedIndicators: z.array(dataSourceSchema),
101
+ additionalLabels: z.array(z.string())
102
+ });
103
+ z.object({
104
+ orgUnitSelection: organisationUnitSelectionSchema,
105
+ periodSelection: periodSelectionSchema,
106
+ options: scorecardViewOptionsSchema,
107
+ nested: z.boolean().optional(),
108
+ hasOnePeriod: z.boolean().optional()
109
+ });
110
+ const scorecardAnalyticsData = z.object({
111
+ dx: z.string().optional(),
112
+ pe: z.string().optional(),
113
+ ou: z.string().optional(),
114
+ value: z.string().optional()
115
+ });
116
+ const scorecardTableData = z.object({
117
+ label: z.string(),
118
+ dataValues: z.array(scorecardAnalyticsData),
119
+ dataHolder: dataHolderSchema.optional(),
120
+ orgUnit: z.object({
121
+ uid: z.string(),
122
+ name: z.string(),
123
+ hierarchy: z.string()
124
+ }).optional(),
125
+ expand: z.boolean().optional()
126
+ });
127
+ const scorecardTableCellData = z.object({
128
+ dataSources: z.array(
129
+ dataSourceSchema.extend({
130
+ data: z.object({
131
+ previous: z.number().optional(),
132
+ current: z.number().optional()
133
+ })
134
+ })
135
+ ),
136
+ orgUnit: z.object({
137
+ uid: z.string(),
138
+ name: z.string(),
139
+ hierarchy: z.string()
140
+ }),
141
+ period: z.string()
142
+ });
143
+ var ScorecardTableOrientation = /* @__PURE__ */ ((ScorecardTableOrientation2) => {
144
+ ScorecardTableOrientation2["ORG_UNIT_VS_DATA"] = "orgUnitsVsData";
145
+ ScorecardTableOrientation2["DATA_VS_ORG_UNIT"] = "dataVsOrgUnits";
146
+ return ScorecardTableOrientation2;
147
+ })(ScorecardTableOrientation || {});
148
+ var ScorecardTableDimension = /* @__PURE__ */ ((ScorecardTableDimension2) => {
149
+ ScorecardTableDimension2["GROUP"] = "group";
150
+ ScorecardTableDimension2["ORG_UNITS"] = "orgUnits";
151
+ ScorecardTableDimension2["PERIODS"] = "periods";
152
+ ScorecardTableDimension2["DATA"] = "data";
153
+ return ScorecardTableDimension2;
154
+ })(ScorecardTableDimension || {});
155
+ var ScorecardDraggableItems = /* @__PURE__ */ ((ScorecardDraggableItems2) => {
156
+ ScorecardDraggableItems2["ou"] = "ou";
157
+ ScorecardDraggableItems2["data"] = "data";
158
+ return ScorecardDraggableItems2;
159
+ })(ScorecardDraggableItems || {});
160
+
161
+ export { ScorecardDraggableItems, ScorecardTableDimension, ScorecardTableOrientation, dataGroupSchema, dataHolderSchema, dataSourceSchema, legendDefinitionSchema, legendSchema, orgUnitLevelLegendSchema, organisationUnitSelectionSchema, periodSelectionSchema, scorecardAnalyticsData, scorecardTableCellData, scorecardTableData, scorecardViewOptionsSchema, specificTargetSchema, supportedDataSources };
162
+ //# sourceMappingURL=out.js.map
163
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/schemas/config.ts"],"names":["ScorecardTableOrientation","ScorecardTableDimension","ScorecardDraggableItems"],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport type { RowData } from \"@tanstack/react-table\";\n\nexport const supportedDataSources = z.enum([\n\t\"indicator\",\n\t\"dataElement\",\n\t\"dataSet\",\n\t\"\",\n]);\n\nexport type SupportedDataSources = z.infer<typeof supportedDataSources>;\n\nexport const legendDefinitionSchema = z.object({\n\tid: z.string(),\n\tcolor: z.string(),\n\tname: z.string(),\n\tisDefault: z.boolean().optional(),\n});\n\nexport type LegendDefinition = z.infer<typeof legendDefinitionSchema>;\n\nexport const scorecardViewOptionsSchema = z.object({\n\taverageColumn: z.boolean(),\n\taverageDisplayType: z.enum([\"ALL\", \"ABOVE_AVERAGE\", \"BELOW_AVERAGE\"]),\n\taverageRow: z.boolean(),\n\temptyRows: z.boolean(),\n\thighlightedIndicators: z.boolean(),\n\titemNumber: z.boolean(),\n\tlegend: z.boolean(),\n\tshowHierarchy: z.boolean(),\n\ttitle: z.boolean(),\n\tarrows: z.boolean(),\n\tshowDataInRows: z.boolean(),\n\tdisableExpanding: z.boolean().optional(),\n});\n\nexport type ScorecardViewOptions = z.infer<typeof scorecardViewOptionsSchema>;\n\nexport const organisationUnitSelectionSchema = z.object({\n\tuserOrgUnit: z.boolean().optional(),\n\tuserSubUnit: z.boolean().optional(),\n\tuserSubX2Unit: z.boolean().optional(),\n\torgUnits: z.array(\n\t\tz.object({\n\t\t\tid: z.string(),\n\t\t}),\n\t),\n\tgroups: z.array(z.string()),\n\tlevels: z.array(z.string()),\n});\n\nexport type OrgUnitSelection = z.infer<typeof organisationUnitSelectionSchema>;\n\nexport const periodSelectionSchema = z.object({\n\tperiods: z.array(\n\t\tz.object({\n\t\t\tid: z.string(),\n\t\t}),\n\t),\n\ttype: z.string().optional(),\n});\n\nexport type PeriodSelection = z.infer<typeof periodSelectionSchema>;\n\nexport const legendSchema = z.object({\n\tlegendDefinitionId: z.string(),\n\tid: z.string(),\n\tstartValue: z.union([z.string(), z.number()]),\n\tendValue: z.union([z.string(), z.number()]),\n});\n\nexport type ScorecardLegend = z.infer<typeof legendSchema>;\n\nexport const specificTargetSchema = z.object({\n\ttype: z.enum([\"period\", \"orgUnit\"]),\n\titems: z.array(z.string()),\n\tlegends: z.array(legendSchema),\n});\n\nexport type SpecificTarget = z.infer<typeof specificTargetSchema>;\n\nexport const orgUnitLevelLegendSchema = z.record(\n\tz.string(),\n\tz.array(legendSchema),\n);\n\nexport type OrgUnitLevelLegend = z.infer<typeof orgUnitLevelLegendSchema>;\n\nexport const dataSourceSchema = z.object({\n\tid: z.string(),\n\tlabel: z.string().optional(),\n\ttype: supportedDataSources,\n\tdisplayArrows: z.boolean(),\n\thighIsGood: z.boolean(),\n\teffectiveGap: z.number(),\n\tshowColors: z.boolean(),\n\tweight: z.number(),\n\tlegends: z.union([z.array(legendSchema), orgUnitLevelLegendSchema]),\n\tspecificTargets: z.array(specificTargetSchema),\n\tdescription: z.string().optional(),\n});\n\nexport type ScorecardDataSource = z.infer<typeof dataSourceSchema>;\n\nexport const dataHolderSchema = z.object({\n\tid: z.union([z.number(), z.string()]),\n\tdataSources: z.array(dataSourceSchema),\n});\n\nexport type ScorecardDataHolder = z.infer<typeof dataHolderSchema>;\n\nexport const dataGroupSchema = z.object({\n\tid: z.union([z.number(), z.string()]),\n\tdataHolders: z.array(dataHolderSchema),\n\tstyle: z.object({}),\n\ttitle: z.string(),\n});\n\nexport type ScorecardDataGroup = z.infer<typeof dataGroupSchema>;\n\nconst scorecardConfig = z.object({\n\tid: z.string(),\n\ttitle: z.string(),\n\tsubtitle: z.string(),\n\tcustomHeader: z.string(),\n\tdescription: z.string().optional(),\n\tlegendDefinitions: z.array(legendDefinitionSchema),\n\toptions: scorecardViewOptionsSchema,\n\torgUnitSelection: organisationUnitSelectionSchema,\n\tperiodSelection: periodSelectionSchema,\n\tdataSelection: z.object({\n\t\tdataGroups: z.array(dataGroupSchema),\n\t}),\n\thighlightedIndicators: z.array(dataSourceSchema),\n\tadditionalLabels: z.array(z.string()),\n});\n\nexport type ScorecardConfig = z.infer<typeof scorecardConfig>;\n\nconst scorecardStateSchema = z.object({\n\torgUnitSelection: organisationUnitSelectionSchema,\n\tperiodSelection: periodSelectionSchema,\n\toptions: scorecardViewOptionsSchema,\n\tnested: z.boolean().optional(),\n\thasOnePeriod: z.boolean().optional(),\n});\n\nexport type ScorecardState = z.infer<typeof scorecardStateSchema>;\n\nexport const scorecardAnalyticsData = z.object({\n\tdx: z.string().optional(),\n\tpe: z.string().optional(),\n\tou: z.string().optional(),\n\tvalue: z.string().optional(),\n});\n\nexport type ScorecardAnalyticsData = z.infer<typeof scorecardAnalyticsData>;\n\nexport const scorecardTableData = z.object({\n\tlabel: z.string(),\n\tdataValues: z.array(scorecardAnalyticsData),\n\tdataHolder: dataHolderSchema.optional(),\n\torgUnit: z\n\t\t.object({\n\t\t\tuid: z.string(),\n\t\t\tname: z.string(),\n\t\t\thierarchy: z.string(),\n\t\t})\n\t\t.optional(),\n\texpand: z.boolean().optional(),\n});\n\nexport type ScorecardTableData = z.infer<typeof scorecardTableData> & RowData;\n\nexport const scorecardTableCellData = z.object({\n\tdataSources: z.array(\n\t\tdataSourceSchema.extend({\n\t\t\tdata: z.object({\n\t\t\t\tprevious: z.number().optional(),\n\t\t\t\tcurrent: z.number().optional(),\n\t\t\t}),\n\t\t}),\n\t),\n\torgUnit: z.object({\n\t\tuid: z.string(),\n\t\tname: z.string(),\n\t\thierarchy: z.string(),\n\t}),\n\tperiod: z.string(),\n});\n\nexport type ScorecardTableCellData = z.infer<typeof scorecardTableCellData>;\n\nexport type SanitizedScorecardTableData = z.infer<typeof scorecardTableData>;\n\nexport enum ScorecardTableOrientation {\n\tORG_UNIT_VS_DATA = \"orgUnitsVsData\",\n\tDATA_VS_ORG_UNIT = \"dataVsOrgUnits\",\n}\n\nexport enum ScorecardTableDimension {\n\tGROUP = \"group\",\n\tORG_UNITS = \"orgUnits\",\n\tPERIODS = \"periods\",\n\tDATA = \"data\",\n}\n\nexport enum ScorecardDraggableItems {\n\tou = \"ou\",\n\tdata = \"data\",\n}\n"]}