@hisptz/dhis2-analytics 2.0.32 → 2.0.34

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 +128 -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 +132 -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 +5 -5
  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
@@ -4,16 +4,15 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var TableStateProvider = require('../../../TableStateProvider');
5
5
  var ui = require('@dhis2/ui');
6
6
  var reactTable = require('@tanstack/react-table');
7
+ var react = require('react');
7
8
 
8
- function TableHeader() {
9
+ const TableHeader = react.memo(function TableHeaderComponent() {
9
10
  const table = TableStateProvider.useTableState();
10
- return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableRow, { children: headerGroup.headers.map(
11
- (header) => reactTable.flexRender(
12
- header.column.columnDef.header,
13
- header.getContext()
14
- )
15
- ) }, headerGroup.id)) });
16
- }
11
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsxRuntime.jsx(react.Fragment, { children: reactTable.flexRender(
12
+ header.column.columnDef.header,
13
+ header.getContext()
14
+ ) }, `${header.id}-fragment`)) }, headerGroup.id)) });
15
+ });
17
16
 
18
17
  exports.TableHeader = TableHeader;
19
18
  //# sourceMappingURL=out.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.tsx"],"names":[],"mappings":"AAUI;AAVJ,SAAS,qBAAqB;AAC9B,SAAS,eAAe,oBAAoB;AAC5C,SAAS,kBAAkB;AAEpB,SAAS,cAAc;AAC7B,QAAM,QAAQ,cAAc;AAE5B,SACC,oBAAC,iBACC,gBAAM,gBAAgB,EAAE,IAAI,CAAC,gBAC7B,oBAAC,gBACC,sBAAY,QAAQ;AAAA,IAAI,CAAC,WACzB;AAAA,MACC,OAAO,OAAO,UAAU;AAAA,MACxB,OAAO,WAAW;AAAA,IACnB;AAAA,EACD,KANkB,YAAY,EAO/B,CACA,GACF;AAEF","sourcesContent":["import { useTableState } from \"../../../TableStateProvider\";\nimport { DataTableHead, DataTableRow } from \"@dhis2/ui\";\nimport { flexRender } from \"@tanstack/react-table\";\n\nexport function TableHeader() {\n\tconst table = useTableState();\n\n\treturn (\n\t\t<DataTableHead>\n\t\t\t{table.getHeaderGroups().map((headerGroup) => (\n\t\t\t\t<DataTableRow key={headerGroup.id}>\n\t\t\t\t\t{headerGroup.headers.map((header) =>\n\t\t\t\t\t\tflexRender(\n\t\t\t\t\t\t\theader.column.columnDef.header,\n\t\t\t\t\t\t\theader.getContext(),\n\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t</DataTableRow>\n\t\t\t))}\n\t\t</DataTableHead>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/TableHeader.tsx"],"names":[],"mappings":"AAaM;AAbN,SAAS,qBAAqB;AAC9B,SAAS,eAAe,oBAAoB;AAC5C,SAAS,kBAAkB;AAC3B,SAAS,UAAU,YAAY;AAExB,MAAM,cAAc,KAAK,SAAS,uBAAuB;AAC/D,QAAM,QAAQ,cAAc;AAE5B,SACC,oBAAC,iBACC,gBAAM,gBAAgB,EAAE,IAAI,CAAC,gBAC7B,oBAAC,gBACC,sBAAY,QAAQ,IAAI,CAAC,WACzB,oBAAC,YACC;AAAA,IACA,OAAO,OAAO,UAAU;AAAA,IACxB,OAAO,WAAW;AAAA,EACnB,KAJc,GAAG,OAAO,EAAE,WAK3B,CACA,KARiB,YAAY,EAS/B,CACA,GACF;AAEF,CAAC","sourcesContent":["import { useTableState } from \"../../../TableStateProvider\";\nimport { DataTableHead, DataTableRow } from \"@dhis2/ui\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { Fragment, memo } from \"react\";\n\nexport const TableHeader = memo(function TableHeaderComponent() {\n\tconst table = useTableState();\n\n\treturn (\n\t\t<DataTableHead>\n\t\t\t{table.getHeaderGroups().map((headerGroup) => (\n\t\t\t\t<DataTableRow key={headerGroup.id}>\n\t\t\t\t\t{headerGroup.headers.map((header) => (\n\t\t\t\t\t\t<Fragment key={`${header.id}-fragment`}>\n\t\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\t\theader.column.columnDef.header,\n\t\t\t\t\t\t\t\theader.getContext(),\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t))}\n\t\t\t\t</DataTableRow>\n\t\t\t))}\n\t\t</DataTableHead>\n\t);\n});\n"]}
@@ -12,20 +12,18 @@ var i18n__default = /*#__PURE__*/_interopDefault(i18n);
12
12
  var styles__default = /*#__PURE__*/_interopDefault(styles);
13
13
 
14
14
  function AverageHeaderCell({
15
- header,
16
- column
15
+ header
17
16
  }) {
18
- const state = StateProvider.useScorecardState();
19
- const hasOnePeriod = state?.hasOnePeriod;
20
- const dataInRows = state?.options?.showDataInRows;
17
+ const dataInRows = StateProvider.useScorecardStateSelector([
18
+ "options",
19
+ "showDataInRows"
20
+ ]);
21
+ const hasOnePeriod = StateProvider.useScorecardStateSelector(["hasOnePeriod"]);
21
22
  const rowSpan = dataInRows ? hasOnePeriod ? "2" : "2" : hasOnePeriod ? "2" : "3";
22
23
  return /* @__PURE__ */ jsxRuntime.jsx(
23
24
  ui.DataTableColumnHeader,
24
25
  {
25
26
  align: "right",
26
- onFilterIconClick: () => {
27
- },
28
- fixed: true,
29
27
  colSpan: header.colSpan.toString(),
30
28
  rowSpan,
31
29
  className: styles__default.default.metaHeader,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.tsx"],"names":[],"mappings":"AAgCG;AA9BH,SAAS,6BAA6B;AACtC,OAAO,UAAU;AACjB,OAAO,YAAY;AACnB,SAAS,yBAAyB;AAE3B,SAAS,kBAAkB;AAAA,EACjC;AAAA,EACA;AACD,GAA2C;AAC1C,QAAM,QAAQ,kBAAkB;AAChC,QAAM,eAAe,OAAO;AAC5B,QAAM,aAAa,OAAO,SAAS;AACnC,QAAM,UAAU,aACb,eACC,MACA,MACD,eACC,MACA;AAEJ,SACC;AAAA,IAAC;AAAA;AAAA,MAEA,OAAM;AAAA,MACN,mBAAmB,MAAM;AAAA,MAAC;AAAA,MAC1B,OAAK;AAAA,MACL,SAAS,OAAO,QAAQ,SAAS;AAAA,MACjC;AAAA,MACA,WAAW,OAAO;AAAA,MAElB,8BAAC,OAAG,eAAK,EAAE,SAAS,GAAE;AAAA;AAAA,IARjB,OAAO;AAAA,EASb;AAEF","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport styles from \"../TableHeader.module.css\";\nimport { useScorecardState } from \"../../../../StateProvider\";\n\nexport function AverageHeaderCell({\n\theader,\n\tcolumn,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst state = useScorecardState();\n\tconst hasOnePeriod = state?.hasOnePeriod;\n\tconst dataInRows = state?.options?.showDataInRows;\n\tconst rowSpan = dataInRows\n\t\t? hasOnePeriod\n\t\t\t? \"2\"\n\t\t\t: \"2\"\n\t\t: hasOnePeriod\n\t\t\t? \"2\"\n\t\t\t: \"3\";\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tkey={header.id}\n\t\t\talign=\"right\"\n\t\t\tonFilterIconClick={() => {}}\n\t\t\tfixed\n\t\t\tcolSpan={header.colSpan.toString()}\n\t\t\trowSpan={rowSpan}\n\t\t\tclassName={styles.metaHeader}\n\t\t>\n\t\t\t<b>{i18n.t(\"Average\")}</b>\n\t\t</DataTableColumnHeader>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.tsx"],"names":[],"mappings":"AA+BG;AA7BH,SAAS,6BAA6B;AACtC,OAAO,UAAU;AACjB,OAAO,YAAY;AACnB,SAAS,iCAAiC;AAEnC,SAAS,kBAAkB;AAAA,EACjC;AACD,GAA2C;AAC1C,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AACD,QAAM,eAAe,0BAAmC,CAAC,cAAc,CAAC;AACxE,QAAM,UAAU,aACb,eACC,MACA,MACD,eACC,MACA;AAEJ,SACC;AAAA,IAAC;AAAA;AAAA,MAEA,OAAM;AAAA,MACN,SAAS,OAAO,QAAQ,SAAS;AAAA,MACjC;AAAA,MACA,WAAW,OAAO;AAAA,MAElB,8BAAC,OAAG,eAAK,EAAE,SAAS,GAAE;AAAA;AAAA,IANjB,OAAO;AAAA,EAOb;AAEF","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport styles from \"../TableHeader.module.css\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\n\nexport function AverageHeaderCell({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst hasOnePeriod = useScorecardStateSelector<boolean>([\"hasOnePeriod\"]);\n\tconst rowSpan = dataInRows\n\t\t? hasOnePeriod\n\t\t\t? \"2\"\n\t\t\t: \"2\"\n\t\t: hasOnePeriod\n\t\t\t? \"2\"\n\t\t\t: \"3\";\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tkey={header.id}\n\t\t\talign=\"right\"\n\t\t\tcolSpan={header.colSpan.toString()}\n\t\t\trowSpan={rowSpan}\n\t\t\tclassName={styles.metaHeader}\n\t\t>\n\t\t\t<b>{i18n.t(\"Average\")}</b>\n\t\t</DataTableColumnHeader>\n\t);\n}\n"]}
@@ -13,12 +13,20 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
13
  var i18n__default = /*#__PURE__*/_interopDefault(i18n);
14
14
  var DroppableCell__default = /*#__PURE__*/_interopDefault(DroppableCell);
15
15
 
16
+ function EmptyDataHeaderCell({
17
+ header
18
+ }) {
19
+ const colSpan = header.colSpan.toString();
20
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableColumnHeader, { colSpan });
21
+ }
16
22
  function DataHeaderCellComponent({
17
23
  column,
18
24
  header
19
25
  }) {
20
- const state = StateProvider.useScorecardState();
21
- const dataInRows = state?.options?.showDataInRows ?? false;
26
+ const dataInRows = StateProvider.useScorecardStateSelector([
27
+ "options",
28
+ "showDataInRows"
29
+ ]);
22
30
  const label = header.column.columnDef.meta.label ?? column.columnDef.meta.label;
23
31
  const bold = header.column.columnDef.meta.bold ?? column.columnDef.meta.bold;
24
32
  const colSpan = header.colSpan.toString();
@@ -27,7 +35,6 @@ function DataHeaderCellComponent({
27
35
  return /* @__PURE__ */ jsxRuntime.jsx(
28
36
  ui.DataTableColumnHeader,
29
37
  {
30
- fixed: true,
31
38
  sortIconTitle: i18n__default.default.t("Sort {{nextSortType}}", { nextSortType }),
32
39
  onSortIconClick: header.column?.getCanSort() || column.getCanSort() ? (_, e) => {
33
40
  const sort = column.getToggleSortingHandler();
@@ -51,12 +58,14 @@ function DataHeaderCellComponent({
51
58
  )
52
59
  }
53
60
  )
54
- }
61
+ },
62
+ `${label}`
55
63
  );
56
64
  }
57
65
  const DataHeaderCell = DataHeaderCellComponent;
58
66
 
59
67
  exports.DataHeaderCell = DataHeaderCell;
60
68
  exports.DataHeaderCellComponent = DataHeaderCellComponent;
69
+ exports.EmptyDataHeaderCell = EmptyDataHeaderCell;
61
70
  //# sourceMappingURL=out.js.map
62
71
  //# sourceMappingURL=DataHeaderCell.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":[],"mappings":"AA0Ea;AAzEb;AAAA,EACC;AAAA,OAEM;AACP,SAAS,6BAA0D;AACnE,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAC9B,OAAO,mBAAmB;AAC1B,SAAS,yBAAyB;AAE3B,SAAS,wBAAwB;AAAA,EACvC;AAAA,EACA;AACD,GAA2C;AAC1C,QAAM,QAAQ,kBAAkB;AAEhC,QAAM,aAAa,OAAO,SAAS,kBAAkB;AACrD,QAAM,QACJ,OAAO,OAAO,UAAU,KAA2B,SACnD,OAAO,UAAU,KAA2B;AAE9C,QAAM,OACJ,OAAO,OAAO,UAAU,KAA4B,QACpD,OAAO,UAAU,KAA4B;AAE/C,QAAM,UAAU,OAAO,QAAQ,SAAS;AAExC,QAAM,gBAAgB,CAAC,QAAQ,YAAY,IACxC,YACC,OAAQ,YAAY;AACxB,QAAM,eACL,QAAQ,oBAAoB,MAAM,QAC/B,KAAK,EAAE,oBAAoB,IAC3B,QAAQ,oBAAoB,MAAM,SACjC,KAAK,EAAE,qBAAqB,IAC5B,KAAK,EAAE,SAAS;AAErB,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAK;AAAA,MACL,eAAe,KAAK,EAAE,yBAAyB,EAAE,aAAa,CAAC;AAAA,MAC/D,iBACC,OAAO,QAAQ,WAAW,KAAK,OAAO,WAAW,IAC9C,CAAC,GAAG,MAAM;AACV,cAAM,OAAO,OAAQ,wBAAwB;AAC7C,YAAI,MAAM;AACT,eAAK,CAAC;AAAA,QACP;AAAA,MACD,IACC;AAAA,MAEJ,eACC,OAAO,QAAQ,WAAW,KAAK,OAAO,WAAW,IAC9C,gBACA;AAAA,MAEJ,OAAM;AAAA,MACN;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA,QACC,aACG,CAAC,wBAAwB,IAAI,IAC7B,CAAC,wBAAwB,EAAE;AAAA,UAG/B;AAAA,YAAC;AAAA;AAAA,cACA,MACC,aACG,wBAAwB,KACxB,wBAAwB;AAAA,cAG3B,iBAAO,oBAAC,OAAG,iBAAM,IAAO;AAAA;AAAA,UAC1B;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEO,MAAM,iBAAiB","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader, type DataTableSortDirection } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { useScorecardState } from \"../../../../StateProvider\";\n\nexport function DataHeaderCellComponent({\n\tcolumn,\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst state = useScorecardState();\n\n\tconst dataInRows = state?.options?.showDataInRows ?? false;\n\tconst label =\n\t\t(header.column.columnDef.meta as { label: string }).label ??\n\t\t(column.columnDef.meta as { label: string }).label;\n\n\tconst bold =\n\t\t(header.column.columnDef.meta as { bold?: boolean }).bold ??\n\t\t(column.columnDef.meta as { bold?: boolean }).bold;\n\n\tconst colSpan = header.colSpan.toString();\n\n\tconst sortDirection = !column?.getIsSorted()\n\t\t? \"default\"\n\t\t: (column!.getIsSorted() as DataTableSortDirection);\n\tconst nextSortType =\n\t\tcolumn?.getNextSortingOrder() === \"asc\"\n\t\t\t? i18n.t(\"in ascending order\")\n\t\t\t: column?.getNextSortingOrder() === \"desc\"\n\t\t\t\t? i18n.t(\"in descending order\")\n\t\t\t\t: i18n.t(\"disable\");\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tfixed\n\t\t\tsortIconTitle={i18n.t(\"Sort {{nextSortType}}\", { nextSortType })}\n\t\t\tonSortIconClick={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? (_, e) => {\n\t\t\t\t\t\t\tconst sort = column!.getToggleSortingHandler();\n\t\t\t\t\t\t\tif (sort) {\n\t\t\t\t\t\t\t\tsort(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tsortDirection={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? sortDirection\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={colSpan}\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.data]\n\t\t\t\t\t\t: [ScorecardDraggableItems.ou]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.ou\n\t\t\t\t\t\t\t: ScorecardDraggableItems.data\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{bold ? <b>{label}</b> : label}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableColumnHeader>\n\t);\n}\n\nexport const DataHeaderCell = DataHeaderCellComponent;\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":[],"mappings":"AAeQ;AAdR;AAAA,EACC;AAAA,OAEM;AACP,SAAS,6BAA0D;AACnE,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAC9B,OAAO,mBAAmB;AAC1B,SAAS,iCAAiC;AAEnC,SAAS,oBAAoB;AAAA,EACnC;AACD,GAA2C;AAC1C,QAAM,UAAU,OAAO,QAAQ,SAAS;AACxC,SAAO,oBAAC,yBAAsB,SAAkB;AACjD;AAEO,SAAS,wBAAwB;AAAA,EACvC;AAAA,EACA;AACD,GAA2C;AAC1C,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AACD,QAAM,QACJ,OAAO,OAAO,UAAU,KAA2B,SACnD,OAAO,UAAU,KAA2B;AAE9C,QAAM,OACJ,OAAO,OAAO,UAAU,KAA4B,QACpD,OAAO,UAAU,KAA4B;AAE/C,QAAM,UAAU,OAAO,QAAQ,SAAS;AAExC,QAAM,gBAAgB,CAAC,QAAQ,YAAY,IACxC,YACC,OAAQ,YAAY;AACxB,QAAM,eACL,QAAQ,oBAAoB,MAAM,QAC/B,KAAK,EAAE,oBAAoB,IAC3B,QAAQ,oBAAoB,MAAM,SACjC,KAAK,EAAE,qBAAqB,IAC5B,KAAK,EAAE,SAAS;AAErB,SACC;AAAA,IAAC;AAAA;AAAA,MAEA,eAAe,KAAK,EAAE,yBAAyB,EAAE,aAAa,CAAC;AAAA,MAC/D,iBACC,OAAO,QAAQ,WAAW,KAAK,OAAO,WAAW,IAC9C,CAAC,GAAG,MAAM;AACV,cAAM,OAAO,OAAQ,wBAAwB;AAC7C,YAAI,MAAM;AACT,eAAK,CAAC;AAAA,QACP;AAAA,MACD,IACC;AAAA,MAEJ,eACC,OAAO,QAAQ,WAAW,KAAK,OAAO,WAAW,IAC9C,gBACA;AAAA,MAEJ,OAAM;AAAA,MACN;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACA,QACC,aACG,CAAC,wBAAwB,IAAI,IAC7B,CAAC,wBAAwB,EAAE;AAAA,UAG/B;AAAA,YAAC;AAAA;AAAA,cACA,MACC,aACG,wBAAwB,KACxB,wBAAwB;AAAA,cAG3B,iBAAO,oBAAC,OAAG,iBAAM,IAAO;AAAA;AAAA,UAC1B;AAAA;AAAA,MACD;AAAA;AAAA,IApCK,GAAG,KAAK;AAAA,EAqCd;AAEF;AAEO,MAAM,iBAAiB","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader, type DataTableSortDirection } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\n\nexport function EmptyDataHeaderCell({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst colSpan = header.colSpan.toString();\n\treturn <DataTableColumnHeader colSpan={colSpan} />;\n}\n\nexport function DataHeaderCellComponent({\n\tcolumn,\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst label =\n\t\t(header.column.columnDef.meta as { label: string }).label ??\n\t\t(column.columnDef.meta as { label: string }).label;\n\n\tconst bold =\n\t\t(header.column.columnDef.meta as { bold?: boolean }).bold ??\n\t\t(column.columnDef.meta as { bold?: boolean }).bold;\n\n\tconst colSpan = header.colSpan.toString();\n\n\tconst sortDirection = !column?.getIsSorted()\n\t\t? \"default\"\n\t\t: (column!.getIsSorted() as DataTableSortDirection);\n\tconst nextSortType =\n\t\tcolumn?.getNextSortingOrder() === \"asc\"\n\t\t\t? i18n.t(\"in ascending order\")\n\t\t\t: column?.getNextSortingOrder() === \"desc\"\n\t\t\t\t? i18n.t(\"in descending order\")\n\t\t\t\t: i18n.t(\"disable\");\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tkey={`${label}`}\n\t\t\tsortIconTitle={i18n.t(\"Sort {{nextSortType}}\", { nextSortType })}\n\t\t\tonSortIconClick={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? (_, e) => {\n\t\t\t\t\t\t\tconst sort = column!.getToggleSortingHandler();\n\t\t\t\t\t\t\tif (sort) {\n\t\t\t\t\t\t\t\tsort(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tsortDirection={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? sortDirection\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={colSpan}\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.data]\n\t\t\t\t\t\t: [ScorecardDraggableItems.ou]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.ou\n\t\t\t\t\t\t\t: ScorecardDraggableItems.data\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{bold ? <b>{label}</b> : label}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableColumnHeader>\n\t);\n}\n\nexport const DataHeaderCell = DataHeaderCellComponent;\n"]}
@@ -13,8 +13,10 @@ var i18n__default = /*#__PURE__*/_interopDefault(i18n);
13
13
  function FilterArea({ column }) {
14
14
  const defaultValue = column.getFilterValue();
15
15
  const [text, setText] = react.useState(defaultValue);
16
- const state = StateProvider.useScorecardState();
17
- const dataInRows = state?.options?.showDataInRows ?? false;
16
+ const dataInRows = StateProvider.useScorecardStateSelector([
17
+ "options",
18
+ "showDataInRows"
19
+ ]);
18
20
  const searchPlaceholder = dataInRows ? i18n__default.default.t("Search data items") : i18n__default.default.t("Search organisation units");
19
21
  react.useEffect(() => {
20
22
  const timeout = setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.tsx"],"names":[],"mappings":"AA8BE;AA5BF,OAAO,UAAU;AACjB,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,WAAW,gBAAgB;AAM7B,SAAS,WAAW,EAAE,OAAO,GAAoB;AACvD,QAAM,eAAe,OAAO,eAAe;AAC3C,QAAM,CAAC,MAAM,OAAO,IAAI,SAA6B,YAAY;AACjE,QAAM,QAAQ,kBAAkB;AAChC,QAAM,aAAa,OAAO,SAAS,kBAAkB;AAErD,QAAM,oBAAoB,aACvB,KAAK,EAAE,mBAAmB,IAC1B,KAAK,EAAE,2BAA2B;AAErC,YAAU,MAAM;AACf,UAAM,UAAU,WAAW,MAAM;AAChC,aAAO,eAAe,IAAI;AAAA,IAC3B,GAAG,GAAG;AAEN,WAAO,MAAM,aAAa,OAAO;AAAA,EAClC,GAAG,CAAC,IAAI,CAAC;AAET,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,MACP,UAAU,CAAC,EAAE,MAAM,MAAM,QAAQ,KAAK;AAAA,MACtC,aAAa;AAAA;AAAA,EACd;AAEF","sourcesContent":["import type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport type { Column } from \"@tanstack/react-table\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardState } from \"../../../../StateProvider\";\nimport { InputField } from \"@dhis2/ui\";\nimport { useEffect, useState } from \"react\";\n\nexport interface FilterAreaProps {\n\tcolumn: Column<ScorecardTableData, any>;\n}\n\nexport function FilterArea({ column }: FilterAreaProps) {\n\tconst defaultValue = column.getFilterValue() as string | undefined;\n\tconst [text, setText] = useState<string | undefined>(defaultValue);\n\tconst state = useScorecardState();\n\tconst dataInRows = state?.options?.showDataInRows ?? false;\n\n\tconst searchPlaceholder = dataInRows\n\t\t? i18n.t(\"Search data items\")\n\t\t: i18n.t(\"Search organisation units\");\n\n\tuseEffect(() => {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tcolumn.setFilterValue(text);\n\t\t}, 700);\n\n\t\treturn () => clearTimeout(timeout);\n\t}, [text]);\n\n\treturn (\n\t\t<InputField\n\t\t\tvalue={text}\n\t\t\tonChange={({ value }) => setText(value)}\n\t\t\tplaceholder={searchPlaceholder}\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/FilterArea.tsx"],"names":[],"mappings":"AA+BE;AA7BF,OAAO,UAAU;AACjB,SAAS,iCAAiC;AAC1C,SAAS,kBAAkB;AAC3B,SAAS,WAAW,gBAAgB;AAM7B,SAAS,WAAW,EAAE,OAAO,GAAoB;AACvD,QAAM,eAAe,OAAO,eAAe;AAC3C,QAAM,CAAC,MAAM,OAAO,IAAI,SAA6B,YAAY;AACjE,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AACD,QAAM,oBAAoB,aACvB,KAAK,EAAE,mBAAmB,IAC1B,KAAK,EAAE,2BAA2B;AAErC,YAAU,MAAM;AACf,UAAM,UAAU,WAAW,MAAM;AAChC,aAAO,eAAe,IAAI;AAAA,IAC3B,GAAG,GAAG;AAEN,WAAO,MAAM,aAAa,OAAO;AAAA,EAClC,GAAG,CAAC,IAAI,CAAC;AAET,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,MACP,UAAU,CAAC,EAAE,MAAM,MAAM,QAAQ,KAAK;AAAA,MACtC,aAAa;AAAA;AAAA,EACd;AAEF","sourcesContent":["import type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport type { Column } from \"@tanstack/react-table\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\nimport { InputField } from \"@dhis2/ui\";\nimport { useEffect, useState } from \"react\";\n\nexport interface FilterAreaProps {\n\tcolumn: Column<ScorecardTableData, any>;\n}\n\nexport function FilterArea({ column }: FilterAreaProps) {\n\tconst defaultValue = column.getFilterValue() as string | undefined;\n\tconst [text, setText] = useState<string | undefined>(defaultValue);\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst searchPlaceholder = dataInRows\n\t\t? i18n.t(\"Search data items\")\n\t\t: i18n.t(\"Search organisation units\");\n\n\tuseEffect(() => {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tcolumn.setFilterValue(text);\n\t\t}, 700);\n\n\t\treturn () => clearTimeout(timeout);\n\t}, [text]);\n\n\treturn (\n\t\t<InputField\n\t\t\tvalue={text}\n\t\t\tonChange={({ value }) => setText(value)}\n\t\t\tplaceholder={searchPlaceholder}\n\t\t/>\n\t);\n}\n"]}
@@ -14,8 +14,10 @@ var DroppableCell__default = /*#__PURE__*/_interopDefault(DroppableCell);
14
14
 
15
15
  function LabelCellComponent(props) {
16
16
  const data = props.getValue().toString();
17
- const state = StateProvider.useScorecardState();
18
- const dataInRows = state?.options?.showDataInRows ?? false;
17
+ const dataInRows = StateProvider.useScorecardStateSelector([
18
+ "options",
19
+ "showDataInRows"
20
+ ]);
19
21
  return /* @__PURE__ */ jsxRuntime.jsx(
20
22
  ui.DataTableCell,
21
23
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.tsx"],"names":[],"mappings":"AAkCI;AAjCJ;AAAA,EACC;AAAA,OAEM;AACP,SAAS,qBAAqB;AAC9B,OAAO,mBAAmB;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAClC,SAAS,YAAY;AAEd,SAAS,mBACf,OACC;AACD,QAAM,OAAO,MAAM,SAAS,EAAE,SAAS;AACvC,QAAM,QAAQ,kBAAkB;AAChC,QAAM,aAAa,OAAO,SAAS,kBAAkB;AAErD,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MACX;AAAA,MACA,OAAK;AAAA,MACL,UAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACA,QACC,aACG,CAAC,wBAAwB,EAAE,IAC3B,CAAC,wBAAwB,IAAI;AAAA,UAGjC;AAAA,YAAC;AAAA;AAAA,cACA,MACC,aACG,wBAAwB,OACxB,wBAAwB;AAAA,cAG3B;AAAA;AAAA,UACF;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEO,MAAM,YAAY,KAAK,kBAAkB","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport { useScorecardState } from \"../../../../StateProvider\";\nimport { memo } from \"react\";\n\nexport function LabelCellComponent(\n\tprops: CellContext<ScorecardTableData, string | number>,\n) {\n\tconst data = props.getValue().toString();\n\tconst state = useScorecardState();\n\tconst dataInRows = state?.options?.showDataInRows ?? false;\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tstyle={{\n\t\t\t\twidth: \"fit-content\",\n\t\t\t\tminWidth: 200,\n\t\t\t}}\n\t\t\tfixed\n\t\t\tbordered\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.ou]\n\t\t\t\t\t\t: [ScorecardDraggableItems.data]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.data\n\t\t\t\t\t\t\t: ScorecardDraggableItems.ou\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{data}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableCell>\n\t);\n}\n\nexport const LabelCell = memo(LabelCellComponent);\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.tsx"],"names":[],"mappings":"AAoCI;AAnCJ;AAAA,EACC;AAAA,OAEM;AACP,SAAS,qBAAqB;AAC9B,OAAO,mBAAmB;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,iCAAiC;AAC1C,SAAS,YAAY;AAEd,SAAS,mBACf,OACC;AACD,QAAM,OAAO,MAAM,SAAS,EAAE,SAAS;AACvC,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MACX;AAAA,MACA,OAAK;AAAA,MACL,UAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACA,QACC,aACG,CAAC,wBAAwB,EAAE,IAC3B,CAAC,wBAAwB,IAAI;AAAA,UAGjC;AAAA,YAAC;AAAA;AAAA,cACA,MACC,aACG,wBAAwB,OACxB,wBAAwB;AAAA,cAG3B;AAAA;AAAA,UACF;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEO,MAAM,YAAY,KAAK,kBAAkB","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\nimport { memo } from \"react\";\n\nexport function LabelCellComponent(\n\tprops: CellContext<ScorecardTableData, string | number>,\n) {\n\tconst data = props.getValue().toString();\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tstyle={{\n\t\t\t\twidth: \"fit-content\",\n\t\t\t\tminWidth: 200,\n\t\t\t}}\n\t\t\tfixed\n\t\t\tbordered\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.ou]\n\t\t\t\t\t\t: [ScorecardDraggableItems.data]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.data\n\t\t\t\t\t\t\t: ScorecardDraggableItems.ou\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{data}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableCell>\n\t);\n}\n\nexport const LabelCell = memo(LabelCellComponent);\n"]}
@@ -18,9 +18,11 @@ function MetaHeaderCellComponent({
18
18
  header
19
19
  }) {
20
20
  const randomId = react.useRef(dhis2Utils.uid());
21
- const state = StateProvider.useScorecardState();
22
- const hasOnePeriod = state?.hasOnePeriod ?? false;
23
- const dataInRows = state?.options?.showDataInRows ?? false;
21
+ const hasOnePeriod = StateProvider.useScorecardStateSelector(["hasOnePeriod"]);
22
+ const dataInRows = StateProvider.useScorecardStateSelector([
23
+ "options",
24
+ "showDataInRows"
25
+ ]);
24
26
  const rowSpan = dataInRows ? hasOnePeriod ? "2" : "2" : hasOnePeriod ? "2" : "3";
25
27
  const filterColumn = header.subHeaders.find(
26
28
  (header2) => header2.column.getCanFilter()
@@ -31,17 +33,14 @@ function MetaHeaderCellComponent({
31
33
  ui.DataTableColumnHeader,
32
34
  {
33
35
  align: "right",
34
- onFilterIconClick: () => {
35
- },
36
36
  sortIconTitle: i18n__default.default.t("Sort {{nextSortType}}", { nextSortType }),
37
- onSortIconClick: ({ direction }, e) => {
37
+ onSortIconClick: (_, e) => {
38
38
  const sort = filterColumn.getToggleSortingHandler();
39
39
  if (sort) {
40
40
  sort(e);
41
41
  }
42
42
  },
43
43
  sortDirection,
44
- fixed: true,
45
44
  colSpan: header.colSpan.toString(),
46
45
  rowSpan,
47
46
  className: styles__default.default.metaHeader,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.tsx"],"names":["header"],"mappings":"AA2DI;AAzDJ,SAAS,6BAA0D;AACnE,SAAS,yBAAyB;AAClC,OAAO,UAAU;AACjB,OAAO,YAAY;AACnB,SAAS,kBAAkB;AAC3B,SAAS,WAAW;AACpB,SAAS,MAAM,cAAc;AAE7B,SAAS,wBAAwB;AAAA,EAChC;AACD,GAA2C;AAC1C,QAAM,WAAW,OAAe,IAAI,CAAC;AACrC,QAAM,QAAQ,kBAAkB;AAChC,QAAM,eAAe,OAAO,gBAAgB;AAC5C,QAAM,aAAa,OAAO,SAAS,kBAAkB;AAErD,QAAM,UAAU,aACb,eACC,MACA,MACD,eACC,MACA;AAEJ,QAAM,eAAe,OAAO,WAAW;AAAA,IAAK,CAACA,YAC5CA,QAAO,OAAO,aAAa;AAAA,EAC5B,GAAG;AAEH,QAAM,gBAAgB,CAAC,cAAc,YAAY,IAC9C,YACC,aAAc,YAAY;AAC9B,QAAM,eACL,cAAc,oBAAoB,MAAM,QACrC,KAAK,EAAE,oBAAoB,IAC3B,cAAc,oBAAoB,MAAM,SACvC,KAAK,EAAE,qBAAqB,IAC5B,KAAK,EAAE,SAAS;AAErB,SACC;AAAA,IAAC;AAAA;AAAA,MAEA,OAAM;AAAA,MACN,mBAAmB,MAAM;AAAA,MAAC;AAAA,MAC1B,eAAe,KAAK,EAAE,yBAAyB,EAAE,aAAa,CAAC;AAAA,MAC/D,iBAAiB,CAAC,EAAE,UAAU,GAAG,MAAM;AACtC,cAAM,OAAO,aAAc,wBAAwB;AACnD,YAAI,MAAM;AACT,eAAK,CAAC;AAAA,QACP;AAAA,MACD;AAAA,MACA;AAAA,MACA,OAAK;AAAA,MACL,SAAS,OAAO,QAAQ,SAAS;AAAA,MACjC;AAAA,MACA,WAAW,OAAO;AAAA,MAEjB,WAAC,CAAC,gBACF;AAAA,QAAC;AAAA;AAAA,UAEA,QAAQ;AAAA;AAAA,QADH,GAAG,OAAO,EAAE;AAAA,MAElB;AAAA;AAAA,IApBI,GAAG,OAAO,EAAE,IAAI,SAAS,OAAO;AAAA,EAsBtC;AAEF;AAEO,MAAM,iBAAiB,KAAK,uBAAuB","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader, type DataTableSortDirection } from \"@dhis2/ui\";\nimport { useScorecardState } from \"../../../../StateProvider\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport styles from \"../TableHeader.module.css\";\nimport { FilterArea } from \"./FilterArea\";\nimport { uid } from \"@hisptz/dhis2-utils\";\nimport { memo, useRef } from \"react\";\n\nfunction MetaHeaderCellComponent({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst randomId = useRef<string>(uid());\n\tconst state = useScorecardState();\n\tconst hasOnePeriod = state?.hasOnePeriod ?? false;\n\tconst dataInRows = state?.options?.showDataInRows ?? false;\n\n\tconst rowSpan = dataInRows\n\t\t? hasOnePeriod\n\t\t\t? \"2\"\n\t\t\t: \"2\"\n\t\t: hasOnePeriod\n\t\t\t? \"2\"\n\t\t\t: \"3\";\n\n\tconst filterColumn = header.subHeaders.find((header) =>\n\t\theader.column.getCanFilter(),\n\t)?.column;\n\n\tconst sortDirection = !filterColumn?.getIsSorted()\n\t\t? \"default\"\n\t\t: (filterColumn!.getIsSorted() as DataTableSortDirection);\n\tconst nextSortType =\n\t\tfilterColumn?.getNextSortingOrder() === \"asc\"\n\t\t\t? i18n.t(\"in ascending order\")\n\t\t\t: filterColumn?.getNextSortingOrder() === \"desc\"\n\t\t\t\t? i18n.t(\"in descending order\")\n\t\t\t\t: i18n.t(\"disable\");\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tkey={`${header.id}-${randomId.current}`}\n\t\t\talign=\"right\"\n\t\t\tonFilterIconClick={() => {}}\n\t\t\tsortIconTitle={i18n.t(\"Sort {{nextSortType}}\", { nextSortType })}\n\t\t\tonSortIconClick={({ direction }, e) => {\n\t\t\t\tconst sort = filterColumn!.getToggleSortingHandler();\n\t\t\t\tif (sort) {\n\t\t\t\t\tsort(e);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tsortDirection={sortDirection}\n\t\t\tfixed\n\t\t\tcolSpan={header.colSpan.toString()}\n\t\t\trowSpan={rowSpan}\n\t\t\tclassName={styles.metaHeader}\n\t\t>\n\t\t\t{!!filterColumn && (\n\t\t\t\t<FilterArea\n\t\t\t\t\tkey={`${header.id}-filter-area`}\n\t\t\t\t\tcolumn={filterColumn}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</DataTableColumnHeader>\n\t);\n}\n\nexport const MetaHeaderCell = memo(MetaHeaderCellComponent);\n"]}
1
+ {"version":3,"sources":["../../../../../../../../src/components/Scorecard/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.tsx"],"names":["header"],"mappings":"AA4DI;AA1DJ,SAAS,6BAA0D;AACnE,SAAS,iCAAiC;AAC1C,OAAO,UAAU;AACjB,OAAO,YAAY;AACnB,SAAS,kBAAkB;AAC3B,SAAS,WAAW;AACpB,SAAS,MAAM,cAAc;AAE7B,SAAS,wBAAwB;AAAA,EAChC;AACD,GAA2C;AAC1C,QAAM,WAAW,OAAe,IAAI,CAAC;AAErC,QAAM,eAAe,0BAA0B,CAAC,cAAc,CAAC;AAC/D,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,UAAU,aACb,eACC,MACA,MACD,eACC,MACA;AAEJ,QAAM,eAAe,OAAO,WAAW;AAAA,IAAK,CAACA,YAC5CA,QAAO,OAAO,aAAa;AAAA,EAC5B,GAAG;AAEH,QAAM,gBAAgB,CAAC,cAAc,YAAY,IAC9C,YACC,aAAc,YAAY;AAC9B,QAAM,eACL,cAAc,oBAAoB,MAAM,QACrC,KAAK,EAAE,oBAAoB,IAC3B,cAAc,oBAAoB,MAAM,SACvC,KAAK,EAAE,qBAAqB,IAC5B,KAAK,EAAE,SAAS;AAErB,SACC;AAAA,IAAC;AAAA;AAAA,MAEA,OAAM;AAAA,MACN,eAAe,KAAK,EAAE,yBAAyB,EAAE,aAAa,CAAC;AAAA,MAC/D,iBAAiB,CAAC,GAAG,MAAM;AAC1B,cAAM,OAAO,aAAc,wBAAwB;AACnD,YAAI,MAAM;AACT,eAAK,CAAC;AAAA,QACP;AAAA,MACD;AAAA,MACA;AAAA,MACA,SAAS,OAAO,QAAQ,SAAS;AAAA,MACjC;AAAA,MACA,WAAW,OAAO;AAAA,MAEjB,WAAC,CAAC,gBACF;AAAA,QAAC;AAAA;AAAA,UAEA,QAAQ;AAAA;AAAA,QADH,GAAG,OAAO,EAAE;AAAA,MAElB;AAAA;AAAA,IAlBI,GAAG,OAAO,EAAE,IAAI,SAAS,OAAO;AAAA,EAoBtC;AAEF;AAEO,MAAM,iBAAiB,KAAK,uBAAuB","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader, type DataTableSortDirection } from \"@dhis2/ui\";\nimport { useScorecardStateSelector } from \"../../../../StateProvider\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport styles from \"../TableHeader.module.css\";\nimport { FilterArea } from \"./FilterArea\";\nimport { uid } from \"@hisptz/dhis2-utils\";\nimport { memo, useRef } from \"react\";\n\nfunction MetaHeaderCellComponent({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst randomId = useRef<string>(uid());\n\n\tconst hasOnePeriod = useScorecardStateSelector([\"hasOnePeriod\"]);\n\tconst dataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst rowSpan = dataInRows\n\t\t? hasOnePeriod\n\t\t\t? \"2\"\n\t\t\t: \"2\"\n\t\t: hasOnePeriod\n\t\t\t? \"2\"\n\t\t\t: \"3\";\n\n\tconst filterColumn = header.subHeaders.find((header) =>\n\t\theader.column.getCanFilter(),\n\t)?.column;\n\n\tconst sortDirection = !filterColumn?.getIsSorted()\n\t\t? \"default\"\n\t\t: (filterColumn!.getIsSorted() as DataTableSortDirection);\n\tconst nextSortType =\n\t\tfilterColumn?.getNextSortingOrder() === \"asc\"\n\t\t\t? i18n.t(\"in ascending order\")\n\t\t\t: filterColumn?.getNextSortingOrder() === \"desc\"\n\t\t\t\t? i18n.t(\"in descending order\")\n\t\t\t\t: i18n.t(\"disable\");\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tkey={`${header.id}-${randomId.current}`}\n\t\t\talign=\"right\"\n\t\t\tsortIconTitle={i18n.t(\"Sort {{nextSortType}}\", { nextSortType })}\n\t\t\tonSortIconClick={(_, e) => {\n\t\t\t\tconst sort = filterColumn!.getToggleSortingHandler();\n\t\t\t\tif (sort) {\n\t\t\t\t\tsort(e);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tsortDirection={sortDirection}\n\t\t\tcolSpan={header.colSpan.toString()}\n\t\t\trowSpan={rowSpan}\n\t\t\tclassName={styles.metaHeader}\n\t\t>\n\t\t\t{!!filterColumn && (\n\t\t\t\t<FilterArea\n\t\t\t\t\tkey={`${header.id}-filter-area`}\n\t\t\t\t\tcolumn={filterColumn}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</DataTableColumnHeader>\n\t);\n}\n\nexport const MetaHeaderCell = memo(MetaHeaderCellComponent);\n"]}
@@ -5,6 +5,7 @@ var react = require('react');
5
5
  var i18n = require('@dhis2/d2-i18n');
6
6
  var ConfigProvider = require('./ConfigProvider');
7
7
  var state = require('../utils/state');
8
+ var lodash = require('lodash');
8
9
 
9
10
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
11
 
@@ -23,6 +24,12 @@ function useScorecardState() {
23
24
  }
24
25
  return state;
25
26
  }
27
+ function useScorecardStateSelector(path) {
28
+ const state = useScorecardState();
29
+ return react.useMemo(() => {
30
+ return lodash.get(state, path);
31
+ }, [lodash.get(state, path)]);
32
+ }
26
33
  function useScorecardSetState() {
27
34
  const setState = react.useContext(ScorecardSetStateContext);
28
35
  if (!setState) {
@@ -54,5 +61,6 @@ const ScorecardStateProvider = ({ children, initialState }) => {
54
61
  exports.ScorecardStateProvider = ScorecardStateProvider;
55
62
  exports.useScorecardSetState = useScorecardSetState;
56
63
  exports.useScorecardState = useScorecardState;
64
+ exports.useScorecardStateSelector = useScorecardStateSelector;
57
65
  //# sourceMappingURL=out.js.map
58
66
  //# sourceMappingURL=StateProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Scorecard/components/StateProvider.tsx"],"names":[],"mappings":"AAwDG;AAxDH;AAAA,EACC;AAAA,EAGA;AAAA,EACA;AAAA,OACM;AAEP,OAAO,UAAU;AACjB,SAAS,0BAA0B;AACnC,SAAS,iCAAiC;AAG1C,MAAM,wBAAwB,cAAqC,IAAI;AACvE,MAAM,2BAA2B,cAAwC,IAAI;AAEtE,SAAS,oBAAoB;AACnC,QAAM,QAAQ,WAAW,qBAAqB;AAC9C,MAAI,CAAC,OAAO;AACX,UAAM;AAAA,MACL,KAAK;AAAA,QACJ;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAEO,SAAS,uBAAuB;AACtC,QAAM,WAAW,WAAW,wBAAwB;AACpD,MAAI,CAAC,UAAU;AACd,UAAM;AAAA,MACL,KAAK;AAAA,QACJ;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAEO,MAAM,yBAGR,CAAC,EAAE,UAAU,aAAa,MAAM;AACpC,QAAM,SAAS,mBAAmB;AAClC,QAAM,CAAC,OAAO,QAAQ,IAAI;AAAA,IACzB,gBAAgB,0BAA0B,MAAM;AAAA,EACjD;AAEA,SACC;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACA,OAAO;AAAA,QACN,GAAG;AAAA,QACH,cAAc,MAAM,gBAAgB,SAAS,WAAW;AAAA,MACzD;AAAA,MAEA,8BAAC,yBAAyB,UAAzB,EAAkC,OAAO,UACxC,UACF;AAAA;AAAA,EACD;AAEF","sourcesContent":["import React, {\n\tcreateContext,\n\ttype Dispatch,\n\ttype SetStateAction,\n\tuseContext,\n\tuseState,\n} from \"react\";\nimport type { ScorecardState } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardConfig } from \"./ConfigProvider\";\nimport { getInitialStateFromConfig } from \"../utils/state\";\n\nexport type ScorecardSetState = Dispatch<SetStateAction<ScorecardState>>;\nconst ScorecardStateContext = createContext<ScorecardState | null>(null);\nconst ScorecardSetStateContext = createContext<ScorecardSetState | null>(null);\n\nexport function useScorecardState() {\n\tconst state = useContext(ScorecardStateContext);\n\tif (!state) {\n\t\tthrow Error(\n\t\t\ti18n.t(\n\t\t\t\t\"useScorecardState should be used inside a Scorecard Context\",\n\t\t\t),\n\t\t);\n\t}\n\treturn state;\n}\n\nexport function useScorecardSetState() {\n\tconst setState = useContext(ScorecardSetStateContext);\n\tif (!setState) {\n\t\tthrow Error(\n\t\t\ti18n.t(\n\t\t\t\t\"useScorecardSetState should be used inside a Scorecard Context\",\n\t\t\t),\n\t\t);\n\t}\n\treturn setState;\n}\n\nexport const ScorecardStateProvider: React.FC<{\n\tchildren: React.ReactNode;\n\tinitialState?: ScorecardState;\n}> = ({ children, initialState }) => {\n\tconst config = useScorecardConfig();\n\tconst [state, setState] = useState<ScorecardState>(\n\t\tinitialState ?? getInitialStateFromConfig(config),\n\t);\n\n\treturn (\n\t\t<ScorecardStateContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...state,\n\t\t\t\thasOnePeriod: state.periodSelection.periods?.length === 1,\n\t\t\t}}\n\t\t>\n\t\t\t<ScorecardSetStateContext.Provider value={setState}>\n\t\t\t\t{children}\n\t\t\t</ScorecardSetStateContext.Provider>\n\t\t</ScorecardStateContext.Provider>\n\t);\n};\n"]}
1
+ {"version":3,"sources":["../../../../src/components/Scorecard/components/StateProvider.tsx"],"names":[],"mappings":"AAiEG;AAjEH;AAAA,EACC;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,OAAO,UAAU;AACjB,SAAS,0BAA0B;AACnC,SAAS,iCAAiC;AAC1C,SAAS,WAAW;AAGpB,MAAM,wBAAwB,cAAqC,IAAI;AACvE,MAAM,2BAA2B,cAAwC,IAAI;AAEtE,SAAS,oBAAoB;AACnC,QAAM,QAAQ,WAAW,qBAAqB;AAC9C,MAAI,CAAC,OAAO;AACX,UAAM;AAAA,MACL,KAAK;AAAA,QACJ;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAEO,SAAS,0BAAiC,MAAyB;AACzE,QAAM,QAAQ,kBAAkB;AAChC,SAAO,QAAQ,MAAM;AACpB,WAAO,IAAI,OAAO,IAAI;AAAA,EACvB,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;AACtB;AAEO,SAAS,uBAAuB;AACtC,QAAM,WAAW,WAAW,wBAAwB;AACpD,MAAI,CAAC,UAAU;AACd,UAAM;AAAA,MACL,KAAK;AAAA,QACJ;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAEO,MAAM,yBAGR,CAAC,EAAE,UAAU,aAAa,MAAM;AACpC,QAAM,SAAS,mBAAmB;AAClC,QAAM,CAAC,OAAO,QAAQ,IAAI;AAAA,IACzB,gBAAgB,0BAA0B,MAAM;AAAA,EACjD;AAEA,SACC;AAAA,IAAC,sBAAsB;AAAA,IAAtB;AAAA,MACA,OAAO;AAAA,QACN,GAAG;AAAA,QACH,cAAc,MAAM,gBAAgB,SAAS,WAAW;AAAA,MACzD;AAAA,MAEA,8BAAC,yBAAyB,UAAzB,EAAkC,OAAO,UACxC,UACF;AAAA;AAAA,EACD;AAEF","sourcesContent":["import React, {\n\tcreateContext,\n\ttype Dispatch,\n\ttype SetStateAction,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport type { ScorecardState } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardConfig } from \"./ConfigProvider\";\nimport { getInitialStateFromConfig } from \"../utils/state\";\nimport { get } from \"lodash\";\n\nexport type ScorecardSetState = Dispatch<SetStateAction<ScorecardState>>;\nconst ScorecardStateContext = createContext<ScorecardState | null>(null);\nconst ScorecardSetStateContext = createContext<ScorecardSetState | null>(null);\n\nexport function useScorecardState() {\n\tconst state = useContext(ScorecardStateContext);\n\tif (!state) {\n\t\tthrow Error(\n\t\t\ti18n.t(\n\t\t\t\t\"useScorecardState should be used inside a Scorecard Context\",\n\t\t\t),\n\t\t);\n\t}\n\treturn state;\n}\n\nexport function useScorecardStateSelector<Value>(path: string | string[]) {\n\tconst state = useScorecardState();\n\treturn useMemo(() => {\n\t\treturn get(state, path) as Value;\n\t}, [get(state, path)]);\n}\n\nexport function useScorecardSetState() {\n\tconst setState = useContext(ScorecardSetStateContext);\n\tif (!setState) {\n\t\tthrow Error(\n\t\t\ti18n.t(\n\t\t\t\t\"useScorecardSetState should be used inside a Scorecard Context\",\n\t\t\t),\n\t\t);\n\t}\n\treturn setState;\n}\n\nexport const ScorecardStateProvider: React.FC<{\n\tchildren: React.ReactNode;\n\tinitialState?: ScorecardState;\n}> = ({ children, initialState }) => {\n\tconst config = useScorecardConfig();\n\tconst [state, setState] = useState<ScorecardState>(\n\t\tinitialState ?? getInitialStateFromConfig(config),\n\t);\n\n\treturn (\n\t\t<ScorecardStateContext.Provider\n\t\t\tvalue={{\n\t\t\t\t...state,\n\t\t\t\thasOnePeriod: state.periodSelection.periods?.length === 1,\n\t\t\t}}\n\t\t>\n\t\t\t<ScorecardSetStateContext.Provider value={setState}>\n\t\t\t\t{children}\n\t\t\t</ScorecardSetStateContext.Provider>\n\t\t</ScorecardStateContext.Provider>\n\t);\n};\n"]}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var ConfigProvider = require('../components/ConfigProvider');
4
- var MetaProvider = require('../components/MetaProvider');
3
+ var components = require('../components');
5
4
  var react = require('react');
6
5
  var legends = require('../utils/legends');
7
6
 
@@ -10,8 +9,8 @@ function useCellData({
10
9
  orgUnit,
11
10
  period
12
11
  }) {
13
- const config = ConfigProvider.useScorecardConfig();
14
- const meta = MetaProvider.useScorecardMeta();
12
+ const config = components.useScorecardConfig();
13
+ const meta = components.useScorecardMeta();
15
14
  const currentValue = dataSource?.data.current;
16
15
  const legendDefinition = react.useMemo(() => {
17
16
  if (!dataSource)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Scorecard/hooks/cellData.ts"],"names":[],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AACjC,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAGnB,SAAS,YAAY;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACD,GAIG;AACF,QAAM,SAAS,mBAAmB;AAClC,QAAM,OAAO,iBAAiB;AAE9B,QAAM,eAAe,YAAY,KAAK;AAEtC,QAAM,mBAAmB,QAAQ,MAAM;AACtC,QAAI,CAAC;AAAY;AACjB,WAAO,UAAU;AAAA,MAChB;AAAA,MACA,OAAO;AAAA,MACP,eAAe,KAAM;AAAA,MACrB;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACX,CAAC;AAAA,EACF,GAAG,CAAC,YAAY,cAAc,MAAM,SAAS,MAAM,CAAC;AAEpD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import type { ScorecardTableCellData } from \"../schemas/config\";\nimport { useScorecardConfig } from \"../components/ConfigProvider\";\nimport { useScorecardMeta } from \"../components/MetaProvider\";\nimport { useMemo } from \"react\";\nimport { getLegend } from \"../utils/legends\";\nimport type { ItemMeta } from \"./metadata\";\n\nexport function useCellData({\n\tdataSource,\n\torgUnit,\n\tperiod,\n}: {\n\tdataSource?: ScorecardTableCellData[\"dataSources\"][number];\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n}) {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\n\tconst currentValue = dataSource?.data.current;\n\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) return;\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tvalue: currentValue,\n\t\t\torgUnitLevels: meta!.orgUnitLevels,\n\t\t\tconfig: config!,\n\t\t\torgUnit,\n\t\t\tperiodId: period,\n\t\t});\n\t}, [dataSource, currentValue, meta, orgUnit, period]);\n\n\treturn {\n\t\tcurrentValue,\n\t\tlegendDefinition,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/Scorecard/hooks/cellData.ts"],"names":[],"mappings":"AACA,SAAS,oBAAoB,wBAAwB;AACrD,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAGnB,SAAS,YAAY;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACD,GAIG;AACF,QAAM,SAAS,mBAAmB;AAClC,QAAM,OAAO,iBAAiB;AAE9B,QAAM,eAAe,YAAY,KAAK;AAEtC,QAAM,mBAAmB,QAAQ,MAAM;AACtC,QAAI,CAAC;AAAY;AACjB,WAAO,UAAU;AAAA,MAChB;AAAA,MACA,OAAO;AAAA,MACP,eAAe,KAAM;AAAA,MACrB;AAAA,MACA;AAAA,MACA,UAAU;AAAA,IACX,CAAC;AAAA,EACF,GAAG,CAAC,YAAY,cAAc,MAAM,SAAS,MAAM,CAAC;AAEpD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD","sourcesContent":["import type { ScorecardCellData } from \"../schemas/config\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport { getLegend } from \"../utils/legends\";\nimport type { ItemMeta } from \"./metadata\";\n\nexport function useCellData({\n\tdataSource,\n\torgUnit,\n\tperiod,\n}: {\n\tdataSource?: ScorecardCellData;\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n}) {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\n\tconst currentValue = dataSource?.data.current;\n\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) return;\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tvalue: currentValue,\n\t\t\torgUnitLevels: meta!.orgUnitLevels,\n\t\t\tconfig: config!,\n\t\t\torgUnit,\n\t\t\tperiodId: period,\n\t\t});\n\t}, [dataSource, currentValue, meta, orgUnit, period]);\n\n\treturn {\n\t\tcurrentValue,\n\t\tlegendDefinition,\n\t};\n}\n"]}
@@ -12,99 +12,118 @@ var metadata = require('./metadata');
12
12
  var MetaFooterCell = require('../components/ScorecardTable/components/MetaFooterCell');
13
13
  var orgUnits = require('../utils/orgUnits');
14
14
  var orgUnit = require('./orgUnit');
15
+ var DataProvider = require('../components/DataProvider');
15
16
 
16
17
  const columnHelper = reactTable.createColumnHelper();
17
18
  function useMetaColumns() {
18
- const state = components.useScorecardState();
19
+ const showDataInRows = components.useScorecardStateSelector([
20
+ "options",
21
+ "showDataInRows"
22
+ ]);
23
+ const disableExpanding = components.useScorecardStateSelector([
24
+ "options",
25
+ "disableExpanding"
26
+ ]);
19
27
  const lowestLevel = orgUnit.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 = orgUnits.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.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.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
28
+ return react.useMemo(() => {
29
+ const metaColumns = [
30
+ columnHelper.accessor(
31
+ (rowData) => {
32
+ if (disableExpanding) {
33
+ return false;
34
+ }
35
+ if (showDataInRows) {
36
+ return false;
37
+ }
38
+ if (!lowestLevel) {
39
+ return false;
40
+ }
41
+ const orgUnit = rowData.orgUnit;
42
+ if (!orgUnit) {
43
+ return false;
44
+ }
45
+ const ouLevel = orgUnits.getOrgUnitLevel(orgUnit);
46
+ return ouLevel !== lowestLevel.level;
78
47
  },
79
- enableColumnFilter: true,
80
- cell: LabelCell.LabelCell,
81
- footer: MetaFooterCell.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
48
+ {
49
+ id: "expand",
50
+ header: () => null,
51
+ meta: {
52
+ isMeta: true,
53
+ fixed: true,
54
+ label: ""
55
+ },
56
+ enableColumnFilter: false,
57
+ cell: ExpandCell.ExpandCell,
58
+ footer: () => null
59
+ }
60
+ ),
61
+ columnHelper.accessor(
62
+ (_, index) => {
63
+ return index + 1;
93
64
  },
94
- cell: LabelCell.LabelCell,
95
- footer: MetaFooterCell.MetaFooterCell
96
- })
97
- );
98
- }
99
- return metaColumns;
65
+ {
66
+ id: "count",
67
+ header: () => null,
68
+ meta: {
69
+ isMeta: true,
70
+ fixed: true,
71
+ label: ""
72
+ },
73
+ enableColumnFilter: false,
74
+ cell: NumberCell.NumberCell,
75
+ footer: () => null
76
+ }
77
+ )
78
+ ];
79
+ if (showDataInRows) {
80
+ metaColumns.push(
81
+ columnHelper.accessor("label", {
82
+ header: () => null,
83
+ id: "dataItems",
84
+ meta: {
85
+ filterable: true
86
+ },
87
+ enableColumnFilter: true,
88
+ cell: LabelCell.LabelCell,
89
+ footer: MetaFooterCell.MetaFooterCell
90
+ })
91
+ );
92
+ } else {
93
+ metaColumns.push(
94
+ columnHelper.accessor("label", {
95
+ header: () => null,
96
+ id: "orgUnits",
97
+ enableColumnFilter: true,
98
+ meta: {
99
+ isMeta: true,
100
+ fixed: true
101
+ },
102
+ cell: LabelCell.LabelCell,
103
+ footer: MetaFooterCell.MetaFooterCell
104
+ })
105
+ );
106
+ }
107
+ return metaColumns;
108
+ }, [showDataInRows, disableExpanding]);
100
109
  }
101
110
  function useTableColumns() {
102
111
  const config = components.useScorecardConfig();
112
+ const { data: dataEngine } = DataProvider.useScorecardData();
103
113
  const meta = components.useScorecardMeta();
104
- const state = components.useScorecardState();
105
114
  const metaColumns = useMetaColumns();
106
115
  const calendar = metadata.useCalendar();
107
- if (!config || !meta || !state) {
116
+ const showDataInRows = components.useScorecardStateSelector([
117
+ "options",
118
+ "showDataInRows"
119
+ ]);
120
+ const periodSelection = components.useScorecardStateSelector(
121
+ "periodSelection"
122
+ );
123
+ const orgUnitSelection = components.useScorecardStateSelector(
124
+ "orgUnitSelection"
125
+ );
126
+ if (!config || !meta) {
108
127
  return [];
109
128
  }
110
129
  return react.useMemo(() => {
@@ -116,11 +135,12 @@ function useTableColumns() {
116
135
  footer: () => null
117
136
  })
118
137
  ];
119
- if (state.options.showDataInRows) {
138
+ if (showDataInRows) {
120
139
  columns$1.push(
121
140
  ...columns.getOrgUnitColumnHeaders({
122
141
  meta,
123
- calendar
142
+ calendar,
143
+ dataEngine
124
144
  })
125
145
  );
126
146
  } else {
@@ -128,7 +148,8 @@ function useTableColumns() {
128
148
  ...columns.getDataColumnHeaders({
129
149
  meta,
130
150
  config,
131
- calendar
151
+ calendar,
152
+ dataEngine
132
153
  })
133
154
  );
134
155
  }
@@ -139,11 +160,7 @@ function useTableColumns() {
139
160
  })
140
161
  );
141
162
  return columns$1;
142
- }, [
143
- state.options.showDataInRows,
144
- state.periodSelection,
145
- state.orgUnitSelection
146
- ]);
163
+ }, [showDataInRows, periodSelection, orgUnitSelection]);
147
164
  }
148
165
 
149
166
  exports.useMetaColumns = useMetaColumns;
@@ -1 +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 {\n\tuseScorecardConfig,\n\tuseScorecardMeta,\n\tuseScorecardState,\n} from \"../components\";\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}, [\n\t\tstate.options.showDataInRows,\n\t\tstate.periodSelection,\n\t\tstate.orgUnitSelection,\n\t]);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/Scorecard/hooks/columns.ts"],"names":[],"mappings":"AAAA,SAAyB,0BAA0B;AACnD;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,eAAe;AAMxB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,6BAA6B;AACtC,SAAS,wBAAwB;AAEjC,MAAM,eAAe,mBAAuC;AAErD,SAAS,iBAAiB;AAChC,QAAM,iBAAiB,0BAAmC;AAAA,IACzD;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,mBAAmB,0BAAmC;AAAA,IAC3D;AAAA,IACA;AAAA,EACD,CAAC;AAED,QAAM,cAAc,sBAAsB;AAE1C,SAAO,QAAQ,MAAM;AACpB,UAAM,cAAoD;AAAA,MACzD,aAAa;AAAA,QACZ,CAAC,YAAY;AACZ,cAAI,kBAAkB;AACrB,mBAAO;AAAA,UACR;AAEA,cAAI,gBAAgB;AACnB,mBAAO;AAAA,UACR;AAEA,cAAI,CAAC,aAAa;AACjB,mBAAO;AAAA,UACR;AAEA,gBAAM,UAAU,QAAQ;AACxB,cAAI,CAAC,SAAS;AACb,mBAAO;AAAA,UACR;AACA,gBAAM,UAAU,gBAAgB,OAAO;AAEvC,iBAAO,YAAY,YAAY;AAAA,QAChC;AAAA,QACA;AAAA,UACC,IAAI;AAAA,UACJ,QAAQ,MAAM;AAAA,UACd,MAAM;AAAA,YACL,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA,oBAAoB;AAAA,UACpB,MAAM;AAAA,UACN,QAAQ,MAAM;AAAA,QACf;AAAA,MACD;AAAA,MACA,aAAa;AAAA,QACZ,CAAC,GAAG,UAAU;AACb,iBAAO,QAAQ;AAAA,QAChB;AAAA,QACA;AAAA,UACC,IAAI;AAAA,UACJ,QAAQ,MAAM;AAAA,UACd,MAAM;AAAA,YACL,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA,oBAAoB;AAAA,UACpB,MAAM;AAAA,UACN,QAAQ,MAAM;AAAA,QACf;AAAA,MACD;AAAA,IACD;AAEA,QAAI,gBAAgB;AACnB,kBAAY;AAAA,QACX,aAAa,SAAS,SAAS;AAAA,UAC9B,QAAQ,MAAM;AAAA,UACd,IAAI;AAAA,UACJ,MAAM;AAAA,YACL,YAAY;AAAA,UACb;AAAA,UACA,oBAAoB;AAAA,UACpB,MAAM;AAAA,UACN,QAAQ;AAAA,QACT,CAAC;AAAA,MACF;AAAA,IACD,OAAO;AACN,kBAAY;AAAA,QACX,aAAa,SAAS,SAAS;AAAA,UAC9B,QAAQ,MAAM;AAAA,UACd,IAAI;AAAA,UACJ,oBAAoB;AAAA,UACpB,MAAM;AAAA,YACL,QAAQ;AAAA,YACR,OAAO;AAAA,UACR;AAAA,UACA,MAAM;AAAA,UACN,QAAQ;AAAA,QACT,CAAC;AAAA,MACF;AAAA,IACD;AAEA,WAAO;AAAA,EACR,GAAG,CAAC,gBAAgB,gBAAgB,CAAC;AACtC;AAEO,SAAS,kBAGZ;AACH,QAAM,SAAS,mBAAmB;AAClC,QAAM,EAAE,MAAM,WAAW,IAAI,iBAAiB;AAC9C,QAAM,OAAO,iBAAiB;AAC9B,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAC7B,QAAM,iBAAiB,0BAAmC;AAAA,IACzD;AAAA,IACA;AAAA,EACD,CAAC;AACD,QAAM,kBACL;AAAA,IACC;AAAA,EACD;AAED,QAAM,mBACL;AAAA,IACC;AAAA,EACD;AAED,MAAI,CAAC,UAAU,CAAC,MAAM;AACrB,WAAO,CAAC;AAAA,EACT;AACA,SAAO,QAAQ,MAAM;AACpB,UAAM,UAAgD;AAAA,MACrD,aAAa,MAAM;AAAA,QAClB,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,QAAQ,MAAM;AAAA,MACf,CAAC;AAAA,IACF;AAEA,QAAI,gBAAgB;AACnB,cAAQ;AAAA,QACP,GAAG,wBAAwB;AAAA,UAC1B;AAAA,UACA;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD,OAAO;AACN,cAAQ;AAAA,QACP,GAAG,qBAAqB;AAAA,UACvB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAEA,YAAQ;AAAA,MACP,iBAAiB;AAAA,QAChB;AAAA,QACA;AAAA,MACD,CAAC;AAAA,IACF;AAEA,WAAO;AAAA,EACR,GAAG,CAAC,gBAAgB,iBAAiB,gBAAgB,CAAC;AACvD","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport {\n\tuseScorecardConfig,\n\tuseScorecardMeta,\n\tuseScorecardStateSelector,\n} from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardState,\n\ttype ScorecardTableCellConfig,\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\";\nimport { useScorecardData } from \"../components/DataProvider\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"disableExpanding\",\n\t]);\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\treturn useMemo(() => {\n\t\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(rowData) => {\n\t\t\t\t\tif (disableExpanding) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDataInRows) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\t\tif (!orgUnit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"expand\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: ExpandCell,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(_, index) => {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"count\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: NumberCell,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\"label\", {\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tid: \"dataItems\",\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tfilterable: true,\n\t\t\t\t\t},\n\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\"label\", {\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tid: \"orgUnits\",\n\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t},\n\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn metaColumns;\n\t}, [showDataInRows, disableExpanding]);\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellConfig\n>[] {\n\tconst config = useScorecardConfig();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\tconst showDataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst periodSelection =\n\t\tuseScorecardStateSelector<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\n\n\tconst orgUnitSelection =\n\t\tuseScorecardStateSelector<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\n\n\tif (!config || !meta) {\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 (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\tdataEngine,\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\tdataEngine,\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}, [showDataInRows, periodSelection, orgUnitSelection]);\n}\n"]}