@hisptz/dhis2-analytics 2.0.31 → 2.0.33

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 (249) hide show
  1. package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
  2. package/dist/components/Scorecard/Scorecard.stories.js +150 -879
  3. package/dist/components/Scorecard/Scorecard.stories.js.map +1 -1
  4. package/dist/components/Scorecard/ScorecardContext.stories.js +422 -0
  5. package/dist/components/Scorecard/ScorecardContext.stories.js.map +1 -0
  6. package/dist/components/Scorecard/components/DataProvider.js +4 -19
  7. package/dist/components/Scorecard/components/DataProvider.js.map +1 -1
  8. package/dist/components/Scorecard/components/LoadingIndicator.js +27 -0
  9. package/dist/components/Scorecard/components/LoadingIndicator.js.map +1 -0
  10. package/dist/components/Scorecard/components/MetaProvider.js +10 -2
  11. package/dist/components/Scorecard/components/MetaProvider.js.map +1 -1
  12. package/dist/components/Scorecard/components/ScorecardContext.js +52 -1
  13. package/dist/components/Scorecard/components/ScorecardContext.js.map +1 -1
  14. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js +33 -14
  15. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -1
  16. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css +18 -0
  17. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css.map +1 -1
  18. package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js +47 -14
  19. package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -1
  20. package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +39 -8
  21. package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  22. package/dist/components/Scorecard/components/ScorecardTable/components/CellLoader.js +12 -0
  23. package/dist/components/Scorecard/components/ScorecardTable/components/CellLoader.js.map +1 -0
  24. package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js +24 -4
  25. package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -1
  26. package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +125 -32
  27. package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  28. package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js +17 -7
  29. package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -1
  30. package/dist/components/Scorecard/components/ScorecardTable/components/DataValue.js +8 -5
  31. package/dist/components/Scorecard/components/ScorecardTable/components/DataValue.js.map +1 -1
  32. package/dist/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js +16 -3
  33. package/dist/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  34. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +8 -2
  35. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  36. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  37. package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +5 -3
  38. package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  39. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +2 -2
  40. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  41. package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js +8 -3
  42. package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -1
  43. package/dist/components/Scorecard/components/ScorecardTable/components/TableFoot.js +8 -5
  44. package/dist/components/Scorecard/components/ScorecardTable/components/TableFoot.js.map +1 -1
  45. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js +7 -8
  46. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
  47. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +6 -8
  48. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  49. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +13 -4
  50. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  51. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js +4 -2
  52. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  53. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -2
  54. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  55. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +6 -7
  56. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  57. package/dist/components/Scorecard/components/StateProvider.js +8 -0
  58. package/dist/components/Scorecard/components/StateProvider.js.map +1 -1
  59. package/dist/components/Scorecard/hooks/cellData.js +3 -4
  60. package/dist/components/Scorecard/hooks/cellData.js.map +1 -1
  61. package/dist/components/Scorecard/hooks/columns.js +106 -89
  62. package/dist/components/Scorecard/hooks/columns.js.map +1 -1
  63. package/dist/components/Scorecard/hooks/data.js +126 -31
  64. package/dist/components/Scorecard/hooks/data.js.map +1 -1
  65. package/dist/components/Scorecard/hooks/metadata.js +23 -13
  66. package/dist/components/Scorecard/hooks/metadata.js.map +1 -1
  67. package/dist/components/Scorecard/hooks/table.js +137 -5
  68. package/dist/components/Scorecard/hooks/table.js.map +1 -1
  69. package/dist/components/Scorecard/hooks/value.js +198 -0
  70. package/dist/components/Scorecard/hooks/value.js.map +1 -0
  71. package/dist/components/Scorecard/schemas/config.js +27 -12
  72. package/dist/components/Scorecard/schemas/config.js.map +1 -1
  73. package/dist/components/Scorecard/utils/analytics.js +4 -3
  74. package/dist/components/Scorecard/utils/analytics.js.map +1 -1
  75. package/dist/components/Scorecard/utils/columns.js +66 -104
  76. package/dist/components/Scorecard/utils/columns.js.map +1 -1
  77. package/dist/components/Scorecard/utils/data.js +10 -100
  78. package/dist/components/Scorecard/utils/data.js.map +1 -1
  79. package/dist/components/Scorecard/utils/dataEngine.js +35 -0
  80. package/dist/components/Scorecard/utils/dataEngine.js.map +1 -0
  81. package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.js.map +1 -1
  82. package/dist/esm/components/Scorecard/Scorecard.stories.js +148 -876
  83. package/dist/esm/components/Scorecard/Scorecard.stories.js.map +1 -1
  84. package/dist/esm/components/Scorecard/ScorecardContext.stories.js +417 -0
  85. package/dist/esm/components/Scorecard/ScorecardContext.stories.js.map +1 -0
  86. package/dist/esm/components/Scorecard/components/DataProvider.js +4 -19
  87. package/dist/esm/components/Scorecard/components/DataProvider.js.map +1 -1
  88. package/dist/esm/components/Scorecard/components/LoadingIndicator.js +25 -0
  89. package/dist/esm/components/Scorecard/components/LoadingIndicator.js.map +1 -0
  90. package/dist/esm/components/Scorecard/components/MetaProvider.js +6 -2
  91. package/dist/esm/components/Scorecard/components/MetaProvider.js.map +1 -1
  92. package/dist/esm/components/Scorecard/components/ScorecardContext.js +49 -2
  93. package/dist/esm/components/Scorecard/components/ScorecardContext.js.map +1 -1
  94. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js +34 -15
  95. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -1
  96. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css +18 -0
  97. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.module.css.map +1 -1
  98. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js +47 -14
  99. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -1
  100. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +40 -9
  101. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  102. package/dist/esm/components/Scorecard/components/ScorecardTable/components/CellLoader.js +10 -0
  103. package/dist/esm/components/Scorecard/components/ScorecardTable/components/CellLoader.js.map +1 -0
  104. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js +25 -5
  105. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -1
  106. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +127 -34
  107. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  108. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js +18 -8
  109. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -1
  110. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataValue.js +10 -7
  111. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataValue.js.map +1 -1
  112. package/dist/esm/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js +16 -3
  113. package/dist/esm/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  114. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +8 -2
  115. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  116. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  117. package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +6 -4
  118. package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  119. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +2 -2
  120. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  121. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js +9 -4
  122. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -1
  123. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableFoot.js +9 -6
  124. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableFoot.js.map +1 -1
  125. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js +7 -8
  126. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
  127. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +7 -9
  128. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  129. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +14 -6
  130. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  131. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js +5 -3
  132. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  133. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +5 -3
  134. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  135. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +7 -8
  136. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  137. package/dist/esm/components/Scorecard/components/StateProvider.js +9 -2
  138. package/dist/esm/components/Scorecard/components/StateProvider.js.map +1 -1
  139. package/dist/esm/components/Scorecard/hooks/cellData.js +1 -2
  140. package/dist/esm/components/Scorecard/hooks/cellData.js.map +1 -1
  141. package/dist/esm/components/Scorecard/hooks/columns.js +107 -90
  142. package/dist/esm/components/Scorecard/hooks/columns.js.map +1 -1
  143. package/dist/esm/components/Scorecard/hooks/data.js +130 -35
  144. package/dist/esm/components/Scorecard/hooks/data.js.map +1 -1
  145. package/dist/esm/components/Scorecard/hooks/metadata.js +24 -14
  146. package/dist/esm/components/Scorecard/hooks/metadata.js.map +1 -1
  147. package/dist/esm/components/Scorecard/hooks/table.js +138 -6
  148. package/dist/esm/components/Scorecard/hooks/table.js.map +1 -1
  149. package/dist/esm/components/Scorecard/hooks/value.js +194 -0
  150. package/dist/esm/components/Scorecard/hooks/value.js.map +1 -0
  151. package/dist/esm/components/Scorecard/schemas/config.js +24 -12
  152. package/dist/esm/components/Scorecard/schemas/config.js.map +1 -1
  153. package/dist/esm/components/Scorecard/utils/analytics.js +4 -3
  154. package/dist/esm/components/Scorecard/utils/analytics.js.map +1 -1
  155. package/dist/esm/components/Scorecard/utils/columns.js +67 -106
  156. package/dist/esm/components/Scorecard/utils/columns.js.map +1 -1
  157. package/dist/esm/components/Scorecard/utils/data.js +11 -101
  158. package/dist/esm/components/Scorecard/utils/data.js.map +1 -1
  159. package/dist/esm/components/Scorecard/utils/dataEngine.js +33 -0
  160. package/dist/esm/components/Scorecard/utils/dataEngine.js.map +1 -0
  161. package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts +1 -1
  162. package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/components/ChoroplethLegend.d.ts.map +1 -1
  163. package/dist/types/components/Scorecard/components/DataProvider.d.ts +3 -3
  164. package/dist/types/components/Scorecard/components/DataProvider.d.ts.map +1 -1
  165. package/dist/types/components/Scorecard/components/LoadingIndicator.d.ts +2 -0
  166. package/dist/types/components/Scorecard/components/LoadingIndicator.d.ts.map +1 -0
  167. package/dist/types/components/Scorecard/components/MetaProvider.d.ts.map +1 -1
  168. package/dist/types/components/Scorecard/components/ScorecardContext.d.ts +1 -1
  169. package/dist/types/components/Scorecard/components/ScorecardContext.d.ts.map +1 -1
  170. package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts +2 -1
  171. package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts.map +1 -1
  172. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts +4 -13
  173. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts.map +1 -1
  174. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.d.ts.map +1 -1
  175. package/dist/types/components/Scorecard/components/ScorecardTable/components/CellLoader.d.ts +2 -0
  176. package/dist/types/components/Scorecard/components/ScorecardTable/components/CellLoader.d.ts.map +1 -0
  177. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts +2 -2
  178. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts.map +1 -1
  179. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts +2 -2
  180. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -1
  181. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataRow.d.ts.map +1 -1
  182. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataValue.d.ts +6 -5
  183. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataValue.d.ts.map +1 -1
  184. package/dist/types/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.d.ts +2 -1
  185. package/dist/types/components/Scorecard/components/ScorecardTable/components/ExpandedScorecardTable.d.ts.map +1 -1
  186. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts +3 -3
  187. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts.map +1 -1
  188. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts +2 -2
  189. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts.map +1 -1
  190. package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts +1 -3
  191. package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts.map +1 -1
  192. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts +2 -2
  193. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts.map +1 -1
  194. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts +2 -1
  195. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts.map +1 -1
  196. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableFoot.d.ts.map +1 -1
  197. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.d.ts +2 -1
  198. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.d.ts.map +1 -1
  199. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts +1 -1
  200. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts.map +1 -1
  201. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts +1 -0
  202. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -1
  203. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts.map +1 -1
  204. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -1
  205. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts.map +1 -1
  206. package/dist/types/components/Scorecard/components/StateProvider.d.ts +1 -0
  207. package/dist/types/components/Scorecard/components/StateProvider.d.ts.map +1 -1
  208. package/dist/types/components/Scorecard/components/TableStateProvider.d.ts +0 -6
  209. package/dist/types/components/Scorecard/components/TableStateProvider.d.ts.map +1 -1
  210. package/dist/types/components/Scorecard/hooks/cellData.d.ts +2 -2
  211. package/dist/types/components/Scorecard/hooks/cellData.d.ts.map +1 -1
  212. package/dist/types/components/Scorecard/hooks/columns.d.ts +2 -8
  213. package/dist/types/components/Scorecard/hooks/columns.d.ts.map +1 -1
  214. package/dist/types/components/Scorecard/hooks/data.d.ts +11 -53
  215. package/dist/types/components/Scorecard/hooks/data.d.ts.map +1 -1
  216. package/dist/types/components/Scorecard/hooks/metadata.d.ts +1 -0
  217. package/dist/types/components/Scorecard/hooks/metadata.d.ts.map +1 -1
  218. package/dist/types/components/Scorecard/hooks/table.d.ts.map +1 -1
  219. package/dist/types/components/Scorecard/hooks/value.d.ts +87 -0
  220. package/dist/types/components/Scorecard/hooks/value.d.ts.map +1 -0
  221. package/dist/types/components/Scorecard/schemas/config.d.ts +666 -62
  222. package/dist/types/components/Scorecard/schemas/config.d.ts.map +1 -1
  223. package/dist/types/components/Scorecard/utils/analytics.d.ts +3 -2
  224. package/dist/types/components/Scorecard/utils/analytics.d.ts.map +1 -1
  225. package/dist/types/components/Scorecard/utils/columns.d.ts +19 -59
  226. package/dist/types/components/Scorecard/utils/columns.d.ts.map +1 -1
  227. package/dist/types/components/Scorecard/utils/data.d.ts +6 -4
  228. package/dist/types/components/Scorecard/utils/data.d.ts.map +1 -1
  229. package/dist/types/components/Scorecard/utils/dataEngine.d.ts +14 -0
  230. package/dist/types/components/Scorecard/utils/dataEngine.d.ts.map +1 -0
  231. package/package.json +4 -4
  232. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js +0 -45
  233. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js.map +0 -1
  234. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js +0 -38
  235. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js.map +0 -1
  236. package/dist/components/Scorecard/hooks/average.js +0 -50
  237. package/dist/components/Scorecard/hooks/average.js.map +0 -1
  238. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js +0 -43
  239. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.js.map +0 -1
  240. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js +0 -36
  241. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.js.map +0 -1
  242. package/dist/esm/components/Scorecard/hooks/average.js +0 -48
  243. package/dist/esm/components/Scorecard/hooks/average.js.map +0 -1
  244. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.d.ts +0 -6
  245. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataFooterCell.d.ts.map +0 -1
  246. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.d.ts +0 -6
  247. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataFooterCell.d.ts.map +0 -1
  248. package/dist/types/components/Scorecard/hooks/average.d.ts +0 -14
  249. package/dist/types/components/Scorecard/hooks/average.d.ts.map +0 -1
@@ -0,0 +1,194 @@
1
+ import { useState, useEffect } from 'react';
2
+ import { useScorecardData } from '../components/DataProvider';
3
+ import { getValues } from '../utils/columns';
4
+ import { every, meanBy } from 'lodash';
5
+
6
+ function getDataValues({
7
+ data,
8
+ dataConfig
9
+ }) {
10
+ return dataConfig.dataSources.map((dataSource) => {
11
+ const filteredData = data.filter((data2) => {
12
+ return data2.dx === dataSource.id && data2.ou === dataConfig.orgUnit.uid && [dataConfig.currentPeriod, dataConfig.previousPeriod].includes(
13
+ data2.pe
14
+ );
15
+ });
16
+ const value = getValues({
17
+ currentPeriod: dataConfig.currentPeriod,
18
+ previousPeriod: dataConfig.previousPeriod,
19
+ values: filteredData
20
+ });
21
+ if (!value.current) {
22
+ return {
23
+ ...dataSource,
24
+ data: {
25
+ current: void 0,
26
+ previous: void 0
27
+ }
28
+ };
29
+ }
30
+ return {
31
+ ...dataSource,
32
+ data: value
33
+ };
34
+ });
35
+ }
36
+ function useCellValue(dataConfig) {
37
+ const { data: scorecardEngine } = useScorecardData();
38
+ const [loading, setLoading] = useState(false);
39
+ const [cellData, setCellData] = useState([]);
40
+ useEffect(() => {
41
+ setLoading(true);
42
+ const listener = (data) => {
43
+ if (data === "done") {
44
+ setLoading(false);
45
+ setCellData((prevState) => {
46
+ return prevState.map((value) => {
47
+ if (!value.data) {
48
+ return {
49
+ ...value,
50
+ data: {
51
+ current: void 0,
52
+ previous: void 0
53
+ }
54
+ };
55
+ }
56
+ return value;
57
+ });
58
+ });
59
+ } else {
60
+ const values = getDataValues({ data, dataConfig });
61
+ const hasValues = every(values, (value) => !!value.data);
62
+ setCellData(values);
63
+ if (hasValues) {
64
+ scorecardEngine.removeListener(listener);
65
+ setLoading(false);
66
+ }
67
+ }
68
+ };
69
+ if (scorecardEngine.isDone) {
70
+ const values = getDataValues({
71
+ data: scorecardEngine.data,
72
+ dataConfig
73
+ });
74
+ setCellData(values);
75
+ setLoading(false);
76
+ } else {
77
+ scorecardEngine.addListener(listener);
78
+ }
79
+ return () => {
80
+ scorecardEngine.removeListener(listener);
81
+ };
82
+ }, [dataConfig]);
83
+ return {
84
+ loading,
85
+ cellData
86
+ };
87
+ }
88
+ function getDataHolderAverageValues({
89
+ data,
90
+ dataConfig
91
+ }) {
92
+ return dataConfig.dataHolder?.dataSources.map((source) => {
93
+ const dataValues = data.filter((datum) => {
94
+ return datum.dx === source.id;
95
+ });
96
+ const average = meanBy(
97
+ dataValues,
98
+ (value) => parseFloat(value.value)
99
+ );
100
+ return {
101
+ ...source,
102
+ data: {
103
+ average
104
+ }
105
+ };
106
+ }) ?? [];
107
+ }
108
+ function useDataHolderAverageCellValue(dataConfig) {
109
+ const { data: scorecardEngine } = useScorecardData();
110
+ const [loading, setLoading] = useState(false);
111
+ const [cellData, setCellData] = useState([]);
112
+ useEffect(() => {
113
+ setLoading(true);
114
+ const listener = (data) => {
115
+ if (data === "done") {
116
+ setLoading(false);
117
+ setCellData(
118
+ getDataHolderAverageValues({
119
+ data: scorecardEngine.data,
120
+ dataConfig
121
+ })
122
+ );
123
+ }
124
+ };
125
+ if (scorecardEngine.isDone) {
126
+ setLoading(false);
127
+ setCellData(
128
+ getDataHolderAverageValues({
129
+ data: scorecardEngine.data,
130
+ dataConfig
131
+ })
132
+ );
133
+ } else {
134
+ scorecardEngine.addListener(listener);
135
+ }
136
+ return () => {
137
+ scorecardEngine.removeListener(listener);
138
+ };
139
+ }, [dataConfig]);
140
+ return {
141
+ loading,
142
+ cellData
143
+ };
144
+ }
145
+ function getOrgUnitAverageValues({
146
+ data,
147
+ dataConfig
148
+ }) {
149
+ const dataValues = data.filter((datum) => {
150
+ return datum.ou === dataConfig.orgUnit.uid;
151
+ });
152
+ return meanBy(dataValues, (value) => parseFloat(value.value));
153
+ }
154
+ function useOrgUnitAverageCellValue(dataConfig) {
155
+ const { data: scorecardEngine } = useScorecardData();
156
+ const [loading, setLoading] = useState(false);
157
+ const [average, setAverage] = useState(null);
158
+ useEffect(() => {
159
+ setLoading(true);
160
+ const listener = (data) => {
161
+ if (data === "done") {
162
+ setLoading(false);
163
+ setAverage(
164
+ getOrgUnitAverageValues({
165
+ data: scorecardEngine.data,
166
+ dataConfig
167
+ })
168
+ );
169
+ }
170
+ };
171
+ if (scorecardEngine.isDone) {
172
+ setLoading(false);
173
+ setAverage(
174
+ getOrgUnitAverageValues({
175
+ data: scorecardEngine.data,
176
+ dataConfig
177
+ })
178
+ );
179
+ } else {
180
+ scorecardEngine.addListener(listener);
181
+ }
182
+ return () => {
183
+ scorecardEngine.removeListener(listener);
184
+ };
185
+ }, [dataConfig]);
186
+ return {
187
+ loading,
188
+ average
189
+ };
190
+ }
191
+
192
+ export { useCellValue, useDataHolderAverageCellValue, useOrgUnitAverageCellValue };
193
+ //# sourceMappingURL=out.js.map
194
+ //# sourceMappingURL=value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/hooks/value.ts"],"names":["data"],"mappings":"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","sourcesContent":["import { useEffect, useState } from \"react\";\nimport type {\n\tScorecardAverageCellData,\n\tScorecardCellData,\n\tScorecardTableAverageCellConfig,\n\tScorecardTableCellConfig,\n} from \"../schemas/config\";\nimport { useScorecardData } from \"../components/DataProvider\";\nimport type { DataEngineListener } from \"../utils/dataEngine\";\nimport type { AnalyticsData } from \"../utils/data\";\nimport { getValues } from \"../utils/columns\";\nimport { every, meanBy } from \"lodash\";\n\nfunction getDataValues({\n\tdata,\n\tdataConfig,\n}: {\n\tdataConfig: ScorecardTableCellConfig;\n\tdata: AnalyticsData[];\n}): ScorecardCellData[] {\n\treturn dataConfig.dataSources.map((dataSource) => {\n\t\tconst filteredData = data.filter((data) => {\n\t\t\treturn (\n\t\t\t\tdata.dx === dataSource.id &&\n\t\t\t\tdata.ou === dataConfig.orgUnit.uid &&\n\t\t\t\t[dataConfig.currentPeriod, dataConfig.previousPeriod].includes(\n\t\t\t\t\tdata.pe,\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\n\t\tconst value = getValues({\n\t\t\tcurrentPeriod: dataConfig.currentPeriod!,\n\t\t\tpreviousPeriod: dataConfig.previousPeriod,\n\t\t\tvalues: filteredData,\n\t\t});\n\n\t\tif (!value.current) {\n\t\t\treturn {\n\t\t\t\t...dataSource,\n\t\t\t\tdata: {\n\t\t\t\t\tcurrent: undefined,\n\t\t\t\t\tprevious: undefined,\n\t\t\t\t},\n\t\t\t} as ScorecardCellData;\n\t\t}\n\n\t\treturn {\n\t\t\t...dataSource,\n\t\t\tdata: value,\n\t\t} as ScorecardCellData;\n\t});\n}\n\nexport function useCellValue(dataConfig: ScorecardTableCellConfig) {\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [cellData, setCellData] = useState<ScorecardCellData[]>([]);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener: DataEngineListener = (data) => {\n\t\t\tif (data === \"done\") {\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetCellData((prevState) => {\n\t\t\t\t\treturn prevState.map((value) => {\n\t\t\t\t\t\tif (!value.data) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...value,\n\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\tcurrent: undefined,\n\t\t\t\t\t\t\t\t\tprevious: undefined,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst values = getDataValues({ data, dataConfig });\n\t\t\t\tconst hasValues = every(values, (value) => !!value.data);\n\t\t\t\tsetCellData(values);\n\t\t\t\tif (hasValues) {\n\t\t\t\t\tscorecardEngine.removeListener(listener);\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tconst values = getDataValues({\n\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\tdataConfig,\n\t\t\t});\n\t\t\tsetCellData(values);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tscorecardEngine.addListener(listener);\n\t\t}\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataConfig]);\n\n\treturn {\n\t\tloading,\n\t\tcellData,\n\t};\n}\n\nfunction getDataHolderAverageValues({\n\tdata,\n\tdataConfig,\n}: {\n\tdataConfig: ScorecardTableAverageCellConfig;\n\tdata: AnalyticsData[];\n}): ScorecardAverageCellData[] {\n\treturn (\n\t\tdataConfig.dataHolder?.dataSources.map((source) => {\n\t\t\tconst dataValues = data.filter((datum) => {\n\t\t\t\treturn datum.dx === source.id;\n\t\t\t});\n\t\t\tconst average = meanBy(dataValues, (value) =>\n\t\t\t\tparseFloat(value.value!),\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\t...source,\n\t\t\t\tdata: {\n\t\t\t\t\taverage,\n\t\t\t\t},\n\t\t\t};\n\t\t}) ?? []\n\t);\n}\n\nexport function useDataHolderAverageCellValue(\n\tdataConfig: ScorecardTableAverageCellConfig,\n) {\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [cellData, setCellData] = useState<ScorecardAverageCellData[]>([]);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener: DataEngineListener = (data) => {\n\t\t\tif (data === \"done\") {\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetCellData(\n\t\t\t\t\tgetDataHolderAverageValues({\n\t\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\t\tdataConfig,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tsetLoading(false);\n\t\t\tsetCellData(\n\t\t\t\tgetDataHolderAverageValues({\n\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\tdataConfig,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tscorecardEngine.addListener(listener);\n\t\t}\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataConfig]);\n\n\treturn {\n\t\tloading,\n\t\tcellData,\n\t};\n}\n\nfunction getOrgUnitAverageValues({\n\tdata,\n\tdataConfig,\n}: {\n\tdataConfig: ScorecardTableAverageCellConfig;\n\tdata: AnalyticsData[];\n}): number {\n\tconst dataValues = data.filter((datum) => {\n\t\treturn datum.ou === dataConfig.orgUnit!.uid;\n\t});\n\n\treturn meanBy(dataValues, (value) => parseFloat(value.value!));\n}\n\nexport function useOrgUnitAverageCellValue(\n\tdataConfig: ScorecardTableAverageCellConfig,\n) {\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [average, setAverage] = useState<number | null>(null);\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener: DataEngineListener = (data) => {\n\t\t\tif (data === \"done\") {\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetAverage(\n\t\t\t\t\tgetOrgUnitAverageValues({\n\t\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\t\tdataConfig,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tsetLoading(false);\n\t\t\tsetAverage(\n\t\t\t\tgetOrgUnitAverageValues({\n\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\tdataConfig,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tscorecardEngine.addListener(listener);\n\t\t}\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataConfig]);\n\n\treturn {\n\t\tloading,\n\t\taverage,\n\t};\n}\n"]}
@@ -133,7 +133,6 @@ const scorecardAnalyticsData = z.object({
133
133
  });
134
134
  const scorecardTableData = z.object({
135
135
  label: z.string(),
136
- dataValues: z.array(scorecardAnalyticsData),
137
136
  dataHolder: dataHolderSchema.optional(),
138
137
  orgUnit: z.object({
139
138
  uid: z.string(),
@@ -142,21 +141,34 @@ const scorecardTableData = z.object({
142
141
  }).optional(),
143
142
  expand: z.boolean().optional()
144
143
  });
145
- const scorecardTableCellData = z.object({
146
- dataSources: z.array(
147
- dataSourceSchema.extend({
148
- data: z.object({
149
- previous: z.number().optional(),
150
- current: z.number().optional()
151
- })
152
- })
153
- ),
144
+ const scorecardTableCellConfig = z.object({
145
+ dataSources: z.array(dataSourceSchema),
154
146
  orgUnit: z.object({
155
147
  uid: z.string(),
156
148
  name: z.string(),
157
149
  hierarchy: z.string()
158
150
  }),
159
- period: z.string()
151
+ previousPeriod: z.string().optional(),
152
+ currentPeriod: z.string().optional()
153
+ });
154
+ const scorecardTableAverageCellConfig = z.object({
155
+ dataHolder: dataHolderSchema.optional(),
156
+ orgUnit: z.object({
157
+ uid: z.string(),
158
+ name: z.string(),
159
+ hierarchy: z.string()
160
+ }).optional()
161
+ });
162
+ const scorecardCellDataSchema = dataSourceSchema.extend({
163
+ data: z.object({
164
+ previous: z.number().optional(),
165
+ current: z.number().optional()
166
+ })
167
+ });
168
+ const scorecardAverageCellDataSchema = dataSourceSchema.extend({
169
+ data: z.object({
170
+ average: z.number().optional()
171
+ })
160
172
  });
161
173
  var ScorecardTableOrientation = /* @__PURE__ */ ((ScorecardTableOrientation2) => {
162
174
  ScorecardTableOrientation2["ORG_UNIT_VS_DATA"] = "orgUnitsVsData";
@@ -176,6 +188,6 @@ var ScorecardDraggableItems = /* @__PURE__ */ ((ScorecardDraggableItems2) => {
176
188
  return ScorecardDraggableItems2;
177
189
  })(ScorecardDraggableItems || {});
178
190
 
179
- export { ScorecardDraggableItems, ScorecardTableDimension, ScorecardTableOrientation, dataGroupSchema, dataHolderSchema, dataSourceSchema, legendDefinitionSchema, legendSchema, orgUnitLevelLegendSchema, organisationUnitSelectionSchema, periodSelectionSchema, scorecardAnalyticsData, scorecardSharing, scorecardTableCellData, scorecardTableData, scorecardViewOptionsSchema, specificTargetSchema, supportedDataSources };
191
+ export { ScorecardDraggableItems, ScorecardTableDimension, ScorecardTableOrientation, dataGroupSchema, dataHolderSchema, dataSourceSchema, legendDefinitionSchema, legendSchema, orgUnitLevelLegendSchema, organisationUnitSelectionSchema, periodSelectionSchema, scorecardAnalyticsData, scorecardAverageCellDataSchema, scorecardCellDataSchema, scorecardSharing, scorecardTableAverageCellConfig, scorecardTableCellConfig, scorecardTableData, scorecardViewOptionsSchema, specificTargetSchema, supportedDataSources };
180
192
  //# sourceMappingURL=out.js.map
181
193
  //# sourceMappingURL=config.js.map
@@ -1 +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\"programIndicator\",\n\t\"dataSet\",\n\t\"dataElement\",\n\t\"customFunction\",\n\t\"sqlView\",\n]);\n\nexport const scorecardSharing = z.object({\n\towner: z.string(),\n\texternal: z.boolean(),\n\tpublic: z.string(),\n\tusers: z.record(\n\t\tz.string(),\n\t\tz.object({ access: z.string(), id: z.string() }),\n\t),\n\tuserGroups: z.record(\n\t\tz.string(),\n\t\tz.object({ access: z.string(), id: z.string() }),\n\t),\n});\n\nexport type ScorecardSharing = z.infer<typeof scorecardSharing>;\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().optional(),\n\taverageDisplayType: z\n\t\t.enum([\"ALL\", \"ABOVE_AVERAGE\", \"BELOW_AVERAGE\"])\n\t\t.optional(),\n\taverageRow: z.boolean().optional(),\n\temptyRows: z.boolean().optional(),\n\thighlightedIndicators: z.boolean().optional(),\n\titemNumber: z.boolean().optional(),\n\tlegend: z.boolean().optional(),\n\tshowHierarchy: z.boolean().optional(),\n\ttitle: z.boolean().optional(),\n\tarrows: z.boolean().optional(),\n\tshowDataInRows: z.boolean().optional(),\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()).optional(),\n\tlevels: z.array(z.string()).optional(),\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([\"periods\", \"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\tname: 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).optional(),\n\tspecificTargetsSet: z.boolean().optional(),\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().optional(),\n\tcustomHeader: z.string().optional(),\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()).optional(),\n\tsharing: scorecardSharing,\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"]}
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\"programIndicator\",\n\t\"dataSet\",\n\t\"dataElement\",\n\t\"customFunction\",\n\t\"sqlView\",\n]);\n\nexport const scorecardSharing = z.object({\n\towner: z.string(),\n\texternal: z.boolean(),\n\tpublic: z.string(),\n\tusers: z.record(\n\t\tz.string(),\n\t\tz.object({ access: z.string(), id: z.string() }),\n\t),\n\tuserGroups: z.record(\n\t\tz.string(),\n\t\tz.object({ access: z.string(), id: z.string() }),\n\t),\n});\n\nexport type ScorecardSharing = z.infer<typeof scorecardSharing>;\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().optional(),\n\taverageDisplayType: z\n\t\t.enum([\"ALL\", \"ABOVE_AVERAGE\", \"BELOW_AVERAGE\"])\n\t\t.optional(),\n\taverageRow: z.boolean().optional(),\n\temptyRows: z.boolean().optional(),\n\thighlightedIndicators: z.boolean().optional(),\n\titemNumber: z.boolean().optional(),\n\tlegend: z.boolean().optional(),\n\tshowHierarchy: z.boolean().optional(),\n\ttitle: z.boolean().optional(),\n\tarrows: z.boolean().optional(),\n\tshowDataInRows: z.boolean().optional(),\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()).optional(),\n\tlevels: z.array(z.string()).optional(),\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([\"periods\", \"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\tname: 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).optional(),\n\tspecificTargetsSet: z.boolean().optional(),\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().optional(),\n\tcustomHeader: z.string().optional(),\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()).optional(),\n\tsharing: scorecardSharing,\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\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 scorecardTableCellConfig = z.object({\n\tdataSources: z.array(dataSourceSchema),\n\torgUnit: z.object({\n\t\tuid: z.string(),\n\t\tname: z.string(),\n\t\thierarchy: z.string(),\n\t}),\n\tpreviousPeriod: z.string().optional(),\n\tcurrentPeriod: z.string().optional(),\n});\nexport type ScorecardTableCellConfig = z.infer<typeof scorecardTableCellConfig>;\n\nexport const scorecardTableAverageCellConfig = z.object({\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});\nexport type ScorecardTableAverageCellConfig = z.infer<\n\ttypeof scorecardTableAverageCellConfig\n>;\n\nexport const scorecardCellDataSchema = dataSourceSchema.extend({\n\tdata: z.object({\n\t\tprevious: z.number().optional(),\n\t\tcurrent: z.number().optional(),\n\t}),\n});\nexport type ScorecardCellData = z.infer<typeof scorecardCellDataSchema>;\n\nexport const scorecardAverageCellDataSchema = dataSourceSchema.extend({\n\tdata: z.object({\n\t\taverage: z.number().optional(),\n\t}),\n});\nexport type ScorecardAverageCellData = z.infer<\n\ttypeof scorecardAverageCellDataSchema\n>;\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"]}
@@ -3,16 +3,17 @@ import { getOrgUnitsForAnalytics } from './orgUnits';
3
3
 
4
4
  function getDimensions({
5
5
  config,
6
- state
6
+ orgUnitSelection,
7
+ periodSelection
7
8
  }) {
8
9
  const dataItemObjects = getDataSourcesFromGroups(
9
10
  config?.dataSelection?.dataGroups ?? []
10
11
  );
11
12
  const dataItemsIds = dataItemObjects?.map((item) => item?.id);
12
13
  const orgUnitsIds = getOrgUnitsForAnalytics(
13
- state?.orgUnitSelection ?? config?.orgUnitSelection
14
+ orgUnitSelection ?? config?.orgUnitSelection
14
15
  );
15
- const periodsIds = state.periodSelection.periods.map((period) => period.id);
16
+ const periodsIds = periodSelection.periods.map((period) => period.id);
16
17
  return {
17
18
  dataItemsIds,
18
19
  orgUnitsIds,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Scorecard/utils/analytics.ts"],"names":[],"mappings":"AACA,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AAGjC,SAAS,cAAc;AAAA,EAC7B;AAAA,EACA;AACD,GAGG;AACF,QAAM,kBAAkB;AAAA,IACvB,QAAQ,eAAe,cAAc,CAAC;AAAA,EACvC;AAEA,QAAM,eAAe,iBAAiB,IAAI,CAAC,SAAS,MAAM,EAAE;AAC5D,QAAM,cAAc;AAAA,IACnB,OAAO,oBAAoB,QAAQ;AAAA,EACpC;AACA,QAAM,aAAa,MAAM,gBAAgB,QAAQ,IAAI,CAAC,WAAW,OAAO,EAAE;AAE1E,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,sBAAsB,EAAE,KAAK,GAA4B;AACxE,QAAM,eAAe,KAAK,UAAU,IAAI,CAAC,SAAS,KAAK,GAAG;AAC1D,QAAM,cAAc,KAAK,SAAS,IAAI,CAAC,YAAY,QAAQ,GAAG;AAC9D,QAAM,aAAa,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,GAAG;AAE1D,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import type { ScorecardConfig, ScorecardState } from \"../schemas/config\";\nimport { getDataSourcesFromGroups } from \"./dataSources\";\nimport { getOrgUnitsForAnalytics } from \"./orgUnits\";\nimport type { ScorecardMeta } from \"../components\";\n\nexport function getDimensions({\n\tconfig,\n\tstate,\n}: {\n\tconfig: ScorecardConfig;\n\tstate: ScorecardState;\n}) {\n\tconst dataItemObjects = getDataSourcesFromGroups(\n\t\tconfig?.dataSelection?.dataGroups ?? [],\n\t);\n\n\tconst dataItemsIds = dataItemObjects?.map((item) => item?.id);\n\tconst orgUnitsIds = getOrgUnitsForAnalytics(\n\t\tstate?.orgUnitSelection ?? config?.orgUnitSelection,\n\t);\n\tconst periodsIds = state.periodSelection.periods.map((period) => period.id);\n\n\treturn {\n\t\tdataItemsIds,\n\t\torgUnitsIds,\n\t\tperiodsIds,\n\t};\n}\n\nexport function getDimensionsFromMeta({ meta }: { meta: ScorecardMeta }) {\n\tconst dataItemsIds = meta.dataItems.map((item) => item.uid);\n\tconst orgUnitsIds = meta.orgUnits.map((orgUnit) => orgUnit.uid);\n\tconst periodsIds = meta.periods.map((period) => period.uid);\n\n\treturn {\n\t\tdataItemsIds,\n\t\torgUnitsIds,\n\t\tperiodsIds,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/Scorecard/utils/analytics.ts"],"names":[],"mappings":"AACA,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AAGjC,SAAS,cAAc;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACD,GAIG;AACF,QAAM,kBAAkB;AAAA,IACvB,QAAQ,eAAe,cAAc,CAAC;AAAA,EACvC;AAEA,QAAM,eAAe,iBAAiB,IAAI,CAAC,SAAS,MAAM,EAAE;AAC5D,QAAM,cAAc;AAAA,IACnB,oBAAoB,QAAQ;AAAA,EAC7B;AACA,QAAM,aAAa,gBAAgB,QAAQ,IAAI,CAAC,WAAW,OAAO,EAAE;AAEpE,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEO,SAAS,sBAAsB,EAAE,KAAK,GAA4B;AACxE,QAAM,eAAe,KAAK,UAAU,IAAI,CAAC,SAAS,KAAK,GAAG;AAC1D,QAAM,cAAc,KAAK,SAAS,IAAI,CAAC,YAAY,QAAQ,GAAG;AAC9D,QAAM,aAAa,KAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,GAAG;AAE1D,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import type { ScorecardConfig, ScorecardState } from \"../schemas/config\";\nimport { getDataSourcesFromGroups } from \"./dataSources\";\nimport { getOrgUnitsForAnalytics } from \"./orgUnits\";\nimport type { ScorecardMeta } from \"../components\";\n\nexport function getDimensions({\n\tconfig,\n\torgUnitSelection,\n\tperiodSelection,\n}: {\n\tconfig: ScorecardConfig;\n\torgUnitSelection: ScorecardState[\"orgUnitSelection\"];\n\tperiodSelection: ScorecardState[\"periodSelection\"];\n}) {\n\tconst dataItemObjects = getDataSourcesFromGroups(\n\t\tconfig?.dataSelection?.dataGroups ?? [],\n\t);\n\n\tconst dataItemsIds = dataItemObjects?.map((item) => item?.id);\n\tconst orgUnitsIds = getOrgUnitsForAnalytics(\n\t\torgUnitSelection ?? config?.orgUnitSelection,\n\t);\n\tconst periodsIds = periodSelection.periods.map((period) => period.id);\n\n\treturn {\n\t\tdataItemsIds,\n\t\torgUnitsIds,\n\t\tperiodsIds,\n\t};\n}\n\nexport function getDimensionsFromMeta({ meta }: { meta: ScorecardMeta }) {\n\tconst dataItemsIds = meta.dataItems.map((item) => item.uid);\n\tconst orgUnitsIds = meta.orgUnits.map((orgUnit) => orgUnit.uid);\n\tconst periodsIds = meta.periods.map((period) => period.uid);\n\n\treturn {\n\t\tdataItemsIds,\n\t\torgUnitsIds,\n\t\tperiodsIds,\n\t};\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { createColumnHelper } from '@tanstack/react-table';
2
2
  import { sum, head } from 'lodash';
3
3
  import { DataContainer } from '../components/ScorecardTable/components/DataContainer';
4
- import { DataHeaderCell } from '../components/ScorecardTable/components/TableHeader/components/DataHeaderCell';
4
+ import { DataHeaderCell, EmptyDataHeaderCell } from '../components/ScorecardTable/components/TableHeader/components/DataHeaderCell';
5
5
  import { getAdjacentFixedPeriods, createFixedPeriodFromPeriodId } from '@dhis2/multi-calendar-dates';
6
6
  import { AverageCell } from '../components/ScorecardTable/components/AverageCell';
7
7
  import { AverageHeaderCell } from '../components/ScorecardTable/components/TableHeader/components/AverageHeaderCell';
@@ -9,15 +9,44 @@ import { DataFooterCell } from '../components/ScorecardTable/components/DataFoot
9
9
  import { AverageFooterCell } from '../components/ScorecardTable/components/AverageFooterCell';
10
10
 
11
11
  const columnHelper = createColumnHelper();
12
- function sortingFunction(rowA, rowB, columnId) {
13
- const dataA = rowA.getValue(columnId);
14
- const dataB = rowB.getValue(columnId);
15
- const valueA = head(dataA.dataSources)?.data.current ?? 0;
16
- const valueB = head(dataB.dataSources)?.data.current ?? 0;
17
- if (valueA === valueB) {
18
- return 0;
19
- }
20
- return valueA > valueB ? 1 : -1;
12
+ function getValueFromConfig({
13
+ config,
14
+ data
15
+ }) {
16
+ const dataValues = data.filter((datum) => {
17
+ return config.orgUnit.uid === datum.ou && config.currentPeriod === datum.pe && datum.dx === head(config.dataSources).id;
18
+ });
19
+ return {
20
+ ...head(config.dataSources),
21
+ data: getValues({
22
+ values: dataValues,
23
+ currentPeriod: config.currentPeriod,
24
+ previousPeriod: config.previousPeriod
25
+ })
26
+ };
27
+ }
28
+ function getSortingFunction(dataEngine) {
29
+ return function sortingFunction(rowA, rowB, columnId) {
30
+ if (!dataEngine.isDone) {
31
+ return 0;
32
+ }
33
+ const dataA = rowA.getValue(columnId);
34
+ const dataB = rowB.getValue(columnId);
35
+ const dataAValue = getValueFromConfig({
36
+ config: dataA,
37
+ data: dataEngine.data
38
+ });
39
+ const dataBValue = getValueFromConfig({
40
+ config: dataB,
41
+ data: dataEngine.data
42
+ });
43
+ const valueA = dataAValue.data.current ?? 0;
44
+ const valueB = dataBValue.data.current ?? 0;
45
+ if (valueA === valueB) {
46
+ return 0;
47
+ }
48
+ return valueA > valueB ? 1 : -1;
49
+ };
21
50
  }
22
51
  function getAverageValue({
23
52
  dataValues,
@@ -49,7 +78,8 @@ function getValues({
49
78
  }
50
79
  function getOrgUnitColumnHeaders({
51
80
  meta,
52
- calendar
81
+ calendar,
82
+ dataEngine
53
83
  }) {
54
84
  const orgUnits = meta.orgUnits ?? [];
55
85
  const periods = meta.periods ?? [];
@@ -74,30 +104,10 @@ function getOrgUnitColumnHeaders({
74
104
  steps: -1
75
105
  })
76
106
  )?.id;
77
- const values = rowData.dataValues.filter(({ ou }) => {
78
- return ou === orgUnit.uid;
79
- });
80
- const dataSources = rowData.dataHolder?.dataSources?.map(
81
- (dataSource) => {
82
- const dataSourceValues = values.filter(
83
- (value) => {
84
- return value.dx === dataSource.id;
85
- }
86
- );
87
- const data = getValues({
88
- currentPeriod,
89
- previousPeriod,
90
- values: dataSourceValues
91
- });
92
- return {
93
- ...dataSource,
94
- data
95
- };
96
- }
97
- );
107
+ const dataSources = rowData.dataHolder?.dataSources;
98
108
  return {
99
- ...rowData,
100
- period: uid,
109
+ currentPeriod,
110
+ previousPeriod,
101
111
  dataSources,
102
112
  orgUnit
103
113
  };
@@ -110,7 +120,7 @@ function getOrgUnitColumnHeaders({
110
120
  cell: DataContainer,
111
121
  id: `${orgUnit.uid}-${uid}`,
112
122
  enableSorting: true,
113
- sortingFn: sortingFunction,
123
+ sortingFn: getSortingFunction(dataEngine),
114
124
  footer: DataFooterCell
115
125
  }
116
126
  )
@@ -118,9 +128,7 @@ function getOrgUnitColumnHeaders({
118
128
  });
119
129
  });
120
130
  }
121
- function getAverageColumn({
122
- meta
123
- }) {
131
+ function getAverageColumn({}) {
124
132
  return columnHelper.group({
125
133
  id: "average-header",
126
134
  header: AverageHeaderCell,
@@ -128,25 +136,7 @@ function getAverageColumn({
128
136
  columnHelper.accessor(
129
137
  (rowData) => {
130
138
  return {
131
- ...rowData,
132
- dataSources: rowData.dataHolder?.dataSources?.map(
133
- (dataSource) => {
134
- const dataValues = rowData.dataValues.filter(
135
- ({ dx }) => dx === dataSource.id
136
- );
137
- return {
138
- ...dataSource,
139
- average: getAverageValue({
140
- dataValues,
141
- meta
142
- })
143
- };
144
- }
145
- ),
146
- average: getAverageValue({
147
- dataValues: rowData.dataValues,
148
- meta
149
- })
139
+ ...rowData
150
140
  };
151
141
  },
152
142
  {
@@ -164,13 +154,11 @@ function getDataHolderColumn({
164
154
  hasOnePeriod,
165
155
  dataHolder,
166
156
  periods,
167
- calendar
157
+ calendar,
158
+ dataEngine
168
159
  }) {
169
160
  const { id, dataSources } = dataHolder;
170
- const header = dataSources.length === 1 ? head(dataSources)?.label : dataSources.reduce(
171
- (acc, { label, id: id2 }) => `${acc} / ${label}`,
172
- ""
173
- );
161
+ const header = dataSources.length === 1 ? head(dataSources)?.label : dataSources.reduce((acc, { label }) => `${acc} / ${label}`, "");
174
162
  if (hasOnePeriod) {
175
163
  return columnHelper.accessor(
176
164
  (rowData) => {
@@ -185,24 +173,11 @@ function getDataHolderColumn({
185
173
  steps: -1
186
174
  })
187
175
  )?.id;
188
- const dataSourceWithValues = dataSources.map((dataSource) => {
189
- const values = rowData.dataValues.filter(({ dx }) => {
190
- return dx === dataSource.id;
191
- });
192
- const data = getValues({
193
- currentPeriod,
194
- previousPeriod,
195
- values
196
- });
197
- return {
198
- ...dataSource,
199
- data
200
- };
201
- });
202
176
  return {
203
177
  ...rowData,
204
- dataSources: dataSourceWithValues,
205
- period: head(periods)?.uid
178
+ dataSources,
179
+ previousPeriod,
180
+ currentPeriod
206
181
  };
207
182
  },
208
183
  {
@@ -213,7 +188,7 @@ function getDataHolderColumn({
213
188
  id: id.toString(),
214
189
  cell: DataContainer,
215
190
  enableSorting: true,
216
- sortingFn: sortingFunction,
191
+ sortingFn: getSortingFunction(dataEngine),
217
192
  footer: DataFooterCell
218
193
  }
219
194
  );
@@ -234,28 +209,11 @@ function getDataHolderColumn({
234
209
  steps: -1
235
210
  })
236
211
  )?.id;
237
- const dataSourceWithValues = dataSources.map(
238
- (dataSource) => {
239
- const values = rowData.dataValues.filter(
240
- ({ dx }) => {
241
- return dx === dataSource.id;
242
- }
243
- );
244
- const data = getValues({
245
- currentPeriod,
246
- previousPeriod,
247
- values
248
- });
249
- return {
250
- ...dataSource,
251
- data
252
- };
253
- }
254
- );
255
212
  return {
256
213
  ...rowData,
257
- dataSources: dataSourceWithValues,
258
- period: uid
214
+ dataSources,
215
+ currentPeriod,
216
+ previousPeriod
259
217
  };
260
218
  },
261
219
  {
@@ -266,7 +224,7 @@ function getDataHolderColumn({
266
224
  cell: DataContainer,
267
225
  id: `${id.toString()}-${uid}`,
268
226
  enableSorting: true,
269
- sortingFn: sortingFunction,
227
+ sortingFn: getSortingFunction(dataEngine),
270
228
  footer: DataFooterCell
271
229
  }
272
230
  )
@@ -276,13 +234,14 @@ function getDataHolderColumn({
276
234
  },
277
235
  header: DataHeaderCell,
278
236
  enableSorting: true,
279
- sortingFn: sortingFunction
237
+ sortingFn: getSortingFunction(dataEngine)
280
238
  });
281
239
  }
282
240
  function getDataColumnHeaders({
283
241
  meta,
284
242
  config,
285
- calendar
243
+ calendar,
244
+ dataEngine
286
245
  }) {
287
246
  const dataGroups = config.dataSelection.dataGroups ?? [];
288
247
  const hasOneGroup = dataGroups.length === 1;
@@ -292,7 +251,7 @@ function getDataColumnHeaders({
292
251
  return dataGroups.map(({ title, dataHolders, id }) => {
293
252
  return columnHelper.group({
294
253
  id: id.toString(),
295
- header: DataHeaderCell,
254
+ header: EmptyDataHeaderCell,
296
255
  meta: {
297
256
  label: title,
298
257
  bold: true
@@ -302,7 +261,8 @@ function getDataColumnHeaders({
302
261
  hasOnePeriod,
303
262
  dataHolder,
304
263
  periods,
305
- calendar
264
+ calendar,
265
+ dataEngine
306
266
  });
307
267
  }),
308
268
  enableSorting: false,
@@ -323,7 +283,8 @@ function getDataColumnHeaders({
323
283
  hasOnePeriod,
324
284
  dataHolder,
325
285
  periods,
326
- calendar
286
+ calendar,
287
+ dataEngine
327
288
  });
328
289
  }),
329
290
  enableSorting: false,
@@ -333,6 +294,6 @@ function getDataColumnHeaders({
333
294
  }
334
295
  }
335
296
 
336
- export { getAverageColumn, getAverageValue, getDataColumnHeaders, getOrgUnitColumnHeaders };
297
+ export { getAverageColumn, getAverageValue, getDataColumnHeaders, getOrgUnitColumnHeaders, getValues };
337
298
  //# sourceMappingURL=out.js.map
338
299
  //# sourceMappingURL=columns.js.map