@dhis2/analytics 28.0.4 → 28.1.0

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 (257) hide show
  1. package/build/cjs/__demo__/OpenFileDialog.stories.js +19 -1
  2. package/build/cjs/__demo__/{PivotTable.stories.js → PivotTable.aggregate.stories.js} +38 -38
  3. package/build/cjs/__demo__/PivotTable.event.stories.js +440 -0
  4. package/build/cjs/__demo__/data/event/boolean.data.hidena.json +115 -0
  5. package/build/cjs/__demo__/data/event/boolean.data.json +125 -0
  6. package/build/cjs/__demo__/data/event/boolean.data.org.json +106 -0
  7. package/build/cjs/__demo__/data/event/boolean.visualization.json +160 -0
  8. package/build/cjs/__demo__/data/event/date.data.hidena.json +205 -0
  9. package/build/cjs/__demo__/data/event/date.data.json +215 -0
  10. package/build/cjs/__demo__/data/event/date.data.org.json +123 -0
  11. package/build/cjs/__demo__/data/event/date.visualization.json +160 -0
  12. package/build/cjs/__demo__/data/event/datetime.data.hidena.json +215 -0
  13. package/build/cjs/__demo__/data/event/datetime.data.json +225 -0
  14. package/build/cjs/__demo__/data/event/datetime.data.org.json +124 -0
  15. package/build/cjs/__demo__/data/event/datetime.visualization.json +148 -0
  16. package/build/cjs/__demo__/data/event/email.data.hidena.json +192 -0
  17. package/build/cjs/__demo__/data/event/email.data.json +202 -0
  18. package/build/cjs/__demo__/data/event/email.data.org.json +123 -0
  19. package/build/cjs/__demo__/data/event/email.visualization.json +148 -0
  20. package/build/cjs/__demo__/data/event/integer.data.hidena.json +165 -0
  21. package/build/cjs/__demo__/data/event/integer.data.json +175 -0
  22. package/build/cjs/__demo__/data/event/integer.data.org.json +120 -0
  23. package/build/cjs/__demo__/data/event/integer.visualization.json +163 -0
  24. package/build/cjs/__demo__/data/event/legendset.data.hidena.json +154 -0
  25. package/build/cjs/__demo__/data/event/legendset.data.json +164 -0
  26. package/build/cjs/__demo__/data/event/legendset.visualization.json +166 -0
  27. package/build/cjs/__demo__/data/event/optionset.data.hidena.json +125 -0
  28. package/build/cjs/__demo__/data/event/optionset.data.json +134 -0
  29. package/build/cjs/__demo__/data/event/optionset.data.org.json +125 -0
  30. package/build/cjs/__demo__/data/event/optionset.visualization.json +158 -0
  31. package/build/cjs/__demo__/data/event/time.data.hidena.json +165 -0
  32. package/build/cjs/__demo__/data/event/time.data.json +175 -0
  33. package/build/cjs/__demo__/data/event/time.data.org.json +128 -0
  34. package/build/cjs/__demo__/data/event/time.visualization.json +148 -0
  35. package/build/cjs/__demo__/data/event/yesonly.data.hidena.json +127 -0
  36. package/build/cjs/__demo__/data/event/yesonly.data.json +136 -0
  37. package/build/cjs/__demo__/data/event/yesonly.data.org.json +124 -0
  38. package/build/cjs/__demo__/data/event/yesonly.visualization.json +161 -0
  39. package/build/cjs/components/DataDimension/ItemSelector/ItemSelector.js +19 -22
  40. package/build/cjs/components/DimensionsPanel/List/DimensionList.js +3 -1
  41. package/build/cjs/components/DimensionsPanel/List/__tests__/DimensionItem.spec.js +48 -41
  42. package/build/cjs/components/DimensionsPanel/List/__tests__/__snapshots__/DimensionItem.spec.js.snap +110 -114
  43. package/build/cjs/components/DimensionsPanel/__tests__/DimensionsPanel.spec.js +36 -33
  44. package/build/cjs/components/FileMenu/__tests__/DeleteDialog.spec.js +24 -27
  45. package/build/cjs/components/FileMenu/__tests__/FileMenu.spec.js +51 -31
  46. package/build/cjs/components/FileMenu/__tests__/GetLinkDialog.spec.js +28 -31
  47. package/build/cjs/components/FileMenu/__tests__/RenameDialog.spec.js +17 -11
  48. package/build/cjs/components/FileMenu/__tests__/SaveAsDialog.spec.js +44 -37
  49. package/build/cjs/components/Filter/__tests__/Filter.spec.js +29 -34
  50. package/build/cjs/components/OpenFileDialog/CreatedByFilter.js +9 -1
  51. package/build/cjs/components/OpenFileDialog/OpenFileDialog.js +14 -34
  52. package/build/cjs/components/OpenFileDialog/VisTypeFilter.js +39 -1
  53. package/build/cjs/components/OpenFileDialog/__tests__/OpenFileDialog.spec.js +51 -0
  54. package/build/cjs/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +78 -44
  55. package/build/cjs/components/PeriodDimension/FixedPeriodFilter.js +1 -0
  56. package/build/cjs/components/PeriodDimension/RelativePeriodFilter.js +3 -2
  57. package/build/cjs/components/PeriodDimension/__tests__/FixedPeriodSingleSelect.spec.js +14 -21
  58. package/build/cjs/components/PeriodDimension/__tests__/PeriodDimension.spec.js +27 -23
  59. package/build/cjs/components/PivotTable/PivotTableColumnHeaderCell.js +3 -0
  60. package/build/cjs/components/PivotTable/PivotTableRowHeaderCell.js +2 -1
  61. package/build/cjs/components/RichText/Editor/__tests__/Editor.spec.js +6 -7
  62. package/build/cjs/components/RichText/Parser/__tests__/MdParser.spec.js +1 -1
  63. package/build/cjs/components/RichText/Parser/__tests__/Parser.spec.js +22 -23
  64. package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuBar.spec.js +52 -42
  65. package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuDropdown.spec.js +8 -8
  66. package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuList.spec.js +23 -18
  67. package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/HoverMenuListItem.spec.js +23 -17
  68. package/build/cjs/components/Toolbar/HoverMenuBar/__tests__/__snapshots__/HoverMenuList.spec.js.snap +63 -0
  69. package/build/cjs/components/Toolbar/InterpretationsAndDetailsToggler.js +3 -1
  70. package/build/cjs/components/Toolbar/__tests__/InterpretationsAndDetailsToggler.spec.js +19 -18
  71. package/build/cjs/components/Toolbar/__tests__/Toolbar.spec.js +8 -8
  72. package/build/cjs/components/Toolbar/__tests__/ToolbarSidebar.spec.js +14 -11
  73. package/build/cjs/components/Toolbar/__tests__/UpdateButton.spec.js +16 -14
  74. package/build/cjs/components/TranslationDialog/TranslationModal/TranslationModal.js +2 -1
  75. package/build/cjs/components/TranslationDialog/TranslationModal/__tests__/TranslationModal.spec.js +25 -16
  76. package/build/cjs/index.js +8 -0
  77. package/build/cjs/locales/en/translations.json +1 -0
  78. package/build/cjs/modules/pivotTable/AdaptiveClippingController.js +2 -1
  79. package/build/cjs/modules/pivotTable/getHeaderForDisplay.js +4 -1
  80. package/build/cjs/modules/pivotTable/measureText.js +7 -6
  81. package/build/cjs/modules/response/event/__tests__/default.spec.js +77 -0
  82. package/build/cjs/modules/response/event/__tests__/optionSet.spec.js +35 -0
  83. package/build/cjs/modules/response/event/__tests__/response.spec.js +125 -0
  84. package/build/cjs/modules/response/event/default.js +65 -0
  85. package/build/cjs/modules/response/event/optionSet.js +36 -0
  86. package/build/cjs/modules/response/event/response.js +95 -0
  87. package/build/es/__demo__/OpenFileDialog.stories.js +17 -0
  88. package/build/es/__demo__/{PivotTable.stories.js → PivotTable.aggregate.stories.js} +38 -38
  89. package/build/es/__demo__/PivotTable.event.stories.js +414 -0
  90. package/build/es/__demo__/data/event/boolean.data.hidena.json +115 -0
  91. package/build/es/__demo__/data/event/boolean.data.json +125 -0
  92. package/build/es/__demo__/data/event/boolean.data.org.json +106 -0
  93. package/build/es/__demo__/data/event/boolean.visualization.json +160 -0
  94. package/build/es/__demo__/data/event/date.data.hidena.json +205 -0
  95. package/build/es/__demo__/data/event/date.data.json +215 -0
  96. package/build/es/__demo__/data/event/date.data.org.json +123 -0
  97. package/build/es/__demo__/data/event/date.visualization.json +160 -0
  98. package/build/es/__demo__/data/event/datetime.data.hidena.json +215 -0
  99. package/build/es/__demo__/data/event/datetime.data.json +225 -0
  100. package/build/es/__demo__/data/event/datetime.data.org.json +124 -0
  101. package/build/es/__demo__/data/event/datetime.visualization.json +148 -0
  102. package/build/es/__demo__/data/event/email.data.hidena.json +192 -0
  103. package/build/es/__demo__/data/event/email.data.json +202 -0
  104. package/build/es/__demo__/data/event/email.data.org.json +123 -0
  105. package/build/es/__demo__/data/event/email.visualization.json +148 -0
  106. package/build/es/__demo__/data/event/integer.data.hidena.json +165 -0
  107. package/build/es/__demo__/data/event/integer.data.json +175 -0
  108. package/build/es/__demo__/data/event/integer.data.org.json +120 -0
  109. package/build/es/__demo__/data/event/integer.visualization.json +163 -0
  110. package/build/es/__demo__/data/event/legendset.data.hidena.json +154 -0
  111. package/build/es/__demo__/data/event/legendset.data.json +164 -0
  112. package/build/es/__demo__/data/event/legendset.visualization.json +166 -0
  113. package/build/es/__demo__/data/event/optionset.data.hidena.json +125 -0
  114. package/build/es/__demo__/data/event/optionset.data.json +134 -0
  115. package/build/es/__demo__/data/event/optionset.data.org.json +125 -0
  116. package/build/es/__demo__/data/event/optionset.visualization.json +158 -0
  117. package/build/es/__demo__/data/event/time.data.hidena.json +165 -0
  118. package/build/es/__demo__/data/event/time.data.json +175 -0
  119. package/build/es/__demo__/data/event/time.data.org.json +128 -0
  120. package/build/es/__demo__/data/event/time.visualization.json +148 -0
  121. package/build/es/__demo__/data/event/yesonly.data.hidena.json +127 -0
  122. package/build/es/__demo__/data/event/yesonly.data.json +136 -0
  123. package/build/es/__demo__/data/event/yesonly.data.org.json +124 -0
  124. package/build/es/__demo__/data/event/yesonly.visualization.json +161 -0
  125. package/build/es/components/DataDimension/ItemSelector/ItemSelector.js +19 -22
  126. package/build/es/components/DimensionsPanel/List/DimensionList.js +3 -1
  127. package/build/es/components/DimensionsPanel/List/__tests__/DimensionItem.spec.js +47 -40
  128. package/build/es/components/DimensionsPanel/List/__tests__/__snapshots__/DimensionItem.spec.js.snap +110 -114
  129. package/build/es/components/DimensionsPanel/__tests__/DimensionsPanel.spec.js +35 -32
  130. package/build/es/components/FileMenu/__tests__/DeleteDialog.spec.js +23 -26
  131. package/build/es/components/FileMenu/__tests__/FileMenu.spec.js +52 -32
  132. package/build/es/components/FileMenu/__tests__/GetLinkDialog.spec.js +27 -30
  133. package/build/es/components/FileMenu/__tests__/RenameDialog.spec.js +18 -12
  134. package/build/es/components/FileMenu/__tests__/SaveAsDialog.spec.js +43 -36
  135. package/build/es/components/Filter/__tests__/Filter.spec.js +28 -33
  136. package/build/es/components/OpenFileDialog/CreatedByFilter.js +7 -0
  137. package/build/es/components/OpenFileDialog/OpenFileDialog.js +14 -35
  138. package/build/es/components/OpenFileDialog/VisTypeFilter.js +38 -1
  139. package/build/es/components/OpenFileDialog/__tests__/OpenFileDialog.spec.js +49 -0
  140. package/build/es/components/OrgUnitDimension/__tests__/OrgUnitDimension.spec.js +77 -43
  141. package/build/es/components/PeriodDimension/FixedPeriodFilter.js +1 -0
  142. package/build/es/components/PeriodDimension/RelativePeriodFilter.js +3 -2
  143. package/build/es/components/PeriodDimension/__tests__/FixedPeriodSingleSelect.spec.js +13 -20
  144. package/build/es/components/PeriodDimension/__tests__/PeriodDimension.spec.js +26 -22
  145. package/build/es/components/PivotTable/PivotTableColumnHeaderCell.js +3 -0
  146. package/build/es/components/PivotTable/PivotTableRowHeaderCell.js +2 -1
  147. package/build/es/components/RichText/Editor/__tests__/Editor.spec.js +7 -8
  148. package/build/es/components/RichText/Parser/__tests__/MdParser.spec.js +1 -1
  149. package/build/es/components/RichText/Parser/__tests__/Parser.spec.js +21 -22
  150. package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuBar.spec.js +53 -43
  151. package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuDropdown.spec.js +7 -7
  152. package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuList.spec.js +23 -18
  153. package/build/es/components/Toolbar/HoverMenuBar/__tests__/HoverMenuListItem.spec.js +21 -15
  154. package/build/es/components/Toolbar/HoverMenuBar/__tests__/__snapshots__/HoverMenuList.spec.js.snap +63 -0
  155. package/build/es/components/Toolbar/InterpretationsAndDetailsToggler.js +3 -1
  156. package/build/es/components/Toolbar/__tests__/InterpretationsAndDetailsToggler.spec.js +18 -17
  157. package/build/es/components/Toolbar/__tests__/Toolbar.spec.js +7 -7
  158. package/build/es/components/Toolbar/__tests__/ToolbarSidebar.spec.js +13 -10
  159. package/build/es/components/Toolbar/__tests__/UpdateButton.spec.js +15 -13
  160. package/build/es/components/TranslationDialog/TranslationModal/TranslationModal.js +2 -1
  161. package/build/es/components/TranslationDialog/TranslationModal/__tests__/TranslationModal.spec.js +24 -15
  162. package/build/es/index.js +4 -0
  163. package/build/es/locales/en/translations.json +1 -0
  164. package/build/es/modules/pivotTable/AdaptiveClippingController.js +2 -1
  165. package/build/es/modules/pivotTable/getHeaderForDisplay.js +4 -1
  166. package/build/es/modules/pivotTable/measureText.js +7 -6
  167. package/build/es/modules/response/event/__tests__/default.spec.js +75 -0
  168. package/build/es/modules/response/event/__tests__/optionSet.spec.js +32 -0
  169. package/build/es/modules/response/event/__tests__/response.spec.js +122 -0
  170. package/build/es/modules/response/event/default.js +52 -0
  171. package/build/es/modules/response/event/optionSet.js +27 -0
  172. package/build/es/modules/response/event/response.js +86 -0
  173. package/package.json +2 -4
  174. package/build/cjs/components/OrgUnitDimension/__tests__/__snapshots__/OrgUnitDimension.spec.js.snap +0 -89
  175. package/build/cjs/components/PeriodDimension/__tests__/PeriodSelector.spec.js +0 -29
  176. package/build/cjs/components/PeriodDimension/__tests__/__snapshots__/FixedPeriodSingleSelect.spec.js.snap +0 -92
  177. package/build/cjs/components/PeriodDimension/__tests__/__snapshots__/PeriodDimension.spec.js.snap +0 -16
  178. package/build/cjs/components/PeriodDimension/__tests__/__snapshots__/PeriodSelector.spec.js.snap +0 -89
  179. package/build/es/components/OrgUnitDimension/__tests__/__snapshots__/OrgUnitDimension.spec.js.snap +0 -89
  180. package/build/es/components/PeriodDimension/__tests__/PeriodSelector.spec.js +0 -26
  181. package/build/es/components/PeriodDimension/__tests__/__snapshots__/FixedPeriodSingleSelect.spec.js.snap +0 -92
  182. package/build/es/components/PeriodDimension/__tests__/__snapshots__/PeriodDimension.spec.js.snap +0 -16
  183. package/build/es/components/PeriodDimension/__tests__/__snapshots__/PeriodSelector.spec.js.snap +0 -89
  184. /package/build/cjs/__demo__/data/{avgTotalAggregationType.data.json → aggregate/avgTotalAggregationType.data.json} +0 -0
  185. /package/build/cjs/__demo__/data/{avgTotalAggregationType.metadata.json → aggregate/avgTotalAggregationType.metadata.json} +0 -0
  186. /package/build/cjs/__demo__/data/{avgTotalAggregationType.visualization.json → aggregate/avgTotalAggregationType.visualization.json} +0 -0
  187. /package/build/cjs/__demo__/data/{deep.data.json → aggregate/deep.data.json} +0 -0
  188. /package/build/cjs/__demo__/data/{deep.visualization.json → aggregate/deep.visualization.json} +0 -0
  189. /package/build/cjs/__demo__/data/{deepWithFilters.data.json → aggregate/deepWithFilters.data.json} +0 -0
  190. /package/build/cjs/__demo__/data/{deepWithFilters.visualization.json → aggregate/deepWithFilters.visualization.json} +0 -0
  191. /package/build/cjs/__demo__/data/{degs.data.json → aggregate/degs.data.json} +0 -0
  192. /package/build/cjs/__demo__/data/{degs.metadata.json → aggregate/degs.metadata.json} +0 -0
  193. /package/build/cjs/__demo__/data/{degs.visualization.json → aggregate/degs.visualization.json} +0 -0
  194. /package/build/cjs/__demo__/data/{diseaseWeeks.data.json → aggregate/diseaseWeeks.data.json} +0 -0
  195. /package/build/cjs/__demo__/data/{diseaseWeeks.metadata.json → aggregate/diseaseWeeks.metadata.json} +0 -0
  196. /package/build/cjs/__demo__/data/{diseaseWeeks.visualization.json → aggregate/diseaseWeeks.visualization.json} +0 -0
  197. /package/build/cjs/__demo__/data/{emptyColumns.data.json → aggregate/emptyColumns.data.json} +0 -0
  198. /package/build/cjs/__demo__/data/{emptyColumns.metadata.json → aggregate/emptyColumns.metadata.json} +0 -0
  199. /package/build/cjs/__demo__/data/{emptyColumns.visualization.json → aggregate/emptyColumns.visualization.json} +0 -0
  200. /package/build/cjs/__demo__/data/{emptyRows.data.json → aggregate/emptyRows.data.json} +0 -0
  201. /package/build/cjs/__demo__/data/{emptyRows.visualization.json → aggregate/emptyRows.visualization.json} +0 -0
  202. /package/build/cjs/__demo__/data/{hierarchy.data.json → aggregate/hierarchy.data.json} +0 -0
  203. /package/build/cjs/__demo__/data/{hierarchy.metadata.json → aggregate/hierarchy.metadata.json} +0 -0
  204. /package/build/cjs/__demo__/data/{hierarchy.visualization.json → aggregate/hierarchy.visualization.json} +0 -0
  205. /package/build/cjs/__demo__/data/{lastFiveYears.data.json → aggregate/lastFiveYears.data.json} +0 -0
  206. /package/build/cjs/__demo__/data/{lastFiveYears.metadata.json → aggregate/lastFiveYears.metadata.json} +0 -0
  207. /package/build/cjs/__demo__/data/{lastFiveYears.visualization.json → aggregate/lastFiveYears.visualization.json} +0 -0
  208. /package/build/cjs/__demo__/data/{narrative.data.json → aggregate/narrative.data.json} +0 -0
  209. /package/build/cjs/__demo__/data/{narrative.metadata.json → aggregate/narrative.metadata.json} +0 -0
  210. /package/build/cjs/__demo__/data/{narrative.visualization.json → aggregate/narrative.visualization.json} +0 -0
  211. /package/build/cjs/__demo__/data/{simple.data.json → aggregate/simple.data.json} +0 -0
  212. /package/build/cjs/__demo__/data/{simple.metadata.json → aggregate/simple.metadata.json} +0 -0
  213. /package/build/cjs/__demo__/data/{simple.visualization.json → aggregate/simple.visualization.json} +0 -0
  214. /package/build/cjs/__demo__/data/{target-with-legend.data.json → aggregate/target-with-legend.data.json} +0 -0
  215. /package/build/cjs/__demo__/data/{target-with-legend.metadata.json → aggregate/target-with-legend.metadata.json} +0 -0
  216. /package/build/cjs/__demo__/data/{target-with-legend.visualization.json → aggregate/target-with-legend.visualization.json} +0 -0
  217. /package/build/cjs/__demo__/data/{under-above-100.legendSet.json → aggregate/under-above-100.legendSet.json} +0 -0
  218. /package/build/cjs/__demo__/data/{weeklyColumns.data.json → aggregate/weeklyColumns.data.json} +0 -0
  219. /package/build/cjs/__demo__/data/{weeklyColumns.metadata.json → aggregate/weeklyColumns.metadata.json} +0 -0
  220. /package/build/cjs/__demo__/data/{weeklyColumns.visualization.json → aggregate/weeklyColumns.visualization.json} +0 -0
  221. /package/build/es/__demo__/data/{avgTotalAggregationType.data.json → aggregate/avgTotalAggregationType.data.json} +0 -0
  222. /package/build/es/__demo__/data/{avgTotalAggregationType.metadata.json → aggregate/avgTotalAggregationType.metadata.json} +0 -0
  223. /package/build/es/__demo__/data/{avgTotalAggregationType.visualization.json → aggregate/avgTotalAggregationType.visualization.json} +0 -0
  224. /package/build/es/__demo__/data/{deep.data.json → aggregate/deep.data.json} +0 -0
  225. /package/build/es/__demo__/data/{deep.visualization.json → aggregate/deep.visualization.json} +0 -0
  226. /package/build/es/__demo__/data/{deepWithFilters.data.json → aggregate/deepWithFilters.data.json} +0 -0
  227. /package/build/es/__demo__/data/{deepWithFilters.visualization.json → aggregate/deepWithFilters.visualization.json} +0 -0
  228. /package/build/es/__demo__/data/{degs.data.json → aggregate/degs.data.json} +0 -0
  229. /package/build/es/__demo__/data/{degs.metadata.json → aggregate/degs.metadata.json} +0 -0
  230. /package/build/es/__demo__/data/{degs.visualization.json → aggregate/degs.visualization.json} +0 -0
  231. /package/build/es/__demo__/data/{diseaseWeeks.data.json → aggregate/diseaseWeeks.data.json} +0 -0
  232. /package/build/es/__demo__/data/{diseaseWeeks.metadata.json → aggregate/diseaseWeeks.metadata.json} +0 -0
  233. /package/build/es/__demo__/data/{diseaseWeeks.visualization.json → aggregate/diseaseWeeks.visualization.json} +0 -0
  234. /package/build/es/__demo__/data/{emptyColumns.data.json → aggregate/emptyColumns.data.json} +0 -0
  235. /package/build/es/__demo__/data/{emptyColumns.metadata.json → aggregate/emptyColumns.metadata.json} +0 -0
  236. /package/build/es/__demo__/data/{emptyColumns.visualization.json → aggregate/emptyColumns.visualization.json} +0 -0
  237. /package/build/es/__demo__/data/{emptyRows.data.json → aggregate/emptyRows.data.json} +0 -0
  238. /package/build/es/__demo__/data/{emptyRows.visualization.json → aggregate/emptyRows.visualization.json} +0 -0
  239. /package/build/es/__demo__/data/{hierarchy.data.json → aggregate/hierarchy.data.json} +0 -0
  240. /package/build/es/__demo__/data/{hierarchy.metadata.json → aggregate/hierarchy.metadata.json} +0 -0
  241. /package/build/es/__demo__/data/{hierarchy.visualization.json → aggregate/hierarchy.visualization.json} +0 -0
  242. /package/build/es/__demo__/data/{lastFiveYears.data.json → aggregate/lastFiveYears.data.json} +0 -0
  243. /package/build/es/__demo__/data/{lastFiveYears.metadata.json → aggregate/lastFiveYears.metadata.json} +0 -0
  244. /package/build/es/__demo__/data/{lastFiveYears.visualization.json → aggregate/lastFiveYears.visualization.json} +0 -0
  245. /package/build/es/__demo__/data/{narrative.data.json → aggregate/narrative.data.json} +0 -0
  246. /package/build/es/__demo__/data/{narrative.metadata.json → aggregate/narrative.metadata.json} +0 -0
  247. /package/build/es/__demo__/data/{narrative.visualization.json → aggregate/narrative.visualization.json} +0 -0
  248. /package/build/es/__demo__/data/{simple.data.json → aggregate/simple.data.json} +0 -0
  249. /package/build/es/__demo__/data/{simple.metadata.json → aggregate/simple.metadata.json} +0 -0
  250. /package/build/es/__demo__/data/{simple.visualization.json → aggregate/simple.visualization.json} +0 -0
  251. /package/build/es/__demo__/data/{target-with-legend.data.json → aggregate/target-with-legend.data.json} +0 -0
  252. /package/build/es/__demo__/data/{target-with-legend.metadata.json → aggregate/target-with-legend.metadata.json} +0 -0
  253. /package/build/es/__demo__/data/{target-with-legend.visualization.json → aggregate/target-with-legend.visualization.json} +0 -0
  254. /package/build/es/__demo__/data/{under-above-100.legendSet.json → aggregate/under-above-100.legendSet.json} +0 -0
  255. /package/build/es/__demo__/data/{weeklyColumns.data.json → aggregate/weeklyColumns.data.json} +0 -0
  256. /package/build/es/__demo__/data/{weeklyColumns.metadata.json → aggregate/weeklyColumns.metadata.json} +0 -0
  257. /package/build/es/__demo__/data/{weeklyColumns.visualization.json → aggregate/weeklyColumns.visualization.json} +0 -0
@@ -4,43 +4,43 @@ import PropTypes from 'prop-types';
4
4
  import React, { useState, useEffect } from 'react';
5
5
  import { PivotTable } from '../index.js';
6
6
  import { NUMBER_TYPE_COLUMN_PERCENTAGE, NUMBER_TYPE_ROW_PERCENTAGE } from '../modules/pivotTable/pivotTableConstants.js';
7
- import avgDataResponse from './data/avgTotalAggregationType.data.json';
8
- import avgMetadataResponse from './data/avgTotalAggregationType.metadata.json';
9
- import avgVisualization from './data/avgTotalAggregationType.visualization.json';
10
- import deepData from './data/deep.data.json';
11
- import deepVisualization from './data/deep.visualization.json';
12
- import deepWithFiltersData from './data/deepWithFilters.data.json';
13
- import deepWithFiltersVisualization from './data/deepWithFilters.visualization.json';
14
- import degsDataResponse from './data/degs.data.json';
15
- import degsMetadataResponse from './data/degs.metadata.json';
16
- import degsVisualization from './data/degs.visualization.json';
17
- import diseaseWeeksDataResponse from './data/diseaseWeeks.data.json';
18
- import diseaseWeeksMetadataResponse from './data/diseaseWeeks.metadata.json';
19
- import diseaseWeeksVisualization from './data/diseaseWeeks.visualization.json';
20
- import emptyColumnsDataResponse from './data/emptyColumns.data.json';
21
- import emptyColumnsMetadataResponse from './data/emptyColumns.metadata.json';
22
- import emptyColumnsVisualization from './data/emptyColumns.visualization.json';
23
- import emptyRowsData from './data/emptyRows.data.json';
24
- import emptyRowsVisualization from './data/emptyRows.visualization.json';
25
- import hierarchyDataResponse from './data/hierarchy.data.json';
26
- import hierarchyMetadataResponse from './data/hierarchy.metadata.json';
27
- import hierarchyVisualization from './data/hierarchy.visualization.json';
28
- import lastFiveYearsDataResponse from './data/lastFiveYears.data.json';
29
- import lastFiveYearsMetadataResponse from './data/lastFiveYears.metadata.json';
30
- import lastFiveYearsVisualization from './data/lastFiveYears.visualization.json';
31
- import narrativeDataResponse from './data/narrative.data.json';
32
- import narrativeMetadataResponse from './data/narrative.metadata.json';
33
- import narrativeVisualization from './data/narrative.visualization.json';
34
- import simpleDataResponse from './data/simple.data.json';
35
- import simpleMetadataResponse from './data/simple.metadata.json';
36
- import simpleVisualization from './data/simple.visualization.json';
37
- import targetDataResponse from './data/target-with-legend.data.json';
38
- import targetMetadataResponse from './data/target-with-legend.metadata.json';
39
- import targetVisualization from './data/target-with-legend.visualization.json';
40
- import underAbove100LegendSet from './data/under-above-100.legendSet.json';
41
- import weeklyColumnsDataResponse from './data/weeklyColumns.data.json';
42
- import weeklyColumnsMetadataResponse from './data/weeklyColumns.metadata.json';
43
- import weeklyColumnsVisualization from './data/weeklyColumns.visualization.json';
7
+ import avgDataResponse from './data/aggregate/avgTotalAggregationType.data.json';
8
+ import avgMetadataResponse from './data/aggregate/avgTotalAggregationType.metadata.json';
9
+ import avgVisualization from './data/aggregate/avgTotalAggregationType.visualization.json';
10
+ import deepData from './data/aggregate/deep.data.json';
11
+ import deepVisualization from './data/aggregate/deep.visualization.json';
12
+ import deepWithFiltersData from './data/aggregate/deepWithFilters.data.json';
13
+ import deepWithFiltersVisualization from './data/aggregate/deepWithFilters.visualization.json';
14
+ import degsDataResponse from './data/aggregate/degs.data.json';
15
+ import degsMetadataResponse from './data/aggregate/degs.metadata.json';
16
+ import degsVisualization from './data/aggregate/degs.visualization.json';
17
+ import diseaseWeeksDataResponse from './data/aggregate/diseaseWeeks.data.json';
18
+ import diseaseWeeksMetadataResponse from './data/aggregate/diseaseWeeks.metadata.json';
19
+ import diseaseWeeksVisualization from './data/aggregate/diseaseWeeks.visualization.json';
20
+ import emptyColumnsDataResponse from './data/aggregate/emptyColumns.data.json';
21
+ import emptyColumnsMetadataResponse from './data/aggregate/emptyColumns.metadata.json';
22
+ import emptyColumnsVisualization from './data/aggregate/emptyColumns.visualization.json';
23
+ import emptyRowsData from './data/aggregate/emptyRows.data.json';
24
+ import emptyRowsVisualization from './data/aggregate/emptyRows.visualization.json';
25
+ import hierarchyDataResponse from './data/aggregate/hierarchy.data.json';
26
+ import hierarchyMetadataResponse from './data/aggregate/hierarchy.metadata.json';
27
+ import hierarchyVisualization from './data/aggregate/hierarchy.visualization.json';
28
+ import lastFiveYearsDataResponse from './data/aggregate/lastFiveYears.data.json';
29
+ import lastFiveYearsMetadataResponse from './data/aggregate/lastFiveYears.metadata.json';
30
+ import lastFiveYearsVisualization from './data/aggregate/lastFiveYears.visualization.json';
31
+ import narrativeDataResponse from './data/aggregate/narrative.data.json';
32
+ import narrativeMetadataResponse from './data/aggregate/narrative.metadata.json';
33
+ import narrativeVisualization from './data/aggregate/narrative.visualization.json';
34
+ import simpleDataResponse from './data/aggregate/simple.data.json';
35
+ import simpleMetadataResponse from './data/aggregate/simple.metadata.json';
36
+ import simpleVisualization from './data/aggregate/simple.visualization.json';
37
+ import targetDataResponse from './data/aggregate/target-with-legend.data.json';
38
+ import targetMetadataResponse from './data/aggregate/target-with-legend.metadata.json';
39
+ import targetVisualization from './data/aggregate/target-with-legend.visualization.json';
40
+ import underAbove100LegendSet from './data/aggregate/under-above-100.legendSet.json';
41
+ import weeklyColumnsDataResponse from './data/aggregate/weeklyColumns.data.json';
42
+ import weeklyColumnsMetadataResponse from './data/aggregate/weeklyColumns.metadata.json';
43
+ import weeklyColumnsVisualization from './data/aggregate/weeklyColumns.visualization.json';
44
44
  const visualizationReset = {
45
45
  colTotals: false,
46
46
  rowTotals: false,
@@ -93,7 +93,7 @@ const PivotTableOptionsWrapper = story => {
93
93
  }));
94
94
  };
95
95
  export default {
96
- title: 'PivotTable',
96
+ title: 'PivotTable (aggregate)',
97
97
  decorators: [PivotTableOptionsWrapper]
98
98
  };
99
99
  export const Simple = (_, {
@@ -0,0 +1,414 @@
1
+ import { Checkbox, Divider } from '@dhis2/ui';
2
+ import React, { useState } from 'react';
3
+ import { PivotTable } from '../index.js';
4
+ import booleanDataHideNa from './data/event/boolean.data.hidena.json';
5
+ import booleanData from './data/event/boolean.data.json';
6
+ import booleanVisualization from './data/event/boolean.visualization.json';
7
+ import dateDataHideNa from './data/event/date.data.hidena.json';
8
+ import dateData from './data/event/date.data.json';
9
+ import dateVisualization from './data/event/date.visualization.json';
10
+ import datetimeDataHideNa from './data/event/datetime.data.hidena.json';
11
+ import datetimeData from './data/event/datetime.data.json';
12
+ import datetimeVisualization from './data/event/datetime.visualization.json';
13
+ import emailDataHideNa from './data/event/email.data.hidena.json';
14
+ import emailData from './data/event/email.data.json';
15
+ import emailVisualization from './data/event/email.visualization.json';
16
+ import integerDataHideNa from './data/event/integer.data.hidena.json';
17
+ import integerData from './data/event/integer.data.json';
18
+ import integerVisualization from './data/event/integer.visualization.json';
19
+ import legendsetDataHideNa from './data/event/legendset.data.hidena.json';
20
+ import legendsetData from './data/event/legendset.data.json';
21
+ import legendsetVisualization from './data/event/legendset.visualization.json';
22
+ import optionsetDataHideNa from './data/event/optionset.data.hidena.json';
23
+ import optionsetData from './data/event/optionset.data.json';
24
+ import optionsetVisualization from './data/event/optionset.visualization.json';
25
+ import timeDataHideNa from './data/event/time.data.hidena.json';
26
+ import timeData from './data/event/time.data.json';
27
+ import timeVisualization from './data/event/time.visualization.json';
28
+ import yesonlyDataHideNa from './data/event/yesonly.data.hidena.json';
29
+ import yesonlyData from './data/event/yesonly.data.json';
30
+ import yesonlyVisualization from './data/event/yesonly.visualization.json';
31
+ const visualizationReset = {
32
+ colTotals: false,
33
+ rowTotals: false,
34
+ colSubTotals: false,
35
+ rowSubTotals: false,
36
+ hideEmptyColumns: false,
37
+ hideEmptyRows: false,
38
+ hideNaData: false
39
+ };
40
+ const PivotTableOptionsWrapper = story => {
41
+ const [pivotTableOptions, setPivotTableOptions] = useState({
42
+ fixColumnHeaders: false,
43
+ fixRowHeaders: false
44
+ });
45
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Checkbox, {
46
+ label: "Use fixed column headers",
47
+ checked: pivotTableOptions.fixColumnHeaders,
48
+ onChange: ({
49
+ checked
50
+ }) => setPivotTableOptions({
51
+ ...pivotTableOptions,
52
+ fixColumnHeaders: checked
53
+ }),
54
+ dense: true
55
+ }), /*#__PURE__*/React.createElement(Checkbox, {
56
+ label: "Use fixed row headers",
57
+ checked: pivotTableOptions.fixRowHeaders,
58
+ onChange: ({
59
+ checked
60
+ }) => setPivotTableOptions({
61
+ ...pivotTableOptions,
62
+ fixRowHeaders: checked
63
+ }),
64
+ dense: true
65
+ }), /*#__PURE__*/React.createElement(Divider, null)), story({
66
+ pivotTableOptions
67
+ }));
68
+ };
69
+ export default {
70
+ title: 'PivotTable (event)',
71
+ decorators: [PivotTableOptionsWrapper]
72
+ };
73
+ export const TypeBooleanNA = (_, {
74
+ pivotTableOptions
75
+ }) => {
76
+ const visualization = {
77
+ ...booleanVisualization,
78
+ ...visualizationReset,
79
+ ...pivotTableOptions
80
+ };
81
+ return /*#__PURE__*/React.createElement("div", {
82
+ style: {
83
+ width: 800,
84
+ height: 600
85
+ }
86
+ }, /*#__PURE__*/React.createElement(PivotTable, {
87
+ data: booleanData,
88
+ visualization: visualization
89
+ }));
90
+ };
91
+ TypeBooleanNA.storyName = 'Boolean N/A';
92
+ export const TypeBoolean = (_, {
93
+ pivotTableOptions
94
+ }) => {
95
+ const visualization = {
96
+ ...booleanVisualization,
97
+ ...visualizationReset,
98
+ ...pivotTableOptions
99
+ };
100
+ return /*#__PURE__*/React.createElement("div", {
101
+ style: {
102
+ width: 800,
103
+ height: 600
104
+ }
105
+ }, /*#__PURE__*/React.createElement(PivotTable, {
106
+ data: booleanDataHideNa,
107
+ visualization: visualization
108
+ }));
109
+ };
110
+ TypeBoolean.storyName = 'Boolean';
111
+ export const TypeDateNA = (_, {
112
+ pivotTableOptions
113
+ }) => {
114
+ const visualization = {
115
+ ...dateVisualization,
116
+ ...visualizationReset,
117
+ ...pivotTableOptions
118
+ };
119
+ return /*#__PURE__*/React.createElement("div", {
120
+ style: {
121
+ width: 800,
122
+ height: 600
123
+ }
124
+ }, /*#__PURE__*/React.createElement(PivotTable, {
125
+ data: dateData,
126
+ visualization: visualization
127
+ }));
128
+ };
129
+ TypeDateNA.storyName = 'Date N/A';
130
+ export const TypeDate = (_, {
131
+ pivotTableOptions
132
+ }) => {
133
+ const visualization = {
134
+ ...dateVisualization,
135
+ ...visualizationReset,
136
+ ...pivotTableOptions
137
+ };
138
+ return /*#__PURE__*/React.createElement("div", {
139
+ style: {
140
+ width: 800,
141
+ height: 600
142
+ }
143
+ }, /*#__PURE__*/React.createElement(PivotTable, {
144
+ data: dateDataHideNa,
145
+ visualization: visualization
146
+ }));
147
+ };
148
+ TypeDate.storyName = 'Date';
149
+ export const TypeDatetimeNA = (_, {
150
+ pivotTableOptions
151
+ }) => {
152
+ const visualization = {
153
+ ...datetimeVisualization,
154
+ ...visualizationReset,
155
+ ...pivotTableOptions
156
+ };
157
+ return /*#__PURE__*/React.createElement("div", {
158
+ style: {
159
+ width: 800,
160
+ height: 600
161
+ }
162
+ }, /*#__PURE__*/React.createElement(PivotTable, {
163
+ data: datetimeData,
164
+ visualization: visualization
165
+ }));
166
+ };
167
+ TypeDatetimeNA.storyName = 'Datetime N/A';
168
+ export const TypeDatetime = (_, {
169
+ pivotTableOptions
170
+ }) => {
171
+ const visualization = {
172
+ ...datetimeVisualization,
173
+ ...visualizationReset,
174
+ ...pivotTableOptions
175
+ };
176
+ return /*#__PURE__*/React.createElement("div", {
177
+ style: {
178
+ width: 800,
179
+ height: 600
180
+ }
181
+ }, /*#__PURE__*/React.createElement(PivotTable, {
182
+ data: datetimeDataHideNa,
183
+ visualization: visualization
184
+ }));
185
+ };
186
+ TypeDatetime.storyName = 'Datetime';
187
+ export const TypeLegendsetNA = (_, {
188
+ pivotTableOptions
189
+ }) => {
190
+ const visualization = {
191
+ ...legendsetVisualization,
192
+ ...visualizationReset,
193
+ ...pivotTableOptions
194
+ };
195
+ return /*#__PURE__*/React.createElement("div", {
196
+ style: {
197
+ width: 800,
198
+ height: 600
199
+ }
200
+ }, /*#__PURE__*/React.createElement(PivotTable, {
201
+ data: legendsetData,
202
+ visualization: visualization
203
+ }));
204
+ };
205
+ TypeLegendsetNA.storyName = 'Legendset N/A';
206
+ export const TypeLegendset = (_, {
207
+ pivotTableOptions
208
+ }) => {
209
+ const visualization = {
210
+ ...legendsetVisualization,
211
+ ...visualizationReset,
212
+ ...pivotTableOptions
213
+ };
214
+ return /*#__PURE__*/React.createElement("div", {
215
+ style: {
216
+ width: 800,
217
+ height: 600
218
+ }
219
+ }, /*#__PURE__*/React.createElement(PivotTable, {
220
+ data: legendsetDataHideNa,
221
+ visualization: visualization
222
+ }));
223
+ };
224
+ TypeLegendset.storyName = 'Legendset';
225
+ export const TypeNumericNA = (_, {
226
+ pivotTableOptions
227
+ }) => {
228
+ const visualization = {
229
+ ...integerVisualization,
230
+ ...visualizationReset,
231
+ ...pivotTableOptions
232
+ };
233
+ return /*#__PURE__*/React.createElement("div", {
234
+ style: {
235
+ width: 800,
236
+ height: 600
237
+ }
238
+ }, /*#__PURE__*/React.createElement(PivotTable, {
239
+ data: integerData,
240
+ visualization: visualization
241
+ }));
242
+ };
243
+ TypeNumericNA.storyName = 'Numeric N/A';
244
+ export const TypeNumeric = (_, {
245
+ pivotTableOptions
246
+ }) => {
247
+ const visualization = {
248
+ ...integerVisualization,
249
+ ...visualizationReset,
250
+ ...pivotTableOptions
251
+ };
252
+ return /*#__PURE__*/React.createElement("div", {
253
+ style: {
254
+ width: 800,
255
+ height: 600
256
+ }
257
+ }, /*#__PURE__*/React.createElement(PivotTable, {
258
+ data: integerDataHideNa,
259
+ visualization: visualization
260
+ }));
261
+ };
262
+ TypeNumeric.storyName = 'Numeric';
263
+ export const OptionsetNA = (_, {
264
+ pivotTableOptions
265
+ }) => {
266
+ const visualization = {
267
+ ...optionsetVisualization,
268
+ ...visualizationReset,
269
+ ...pivotTableOptions
270
+ };
271
+ return /*#__PURE__*/React.createElement("div", {
272
+ style: {
273
+ width: 800,
274
+ height: 600
275
+ }
276
+ }, /*#__PURE__*/React.createElement(PivotTable, {
277
+ data: optionsetData,
278
+ visualization: visualization
279
+ }));
280
+ };
281
+ OptionsetNA.storyName = 'Optionset N/A';
282
+ export const Optionset = (_, {
283
+ pivotTableOptions
284
+ }) => {
285
+ const visualization = {
286
+ ...optionsetVisualization,
287
+ ...visualizationReset,
288
+ ...pivotTableOptions
289
+ };
290
+ return /*#__PURE__*/React.createElement("div", {
291
+ style: {
292
+ width: 800,
293
+ height: 600
294
+ }
295
+ }, /*#__PURE__*/React.createElement(PivotTable, {
296
+ data: optionsetDataHideNa,
297
+ visualization: visualization
298
+ }));
299
+ };
300
+ Optionset.storyName = 'Optionset';
301
+ export const TextNA = (_, {
302
+ pivotTableOptions
303
+ }) => {
304
+ const visualization = {
305
+ ...emailVisualization,
306
+ ...visualizationReset,
307
+ ...pivotTableOptions
308
+ };
309
+ return /*#__PURE__*/React.createElement("div", {
310
+ style: {
311
+ width: 800,
312
+ height: 600
313
+ }
314
+ }, /*#__PURE__*/React.createElement(PivotTable, {
315
+ data: emailData,
316
+ visualization: visualization
317
+ }));
318
+ };
319
+ TextNA.storyName = 'Text N/A';
320
+ export const Text = (_, {
321
+ pivotTableOptions
322
+ }) => {
323
+ const visualization = {
324
+ ...emailVisualization,
325
+ ...visualizationReset,
326
+ ...pivotTableOptions
327
+ };
328
+ return /*#__PURE__*/React.createElement("div", {
329
+ style: {
330
+ width: 800,
331
+ height: 600
332
+ }
333
+ }, /*#__PURE__*/React.createElement(PivotTable, {
334
+ data: emailDataHideNa,
335
+ visualization: visualization
336
+ }));
337
+ };
338
+ Text.storyName = 'Text';
339
+ export const TimeNA = (_, {
340
+ pivotTableOptions
341
+ }) => {
342
+ const visualization = {
343
+ ...timeVisualization,
344
+ ...visualizationReset,
345
+ ...pivotTableOptions
346
+ };
347
+ return /*#__PURE__*/React.createElement("div", {
348
+ style: {
349
+ width: 800,
350
+ height: 600
351
+ }
352
+ }, /*#__PURE__*/React.createElement(PivotTable, {
353
+ data: timeData,
354
+ visualization: visualization
355
+ }));
356
+ };
357
+ TimeNA.storyName = 'Time N/A';
358
+ export const Time = (_, {
359
+ pivotTableOptions
360
+ }) => {
361
+ const visualization = {
362
+ ...timeVisualization,
363
+ ...visualizationReset,
364
+ ...pivotTableOptions
365
+ };
366
+ return /*#__PURE__*/React.createElement("div", {
367
+ style: {
368
+ width: 800,
369
+ height: 600
370
+ }
371
+ }, /*#__PURE__*/React.createElement(PivotTable, {
372
+ data: timeDataHideNa,
373
+ visualization: visualization
374
+ }));
375
+ };
376
+ Time.storyName = 'Time';
377
+ export const YesonlyNA = (_, {
378
+ pivotTableOptions
379
+ }) => {
380
+ const visualization = {
381
+ ...yesonlyVisualization,
382
+ ...visualizationReset,
383
+ ...pivotTableOptions
384
+ };
385
+ return /*#__PURE__*/React.createElement("div", {
386
+ style: {
387
+ width: 800,
388
+ height: 600
389
+ }
390
+ }, /*#__PURE__*/React.createElement(PivotTable, {
391
+ data: yesonlyData,
392
+ visualization: visualization
393
+ }));
394
+ };
395
+ YesonlyNA.storyName = 'Yesonly N/A';
396
+ export const Yesonly = (_, {
397
+ pivotTableOptions
398
+ }) => {
399
+ const visualization = {
400
+ ...yesonlyVisualization,
401
+ ...visualizationReset,
402
+ ...pivotTableOptions
403
+ };
404
+ return /*#__PURE__*/React.createElement("div", {
405
+ style: {
406
+ width: 800,
407
+ height: 600
408
+ }
409
+ }, /*#__PURE__*/React.createElement(PivotTable, {
410
+ data: yesonlyDataHideNa,
411
+ visualization: visualization
412
+ }));
413
+ };
414
+ Yesonly.storyName = 'Yesonly';
@@ -0,0 +1,115 @@
1
+ {
2
+ "headers": [
3
+ {
4
+ "name": "A03MvHHogjR.bx6fsa0t90x",
5
+ "column": "MCH BCG dose",
6
+ "valueType": "BOOLEAN",
7
+ "type": "java.lang.Boolean",
8
+ "hidden": false,
9
+ "meta": true
10
+ },
11
+ {
12
+ "name": "ou",
13
+ "column": "Organisation unit",
14
+ "valueType": "TEXT",
15
+ "type": "java.lang.String",
16
+ "hidden": false,
17
+ "meta": true
18
+ },
19
+ {
20
+ "name": "pe",
21
+ "column": "Period",
22
+ "valueType": "TEXT",
23
+ "type": "java.lang.String",
24
+ "hidden": false,
25
+ "meta": true
26
+ },
27
+ {
28
+ "name": "value",
29
+ "column": "Value",
30
+ "valueType": "NUMBER",
31
+ "type": "java.lang.Double",
32
+ "hidden": false,
33
+ "meta": false
34
+ }
35
+ ],
36
+ "metaData": {
37
+ "items": {
38
+ "202501": {
39
+ "name": "January 2025"
40
+ },
41
+ "202502": {
42
+ "name": "February 2025"
43
+ },
44
+ "202503": {
45
+ "name": "March 2025"
46
+ },
47
+ "202504": {
48
+ "name": "April 2025"
49
+ },
50
+ "202505": {
51
+ "name": "May 2025"
52
+ },
53
+ "202506": {
54
+ "name": "June 2025"
55
+ },
56
+ "bx6fsa0t90x": {
57
+ "name": "MCH BCG dose"
58
+ },
59
+ "A03MvHHogjR.bx6fsa0t90x": {
60
+ "name": "MCH BCG dose"
61
+ },
62
+ "IpHINAT79UW": {
63
+ "name": "Child Programme"
64
+ },
65
+ "ou": {
66
+ "name": "Organisation unit"
67
+ },
68
+ "ImspTQPwCqd": {
69
+ "name": "Sierra Leone"
70
+ },
71
+ "LAST_6_MONTHS": {
72
+ "name": "Last 6 months"
73
+ },
74
+ "pe": {
75
+ "name": "Period"
76
+ },
77
+ "A03MvHHogjR": {
78
+ "name": "Birth"
79
+ },
80
+ "A03MvHHogjR.bx6fsa0t90x_0": {
81
+ "name": "No"
82
+ },
83
+ "A03MvHHogjR.bx6fsa0t90x_1": {
84
+ "name": "Yes"
85
+ }
86
+ },
87
+ "dimensions": {
88
+ "pe": ["202501", "202502", "202503", "202504", "202505", "202506"],
89
+ "ou": ["ImspTQPwCqd"],
90
+ "A03MvHHogjR.bx6fsa0t90x": [
91
+ "A03MvHHogjR.bx6fsa0t90x_0",
92
+ "A03MvHHogjR.bx6fsa0t90x_1"
93
+ ]
94
+ }
95
+ },
96
+ "rowContext": {},
97
+ "width": 4,
98
+ "rows": [
99
+ ["A03MvHHogjR.bx6fsa0t90x_1", "ImspTQPwCqd", "202506", "319"],
100
+ ["A03MvHHogjR.bx6fsa0t90x_1", "ImspTQPwCqd", "202501", "352"],
101
+ ["A03MvHHogjR.bx6fsa0t90x_0", "ImspTQPwCqd", "202503", "337"],
102
+ ["A03MvHHogjR.bx6fsa0t90x_1", "ImspTQPwCqd", "202503", "357"],
103
+ ["A03MvHHogjR.bx6fsa0t90x_0", "ImspTQPwCqd", "202506", "293"],
104
+ ["A03MvHHogjR.bx6fsa0t90x_0", "ImspTQPwCqd", "202501", "341"],
105
+ ["A03MvHHogjR.bx6fsa0t90x_0", "ImspTQPwCqd", "202505", "344"],
106
+ ["A03MvHHogjR.bx6fsa0t90x_0", "ImspTQPwCqd", "202504", "332"],
107
+ ["A03MvHHogjR.bx6fsa0t90x_1", "ImspTQPwCqd", "202504", "326"],
108
+ ["A03MvHHogjR.bx6fsa0t90x_1", "ImspTQPwCqd", "202505", "358"],
109
+ ["A03MvHHogjR.bx6fsa0t90x_1", "ImspTQPwCqd", "202502", "318"],
110
+ ["", "ImspTQPwCqd", "202501", "1"],
111
+ ["A03MvHHogjR.bx6fsa0t90x_0", "ImspTQPwCqd", "202502", "311"]
112
+ ],
113
+ "height": 13,
114
+ "headerWidth": 4
115
+ }