@hisptz/dhis2-scorecard 1.2.30 → 1.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/components/LoadingIndicator.js +3 -5
  2. package/dist/components/LoadingIndicator.js.map +1 -1
  3. package/dist/components/ScorecardLegendsView/components/LegendView.js +86 -56
  4. package/dist/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
  5. package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js +7 -31
  6. package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
  7. package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js +16 -26
  8. package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
  9. package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js +4 -22
  10. package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
  11. package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js +6 -13
  12. package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
  13. package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js +6 -6
  14. package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
  15. package/dist/components/ScorecardTable/components/AverageCell.js +2 -2
  16. package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
  17. package/dist/components/ScorecardTable/components/AverageFooterCell.js +10 -32
  18. package/dist/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  19. package/dist/components/ScorecardTable/components/DataContainer.js +4 -1
  20. package/dist/components/ScorecardTable/components/DataContainer.js.map +1 -1
  21. package/dist/components/ScorecardTable/components/DataFooterCell.js +35 -71
  22. package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  23. package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js +45 -0
  24. package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
  25. package/dist/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
  26. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +37 -2
  27. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  28. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js +78 -0
  29. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js.map +1 -0
  30. package/dist/esm/components/LoadingIndicator.js +2 -4
  31. package/dist/esm/components/LoadingIndicator.js.map +1 -1
  32. package/dist/esm/components/ScorecardLegendsView/components/LegendView.js +86 -52
  33. package/dist/esm/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
  34. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js +7 -27
  35. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
  36. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js +16 -22
  37. package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
  38. package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js +4 -18
  39. package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
  40. package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js +4 -11
  41. package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
  42. package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js +6 -6
  43. package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
  44. package/dist/esm/components/ScorecardTable/components/AverageCell.js +2 -2
  45. package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
  46. package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js +11 -33
  47. package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  48. package/dist/esm/components/ScorecardTable/components/DataContainer.js +4 -1
  49. package/dist/esm/components/ScorecardTable/components/DataContainer.js.map +1 -1
  50. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +36 -72
  51. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  52. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js +45 -0
  53. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
  54. package/dist/esm/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
  55. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +39 -4
  56. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  57. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js +72 -0
  58. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js.map +1 -0
  59. package/dist/esm/hooks/completed.js +13 -0
  60. package/dist/esm/hooks/completed.js.map +1 -0
  61. package/dist/esm/hooks/table.js +35 -45
  62. package/dist/esm/hooks/table.js.map +1 -1
  63. package/dist/esm/hooks/value.js +51 -101
  64. package/dist/esm/hooks/value.js.map +1 -1
  65. package/dist/esm/schemas/config.js +4 -0
  66. package/dist/esm/schemas/config.js.map +1 -1
  67. package/dist/esm/utils/columns.js +15 -5
  68. package/dist/esm/utils/columns.js.map +1 -1
  69. package/dist/esm/utils/dataEngine.js +128 -83
  70. package/dist/esm/utils/dataEngine.js.map +1 -1
  71. package/dist/hooks/completed.js +15 -0
  72. package/dist/hooks/completed.js.map +1 -0
  73. package/dist/hooks/table.js +43 -53
  74. package/dist/hooks/table.js.map +1 -1
  75. package/dist/hooks/value.js +49 -98
  76. package/dist/hooks/value.js.map +1 -1
  77. package/dist/schemas/config.js +4 -0
  78. package/dist/schemas/config.js.map +1 -1
  79. package/dist/types/components/LoadingIndicator.d.ts.map +1 -1
  80. package/dist/types/components/ScorecardLegendsView/components/LegendView.d.ts +1 -1
  81. package/dist/types/components/ScorecardLegendsView/components/LegendView.d.ts.map +1 -1
  82. package/dist/types/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.d.ts.map +1 -1
  83. package/dist/types/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.d.ts.map +1 -1
  84. package/dist/types/components/ScorecardLegendsView/components/PeriodSpecificTargetView.d.ts.map +1 -1
  85. package/dist/types/components/ScorecardPrint/components/ScorecardDownloadButton.d.ts.map +1 -1
  86. package/dist/types/components/ScorecardTable/FurtherAnalysisVisualization.d.ts.map +1 -1
  87. package/dist/types/components/ScorecardTable/components/AverageFooterCell.d.ts.map +1 -1
  88. package/dist/types/components/ScorecardTable/components/DataContainer.d.ts.map +1 -1
  89. package/dist/types/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -1
  90. package/dist/types/components/ScorecardTable/components/FurtherAnalysisMenu.d.ts.map +1 -1
  91. package/dist/types/components/ScorecardTable/components/FurtherAnalysisModal.d.ts +10 -0
  92. package/dist/types/components/ScorecardTable/components/FurtherAnalysisModal.d.ts.map +1 -1
  93. package/dist/types/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -1
  94. package/dist/types/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.d.ts +13 -0
  95. package/dist/types/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.d.ts.map +1 -0
  96. package/dist/types/hooks/completed.d.ts +2 -0
  97. package/dist/types/hooks/completed.d.ts.map +1 -0
  98. package/dist/types/hooks/table.d.ts.map +1 -1
  99. package/dist/types/hooks/value.d.ts +9 -3
  100. package/dist/types/hooks/value.d.ts.map +1 -1
  101. package/dist/types/schemas/config.d.ts +18 -0
  102. package/dist/types/schemas/config.d.ts.map +1 -1
  103. package/dist/types/utils/columns.d.ts.map +1 -1
  104. package/dist/types/utils/dataEngine.d.ts +16 -12
  105. package/dist/types/utils/dataEngine.d.ts.map +1 -1
  106. package/dist/utils/columns.js +15 -5
  107. package/dist/utils/columns.js.map +1 -1
  108. package/dist/utils/dataEngine.js +127 -82
  109. package/dist/utils/dataEngine.js.map +1 -1
  110. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/FurtherAnalysisMenu.tsx"],"names":[],"mappings":"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","file":"FurtherAnalysisMenu.js","sourcesContent":["import { useMemo, useState } from \"react\";\nimport {\n\tIconDimensionOrgUnit16,\n\tIconVisualizationColumnStacked16,\n\tIconVisualizationColumnStacked24,\n\tIconVisualizationLine24,\n\tMenu,\n\tMenuItem,\n\tPopover,\n\ttype ReferenceElement,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useLowestOrgUnitLevel } from \"../../../hooks/orgUnit\";\nimport type { ItemMeta } from \"../../../hooks/metadata\";\nimport { getOrgUnitLevel } from \"../../../utils/orgUnits\";\nimport type { FurtherAnalysisConfig } from \"./FurtherAnalysisModal\";\nimport type { ScorecardDataSource } from \"../../../schemas/config\";\n\nexport function FurtherAnalysisMenu({\n\tstateActionRef,\n\tsetStateActionRef,\n\torgUnit,\n\tonSelect,\n\tperiodId,\n\tdataSources,\n}: {\n\tstateActionRef: ReferenceElement;\n\tsetStateActionRef: (val: undefined) => void;\n\torgUnit: ItemMeta & { hierarchy: string };\n\tonSelect: (config: FurtherAnalysisConfig) => void;\n\tperiodId: string;\n\tdataSources: ScorecardDataSource[];\n}) {\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\tconst orgUnitInLowestLevel = useMemo(() => {\n\t\treturn getOrgUnitLevel(orgUnit) === lowestLevel?.level;\n\t}, [orgUnit, lowestLevel?.level]);\n\tconst [showSubMenu, setShowSubMenu] = useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t<Popover\n\t\t\t\tonClickOutside={() => setStateActionRef(undefined)}\n\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\treference={stateActionRef}\n\t\t\t>\n\t\t\t\t<Menu>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tdense\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: periodId,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tlabel={i18n.t(\"Further Analysis\")}\n\t\t\t\t\t\ticon={<IconVisualizationColumnStacked16 />}\n\t\t\t\t\t/>\n\t\t\t\t\t{!orgUnitInLowestLevel && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: periodId,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t+(\n\t\t\t\t\t\t\t\t\t\t\t\t\tgetOrgUnitLevel(orgUnit) ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t\t\t) + 1\n\t\t\t\t\t\t\t\t\t\t\t).toString(),\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Lower Organisation Unit Levels\")}\n\t\t\t\t\t\t\ticon={<IconDimensionOrgUnit16 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tdense\n\t\t\t\t\t\tshowSubMenu={showSubMenu}\n\t\t\t\t\t\tactive={showSubMenu}\n\t\t\t\t\t\ttoggleSubMenu={() => {\n\t\t\t\t\t\t\tsetShowSubMenu((prevState) => !prevState);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tlabel={i18n.t(\"Trend Analysis \")}\n\t\t\t\t\t\ticon={<IconVisualizationLine24 />}\n\t\t\t\t\t>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_3_MONTHS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 3 Months\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_6_MONTHS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 6 Months\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_12_MONTHS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 12 Months\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_4_QUARTERS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 4 Quarters\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_5_YEARS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 5 Years\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</Menu>\n\t\t\t</Popover>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/FurtherAnalysisMenu.tsx"],"names":[],"mappings":"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","file":"FurtherAnalysisMenu.js","sourcesContent":["import { useMemo, useState } from \"react\";\nimport {\n\tIconDimensionOrgUnit16,\n\tIconVisualizationColumnStacked16,\n\tIconVisualizationColumnStacked24,\n\tIconVisualizationLine24,\n\tMenu,\n\tMenuItem,\n\tPopover,\n\ttype ReferenceElement,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useLowestOrgUnitLevel } from \"../../../hooks/orgUnit\";\nimport type { ItemMeta } from \"../../../hooks/metadata\";\nimport { getOrgUnitLevel } from \"../../../utils/orgUnits\";\nimport type { FurtherAnalysisConfig } from \"./FurtherAnalysisModal\";\nimport type { ScorecardDataSource } from \"../../../schemas/config\";\n\nexport function FurtherAnalysisMenu({\n\tstateActionRef,\n\tsetStateActionRef,\n\torgUnit,\n\tonSelect,\n\tperiodId,\n\tdataSources,\n}: {\n\tstateActionRef: ReferenceElement;\n\tsetStateActionRef: (val: undefined) => void;\n\torgUnit: ItemMeta & { hierarchy: string };\n\tonSelect: (config: FurtherAnalysisConfig) => void;\n\tperiodId: string;\n\tdataSources: ScorecardDataSource[];\n}) {\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\tconst orgUnitInLowestLevel = useMemo(() => {\n\t\treturn getOrgUnitLevel(orgUnit) === lowestLevel?.level;\n\t}, [orgUnit, lowestLevel?.level]);\n\tconst [showSubMenu, setShowSubMenu] = useState(false);\n\n\treturn (\n\t\t<>\n\t\t\t<Popover\n\t\t\t\tonClickOutside={() => setStateActionRef(undefined)}\n\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\treference={stateActionRef}\n\t\t\t>\n\t\t\t\t<Menu>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tdense\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: periodId,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tlabel={i18n.t(\"Further Analysis\")}\n\t\t\t\t\t\ticon={<IconVisualizationColumnStacked16 />}\n\t\t\t\t\t/>\n\t\t\t\t\t{!orgUnitInLowestLevel && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: periodId,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t+(\n\t\t\t\t\t\t\t\t\t\t\t\t\tgetOrgUnitLevel(orgUnit) ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t\t\t) + 1\n\t\t\t\t\t\t\t\t\t\t\t).toString(),\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Lower Organisation Unit Levels\")}\n\t\t\t\t\t\t\ticon={<IconDimensionOrgUnit16 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tdense\n\t\t\t\t\t\tshowSubMenu={showSubMenu}\n\t\t\t\t\t\tactive={showSubMenu}\n\t\t\t\t\t\ttoggleSubMenu={() => {\n\t\t\t\t\t\t\tsetShowSubMenu((prevState) => !prevState);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tlabel={i18n.t(\"Trend Analysis \")}\n\t\t\t\t\t\ticon={<IconVisualizationLine24 />}\n\t\t\t\t\t>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_3_MONTHS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\t\t\tvisualizationType: \"chart\",\n\t\t\t\t\t\t\t\t\t\tchartType: \"line\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\t\t\t\t\t\trows: [\"pe\"],\n\t\t\t\t\t\t\t\t\t\tfilters: [\"ou\"],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 3 Months\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_6_MONTHS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\t\t\tvisualizationType: \"chart\",\n\t\t\t\t\t\t\t\t\t\tchartType: \"line\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\t\t\t\t\t\trows: [\"pe\"],\n\t\t\t\t\t\t\t\t\t\tfilters: [\"ou\"],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 6 Months\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_12_MONTHS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\t\t\tvisualizationType: \"chart\",\n\t\t\t\t\t\t\t\t\t\tchartType: \"line\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\t\t\t\t\t\trows: [\"pe\"],\n\t\t\t\t\t\t\t\t\t\tfilters: [\"ou\"],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 12 Months\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_4_QUARTERS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\t\t\tvisualizationType: \"chart\",\n\t\t\t\t\t\t\t\t\t\tchartType: \"line\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\t\t\t\t\t\trows: [\"pe\"],\n\t\t\t\t\t\t\t\t\t\tfilters: [\"ou\"],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 4 Quarters\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tdense\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetStateActionRef(undefined);\n\t\t\t\t\t\t\t\tonSelect({\n\t\t\t\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: \"LAST_5_YEARS\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\ttype: {\n\t\t\t\t\t\t\t\t\t\tvisualizationType: \"chart\",\n\t\t\t\t\t\t\t\t\t\tchartType: \"line\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\t\t\t\t\t\trows: [\"pe\"],\n\t\t\t\t\t\t\t\t\t\tfilters: [\"ou\"],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdataSources,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={i18n.t(\"Last 5 Years\")}\n\t\t\t\t\t\t\ticon={<IconVisualizationColumnStacked24 />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</Menu>\n\t\t\t</Popover>\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/FurtherAnalysisModal.tsx"],"names":[],"mappings":";;;;;;;AA6BO,SAAS,eAAA,CAAgB;AAAA,EAC/B,IAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAAA,EAAyB;AACxB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAExC,eAAe,CAAA;AAEjB,EAAA,4BACE,KAAA,EAAA,EAAM,OAAA,EAAkB,MAAY,KAAA,EAAK,IAAA,EAAC,UAAS,QAAA,EACnD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,IAAA,CAAK,CAAA,CAAE,kBAAkB,CAAA,EAAE,CAAA;AAAA,wBACvC,YAAA,EAAA,EAmBA,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACN,KAAA,EAAO,MAAA;AAAA,UACP,MAAA,EAAQ,MAAA;AAAA,UACR,aAAA,EAAe,QAAA;AAAA,UACf,OAAA,EAAS;AAAA,SACV;AAAA,QAEA,QAAA,kBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,IAAA,EAAM,CAAA;AAAA,cACN,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ;AAAA,aACT;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,aAAA,KAAkB,YAAA,oBAClB,GAAA;AAAA,gBAAC,yBAAA;AAAA,gBAAA;AAAA,kBACA;AAAA;AAAA,eACA;AAAA,cAED,aAAA,KAAkB,eAAA,oBAClB,GAAA,CAAC,4BAAA,EAAA,EAA6B,MAAA,EAAgB;AAAA;AAAA;AAAA;AAEhD;AAAA,KACD,EACD,CAAA;AAAA,oBACA,GAAA,CAAC,YAAA,EAAA,EACA,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,SAAU,QAAA,EAAA,IAAA,CAAK,CAAA,CAAE,OAAO,CAAA,EAAE,CAAA,EAC5C;AAAA,GAAA,EACD,CAAA;AAEF","file":"FurtherAnalysisModal.js","sourcesContent":["import type {\n\tOrgUnitSelection,\n\tPeriodSelection,\n\tScorecardDataSource,\n} from \"../../../schemas/config\";\nimport {\n\tButton,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useState } from \"react\";\nimport { FurtherAnalysisVisualization } from \"../FurtherAnalysisVisualization\";\nimport { FurtherAnalysisDictionary } from \"../FurtherAnalysisDictionary\";\n\nexport interface FurtherAnalysisConfig {\n\torgUnitSelection: OrgUnitSelection;\n\tperiodSelection: PeriodSelection;\n\tdataSources: ScorecardDataSource[];\n}\n\nexport interface FurtherAnalysisProps {\n\thide: boolean;\n\tonClose: () => void;\n\tconfig: FurtherAnalysisConfig;\n}\n\nexport function FurtherAnalysis({\n\thide,\n\tonClose,\n\tconfig,\n}: FurtherAnalysisProps) {\n\tconst [activeElement, setActiveElement] = useState<\n\t\t\"visualization\" | \"dictionary\" | undefined\n\t>(\"visualization\");\n\n\treturn (\n\t\t<Modal onClose={onClose} hide={hide} large position=\"middle\">\n\t\t\t<ModalTitle>{i18n.t(\"Further Analysis\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t{/*<SegmentedControl*/}\n\t\t\t\t{/*\toptions={[*/}\n\t\t\t\t{/*\t\t{*/}\n\t\t\t\t{/*\t\t\tvalue: \"visualization\",*/}\n\t\t\t\t{/*\t\t\tlabel: i18n.t(\"Visualization\"),*/}\n\t\t\t\t{/*\t\t},*/}\n\t\t\t\t{/*\t\t{*/}\n\t\t\t\t{/*\t\t\tvalue: \"dictionary\",*/}\n\t\t\t\t{/*\t\t\tlabel: i18n.t(\"Dictionary\"),*/}\n\t\t\t\t{/*\t\t},*/}\n\t\t\t\t{/*\t]}*/}\n\t\t\t\t{/*\tselected={activeElement!}*/}\n\t\t\t\t{/*\tonChange={({ value }) =>*/}\n\t\t\t\t{/*\t\tsetActiveElement(*/}\n\t\t\t\t{/*\t\t\tvalue as \"visualization\" | \"dictionary\",*/}\n\t\t\t\t{/*\t\t)*/}\n\t\t\t\t{/*\t}*/}\n\t\t\t\t{/*/>*/}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{activeElement === \"dictionary\" && (\n\t\t\t\t\t\t\t<FurtherAnalysisDictionary\n\t\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\t></FurtherAnalysisDictionary>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeElement === \"visualization\" && (\n\t\t\t\t\t\t\t<FurtherAnalysisVisualization config={config} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ModalContent>\n\t\t\t<ModalActions>\n\t\t\t\t<Button onClick={onClose}>{i18n.t(\"Close\")}</Button>\n\t\t\t</ModalActions>\n\t\t</Modal>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../src/components/ScorecardTable/components/FurtherAnalysisModal.tsx"],"names":[],"mappings":";;;;;;;AAuCO,SAAS,eAAA,CAAgB;AAAA,EAC/B,IAAA;AAAA,EACA,OAAA;AAAA,EACA;AACD,CAAA,EAAyB;AACxB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAExC,eAAe,CAAA;AAEjB,EAAA,4BACE,KAAA,EAAA,EAAM,OAAA,EAAkB,MAAY,KAAA,EAAK,IAAA,EAAC,UAAS,QAAA,EACnD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,IAAA,CAAK,CAAA,CAAE,kBAAkB,CAAA,EAAE,CAAA;AAAA,wBACvC,YAAA,EAAA,EAmBA,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACN,KAAA,EAAO,MAAA;AAAA,UACP,MAAA,EAAQ,MAAA;AAAA,UACR,aAAA,EAAe,QAAA;AAAA,UACf,OAAA,EAAS;AAAA,SACV;AAAA,QAEA,QAAA,kBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,IAAA,EAAM,CAAA;AAAA,cACN,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ;AAAA,aACT;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,aAAA,KAAkB,YAAA,oBAClB,GAAA;AAAA,gBAAC,yBAAA;AAAA,gBAAA;AAAA,kBACA;AAAA;AAAA,eACA;AAAA,cAED,aAAA,KAAkB,eAAA,oBAClB,GAAA,CAAC,4BAAA,EAAA,EAA6B,MAAA,EAAgB;AAAA;AAAA;AAAA;AAEhD;AAAA,KACD,EACD,CAAA;AAAA,oBACA,GAAA,CAAC,YAAA,EAAA,EACA,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,SAAU,QAAA,EAAA,IAAA,CAAK,CAAA,CAAE,OAAO,CAAA,EAAE,CAAA,EAC5C;AAAA,GAAA,EACD,CAAA;AAEF","file":"FurtherAnalysisModal.js","sourcesContent":["import type {\n\tOrgUnitSelection,\n\tPeriodSelection,\n\tScorecardDataSource,\n} from \"../../../schemas/config\";\nimport {\n\tButton,\n\tModal,\n\tModalActions,\n\tModalContent,\n\tModalTitle,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useState } from \"react\";\nimport { FurtherAnalysisVisualization } from \"../FurtherAnalysisVisualization\";\nimport { FurtherAnalysisDictionary } from \"../FurtherAnalysisDictionary\";\nimport type { Dimension } from \"@hisptz/dhis2-analytics/src/components/Visualization/components/DimensionsProvider\";\n\nexport interface FurtherAnalysisConfig {\n\torgUnitSelection: OrgUnitSelection;\n\tperiodSelection: PeriodSelection;\n\tdataSources: ScorecardDataSource[];\n\tlayout?: {\n\t\tcolumns: Dimension[];\n\t\trows: Dimension[];\n\t\tfilters: Dimension[];\n\t};\n\ttype?: {\n\t\tvisualizationType: \"chart\" | \"pivotTable\" | \"map\";\n\t\tchartType?: \"line\" | \"bar\" | \"column\";\n\t};\n}\n\nexport interface FurtherAnalysisProps {\n\thide: boolean;\n\tonClose: () => void;\n\tconfig: FurtherAnalysisConfig;\n}\n\nexport function FurtherAnalysis({\n\thide,\n\tonClose,\n\tconfig,\n}: FurtherAnalysisProps) {\n\tconst [activeElement, setActiveElement] = useState<\n\t\t\"visualization\" | \"dictionary\" | undefined\n\t>(\"visualization\");\n\n\treturn (\n\t\t<Modal onClose={onClose} hide={hide} large position=\"middle\">\n\t\t\t<ModalTitle>{i18n.t(\"Further Analysis\")}</ModalTitle>\n\t\t\t<ModalContent>\n\t\t\t\t{/*<SegmentedControl*/}\n\t\t\t\t{/*\toptions={[*/}\n\t\t\t\t{/*\t\t{*/}\n\t\t\t\t{/*\t\t\tvalue: \"visualization\",*/}\n\t\t\t\t{/*\t\t\tlabel: i18n.t(\"Visualization\"),*/}\n\t\t\t\t{/*\t\t},*/}\n\t\t\t\t{/*\t\t{*/}\n\t\t\t\t{/*\t\t\tvalue: \"dictionary\",*/}\n\t\t\t\t{/*\t\t\tlabel: i18n.t(\"Dictionary\"),*/}\n\t\t\t\t{/*\t\t},*/}\n\t\t\t\t{/*\t]}*/}\n\t\t\t\t{/*\tselected={activeElement!}*/}\n\t\t\t\t{/*\tonChange={({ value }) =>*/}\n\t\t\t\t{/*\t\tsetActiveElement(*/}\n\t\t\t\t{/*\t\t\tvalue as \"visualization\" | \"dictionary\",*/}\n\t\t\t\t{/*\t\t)*/}\n\t\t\t\t{/*\t}*/}\n\t\t\t\t{/*/>*/}\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tflex: 1,\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{activeElement === \"dictionary\" && (\n\t\t\t\t\t\t\t<FurtherAnalysisDictionary\n\t\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\t></FurtherAnalysisDictionary>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeElement === \"visualization\" && (\n\t\t\t\t\t\t\t<FurtherAnalysisVisualization config={config} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ModalContent>\n\t\t\t<ModalActions>\n\t\t\t\t<Button onClick={onClose}>{i18n.t(\"Close\")}</Button>\n\t\t\t</ModalActions>\n\t\t</Modal>\n\t);\n}\n"]}
@@ -1,10 +1,14 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { ScorecardDraggableItems } from '../../../../../schemas/config';
3
- import { DataTableColumnHeader } from '@dhis2/ui';
3
+ import { DataTableColumnHeader, Tooltip } from '@dhis2/ui';
4
4
  import i18n from '@dhis2/d2-i18n';
5
5
  import { DraggableCell } from '../../DraggableCell';
6
6
  import DroppableCell from '../../DroppableCell';
7
7
  import { useScorecardViewStateValue } from '../../../../../utils';
8
+ import { useBoolean } from 'usehooks-ts';
9
+ import { useRef } from 'react';
10
+ import { DataHeaderLegendView } from './DataHeaderLegendView';
11
+ import { isEmpty } from 'lodash';
8
12
 
9
13
  function EmptyDataHeaderCell({
10
14
  header
@@ -12,16 +16,33 @@ function EmptyDataHeaderCell({
12
16
  const colSpan = header.colSpan.toString();
13
17
  return /* @__PURE__ */ jsx(DataTableColumnHeader, { colSpan });
14
18
  }
19
+ function SpecificTargetsIndicator({
20
+ legends
21
+ }) {
22
+ const hasSpecificTargets = legends?.some(
23
+ ({ specificTargetsSet }) => specificTargetsSet === true
24
+ );
25
+ return hasSpecificTargets ? /* @__PURE__ */ jsx(
26
+ Tooltip,
27
+ {
28
+ content: i18n.t("This data item has specific targets configured"),
29
+ children: "*"
30
+ }
31
+ ) : null;
32
+ }
15
33
  function DataHeaderCellComponent({
16
34
  column,
17
35
  header
18
36
  }) {
19
37
  const dataInRows = useScorecardViewStateValue("showDataInRows");
38
+ const labelRef = useRef(null);
20
39
  const label = header.column.columnDef.meta.label ?? column.columnDef.meta.label;
21
40
  const bold = header.column.columnDef.meta.bold ?? column.columnDef.meta.bold;
22
41
  const colSpan = header.colSpan.toString();
42
+ const { value: openLegendView, toggle: toggleLegendView } = useBoolean(false);
23
43
  const sortDirection = !column?.getIsSorted() ? "default" : column.getIsSorted();
24
44
  const nextSortType = column?.getNextSortingOrder() === "asc" ? i18n.t("in ascending order") : column?.getNextSortingOrder() === "desc" ? i18n.t("in descending order") : i18n.t("disable");
45
+ const legends = header.column.columnDef.meta?.legends;
25
46
  return /* @__PURE__ */ jsx(
26
47
  DataTableColumnHeader,
27
48
  {
@@ -39,12 +60,26 @@ function DataHeaderCellComponent({
39
60
  DroppableCell,
40
61
  {
41
62
  accept: dataInRows ? [ScorecardDraggableItems.data] : [ScorecardDraggableItems.ou],
42
- children: /* @__PURE__ */ jsx(
63
+ children: /* @__PURE__ */ jsxs(
43
64
  DraggableCell,
44
65
  {
45
66
  id: label,
46
67
  type: dataInRows ? ScorecardDraggableItems.ou : ScorecardDraggableItems.data,
47
- children: bold ? /* @__PURE__ */ jsx("b", { children: label }) : label
68
+ children: [
69
+ openLegendView && !isEmpty(legends) && /* @__PURE__ */ jsx(
70
+ DataHeaderLegendView,
71
+ {
72
+ legends,
73
+ reference: labelRef,
74
+ onClose: toggleLegendView
75
+ }
76
+ ),
77
+ bold ? /* @__PURE__ */ jsx("b", { children: label }) : /* @__PURE__ */ jsxs("span", { onClick: toggleLegendView, ref: labelRef, children: [
78
+ label,
79
+ " ",
80
+ /* @__PURE__ */ jsx(SpecificTargetsIndicator, { legends })
81
+ ] })
82
+ ]
48
83
  }
49
84
  )
50
85
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":[],"mappings":";;;;;;;;AAWO,SAAS,mBAAA,CAAoB;AAAA,EACnC;AACD,CAAA,EAA2C;AAC1C,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,QAAA,EAAS;AACxC,EAAA,uBAAO,GAAA,CAAC,yBAAsB,OAAA,EAAkB,CAAA;AACjD;AAEO,SAAS,uBAAA,CAAwB;AAAA,EACvC,MAAA;AAAA,EACA;AACD,CAAA,EAA2C;AAC1C,EAAA,MAAM,UAAA,GAAa,2BAAoC,gBAAgB,CAAA;AACvE,EAAA,MAAM,KAAA,GACJ,OAAO,MAAA,CAAO,SAAA,CAAU,KAA2B,KAAA,IACnD,MAAA,CAAO,UAAU,IAAA,CAA2B,KAAA;AAE9C,EAAA,MAAM,IAAA,GACJ,OAAO,MAAA,CAAO,SAAA,CAAU,KAA4B,IAAA,IACpD,MAAA,CAAO,UAAU,IAAA,CAA4B,IAAA;AAE/C,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,QAAA,EAAS;AAExC,EAAA,MAAM,gBAAgB,CAAC,MAAA,EAAQ,aAAY,GACxC,SAAA,GACC,OAAQ,WAAA,EAAY;AACxB,EAAA,MAAM,eACL,MAAA,EAAQ,mBAAA,OAA0B,KAAA,GAC/B,IAAA,CAAK,EAAE,oBAAoB,CAAA,GAC3B,QAAQ,mBAAA,EAAoB,KAAM,SACjC,IAAA,CAAK,CAAA,CAAE,qBAAqB,CAAA,GAC5B,IAAA,CAAK,EAAE,SAAS,CAAA;AAErB,EAAA,uBACC,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MAEA,eAAe,IAAA,CAAK,CAAA,CAAE,uBAAA,EAAyB,EAAE,cAAc,CAAA;AAAA,MAC/D,eAAA,EACC,MAAA,CAAO,MAAA,EAAQ,UAAA,EAAW,IAAK,OAAO,UAAA,EAAW,GAC9C,CAAC,CAAA,EAAG,CAAA,KAAM;AACV,QAAA,MAAM,IAAA,GAAO,OAAQ,uBAAA,EAAwB;AAC7C,QAAA,IAAI,IAAA,EAAM;AACT,UAAA,IAAA,CAAK,CAAC,CAAA;AAAA,QACP;AAAA,MACD,CAAA,GACC,MAAA;AAAA,MAEJ,aAAA,EACC,OAAO,MAAA,EAAQ,UAAA,MAAgB,MAAA,CAAO,UAAA,KACnC,aAAA,GACA,MAAA;AAAA,MAEJ,KAAA,EAAM,QAAA;AAAA,MACN,OAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACA,MAAA,EACC,aACG,CAAC,uBAAA,CAAwB,IAAI,CAAA,GAC7B,CAAC,wBAAwB,EAAE,CAAA;AAAA,UAG/B,QAAA,kBAAA,GAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACA,EAAA,EAAI,KAAA;AAAA,cACJ,IAAA,EACC,UAAA,GACG,uBAAA,CAAwB,EAAA,GACxB,uBAAA,CAAwB,IAAA;AAAA,cAG3B,QAAA,EAAA,IAAA,mBAAO,GAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,KAAA,EAAM,CAAA,GAAO;AAAA;AAAA;AAC1B;AAAA;AACD,KAAA;AAAA,IArCK,GAAG,KAAK,CAAA;AAAA,GAsCd;AAEF;AAEO,MAAM,cAAA,GAAiB","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 { useScorecardViewStateValue } from \"../../../../../utils\";\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 = useScorecardViewStateValue<boolean>(\"showDataInRows\");\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":"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","file":"DataHeaderCell.js","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardLegend,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport {\n\tDataTableColumnHeader,\n\ttype DataTableSortDirection,\n\tTooltip,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { useScorecardViewStateValue } from \"../../../../../utils\";\nimport { useBoolean } from \"usehooks-ts\";\nimport { useRef } from \"react\";\nimport { DataHeaderLegendView } from \"./DataHeaderLegendView\";\nimport { isEmpty } from \"lodash\";\n\nexport function EmptyDataHeaderCell({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst colSpan = header.colSpan.toString();\n\treturn <DataTableColumnHeader colSpan={colSpan} />;\n}\n\nfunction SpecificTargetsIndicator({\n\tlegends,\n}: {\n\tlegends?: Array<{ specificTargetsSet?: boolean | undefined }>;\n}) {\n\tconst hasSpecificTargets = legends?.some(\n\t\t({ specificTargetsSet }) => specificTargetsSet === true,\n\t);\n\treturn hasSpecificTargets ? (\n\t\t<Tooltip\n\t\t\tcontent={i18n.t(\"This data item has specific targets configured\")}\n\t\t>\n\t\t\t*\n\t\t</Tooltip>\n\t) : null;\n}\n\nexport function DataHeaderCellComponent({\n\tcolumn,\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst dataInRows = useScorecardViewStateValue<boolean>(\"showDataInRows\");\n\tconst labelRef = useRef<HTMLElement>(null);\n\tconst label =\n\t\t(\n\t\t\theader.column.columnDef.meta as {\n\t\t\t\tlabel: string;\n\t\t\t\tlegends: { id: string };\n\t\t\t}\n\t\t).label ?? (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\tconst { value: openLegendView, toggle: toggleLegendView } =\n\t\tuseBoolean(false);\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\tconst legends = (\n\t\theader.column.columnDef.meta as {\n\t\t\tlegends: Array<{\n\t\t\t\tid: string;\n\t\t\t\tlabel: string;\n\t\t\t\tlegends: ScorecardLegend[];\n\t\t\t\tspecificTargetsSet?: boolean;\n\t\t\t}>;\n\t\t}\n\t)?.legends;\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{openLegendView && !isEmpty(legends) && (\n\t\t\t\t\t\t<DataHeaderLegendView\n\t\t\t\t\t\t\tlegends={legends}\n\t\t\t\t\t\t\treference={labelRef}\n\t\t\t\t\t\t\tonClose={toggleLegendView}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{bold ? (\n\t\t\t\t\t\t<b>{label}</b>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span onClick={toggleLegendView} ref={labelRef}>\n\t\t\t\t\t\t\t{label}{\" \"}\n\t\t\t\t\t\t\t<SpecificTargetsIndicator legends={legends} />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableColumnHeader>\n\t);\n}\n\nexport const DataHeaderCell = DataHeaderCellComponent;\n"]}
@@ -0,0 +1,72 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Popover, colors } from '@dhis2/ui';
3
+ import { LegendsView } from '../../../../ScorecardLegendsView/components/LegendView';
4
+ import { isEmpty } from 'lodash';
5
+ import i18n from '@dhis2/d2-i18n';
6
+
7
+ function DataHeaderLegendView({
8
+ legends,
9
+ reference,
10
+ onClose
11
+ }) {
12
+ if (isEmpty(legends)) return null;
13
+ return /* @__PURE__ */ jsx(Popover, { onClickOutside: onClose, reference, children: /* @__PURE__ */ jsx(
14
+ "div",
15
+ {
16
+ style: {
17
+ display: "flex",
18
+ gap: 16,
19
+ flexDirection: "column",
20
+ padding: 16
21
+ },
22
+ children: legends?.map(({ id, label, legends: legends2, specificTargetsSet }) => {
23
+ if (specificTargetsSet) {
24
+ return /* @__PURE__ */ jsxs(
25
+ "div",
26
+ {
27
+ style: {
28
+ display: "flex",
29
+ flexDirection: "column",
30
+ gap: 8
31
+ },
32
+ children: [
33
+ /* @__PURE__ */ jsx("b", { style: { fontSize: 14 }, children: label }),
34
+ /* @__PURE__ */ jsx(
35
+ "span",
36
+ {
37
+ style: {
38
+ color: colors.grey700,
39
+ fontSize: 12
40
+ },
41
+ children: i18n.t(
42
+ "This data item has been configured with specific targets. Open the specific targets menu to learn more"
43
+ )
44
+ }
45
+ )
46
+ ]
47
+ }
48
+ );
49
+ }
50
+ return /* @__PURE__ */ jsxs(
51
+ "div",
52
+ {
53
+ style: {
54
+ display: "flex",
55
+ flexDirection: "column",
56
+ gap: 8
57
+ },
58
+ children: [
59
+ /* @__PURE__ */ jsx("b", { style: { fontSize: 14 }, children: label }),
60
+ /* @__PURE__ */ jsx(LegendsView, { legends: legends2 })
61
+ ]
62
+ },
63
+ `${id}-legend-view`
64
+ );
65
+ })
66
+ }
67
+ ) });
68
+ }
69
+
70
+ export { DataHeaderLegendView };
71
+ //# sourceMappingURL=DataHeaderLegendView.js.map
72
+ //# sourceMappingURL=DataHeaderLegendView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.tsx"],"names":["legends"],"mappings":";;;;;;AAOO,SAAS,oBAAA,CAAqB;AAAA,EACpC,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACD,CAAA,EASG;AACF,EAAA,IAAI,OAAA,CAAQ,OAAO,CAAA,EAAG,OAAO,IAAA;AAE7B,EAAA,uBACC,GAAA,CAAC,OAAA,EAAA,EAAQ,cAAA,EAAgB,OAAA,EAAS,SAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,OAAA,EAAS,MAAA;AAAA,QACT,GAAA,EAAK,EAAA;AAAA,QACL,aAAA,EAAe,QAAA;AAAA,QACf,OAAA,EAAS;AAAA,OACV;AAAA,MAEC,QAAA,EAAA,OAAA,EAAS,IAAI,CAAC,EAAE,IAAI,KAAA,EAAO,OAAA,EAAAA,QAAAA,EAAS,kBAAA,EAAmB,KAAM;AAC7D,QAAA,IAAI,kBAAA,EAAoB;AACvB,UAAA,uBACC,IAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACA,KAAA,EAAO;AAAA,gBACN,OAAA,EAAS,MAAA;AAAA,gBACT,aAAA,EAAe,QAAA;AAAA,gBACf,GAAA,EAAK;AAAA,eACN;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,OAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAO,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,gCACnC,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACA,KAAA,EAAO;AAAA,sBACN,OAAO,MAAA,CAAO,OAAA;AAAA,sBACd,QAAA,EAAU;AAAA,qBACX;AAAA,oBAEC,QAAA,EAAA,IAAA,CAAK,CAAA;AAAA,sBACL;AAAA;AACD;AAAA;AACD;AAAA;AAAA,WACD;AAAA,QAEF;AAEA,QAAA,uBACC,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,OAAA,EAAS,MAAA;AAAA,cACT,aAAA,EAAe,QAAA;AAAA,cACf,GAAA,EAAK;AAAA,aACN;AAAA,YAGA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,OAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAO,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,8BACnC,GAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAASA,QAAAA,EAAS;AAAA;AAAA,WAAA;AAAA,UAH1B,GAAG,EAAE,CAAA,YAAA;AAAA,SAIX;AAAA,MAEF,CAAC;AAAA;AAAA,GACF,EACD,CAAA;AAEF","file":"DataHeaderLegendView.js","sourcesContent":["import type { ScorecardLegend } from \"../../../../../schemas/config\";\nimport { colors, Popover } from \"@dhis2/ui\";\nimport type { RefObject } from \"react\";\nimport { LegendsView } from \"../../../../ScorecardLegendsView/components/LegendView\";\nimport { isEmpty } from \"lodash\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nexport function DataHeaderLegendView({\n\tlegends,\n\treference,\n\tonClose,\n}: {\n\tlegends: Array<{\n\t\tid: string;\n\t\tlabel: string;\n\t\tlegends: Array<ScorecardLegend>;\n\t\tspecificTargetsSet?: boolean;\n\t}>;\n\treference: RefObject<HTMLElement>;\n\tonClose: () => void;\n}) {\n\tif (isEmpty(legends)) return null;\n\n\treturn (\n\t\t<Popover onClickOutside={onClose} reference={reference}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tgap: 16,\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tpadding: 16,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legends?.map(({ id, label, legends, specificTargetsSet }) => {\n\t\t\t\t\tif (specificTargetsSet) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<b style={{ fontSize: 14 }}>{label}</b>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: colors.grey700,\n\t\t\t\t\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{i18n.t(\n\t\t\t\t\t\t\t\t\t\t\"This data item has been configured with specific targets. Open the specific targets menu to learn more\",\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tkey={`${id}-legend-view`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<b style={{ fontSize: 14 }}>{label}</b>\n\t\t\t\t\t\t\t<LegendsView legends={legends} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</Popover>\n\t);\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { useSyncExternalStore } from 'react';
2
+ import { useScorecardData } from '../components';
3
+
4
+ function useScorecardLoadingCompleted() {
5
+ const { data: dataEngine } = useScorecardData();
6
+ return useSyncExternalStore(dataEngine.addOnCompleteListener, () => {
7
+ return dataEngine.getIsCompleteSnapshot();
8
+ });
9
+ }
10
+
11
+ export { useScorecardLoadingCompleted };
12
+ //# sourceMappingURL=completed.js.map
13
+ //# sourceMappingURL=completed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/completed.ts"],"names":[],"mappings":";;;AAGO,SAAS,4BAAA,GAA+B;AAC9C,EAAA,MAAM,EAAE,IAAA,EAAM,UAAA,EAAW,GAAI,gBAAA,EAAiB;AAC9C,EAAA,OAAO,oBAAA,CAAqB,UAAA,CAAW,qBAAA,EAAuB,MAAM;AACnE,IAAA,OAAO,WAAW,qBAAA,EAAsB;AAAA,EACzC,CAAC,CAAA;AACF","file":"completed.js","sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport { useScorecardData } from \"../components\";\n\nexport function useScorecardLoadingCompleted() {\n\tconst { data: dataEngine } = useScorecardData();\n\treturn useSyncExternalStore(dataEngine.addOnCompleteListener, () => {\n\t\treturn dataEngine.getIsCompleteSnapshot();\n\t});\n}\n"]}
@@ -1,11 +1,12 @@
1
1
  import { getSortedRowModel, getPaginationRowModel, getExpandedRowModel, getFilteredRowModel, getCoreRowModel } from '@tanstack/react-table';
2
2
  import { useTableColumns } from './columns';
3
- import { useState, useMemo, useEffect, useCallback } from 'react';
3
+ import { useMemo, useState, useEffect, useCallback } from 'react';
4
4
  import { useScorecardMeta, useScorecardData, useScorecardConfig } from '../components';
5
5
  import { getRowsFromMeta } from '../utils/data';
6
6
  import { meanBy, isEmpty } from 'lodash';
7
7
  import { getAverageValue } from '../utils/columns';
8
- import { useScorecardViewStateValue } from '../utils/viewState';
8
+ import { useScorecardViewStateValue } from '../utils';
9
+ import { useScorecardLoadingCompleted } from './completed';
9
10
 
10
11
  function getRowValues({
11
12
  data,
@@ -27,14 +28,11 @@ function filterRows({
27
28
  averageDisplayType,
28
29
  meta
29
30
  }) {
30
- if (!dataEngine.isDone) {
31
- return [];
32
- }
33
31
  const hiddenRows = [];
34
32
  const rowsWithDataValues = rows.map((row, index) => {
35
33
  const values = getRowValues({
36
34
  row,
37
- data: dataEngine.data,
35
+ data: Array.from(dataEngine.data.values()),
38
36
  showDataInRows
39
37
  });
40
38
  const average = meanBy(values, ({ value }) => parseFloat(value));
@@ -51,7 +49,7 @@ function filterRows({
51
49
  }
52
50
  if (averageDisplayType !== "ALL") {
53
51
  const average = getAverageValue({
54
- dataValues: dataEngine.data,
52
+ dataValues: Array.from(dataEngine.data.values()),
55
53
  meta
56
54
  });
57
55
  if (averageDisplayType === "BELOW_AVERAGE") {
@@ -72,51 +70,43 @@ function useTableRows() {
72
70
  const averageDisplayType = useScorecardViewStateValue(
73
71
  "averageDisplayType"
74
72
  );
73
+ const completed = useScorecardLoadingCompleted();
75
74
  const config = useScorecardConfig();
76
- const [hiddenRowIndexes, setHiddenRowIndexes] = useState([]);
77
- if (meta == null) return [];
78
- const rows = useMemo(() => {
79
- const rows2 = getRowsFromMeta({
75
+ const allRows = useMemo(() => {
76
+ return getRowsFromMeta({
80
77
  meta,
81
78
  showDataInRows,
82
79
  config
83
80
  });
84
- if (isEmpty(hiddenRowIndexes)) {
85
- return rows2;
81
+ }, [meta, showDataInRows, config]);
82
+ const hiddenRowIndexes = useMemo(() => {
83
+ if (!completed) {
84
+ return [];
86
85
  }
87
- return rows2.filter((_, index) => !hiddenRowIndexes.includes(index));
88
- }, [meta, showDataInRows, config, hiddenRowIndexes]);
89
- useEffect(() => {
90
- const listener = (completed) => {
91
- if (completed) {
92
- setHiddenRowIndexes(
93
- filterRows({
94
- meta,
95
- dataEngine,
96
- showDataInRows,
97
- rows,
98
- averageDisplayType,
99
- emptyRows
100
- })
101
- );
102
- }
103
- };
104
- if (dataEngine.isDone) {
105
- setHiddenRowIndexes(
106
- filterRows({
107
- meta,
108
- dataEngine,
109
- showDataInRows,
110
- rows,
111
- averageDisplayType,
112
- emptyRows
113
- })
114
- );
115
- } else {
116
- return dataEngine.addOnCompleteListener(listener);
86
+ return filterRows({
87
+ meta,
88
+ dataEngine,
89
+ showDataInRows,
90
+ rows: allRows,
91
+ averageDisplayType,
92
+ emptyRows
93
+ });
94
+ }, [
95
+ completed,
96
+ meta,
97
+ dataEngine,
98
+ showDataInRows,
99
+ averageDisplayType,
100
+ emptyRows
101
+ ]);
102
+ if (meta == null) return [];
103
+ return useMemo(() => {
104
+ const rows = allRows;
105
+ if (isEmpty(hiddenRowIndexes)) {
106
+ return rows;
117
107
  }
118
- }, [averageDisplayType, emptyRows, showDataInRows]);
119
- return rows;
108
+ return rows.filter((_, index) => !hiddenRowIndexes.includes(index));
109
+ }, [allRows, hiddenRowIndexes]);
120
110
  }
121
111
  function useColumnVisibility() {
122
112
  const showAverageColumn = useScorecardViewStateValue("averageColumn") ?? false;
@@ -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 { useScorecardViewStateValue } from \"../utils/viewState\";\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 =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\") ?? false;\n\tconst emptyRows = useScorecardViewStateValue<boolean>(\"emptyRows\");\n\tconst averageDisplayType =\n\t\tuseScorecardViewStateValue<ScorecardViewOptions[\"averageDisplayType\"]>(\n\t\t\t\"averageDisplayType\",\n\t\t);\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 =\n\t\tuseScorecardViewStateValue<boolean>(\"averageColumn\") ?? false;\n\tconst showItemNumber =\n\t\tuseScorecardViewStateValue<boolean>(\"itemNumber\") ?? false;\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? 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\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? 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 =\n\t\tuseScorecardViewStateValue<boolean>(\"disablePagination\");\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"],"mappings":";;;;;;;;;;AAiCO,SAAS,YAAA,CAAa;AAAA,EAC5B,IAAA;AAAA,EACA,cAAA;AAAA,EACA;AACD,CAAA,EAIoB;AACnB,EAAA,OAAO,IAAA,CAAK,MAAA,CAAO,CAAC,KAAA,KAAU;AAC7B,IAAA,IAAI,cAAA,EAAgB;AACnB,MAAA,OAAO,GAAA,CACL,UAAA,CAAY,WAAA,CAAY,GAAA,CAAI,CAAC,EAAE,EAAA,EAAG,KAAM,EAAE,CAAA,CAC1C,QAAA,CAAS,KAAA,CAAM,EAAG,CAAA;AAAA,IACrB;AACA,IAAA,OAAO,KAAA,CAAM,EAAA,KAAO,GAAA,CAAI,OAAA,CAAS,GAAA;AAAA,EAClC,CAAC,CAAA;AACF;AAEO,SAAS,UAAA,CAAW;AAAA,EAC1B,IAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACD,CAAA,EAOG;AACF,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,MAAM,kBAAA,GAAqB,IAAA,CAAK,GAAA,CAAI,CAAC,KAAK,KAAA,KAAU;AACnD,IAAA,MAAM,SAAS,YAAA,CAAa;AAAA,MAC3B,GAAA;AAAA,MACA,MAAM,KAAA,CAAM,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAAA,MACzC;AAAA,KACA,CAAA;AACD,IAAA,MAAM,OAAA,GAAU,OAAO,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAM,KAAM,UAAA,CAAW,KAAM,CAAC,CAAA;AAChE,IAAA,OAAO;AAAA,MACN,GAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD;AAAA,EACD,CAAC,CAAA;AACD,EAAA,IAAI,CAAC,SAAA,EAAW;AAEf,IAAA,MAAMA,aAAY,kBAAA,CAChB,MAAA,CAAO,CAAC,EAAE,QAAO,KAAM,OAAA,CAAQ,MAAM,CAAC,EACtC,GAAA,CAAI,CAAC,EAAE,KAAA,OAAY,KAAK,CAAA;AAC1B,IAAA,UAAA,CAAW,IAAA,CAAK,GAAGA,UAAS,CAAA;AAAA,EAC7B;AAEA,EAAA,IAAI,uBAAuB,KAAA,EAAO;AACjC,IAAA,MAAM,UAAU,eAAA,CAAgB;AAAA,MAC/B,YAAY,KAAA,CAAM,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA;AAAA,MAC/C;AAAA,KACA,CAAA;AACD,IAAA,IAAI,uBAAuB,eAAA,EAAiB;AAC3C,MAAA,MAAM,mBAAmB,kBAAA,CACvB,MAAA,CAAO,CAAC,EAAE,SAAS,UAAA,EAAW,KAAM,UAAA,GAAa,OAAO,EACxD,GAAA,CAAI,CAAC,EAAE,KAAA,OAAY,KAAK,CAAA;AAC1B,MAAA,UAAA,CAAW,IAAA,CAAK,GAAG,gBAAgB,CAAA;AAAA,IACpC,CAAA,MAAO;AACN,MAAA,MAAM,mBAAmB,kBAAA,CACvB,MAAA,CAAO,CAAC,EAAE,SAAS,UAAA,EAAW,KAAM,UAAA,GAAa,OAAO,EACxD,GAAA,CAAI,CAAC,EAAE,KAAA,OAAY,KAAK,CAAA;AAC1B,MAAA,UAAA,CAAW,IAAA,CAAK,GAAG,gBAAgB,CAAA;AAAA,IACpC;AAAA,EACD;AAEA,EAAA,OAAO,UAAA;AACR;AAEO,SAAS,YAAA,GAAqC;AACpD,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,MAAM,EAAE,IAAA,EAAM,UAAA,EAAW,GAAI,gBAAA,EAAiB;AAC9C,EAAA,MAAM,cAAA,GACL,0BAAA,CAAoC,gBAAgB,CAAA,IAAK,KAAA;AAC1D,EAAA,MAAM,SAAA,GAAY,2BAAoC,WAAW,CAAA;AACjE,EAAA,MAAM,kBAAA,GACL,0BAAA;AAAA,IACC;AAAA,GACD;AACD,EAAA,MAAM,YAAY,4BAAA,EAA6B;AAE/C,EAAA,MAAM,SAAS,kBAAA,EAAmB;AAElC,EAAA,MAAM,OAAA,GAAU,QAAQ,MAAM;AAC7B,IAAA,OAAO,eAAA,CAAgB;AAAA,MACtB,IAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACA,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAA,EAAM,cAAA,EAAgB,MAAM,CAAC,CAAA;AAEjC,EAAA,MAAM,gBAAA,GAA6B,QAAQ,MAAM;AAChD,IAAA,IAAI,CAAC,SAAA,EAAW;AACf,MAAA,OAAO,EAAC;AAAA,IACT;AACA,IAAA,OAAO,UAAA,CAAW;AAAA,MACjB,IAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,IAAA,EAAM,OAAA;AAAA,MACN,kBAAA;AAAA,MACA;AAAA,KACA,CAAA;AAAA,EACF,CAAA,EAAG;AAAA,IACF,SAAA;AAAA,IACA,IAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,IAAI,IAAA,IAAQ,IAAA,EAAM,OAAO,EAAC;AAE1B,EAAA,OAAO,QAAQ,MAAM;AACpB,IAAA,MAAM,IAAA,GAAO,OAAA;AAEb,IAAA,IAAI,OAAA,CAAQ,gBAAgB,CAAA,EAAG;AAC9B,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,OAAO,IAAA,CAAK,OAAO,CAAC,CAAA,EAAG,UAAU,CAAC,gBAAA,CAAiB,QAAA,CAAS,KAAK,CAAC,CAAA;AAAA,EACnE,CAAA,EAAG,CAAC,OAAA,EAAS,gBAAgB,CAAC,CAAA;AAC/B;AAEO,SAAS,mBAAA,GAAsB;AACrC,EAAA,MAAM,iBAAA,GACL,0BAAA,CAAoC,eAAe,CAAA,IAAK,KAAA;AACzD,EAAA,MAAM,cAAA,GACL,0BAAA,CAAoC,YAAY,CAAA,IAAK,KAAA;AACtD,EAAA,MAAM,cAAA,GACL,2BAAoC,gBAAgB,CAAA;AAErD,EAAA,MAAM,gBAAA,GACL,0BAAA,CAAoC,kBAAkB,CAAA,IAAK,KAAA;AAE5D,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,QAAA,CAA0B;AAAA,IACzE,OAAA,EAAS,iBAAA;AAAA,IACT,KAAA,EAAO,cAAA;AAAA,IACP,QAAQ,CAAC;AAAA,GACT,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,mBAAA,CAAoB;AAAA,MACnB,OAAA,EAAS,iBAAA;AAAA,MACT,KAAA,EAAO,cAAA;AAAA,MACP,MAAA,EAAQ,CAAC,gBAAA,IAAoB,CAAC;AAAA,KAC9B,CAAA;AAAA,EACF,GAAG,CAAC,iBAAA,EAAmB,cAAA,EAAgB,gBAAA,EAAkB,cAAc,CAAC,CAAA;AAExE,EAAA,OAAO;AAAA,IACN,gBAAA;AAAA,IACA;AAAA,GACD;AACD;AAEO,SAAS,eAAA,GAAkB;AACjC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,QAAA,CAAwB,EAAE,CAAA;AAC1D,EAAA,MAAM,gBAAA,GACL,0BAAA,CAAoC,kBAAkB,CAAA,IAAK,KAAA;AAE5D,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,CAAC,GAAA,KAAiC;AACrE,IAAA,MAAM,UAAA,GAAa,GAAA,CACjB,eAAA,EAAgB,CAChB,IAAA,CAAK,CAAC,EAAE,EAAA,EAAG,KAAM,EAAA,CAAG,QAAA,CAAS,QAAQ,CAAC,CAAA;AAExC,IAAA,IAAI,CAAC,YAAY,OAAO,KAAA;AACxB,IAAA,OAAO,WAAW,QAAA,EAAS;AAAA,EAC5B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO;AAAA,IACN,QAAA;AAAA,IACA,gBAAA,EAAkB,mBAAmB,MAAA,GAAY,WAAA;AAAA,IACjD;AAAA,GACD;AACD;AAEO,SAAS,aAAA,GAAkD;AACjE,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAA6B,EAAE,CAAA;AACzE,EAAA,MAAM,iBAAA,GACL,2BAAoC,mBAAmB,CAAA;AACxD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,QAAA,CAA0B;AAAA,IAC7D,QAAA,EAAU,EAAA;AAAA,IACV,SAAA,EAAW;AAAA,GACX,CAAA;AAED,EAAA,MAAM,EAAE,gBAAA,EAAkB,mBAAA,EAAoB,GAAI,mBAAA,EAAoB;AACtE,EAAA,MAAM,EAAE,QAAA,EAAU,gBAAA,EAAkB,eAAA,KAAoB,eAAA,EAAgB;AAExE,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,CAAuB,EAAE,CAAA;AACvD,EAAA,MAAM,UAAU,eAAA,EAAgB;AAChC,EAAA,MAAM,OAAO,YAAA,EAAa;AAE1B,EAAA,OAAO,OAAA;AAAA,IACN,OAAO;AAAA,MACN,OAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,aAAA;AAAA,QACA,OAAA;AAAA,QACA,gBAAA;AAAA,QACA,QAAA;AAAA,QACA,GAAI,iBAAA,GAAoB,EAAC,GAAI,EAAE,UAAA;AAAW,OAC3C;AAAA,MACA,IAAA,EAAM;AAAA,QACL;AAAA,OACD;AAAA,MACA,kBAAA,EAAoB,IAAA;AAAA,MACpB,gBAAA;AAAA,MACA,UAAU,IAAA,CAAK,MAAA;AAAA,MACf,eAAA;AAAA,MACA,qBAAA,EAAuB,gBAAA;AAAA,MACvB,eAAA,EAAiB,UAAA;AAAA,MACjB,iBAAiB,eAAA,EAAgB;AAAA,MACjC,qBAAqB,mBAAA,EAAoB;AAAA,MACzC,qBAAqB,mBAAA,EAAoB;AAAA,MACzC,qBAAA,EAAuB,iBAAA,GACpB,MAAA,GACA,qBAAA,EAAsB;AAAA,MACzB,mBAAmB,iBAAA,EAAkB;AAAA,MACrC,wBAAA,EAA0B,mBAAA;AAAA,MAC1B,kBAAA,EAAoB,oBAAoB,MAAA,GAAY;AAAA,KACrD,CAAA;AAAA,IACA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA;AAAA,MACA,UAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA;AACD,GACD;AACD","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 { useScorecardViewStateValue } from \"../utils\";\nimport { useScorecardLoadingCompleted } from \"./completed\";\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\tconst hiddenRows: number[] = [];\n\tconst rowsWithDataValues = rows.map((row, index) => {\n\t\tconst values = getRowValues({\n\t\t\trow,\n\t\t\tdata: Array.from(dataEngine.data.values()),\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: Array.from(dataEngine.data.values()),\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 =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\") ?? false;\n\tconst emptyRows = useScorecardViewStateValue<boolean>(\"emptyRows\");\n\tconst averageDisplayType =\n\t\tuseScorecardViewStateValue<ScorecardViewOptions[\"averageDisplayType\"]>(\n\t\t\t\"averageDisplayType\",\n\t\t);\n\tconst completed = useScorecardLoadingCompleted();\n\n\tconst config = useScorecardConfig();\n\n\tconst allRows = useMemo(() => {\n\t\treturn getRowsFromMeta({\n\t\t\tmeta: meta!,\n\t\t\tshowDataInRows,\n\t\t\tconfig,\n\t\t});\n\t}, [meta, showDataInRows, config]);\n\n\tconst hiddenRowIndexes: number[] = useMemo(() => {\n\t\tif (!completed) {\n\t\t\treturn [];\n\t\t}\n\t\treturn filterRows({\n\t\t\tmeta: meta!,\n\t\t\tdataEngine,\n\t\t\tshowDataInRows,\n\t\t\trows: allRows,\n\t\t\taverageDisplayType,\n\t\t\temptyRows,\n\t\t});\n\t}, [\n\t\tcompleted,\n\t\tmeta,\n\t\tdataEngine,\n\t\tshowDataInRows,\n\t\taverageDisplayType,\n\t\temptyRows,\n\t]);\n\n\tif (meta == null) return [];\n\n\treturn useMemo(() => {\n\t\tconst rows = allRows;\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}, [allRows, hiddenRowIndexes]);\n}\n\nexport function useColumnVisibility() {\n\tconst showAverageColumn =\n\t\tuseScorecardViewStateValue<boolean>(\"averageColumn\") ?? false;\n\tconst showItemNumber =\n\t\tuseScorecardViewStateValue<boolean>(\"itemNumber\") ?? false;\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? 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\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? 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 =\n\t\tuseScorecardViewStateValue<boolean>(\"disablePagination\");\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"]}