@hisptz/dhis2-analytics 2.0.32 → 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 +3 -3
  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
@@ -2,16 +2,15 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { useTableState } from '../../../TableStateProvider';
3
3
  import { DataTableHead, DataTableRow } from '@dhis2/ui';
4
4
  import { flexRender } from '@tanstack/react-table';
5
+ import { memo, Fragment } from 'react';
5
6
 
6
- function TableHeader() {
7
+ const TableHeader = memo(function TableHeaderComponent() {
7
8
  const table = useTableState();
8
- return /* @__PURE__ */ jsx(DataTableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(DataTableRow, { children: headerGroup.headers.map(
9
- (header) => flexRender(
10
- header.column.columnDef.header,
11
- header.getContext()
12
- )
13
- ) }, headerGroup.id)) });
14
- }
9
+ return /* @__PURE__ */ jsx(DataTableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(DataTableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(Fragment, { children: flexRender(
10
+ header.column.columnDef.header,
11
+ header.getContext()
12
+ ) }, `${header.id}-fragment`)) }, headerGroup.id)) });
13
+ });
15
14
 
16
15
  export { TableHeader };
17
16
  //# 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"]}
@@ -2,23 +2,21 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { DataTableColumnHeader } from '@dhis2/ui';
3
3
  import i18n from '@dhis2/d2-i18n';
4
4
  import styles from '../TableHeader.module.css';
5
- import { useScorecardState } from '../../../../StateProvider';
5
+ import { useScorecardStateSelector } from '../../../../StateProvider';
6
6
 
7
7
  function AverageHeaderCell({
8
- header,
9
- column
8
+ header
10
9
  }) {
11
- const state = useScorecardState();
12
- const hasOnePeriod = state?.hasOnePeriod;
13
- const dataInRows = state?.options?.showDataInRows;
10
+ const dataInRows = useScorecardStateSelector([
11
+ "options",
12
+ "showDataInRows"
13
+ ]);
14
+ const hasOnePeriod = useScorecardStateSelector(["hasOnePeriod"]);
14
15
  const rowSpan = dataInRows ? hasOnePeriod ? "2" : "2" : hasOnePeriod ? "2" : "3";
15
16
  return /* @__PURE__ */ jsx(
16
17
  DataTableColumnHeader,
17
18
  {
18
19
  align: "right",
19
- onFilterIconClick: () => {
20
- },
21
- fixed: true,
22
20
  colSpan: header.colSpan.toString(),
23
21
  rowSpan,
24
22
  className: styles.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"]}
@@ -4,14 +4,22 @@ import { DataTableColumnHeader } from '@dhis2/ui';
4
4
  import i18n from '@dhis2/d2-i18n';
5
5
  import { DraggableCell } from '../../DraggableCell';
6
6
  import DroppableCell from '../../DroppableCell';
7
- import { useScorecardState } from '../../../../StateProvider';
7
+ import { useScorecardStateSelector } from '../../../../StateProvider';
8
8
 
9
+ function EmptyDataHeaderCell({
10
+ header
11
+ }) {
12
+ const colSpan = header.colSpan.toString();
13
+ return /* @__PURE__ */ jsx(DataTableColumnHeader, { colSpan });
14
+ }
9
15
  function DataHeaderCellComponent({
10
16
  column,
11
17
  header
12
18
  }) {
13
- const state = useScorecardState();
14
- const dataInRows = state?.options?.showDataInRows ?? false;
19
+ const dataInRows = useScorecardStateSelector([
20
+ "options",
21
+ "showDataInRows"
22
+ ]);
15
23
  const label = header.column.columnDef.meta.label ?? column.columnDef.meta.label;
16
24
  const bold = header.column.columnDef.meta.bold ?? column.columnDef.meta.bold;
17
25
  const colSpan = header.colSpan.toString();
@@ -20,7 +28,6 @@ function DataHeaderCellComponent({
20
28
  return /* @__PURE__ */ jsx(
21
29
  DataTableColumnHeader,
22
30
  {
23
- fixed: true,
24
31
  sortIconTitle: i18n.t("Sort {{nextSortType}}", { nextSortType }),
25
32
  onSortIconClick: header.column?.getCanSort() || column.getCanSort() ? (_, e) => {
26
33
  const sort = column.getToggleSortingHandler();
@@ -44,11 +51,12 @@ function DataHeaderCellComponent({
44
51
  )
45
52
  }
46
53
  )
47
- }
54
+ },
55
+ `${label}`
48
56
  );
49
57
  }
50
58
  const DataHeaderCell = DataHeaderCellComponent;
51
59
 
52
- export { DataHeaderCell, DataHeaderCellComponent };
60
+ export { DataHeaderCell, DataHeaderCellComponent, EmptyDataHeaderCell };
53
61
  //# sourceMappingURL=out.js.map
54
62
  //# 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"]}
@@ -1,14 +1,16 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import i18n from '@dhis2/d2-i18n';
3
- import { useScorecardState } from '../../../../StateProvider';
3
+ import { useScorecardStateSelector } from '../../../../StateProvider';
4
4
  import { InputField } from '@dhis2/ui';
5
5
  import { useState, useEffect } from 'react';
6
6
 
7
7
  function FilterArea({ column }) {
8
8
  const defaultValue = column.getFilterValue();
9
9
  const [text, setText] = useState(defaultValue);
10
- const state = useScorecardState();
11
- const dataInRows = state?.options?.showDataInRows ?? false;
10
+ const dataInRows = useScorecardStateSelector([
11
+ "options",
12
+ "showDataInRows"
13
+ ]);
12
14
  const searchPlaceholder = dataInRows ? i18n.t("Search data items") : i18n.t("Search organisation units");
13
15
  useEffect(() => {
14
16
  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"]}
@@ -3,13 +3,15 @@ import { ScorecardDraggableItems } from '../../../../../schemas/config';
3
3
  import { DataTableCell } from '@dhis2/ui';
4
4
  import DroppableCell from '../../DroppableCell';
5
5
  import { DraggableCell } from '../../DraggableCell';
6
- import { useScorecardState } from '../../../../StateProvider';
6
+ import { useScorecardStateSelector } from '../../../../StateProvider';
7
7
  import { memo } from 'react';
8
8
 
9
9
  function LabelCellComponent(props) {
10
10
  const data = props.getValue().toString();
11
- const state = useScorecardState();
12
- const dataInRows = state?.options?.showDataInRows ?? false;
11
+ const dataInRows = useScorecardStateSelector([
12
+ "options",
13
+ "showDataInRows"
14
+ ]);
13
15
  return /* @__PURE__ */ jsx(
14
16
  DataTableCell,
15
17
  {
@@ -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"]}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { DataTableColumnHeader } from '@dhis2/ui';
3
- import { useScorecardState } from '../../../../StateProvider';
3
+ import { useScorecardStateSelector } from '../../../../StateProvider';
4
4
  import i18n from '@dhis2/d2-i18n';
5
5
  import styles from '../TableHeader.module.css';
6
6
  import { FilterArea } from './FilterArea';
@@ -11,9 +11,11 @@ function MetaHeaderCellComponent({
11
11
  header
12
12
  }) {
13
13
  const randomId = useRef(uid());
14
- const state = useScorecardState();
15
- const hasOnePeriod = state?.hasOnePeriod ?? false;
16
- const dataInRows = state?.options?.showDataInRows ?? false;
14
+ const hasOnePeriod = useScorecardStateSelector(["hasOnePeriod"]);
15
+ const dataInRows = useScorecardStateSelector([
16
+ "options",
17
+ "showDataInRows"
18
+ ]);
17
19
  const rowSpan = dataInRows ? hasOnePeriod ? "2" : "2" : hasOnePeriod ? "2" : "3";
18
20
  const filterColumn = header.subHeaders.find(
19
21
  (header2) => header2.column.getCanFilter()
@@ -24,17 +26,14 @@ function MetaHeaderCellComponent({
24
26
  DataTableColumnHeader,
25
27
  {
26
28
  align: "right",
27
- onFilterIconClick: () => {
28
- },
29
29
  sortIconTitle: i18n.t("Sort {{nextSortType}}", { nextSortType }),
30
- onSortIconClick: ({ direction }, e) => {
30
+ onSortIconClick: (_, e) => {
31
31
  const sort = filterColumn.getToggleSortingHandler();
32
32
  if (sort) {
33
33
  sort(e);
34
34
  }
35
35
  },
36
36
  sortDirection,
37
- fixed: true,
38
37
  colSpan: header.colSpan.toString(),
39
38
  rowSpan,
40
39
  className: styles.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"]}
@@ -1,8 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useContext, useState } from 'react';
2
+ import { createContext, useContext, useMemo, useState } from 'react';
3
3
  import i18n from '@dhis2/d2-i18n';
4
4
  import { useScorecardConfig } from './ConfigProvider';
5
5
  import { getInitialStateFromConfig } from '../utils/state';
6
+ import { get } from 'lodash';
6
7
 
7
8
  const ScorecardStateContext = createContext(null);
8
9
  const ScorecardSetStateContext = createContext(null);
@@ -17,6 +18,12 @@ function useScorecardState() {
17
18
  }
18
19
  return state;
19
20
  }
21
+ function useScorecardStateSelector(path) {
22
+ const state = useScorecardState();
23
+ return useMemo(() => {
24
+ return get(state, path);
25
+ }, [get(state, path)]);
26
+ }
20
27
  function useScorecardSetState() {
21
28
  const setState = useContext(ScorecardSetStateContext);
22
29
  if (!setState) {
@@ -45,6 +52,6 @@ const ScorecardStateProvider = ({ children, initialState }) => {
45
52
  );
46
53
  };
47
54
 
48
- export { ScorecardStateProvider, useScorecardSetState, useScorecardState };
55
+ export { ScorecardStateProvider, useScorecardSetState, useScorecardState, useScorecardStateSelector };
49
56
  //# sourceMappingURL=out.js.map
50
57
  //# 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,5 +1,4 @@
1
- import { useScorecardConfig } from '../components/ConfigProvider';
2
- import { useScorecardMeta } from '../components/MetaProvider';
1
+ import { useScorecardConfig, useScorecardMeta } from '../components';
3
2
  import { useMemo } from 'react';
4
3
  import { getLegend } from '../utils/legends';
5
4
 
@@ -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":"AAIA,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 {\n\tScorecardCellData,\n\tScorecardTableCellConfig,\n} from \"../schemas/config\";\nimport { useScorecardConfig } from \"../components\";\nimport { 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"]}
@@ -1,5 +1,5 @@
1
1
  import { createColumnHelper } from '@tanstack/react-table';
2
- import { useScorecardState, useScorecardConfig, useScorecardMeta } from '../components';
2
+ import { useScorecardStateSelector, useScorecardConfig, useScorecardMeta } from '../components';
3
3
  import { useMemo } from 'react';
4
4
  import { getOrgUnitColumnHeaders, getDataColumnHeaders, getAverageColumn } from '../utils/columns';
5
5
  import { LabelCell } from '../components/ScorecardTable/components/TableHeader/components/LabelCell';
@@ -10,99 +10,118 @@ import { useCalendar } from './metadata';
10
10
  import { MetaFooterCell } from '../components/ScorecardTable/components/MetaFooterCell';
11
11
  import { getOrgUnitLevel } from '../utils/orgUnits';
12
12
  import { useLowestOrgUnitLevel } from './orgUnit';
13
+ import { useScorecardData } from '../components/DataProvider';
13
14
 
14
15
  const columnHelper = createColumnHelper();
15
16
  function useMetaColumns() {
16
- const state = useScorecardState();
17
+ const showDataInRows = useScorecardStateSelector([
18
+ "options",
19
+ "showDataInRows"
20
+ ]);
21
+ const disableExpanding = useScorecardStateSelector([
22
+ "options",
23
+ "disableExpanding"
24
+ ]);
17
25
  const lowestLevel = useLowestOrgUnitLevel();
18
- const metaColumns = [
19
- columnHelper.accessor(
20
- (rowData) => {
21
- if (state?.options?.disableExpanding) {
22
- return false;
23
- }
24
- const dataInRows = state?.options?.showDataInRows;
25
- if (dataInRows) {
26
- return false;
27
- }
28
- if (!lowestLevel) {
29
- return false;
30
- }
31
- const orgUnit = rowData.orgUnit;
32
- if (!orgUnit) {
33
- return false;
34
- }
35
- const ouLevel = getOrgUnitLevel(orgUnit);
36
- return ouLevel !== lowestLevel.level;
37
- },
38
- {
39
- id: "expand",
40
- header: () => null,
41
- meta: {
42
- isMeta: true,
43
- fixed: true,
44
- label: ""
45
- },
46
- enableColumnFilter: false,
47
- cell: ExpandCell,
48
- footer: () => null
49
- }
50
- ),
51
- columnHelper.accessor(
52
- (_, index) => {
53
- return index + 1;
54
- },
55
- {
56
- id: "count",
57
- header: () => null,
58
- meta: {
59
- isMeta: true,
60
- fixed: true,
61
- label: ""
62
- },
63
- enableColumnFilter: false,
64
- cell: NumberCell,
65
- footer: () => null
66
- }
67
- )
68
- ];
69
- if (state?.options?.showDataInRows) {
70
- metaColumns.push(
71
- columnHelper.accessor("label", {
72
- header: () => null,
73
- id: "dataItems",
74
- meta: {
75
- filterable: true
26
+ return useMemo(() => {
27
+ const metaColumns = [
28
+ columnHelper.accessor(
29
+ (rowData) => {
30
+ if (disableExpanding) {
31
+ return false;
32
+ }
33
+ if (showDataInRows) {
34
+ return false;
35
+ }
36
+ if (!lowestLevel) {
37
+ return false;
38
+ }
39
+ const orgUnit = rowData.orgUnit;
40
+ if (!orgUnit) {
41
+ return false;
42
+ }
43
+ const ouLevel = getOrgUnitLevel(orgUnit);
44
+ return ouLevel !== lowestLevel.level;
76
45
  },
77
- enableColumnFilter: true,
78
- cell: LabelCell,
79
- footer: MetaFooterCell
80
- })
81
- );
82
- } else {
83
- metaColumns.push(
84
- columnHelper.accessor("label", {
85
- header: () => null,
86
- id: "orgUnits",
87
- enableColumnFilter: true,
88
- meta: {
89
- isMeta: true,
90
- fixed: true
46
+ {
47
+ id: "expand",
48
+ header: () => null,
49
+ meta: {
50
+ isMeta: true,
51
+ fixed: true,
52
+ label: ""
53
+ },
54
+ enableColumnFilter: false,
55
+ cell: ExpandCell,
56
+ footer: () => null
57
+ }
58
+ ),
59
+ columnHelper.accessor(
60
+ (_, index) => {
61
+ return index + 1;
91
62
  },
92
- cell: LabelCell,
93
- footer: MetaFooterCell
94
- })
95
- );
96
- }
97
- return metaColumns;
63
+ {
64
+ id: "count",
65
+ header: () => null,
66
+ meta: {
67
+ isMeta: true,
68
+ fixed: true,
69
+ label: ""
70
+ },
71
+ enableColumnFilter: false,
72
+ cell: NumberCell,
73
+ footer: () => null
74
+ }
75
+ )
76
+ ];
77
+ if (showDataInRows) {
78
+ metaColumns.push(
79
+ columnHelper.accessor("label", {
80
+ header: () => null,
81
+ id: "dataItems",
82
+ meta: {
83
+ filterable: true
84
+ },
85
+ enableColumnFilter: true,
86
+ cell: LabelCell,
87
+ footer: MetaFooterCell
88
+ })
89
+ );
90
+ } else {
91
+ metaColumns.push(
92
+ columnHelper.accessor("label", {
93
+ header: () => null,
94
+ id: "orgUnits",
95
+ enableColumnFilter: true,
96
+ meta: {
97
+ isMeta: true,
98
+ fixed: true
99
+ },
100
+ cell: LabelCell,
101
+ footer: MetaFooterCell
102
+ })
103
+ );
104
+ }
105
+ return metaColumns;
106
+ }, [showDataInRows, disableExpanding]);
98
107
  }
99
108
  function useTableColumns() {
100
109
  const config = useScorecardConfig();
110
+ const { data: dataEngine } = useScorecardData();
101
111
  const meta = useScorecardMeta();
102
- const state = useScorecardState();
103
112
  const metaColumns = useMetaColumns();
104
113
  const calendar = useCalendar();
105
- if (!config || !meta || !state) {
114
+ const showDataInRows = useScorecardStateSelector([
115
+ "options",
116
+ "showDataInRows"
117
+ ]);
118
+ const periodSelection = useScorecardStateSelector(
119
+ "periodSelection"
120
+ );
121
+ const orgUnitSelection = useScorecardStateSelector(
122
+ "orgUnitSelection"
123
+ );
124
+ if (!config || !meta) {
106
125
  return [];
107
126
  }
108
127
  return useMemo(() => {
@@ -114,11 +133,12 @@ function useTableColumns() {
114
133
  footer: () => null
115
134
  })
116
135
  ];
117
- if (state.options.showDataInRows) {
136
+ if (showDataInRows) {
118
137
  columns.push(
119
138
  ...getOrgUnitColumnHeaders({
120
139
  meta,
121
- calendar
140
+ calendar,
141
+ dataEngine
122
142
  })
123
143
  );
124
144
  } else {
@@ -126,7 +146,8 @@ function useTableColumns() {
126
146
  ...getDataColumnHeaders({
127
147
  meta,
128
148
  config,
129
- calendar
149
+ calendar,
150
+ dataEngine
130
151
  })
131
152
  );
132
153
  }
@@ -137,11 +158,7 @@ function useTableColumns() {
137
158
  })
138
159
  );
139
160
  return columns;
140
- }, [
141
- state.options.showDataInRows,
142
- state.periodSelection,
143
- state.orgUnitSelection
144
- ]);
161
+ }, [showDataInRows, periodSelection, orgUnitSelection]);
145
162
  }
146
163
 
147
164
  export { useMetaColumns, useTableColumns };