@hisptz/dhis2-scorecard 1.1.2 → 1.1.4

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 (153) hide show
  1. package/dist/Scorecard.js.map +1 -1
  2. package/dist/components/ColGroup.js.map +1 -1
  3. package/dist/components/ConfigProvider.js.map +1 -1
  4. package/dist/components/DataProvider.js.map +1 -1
  5. package/dist/components/LoadingIndicator.js.map +1 -1
  6. package/dist/components/MetaProvider.js.map +1 -1
  7. package/dist/components/ScorecardContext.js.map +1 -1
  8. package/dist/components/ScorecardHeader.js.map +1 -1
  9. package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
  10. package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  11. package/dist/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
  12. package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
  13. package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
  14. package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
  15. package/dist/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js.map +1 -1
  16. package/dist/components/ScorecardPrint/ScorecardPrint.js.map +1 -1
  17. package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
  18. package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
  19. package/dist/components/ScorecardPrint/utils/download.js.map +1 -1
  20. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -1
  21. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -1
  22. package/dist/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -1
  23. package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
  24. package/dist/components/ScorecardTable/ScorecardTable.js.map +1 -1
  25. package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
  26. package/dist/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  27. package/dist/components/ScorecardTable/components/CellLoader.js.map +1 -1
  28. package/dist/components/ScorecardTable/components/DataContainer.js.map +1 -1
  29. package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  30. package/dist/components/ScorecardTable/components/DataRow.js.map +1 -1
  31. package/dist/components/ScorecardTable/components/DataValue.js.map +1 -1
  32. package/dist/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  33. package/dist/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  34. package/dist/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  35. package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  36. package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
  37. package/dist/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
  38. package/dist/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  39. package/dist/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  40. package/dist/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  41. package/dist/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -1
  42. package/dist/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  43. package/dist/components/ScorecardTable/components/TableBody.js.map +1 -1
  44. package/dist/components/ScorecardTable/components/TableFoot.js.map +1 -1
  45. package/dist/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
  46. package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  47. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  48. package/dist/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
  49. package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  50. package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  51. package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  52. package/dist/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  53. package/dist/components/StateProvider.js.map +1 -1
  54. package/dist/components/TableStateProvider.js.map +1 -1
  55. package/dist/esm/Scorecard.js.map +1 -1
  56. package/dist/esm/components/ColGroup.js.map +1 -1
  57. package/dist/esm/components/ConfigProvider.js.map +1 -1
  58. package/dist/esm/components/DataProvider.js.map +1 -1
  59. package/dist/esm/components/LoadingIndicator.js.map +1 -1
  60. package/dist/esm/components/MetaProvider.js.map +1 -1
  61. package/dist/esm/components/ScorecardContext.js.map +1 -1
  62. package/dist/esm/components/ScorecardHeader.js.map +1 -1
  63. package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
  64. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  65. package/dist/esm/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
  66. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
  67. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
  68. package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
  69. package/dist/esm/components/ScorecardLegendsView/components/SpecificTargetLegendsView.js.map +1 -1
  70. package/dist/esm/components/ScorecardPrint/ScorecardPrint.js.map +1 -1
  71. package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
  72. package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
  73. package/dist/esm/components/ScorecardPrint/utils/download.js.map +1 -1
  74. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/FurtherAnalysisDictionary.js.map +1 -1
  75. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/ConfigProvider.js.map +1 -1
  76. package/dist/esm/components/ScorecardTable/FurtherAnalysisDictionary/components/DetailsProvider.js.map +1 -1
  77. package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
  78. package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
  79. package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
  80. package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  81. package/dist/esm/components/ScorecardTable/components/CellLoader.js.map +1 -1
  82. package/dist/esm/components/ScorecardTable/components/DataContainer.js.map +1 -1
  83. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +1 -1
  84. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  85. package/dist/esm/components/ScorecardTable/components/DataRow.js.map +1 -1
  86. package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
  87. package/dist/esm/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  88. package/dist/esm/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  89. package/dist/esm/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  90. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  91. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js +1 -1
  92. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
  93. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
  94. package/dist/esm/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  95. package/dist/esm/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  96. package/dist/esm/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  97. package/dist/esm/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -1
  98. package/dist/esm/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  99. package/dist/esm/components/ScorecardTable/components/TableBody.js.map +1 -1
  100. package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
  101. package/dist/esm/components/ScorecardTable/components/TableHeader/TableHeader.js.map +1 -1
  102. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  103. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  104. package/dist/esm/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
  105. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  106. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  107. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  108. package/dist/esm/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  109. package/dist/esm/components/StateProvider.js.map +1 -1
  110. package/dist/esm/components/TableStateProvider.js.map +1 -1
  111. package/dist/esm/hooks/cellData.js.map +1 -1
  112. package/dist/esm/hooks/columns.js.map +1 -1
  113. package/dist/esm/hooks/data.js.map +1 -1
  114. package/dist/esm/hooks/dataItem.js.map +1 -1
  115. package/dist/esm/hooks/metadata.js.map +1 -1
  116. package/dist/esm/hooks/orgUnit.js.map +1 -1
  117. package/dist/esm/hooks/period.js.map +1 -1
  118. package/dist/esm/hooks/table.js +1 -1
  119. package/dist/esm/hooks/table.js.map +1 -1
  120. package/dist/esm/hooks/value.js.map +1 -1
  121. package/dist/esm/schemas/config.js.map +1 -1
  122. package/dist/esm/state/index.js +1 -1
  123. package/dist/esm/state/index.js.map +1 -1
  124. package/dist/esm/utils/analytics.js.map +1 -1
  125. package/dist/esm/utils/columns.js.map +1 -1
  126. package/dist/esm/utils/data.js.map +1 -1
  127. package/dist/esm/utils/dataEngine.js.map +1 -1
  128. package/dist/esm/utils/dataSources.js.map +1 -1
  129. package/dist/esm/utils/engine.js.map +1 -1
  130. package/dist/esm/utils/legends.js.map +1 -1
  131. package/dist/esm/utils/orgUnits.js.map +1 -1
  132. package/dist/esm/utils/state.js.map +1 -1
  133. package/dist/hooks/cellData.js.map +1 -1
  134. package/dist/hooks/columns.js.map +1 -1
  135. package/dist/hooks/data.js.map +1 -1
  136. package/dist/hooks/dataItem.js.map +1 -1
  137. package/dist/hooks/metadata.js.map +1 -1
  138. package/dist/hooks/orgUnit.js.map +1 -1
  139. package/dist/hooks/period.js.map +1 -1
  140. package/dist/hooks/table.js.map +1 -1
  141. package/dist/hooks/value.js.map +1 -1
  142. package/dist/schemas/config.js.map +1 -1
  143. package/dist/state/index.js.map +1 -1
  144. package/dist/utils/analytics.js.map +1 -1
  145. package/dist/utils/columns.js.map +1 -1
  146. package/dist/utils/data.js.map +1 -1
  147. package/dist/utils/dataEngine.js.map +1 -1
  148. package/dist/utils/dataSources.js.map +1 -1
  149. package/dist/utils/engine.js.map +1 -1
  150. package/dist/utils/legends.js.map +1 -1
  151. package/dist/utils/orgUnits.js.map +1 -1
  152. package/dist/utils/state.js.map +1 -1
  153. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/LinkedDataCell.tsx"],"names":[],"mappings":"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","file":"LinkedDataCell.js","sourcesContent":["import type { ScorecardCellData } from \"../../../schemas/config\";\nimport type { ItemMeta } from \"../../../hooks/metadata\";\nimport { useCellData } from \"../../../hooks/cellData\";\nimport { LinkedCell } from \"./LinkedCell\";\nimport { memo, useState } from \"react\";\nimport { FurtherAnalysisMenu } from \"./FurtherAnalysisMenu\";\nimport {\n\tFurtherAnalysis,\n\ttype FurtherAnalysisConfig,\n} from \"./FurtherAnalysisModal\";\nimport { isEqual } from \"lodash\";\n\nexport interface LinkedDataCellProps {\n\tdataSources: ScorecardCellData[];\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n\tsize: number;\n}\n\nfunction LinkedDataCellComponent({\n\tdataSources,\n\torgUnit,\n\tperiod,\n\tsize,\n}: LinkedDataCellProps) {\n\tconst [furtherAnalysisConfig, setFurtherAnalysisConfig] =\n\t\tuseState<FurtherAnalysisConfig | null>(null);\n\tconst [stateActionRef, setStateActionRef] = useState(undefined);\n\n\tconst [top, bottom] = dataSources ?? [];\n\tconst { legendDefinition: topLegendDefinition } = useCellData({\n\t\tdataSource: top,\n\t\torgUnit,\n\t\tperiod,\n\t});\n\tconst { legendDefinition: bottomLegendDefinition } = useCellData({\n\t\tdataSource: bottom,\n\t\torgUnit,\n\t\tperiod,\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t{!!furtherAnalysisConfig && (\n\t\t\t\t<FurtherAnalysis\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetFurtherAnalysisConfig(null);\n\t\t\t\t\t}}\n\t\t\t\t\thide={!furtherAnalysisConfig}\n\t\t\t\t\tconfig={furtherAnalysisConfig}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<LinkedCell\n\t\t\t\tsize={size}\n\t\t\t\tonContextMenu={(e: any) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetStateActionRef(e.target);\n\t\t\t\t}}\n\t\t\t\tonClick={(event: MouseEvent) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tsetFurtherAnalysisConfig({\n\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: period,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdataSources,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ttop={{\n\t\t\t\t\tlegendDefinition: topLegendDefinition,\n\t\t\t\t\tdataSource: top,\n\t\t\t\t\tvalue: top?.data?.current,\n\t\t\t\t}}\n\t\t\t\tbottom={{\n\t\t\t\t\tlegendDefinition: bottomLegendDefinition,\n\t\t\t\t\tdataSource: bottom,\n\t\t\t\t\tvalue: bottom?.data?.current,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{stateActionRef && (\n\t\t\t\t<FurtherAnalysisMenu\n\t\t\t\t\tdataSources={dataSources}\n\t\t\t\t\tonSelect={setFurtherAnalysisConfig}\n\t\t\t\t\tstateActionRef={stateActionRef}\n\t\t\t\t\tsetStateActionRef={setStateActionRef}\n\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\tperiodId={period}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const LinkedDataCell = memo(\n\tLinkedDataCellComponent,\n\t(prevProps, nowProps) => {\n\t\treturn isEqual(prevProps, nowProps);\n\t},\n);\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/LinkedDataCell.tsx"],"names":[],"mappings":";;;;;;;;AAmBA,SAAS,uBAAwB,CAAA;AAAA,EAChC,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACD,CAAwB,EAAA;AACvB,EAAA,MAAM,CAAC,qBAAA,EAAuB,wBAAwB,CAAA,GACrD,SAAuC,IAAI,CAAA;AAC5C,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,MAAS,CAAA;AAE9D,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAI,eAAe,EAAC;AACtC,EAAA,MAAM,EAAE,gBAAA,EAAkB,mBAAoB,EAAA,GAAI,WAAY,CAAA;AAAA,IAC7D,UAAY,EAAA,GAAA;AAAA,IACZ,OAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAA,MAAM,EAAE,gBAAA,EAAkB,sBAAuB,EAAA,GAAI,WAAY,CAAA;AAAA,IAChE,UAAY,EAAA,MAAA;AAAA,IACZ,OAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,uBAEG,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,IAAA,CAAC,CAAC,qBACF,oBAAA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACA,SAAS,MAAM;AACd,UAAA,wBAAA,CAAyB,IAAI,CAAA;AAAA,SAC9B;AAAA,QACA,MAAM,CAAC,qBAAA;AAAA,QACP,MAAQ,EAAA;AAAA;AAAA,KACT;AAAA,oBAED,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACA,IAAA;AAAA,QACA,aAAA,EAAe,CAAC,CAAW,KAAA;AAC1B,UAAA,CAAA,CAAE,cAAe,EAAA;AACjB,UAAA,iBAAA,CAAkB,EAAE,MAAM,CAAA;AAAA,SAC3B;AAAA,QACA,OAAA,EAAS,CAAC,KAAsB,KAAA;AAC/B,UAAA,KAAA,CAAM,eAAgB,EAAA;AACtB,UAAyB,wBAAA,CAAA;AAAA,YACxB,eAAiB,EAAA;AAAA,cAChB,OAAS,EAAA;AAAA,gBACR;AAAA,kBACC,EAAI,EAAA;AAAA;AACL;AACD,aACD;AAAA,YACA,gBAAkB,EAAA;AAAA,cACjB,QAAQ,EAAC;AAAA,cACT,QAAQ,EAAC;AAAA,cACT,QAAU,EAAA;AAAA,gBACT;AAAA,kBACC,IAAI,OAAQ,CAAA;AAAA;AACb;AACD,aACD;AAAA,YACA;AAAA,WACA,CAAA;AAAA,SACF;AAAA,QACA,GAAK,EAAA;AAAA,UACJ,gBAAkB,EAAA,mBAAA;AAAA,UAClB,UAAY,EAAA,GAAA;AAAA,UACZ,KAAA,EAAO,KAAK,IAAM,EAAA;AAAA,SACnB;AAAA,QACA,MAAQ,EAAA;AAAA,UACP,gBAAkB,EAAA,sBAAA;AAAA,UAClB,UAAY,EAAA,MAAA;AAAA,UACZ,KAAA,EAAO,QAAQ,IAAM,EAAA;AAAA;AACtB;AAAA,KACD;AAAA,IACC,cACA,oBAAA,GAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAU,EAAA,wBAAA;AAAA,QACV,cAAA;AAAA,QACA,iBAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAU,EAAA;AAAA;AAAA;AACX,GAEF,EAAA,CAAA;AAEF;AAEO,MAAM,cAAiB,GAAA,IAAA;AAAA,EAC7B,uBAAA;AAAA,EACA,CAAC,WAAW,QAAa,KAAA;AACxB,IAAO,OAAA,OAAA,CAAQ,WAAW,QAAQ,CAAA;AAAA;AAEpC","file":"LinkedDataCell.js","sourcesContent":["import type { ScorecardCellData } from \"../../../schemas/config\";\nimport type { ItemMeta } from \"../../../hooks/metadata\";\nimport { useCellData } from \"../../../hooks/cellData\";\nimport { LinkedCell } from \"./LinkedCell\";\nimport { memo, useState } from \"react\";\nimport { FurtherAnalysisMenu } from \"./FurtherAnalysisMenu\";\nimport {\n\tFurtherAnalysis,\n\ttype FurtherAnalysisConfig,\n} from \"./FurtherAnalysisModal\";\nimport { isEqual } from \"lodash\";\n\nexport interface LinkedDataCellProps {\n\tdataSources: ScorecardCellData[];\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n\tsize: number;\n}\n\nfunction LinkedDataCellComponent({\n\tdataSources,\n\torgUnit,\n\tperiod,\n\tsize,\n}: LinkedDataCellProps) {\n\tconst [furtherAnalysisConfig, setFurtherAnalysisConfig] =\n\t\tuseState<FurtherAnalysisConfig | null>(null);\n\tconst [stateActionRef, setStateActionRef] = useState(undefined);\n\n\tconst [top, bottom] = dataSources ?? [];\n\tconst { legendDefinition: topLegendDefinition } = useCellData({\n\t\tdataSource: top,\n\t\torgUnit,\n\t\tperiod,\n\t});\n\tconst { legendDefinition: bottomLegendDefinition } = useCellData({\n\t\tdataSource: bottom,\n\t\torgUnit,\n\t\tperiod,\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t{!!furtherAnalysisConfig && (\n\t\t\t\t<FurtherAnalysis\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetFurtherAnalysisConfig(null);\n\t\t\t\t\t}}\n\t\t\t\t\thide={!furtherAnalysisConfig}\n\t\t\t\t\tconfig={furtherAnalysisConfig}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<LinkedCell\n\t\t\t\tsize={size}\n\t\t\t\tonContextMenu={(e: any) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetStateActionRef(e.target);\n\t\t\t\t}}\n\t\t\t\tonClick={(event: MouseEvent) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tsetFurtherAnalysisConfig({\n\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: period,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdataSources,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ttop={{\n\t\t\t\t\tlegendDefinition: topLegendDefinition,\n\t\t\t\t\tdataSource: top,\n\t\t\t\t\tvalue: top?.data?.current,\n\t\t\t\t}}\n\t\t\t\tbottom={{\n\t\t\t\t\tlegendDefinition: bottomLegendDefinition,\n\t\t\t\t\tdataSource: bottom,\n\t\t\t\t\tvalue: bottom?.data?.current,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{stateActionRef && (\n\t\t\t\t<FurtherAnalysisMenu\n\t\t\t\t\tdataSources={dataSources}\n\t\t\t\t\tonSelect={setFurtherAnalysisConfig}\n\t\t\t\t\tstateActionRef={stateActionRef}\n\t\t\t\t\tsetStateActionRef={setStateActionRef}\n\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\tperiodId={period}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const LinkedDataCell = memo(\n\tLinkedDataCellComponent,\n\t(prevProps, nowProps) => {\n\t\treturn isEqual(prevProps, nowProps);\n\t},\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/MetaFooterCell.tsx"],"names":[],"mappings":";;;;;AAMO,SAAS,cAAe,CAAA;AAAA,EAC9B,MAAA;AAAA,EACA,KAAA;AACD,CAA2C,EAAA;AAC1C,EAAM,MAAA,OAAA,GAAU,QAAQ,MAAM;AAC7B,IACC,OAAA,KAAA,CACE,qBAAsB,EAAA,CACtB,SAAU,CAAA,CAAC,EAAE,EAAA,EAAS,KAAA,EAAA,KAAO,MAAO,CAAA,EAAE,CAAI,GAAA,CAAA,CAAA;AAAA,KAE3C,CAAC,KAAA,CAAM,uBAAyB,EAAA,MAAA,CAAO,EAAE,CAAC,CAAA,CAAA;AAE7C,EACC,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACA,QAAQ,EAAA,IAAA;AAAA,MACR,KAAO,EAAA,CAAA,EAAG,MAAO,CAAA,OAAA,EAAS,CAAA,EAAA,CAAA;AAAA,MAC1B,KAAM,EAAA,QAAA;AAAA,MACN,OAAA,EAAS,QAAQ,QAAS,EAAA;AAAA,MAC1B,KAAK,EAAA,IAAA;AAAA,MAGL,IAAK,EAAA,GAAA;AAAA,MAEL,QAAA,kBAAA,GAAA,CAAC,GAAE,EAAA,EAAA,KAAA,EAAO,EAAE,OAAA,EAAS,SAAY,EAAA,QAAA,EAAA,IAAA,CAAK,CAAE,CAAA,SAAS,CAAE,EAAA,CAAA;AAAA,KAAA;AAAA,GACpD,CAAA;AAEF","file":"MetaFooterCell.js","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport type { ScorecardTableData } from \"../../../schemas/config\";\nimport type { HeaderContext } from \"@tanstack/react-table\";\nimport { useMemo } from \"react\";\n\nexport function MetaFooterCell({\n\tcolumn,\n\ttable,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst colSpan = useMemo(() => {\n\t\treturn (\n\t\t\ttable\n\t\t\t\t.getVisibleLeafColumns()\n\t\t\t\t.findIndex(({ id }) => id === column.id) + 1\n\t\t);\n\t}, [table.getVisibleLeafColumns(), column.id]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\twidth={`${column.getSize()}px`}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={colSpan.toString()}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"0\"\n\t\t>\n\t\t\t<b style={{ padding: \"8px 0\" }}>{i18n.t(\"Average\")}</b>\n\t\t</DataTableCell>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/MetaFooterCell.tsx"],"names":[],"mappings":";;;;;AAMO,SAAS,cAAe,CAAA;AAAA,EAC9B,MAAA;AAAA,EACA;AACD,CAA2C,EAAA;AAC1C,EAAM,MAAA,OAAA,GAAU,QAAQ,MAAM;AAC7B,IACC,OAAA,KAAA,CACE,qBAAsB,EAAA,CACtB,SAAU,CAAA,CAAC,EAAE,EAAA,EAAS,KAAA,EAAA,KAAO,MAAO,CAAA,EAAE,CAAI,GAAA,CAAA;AAAA,KAE3C,CAAC,KAAA,CAAM,uBAAyB,EAAA,MAAA,CAAO,EAAE,CAAC,CAAA;AAE7C,EACC,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACA,QAAQ,EAAA,IAAA;AAAA,MACR,KAAO,EAAA,CAAA,EAAG,MAAO,CAAA,OAAA,EAAS,CAAA,EAAA,CAAA;AAAA,MAC1B,KAAM,EAAA,QAAA;AAAA,MACN,OAAA,EAAS,QAAQ,QAAS,EAAA;AAAA,MAC1B,KAAK,EAAA,IAAA;AAAA,MAGL,IAAK,EAAA,GAAA;AAAA,MAEL,QAAA,kBAAA,GAAA,CAAC,GAAE,EAAA,EAAA,KAAA,EAAO,EAAE,OAAA,EAAS,SAAY,EAAA,QAAA,EAAA,IAAA,CAAK,CAAE,CAAA,SAAS,CAAE,EAAA;AAAA;AAAA,GACpD;AAEF","file":"MetaFooterCell.js","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport type { ScorecardTableData } from \"../../../schemas/config\";\nimport type { HeaderContext } from \"@tanstack/react-table\";\nimport { useMemo } from \"react\";\n\nexport function MetaFooterCell({\n\tcolumn,\n\ttable,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst colSpan = useMemo(() => {\n\t\treturn (\n\t\t\ttable\n\t\t\t\t.getVisibleLeafColumns()\n\t\t\t\t.findIndex(({ id }) => id === column.id) + 1\n\t\t);\n\t}, [table.getVisibleLeafColumns(), column.id]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\twidth={`${column.getSize()}px`}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={colSpan.toString()}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"0\"\n\t\t>\n\t\t\t<b style={{ padding: \"8px 0\" }}>{i18n.t(\"Average\")}</b>\n\t\t</DataTableCell>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/PaginatedToolbar.tsx"],"names":["page","pageSize"],"mappings":";;;;;;AAQO,SAAS,gBAAmB,GAAA;AAClC,EAAA,MAAM,CAAC,SAAA,EAAW,eAAe,CAAA,GAAI,aAAc,EAAA,CAAA;AACnD,EAAA,MAAM,QAAQ,aAAc,EAAA,CAAA;AAC5B,EAAM,MAAA,QAAA,GAAW,MAAM,WAAY,EAAA,CAAA;AACnC,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,QAAS,EAAA,CAAE,WAAW,SAAY,GAAA,CAAA,CAAA;AACrD,EAAA,MAAM,QAAW,GAAA,KAAA,CAAM,QAAS,EAAA,CAAE,UAAW,CAAA,QAAA,CAAA;AAC7C,EAAM,MAAA,SAAA,GAAY,MAAM,YAAa,EAAA,CAAA;AACrC,EAAA,MAAM,qBAAqB,0BAA2B,EAAA,CAAA;AAEtD,EAAM,MAAA,YAAA,GAAe,CAACA,KAAiB,KAAA;AACtC,IAAA,eAAA,CAAgB,MAAM;AACrB,MAAM,KAAA,CAAA,YAAA,CAAaA,QAAO,CAAC,CAAA,CAAA;AAAA,KAC3B,CAAA,CAAA;AAAA,GACF,CAAA;AACA,EAAM,MAAA,gBAAA,GAAmB,CAACC,SAAqB,KAAA;AAC9C,IAAA,eAAA,CAAgB,MAAM;AACrB,MAAA,KAAA,CAAM,YAAYA,SAAQ,CAAA,CAAA;AAAA,KAC1B,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,eAAA,CAAgB,MAAM;AACrB,IAAmB,kBAAA,EAAA,CAAA;AAAA,GACpB,EAAG,CAAC,SAAS,CAAC,CAAA,CAAA;AAEd,EAAA,IACC,QAAY,IAAA,EAAA,IACX,KAAM,CAAA,OAAA,CAAQ,MACZ,iBACF,EAAA;AACD,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAEA,EACC,uBAAA,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MAGA,KAAA,EAAO,EAAE,QAAA,EAAU,OAAQ,EAAA;AAAA,MAC3B,QAAS,EAAA,QAAA;AAAA,MAET,8BAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QACpB,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACA,KAAO,EAAA,QAAA;AAAA,UACP,SAAA;AAAA,UACA,SAAA,EAAW,CAAC,EAAI,EAAA,EAAA,EAAI,IAAI,EAAI,EAAA,EAAA,EAAI,GAAG,CAAE,CAAA,GAAA;AAAA,YAAI,CAAC,IACzC,KAAA,IAAA,CAAK,QAAS,EAAA;AAAA,WACf;AAAA,UACA,IAAA;AAAA,UACA,QAAA;AAAA,UACA,YAAA;AAAA,UACA,gBAAA;AAAA,SAAA;AAAA,OAEF,EAAA,CAAA;AAAA,KAAA;AAAA,GACD,CAAA;AAEF","file":"PaginatedToolbar.js","sourcesContent":["import { DataTableToolbar, Pagination } from \"@dhis2/ui\";\nimport {\n\tuseTableState,\n\tuseToggleTableLoadingState,\n} from \"../../TableStateProvider\";\nimport { useTransition } from \"react\";\nimport { useUpdateEffect } from \"usehooks-ts\";\n\nexport function PaginatedToolbar() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst table = useTableState();\n\tconst rowCount = table.getRowCount();\n\tconst page = table.getState().pagination.pageIndex + 1;\n\tconst pageSize = table.getState().pagination.pageSize;\n\tconst pageCount = table.getPageCount();\n\tconst toggleTableLoading = useToggleTableLoadingState();\n\n\tconst onPageChange = (page: number) => {\n\t\tstartTransition(() => {\n\t\t\ttable.setPageIndex(page - 1);\n\t\t});\n\t};\n\tconst onPageSizeChange = (pageSize: number) => {\n\t\tstartTransition(() => {\n\t\t\ttable.setPageSize(pageSize);\n\t\t});\n\t};\n\n\tuseUpdateEffect(() => {\n\t\ttoggleTableLoading();\n\t}, [isPending]);\n\n\tif (\n\t\trowCount <= 50 ||\n\t\t(table.options.meta as { disablePagination?: boolean })\n\t\t\t?.disablePagination\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataTableToolbar\n\t\t\t/*\n\t\t\t// @ts-ignore */\n\t\t\tstyle={{ position: \"unset\" }}\n\t\t\tposition=\"bottom\"\n\t\t>\n\t\t\t<div style={{ width: \"100%\" }}>\n\t\t\t\t<Pagination\n\t\t\t\t\ttotal={rowCount}\n\t\t\t\t\tpageCount={pageCount}\n\t\t\t\t\tpageSizes={[10, 20, 30, 40, 50, 100].map((size) =>\n\t\t\t\t\t\tsize.toString(),\n\t\t\t\t\t)}\n\t\t\t\t\tpage={page}\n\t\t\t\t\tpageSize={pageSize}\n\t\t\t\t\tonPageChange={onPageChange}\n\t\t\t\t\tonPageSizeChange={onPageSizeChange}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</DataTableToolbar>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/PaginatedToolbar.tsx"],"names":["page","pageSize"],"mappings":";;;;;;AAQO,SAAS,gBAAmB,GAAA;AAClC,EAAA,MAAM,CAAC,SAAA,EAAW,eAAe,CAAA,GAAI,aAAc,EAAA;AACnD,EAAA,MAAM,QAAQ,aAAc,EAAA;AAC5B,EAAM,MAAA,QAAA,GAAW,MAAM,WAAY,EAAA;AACnC,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,QAAS,EAAA,CAAE,WAAW,SAAY,GAAA,CAAA;AACrD,EAAA,MAAM,QAAW,GAAA,KAAA,CAAM,QAAS,EAAA,CAAE,UAAW,CAAA,QAAA;AAC7C,EAAM,MAAA,SAAA,GAAY,MAAM,YAAa,EAAA;AACrC,EAAA,MAAM,qBAAqB,0BAA2B,EAAA;AAEtD,EAAM,MAAA,YAAA,GAAe,CAACA,KAAiB,KAAA;AACtC,IAAA,eAAA,CAAgB,MAAM;AACrB,MAAM,KAAA,CAAA,YAAA,CAAaA,QAAO,CAAC,CAAA;AAAA,KAC3B,CAAA;AAAA,GACF;AACA,EAAM,MAAA,gBAAA,GAAmB,CAACC,SAAqB,KAAA;AAC9C,IAAA,eAAA,CAAgB,MAAM;AACrB,MAAA,KAAA,CAAM,YAAYA,SAAQ,CAAA;AAAA,KAC1B,CAAA;AAAA,GACF;AAEA,EAAA,eAAA,CAAgB,MAAM;AACrB,IAAmB,kBAAA,EAAA;AAAA,GACpB,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,IACC,QAAY,IAAA,EAAA,IACX,KAAM,CAAA,OAAA,CAAQ,MACZ,iBACF,EAAA;AACD,IAAO,OAAA,IAAA;AAAA;AAGR,EACC,uBAAA,GAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MAGA,KAAA,EAAO,EAAE,QAAA,EAAU,OAAQ,EAAA;AAAA,MAC3B,QAAS,EAAA,QAAA;AAAA,MAET,8BAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QACpB,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACA,KAAO,EAAA,QAAA;AAAA,UACP,SAAA;AAAA,UACA,SAAA,EAAW,CAAC,EAAI,EAAA,EAAA,EAAI,IAAI,EAAI,EAAA,EAAA,EAAI,GAAG,CAAE,CAAA,GAAA;AAAA,YAAI,CAAC,IACzC,KAAA,IAAA,CAAK,QAAS;AAAA,WACf;AAAA,UACA,IAAA;AAAA,UACA,QAAA;AAAA,UACA,YAAA;AAAA,UACA;AAAA;AAAA,OAEF,EAAA;AAAA;AAAA,GACD;AAEF","file":"PaginatedToolbar.js","sourcesContent":["import { DataTableToolbar, Pagination } from \"@dhis2/ui\";\nimport {\n\tuseTableState,\n\tuseToggleTableLoadingState,\n} from \"../../TableStateProvider\";\nimport { useTransition } from \"react\";\nimport { useUpdateEffect } from \"usehooks-ts\";\n\nexport function PaginatedToolbar() {\n\tconst [isPending, startTransition] = useTransition();\n\tconst table = useTableState();\n\tconst rowCount = table.getRowCount();\n\tconst page = table.getState().pagination.pageIndex + 1;\n\tconst pageSize = table.getState().pagination.pageSize;\n\tconst pageCount = table.getPageCount();\n\tconst toggleTableLoading = useToggleTableLoadingState();\n\n\tconst onPageChange = (page: number) => {\n\t\tstartTransition(() => {\n\t\t\ttable.setPageIndex(page - 1);\n\t\t});\n\t};\n\tconst onPageSizeChange = (pageSize: number) => {\n\t\tstartTransition(() => {\n\t\t\ttable.setPageSize(pageSize);\n\t\t});\n\t};\n\n\tuseUpdateEffect(() => {\n\t\ttoggleTableLoading();\n\t}, [isPending]);\n\n\tif (\n\t\trowCount <= 50 ||\n\t\t(table.options.meta as { disablePagination?: boolean })\n\t\t\t?.disablePagination\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataTableToolbar\n\t\t\t/*\n\t\t\t// @ts-ignore */\n\t\t\tstyle={{ position: \"unset\" }}\n\t\t\tposition=\"bottom\"\n\t\t>\n\t\t\t<div style={{ width: \"100%\" }}>\n\t\t\t\t<Pagination\n\t\t\t\t\ttotal={rowCount}\n\t\t\t\t\tpageCount={pageCount}\n\t\t\t\t\tpageSizes={[10, 20, 30, 40, 50, 100].map((size) =>\n\t\t\t\t\t\tsize.toString(),\n\t\t\t\t\t)}\n\t\t\t\t\tpage={page}\n\t\t\t\t\tpageSize={pageSize}\n\t\t\t\t\tonPageChange={onPageChange}\n\t\t\t\t\tonPageSizeChange={onPageSizeChange}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</DataTableToolbar>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/SingleDataCell.tsx"],"names":[],"mappings":";;;;;;;;;;AAqBA,SAAS,uBAAwB,CAAA;AAAA,EAChC,WAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,CAAC,qBAAA,EAAuB,wBAAwB,CAAA,GACrD,SAAuC,IAAI,CAAA,CAAA;AAC5C,EAAM,MAAA,UAAA,GAAa,KAAK,WAAW,CAAA,CAAA;AACnC,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,KAAS,CAAA,CAAA,CAAA;AAE9D,EAAM,MAAA,EAAE,gBAAiB,EAAA,GAAI,WAAY,CAAA;AAAA,IACxC,UAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,GACA,CAAA,CAAA;AAED,EAAA,IAAI,CAAC,UAAA,IAAc,CAAC,UAAA,CAAW,IAAM,EAAA;AACpC,IAAO,uBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,QAAA,EAAQ,IAAC,EAAA,CAAA,CAAA;AAAA,GAChC;AAEA,EAAA,uBAEG,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,IAAA,CAAC,CAAC,qBACF,oBAAA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACA,SAAS,MAAM;AACd,UAAA,wBAAA,CAAyB,IAAI,CAAA,CAAA;AAAA,SAC9B;AAAA,QACA,MAAM,CAAC,qBAAA;AAAA,QACP,MAAQ,EAAA,qBAAA;AAAA,OAAA;AAAA,KACT;AAAA,oBAED,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACA,OAAA,EAAS,CAAC,KAAU,KAAA;AACnB,UAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AACtB,UAAyB,wBAAA,CAAA;AAAA,YACxB,eAAiB,EAAA;AAAA,cAChB,OAAS,EAAA;AAAA,gBACR;AAAA,kBACC,EAAI,EAAA,MAAA;AAAA,iBACL;AAAA,eACD;AAAA,aACD;AAAA,YACA,gBAAkB,EAAA;AAAA,cACjB,QAAQ,EAAC;AAAA,cACT,QAAQ,EAAC;AAAA,cACT,QAAU,EAAA;AAAA,gBACT;AAAA,kBACC,IAAI,OAAQ,CAAA,GAAA;AAAA,iBACb;AAAA,eACD;AAAA,aACD;AAAA,YACA,WAAA;AAAA,WACA,CAAA,CAAA;AAAA,SACF;AAAA,QACA,aAAA,EAAe,CAAC,CAAW,KAAA;AAC1B,UAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,UAAA,iBAAA,CAAkB,EAAE,MAAM,CAAA,CAAA;AAAA,SAC3B;AAAA,QACA,QAAQ,EAAA,IAAA;AAAA,QACR,KAAO,EAAA;AAAA,UACN,YAAY,gBAAkB,EAAA,KAAA;AAAA,UAC9B,SAAW,EAAA,QAAA;AAAA,UACX,KAAO,EAAA,IAAA;AAAA,UACP,QAAU,EAAA,GAAA;AAAA,UACV,MAAQ,EAAA,EAAA;AAAA,UACR,OAAO,gBACJ,GAAA,+BAAA;AAAA,YACA,gBAAkB,EAAA,KAAA;AAAA,WAElB,GAAA,KAAA,CAAA;AAAA,SACJ;AAAA,QAEC,QAAA,EAAA,UAAA,oBAAe,GAAA,CAAA,SAAA,EAAA,EAAU,UAAwB,EAAA,CAAA;AAAA,OAAA;AAAA,KACnD;AAAA,IAEC,cACA,oBAAA,GAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAU,EAAA,wBAAA;AAAA,QACV,cAAA;AAAA,QACA,iBAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAU,EAAA,MAAA;AAAA,OAAA;AAAA,KACX;AAAA,GAEF,EAAA,CAAA,CAAA;AAEF,CAAA;AAEa,MAAA,cAAA,GAAiB,KAAK,uBAAuB","file":"SingleDataCell.js","sourcesContent":["import { type ScorecardCellData } from \"../../../schemas/config\";\nimport { type ItemMeta } from \"../../../hooks/metadata\";\nimport { memo, type ReactNode, useState } from \"react\";\nimport { head } from \"lodash\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { getTextColorFromBackgroundColor } from \"../../../utils/legends\";\nimport { DataValue } from \"./DataValue\";\nimport { useCellData } from \"../../../hooks/cellData\";\nimport { FurtherAnalysisMenu } from \"./FurtherAnalysisMenu\";\nimport {\n\tFurtherAnalysis,\n\ttype FurtherAnalysisConfig,\n} from \"./FurtherAnalysisModal\";\n\nexport interface SingleDataCellProps {\n\tdataSources: ScorecardCellData[];\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n\tsize: number;\n}\n\nfunction SingleDataCellComponent({\n\tdataSources,\n\tperiod,\n\torgUnit,\n\tsize,\n}: SingleDataCellProps): ReactNode {\n\tconst [furtherAnalysisConfig, setFurtherAnalysisConfig] =\n\t\tuseState<FurtherAnalysisConfig | null>(null);\n\tconst dataSource = head(dataSources);\n\tconst [stateActionRef, setStateActionRef] = useState(undefined);\n\n\tconst { legendDefinition } = useCellData({\n\t\tdataSource,\n\t\tperiod,\n\t\torgUnit,\n\t});\n\n\tif (!dataSource || !dataSource.data) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{!!furtherAnalysisConfig && (\n\t\t\t\t<FurtherAnalysis\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetFurtherAnalysisConfig(null);\n\t\t\t\t\t}}\n\t\t\t\t\thide={!furtherAnalysisConfig}\n\t\t\t\t\tconfig={furtherAnalysisConfig}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<DataTableCell\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tsetFurtherAnalysisConfig({\n\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: period,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdataSources,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonContextMenu={(e: any) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetStateActionRef(e.target);\n\t\t\t\t}}\n\t\t\t\tbordered\n\t\t\t\tstyle={{\n\t\t\t\t\tbackground: legendDefinition?.color,\n\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\twidth: size,\n\t\t\t\t\tminWidth: 100,\n\t\t\t\t\theight: 48,\n\t\t\t\t\tcolor: legendDefinition\n\t\t\t\t\t\t? getTextColorFromBackgroundColor(\n\t\t\t\t\t\t\t\tlegendDefinition?.color,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{dataSource && <DataValue dataSource={dataSource} />}\n\t\t\t</DataTableCell>\n\n\t\t\t{stateActionRef && (\n\t\t\t\t<FurtherAnalysisMenu\n\t\t\t\t\tdataSources={dataSources}\n\t\t\t\t\tonSelect={setFurtherAnalysisConfig}\n\t\t\t\t\tstateActionRef={stateActionRef}\n\t\t\t\t\tsetStateActionRef={setStateActionRef}\n\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\tperiodId={period}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const SingleDataCell = memo(SingleDataCellComponent);\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/SingleDataCell.tsx"],"names":[],"mappings":";;;;;;;;;;AAqBA,SAAS,uBAAwB,CAAA;AAAA,EAChC,WAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAAmC,EAAA;AAClC,EAAA,MAAM,CAAC,qBAAA,EAAuB,wBAAwB,CAAA,GACrD,SAAuC,IAAI,CAAA;AAC5C,EAAM,MAAA,UAAA,GAAa,KAAK,WAAW,CAAA;AACnC,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,MAAS,CAAA;AAE9D,EAAM,MAAA,EAAE,gBAAiB,EAAA,GAAI,WAAY,CAAA;AAAA,IACxC,UAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,IAAI,CAAC,UAAA,IAAc,CAAC,UAAA,CAAW,IAAM,EAAA;AACpC,IAAO,uBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,QAAA,EAAQ,IAAC,EAAA,CAAA;AAAA;AAGhC,EAAA,uBAEG,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,IAAA,CAAC,CAAC,qBACF,oBAAA,GAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACA,SAAS,MAAM;AACd,UAAA,wBAAA,CAAyB,IAAI,CAAA;AAAA,SAC9B;AAAA,QACA,MAAM,CAAC,qBAAA;AAAA,QACP,MAAQ,EAAA;AAAA;AAAA,KACT;AAAA,oBAED,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACA,OAAA,EAAS,CAAC,KAAU,KAAA;AACnB,UAAA,KAAA,CAAM,eAAgB,EAAA;AACtB,UAAyB,wBAAA,CAAA;AAAA,YACxB,eAAiB,EAAA;AAAA,cAChB,OAAS,EAAA;AAAA,gBACR;AAAA,kBACC,EAAI,EAAA;AAAA;AACL;AACD,aACD;AAAA,YACA,gBAAkB,EAAA;AAAA,cACjB,QAAQ,EAAC;AAAA,cACT,QAAQ,EAAC;AAAA,cACT,QAAU,EAAA;AAAA,gBACT;AAAA,kBACC,IAAI,OAAQ,CAAA;AAAA;AACb;AACD,aACD;AAAA,YACA;AAAA,WACA,CAAA;AAAA,SACF;AAAA,QACA,aAAA,EAAe,CAAC,CAAW,KAAA;AAC1B,UAAA,CAAA,CAAE,cAAe,EAAA;AACjB,UAAA,iBAAA,CAAkB,EAAE,MAAM,CAAA;AAAA,SAC3B;AAAA,QACA,QAAQ,EAAA,IAAA;AAAA,QACR,KAAO,EAAA;AAAA,UACN,YAAY,gBAAkB,EAAA,KAAA;AAAA,UAC9B,SAAW,EAAA,QAAA;AAAA,UACX,KAAO,EAAA,IAAA;AAAA,UACP,QAAU,EAAA,GAAA;AAAA,UACV,MAAQ,EAAA,EAAA;AAAA,UACR,OAAO,gBACJ,GAAA,+BAAA;AAAA,YACA,gBAAkB,EAAA;AAAA,WAElB,GAAA;AAAA,SACJ;AAAA,QAEC,QAAA,EAAA,UAAA,oBAAe,GAAA,CAAA,SAAA,EAAA,EAAU,UAAwB,EAAA;AAAA;AAAA,KACnD;AAAA,IAEC,cACA,oBAAA,GAAA;AAAA,MAAC,mBAAA;AAAA,MAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAU,EAAA,wBAAA;AAAA,QACV,cAAA;AAAA,QACA,iBAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAU,EAAA;AAAA;AAAA;AACX,GAEF,EAAA,CAAA;AAEF;AAEa,MAAA,cAAA,GAAiB,KAAK,uBAAuB","file":"SingleDataCell.js","sourcesContent":["import { type ScorecardCellData } from \"../../../schemas/config\";\nimport { type ItemMeta } from \"../../../hooks/metadata\";\nimport { memo, type ReactNode, useState } from \"react\";\nimport { head } from \"lodash\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { getTextColorFromBackgroundColor } from \"../../../utils/legends\";\nimport { DataValue } from \"./DataValue\";\nimport { useCellData } from \"../../../hooks/cellData\";\nimport { FurtherAnalysisMenu } from \"./FurtherAnalysisMenu\";\nimport {\n\tFurtherAnalysis,\n\ttype FurtherAnalysisConfig,\n} from \"./FurtherAnalysisModal\";\n\nexport interface SingleDataCellProps {\n\tdataSources: ScorecardCellData[];\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n\tsize: number;\n}\n\nfunction SingleDataCellComponent({\n\tdataSources,\n\tperiod,\n\torgUnit,\n\tsize,\n}: SingleDataCellProps): ReactNode {\n\tconst [furtherAnalysisConfig, setFurtherAnalysisConfig] =\n\t\tuseState<FurtherAnalysisConfig | null>(null);\n\tconst dataSource = head(dataSources);\n\tconst [stateActionRef, setStateActionRef] = useState(undefined);\n\n\tconst { legendDefinition } = useCellData({\n\t\tdataSource,\n\t\tperiod,\n\t\torgUnit,\n\t});\n\n\tif (!dataSource || !dataSource.data) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{!!furtherAnalysisConfig && (\n\t\t\t\t<FurtherAnalysis\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetFurtherAnalysisConfig(null);\n\t\t\t\t\t}}\n\t\t\t\t\thide={!furtherAnalysisConfig}\n\t\t\t\t\tconfig={furtherAnalysisConfig}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<DataTableCell\n\t\t\t\tonClick={(event) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tsetFurtherAnalysisConfig({\n\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: period,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdataSources,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonContextMenu={(e: any) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetStateActionRef(e.target);\n\t\t\t\t}}\n\t\t\t\tbordered\n\t\t\t\tstyle={{\n\t\t\t\t\tbackground: legendDefinition?.color,\n\t\t\t\t\ttextAlign: \"center\",\n\t\t\t\t\twidth: size,\n\t\t\t\t\tminWidth: 100,\n\t\t\t\t\theight: 48,\n\t\t\t\t\tcolor: legendDefinition\n\t\t\t\t\t\t? getTextColorFromBackgroundColor(\n\t\t\t\t\t\t\t\tlegendDefinition?.color,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{dataSource && <DataValue dataSource={dataSource} />}\n\t\t\t</DataTableCell>\n\n\t\t\t{stateActionRef && (\n\t\t\t\t<FurtherAnalysisMenu\n\t\t\t\t\tdataSources={dataSources}\n\t\t\t\t\tonSelect={setFurtherAnalysisConfig}\n\t\t\t\t\tstateActionRef={stateActionRef}\n\t\t\t\t\tsetStateActionRef={setStateActionRef}\n\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\tperiodId={period}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const SingleDataCell = memo(SingleDataCellComponent);\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/TableBody.tsx"],"names":["TableBody"],"mappings":";;;;;;;AAMa,MAAA,SAAA,GAAY,IAAK,CAAA,SAASA,UAAU,CAAA;AAAA,EAChD,QAAA;AACD,CAEG,EAAA;AACF,EAAA,MAAM,QAAQ,aAAc,EAAA,CAAA;AAC5B,EAAA,MAAM,UAAU,oBAAqB,EAAA,CAAA;AAErC,EAAA,MAAM,IAAO,GAAA,OAAA;AAAA,IACZ,MAAM,KAAM,CAAA,WAAA,EAAc,CAAA,IAAA;AAAA,IAC1B,CAAC,KAAA,CAAM,WAAY,EAAA,CAAE,IAAI,CAAA;AAAA,GAC1B,CAAA;AAEA,EAAA,uBAEE,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OACA,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,gBAAiB,EAAA,EAAA,QAAA,EAAoB,CACvC,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,aAAA,EAAA,EAAc,OACb,EAAA,QAAA,EAAA,IAAA,CAAK,GAAI,CAAA,CAAC,GACV,qBAAA,GAAA,CAAC,QAAsB,EAAA,EAAA,GAAA,EAAA,EAAR,GAAI,CAAA,EAAc,CACjC,CACF,EAAA,CAAA;AAAA,GACD,EAAA,CAAA,CAAA;AAEF,CAAC","file":"TableBody.js","sourcesContent":["import { DataTableBody } from \"@dhis2/ui\";\nimport { useTableLoadingState, useTableState } from \"../../TableStateProvider\";\nimport { TableRow } from \"./DataRow\";\nimport { memo, type RefObject, useMemo } from \"react\";\nimport { LoadingIndicator } from \"../../LoadingIndicator\";\n\nexport const TableBody = memo(function TableBody({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst table = useTableState();\n\tconst loading = useTableLoadingState();\n\n\tconst rows = useMemo(\n\t\t() => table.getRowModel().rows,\n\t\t[table.getRowModel().rows],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<thead>\n\t\t\t\t<LoadingIndicator tableRef={tableRef} />\n\t\t\t</thead>\n\t\t\t<DataTableBody loading={loading}>\n\t\t\t\t{rows.map((row) => (\n\t\t\t\t\t<TableRow key={row.id} row={row} />\n\t\t\t\t))}\n\t\t\t</DataTableBody>\n\t\t</>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/TableBody.tsx"],"names":["TableBody"],"mappings":";;;;;;;AAMa,MAAA,SAAA,GAAY,IAAK,CAAA,SAASA,UAAU,CAAA;AAAA,EAChD;AACD,CAEG,EAAA;AACF,EAAA,MAAM,QAAQ,aAAc,EAAA;AAC5B,EAAA,MAAM,UAAU,oBAAqB,EAAA;AAErC,EAAA,MAAM,IAAO,GAAA,OAAA;AAAA,IACZ,MAAM,KAAM,CAAA,WAAA,EAAc,CAAA,IAAA;AAAA,IAC1B,CAAC,KAAA,CAAM,WAAY,EAAA,CAAE,IAAI;AAAA,GAC1B;AAEA,EAAA,uBAEE,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OACA,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,gBAAiB,EAAA,EAAA,QAAA,EAAoB,CACvC,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,aAAA,EAAA,EAAc,OACb,EAAA,QAAA,EAAA,IAAA,CAAK,GAAI,CAAA,CAAC,GACV,qBAAA,GAAA,CAAC,QAAsB,EAAA,EAAA,GAAA,EAAA,EAAR,GAAI,CAAA,EAAc,CACjC,CACF,EAAA;AAAA,GACD,EAAA,CAAA;AAEF,CAAC","file":"TableBody.js","sourcesContent":["import { DataTableBody } from \"@dhis2/ui\";\nimport { useTableLoadingState, useTableState } from \"../../TableStateProvider\";\nimport { TableRow } from \"./DataRow\";\nimport { memo, type RefObject, useMemo } from \"react\";\nimport { LoadingIndicator } from \"../../LoadingIndicator\";\n\nexport const TableBody = memo(function TableBody({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst table = useTableState();\n\tconst loading = useTableLoadingState();\n\n\tconst rows = useMemo(\n\t\t() => table.getRowModel().rows,\n\t\t[table.getRowModel().rows],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<thead>\n\t\t\t\t<LoadingIndicator tableRef={tableRef} />\n\t\t\t</thead>\n\t\t\t<DataTableBody loading={loading}>\n\t\t\t\t{rows.map((row) => (\n\t\t\t\t\t<TableRow key={row.id} row={row} />\n\t\t\t\t))}\n\t\t\t</DataTableBody>\n\t\t</>\n\t);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/TableFoot.tsx"],"names":[],"mappings":";;;;;;;AAMO,SAAS,SAAY,GAAA;AAC3B,EAAA,MAAM,QAAQ,aAAc,EAAA,CAAA;AAC5B,EAAA,MAAM,iBAAiB,8BAAwC,CAAA;AAAA,IAC9D,SAAA;AAAA,IACA,YAAA;AAAA,GACA,CAAA,CAAA;AAED,EAAA,IAAI,CAAC,cAAgB,EAAA;AACpB,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAEA,EAAA,2BACE,aACC,EAAA,EAAA,QAAA,EAAA,KAAA,CAAM,iBAAkB,CAAA,GAAA,CAAI,CAAC,WAAgB,KAAA;AAC7C,IAAA,2BACE,YACC,EAAA,EAAA,QAAA,EAAA,WAAA,CAAY,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACpC,MAAA,OAAO,MAAO,CAAA,aAAA,GAAgB,IAC7B,mBAAA,GAAA,CAAC,QACC,EAAA,EAAA,QAAA,EAAA,UAAA;AAAA,QACA,MAAA,CAAO,OAAO,SAAU,CAAA,MAAA;AAAA,QACxB,OAAO,UAAW,EAAA;AAAA,OACnB,EAAA,EAJc,OAAO,EAKtB,CAAA,CAAA;AAAA,KAED,CAViB,EAAA,EAAA,WAAA,CAAY,EAW/B,CAAA,CAAA;AAAA,GAED,CACF,EAAA,CAAA,CAAA;AAEF","file":"TableFoot.js","sourcesContent":["import { DataTableFoot, DataTableRow } from \"@dhis2/ui\";\nimport { useTableState } from \"../../TableStateProvider\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { Fragment } from \"react\";\nimport { useScorecardStateSelectorValue } from \"../../../state\";\n\nexport function TableFoot() {\n\tconst table = useTableState();\n\tconst showAverageRow = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"averageRow\",\n\t]);\n\n\tif (!showAverageRow) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataTableFoot>\n\t\t\t{table.getFooterGroups().map((footerGroup) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DataTableRow key={footerGroup.id}>\n\t\t\t\t\t\t{footerGroup.headers.map((footer) => {\n\t\t\t\t\t\t\treturn footer.isPlaceholder ? null : (\n\t\t\t\t\t\t\t\t<Fragment key={footer.id}>\n\t\t\t\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\t\t\t\tfooter.column.columnDef.footer,\n\t\t\t\t\t\t\t\t\t\tfooter.getContext(),\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</DataTableRow>\n\t\t\t\t);\n\t\t\t})}\n\t\t</DataTableFoot>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/TableFoot.tsx"],"names":[],"mappings":";;;;;;;AAMO,SAAS,SAAY,GAAA;AAC3B,EAAA,MAAM,QAAQ,aAAc,EAAA;AAC5B,EAAA,MAAM,iBAAiB,8BAAwC,CAAA;AAAA,IAC9D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,IAAI,CAAC,cAAgB,EAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,2BACE,aACC,EAAA,EAAA,QAAA,EAAA,KAAA,CAAM,iBAAkB,CAAA,GAAA,CAAI,CAAC,WAAgB,KAAA;AAC7C,IAAA,2BACE,YACC,EAAA,EAAA,QAAA,EAAA,WAAA,CAAY,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AACpC,MAAA,OAAO,MAAO,CAAA,aAAA,GAAgB,IAC7B,mBAAA,GAAA,CAAC,QACC,EAAA,EAAA,QAAA,EAAA,UAAA;AAAA,QACA,MAAA,CAAO,OAAO,SAAU,CAAA,MAAA;AAAA,QACxB,OAAO,UAAW;AAAA,OACnB,EAAA,EAJc,OAAO,EAKtB,CAAA;AAAA,KAED,CAViB,EAAA,EAAA,WAAA,CAAY,EAW/B,CAAA;AAAA,GAED,CACF,EAAA,CAAA;AAEF","file":"TableFoot.js","sourcesContent":["import { DataTableFoot, DataTableRow } from \"@dhis2/ui\";\nimport { useTableState } from \"../../TableStateProvider\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { Fragment } from \"react\";\nimport { useScorecardStateSelectorValue } from \"../../../state\";\n\nexport function TableFoot() {\n\tconst table = useTableState();\n\tconst showAverageRow = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"averageRow\",\n\t]);\n\n\tif (!showAverageRow) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataTableFoot>\n\t\t\t{table.getFooterGroups().map((footerGroup) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DataTableRow key={footerGroup.id}>\n\t\t\t\t\t\t{footerGroup.headers.map((footer) => {\n\t\t\t\t\t\t\treturn footer.isPlaceholder ? null : (\n\t\t\t\t\t\t\t\t<Fragment key={footer.id}>\n\t\t\t\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\t\t\t\tfooter.column.columnDef.footer,\n\t\t\t\t\t\t\t\t\t\tfooter.getContext(),\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</DataTableRow>\n\t\t\t\t);\n\t\t\t})}\n\t\t</DataTableFoot>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/ScorecardTable/components/TableHeader/TableHeader.tsx"],"names":[],"mappings":";;;;;;;AAMa,MAAA,WAAA,GAAc,IAAK,CAAA,SAAS,oBAAuB,GAAA;AAC/D,EAAA,MAAM,QAAQ,aAAc,EAAA,CAAA;AAE5B,EACC,uBAAA,GAAA,CAAC,iBAAc,SAAW,EAAA,MAAA,CAAO,eAAe,CAC9C,EAAA,QAAA,EAAA,KAAA,CAAM,iBAAkB,CAAA,GAAA,CAAI,CAAC,WAC7B,qBAAA,GAAA,CAAC,gBACC,QAAY,EAAA,WAAA,CAAA,OAAA,CAAQ,IAAI,CAAC,MAAA,yBACxB,QACC,EAAA,EAAA,QAAA,EAAA,UAAA;AAAA,IACA,MAAA,CAAO,OAAO,SAAU,CAAA,MAAA;AAAA,IACxB,OAAO,UAAW,EAAA;AAAA,GACnB,EAAA,EAJc,CAAG,EAAA,MAAA,CAAO,EAAE,CAAA,SAAA,CAK3B,CACA,CARiB,EAAA,EAAA,WAAA,CAAY,EAS/B,CACA,CACF,EAAA,CAAA,CAAA;AAEF,CAAC","file":"TableHeader.js","sourcesContent":["import { useTableState } from \"../../../TableStateProvider\";\nimport { DataTableHead, DataTableRow } from \"@dhis2/ui\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { Fragment, memo } from \"react\";\nimport styles from \"./TableHeader.module.css\";\n\nexport const TableHeader = memo(function TableHeaderComponent() {\n\tconst table = useTableState();\n\n\treturn (\n\t\t<DataTableHead className={styles[\"sticky-header\"]}>\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"]}
1
+ {"version":3,"sources":["../../../../../../src/components/ScorecardTable/components/TableHeader/TableHeader.tsx"],"names":[],"mappings":";;;;;;;AAMa,MAAA,WAAA,GAAc,IAAK,CAAA,SAAS,oBAAuB,GAAA;AAC/D,EAAA,MAAM,QAAQ,aAAc,EAAA;AAE5B,EACC,uBAAA,GAAA,CAAC,iBAAc,SAAW,EAAA,MAAA,CAAO,eAAe,CAC9C,EAAA,QAAA,EAAA,KAAA,CAAM,iBAAkB,CAAA,GAAA,CAAI,CAAC,WAC7B,qBAAA,GAAA,CAAC,gBACC,QAAY,EAAA,WAAA,CAAA,OAAA,CAAQ,IAAI,CAAC,MAAA,yBACxB,QACC,EAAA,EAAA,QAAA,EAAA,UAAA;AAAA,IACA,MAAA,CAAO,OAAO,SAAU,CAAA,MAAA;AAAA,IACxB,OAAO,UAAW;AAAA,GACnB,EAAA,EAJc,CAAG,EAAA,MAAA,CAAO,EAAE,CAAA,SAAA,CAK3B,CACA,CARiB,EAAA,EAAA,WAAA,CAAY,EAS/B,CACA,CACF,EAAA,CAAA;AAEF,CAAC","file":"TableHeader.js","sourcesContent":["import { useTableState } from \"../../../TableStateProvider\";\nimport { DataTableHead, DataTableRow } from \"@dhis2/ui\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { Fragment, memo } from \"react\";\nimport styles from \"./TableHeader.module.css\";\n\nexport const TableHeader = memo(function TableHeaderComponent() {\n\tconst table = useTableState();\n\n\treturn (\n\t\t<DataTableHead className={styles[\"sticky-header\"]}>\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"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.tsx"],"names":[],"mappings":";;;;;;AAOO,SAAS,iBAAkB,CAAA;AAAA,EACjC,MAAA;AACD,CAA2C,EAAA;AAC1C,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA,gBAAA;AAAA,GACA,CAAA,CAAA;AACD,EAAA,MAAM,eAAe,8BAAwC,CAAA;AAAA,IAC5D,cAAA;AAAA,GACA,CAAA,CAAA;AACD,EAAA,MAAM,UAAU,UACb,GAAA,YAAA,GACC,GACA,GAAA,GAAA,GACD,eACC,GACA,GAAA,GAAA,CAAA;AAEJ,EACC,uBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MAEA,KAAM,EAAA,OAAA;AAAA,MACN,OAAA,EAAS,MAAO,CAAA,OAAA,CAAQ,QAAS,EAAA;AAAA,MACjC,OAAA;AAAA,MACA,WAAW,MAAO,CAAA,UAAA;AAAA,MAElB,QAAC,kBAAA,GAAA,CAAA,GAAA,EAAA,EAAG,QAAK,EAAA,IAAA,CAAA,CAAA,CAAE,SAAS,CAAE,EAAA,CAAA;AAAA,KAAA;AAAA,IANjB,MAAO,CAAA,EAAA;AAAA,GAOb,CAAA;AAEF","file":"AverageHeaderCell.js","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 { useScorecardStateSelectorValue } from \"../../../../../state\";\n\nexport function AverageHeaderCell({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst dataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst hasOnePeriod = useScorecardStateSelectorValue<boolean>([\n\t\t\"hasOnePeriod\",\n\t]);\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"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.tsx"],"names":[],"mappings":";;;;;;AAOO,SAAS,iBAAkB,CAAA;AAAA,EACjC;AACD,CAA2C,EAAA;AAC1C,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAA,MAAM,eAAe,8BAAwC,CAAA;AAAA,IAC5D;AAAA,GACA,CAAA;AACD,EAAA,MAAM,UAAU,UACb,GAAA,YAAA,GACC,GACA,GAAA,GAAA,GACD,eACC,GACA,GAAA,GAAA;AAEJ,EACC,uBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MAEA,KAAM,EAAA,OAAA;AAAA,MACN,OAAA,EAAS,MAAO,CAAA,OAAA,CAAQ,QAAS,EAAA;AAAA,MACjC,OAAA;AAAA,MACA,WAAW,MAAO,CAAA,UAAA;AAAA,MAElB,QAAC,kBAAA,GAAA,CAAA,GAAA,EAAA,EAAG,QAAK,EAAA,IAAA,CAAA,CAAA,CAAE,SAAS,CAAE,EAAA;AAAA,KAAA;AAAA,IANjB,MAAO,CAAA;AAAA,GAOb;AAEF","file":"AverageHeaderCell.js","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 { useScorecardStateSelectorValue } from \"../../../../../state\";\n\nexport function AverageHeaderCell({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst dataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst hasOnePeriod = useScorecardStateSelectorValue<boolean>([\n\t\t\"hasOnePeriod\",\n\t]);\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"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":[],"mappings":";;;;;;;;AAWO,SAAS,mBAAoB,CAAA;AAAA,EACnC,MAAA;AACD,CAA2C,EAAA;AAC1C,EAAM,MAAA,OAAA,GAAU,MAAO,CAAA,OAAA,CAAQ,QAAS,EAAA,CAAA;AACxC,EAAO,uBAAA,GAAA,CAAC,yBAAsB,OAAkB,EAAA,CAAA,CAAA;AACjD,CAAA;AAEO,SAAS,uBAAwB,CAAA;AAAA,EACvC,MAAA;AAAA,EACA,MAAA;AACD,CAA2C,EAAA;AAC1C,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA,gBAAA;AAAA,GACA,CAAA,CAAA;AACD,EAAM,MAAA,KAAA,GACJ,OAAO,MAAO,CAAA,SAAA,CAAU,KAA2B,KACnD,IAAA,MAAA,CAAO,UAAU,IAA2B,CAAA,KAAA,CAAA;AAE9C,EAAM,MAAA,IAAA,GACJ,OAAO,MAAO,CAAA,SAAA,CAAU,KAA4B,IACpD,IAAA,MAAA,CAAO,UAAU,IAA4B,CAAA,IAAA,CAAA;AAE/C,EAAM,MAAA,OAAA,GAAU,MAAO,CAAA,OAAA,CAAQ,QAAS,EAAA,CAAA;AAExC,EAAA,MAAM,gBAAgB,CAAC,MAAA,EAAQ,aAC5B,GAAA,SAAA,GACC,OAAQ,WAAY,EAAA,CAAA;AACxB,EAAA,MAAM,eACL,MAAQ,EAAA,mBAAA,OAA0B,KAC/B,GAAA,IAAA,CAAK,EAAE,oBAAoB,CAAA,GAC3B,QAAQ,mBAAoB,EAAA,KAAM,SACjC,IAAK,CAAA,CAAA,CAAE,qBAAqB,CAC5B,GAAA,IAAA,CAAK,EAAE,SAAS,CAAA,CAAA;AAErB,EACC,uBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MAEA,eAAe,IAAK,CAAA,CAAA,CAAE,uBAAyB,EAAA,EAAE,cAAc,CAAA;AAAA,MAC/D,eAAA,EACC,MAAO,CAAA,MAAA,EAAQ,UAAW,EAAA,IAAK,OAAO,UAAW,EAAA,GAC9C,CAAC,CAAA,EAAG,CAAM,KAAA;AACV,QAAM,MAAA,IAAA,GAAO,OAAQ,uBAAwB,EAAA,CAAA;AAC7C,QAAA,IAAI,IAAM,EAAA;AACT,UAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAAA,SACP;AAAA,OAEA,GAAA,KAAA,CAAA;AAAA,MAEJ,aAAA,EACC,OAAO,MAAQ,EAAA,UAAA,MAAgB,MAAO,CAAA,UAAA,KACnC,aACA,GAAA,KAAA,CAAA;AAAA,MAEJ,KAAM,EAAA,QAAA;AAAA,MACN,OAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACA,MAAA,EACC,aACG,CAAC,uBAAA,CAAwB,IAAI,CAC7B,GAAA,CAAC,wBAAwB,EAAE,CAAA;AAAA,UAG/B,QAAA,kBAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACA,EAAI,EAAA,KAAA;AAAA,cACJ,IACC,EAAA,UAAA,GACG,uBAAwB,CAAA,EAAA,GACxB,uBAAwB,CAAA,IAAA;AAAA,cAG3B,QAAO,EAAA,IAAA,mBAAA,GAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA,KAAA,EAAM,CAAO,GAAA,KAAA;AAAA,aAAA;AAAA,WAC1B;AAAA,SAAA;AAAA,OACD;AAAA,KAAA;AAAA,IArCK,GAAG,KAAK,CAAA,CAAA;AAAA,GAsCd,CAAA;AAEF,CAAA;AAEO,MAAM,cAAiB,GAAA","file":"DataHeaderCell.js","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 { useScorecardStateSelectorValue } from \"../../../../../state\";\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 = useScorecardStateSelectorValue<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\tid={label}\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/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":[],"mappings":";;;;;;;;AAWO,SAAS,mBAAoB,CAAA;AAAA,EACnC;AACD,CAA2C,EAAA;AAC1C,EAAM,MAAA,OAAA,GAAU,MAAO,CAAA,OAAA,CAAQ,QAAS,EAAA;AACxC,EAAO,uBAAA,GAAA,CAAC,yBAAsB,OAAkB,EAAA,CAAA;AACjD;AAEO,SAAS,uBAAwB,CAAA;AAAA,EACvC,MAAA;AAAA,EACA;AACD,CAA2C,EAAA;AAC1C,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAM,MAAA,KAAA,GACJ,OAAO,MAAO,CAAA,SAAA,CAAU,KAA2B,KACnD,IAAA,MAAA,CAAO,UAAU,IAA2B,CAAA,KAAA;AAE9C,EAAM,MAAA,IAAA,GACJ,OAAO,MAAO,CAAA,SAAA,CAAU,KAA4B,IACpD,IAAA,MAAA,CAAO,UAAU,IAA4B,CAAA,IAAA;AAE/C,EAAM,MAAA,OAAA,GAAU,MAAO,CAAA,OAAA,CAAQ,QAAS,EAAA;AAExC,EAAA,MAAM,gBAAgB,CAAC,MAAA,EAAQ,aAC5B,GAAA,SAAA,GACC,OAAQ,WAAY,EAAA;AACxB,EAAA,MAAM,eACL,MAAQ,EAAA,mBAAA,OAA0B,KAC/B,GAAA,IAAA,CAAK,EAAE,oBAAoB,CAAA,GAC3B,QAAQ,mBAAoB,EAAA,KAAM,SACjC,IAAK,CAAA,CAAA,CAAE,qBAAqB,CAC5B,GAAA,IAAA,CAAK,EAAE,SAAS,CAAA;AAErB,EACC,uBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MAEA,eAAe,IAAK,CAAA,CAAA,CAAE,uBAAyB,EAAA,EAAE,cAAc,CAAA;AAAA,MAC/D,eAAA,EACC,MAAO,CAAA,MAAA,EAAQ,UAAW,EAAA,IAAK,OAAO,UAAW,EAAA,GAC9C,CAAC,CAAA,EAAG,CAAM,KAAA;AACV,QAAM,MAAA,IAAA,GAAO,OAAQ,uBAAwB,EAAA;AAC7C,QAAA,IAAI,IAAM,EAAA;AACT,UAAA,IAAA,CAAK,CAAC,CAAA;AAAA;AACP,OAEA,GAAA,MAAA;AAAA,MAEJ,aAAA,EACC,OAAO,MAAQ,EAAA,UAAA,MAAgB,MAAO,CAAA,UAAA,KACnC,aACA,GAAA,MAAA;AAAA,MAEJ,KAAM,EAAA,QAAA;AAAA,MACN,OAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACA,MAAA,EACC,aACG,CAAC,uBAAA,CAAwB,IAAI,CAC7B,GAAA,CAAC,wBAAwB,EAAE,CAAA;AAAA,UAG/B,QAAA,kBAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACA,EAAI,EAAA,KAAA;AAAA,cACJ,IACC,EAAA,UAAA,GACG,uBAAwB,CAAA,EAAA,GACxB,uBAAwB,CAAA,IAAA;AAAA,cAG3B,QAAO,EAAA,IAAA,mBAAA,GAAA,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA,KAAA,EAAM,CAAO,GAAA;AAAA;AAAA;AAC1B;AAAA;AACD,KAAA;AAAA,IArCK,GAAG,KAAK,CAAA;AAAA,GAsCd;AAEF;AAEO,MAAM,cAAiB,GAAA","file":"DataHeaderCell.js","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 { useScorecardStateSelectorValue } from \"../../../../../state\";\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 = useScorecardStateSelectorValue<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\tid={label}\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 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/ExpandCell.tsx"],"names":[],"mappings":";;;AAIO,SAAS,WAAW,KAAiD,EAAA;AAC3E,EAAM,MAAA,IAAA,GAAO,MAAM,QAAS,EAAA,CAAA;AAC5B,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,OAAQ,EAAA,CAAA;AAEvC,EAAA,IAAI,CAAC,IAAM,EAAA;AACV,IACC,uBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACA,KAAA,EAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,QACd,KAAO,EAAA,EAAE,KAAO,EAAA,IAAA,EAAM,UAAU,IAAK,EAAA;AAAA,QAErC,KAAK,EAAA,IAAA;AAAA,QAGL,IAAK,EAAA,GAAA;AAAA,OAAA;AAAA,MAJA,MAAM,IAAK,CAAA,EAAA;AAAA,KAKjB,CAAA;AAAA,GAEF;AAEA,EAAO,OAAA,IAAA,CAAA;AACR","file":"ExpandCell.js","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\n\nexport function ExpandCell(props: CellContext<ScorecardTableData, boolean>) {\n\tconst data = props.getValue();\n\tconst size = props.cell.column.getSize();\n\n\tif (!data) {\n\t\treturn (\n\t\t\t<DataTableCell\n\t\t\t\twidth={`${size}px`}\n\t\t\t\tstyle={{ width: size, minWidth: size }}\n\t\t\t\tkey={props.cell.id}\n\t\t\t\tfixed\n\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\tleft=\"0\"\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/ExpandCell.tsx"],"names":[],"mappings":";;;AAIO,SAAS,WAAW,KAAiD,EAAA;AAC3E,EAAM,MAAA,IAAA,GAAO,MAAM,QAAS,EAAA;AAC5B,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,OAAQ,EAAA;AAEvC,EAAA,IAAI,CAAC,IAAM,EAAA;AACV,IACC,uBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACA,KAAA,EAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,QACd,KAAO,EAAA,EAAE,KAAO,EAAA,IAAA,EAAM,UAAU,IAAK,EAAA;AAAA,QAErC,KAAK,EAAA,IAAA;AAAA,QAGL,IAAK,EAAA;AAAA,OAAA;AAAA,MAJA,MAAM,IAAK,CAAA;AAAA,KAKjB;AAAA;AAIF,EAAO,OAAA,IAAA;AACR","file":"ExpandCell.js","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\n\nexport function ExpandCell(props: CellContext<ScorecardTableData, boolean>) {\n\tconst data = props.getValue();\n\tconst size = props.cell.column.getSize();\n\n\tif (!data) {\n\t\treturn (\n\t\t\t<DataTableCell\n\t\t\t\twidth={`${size}px`}\n\t\t\t\tstyle={{ width: size, minWidth: size }}\n\t\t\t\tkey={props.cell.id}\n\t\t\t\tfixed\n\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\tleft=\"0\"\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/FilterArea.tsx"],"names":[],"mappings":";;;;;;;AAYO,SAAS,UAAA,CAAW,EAAE,MAAA,EAA2B,EAAA;AACvD,EAAM,MAAA,YAAA,GAAe,OAAO,cAAe,EAAA,CAAA;AAC3C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA6B,YAAY,CAAA,CAAA;AACjE,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA,gBAAA;AAAA,GACA,CAAA,CAAA;AACD,EAAM,MAAA,iBAAA,GAAoB,aACvB,IAAK,CAAA,CAAA,CAAE,mBAAmB,CAC1B,GAAA,IAAA,CAAK,EAAE,2BAA2B,CAAA,CAAA;AAErC,EAAA,SAAA,CAAU,MAAM;AACf,IAAM,MAAA,OAAA,GAAU,WAAW,MAAM;AAChC,MAAA,MAAA,CAAO,eAAe,IAAI,CAAA,CAAA;AAAA,OACxB,GAAG,CAAA,CAAA;AAEN,IAAO,OAAA,MAAM,aAAa,OAAO,CAAA,CAAA;AAAA,GAClC,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAET,EACC,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,OAAO,cAAc,CAAA;AAAA,MAChC,KAAO,EAAA,IAAA;AAAA,MACP,UAAU,CAAC,EAAE,KAAM,EAAA,KAAM,QAAQ,KAAK,CAAA;AAAA,MACtC,WAAa,EAAA,iBAAA;AAAA,KAAA;AAAA,GACd,CAAA;AAEF","file":"FilterArea.js","sourcesContent":["import type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport type { Column } from \"@tanstack/react-table\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelectorValue } from \"../../../../../state\";\nimport { InputField } from \"@dhis2/ui\";\nimport styles from \"../TableHeader.module.css\";\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 = useScorecardStateSelectorValue<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\tclassName={styles[\"filter-input\"]}\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/ScorecardTable/components/TableHeader/components/FilterArea.tsx"],"names":[],"mappings":";;;;;;;AAYO,SAAS,UAAA,CAAW,EAAE,MAAA,EAA2B,EAAA;AACvD,EAAM,MAAA,YAAA,GAAe,OAAO,cAAe,EAAA;AAC3C,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA6B,YAAY,CAAA;AACjE,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAM,MAAA,iBAAA,GAAoB,aACvB,IAAK,CAAA,CAAA,CAAE,mBAAmB,CAC1B,GAAA,IAAA,CAAK,EAAE,2BAA2B,CAAA;AAErC,EAAA,SAAA,CAAU,MAAM;AACf,IAAM,MAAA,OAAA,GAAU,WAAW,MAAM;AAChC,MAAA,MAAA,CAAO,eAAe,IAAI,CAAA;AAAA,OACxB,GAAG,CAAA;AAEN,IAAO,OAAA,MAAM,aAAa,OAAO,CAAA;AAAA,GAClC,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EACC,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,OAAO,cAAc,CAAA;AAAA,MAChC,KAAO,EAAA,IAAA;AAAA,MACP,UAAU,CAAC,EAAE,KAAM,EAAA,KAAM,QAAQ,KAAK,CAAA;AAAA,MACtC,WAAa,EAAA;AAAA;AAAA,GACd;AAEF","file":"FilterArea.js","sourcesContent":["import type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport type { Column } from \"@tanstack/react-table\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelectorValue } from \"../../../../../state\";\nimport { InputField } from \"@dhis2/ui\";\nimport styles from \"../TableHeader.module.css\";\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 = useScorecardStateSelectorValue<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\tclassName={styles[\"filter-input\"]}\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 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/LabelCell.tsx"],"names":[],"mappings":";;;;;;;;;AAYO,SAAS,mBACf,KAOC,EAAA;AACD,EAAM,MAAA,IAAA,GAAO,MAAM,QAAS,EAAA,CAAA;AAC5B,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,OAAQ,EAAA,CAAA;AACvC,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA,gBAAA;AAAA,GACA,CAAA,CAAA;AACD,EAAA,MAAM,gBAAgB,8BAAwC,CAAA;AAAA,IAC7D,SAAA;AAAA,IACA,eAAA;AAAA,GACA,CAAA,CAAA;AAED,EAAA,MAAM,cAAc,8BAAwC,CAAA;AAAA,IAC3D,SAAA;AAAA,IACA,WAAA;AAAA,GACA,CAAA,CAAA;AAED,EAAM,MAAA,IAAA,GAAO,QAAQ,MAAM;AAC1B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,GAClB,CAAA,eAAA,EACA,CAAA,SAAA,CAAU,CAAC,EAAE,EAAG,EAAA,KAAM,KAAM,CAAA,IAAA,CAAK,OAAO,EAAE,CAAA,CAAA;AAC5C,IAAA,OAAO,KAAQ,GAAA,EAAA,CAAA;AAAA,GAChB,EAAG,CAAC,KAAM,CAAA,GAAA,CAAI,iBAAmB,EAAA,KAAA,CAAM,IAAK,CAAA,EAAE,CAAC,CAAA,CAAA;AAE/C,EAAM,MAAA,KAAA,GAAQ,QAAQ,MAAM;AAC3B,IAAA,IAAI,UAAY,EAAA;AACf,MAAA,OAAO,KAAK,KAAS,IAAA,EAAA,CAAA;AAAA,KACtB;AACA,IAAA,IAAI,aAAe,EAAA;AAClB,MAAA,OACC,KAAK,OAAS,EAAA,SAAA,CACZ,KAAM,CAAA,GAAG,EACT,MAAO,CAAA,CAAC,GAAQ,KAAA,CAAC,QAAQ,GAAG,CAAC,CAC7B,CAAA,IAAA,CAAK,KAAK,CAAK,IAAA,EAAA,CAAA;AAAA,KAEnB;AACA,IAAA,OAAO,KAAK,KAAS,IAAA,EAAA,CAAA;AAAA,GACnB,EAAA,CAAC,IAAM,EAAA,aAAA,EAAe,UAAU,CAAC,CAAA,CAAA;AAEpC,EACC,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACA,SAAU,EAAA,YAAA;AAAA,MACV,KAAK,EAAA,IAAA;AAAA,MACL,KAAA,EAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MACd,KAAO,EAAA;AAAA,QACN,KAAA,EAAO,cAAc,MAAS,GAAA,IAAA;AAAA,QAC9B,QAAA,EAAU,cAAc,KAAY,CAAA,GAAA,IAAA;AAAA,OACrC;AAAA,MAGA,IAAA,EAAM,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MACb,QAAQ,EAAA,IAAA;AAAA,MACR,KAAM,EAAA,MAAA;AAAA,MAEN,QAAA,kBAAA,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACA,MAAA,EACC,aACG,CAAC,uBAAA,CAAwB,EAAE,CAC3B,GAAA,CAAC,wBAAwB,IAAI,CAAA;AAAA,UAGjC,QAAA,kBAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACA,EAAI,EAAA,KAAA;AAAA,cACJ,IACC,EAAA,UAAA,GACG,uBAAwB,CAAA,IAAA,GACxB,uBAAwB,CAAA,EAAA;AAAA,cAG3B,QAAA,EAAA,KAAA;AAAA,aAAA;AAAA,WACF;AAAA,SAAA;AAAA,OACD;AAAA,KAAA;AAAA,GACD,CAAA;AAEF,CAAA;AAEO,MAAM,SAAY,GAAA","file":"LabelCell.js","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 { useScorecardStateSelectorValue } from \"../../../../../state\";\nimport { useMemo } from \"react\";\nimport { isEmpty } from \"lodash\";\n\nexport function LabelCellComponent(\n\tprops: CellContext<\n\t\tScorecardTableData,\n\t\t{\n\t\t\tlabel: string;\n\t\t\torgUnit?: { uid: string; hierarchy: string; name: string };\n\t\t}\n\t>,\n) {\n\tconst data = props.getValue();\n\tconst size = props.cell.column.getSize();\n\tconst dataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst showHierarchy = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showHierarchy\",\n\t]);\n\n\tconst inPrintMode = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"printMode\",\n\t]);\n\n\tconst left = useMemo(() => {\n\t\tconst index = props.row\n\t\t\t.getVisibleCells()\n\t\t\t.findIndex(({ id }) => props.cell.id === id);\n\t\treturn index * 48;\n\t}, [props.row.getVisibleCells(), props.cell.id]);\n\n\tconst label = useMemo(() => {\n\t\tif (dataInRows) {\n\t\t\treturn data.label ?? \"\";\n\t\t}\n\t\tif (showHierarchy) {\n\t\t\treturn (\n\t\t\t\tdata.orgUnit?.hierarchy\n\t\t\t\t\t.split(\"/\")\n\t\t\t\t\t.filter((val) => !isEmpty(val))\n\t\t\t\t\t.join(\" / \") ?? \"\"\n\t\t\t);\n\t\t}\n\t\treturn data.label ?? \"\";\n\t}, [data, showHierarchy, dataInRows]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tclassName=\"label-cell\"\n\t\t\tfixed\n\t\t\twidth={`${size}px`}\n\t\t\tstyle={{\n\t\t\t\twidth: inPrintMode ? \"auto\" : size,\n\t\t\t\tminWidth: inPrintMode ? undefined : size,\n\t\t\t}}\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft={`${left}px`}\n\t\t\tbordered\n\t\t\talign=\"left\"\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\tid={label}\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{label}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableCell>\n\t);\n}\n\nexport const LabelCell = LabelCellComponent;\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/LabelCell.tsx"],"names":[],"mappings":";;;;;;;;;AAYO,SAAS,mBACf,KAOC,EAAA;AACD,EAAM,MAAA,IAAA,GAAO,MAAM,QAAS,EAAA;AAC5B,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,OAAQ,EAAA;AACvC,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAA,MAAM,gBAAgB,8BAAwC,CAAA;AAAA,IAC7D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,MAAM,cAAc,8BAAwC,CAAA;AAAA,IAC3D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAM,MAAA,IAAA,GAAO,QAAQ,MAAM;AAC1B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,GAClB,CAAA,eAAA,EACA,CAAA,SAAA,CAAU,CAAC,EAAE,EAAG,EAAA,KAAM,KAAM,CAAA,IAAA,CAAK,OAAO,EAAE,CAAA;AAC5C,IAAA,OAAO,KAAQ,GAAA,EAAA;AAAA,GAChB,EAAG,CAAC,KAAM,CAAA,GAAA,CAAI,iBAAmB,EAAA,KAAA,CAAM,IAAK,CAAA,EAAE,CAAC,CAAA;AAE/C,EAAM,MAAA,KAAA,GAAQ,QAAQ,MAAM;AAC3B,IAAA,IAAI,UAAY,EAAA;AACf,MAAA,OAAO,KAAK,KAAS,IAAA,EAAA;AAAA;AAEtB,IAAA,IAAI,aAAe,EAAA;AAClB,MAAA,OACC,KAAK,OAAS,EAAA,SAAA,CACZ,KAAM,CAAA,GAAG,EACT,MAAO,CAAA,CAAC,GAAQ,KAAA,CAAC,QAAQ,GAAG,CAAC,CAC7B,CAAA,IAAA,CAAK,KAAK,CAAK,IAAA,EAAA;AAAA;AAGnB,IAAA,OAAO,KAAK,KAAS,IAAA,EAAA;AAAA,GACnB,EAAA,CAAC,IAAM,EAAA,aAAA,EAAe,UAAU,CAAC,CAAA;AAEpC,EACC,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACA,SAAU,EAAA,YAAA;AAAA,MACV,KAAK,EAAA,IAAA;AAAA,MACL,KAAA,EAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MACd,KAAO,EAAA;AAAA,QACN,KAAA,EAAO,cAAc,MAAS,GAAA,IAAA;AAAA,QAC9B,QAAA,EAAU,cAAc,MAAY,GAAA;AAAA,OACrC;AAAA,MAGA,IAAA,EAAM,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MACb,QAAQ,EAAA,IAAA;AAAA,MACR,KAAM,EAAA,MAAA;AAAA,MAEN,QAAA,kBAAA,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACA,MAAA,EACC,aACG,CAAC,uBAAA,CAAwB,EAAE,CAC3B,GAAA,CAAC,wBAAwB,IAAI,CAAA;AAAA,UAGjC,QAAA,kBAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACA,EAAI,EAAA,KAAA;AAAA,cACJ,IACC,EAAA,UAAA,GACG,uBAAwB,CAAA,IAAA,GACxB,uBAAwB,CAAA,EAAA;AAAA,cAG3B,QAAA,EAAA;AAAA;AAAA;AACF;AAAA;AACD;AAAA,GACD;AAEF;AAEO,MAAM,SAAY,GAAA","file":"LabelCell.js","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 { useScorecardStateSelectorValue } from \"../../../../../state\";\nimport { useMemo } from \"react\";\nimport { isEmpty } from \"lodash\";\n\nexport function LabelCellComponent(\n\tprops: CellContext<\n\t\tScorecardTableData,\n\t\t{\n\t\t\tlabel: string;\n\t\t\torgUnit?: { uid: string; hierarchy: string; name: string };\n\t\t}\n\t>,\n) {\n\tconst data = props.getValue();\n\tconst size = props.cell.column.getSize();\n\tconst dataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst showHierarchy = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showHierarchy\",\n\t]);\n\n\tconst inPrintMode = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"printMode\",\n\t]);\n\n\tconst left = useMemo(() => {\n\t\tconst index = props.row\n\t\t\t.getVisibleCells()\n\t\t\t.findIndex(({ id }) => props.cell.id === id);\n\t\treturn index * 48;\n\t}, [props.row.getVisibleCells(), props.cell.id]);\n\n\tconst label = useMemo(() => {\n\t\tif (dataInRows) {\n\t\t\treturn data.label ?? \"\";\n\t\t}\n\t\tif (showHierarchy) {\n\t\t\treturn (\n\t\t\t\tdata.orgUnit?.hierarchy\n\t\t\t\t\t.split(\"/\")\n\t\t\t\t\t.filter((val) => !isEmpty(val))\n\t\t\t\t\t.join(\" / \") ?? \"\"\n\t\t\t);\n\t\t}\n\t\treturn data.label ?? \"\";\n\t}, [data, showHierarchy, dataInRows]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tclassName=\"label-cell\"\n\t\t\tfixed\n\t\t\twidth={`${size}px`}\n\t\t\tstyle={{\n\t\t\t\twidth: inPrintMode ? \"auto\" : size,\n\t\t\t\tminWidth: inPrintMode ? undefined : size,\n\t\t\t}}\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft={`${left}px`}\n\t\t\tbordered\n\t\t\talign=\"left\"\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\tid={label}\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{label}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableCell>\n\t);\n}\n\nexport const LabelCell = LabelCellComponent;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.tsx"],"names":["header"],"mappings":";;;;;;;;;AAUA,SAAS,uBAAwB,CAAA;AAAA,EAChC,MAAA;AACD,CAA2C,EAAA;AAC1C,EAAM,MAAA,QAAA,GAAW,MAAe,CAAA,GAAA,EAAK,CAAA,CAAA;AAErC,EAAA,MAAM,YAAe,GAAA,8BAAA,CAA+B,CAAC,cAAc,CAAC,CAAA,CAAA;AACpE,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA,gBAAA;AAAA,GACA,CAAA,CAAA;AAED,EAAA,MAAM,UAAU,UACb,GAAA,YAAA,GACC,GACA,GAAA,GAAA,GACD,eACC,GACA,GAAA,GAAA,CAAA;AAEJ,EAAM,MAAA,YAAA,GAAe,OAAO,UAAW,CAAA,IAAA;AAAA,IAAK,CAACA,OAAAA,KAC5CA,OAAO,CAAA,MAAA,CAAO,YAAa,EAAA;AAAA,GACzB,EAAA,MAAA,CAAA;AAEH,EAAA,MAAM,gBAAgB,CAAC,YAAA,EAAc,aAClC,GAAA,SAAA,GACC,aAAc,WAAY,EAAA,CAAA;AAC9B,EAAA,MAAM,eACL,YAAc,EAAA,mBAAA,OAA0B,KACrC,GAAA,IAAA,CAAK,EAAE,oBAAoB,CAAA,GAC3B,cAAc,mBAAoB,EAAA,KAAM,SACvC,IAAK,CAAA,CAAA,CAAE,qBAAqB,CAC5B,GAAA,IAAA,CAAK,EAAE,SAAS,CAAA,CAAA;AAErB,EACC,uBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MAEA,KAAM,EAAA,QAAA;AAAA,MACN,eAAe,IAAK,CAAA,CAAA,CAAE,uBAAyB,EAAA,EAAE,cAAc,CAAA;AAAA,MAC/D,eAAA,EAAiB,CAAC,CAAA,EAAG,CAAM,KAAA;AAC1B,QAAM,MAAA,IAAA,GAAO,aAAc,uBAAwB,EAAA,CAAA;AACnD,QAAA,IAAI,IAAM,EAAA;AACT,UAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAAA,SACP;AAAA,OACD;AAAA,MACA,KAAK,EAAA,IAAA;AAAA,MAGL,IAAK,EAAA,GAAA;AAAA,MACL,aAAA;AAAA,MACA,OAAA,EAAS,MAAO,CAAA,OAAA,CAAQ,QAAS,EAAA;AAAA,MACjC,OAAA;AAAA,MACA,WAAW,MAAO,CAAA,UAAA;AAAA,MAEjB,QAAA,EAAA,CAAC,CAAC,YACF,oBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UAEA,MAAQ,EAAA,YAAA;AAAA,SAAA;AAAA,QADH,CAAA,EAAG,OAAO,EAAE,CAAA,YAAA,CAAA;AAAA,OAElB;AAAA,KAAA;AAAA,IAtBI,CAAG,EAAA,MAAA,CAAO,EAAE,CAAA,CAAA,EAAI,SAAS,OAAO,CAAA,CAAA;AAAA,GAwBtC,CAAA;AAEF,CAAA;AAEa,MAAA,cAAA,GAAiB,KAAK,uBAAuB","file":"MetaHeaderCell.js","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader, type DataTableSortDirection } from \"@dhis2/ui\";\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\";\nimport { useScorecardStateSelectorValue } from \"../../../../../state\";\n\nfunction MetaHeaderCellComponent({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst randomId = useRef<string>(uid());\n\n\tconst hasOnePeriod = useScorecardStateSelectorValue([\"hasOnePeriod\"]);\n\tconst dataInRows = useScorecardStateSelectorValue<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=\"center\"\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\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"0\"\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
+ {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.tsx"],"names":["header"],"mappings":";;;;;;;;;AAUA,SAAS,uBAAwB,CAAA;AAAA,EAChC;AACD,CAA2C,EAAA;AAC1C,EAAM,MAAA,QAAA,GAAW,MAAe,CAAA,GAAA,EAAK,CAAA;AAErC,EAAA,MAAM,YAAe,GAAA,8BAAA,CAA+B,CAAC,cAAc,CAAC,CAAA;AACpE,EAAA,MAAM,aAAa,8BAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,MAAM,UAAU,UACb,GAAA,YAAA,GACC,GACA,GAAA,GAAA,GACD,eACC,GACA,GAAA,GAAA;AAEJ,EAAM,MAAA,YAAA,GAAe,OAAO,UAAW,CAAA,IAAA;AAAA,IAAK,CAACA,OAAAA,KAC5CA,OAAO,CAAA,MAAA,CAAO,YAAa;AAAA,GACzB,EAAA,MAAA;AAEH,EAAA,MAAM,gBAAgB,CAAC,YAAA,EAAc,aAClC,GAAA,SAAA,GACC,aAAc,WAAY,EAAA;AAC9B,EAAA,MAAM,eACL,YAAc,EAAA,mBAAA,OAA0B,KACrC,GAAA,IAAA,CAAK,EAAE,oBAAoB,CAAA,GAC3B,cAAc,mBAAoB,EAAA,KAAM,SACvC,IAAK,CAAA,CAAA,CAAE,qBAAqB,CAC5B,GAAA,IAAA,CAAK,EAAE,SAAS,CAAA;AAErB,EACC,uBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MAEA,KAAM,EAAA,QAAA;AAAA,MACN,eAAe,IAAK,CAAA,CAAA,CAAE,uBAAyB,EAAA,EAAE,cAAc,CAAA;AAAA,MAC/D,eAAA,EAAiB,CAAC,CAAA,EAAG,CAAM,KAAA;AAC1B,QAAM,MAAA,IAAA,GAAO,aAAc,uBAAwB,EAAA;AACnD,QAAA,IAAI,IAAM,EAAA;AACT,UAAA,IAAA,CAAK,CAAC,CAAA;AAAA;AACP,OACD;AAAA,MACA,KAAK,EAAA,IAAA;AAAA,MAGL,IAAK,EAAA,GAAA;AAAA,MACL,aAAA;AAAA,MACA,OAAA,EAAS,MAAO,CAAA,OAAA,CAAQ,QAAS,EAAA;AAAA,MACjC,OAAA;AAAA,MACA,WAAW,MAAO,CAAA,UAAA;AAAA,MAEjB,QAAA,EAAA,CAAC,CAAC,YACF,oBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UAEA,MAAQ,EAAA;AAAA,SAAA;AAAA,QADH,CAAA,EAAG,OAAO,EAAE,CAAA,YAAA;AAAA;AAElB,KAAA;AAAA,IAtBI,CAAG,EAAA,MAAA,CAAO,EAAE,CAAA,CAAA,EAAI,SAAS,OAAO,CAAA;AAAA,GAwBtC;AAEF;AAEa,MAAA,cAAA,GAAiB,KAAK,uBAAuB","file":"MetaHeaderCell.js","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableColumnHeader, type DataTableSortDirection } from \"@dhis2/ui\";\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\";\nimport { useScorecardStateSelectorValue } from \"../../../../../state\";\n\nfunction MetaHeaderCellComponent({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst randomId = useRef<string>(uid());\n\n\tconst hasOnePeriod = useScorecardStateSelectorValue([\"hasOnePeriod\"]);\n\tconst dataInRows = useScorecardStateSelectorValue<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=\"center\"\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\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"0\"\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 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/NumberCell.tsx"],"names":[],"mappings":";;;;AAKA,SAAS,oBACR,KACC,EAAA;AACD,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,QAAS,EAAA,CAAE,QAAS,EAAA,CAAA;AACvC,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,OAAQ,EAAA,CAAA;AAEvC,EAAM,MAAA,IAAA,GAAO,QAAQ,MAAM;AAC1B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,GAClB,CAAA,eAAA,EACA,CAAA,SAAA,CAAU,CAAC,EAAE,EAAG,EAAA,KAAM,KAAM,CAAA,IAAA,CAAK,OAAO,EAAE,CAAA,CAAA;AAC5C,IAAA,OAAO,KAAQ,GAAA,IAAA,CAAA;AAAA,GACb,EAAA,CAAC,KAAM,CAAA,GAAA,EAAK,IAAI,CAAC,CAAA,CAAA;AAEpB,EACC,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACA,QAAQ,EAAA,IAAA;AAAA,MACR,KAAA,EAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MACd,KAAO,EAAA;AAAA,QACN,KAAO,EAAA,IAAA;AAAA,QACP,QAAU,EAAA,IAAA;AAAA,QACV,QAAU,EAAA,EAAA;AAAA,QACV,MAAQ,EAAA,EAAA;AAAA,OACT;AAAA,MACA,KAAK,EAAA,IAAA;AAAA,MAGL,IAAA,EAAM,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MAEZ,QAAA,EAAA,IAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEF,CAAA;AAEa,MAAA,UAAA,GAAa,KAAK,mBAAmB","file":"NumberCell.js","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { memo, useMemo } from \"react\";\n\nfunction NumberCellComponent(\n\tprops: CellContext<ScorecardTableData, string | number>,\n) {\n\tconst data = props.getValue().toString();\n\tconst size = props.cell.column.getSize();\n\n\tconst left = useMemo(() => {\n\t\tconst index = props.row\n\t\t\t.getVisibleCells()\n\t\t\t.findIndex(({ id }) => props.cell.id === id);\n\t\treturn index * size;\n\t}, [props.row, size]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\twidth={`${size}px`}\n\t\t\tstyle={{\n\t\t\t\twidth: size,\n\t\t\t\tminWidth: size,\n\t\t\t\tmaxWidth: 48,\n\t\t\t\theight: 48,\n\t\t\t}}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft={`${left}px`}\n\t\t>\n\t\t\t{data}\n\t\t</DataTableCell>\n\t);\n}\n\nexport const NumberCell = memo(NumberCellComponent);\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/NumberCell.tsx"],"names":[],"mappings":";;;;AAKA,SAAS,oBACR,KACC,EAAA;AACD,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,QAAS,EAAA,CAAE,QAAS,EAAA;AACvC,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,OAAQ,EAAA;AAEvC,EAAM,MAAA,IAAA,GAAO,QAAQ,MAAM;AAC1B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,GAClB,CAAA,eAAA,EACA,CAAA,SAAA,CAAU,CAAC,EAAE,EAAG,EAAA,KAAM,KAAM,CAAA,IAAA,CAAK,OAAO,EAAE,CAAA;AAC5C,IAAA,OAAO,KAAQ,GAAA,IAAA;AAAA,GACb,EAAA,CAAC,KAAM,CAAA,GAAA,EAAK,IAAI,CAAC,CAAA;AAEpB,EACC,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACA,QAAQ,EAAA,IAAA;AAAA,MACR,KAAA,EAAO,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MACd,KAAO,EAAA;AAAA,QACN,KAAO,EAAA,IAAA;AAAA,QACP,QAAU,EAAA,IAAA;AAAA,QACV,QAAU,EAAA,EAAA;AAAA,QACV,MAAQ,EAAA;AAAA,OACT;AAAA,MACA,KAAK,EAAA,IAAA;AAAA,MAGL,IAAA,EAAM,GAAG,IAAI,CAAA,EAAA,CAAA;AAAA,MAEZ,QAAA,EAAA;AAAA;AAAA,GACF;AAEF;AAEa,MAAA,UAAA,GAAa,KAAK,mBAAmB","file":"NumberCell.js","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { memo, useMemo } from \"react\";\n\nfunction NumberCellComponent(\n\tprops: CellContext<ScorecardTableData, string | number>,\n) {\n\tconst data = props.getValue().toString();\n\tconst size = props.cell.column.getSize();\n\n\tconst left = useMemo(() => {\n\t\tconst index = props.row\n\t\t\t.getVisibleCells()\n\t\t\t.findIndex(({ id }) => props.cell.id === id);\n\t\treturn index * size;\n\t}, [props.row, size]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\twidth={`${size}px`}\n\t\t\tstyle={{\n\t\t\t\twidth: size,\n\t\t\t\tminWidth: size,\n\t\t\t\tmaxWidth: 48,\n\t\t\t\theight: 48,\n\t\t\t}}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft={`${left}px`}\n\t\t>\n\t\t\t{data}\n\t\t</DataTableCell>\n\t);\n}\n\nexport const NumberCell = memo(NumberCellComponent);\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/StateProvider.tsx"],"names":["initialState"],"mappings":";;;;;;AAaO,SAAS,sBAAuB,CAAA;AAAA,EACtC,QAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AACD,CAAgC,EAAA;AAC/B,EAAA,MAAM,SAAY,GAAA,WAAA;AAAA,IACjB,CAAC,EAAE,GAAA,EAA2B,KAAA;AAC7B,MAAA,GAAA;AAAA,QACC,kBAAA;AAAA,QACA,YAAA,IAAgB,0BAA0B,MAAM,CAAA;AAAA,OACjD,CAAA;AAAA,KACD;AAAA,IACA,CAAC,cAAc,MAAM,CAAA;AAAA,GACtB,CAAA;AACA,EAAA,MAAM,4BAA+B,GAAA,iBAAA;AAAA,IACpC,CAAC,EAAE,GAAA,EAAK,QAAS,EAAA,KAChB,CAACA,aAAiC,KAAA;AACjC,MAAA,IACC,QAAS,CAAA,WAAA,CAAY,kBAAkB,CAAA,CAAE,aAAa,IACrD,EAAA;AACD,QAAA,GAAA,CAAI,oBAAoBA,aAAY,CAAA,CAAA;AAAA,OACrC;AAAA,KACD;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,CAAC,cAAgB,EAAA;AACpB,IAAA,4BAAA;AAAA,MACC,YAAA,IAAgB,0BAA0B,MAAM,CAAA;AAAA,KACjD,CAAA;AAAA,GACD;AAEA,EAAA,IAAI,cAAgB,EAAA;AACnB,IAAA,uBAAQ,GAAA,CAAA,UAAA,EAAA,EAAW,eAAiB,EAAA,SAAA,EAAY,QAAS,EAAA,CAAA,CAAA;AAAA,GAC1D;AAEA,EAAO,OAAA,QAAA,CAAA;AACR","file":"StateProvider.js","sourcesContent":["import type { ScorecardConfig, ScorecardState } from \"../schemas/config\";\nimport { type ReactNode, useCallback } from \"react\";\nimport { MutableSnapshot, RecoilRoot, useRecoilCallback } from \"recoil\";\nimport { scorecardStateAtom } from \"../state\";\nimport { getInitialStateFromConfig } from \"../utils\";\n\nexport interface ScorecardStateProviderProps {\n\tinitialState?: ScorecardState;\n\tconfig: ScorecardConfig;\n\tchildren: ReactNode;\n\twithRecoilRoot?: boolean;\n}\n\nexport function ScorecardStateProvider({\n\tchildren,\n\tinitialState,\n\tconfig,\n\twithRecoilRoot,\n}: ScorecardStateProviderProps) {\n\tconst initState = useCallback(\n\t\t({ set }: MutableSnapshot) => {\n\t\t\tset(\n\t\t\t\tscorecardStateAtom,\n\t\t\t\tinitialState ?? getInitialStateFromConfig(config),\n\t\t\t);\n\t\t},\n\t\t[initialState, config],\n\t);\n\tconst initializeStateWithoutRecoil = useRecoilCallback(\n\t\t({ set, snapshot }) =>\n\t\t\t(initialState: ScorecardState) => {\n\t\t\t\tif (\n\t\t\t\t\tsnapshot.getLoadable(scorecardStateAtom).contents === null\n\t\t\t\t) {\n\t\t\t\t\tset(scorecardStateAtom, initialState);\n\t\t\t\t}\n\t\t\t},\n\t);\n\n\tif (!withRecoilRoot) {\n\t\tinitializeStateWithoutRecoil(\n\t\t\tinitialState ?? getInitialStateFromConfig(config),\n\t\t);\n\t}\n\n\tif (withRecoilRoot) {\n\t\treturn <RecoilRoot initializeState={initState}>{children}</RecoilRoot>;\n\t}\n\n\treturn children;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/StateProvider.tsx"],"names":["initialState"],"mappings":";;;;;;AAaO,SAAS,sBAAuB,CAAA;AAAA,EACtC,QAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA;AACD,CAAgC,EAAA;AAC/B,EAAA,MAAM,SAAY,GAAA,WAAA;AAAA,IACjB,CAAC,EAAE,GAAA,EAA2B,KAAA;AAC7B,MAAA,GAAA;AAAA,QACC,kBAAA;AAAA,QACA,YAAA,IAAgB,0BAA0B,MAAM;AAAA,OACjD;AAAA,KACD;AAAA,IACA,CAAC,cAAc,MAAM;AAAA,GACtB;AACA,EAAA,MAAM,4BAA+B,GAAA,iBAAA;AAAA,IACpC,CAAC,EAAE,GAAA,EAAK,QAAS,EAAA,KAChB,CAACA,aAAiC,KAAA;AACjC,MAAA,IACC,QAAS,CAAA,WAAA,CAAY,kBAAkB,CAAA,CAAE,aAAa,IACrD,EAAA;AACD,QAAA,GAAA,CAAI,oBAAoBA,aAAY,CAAA;AAAA;AACrC;AACD,GACF;AAEA,EAAA,IAAI,CAAC,cAAgB,EAAA;AACpB,IAAA,4BAAA;AAAA,MACC,YAAA,IAAgB,0BAA0B,MAAM;AAAA,KACjD;AAAA;AAGD,EAAA,IAAI,cAAgB,EAAA;AACnB,IAAA,uBAAQ,GAAA,CAAA,UAAA,EAAA,EAAW,eAAiB,EAAA,SAAA,EAAY,QAAS,EAAA,CAAA;AAAA;AAG1D,EAAO,OAAA,QAAA;AACR","file":"StateProvider.js","sourcesContent":["import type { ScorecardConfig, ScorecardState } from \"../schemas/config\";\nimport { type ReactNode, useCallback } from \"react\";\nimport { MutableSnapshot, RecoilRoot, useRecoilCallback } from \"recoil\";\nimport { scorecardStateAtom } from \"../state\";\nimport { getInitialStateFromConfig } from \"../utils\";\n\nexport interface ScorecardStateProviderProps {\n\tinitialState?: ScorecardState;\n\tconfig: ScorecardConfig;\n\tchildren: ReactNode;\n\twithRecoilRoot?: boolean;\n}\n\nexport function ScorecardStateProvider({\n\tchildren,\n\tinitialState,\n\tconfig,\n\twithRecoilRoot,\n}: ScorecardStateProviderProps) {\n\tconst initState = useCallback(\n\t\t({ set }: MutableSnapshot) => {\n\t\t\tset(\n\t\t\t\tscorecardStateAtom,\n\t\t\t\tinitialState ?? getInitialStateFromConfig(config),\n\t\t\t);\n\t\t},\n\t\t[initialState, config],\n\t);\n\tconst initializeStateWithoutRecoil = useRecoilCallback(\n\t\t({ set, snapshot }) =>\n\t\t\t(initialState: ScorecardState) => {\n\t\t\t\tif (\n\t\t\t\t\tsnapshot.getLoadable(scorecardStateAtom).contents === null\n\t\t\t\t) {\n\t\t\t\t\tset(scorecardStateAtom, initialState);\n\t\t\t\t}\n\t\t\t},\n\t);\n\n\tif (!withRecoilRoot) {\n\t\tinitializeStateWithoutRecoil(\n\t\t\tinitialState ?? getInitialStateFromConfig(config),\n\t\t);\n\t}\n\n\tif (withRecoilRoot) {\n\t\treturn <RecoilRoot initializeState={initState}>{children}</RecoilRoot>;\n\t}\n\n\treturn children;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/TableStateProvider.tsx"],"names":["TableStateProvider"],"mappings":";;;;;;AAgBA,MAAM,oBAAoB,aAAgD,CAAA;AAAA,EACzE,OAAO,EAAC;AAAA,EACR,SAAS,EAAC;AAAA,EACV,iBAAiB,eAAgB,EAAA;AAAA,EACjC,MAAM,EAAC;AACR,CAAC,CAAA,CAAA;AAED,MAAM,wBAAA,GAA2B,cAAuB,KAAK,CAAA,CAAA;AAC7D,MAAM,8BAAA,GAAiC,cAA0B,MAAM;AAAC,CAAC,CAAA,CAAA;AAElE,SAAS,aAAgB,GAAA;AAC/B,EAAM,MAAA,OAAA,GAAU,WAAW,iBAAiB,CAAA,CAAA;AAC5C,EAAM,MAAA,eAAA,GAAkB,iBAAiB,OAAO,CAAA,CAAA;AAChD,EAAA,OAAO,cAAkC,eAAe,CAAA,CAAA;AACzD,CAAA;AAEO,SAAS,0BAA6B,GAAA;AAC5C,EAAA,OAAO,WAAW,8BAA8B,CAAA,CAAA;AACjD,CAAA;AAEO,SAAS,oBAAuB,GAAA;AACtC,EAAA,OAAO,WAAW,wBAAwB,CAAA,CAAA;AAC3C,CAAA;AAEO,SAAS,yBAA0B,CAAA;AAAA,EACzC,QAAA;AACD,CAEG,EAAA;AACF,EAAA,MAAM,EAAE,KAAO,EAAA,OAAA,EAAS,MAAO,EAAA,GAAI,WAAW,KAAK,CAAA,CAAA;AAEnD,EAAA,uBACE,GAAA,CAAA,8BAAA,CAA+B,QAA/B,EAAA,EAAwC,KAAO,EAAA,MAAA,EAC/C,QAAC,kBAAA,GAAA,CAAA,wBAAA,CAAyB,QAAzB,EAAA,EAAkC,KAAO,EAAA,OAAA,EACxC,UACF,CACD,EAAA,CAAA,CAAA;AAEF,CAAA;AAEa,MAAA,kBAAA,GAAqB,IAAK,CAAA,SAASA,mBAAmB,CAAA;AAAA,EAClE,QAAA;AACD,CAEG,EAAA;AACF,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAC9B,EACC,uBAAA,GAAA,CAAC,kBAAkB,QAAlB,EAAA,EAA2B,OAAO,OAClC,EAAA,QAAA,kBAAA,GAAA,CAAC,yBAA2B,EAAA,EAAA,QAAA,EAAS,CACtC,EAAA,CAAA,CAAA;AAEF,CAAC","file":"TableStateProvider.js","sourcesContent":["import {\n\tcreateContext,\n\tmemo,\n\ttype ReactNode,\n\tuseContext,\n\tuseDeferredValue,\n} from \"react\";\nimport {\n\tgetCoreRowModel,\n\ttype TableOptions,\n\tuseReactTable,\n} from \"@tanstack/react-table\";\nimport { useTableSetup } from \"../hooks/table\";\nimport type { ScorecardTableData } from \"../schemas/config\";\nimport { useBoolean } from \"usehooks-ts\";\n\nconst TableStateContext = createContext<TableOptions<ScorecardTableData>>({\n\tstate: {},\n\tcolumns: [],\n\tgetCoreRowModel: getCoreRowModel(),\n\tdata: [],\n});\n\nconst TableLoadingStateContext = createContext<boolean>(false);\nconst TableLoadingStateToggleContext = createContext<() => void>(() => {});\n\nexport function useTableState() {\n\tconst context = useContext(TableStateContext);\n\tconst deferredContext = useDeferredValue(context);\n\treturn useReactTable<ScorecardTableData>(deferredContext);\n}\n\nexport function useToggleTableLoadingState() {\n\treturn useContext(TableLoadingStateToggleContext);\n}\n\nexport function useTableLoadingState() {\n\treturn useContext(TableLoadingStateContext);\n}\n\nexport function TableLoadingStateProvider({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst { value: loading, toggle } = useBoolean(false);\n\n\treturn (\n\t\t<TableLoadingStateToggleContext.Provider value={toggle}>\n\t\t\t<TableLoadingStateContext.Provider value={loading}>\n\t\t\t\t{children}\n\t\t\t</TableLoadingStateContext.Provider>\n\t\t</TableLoadingStateToggleContext.Provider>\n\t);\n}\n\nexport const TableStateProvider = memo(function TableStateProvider({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst options = useTableSetup();\n\treturn (\n\t\t<TableStateContext.Provider value={options}>\n\t\t\t<TableLoadingStateProvider>{children}</TableLoadingStateProvider>\n\t\t</TableStateContext.Provider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/TableStateProvider.tsx"],"names":["TableStateProvider"],"mappings":";;;;;;AAgBA,MAAM,oBAAoB,aAAgD,CAAA;AAAA,EACzE,OAAO,EAAC;AAAA,EACR,SAAS,EAAC;AAAA,EACV,iBAAiB,eAAgB,EAAA;AAAA,EACjC,MAAM;AACP,CAAC,CAAA;AAED,MAAM,wBAAA,GAA2B,cAAuB,KAAK,CAAA;AAC7D,MAAM,8BAAA,GAAiC,cAA0B,MAAM;AAAC,CAAC,CAAA;AAElE,SAAS,aAAgB,GAAA;AAC/B,EAAM,MAAA,OAAA,GAAU,WAAW,iBAAiB,CAAA;AAC5C,EAAM,MAAA,eAAA,GAAkB,iBAAiB,OAAO,CAAA;AAChD,EAAA,OAAO,cAAkC,eAAe,CAAA;AACzD;AAEO,SAAS,0BAA6B,GAAA;AAC5C,EAAA,OAAO,WAAW,8BAA8B,CAAA;AACjD;AAEO,SAAS,oBAAuB,GAAA;AACtC,EAAA,OAAO,WAAW,wBAAwB,CAAA;AAC3C;AAEO,SAAS,yBAA0B,CAAA;AAAA,EACzC;AACD,CAEG,EAAA;AACF,EAAA,MAAM,EAAE,KAAO,EAAA,OAAA,EAAS,MAAO,EAAA,GAAI,WAAW,KAAK,CAAA;AAEnD,EAAA,uBACE,GAAA,CAAA,8BAAA,CAA+B,QAA/B,EAAA,EAAwC,KAAO,EAAA,MAAA,EAC/C,QAAC,kBAAA,GAAA,CAAA,wBAAA,CAAyB,QAAzB,EAAA,EAAkC,KAAO,EAAA,OAAA,EACxC,UACF,CACD,EAAA,CAAA;AAEF;AAEa,MAAA,kBAAA,GAAqB,IAAK,CAAA,SAASA,mBAAmB,CAAA;AAAA,EAClE;AACD,CAEG,EAAA;AACF,EAAA,MAAM,UAAU,aAAc,EAAA;AAC9B,EACC,uBAAA,GAAA,CAAC,kBAAkB,QAAlB,EAAA,EAA2B,OAAO,OAClC,EAAA,QAAA,kBAAA,GAAA,CAAC,yBAA2B,EAAA,EAAA,QAAA,EAAS,CACtC,EAAA,CAAA;AAEF,CAAC","file":"TableStateProvider.js","sourcesContent":["import {\n\tcreateContext,\n\tmemo,\n\ttype ReactNode,\n\tuseContext,\n\tuseDeferredValue,\n} from \"react\";\nimport {\n\tgetCoreRowModel,\n\ttype TableOptions,\n\tuseReactTable,\n} from \"@tanstack/react-table\";\nimport { useTableSetup } from \"../hooks/table\";\nimport type { ScorecardTableData } from \"../schemas/config\";\nimport { useBoolean } from \"usehooks-ts\";\n\nconst TableStateContext = createContext<TableOptions<ScorecardTableData>>({\n\tstate: {},\n\tcolumns: [],\n\tgetCoreRowModel: getCoreRowModel(),\n\tdata: [],\n});\n\nconst TableLoadingStateContext = createContext<boolean>(false);\nconst TableLoadingStateToggleContext = createContext<() => void>(() => {});\n\nexport function useTableState() {\n\tconst context = useContext(TableStateContext);\n\tconst deferredContext = useDeferredValue(context);\n\treturn useReactTable<ScorecardTableData>(deferredContext);\n}\n\nexport function useToggleTableLoadingState() {\n\treturn useContext(TableLoadingStateToggleContext);\n}\n\nexport function useTableLoadingState() {\n\treturn useContext(TableLoadingStateContext);\n}\n\nexport function TableLoadingStateProvider({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst { value: loading, toggle } = useBoolean(false);\n\n\treturn (\n\t\t<TableLoadingStateToggleContext.Provider value={toggle}>\n\t\t\t<TableLoadingStateContext.Provider value={loading}>\n\t\t\t\t{children}\n\t\t\t</TableLoadingStateContext.Provider>\n\t\t</TableLoadingStateToggleContext.Provider>\n\t);\n}\n\nexport const TableStateProvider = memo(function TableStateProvider({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) {\n\tconst options = useTableSetup();\n\treturn (\n\t\t<TableStateContext.Provider value={options}>\n\t\t\t<TableLoadingStateProvider>{children}</TableLoadingStateProvider>\n\t\t</TableStateContext.Provider>\n\t);\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/cellData.ts"],"names":[],"mappings":";;;;AAMO,SAAS,WAAY,CAAA;AAAA,EAC3B,UAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AACD,CAIG,EAAA;AACF,EAAA,MAAM,SAAS,kBAAmB,EAAA,CAAA;AAClC,EAAA,MAAM,OAAO,gBAAiB,EAAA,CAAA;AAE9B,EAAM,MAAA,YAAA,GAAe,YAAY,IAAK,CAAA,OAAA,CAAA;AAEtC,EAAM,MAAA,gBAAA,GAAmB,QAAQ,MAAM;AACtC,IAAA,IAAI,CAAC,UAAY,EAAA,OAAA;AACjB,IAAA,OAAO,SAAU,CAAA;AAAA,MAChB,UAAA;AAAA,MACA,KAAO,EAAA,YAAA;AAAA,MACP,eAAe,IAAM,CAAA,aAAA;AAAA,MACrB,MAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAU,EAAA,MAAA;AAAA,KACV,CAAA,CAAA;AAAA,KACC,CAAC,UAAA,EAAY,cAAc,IAAM,EAAA,OAAA,EAAS,MAAM,CAAC,CAAA,CAAA;AAEpD,EAAO,OAAA;AAAA,IACN,YAAA;AAAA,IACA,gBAAA;AAAA,GACD,CAAA;AACD","file":"cellData.js","sourcesContent":["import type { ScorecardCellData } from \"../schemas/config\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport { getLegend } from \"../utils/legends\";\nimport type { ItemMeta } from \"./metadata\";\n\nexport function useCellData({\n\tdataSource,\n\torgUnit,\n\tperiod,\n}: {\n\tdataSource?: ScorecardCellData;\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n}) {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\n\tconst currentValue = dataSource?.data.current;\n\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) return;\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tvalue: currentValue,\n\t\t\torgUnitLevels: meta!.orgUnitLevels,\n\t\t\tconfig: config!,\n\t\t\torgUnit,\n\t\t\tperiodId: period,\n\t\t});\n\t}, [dataSource, currentValue, meta, orgUnit, period]);\n\n\treturn {\n\t\tcurrentValue,\n\t\tlegendDefinition,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/cellData.ts"],"names":[],"mappings":";;;;AAMO,SAAS,WAAY,CAAA;AAAA,EAC3B,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAIG,EAAA;AACF,EAAA,MAAM,SAAS,kBAAmB,EAAA;AAClC,EAAA,MAAM,OAAO,gBAAiB,EAAA;AAE9B,EAAM,MAAA,YAAA,GAAe,YAAY,IAAK,CAAA,OAAA;AAEtC,EAAM,MAAA,gBAAA,GAAmB,QAAQ,MAAM;AACtC,IAAA,IAAI,CAAC,UAAY,EAAA;AACjB,IAAA,OAAO,SAAU,CAAA;AAAA,MAChB,UAAA;AAAA,MACA,KAAO,EAAA,YAAA;AAAA,MACP,eAAe,IAAM,CAAA,aAAA;AAAA,MACrB,MAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAU,EAAA;AAAA,KACV,CAAA;AAAA,KACC,CAAC,UAAA,EAAY,cAAc,IAAM,EAAA,OAAA,EAAS,MAAM,CAAC,CAAA;AAEpD,EAAO,OAAA;AAAA,IACN,YAAA;AAAA,IACA;AAAA,GACD;AACD","file":"cellData.js","sourcesContent":["import type { ScorecardCellData } from \"../schemas/config\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport { getLegend } from \"../utils/legends\";\nimport type { ItemMeta } from \"./metadata\";\n\nexport function useCellData({\n\tdataSource,\n\torgUnit,\n\tperiod,\n}: {\n\tdataSource?: ScorecardCellData;\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n}) {\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\n\tconst currentValue = dataSource?.data.current;\n\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) return;\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tvalue: currentValue,\n\t\t\torgUnitLevels: meta!.orgUnitLevels,\n\t\t\tconfig: config!,\n\t\t\torgUnit,\n\t\t\tperiodId: period,\n\t\t});\n\t}, [dataSource, currentValue, meta, orgUnit, period]);\n\n\treturn {\n\t\tcurrentValue,\n\t\tlegendDefinition,\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/columns.ts"],"names":[],"mappings":"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","file":"columns.js","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardState,\n\ttype ScorecardTableCellConfig,\n\ttype ScorecardTableData,\n} from \"../schemas/config\";\nimport {\n\tgetAverageColumn,\n\tgetDataColumnHeaders,\n\tgetOrgUnitColumnHeaders,\n} from \"../utils/columns\";\nimport { LabelCell } from \"../components/ScorecardTable/components/TableHeader/components/LabelCell\";\nimport { NumberCell } from \"../components/ScorecardTable/components/TableHeader/components/NumberCell\";\nimport { MetaHeaderCell } from \"../components/ScorecardTable/components/TableHeader/components/MetaHeaderCell\";\nimport { useCalendar } from \"./metadata\";\nimport { MetaFooterCell } from \"../components/ScorecardTable/components/MetaFooterCell\";\nimport { getOrgUnitLevel } from \"../utils/orgUnits\";\nimport { useLowestOrgUnitLevel } from \"./orgUnit\";\nimport { useScorecardData } from \"../components/DataProvider\";\nimport { useScorecardStateSelectorValue } from \"../state\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disableExpanding\",\n\t]);\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\treturn useMemo(() => {\n\t\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(rowData) => {\n\t\t\t\t\tif (disableExpanding) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDataInRows) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\t\tif (!orgUnit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"expand\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: ExpandCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(_, index) => {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"count\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: NumberCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"dataItems\",\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tfilterable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"orgUnits\",\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn metaColumns;\n\t}, [showDataInRows, disableExpanding]);\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellConfig\n>[] {\n\tconst config = useScorecardConfig();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\n\n\tconst orgUnitSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\n\n\tif (!config || !meta) {\n\t\treturn [];\n\t}\n\treturn useMemo(() => {\n\t\tconst columns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.group({\n\t\t\t\tid: \"metaHeader\",\n\t\t\t\tcolumns: metaColumns,\n\t\t\t\theader: MetaHeaderCell,\n\t\t\t\tfooter: () => null,\n\t\t\t}),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tcolumns.push(\n\t\t\t\t...getOrgUnitColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tcalendar,\n\t\t\t\t\tdataEngine,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tcolumns.push(\n\t\t\t\t...getDataColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tconfig,\n\t\t\t\t\tcalendar,\n\t\t\t\t\tdataEngine,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tcolumns.push(\n\t\t\tgetAverageColumn({\n\t\t\t\tmeta,\n\t\t\t\tconfig,\n\t\t\t}),\n\t\t);\n\n\t\treturn columns;\n\t}, [showDataInRows, periodSelection, orgUnitSelection]);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/columns.ts"],"names":[],"mappings":"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","file":"columns.js","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardState,\n\ttype ScorecardTableCellConfig,\n\ttype ScorecardTableData,\n} from \"../schemas/config\";\nimport {\n\tgetAverageColumn,\n\tgetDataColumnHeaders,\n\tgetOrgUnitColumnHeaders,\n} from \"../utils/columns\";\nimport { LabelCell } from \"../components/ScorecardTable/components/TableHeader/components/LabelCell\";\nimport { NumberCell } from \"../components/ScorecardTable/components/TableHeader/components/NumberCell\";\nimport { MetaHeaderCell } from \"../components/ScorecardTable/components/TableHeader/components/MetaHeaderCell\";\nimport { useCalendar } from \"./metadata\";\nimport { MetaFooterCell } from \"../components/ScorecardTable/components/MetaFooterCell\";\nimport { getOrgUnitLevel } from \"../utils/orgUnits\";\nimport { useLowestOrgUnitLevel } from \"./orgUnit\";\nimport { useScorecardData } from \"../components/DataProvider\";\nimport { useScorecardStateSelectorValue } from \"../state\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disableExpanding\",\n\t]);\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\treturn useMemo(() => {\n\t\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(rowData) => {\n\t\t\t\t\tif (disableExpanding) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDataInRows) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\t\tif (!orgUnit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"expand\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: ExpandCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(_, index) => {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"count\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: NumberCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"dataItems\",\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tfilterable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"orgUnits\",\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn metaColumns;\n\t}, [showDataInRows, disableExpanding]);\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellConfig\n>[] {\n\tconst config = useScorecardConfig();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\n\n\tconst orgUnitSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\n\n\tif (!config || !meta) {\n\t\treturn [];\n\t}\n\treturn useMemo(() => {\n\t\tconst columns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.group({\n\t\t\t\tid: \"metaHeader\",\n\t\t\t\tcolumns: metaColumns,\n\t\t\t\theader: MetaHeaderCell,\n\t\t\t\tfooter: () => null,\n\t\t\t}),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tcolumns.push(\n\t\t\t\t...getOrgUnitColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tcalendar,\n\t\t\t\t\tdataEngine,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tcolumns.push(\n\t\t\t\t...getDataColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tconfig,\n\t\t\t\t\tcalendar,\n\t\t\t\t\tdataEngine,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tcolumns.push(\n\t\t\tgetAverageColumn({\n\t\t\t\tmeta,\n\t\t\t\tconfig,\n\t\t\t}),\n\t\t);\n\n\t\treturn columns;\n\t}, [showDataInRows, periodSelection, orgUnitSelection]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { getDimensionsFromMeta } from \"../utils/analytics\";\nimport { FetchError, useAlert, useDataEngine } from \"@dhis2/app-runtime\";\nimport {\n\tcreateFixedPeriodFromPeriodId,\n\tgetAdjacentFixedPeriods,\n} from \"@dhis2/multi-calendar-dates\";\nimport { uniq } from \"lodash\";\nimport { useCalendar } from \"./metadata\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { sanitizeAnalyticsData } from \"../utils/data\";\n\nconst query: any = {\n\tdata: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipMeta: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface ScorecardDataQueryResponse {\n\tdata: {\n\t\theaderWidth: number;\n\t\theaders: Array<{\n\t\t\tname: string;\n\t\t\thidden: boolean;\n\t\t\tmeta: boolean;\n\t\t\tcolumn: string;\n\t\t\tvalueType: string;\n\t\t}>;\n\t\trows: Array<Array<string>>;\n\t\theight: number;\n\t\twidth: number;\n\t};\n}\n\nexport function useGetScorecardData(dataEngine: ScorecardDataEngine) {\n\tconst engine = useDataEngine();\n\tconst { show, hide: hideAlert } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type, actions }) => ({ ...type, actions, duration: 3000 }),\n\t);\n\tconst getTableData = (rawAnalyticsData: ScorecardDataQueryResponse) => {\n\t\treturn sanitizeAnalyticsData(rawAnalyticsData);\n\t};\n\tconst fetchData = useCallback(\n\t\tasync ({\n\t\t\tperiods,\n\t\t\tdataItems,\n\t\t\torgUnits,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\ttry {\n\t\t\t\tconst rawAnalyticsData = (await engine.query(query, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tperiods,\n\t\t\t\t\t\tdataItems,\n\t\t\t\t\t\torgUnits,\n\t\t\t\t\t},\n\t\t\t\t})) as unknown as ScorecardDataQueryResponse;\n\t\t\t\tif (!rawAnalyticsData) return [];\n\t\t\t\treturn getTableData(rawAnalyticsData);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error || error instanceof FetchError) {\n\t\t\t\t\tshow({\n\t\t\t\t\t\tmessage: `${i18n.t(\"Error getting scorecard data\")}: ${\n\t\t\t\t\t\t\terror.message\n\t\t\t\t\t\t}`,\n\t\t\t\t\t\ttype: { critical: true },\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\t\t[engine, show, hideAlert],\n\t);\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst calendar = useCalendar();\n\tif (!config || !meta) {\n\t\tthrow new Error(\n\t\t\t\"Invalid scorecard setup. Make sure the valid config and state props are passed.\",\n\t\t);\n\t}\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = useMemo(\n\t\t() =>\n\t\t\tgetDimensionsFromMeta({\n\t\t\t\tmeta,\n\t\t\t}),\n\t\t[meta],\n\t);\n\n\t//We need to make sure each period has a past period\n\tconst analyticsPeriod = useMemo(() => {\n\t\tconst pastPeriods = periodsIds\n\t\t\t.map((periodId) => {\n\t\t\t\tconst pe = getAdjacentFixedPeriods({\n\t\t\t\t\tcalendar,\n\t\t\t\t\tsteps: -1,\n\t\t\t\t\tperiod: createFixedPeriodFromPeriodId({\n\t\t\t\t\t\tcalendar,\n\t\t\t\t\t\tperiodId,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn pe.map(({ id }) => id);\n\t\t\t})\n\t\t\t.flat();\n\n\t\treturn uniq([...periodsIds, ...pastPeriods]);\n\t}, [periodsIds]);\n\tuseEffect(() => {\n\t\tdataEngine.initialize(fetchData, {\n\t\t\tdimensions: {\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t\tperiods: analyticsPeriod,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t},\n\t\t});\n\t}, [dataEngine]);\n\n\treturn {};\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/data.ts"],"names":[],"mappings":"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","file":"data.js","sourcesContent":["import { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { getDimensionsFromMeta } from \"../utils/analytics\";\nimport { FetchError, useAlert, useDataEngine } from \"@dhis2/app-runtime\";\nimport {\n\tcreateFixedPeriodFromPeriodId,\n\tgetAdjacentFixedPeriods,\n} from \"@dhis2/multi-calendar-dates\";\nimport { uniq } from \"lodash\";\nimport { useCalendar } from \"./metadata\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { sanitizeAnalyticsData } from \"../utils/data\";\n\nconst query: any = {\n\tdata: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipMeta: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface ScorecardDataQueryResponse {\n\tdata: {\n\t\theaderWidth: number;\n\t\theaders: Array<{\n\t\t\tname: string;\n\t\t\thidden: boolean;\n\t\t\tmeta: boolean;\n\t\t\tcolumn: string;\n\t\t\tvalueType: string;\n\t\t}>;\n\t\trows: Array<Array<string>>;\n\t\theight: number;\n\t\twidth: number;\n\t};\n}\n\nexport function useGetScorecardData(dataEngine: ScorecardDataEngine) {\n\tconst engine = useDataEngine();\n\tconst { show, hide: hideAlert } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type, actions }) => ({ ...type, actions, duration: 3000 }),\n\t);\n\tconst getTableData = (rawAnalyticsData: ScorecardDataQueryResponse) => {\n\t\treturn sanitizeAnalyticsData(rawAnalyticsData);\n\t};\n\tconst fetchData = useCallback(\n\t\tasync ({\n\t\t\tperiods,\n\t\t\tdataItems,\n\t\t\torgUnits,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\ttry {\n\t\t\t\tconst rawAnalyticsData = (await engine.query(query, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tperiods,\n\t\t\t\t\t\tdataItems,\n\t\t\t\t\t\torgUnits,\n\t\t\t\t\t},\n\t\t\t\t})) as unknown as ScorecardDataQueryResponse;\n\t\t\t\tif (!rawAnalyticsData) return [];\n\t\t\t\treturn getTableData(rawAnalyticsData);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error || error instanceof FetchError) {\n\t\t\t\t\tshow({\n\t\t\t\t\t\tmessage: `${i18n.t(\"Error getting scorecard data\")}: ${\n\t\t\t\t\t\t\terror.message\n\t\t\t\t\t\t}`,\n\t\t\t\t\t\ttype: { critical: true },\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\t\t[engine, show, hideAlert],\n\t);\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst calendar = useCalendar();\n\tif (!config || !meta) {\n\t\tthrow new Error(\n\t\t\t\"Invalid scorecard setup. Make sure the valid config and state props are passed.\",\n\t\t);\n\t}\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = useMemo(\n\t\t() =>\n\t\t\tgetDimensionsFromMeta({\n\t\t\t\tmeta,\n\t\t\t}),\n\t\t[meta],\n\t);\n\n\t//We need to make sure each period has a past period\n\tconst analyticsPeriod = useMemo(() => {\n\t\tconst pastPeriods = periodsIds\n\t\t\t.map((periodId) => {\n\t\t\t\tconst pe = getAdjacentFixedPeriods({\n\t\t\t\t\tcalendar,\n\t\t\t\t\tsteps: -1,\n\t\t\t\t\tperiod: createFixedPeriodFromPeriodId({\n\t\t\t\t\t\tcalendar,\n\t\t\t\t\t\tperiodId,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn pe.map(({ id }) => id);\n\t\t\t})\n\t\t\t.flat();\n\n\t\treturn uniq([...periodsIds, ...pastPeriods]);\n\t}, [periodsIds]);\n\tuseEffect(() => {\n\t\tdataEngine.initialize(fetchData, {\n\t\t\tdimensions: {\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t\tperiods: analyticsPeriod,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t},\n\t\t});\n\t}, [dataEngine]);\n\n\treturn {};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/dataItem.ts"],"names":[],"mappings":";;AAIO,SAAS,qBAAwB,GAAA;AACvC,EAAA,MAAM,OAAO,gBAAiB,EAAA,CAAA;AAC9B,EAAA,OAAO,CAAC,UAAoC,KAAA;AAC3C,IAAA,IAAI,WAAW,KAAO,EAAA;AACrB,MAAA,OAAO,UAAW,CAAA,KAAA,CAAA;AAAA,KACnB;AACA,IAAM,MAAA,QAAA,GAAiC,MAAM,SAAU,CAAA,IAAA;AAAA,MACtD,CAAC,IAAA,KAAS,IAAK,CAAA,GAAA,KAAQ,UAAW,CAAA,EAAA;AAAA,KACnC,CAAA;AAEA,IAAA,OAAO,UAAU,IAAQ,IAAA,EAAA,CAAA;AAAA,GAC1B,CAAA;AACD","file":"dataItem.js","sourcesContent":["import { useScorecardMeta } from \"../components\";\nimport type { ScorecardDataSource } from \"../schemas/config\";\nimport type { ItemMeta } from \"./metadata\";\n\nexport function useGetDataSourceLabel() {\n\tconst meta = useScorecardMeta();\n\treturn (dataSource: ScorecardDataSource) => {\n\t\tif (dataSource.label) {\n\t\t\treturn dataSource.label;\n\t\t}\n\t\tconst itemMeta: ItemMeta | undefined = meta?.dataItems.find(\n\t\t\t(item) => item.uid === dataSource.id,\n\t\t);\n\n\t\treturn itemMeta?.name ?? \"\";\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/dataItem.ts"],"names":[],"mappings":";;AAIO,SAAS,qBAAwB,GAAA;AACvC,EAAA,MAAM,OAAO,gBAAiB,EAAA;AAC9B,EAAA,OAAO,CAAC,UAAoC,KAAA;AAC3C,IAAA,IAAI,WAAW,KAAO,EAAA;AACrB,MAAA,OAAO,UAAW,CAAA,KAAA;AAAA;AAEnB,IAAM,MAAA,QAAA,GAAiC,MAAM,SAAU,CAAA,IAAA;AAAA,MACtD,CAAC,IAAA,KAAS,IAAK,CAAA,GAAA,KAAQ,UAAW,CAAA;AAAA,KACnC;AAEA,IAAA,OAAO,UAAU,IAAQ,IAAA,EAAA;AAAA,GAC1B;AACD","file":"dataItem.js","sourcesContent":["import { useScorecardMeta } from \"../components\";\nimport type { ScorecardDataSource } from \"../schemas/config\";\nimport type { ItemMeta } from \"./metadata\";\n\nexport function useGetDataSourceLabel() {\n\tconst meta = useScorecardMeta();\n\treturn (dataSource: ScorecardDataSource) => {\n\t\tif (dataSource.label) {\n\t\t\treturn dataSource.label;\n\t\t}\n\t\tconst itemMeta: ItemMeta | undefined = meta?.dataItems.find(\n\t\t\t(item) => item.uid === dataSource.id,\n\t\t);\n\n\t\treturn itemMeta?.name ?? \"\";\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/metadata.ts"],"names":[],"mappings":"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","file":"metadata.js","sourcesContent":["import { useScorecardConfig } from \"../components\";\nimport { useAlert, useConfig, useDataQuery } from \"@dhis2/app-runtime\";\nimport { useEffect, useMemo } from \"react\";\nimport { getDimensions } from \"../utils/analytics\";\nimport type { SupportedCalendar } from \"@dhis2/multi-calendar-dates/build/types/types\";\nimport type { ScorecardState } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelectorValue } from \"../state\";\n\nconst query: any = {\n\tmeta: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipData: true,\n\t\t\t\thierarchyData: true,\n\t\t\t\tshowHierarchy: true,\n\t\t\t\tenhancedConditions: true,\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n\touLevel: {\n\t\tresource: \"organisationUnitLevels\",\n\t\tparams: {\n\t\t\tfields: [\"id\", \"displayName\", \"level\"],\n\t\t},\n\t},\n};\n\nexport type ItemMeta = {\n\tuid: string;\n\tname: string;\n\tcode?: string;\n\tdescription?: string;\n\tvalueType?: string;\n\ttotalAggregationType?: string;\n\taggregationType?: string;\n\t[key: string]: string | number | undefined;\n};\n\ntype MetaResponse = {\n\tmeta: {\n\t\tcolumns: any[];\n\t\trows: [];\n\t\theaders: [];\n\t\tmetaData: {\n\t\t\tdimensions: {\n\t\t\t\tdx: string[];\n\t\t\t\tou: string[];\n\t\t\t\tpe: string[];\n\t\t\t\tco: string[];\n\t\t\t\t[key: string]: string[];\n\t\t\t};\n\t\t\titems: {\n\t\t\t\t[key: string]: ItemMeta;\n\t\t\t};\n\t\t\touNameHierarchy: {\n\t\t\t\t[key: string]: string;\n\t\t\t};\n\t\t};\n\t};\n\touLevel: {\n\t\torganisationUnitLevels: Array<{\n\t\t\tid: string;\n\t\t\tlevel: number;\n\t\t\tdisplayName: string;\n\t\t}>;\n\t};\n};\n\nexport function useGetScorecardMeta() {\n\tconst config = useScorecardConfig();\n\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\n\tconst orgUnitSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\n\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = useMemo(\n\t\t() =>\n\t\t\tgetDimensions({\n\t\t\t\tconfig,\n\t\t\t\torgUnitSelection,\n\t\t\t\tperiodSelection,\n\t\t\t}),\n\t\t[config, orgUnitSelection, periodSelection],\n\t);\n\n\tconst { loading, data, refetch, called } = useDataQuery<MetaResponse>(\n\t\tquery,\n\t\t{\n\t\t\tvariables: {\n\t\t\t\tperiods: periodsIds,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t},\n\t\t\tlazy: true,\n\t\t\tonError: (error) => {\n\t\t\t\tshow({\n\t\t\t\t\tmessage: `${i18n.t(\"Error getting scorecard data\")}: ${\n\t\t\t\t\t\terror.message\n\t\t\t\t\t}`,\n\t\t\t\t\ttype: { critical: true },\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t);\n\n\tconst orgUnits = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"ou\"]\n\t\t\t\t.map((ou) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...data?.meta?.metaData.items[ou],\n\t\t\t\t\t\thierarchy: data?.meta?.metaData?.ouNameHierarchy[ou],\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst periods = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"pe\"]\n\t\t\t\t.map((pe) => {\n\t\t\t\t\treturn data?.meta?.metaData.items[pe];\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst dataItems = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"dx\"]\n\t\t\t\t.map((dx) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...data?.meta?.metaData.items[dx],\n\t\t\t\t\t\tuid: dx,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst orgUnitLevels = useMemo(\n\t\t() => data?.ouLevel?.organisationUnitLevels ?? [],\n\t\t[data?.ouLevel?.organisationUnitLevels],\n\t);\n\n\tuseEffect(() => {\n\t\trefetch({\n\t\t\tperiods: periodsIds,\n\t\t\torgUnits: orgUnitsIds,\n\t\t\tdataItems: dataItemsIds,\n\t\t});\n\t}, [periodsIds, orgUnitsIds, dataItemsIds]);\n\n\treturn {\n\t\tloading,\n\t\torgUnits,\n\t\tperiods,\n\t\tdataItems,\n\t\torgUnitLevels,\n\t\tcalled,\n\t};\n}\n\nexport function useCalendar() {\n\tconst { systemInfo } = useConfig();\n\treturn (\n\t\t(systemInfo as unknown as { calendar?: SupportedCalendar })?.calendar ??\n\t\t\"iso8601\"\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/metadata.ts"],"names":[],"mappings":"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","file":"metadata.js","sourcesContent":["import { useScorecardConfig } from \"../components\";\nimport { useAlert, useConfig, useDataQuery } from \"@dhis2/app-runtime\";\nimport { useEffect, useMemo } from \"react\";\nimport { getDimensions } from \"../utils/analytics\";\nimport type { SupportedCalendar } from \"@dhis2/multi-calendar-dates/build/types/types\";\nimport type { ScorecardState } from \"../schemas/config\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelectorValue } from \"../state\";\n\nconst query: any = {\n\tmeta: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipData: true,\n\t\t\t\thierarchyData: true,\n\t\t\t\tshowHierarchy: true,\n\t\t\t\tenhancedConditions: true,\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n\touLevel: {\n\t\tresource: \"organisationUnitLevels\",\n\t\tparams: {\n\t\t\tfields: [\"id\", \"displayName\", \"level\"],\n\t\t},\n\t},\n};\n\nexport type ItemMeta = {\n\tuid: string;\n\tname: string;\n\tcode?: string;\n\tdescription?: string;\n\tvalueType?: string;\n\ttotalAggregationType?: string;\n\taggregationType?: string;\n\t[key: string]: string | number | undefined;\n};\n\ntype MetaResponse = {\n\tmeta: {\n\t\tcolumns: any[];\n\t\trows: [];\n\t\theaders: [];\n\t\tmetaData: {\n\t\t\tdimensions: {\n\t\t\t\tdx: string[];\n\t\t\t\tou: string[];\n\t\t\t\tpe: string[];\n\t\t\t\tco: string[];\n\t\t\t\t[key: string]: string[];\n\t\t\t};\n\t\t\titems: {\n\t\t\t\t[key: string]: ItemMeta;\n\t\t\t};\n\t\t\touNameHierarchy: {\n\t\t\t\t[key: string]: string;\n\t\t\t};\n\t\t};\n\t};\n\touLevel: {\n\t\torganisationUnitLevels: Array<{\n\t\t\tid: string;\n\t\t\tlevel: number;\n\t\t\tdisplayName: string;\n\t\t}>;\n\t};\n};\n\nexport function useGetScorecardMeta() {\n\tconst config = useScorecardConfig();\n\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\n\tconst orgUnitSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\n\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = useMemo(\n\t\t() =>\n\t\t\tgetDimensions({\n\t\t\t\tconfig,\n\t\t\t\torgUnitSelection,\n\t\t\t\tperiodSelection,\n\t\t\t}),\n\t\t[config, orgUnitSelection, periodSelection],\n\t);\n\n\tconst { loading, data, refetch, called } = useDataQuery<MetaResponse>(\n\t\tquery,\n\t\t{\n\t\t\tvariables: {\n\t\t\t\tperiods: periodsIds,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t},\n\t\t\tlazy: true,\n\t\t\tonError: (error) => {\n\t\t\t\tshow({\n\t\t\t\t\tmessage: `${i18n.t(\"Error getting scorecard data\")}: ${\n\t\t\t\t\t\terror.message\n\t\t\t\t\t}`,\n\t\t\t\t\ttype: { critical: true },\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t);\n\n\tconst orgUnits = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"ou\"]\n\t\t\t\t.map((ou) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...data?.meta?.metaData.items[ou],\n\t\t\t\t\t\thierarchy: data?.meta?.metaData?.ouNameHierarchy[ou],\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst periods = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"pe\"]\n\t\t\t\t.map((pe) => {\n\t\t\t\t\treturn data?.meta?.metaData.items[pe];\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst dataItems = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"dx\"]\n\t\t\t\t.map((dx) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...data?.meta?.metaData.items[dx],\n\t\t\t\t\t\tuid: dx,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst orgUnitLevels = useMemo(\n\t\t() => data?.ouLevel?.organisationUnitLevels ?? [],\n\t\t[data?.ouLevel?.organisationUnitLevels],\n\t);\n\n\tuseEffect(() => {\n\t\trefetch({\n\t\t\tperiods: periodsIds,\n\t\t\torgUnits: orgUnitsIds,\n\t\t\tdataItems: dataItemsIds,\n\t\t});\n\t}, [periodsIds, orgUnitsIds, dataItemsIds]);\n\n\treturn {\n\t\tloading,\n\t\torgUnits,\n\t\tperiods,\n\t\tdataItems,\n\t\torgUnitLevels,\n\t\tcalled,\n\t};\n}\n\nexport function useCalendar() {\n\tconst { systemInfo } = useConfig();\n\treturn (\n\t\t(systemInfo as unknown as { calendar?: SupportedCalendar })?.calendar ??\n\t\t\"iso8601\"\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/orgUnit.ts"],"names":[],"mappings":";;;;;;AAUO,SAAS,qBAAwB,GAAA;AACvC,EAAA,MAAM,OAAO,gBAAiB,EAAA,CAAA;AAE9B,EAAA,OAAO,QAAQ,MAAM;AACpB,IAAA,MAAM,sBAAsB,MAAO,CAAA,IAAA,EAAM,aAAiB,IAAA,IAAI,OAAO,CAAA,CAAA;AACrE,IAAA,OAAO,KAAK,mBAAmB,CAAA,CAAA;AAAA,GAC7B,EAAA,CAAC,IAAM,EAAA,aAAa,CAAC,CAAA,CAAA;AACzB,CAAA;AAEA,MAAM,YAAoB,GAAA;AAAA,EACzB,EAAI,EAAA;AAAA,IACH,QAAU,EAAA,CAAA,iBAAA,CAAA;AAAA,IACV,MAAQ,EAAA,CAAC,EAAE,GAAA,EAA6B,KAAA;AACvC,MAAO,OAAA;AAAA,QACN,MAAQ,EAAA,CAAA,OAAA,EAAU,GAAI,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,QAC/B,MAAQ,EAAA,CAAC,IAAM,EAAA,aAAA,EAAe,QAAQ,OAAO,CAAA;AAAA,OAC9C,CAAA;AAAA,KACD;AAAA,GACD;AACD,CAAA,CAAA;AAQO,SAAS,YAAY,UAAuB,EAAA;AAClD,EAAA,MAAM,EAAE,OAAA,EAAS,IAAM,EAAA,OAAA,EAAY,GAAA,YAAA;AAAA,IAClC,YAAA;AAAA,IACA;AAAA,MACC,SAAW,EAAA;AAAA,QACV,GAAK,EAAA,UAAA;AAAA,OACN;AAAA,MACA,IAAA,EAAM,QAAQ,UAAU,CAAA;AAAA,KACzB;AAAA,GACD,CAAA;AAEA,EAAA,eAAA,CAAgB,MAAM;AACrB,IAAA,IAAI,UAAY,EAAA;AACf,MAAA,OAAA,CAAQ,EAAE,GAAK,EAAA,UAAA,EAAY,CAAE,CAAA,KAAA,CAAM,QAAQ,KAAK,CAAA,CAAA;AAAA,KACjD;AAAA,GACE,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA,CAAA;AAExB,EAAO,OAAA;AAAA,IACN,OAAA;AAAA,IACA,QAAA,EAAU,MAAM,EAAI,EAAA,iBAAA;AAAA,IACpB,OAAA;AAAA,GAGD,CAAA;AACD,CAAA;AAEA,MAAM,iBAAoB,GAAA;AAAA,EACzB,KAAO,EAAA;AAAA,IACN,QAAU,EAAA,wBAAA;AAAA,IACV,MAAQ,EAAA,CAAC,EAAE,GAAA,EAAe,KAAA;AACzB,MAAO,OAAA;AAAA,QACN,MAAQ,EAAA,CAAC,IAAM,EAAA,aAAA,EAAe,OAAO,CAAA;AAAA,QACrC,QAAQ,CAAC,CAAA,OAAA,EAAU,IAAI,IAAK,CAAA,GAAG,CAAC,CAAG,CAAA,CAAA,CAAA;AAAA,OACpC,CAAA;AAAA,KACD;AAAA,GACD;AACD,CAAA,CAAA;AAEO,SAAS,iBAAiB,UAA8B,EAAA;AAC9D,EAAA,MAAM,EAAE,OAAS,EAAA,IAAA,EAAM,OAAQ,EAAA,GAAI,aAEhC,iBAAmB,EAAA;AAAA,IACrB,SAAW,EAAA;AAAA,MACV,EAAI,EAAA,UAAA;AAAA,KACL;AAAA,IACA,IAAM,EAAA,IAAA;AAAA,GACN,CAAA,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACf,IAAI,IAAA,CAAC,OAAQ,CAAA,UAAU,CAAG,EAAA;AACzB,MAAA,OAAA,CAAQ,EAAE,GAAK,EAAA,UAAA,EAAY,CAAE,CAAA,KAAA,CAAM,QAAQ,KAAK,CAAA,CAAA;AAAA,KACjD;AAAA,GACE,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA,CAAA;AAExB,EAAO,OAAA;AAAA,IACN,OAAA;AAAA,IACA,MAAA,EAAQ,MAAM,KAAO,EAAA,sBAAA;AAAA,IACrB,OAAA;AAAA,GAGD,CAAA;AACD","file":"orgUnit.js","sourcesContent":["import { useScorecardMeta } from \"../components\";\nimport { useEffect, useMemo } from \"react\";\nimport { isEmpty, last, sortBy } from \"lodash\";\nimport type {\n\tOrganisationUnit,\n\tOrganisationUnitLevel,\n} from \"@hisptz/dhis2-utils\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport { useUpdateEffect } from \"usehooks-ts\";\n\nexport function useLowestOrgUnitLevel() {\n\tconst meta = useScorecardMeta();\n\n\treturn useMemo(() => {\n\t\tconst sortedOrgUnitLevels = sortBy(meta?.orgUnitLevels ?? [], \"level\");\n\t\treturn last(sortedOrgUnitLevels);\n\t}, [meta?.orgUnitLevels]);\n}\n\nconst orgUnitQuery: any = {\n\tou: {\n\t\tresource: `organisationUnits`,\n\t\tparams: ({ ids }: { ids: string[] }) => {\n\t\t\treturn {\n\t\t\t\tfilter: `id:in:[${ids.join(\",\")}]`,\n\t\t\t\tfields: [\"id\", \"displayName\", \"path\", \"level\"],\n\t\t\t};\n\t\t},\n\t},\n};\n\ntype OrgUnitResponse = {\n\tou: {\n\t\torganisationUnits: Array<OrganisationUnit>;\n\t};\n};\n\nexport function useOrgUnits(initialIds?: string[]) {\n\tconst { refetch, data, loading } = useDataQuery<OrgUnitResponse>(\n\t\torgUnitQuery,\n\t\t{\n\t\t\tvariables: {\n\t\t\t\tids: initialIds,\n\t\t\t},\n\t\t\tlazy: isEmpty(initialIds),\n\t\t},\n\t);\n\n\tuseUpdateEffect(() => {\n\t\tif (initialIds) {\n\t\t\trefetch({ ids: initialIds }).catch(console.error);\n\t\t}\n\t}, [refetch, initialIds]);\n\n\treturn {\n\t\tloading,\n\t\torgUnits: data?.ou?.organisationUnits,\n\t\trefetch: refetch as unknown as (\n\t\t\tvariables: Record<string, any>,\n\t\t) => OrgUnitResponse,\n\t};\n}\n\nconst orgUnitLevelQuery = {\n\tlevel: {\n\t\tresource: \"organisationUnitLevels\",\n\t\tparams: ({ ids }: any) => {\n\t\t\treturn {\n\t\t\t\tfields: [\"id\", \"displayName\", \"level\"],\n\t\t\t\tfilter: [`id:in:[${ids.join(\",\")}]`],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport function useOrgUnitLevels(initialIds?: string[] | null) {\n\tconst { refetch, data, loading } = useDataQuery<{\n\t\tlevel: { organisationUnitLevels: OrganisationUnitLevel[] };\n\t}>(orgUnitLevelQuery, {\n\t\tvariables: {\n\t\t\tid: initialIds,\n\t\t},\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\tif (!isEmpty(initialIds)) {\n\t\t\trefetch({ ids: initialIds }).catch(console.error);\n\t\t}\n\t}, [refetch, initialIds]);\n\n\treturn {\n\t\tloading,\n\t\tlevels: data?.level?.organisationUnitLevels,\n\t\trefetch: refetch as unknown as (variables: Record<string, any>) => {\n\t\t\tlevel: { organisationUnitLevels: OrganisationUnitLevel[] };\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/orgUnit.ts"],"names":[],"mappings":";;;;;;AAUO,SAAS,qBAAwB,GAAA;AACvC,EAAA,MAAM,OAAO,gBAAiB,EAAA;AAE9B,EAAA,OAAO,QAAQ,MAAM;AACpB,IAAA,MAAM,sBAAsB,MAAO,CAAA,IAAA,EAAM,aAAiB,IAAA,IAAI,OAAO,CAAA;AACrE,IAAA,OAAO,KAAK,mBAAmB,CAAA;AAAA,GAC7B,EAAA,CAAC,IAAM,EAAA,aAAa,CAAC,CAAA;AACzB;AAEA,MAAM,YAAoB,GAAA;AAAA,EACzB,EAAI,EAAA;AAAA,IACH,QAAU,EAAA,CAAA,iBAAA,CAAA;AAAA,IACV,MAAQ,EAAA,CAAC,EAAE,GAAA,EAA6B,KAAA;AACvC,MAAO,OAAA;AAAA,QACN,MAAQ,EAAA,CAAA,OAAA,EAAU,GAAI,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,QAC/B,MAAQ,EAAA,CAAC,IAAM,EAAA,aAAA,EAAe,QAAQ,OAAO;AAAA,OAC9C;AAAA;AACD;AAEF,CAAA;AAQO,SAAS,YAAY,UAAuB,EAAA;AAClD,EAAA,MAAM,EAAE,OAAA,EAAS,IAAM,EAAA,OAAA,EAAY,GAAA,YAAA;AAAA,IAClC,YAAA;AAAA,IACA;AAAA,MACC,SAAW,EAAA;AAAA,QACV,GAAK,EAAA;AAAA,OACN;AAAA,MACA,IAAA,EAAM,QAAQ,UAAU;AAAA;AACzB,GACD;AAEA,EAAA,eAAA,CAAgB,MAAM;AACrB,IAAA,IAAI,UAAY,EAAA;AACf,MAAA,OAAA,CAAQ,EAAE,GAAK,EAAA,UAAA,EAAY,CAAE,CAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AAAA;AACjD,GACE,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA;AAExB,EAAO,OAAA;AAAA,IACN,OAAA;AAAA,IACA,QAAA,EAAU,MAAM,EAAI,EAAA,iBAAA;AAAA,IACpB;AAAA,GAGD;AACD;AAEA,MAAM,iBAAoB,GAAA;AAAA,EACzB,KAAO,EAAA;AAAA,IACN,QAAU,EAAA,wBAAA;AAAA,IACV,MAAQ,EAAA,CAAC,EAAE,GAAA,EAAe,KAAA;AACzB,MAAO,OAAA;AAAA,QACN,MAAQ,EAAA,CAAC,IAAM,EAAA,aAAA,EAAe,OAAO,CAAA;AAAA,QACrC,QAAQ,CAAC,CAAA,OAAA,EAAU,IAAI,IAAK,CAAA,GAAG,CAAC,CAAG,CAAA,CAAA;AAAA,OACpC;AAAA;AACD;AAEF,CAAA;AAEO,SAAS,iBAAiB,UAA8B,EAAA;AAC9D,EAAA,MAAM,EAAE,OAAS,EAAA,IAAA,EAAM,OAAQ,EAAA,GAAI,aAEhC,iBAAmB,EAAA;AAAA,IACrB,SAAW,EAAA;AAAA,MACV,EAAI,EAAA;AAAA,KACL;AAAA,IACA,IAAM,EAAA;AAAA,GACN,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACf,IAAI,IAAA,CAAC,OAAQ,CAAA,UAAU,CAAG,EAAA;AACzB,MAAA,OAAA,CAAQ,EAAE,GAAK,EAAA,UAAA,EAAY,CAAE,CAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AAAA;AACjD,GACE,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA;AAExB,EAAO,OAAA;AAAA,IACN,OAAA;AAAA,IACA,MAAA,EAAQ,MAAM,KAAO,EAAA,sBAAA;AAAA,IACrB;AAAA,GAGD;AACD","file":"orgUnit.js","sourcesContent":["import { useScorecardMeta } from \"../components\";\nimport { useEffect, useMemo } from \"react\";\nimport { isEmpty, last, sortBy } from \"lodash\";\nimport type {\n\tOrganisationUnit,\n\tOrganisationUnitLevel,\n} from \"@hisptz/dhis2-utils\";\nimport { useDataQuery } from \"@dhis2/app-runtime\";\nimport { useUpdateEffect } from \"usehooks-ts\";\n\nexport function useLowestOrgUnitLevel() {\n\tconst meta = useScorecardMeta();\n\n\treturn useMemo(() => {\n\t\tconst sortedOrgUnitLevels = sortBy(meta?.orgUnitLevels ?? [], \"level\");\n\t\treturn last(sortedOrgUnitLevels);\n\t}, [meta?.orgUnitLevels]);\n}\n\nconst orgUnitQuery: any = {\n\tou: {\n\t\tresource: `organisationUnits`,\n\t\tparams: ({ ids }: { ids: string[] }) => {\n\t\t\treturn {\n\t\t\t\tfilter: `id:in:[${ids.join(\",\")}]`,\n\t\t\t\tfields: [\"id\", \"displayName\", \"path\", \"level\"],\n\t\t\t};\n\t\t},\n\t},\n};\n\ntype OrgUnitResponse = {\n\tou: {\n\t\torganisationUnits: Array<OrganisationUnit>;\n\t};\n};\n\nexport function useOrgUnits(initialIds?: string[]) {\n\tconst { refetch, data, loading } = useDataQuery<OrgUnitResponse>(\n\t\torgUnitQuery,\n\t\t{\n\t\t\tvariables: {\n\t\t\t\tids: initialIds,\n\t\t\t},\n\t\t\tlazy: isEmpty(initialIds),\n\t\t},\n\t);\n\n\tuseUpdateEffect(() => {\n\t\tif (initialIds) {\n\t\t\trefetch({ ids: initialIds }).catch(console.error);\n\t\t}\n\t}, [refetch, initialIds]);\n\n\treturn {\n\t\tloading,\n\t\torgUnits: data?.ou?.organisationUnits,\n\t\trefetch: refetch as unknown as (\n\t\t\tvariables: Record<string, any>,\n\t\t) => OrgUnitResponse,\n\t};\n}\n\nconst orgUnitLevelQuery = {\n\tlevel: {\n\t\tresource: \"organisationUnitLevels\",\n\t\tparams: ({ ids }: any) => {\n\t\t\treturn {\n\t\t\t\tfields: [\"id\", \"displayName\", \"level\"],\n\t\t\t\tfilter: [`id:in:[${ids.join(\",\")}]`],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport function useOrgUnitLevels(initialIds?: string[] | null) {\n\tconst { refetch, data, loading } = useDataQuery<{\n\t\tlevel: { organisationUnitLevels: OrganisationUnitLevel[] };\n\t}>(orgUnitLevelQuery, {\n\t\tvariables: {\n\t\t\tid: initialIds,\n\t\t},\n\t\tlazy: true,\n\t});\n\n\tuseEffect(() => {\n\t\tif (!isEmpty(initialIds)) {\n\t\t\trefetch({ ids: initialIds }).catch(console.error);\n\t\t}\n\t}, [refetch, initialIds]);\n\n\treturn {\n\t\tloading,\n\t\tlevels: data?.level?.organisationUnitLevels,\n\t\trefetch: refetch as unknown as (variables: Record<string, any>) => {\n\t\t\tlevel: { organisationUnitLevels: OrganisationUnitLevel[] };\n\t\t},\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/period.ts"],"names":[],"mappings":";;AAEO,SAAS,kBAAqB,GAAA;AACpC,EAAA,MAAM,SAAS,kBAAmB,EAAA,CAAA;AAElC,EAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AACA,EAAwB,MAAO,CAAA,gBAAA;AAChC","file":"period.js","sourcesContent":["import { useScorecardConfig } from \"../components/ConfigProvider\";\n\nexport function usePeriodSelection() {\n\tconst config = useScorecardConfig();\n\n\tif (!config) {\n\t\treturn null;\n\t}\n\tconst periodSelection = config.periodSelection;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/period.ts"],"names":[],"mappings":";;AAEO,SAAS,kBAAqB,GAAA;AACpC,EAAA,MAAM,SAAS,kBAAmB,EAAA;AAElC,EAAA,IAAI,CAAC,MAAQ,EAAA;AACZ,IAAO,OAAA,IAAA;AAAA;AAER,EAAwB,MAAO,CAAA;AAChC","file":"period.js","sourcesContent":["import { useScorecardConfig } from \"../components/ConfigProvider\";\n\nexport function usePeriodSelection() {\n\tconst config = useScorecardConfig();\n\n\tif (!config) {\n\t\treturn null;\n\t}\n\tconst periodSelection = config.periodSelection;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { getCoreRowModel, getFilteredRowModel, getExpandedRowModel, getPaginationRowModel, getSortedRowModel } from '@tanstack/react-table';
1
+ import { getSortedRowModel, getPaginationRowModel, getExpandedRowModel, getFilteredRowModel, getCoreRowModel } from '@tanstack/react-table';
2
2
  import { useTableColumns } from './columns';
3
3
  import { useState, useMemo, useEffect, useCallback } from 'react';
4
4
  import { useScorecardMeta, useScorecardData, useScorecardConfig } from '../components';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/table.ts"],"names":["emptyRows","rows"],"mappings":"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","file":"table.js","sourcesContent":["import {\n\ttype ColumnFiltersState,\n\ttype ExpandedState,\n\tgetCoreRowModel,\n\tgetExpandedRowModel,\n\tgetFilteredRowModel,\n\tgetPaginationRowModel,\n\tgetSortedRowModel,\n\ttype PaginationState,\n\ttype Row,\n\ttype SortingState,\n\ttype TableOptions,\n\ttype VisibilityState,\n} from \"@tanstack/react-table\";\nimport { useTableColumns } from \"./columns\";\nimport type {\n\tScorecardTableData,\n\tScorecardViewOptions,\n} from \"../schemas/config\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n\ttype ScorecardMeta,\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { type AnalyticsData, getRowsFromMeta } from \"../utils/data\";\nimport { isEmpty, meanBy } from \"lodash\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport { getAverageValue } from \"../utils/columns\";\nimport { useScorecardStateSelectorValue } from \"../state\";\n\nexport function getRowValues({\n\tdata,\n\tshowDataInRows,\n\trow,\n}: {\n\trow: ScorecardTableData;\n\tdata: AnalyticsData[];\n\tshowDataInRows: boolean;\n}): AnalyticsData[] {\n\treturn data.filter((datum) => {\n\t\tif (showDataInRows) {\n\t\t\treturn row\n\t\t\t\t.dataHolder!.dataSources.map(({ id }) => id)\n\t\t\t\t.includes(datum.dx!);\n\t\t}\n\t\treturn datum.ou === row.orgUnit!.uid;\n\t});\n}\n\nexport function filterRows({\n\trows,\n\temptyRows,\n\tdataEngine,\n\tshowDataInRows,\n\taverageDisplayType,\n\tmeta,\n}: {\n\temptyRows: ScorecardViewOptions[\"emptyRows\"];\n\tshowDataInRows: boolean;\n\taverageDisplayType: ScorecardViewOptions[\"averageDisplayType\"];\n\tdataEngine: ScorecardDataEngine;\n\trows: ScorecardTableData[];\n\tmeta: ScorecardMeta;\n}) {\n\tif (!dataEngine.isDone) {\n\t\treturn [];\n\t}\n\tconst hiddenRows: number[] = [];\n\tconst rowsWithDataValues = rows.map((row, index) => {\n\t\tconst values = getRowValues({\n\t\t\trow,\n\t\t\tdata: dataEngine.data,\n\t\t\tshowDataInRows,\n\t\t});\n\t\tconst average = meanBy(values, ({ value }) => parseFloat(value!));\n\t\treturn {\n\t\t\trow,\n\t\t\tindex,\n\t\t\tvalues,\n\t\t\taverage,\n\t\t};\n\t});\n\tif (!emptyRows) {\n\t\t//Filter out all e\n\t\tconst emptyRows = rowsWithDataValues\n\t\t\t.filter(({ values }) => isEmpty(values))\n\t\t\t.map(({ index }) => index);\n\t\thiddenRows.push(...emptyRows);\n\t}\n\n\tif (averageDisplayType !== \"ALL\") {\n\t\tconst average = getAverageValue({\n\t\t\tdataValues: dataEngine.data,\n\t\t\tmeta,\n\t\t});\n\t\tif (averageDisplayType === \"BELOW_AVERAGE\") {\n\t\t\tconst aboveAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage > average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...aboveAverageRows);\n\t\t} else {\n\t\t\tconst belowAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage < average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...belowAverageRows);\n\t\t}\n\t}\n\n\treturn hiddenRows;\n}\n\nexport function useTableRows(): ScorecardTableData[] {\n\tconst meta = useScorecardMeta();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst emptyRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"emptyRows\",\n\t]);\n\tconst averageDisplayType = useScorecardStateSelectorValue<\n\t\tScorecardViewOptions[\"averageDisplayType\"]\n\t>([\"options\", \"averageDisplayType\"]);\n\n\tconst config = useScorecardConfig();\n\n\tconst [hiddenRowIndexes, setHiddenRowIndexes] = useState<number[]>([]);\n\n\tif (meta == null) return [];\n\n\tconst rows = useMemo(() => {\n\t\tconst rows = getRowsFromMeta({\n\t\t\tmeta,\n\t\t\tshowDataInRows,\n\t\t\tconfig,\n\t\t});\n\n\t\tif (isEmpty(hiddenRowIndexes)) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn rows.filter((_, index) => !hiddenRowIndexes.includes(index));\n\t}, [meta, showDataInRows, config, hiddenRowIndexes]);\n\n\tuseEffect(() => {\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetHiddenRowIndexes(\n\t\t\t\t\tfilterRows({\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\tdataEngine,\n\t\t\t\t\t\tshowDataInRows,\n\t\t\t\t\t\trows,\n\t\t\t\t\t\taverageDisplayType,\n\t\t\t\t\t\temptyRows,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tif (dataEngine.isDone) {\n\t\t\tsetHiddenRowIndexes(\n\t\t\t\tfilterRows({\n\t\t\t\t\tmeta,\n\t\t\t\t\tdataEngine,\n\t\t\t\t\tshowDataInRows,\n\t\t\t\t\trows,\n\t\t\t\t\taverageDisplayType,\n\t\t\t\t\temptyRows,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\treturn dataEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [averageDisplayType, emptyRows, showDataInRows]);\n\n\treturn rows;\n}\n\nexport function useColumnVisibility() {\n\tconst showAverageColumn = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"averageColumn\",\n\t]);\n\tconst showItemNumber = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding =\n\t\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? false;\n\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n\t\taverage: showAverageColumn,\n\t\tcount: showItemNumber,\n\t\texpand: !disableExpanding,\n\t});\n\n\tuseEffect(() => {\n\t\tsetColumnVisibility({\n\t\t\taverage: showAverageColumn,\n\t\t\tcount: showItemNumber,\n\t\t\texpand: !disableExpanding && !showDataInRows,\n\t\t});\n\t}, [showAverageColumn, showItemNumber, disableExpanding, showDataInRows]);\n\n\treturn {\n\t\tcolumnVisibility,\n\t\tsetColumnVisibility,\n\t};\n}\n\nexport function useRowExpanding() {\n\tconst [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst disableExpanding =\n\t\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? false;\n\n\tconst getRowCanExpand = useCallback((row: Row<ScorecardTableData>) => {\n\t\tconst expandCell = row\n\t\t\t.getVisibleCells()\n\t\t\t.find(({ id }) => id.includes(\"expand\"));\n\n\t\tif (!expandCell) return false;\n\t\treturn expandCell.getValue() as boolean;\n\t}, []);\n\n\treturn {\n\t\texpanded,\n\t\tonExpandedChange: disableExpanding ? undefined : setExpanded,\n\t\tgetRowCanExpand,\n\t};\n}\n\nexport function useTableSetup(): TableOptions<ScorecardTableData> {\n\tconst [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\tconst disablePagination = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disablePagination\",\n\t]);\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tpageSize: 50,\n\t\tpageIndex: 0,\n\t});\n\n\tconst { columnVisibility, setColumnVisibility } = useColumnVisibility();\n\tconst { expanded, onExpandedChange, getRowCanExpand } = useRowExpanding();\n\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst columns = useTableColumns();\n\tconst data = useTableRows();\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tstate: {\n\t\t\t\tcolumnFilters,\n\t\t\t\tsorting,\n\t\t\t\tcolumnVisibility,\n\t\t\t\texpanded,\n\t\t\t\t...(disablePagination ? {} : { pagination }),\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tdisablePagination,\n\t\t\t},\n\t\t\tautoResetPageIndex: true,\n\t\t\tonExpandedChange: onExpandedChange,\n\t\t\trowCount: data.length,\n\t\t\tgetRowCanExpand,\n\t\t\tonColumnFiltersChange: setColumnFilters,\n\t\t\tonSortingChange: setSorting,\n\t\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\t\tgetExpandedRowModel: getExpandedRowModel(),\n\t\t\tgetPaginationRowModel: disablePagination\n\t\t\t\t? undefined\n\t\t\t\t: getPaginationRowModel(),\n\t\t\tgetSortedRowModel: getSortedRowModel(),\n\t\t\tonColumnVisibilityChange: setColumnVisibility,\n\t\t\tonPaginationChange: disablePagination ? undefined : setPagination,\n\t\t}),\n\t\t[\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tcolumnFilters,\n\t\t\tsorting,\n\t\t\tcolumnVisibility,\n\t\t\tpagination,\n\t\t\tgetRowCanExpand,\n\t\t\texpanded,\n\t\t],\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/hooks/table.ts"],"names":["emptyRows","rows"],"mappings":"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","file":"table.js","sourcesContent":["import {\n\ttype ColumnFiltersState,\n\ttype ExpandedState,\n\tgetCoreRowModel,\n\tgetExpandedRowModel,\n\tgetFilteredRowModel,\n\tgetPaginationRowModel,\n\tgetSortedRowModel,\n\ttype PaginationState,\n\ttype Row,\n\ttype SortingState,\n\ttype TableOptions,\n\ttype VisibilityState,\n} from \"@tanstack/react-table\";\nimport { useTableColumns } from \"./columns\";\nimport type {\n\tScorecardTableData,\n\tScorecardViewOptions,\n} from \"../schemas/config\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n\ttype ScorecardMeta,\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { type AnalyticsData, getRowsFromMeta } from \"../utils/data\";\nimport { isEmpty, meanBy } from \"lodash\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport { getAverageValue } from \"../utils/columns\";\nimport { useScorecardStateSelectorValue } from \"../state\";\n\nexport function getRowValues({\n\tdata,\n\tshowDataInRows,\n\trow,\n}: {\n\trow: ScorecardTableData;\n\tdata: AnalyticsData[];\n\tshowDataInRows: boolean;\n}): AnalyticsData[] {\n\treturn data.filter((datum) => {\n\t\tif (showDataInRows) {\n\t\t\treturn row\n\t\t\t\t.dataHolder!.dataSources.map(({ id }) => id)\n\t\t\t\t.includes(datum.dx!);\n\t\t}\n\t\treturn datum.ou === row.orgUnit!.uid;\n\t});\n}\n\nexport function filterRows({\n\trows,\n\temptyRows,\n\tdataEngine,\n\tshowDataInRows,\n\taverageDisplayType,\n\tmeta,\n}: {\n\temptyRows: ScorecardViewOptions[\"emptyRows\"];\n\tshowDataInRows: boolean;\n\taverageDisplayType: ScorecardViewOptions[\"averageDisplayType\"];\n\tdataEngine: ScorecardDataEngine;\n\trows: ScorecardTableData[];\n\tmeta: ScorecardMeta;\n}) {\n\tif (!dataEngine.isDone) {\n\t\treturn [];\n\t}\n\tconst hiddenRows: number[] = [];\n\tconst rowsWithDataValues = rows.map((row, index) => {\n\t\tconst values = getRowValues({\n\t\t\trow,\n\t\t\tdata: dataEngine.data,\n\t\t\tshowDataInRows,\n\t\t});\n\t\tconst average = meanBy(values, ({ value }) => parseFloat(value!));\n\t\treturn {\n\t\t\trow,\n\t\t\tindex,\n\t\t\tvalues,\n\t\t\taverage,\n\t\t};\n\t});\n\tif (!emptyRows) {\n\t\t//Filter out all e\n\t\tconst emptyRows = rowsWithDataValues\n\t\t\t.filter(({ values }) => isEmpty(values))\n\t\t\t.map(({ index }) => index);\n\t\thiddenRows.push(...emptyRows);\n\t}\n\n\tif (averageDisplayType !== \"ALL\") {\n\t\tconst average = getAverageValue({\n\t\t\tdataValues: dataEngine.data,\n\t\t\tmeta,\n\t\t});\n\t\tif (averageDisplayType === \"BELOW_AVERAGE\") {\n\t\t\tconst aboveAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage > average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...aboveAverageRows);\n\t\t} else {\n\t\t\tconst belowAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage < average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...belowAverageRows);\n\t\t}\n\t}\n\n\treturn hiddenRows;\n}\n\nexport function useTableRows(): ScorecardTableData[] {\n\tconst meta = useScorecardMeta();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst emptyRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"emptyRows\",\n\t]);\n\tconst averageDisplayType = useScorecardStateSelectorValue<\n\t\tScorecardViewOptions[\"averageDisplayType\"]\n\t>([\"options\", \"averageDisplayType\"]);\n\n\tconst config = useScorecardConfig();\n\n\tconst [hiddenRowIndexes, setHiddenRowIndexes] = useState<number[]>([]);\n\n\tif (meta == null) return [];\n\n\tconst rows = useMemo(() => {\n\t\tconst rows = getRowsFromMeta({\n\t\t\tmeta,\n\t\t\tshowDataInRows,\n\t\t\tconfig,\n\t\t});\n\n\t\tif (isEmpty(hiddenRowIndexes)) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn rows.filter((_, index) => !hiddenRowIndexes.includes(index));\n\t}, [meta, showDataInRows, config, hiddenRowIndexes]);\n\n\tuseEffect(() => {\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetHiddenRowIndexes(\n\t\t\t\t\tfilterRows({\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\tdataEngine,\n\t\t\t\t\t\tshowDataInRows,\n\t\t\t\t\t\trows,\n\t\t\t\t\t\taverageDisplayType,\n\t\t\t\t\t\temptyRows,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tif (dataEngine.isDone) {\n\t\t\tsetHiddenRowIndexes(\n\t\t\t\tfilterRows({\n\t\t\t\t\tmeta,\n\t\t\t\t\tdataEngine,\n\t\t\t\t\tshowDataInRows,\n\t\t\t\t\trows,\n\t\t\t\t\taverageDisplayType,\n\t\t\t\t\temptyRows,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\treturn dataEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [averageDisplayType, emptyRows, showDataInRows]);\n\n\treturn rows;\n}\n\nexport function useColumnVisibility() {\n\tconst showAverageColumn = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"averageColumn\",\n\t]);\n\tconst showItemNumber = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding =\n\t\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? false;\n\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n\t\taverage: showAverageColumn,\n\t\tcount: showItemNumber,\n\t\texpand: !disableExpanding,\n\t});\n\n\tuseEffect(() => {\n\t\tsetColumnVisibility({\n\t\t\taverage: showAverageColumn,\n\t\t\tcount: showItemNumber,\n\t\t\texpand: !disableExpanding && !showDataInRows,\n\t\t});\n\t}, [showAverageColumn, showItemNumber, disableExpanding, showDataInRows]);\n\n\treturn {\n\t\tcolumnVisibility,\n\t\tsetColumnVisibility,\n\t};\n}\n\nexport function useRowExpanding() {\n\tconst [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst disableExpanding =\n\t\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? false;\n\n\tconst getRowCanExpand = useCallback((row: Row<ScorecardTableData>) => {\n\t\tconst expandCell = row\n\t\t\t.getVisibleCells()\n\t\t\t.find(({ id }) => id.includes(\"expand\"));\n\n\t\tif (!expandCell) return false;\n\t\treturn expandCell.getValue() as boolean;\n\t}, []);\n\n\treturn {\n\t\texpanded,\n\t\tonExpandedChange: disableExpanding ? undefined : setExpanded,\n\t\tgetRowCanExpand,\n\t};\n}\n\nexport function useTableSetup(): TableOptions<ScorecardTableData> {\n\tconst [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\tconst disablePagination = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disablePagination\",\n\t]);\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tpageSize: 50,\n\t\tpageIndex: 0,\n\t});\n\n\tconst { columnVisibility, setColumnVisibility } = useColumnVisibility();\n\tconst { expanded, onExpandedChange, getRowCanExpand } = useRowExpanding();\n\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst columns = useTableColumns();\n\tconst data = useTableRows();\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tstate: {\n\t\t\t\tcolumnFilters,\n\t\t\t\tsorting,\n\t\t\t\tcolumnVisibility,\n\t\t\t\texpanded,\n\t\t\t\t...(disablePagination ? {} : { pagination }),\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tdisablePagination,\n\t\t\t},\n\t\t\tautoResetPageIndex: true,\n\t\t\tonExpandedChange: onExpandedChange,\n\t\t\trowCount: data.length,\n\t\t\tgetRowCanExpand,\n\t\t\tonColumnFiltersChange: setColumnFilters,\n\t\t\tonSortingChange: setSorting,\n\t\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\t\tgetExpandedRowModel: getExpandedRowModel(),\n\t\t\tgetPaginationRowModel: disablePagination\n\t\t\t\t? undefined\n\t\t\t\t: getPaginationRowModel(),\n\t\t\tgetSortedRowModel: getSortedRowModel(),\n\t\t\tonColumnVisibilityChange: setColumnVisibility,\n\t\t\tonPaginationChange: disablePagination ? undefined : setPagination,\n\t\t}),\n\t\t[\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tcolumnFilters,\n\t\t\tsorting,\n\t\t\tcolumnVisibility,\n\t\t\tpagination,\n\t\t\tgetRowCanExpand,\n\t\t\texpanded,\n\t\t],\n\t);\n}\n"]}