@hisptz/dhis2-scorecard 1.2.29 → 1.2.31

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 +20 -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 +21 -3
  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 +10 -4
  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 +12 -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 +10 -4
  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 +4 -4
@@ -24,7 +24,7 @@ function FurtherAnalysisVisualization({
24
24
  dhis2Analytics.Visualization,
25
25
  {
26
26
  height: 400,
27
- layout: {
27
+ layout: config.layout ?? {
28
28
  columns: ["dx"],
29
29
  filters: ["pe"],
30
30
  rows: ["ou"]
@@ -32,7 +32,7 @@ function FurtherAnalysisVisualization({
32
32
  showToolbar: true,
33
33
  showOrgUnitSelector: true,
34
34
  showPeriodSelector: true,
35
- defaultVisualizationType: "chart",
35
+ defaultVisualizationType: config.type?.visualizationType ?? "chart",
36
36
  dimensions: {
37
37
  ou: orgUnits$1,
38
38
  pe: periods,
@@ -40,11 +40,11 @@ function FurtherAnalysisVisualization({
40
40
  },
41
41
  config: {
42
42
  chart: {
43
- type: "column",
43
+ type: config.type?.chartType ?? "column",
44
44
  layout: {
45
- filter: ["pe"],
46
- category: ["ou"],
47
- series: ["dx"]
45
+ filter: config.layout?.filters ?? ["pe"],
46
+ category: config.layout?.rows ?? ["ou"],
47
+ series: config.layout?.columns ?? ["dx"]
48
48
  }
49
49
  },
50
50
  pivotTable: {},
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardTable/FurtherAnalysisVisualization.tsx"],"names":["orgUnits","getOrgUnitsForAnalytics","jsx","Visualization"],"mappings":";;;;;;AAUO,SAAS,4BAAA,CAA6B;AAAA,EAC5C;AACD,CAAA,EAAsC;AACrC,EAAA,MAAMA,UAAA,GAAWC,gCAAA,CAAwB,MAAA,CAAO,gBAAgB,CAAA;AAChE,EAAA,MAAM,OAAA,GAAU,OAAO,eAAA,CAAgB,OAAA,CAAQ,IAAI,CAAC,EAAE,EAAA,EAAG,KAAM,EAAE,CAAA;AACjE,EAAA,MAAM,SAAA,GAAY,OAAO,WAAA,CAAY,GAAA,CAAI,CAAC,EAAE,EAAA,OAAS,EAAE,CAAA;AACvD,EAAA,uBACCC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,EAAA;AAAA,QACT,SAAA,EAAW,GAAA;AAAA,QACX,SAAA,EAAW;AAAA,OACZ;AAAA,MAEA,QAAA,kBAAAA,cAAA;AAAA,QAACC,4BAAA;AAAA,QAAA;AAAA,UACA,MAAA,EAAQ,GAAA;AAAA,UACR,MAAA,EAAQ;AAAA,YACP,OAAA,EAAS,CAAC,IAAI,CAAA;AAAA,YACd,OAAA,EAAS,CAAC,IAAI,CAAA;AAAA,YACd,IAAA,EAAM,CAAC,IAAI;AAAA,WACZ;AAAA,UACA,WAAA,EAAW,IAAA;AAAA,UACX,mBAAA,EAAmB,IAAA;AAAA,UACnB,kBAAA,EAAkB,IAAA;AAAA,UAClB,wBAAA,EAA0B,OAAA;AAAA,UAC1B,UAAA,EAAY;AAAA,YACX,EAAA,EAAIH,UAAA;AAAA,YACJ,EAAA,EAAI,OAAA;AAAA,YACJ,EAAA,EAAI;AAAA,WACL;AAAA,UACA,MAAA,EAAQ;AAAA,YACP,KAAA,EAAO;AAAA,cACN,IAAA,EAAM,QAAA;AAAA,cACN,MAAA,EAAQ;AAAA,gBACP,MAAA,EAAQ,CAAC,IAAI,CAAA;AAAA,gBACb,QAAA,EAAU,CAAC,IAAI,CAAA;AAAA,gBACf,MAAA,EAAQ,CAAC,IAAI;AAAA;AACd,aACD;AAAA,YACA,YAAY,EAAC;AAAA,YACb,GAAA,EAAK;AAAA,cACJ,eAAA,EAAiB,IAAA;AAAA,cACjB,cAAA,EAAgB,MAAA,CAAO,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,gBACjD,OAAA,EAAS,IAAA;AAAA,gBACT,MAAM,IAAA,CAAK,KAAA;AAAA,gBACX,IAAI,IAAA,CAAK,EAAA;AAAA,gBACT,IAAA,EAAM,YAAA;AAAA,gBACN,QAAA,EAAU;AAAA,kBACT,MAAM,IAAA,CAAK,IAAA;AAAA,kBACX,aAAa,IAAA,CAAK,KAAA;AAAA,kBAClB,IAAI,IAAA,CAAK,EAAA;AAAA,kBACT,YAAA,EAAc;AAAA,oBACb,UAAA,EAAY,QAAA;AAAA,oBACZ,KAAA,EAAO;AAAA;AACR;AACD,eACD,CAAE;AAAA;AACH;AACD;AAAA;AACD;AAAA,GACD;AAEF","file":"FurtherAnalysisVisualization.js","sourcesContent":["import { getOrgUnitsForAnalytics } from \"../../utils/orgUnits\";\nimport type { FurtherAnalysisConfig } from \"./components/FurtherAnalysisModal\";\nimport { Visualization } from \"@hisptz/dhis2-analytics\";\n\nexport type DataItemType = \"dataElement\" | \"indicator\" | \"programIndicator\";\n\nexport interface FurtherAnalysisVisualizationProps {\n\tconfig: FurtherAnalysisConfig;\n}\n\nexport function FurtherAnalysisVisualization({\n\tconfig,\n}: FurtherAnalysisVisualizationProps) {\n\tconst orgUnits = getOrgUnitsForAnalytics(config.orgUnitSelection);\n\tconst periods = config.periodSelection.periods.map(({ id }) => id);\n\tconst dataItems = config.dataSources.map(({ id }) => id);\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: 400,\n\t\t\t\tpadding: 32,\n\t\t\t\tminHeight: 500,\n\t\t\t\tmaxHeight: \"80dvh\",\n\t\t\t}}\n\t\t>\n\t\t\t<Visualization\n\t\t\t\theight={400}\n\t\t\t\tlayout={{\n\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\tfilters: [\"pe\"],\n\t\t\t\t\trows: [\"ou\"],\n\t\t\t\t}}\n\t\t\t\tshowToolbar\n\t\t\t\tshowOrgUnitSelector\n\t\t\t\tshowPeriodSelector\n\t\t\t\tdefaultVisualizationType={\"chart\"}\n\t\t\t\tdimensions={{\n\t\t\t\t\tou: orgUnits,\n\t\t\t\t\tpe: periods,\n\t\t\t\t\tdx: dataItems,\n\t\t\t\t}}\n\t\t\t\tconfig={{\n\t\t\t\t\tchart: {\n\t\t\t\t\t\ttype: \"column\",\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tfilter: [\"pe\"],\n\t\t\t\t\t\t\tcategory: [\"ou\"],\n\t\t\t\t\t\t\tseries: [\"dx\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tpivotTable: {},\n\t\t\t\t\tmap: {\n\t\t\t\t\t\tshowPeriodTitle: true,\n\t\t\t\t\t\tthematicLayers: config.dataSources.map((item) => ({\n\t\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\t\tname: item.label,\n\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\ttype: \"choropleth\",\n\t\t\t\t\t\t\tdataItem: {\n\t\t\t\t\t\t\t\ttype: item.type as DataItemType,\n\t\t\t\t\t\t\t\tdisplayName: item.label!,\n\t\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\t\tlegendConfig: {\n\t\t\t\t\t\t\t\t\tcolorClass: \"YlOrBr\",\n\t\t\t\t\t\t\t\t\tscale: 7,\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},\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardTable/FurtherAnalysisVisualization.tsx"],"names":["orgUnits","getOrgUnitsForAnalytics","jsx","Visualization"],"mappings":";;;;;;AAUO,SAAS,4BAAA,CAA6B;AAAA,EAC5C;AACD,CAAA,EAAsC;AACrC,EAAA,MAAMA,UAAA,GAAWC,gCAAA,CAAwB,MAAA,CAAO,gBAAgB,CAAA;AAChE,EAAA,MAAM,OAAA,GAAU,OAAO,eAAA,CAAgB,OAAA,CAAQ,IAAI,CAAC,EAAE,EAAA,EAAG,KAAM,EAAE,CAAA;AACjE,EAAA,MAAM,SAAA,GAAY,OAAO,WAAA,CAAY,GAAA,CAAI,CAAC,EAAE,EAAA,OAAS,EAAE,CAAA;AACvD,EAAA,uBACCC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,KAAA,EAAO,MAAA;AAAA,QACP,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,EAAA;AAAA,QACT,SAAA,EAAW,GAAA;AAAA,QACX,SAAA,EAAW;AAAA,OACZ;AAAA,MAEA,QAAA,kBAAAA,cAAA;AAAA,QAACC,4BAAA;AAAA,QAAA;AAAA,UACA,MAAA,EAAQ,GAAA;AAAA,UACR,MAAA,EACC,OAAO,MAAA,IAAU;AAAA,YAChB,OAAA,EAAS,CAAC,IAAI,CAAA;AAAA,YACd,OAAA,EAAS,CAAC,IAAI,CAAA;AAAA,YACd,IAAA,EAAM,CAAC,IAAI;AAAA,WACZ;AAAA,UAED,WAAA,EAAW,IAAA;AAAA,UACX,mBAAA,EAAmB,IAAA;AAAA,UACnB,kBAAA,EAAkB,IAAA;AAAA,UAClB,wBAAA,EACC,MAAA,CAAO,IAAA,EAAM,iBAAA,IAAqB,OAAA;AAAA,UAEnC,UAAA,EAAY;AAAA,YACX,EAAA,EAAIH,UAAA;AAAA,YACJ,EAAA,EAAI,OAAA;AAAA,YACJ,EAAA,EAAI;AAAA,WACL;AAAA,UACA,MAAA,EAAQ;AAAA,YACP,KAAA,EAAO;AAAA,cACN,IAAA,EAAM,MAAA,CAAO,IAAA,EAAM,SAAA,IAAa,QAAA;AAAA,cAChC,MAAA,EAAQ;AAAA,gBACP,MAAA,EAAQ,MAAA,CAAO,MAAA,EAAQ,OAAA,IAAW,CAAC,IAAI,CAAA;AAAA,gBACvC,QAAA,EAAU,MAAA,CAAO,MAAA,EAAQ,IAAA,IAAQ,CAAC,IAAI,CAAA;AAAA,gBACtC,MAAA,EAAQ,MAAA,CAAO,MAAA,EAAQ,OAAA,IAAW,CAAC,IAAI;AAAA;AACxC,aACD;AAAA,YACA,YAAY,EAAC;AAAA,YACb,GAAA,EAAK;AAAA,cACJ,eAAA,EAAiB,IAAA;AAAA,cACjB,cAAA,EAAgB,MAAA,CAAO,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,gBACjD,OAAA,EAAS,IAAA;AAAA,gBACT,MAAM,IAAA,CAAK,KAAA;AAAA,gBACX,IAAI,IAAA,CAAK,EAAA;AAAA,gBACT,IAAA,EAAM,YAAA;AAAA,gBACN,QAAA,EAAU;AAAA,kBACT,MAAM,IAAA,CAAK,IAAA;AAAA,kBACX,aAAa,IAAA,CAAK,KAAA;AAAA,kBAClB,IAAI,IAAA,CAAK,EAAA;AAAA,kBACT,YAAA,EAAc;AAAA,oBACb,UAAA,EAAY,QAAA;AAAA,oBACZ,KAAA,EAAO;AAAA;AACR;AACD,eACD,CAAE;AAAA;AACH;AACD;AAAA;AACD;AAAA,GACD;AAEF","file":"FurtherAnalysisVisualization.js","sourcesContent":["import { getOrgUnitsForAnalytics } from \"../../utils/orgUnits\";\nimport type { FurtherAnalysisConfig } from \"./components/FurtherAnalysisModal\";\nimport { Visualization } from \"@hisptz/dhis2-analytics\";\n\nexport type DataItemType = \"dataElement\" | \"indicator\" | \"programIndicator\";\n\nexport interface FurtherAnalysisVisualizationProps {\n\tconfig: FurtherAnalysisConfig;\n}\n\nexport function FurtherAnalysisVisualization({\n\tconfig,\n}: FurtherAnalysisVisualizationProps) {\n\tconst orgUnits = getOrgUnitsForAnalytics(config.orgUnitSelection);\n\tconst periods = config.periodSelection.periods.map(({ id }) => id);\n\tconst dataItems = config.dataSources.map(({ id }) => id);\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: 400,\n\t\t\t\tpadding: 32,\n\t\t\t\tminHeight: 500,\n\t\t\t\tmaxHeight: \"80dvh\",\n\t\t\t}}\n\t\t>\n\t\t\t<Visualization\n\t\t\t\theight={400}\n\t\t\t\tlayout={\n\t\t\t\t\tconfig.layout ?? {\n\t\t\t\t\t\tcolumns: [\"dx\"],\n\t\t\t\t\t\tfilters: [\"pe\"],\n\t\t\t\t\t\trows: [\"ou\"],\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshowToolbar\n\t\t\t\tshowOrgUnitSelector\n\t\t\t\tshowPeriodSelector\n\t\t\t\tdefaultVisualizationType={\n\t\t\t\t\tconfig.type?.visualizationType ?? \"chart\"\n\t\t\t\t}\n\t\t\t\tdimensions={{\n\t\t\t\t\tou: orgUnits,\n\t\t\t\t\tpe: periods,\n\t\t\t\t\tdx: dataItems,\n\t\t\t\t}}\n\t\t\t\tconfig={{\n\t\t\t\t\tchart: {\n\t\t\t\t\t\ttype: config.type?.chartType ?? \"column\",\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tfilter: config.layout?.filters ?? [\"pe\"],\n\t\t\t\t\t\t\tcategory: config.layout?.rows ?? [\"ou\"],\n\t\t\t\t\t\t\tseries: config.layout?.columns ?? [\"dx\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tpivotTable: {},\n\t\t\t\t\tmap: {\n\t\t\t\t\t\tshowPeriodTitle: true,\n\t\t\t\t\t\tthematicLayers: config.dataSources.map((item) => ({\n\t\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\t\tname: item.label,\n\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\ttype: \"choropleth\",\n\t\t\t\t\t\t\tdataItem: {\n\t\t\t\t\t\t\t\ttype: item.type as DataItemType,\n\t\t\t\t\t\t\t\tdisplayName: item.label!,\n\t\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\t\tlegendConfig: {\n\t\t\t\t\t\t\t\t\tcolorClass: \"YlOrBr\",\n\t\t\t\t\t\t\t\t\tscale: 7,\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},\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
@@ -25,7 +25,7 @@ function SingleAverageCell({
25
25
  config,
26
26
  value: dataSource.data.average
27
27
  });
28
- }, [dataSource]);
28
+ }, [dataSource, config]);
29
29
  if (!dataSource.data.average || isNaN(dataSource.data.average)) {
30
30
  return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { bordered: true });
31
31
  }
@@ -124,7 +124,7 @@ function DataSourceAverageCell(props) {
124
124
  }
125
125
  function OrgUnitAverageCell(props) {
126
126
  const size = props.cell.column.getSize();
127
- const dataConfig = react.useMemo(() => props.getValue(), [props.getValue()]);
127
+ const dataConfig = react.useMemo(() => props.getValue(), [props]);
128
128
  const { loading, average } = value.useOrgUnitAverageCellValue(dataConfig);
129
129
  if (loading) {
130
130
  return /* @__PURE__ */ jsxRuntime.jsx(CellLoader.CellLoader, { size });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardTable/components/AverageCell.tsx"],"names":["useScorecardConfig","useMemo","getLegend","jsx","DataTableCell","getTextColorFromBackgroundColor","LinkedCell","useDataHolderAverageCellValue","CellLoader","isEmpty","head","useOrgUnitAverageCellValue","useScorecardViewStateValue"],"mappings":"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","file":"AverageCell.js","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type {\n\tScorecardAverageCellData,\n\tScorecardTableAverageCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { head, isEmpty } from \"lodash\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useMemo } from \"react\";\nimport {\n\tgetLegend,\n\tgetTextColorFromBackgroundColor,\n} from \"../../../utils/legends\";\nimport { LinkedCell } from \"./LinkedCell\";\nimport {\n\tuseDataHolderAverageCellValue,\n\tuseOrgUnitAverageCellValue,\n} from \"../../../hooks/value\";\nimport { CellLoader } from \"./CellLoader\";\nimport { useScorecardViewStateValue } from \"../../../utils\";\n\nexport function SingleAverageCell({\n\tdataSource,\n\tsize,\n}: {\n\tdataSource: ScorecardAverageCellData;\n\tsize: number;\n}) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tconfig: config!,\n\t\t\tvalue: dataSource.data.average,\n\t\t});\n\t}, [dataSource]);\n\n\tif (!dataSource.data.average || isNaN(dataSource.data.average)) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\tstyle={{\n\t\t\t\tbackground: legendDefinition?.color,\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tminWidth: 100,\n\t\t\t\twidth: size,\n\t\t\t\theight: 48,\n\t\t\t\tcolor: legendDefinition\n\t\t\t\t\t? getTextColorFromBackgroundColor(legendDefinition?.color)\n\t\t\t\t\t: undefined,\n\t\t\t}}\n\t\t\talign=\"center\"\n\t\t>\n\t\t\t<b>{dataSource.data.average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function LinkedAverageCell({\n\tdataSources,\n\tsize,\n}: {\n\tdataSources: Array<ScorecardAverageCellData>;\n\tsize: number;\n}) {\n\tconst [top, bottom] = dataSources ?? [];\n\tconst config = useScorecardConfig();\n\tconst topLegendDefinition = useMemo(() => {\n\t\tif (!top) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource: top,\n\t\t\tconfig: config!,\n\t\t\tvalue: top.data.average,\n\t\t});\n\t}, [top]);\n\tconst bottomLegendDefinition = useMemo(() => {\n\t\tif (!bottom) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource: bottom,\n\t\t\tconfig: config!,\n\t\t\tvalue: bottom.data.average,\n\t\t});\n\t}, [bottom]);\n\n\treturn (\n\t\t<LinkedCell\n\t\t\tbold\n\t\t\tsize={size}\n\t\t\ttop={{\n\t\t\t\tdataSource: {\n\t\t\t\t\t...top,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcurrent: top.data.average,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlegendDefinition: topLegendDefinition,\n\t\t\t\tvalue: top.data.average,\n\t\t\t}}\n\t\t\tbottom={{\n\t\t\t\tdataSource: {\n\t\t\t\t\t...bottom,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcurrent: bottom.data.average,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlegendDefinition: bottomLegendDefinition,\n\t\t\t\tvalue: bottom.data.average,\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nfunction DataSourceAverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = useMemo(() => props.getValue(), [props.getValue()]);\n\tconst { cellData: dataSources, loading } =\n\t\tuseDataHolderAverageCellValue(dataConfig);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (!isEmpty(dataSources)) {\n\t\tif (dataSources?.length === 1) {\n\t\t\treturn (\n\t\t\t\t<SingleAverageCell\n\t\t\t\t\tsize={size}\n\t\t\t\t\tdataSource={head(dataSources)!}\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\treturn <LinkedAverageCell size={size} dataSources={dataSources!} />;\n\t\t}\n\t}\n\n\treturn <DataTableCell bordered style={{ width: size }} />;\n}\n\nfunction OrgUnitAverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = useMemo(() => props.getValue(), [props.getValue()]);\n\tconst { loading, average } = useOrgUnitAverageCellValue(dataConfig);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (isNaN(average as number)) {\n\t\treturn (\n\t\t\t<DataTableCell\n\t\t\t\tstyle={{ width: size }}\n\t\t\t\tbordered\n\t\t\t\talign=\"center\"\n\t\t\t\tkey={props.row.id}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tstyle={{ width: size }}\n\t\t\tbordered\n\t\t\talign=\"center\"\n\t\t\tkey={props.row.id}\n\t\t>\n\t\t\t<b>{average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function AverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tif (showDataInRows) {\n\t\treturn <DataSourceAverageCell {...props} />;\n\t}\n\n\treturn <OrgUnitAverageCell {...props} />;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardTable/components/AverageCell.tsx"],"names":["useScorecardConfig","useMemo","getLegend","jsx","DataTableCell","getTextColorFromBackgroundColor","LinkedCell","useDataHolderAverageCellValue","CellLoader","isEmpty","head","useOrgUnitAverageCellValue","useScorecardViewStateValue"],"mappings":"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","file":"AverageCell.js","sourcesContent":["import type { CellContext } from \"@tanstack/react-table\";\nimport type {\n\tScorecardAverageCellData,\n\tScorecardTableAverageCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { head, isEmpty } from \"lodash\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useMemo } from \"react\";\nimport {\n\tgetLegend,\n\tgetTextColorFromBackgroundColor,\n} from \"../../../utils/legends\";\nimport { LinkedCell } from \"./LinkedCell\";\nimport {\n\tuseDataHolderAverageCellValue,\n\tuseOrgUnitAverageCellValue,\n} from \"../../../hooks/value\";\nimport { CellLoader } from \"./CellLoader\";\nimport { useScorecardViewStateValue } from \"../../../utils\";\n\nexport function SingleAverageCell({\n\tdataSource,\n\tsize,\n}: {\n\tdataSource: ScorecardAverageCellData;\n\tsize: number;\n}) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinition = useMemo(() => {\n\t\tif (!dataSource) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource,\n\t\t\tconfig: config!,\n\t\t\tvalue: dataSource.data.average,\n\t\t});\n\t}, [dataSource, config]);\n\n\tif (!dataSource.data.average || isNaN(dataSource.data.average)) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\tstyle={{\n\t\t\t\tbackground: legendDefinition?.color,\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tminWidth: 100,\n\t\t\t\twidth: size,\n\t\t\t\theight: 48,\n\t\t\t\tcolor: legendDefinition\n\t\t\t\t\t? getTextColorFromBackgroundColor(legendDefinition?.color)\n\t\t\t\t\t: undefined,\n\t\t\t}}\n\t\t\talign=\"center\"\n\t\t>\n\t\t\t<b>{dataSource.data.average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function LinkedAverageCell({\n\tdataSources,\n\tsize,\n}: {\n\tdataSources: Array<ScorecardAverageCellData>;\n\tsize: number;\n}) {\n\tconst [top, bottom] = dataSources ?? [];\n\tconst config = useScorecardConfig();\n\tconst topLegendDefinition = useMemo(() => {\n\t\tif (!top) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource: top,\n\t\t\tconfig: config!,\n\t\t\tvalue: top.data.average,\n\t\t});\n\t}, [top]);\n\tconst bottomLegendDefinition = useMemo(() => {\n\t\tif (!bottom) {\n\t\t\treturn;\n\t\t}\n\t\treturn getLegend({\n\t\t\tdataSource: bottom,\n\t\t\tconfig: config!,\n\t\t\tvalue: bottom.data.average,\n\t\t});\n\t}, [bottom]);\n\n\treturn (\n\t\t<LinkedCell\n\t\t\tbold\n\t\t\tsize={size}\n\t\t\ttop={{\n\t\t\t\tdataSource: {\n\t\t\t\t\t...top,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcurrent: top.data.average,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlegendDefinition: topLegendDefinition,\n\t\t\t\tvalue: top.data.average,\n\t\t\t}}\n\t\t\tbottom={{\n\t\t\t\tdataSource: {\n\t\t\t\t\t...bottom,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcurrent: bottom.data.average,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlegendDefinition: bottomLegendDefinition,\n\t\t\t\tvalue: bottom.data.average,\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nfunction DataSourceAverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = useMemo(() => props.getValue(), [props.getValue()]);\n\tconst { cellData: dataSources, loading } =\n\t\tuseDataHolderAverageCellValue(dataConfig);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (!isEmpty(dataSources)) {\n\t\tif (dataSources?.length === 1) {\n\t\t\treturn (\n\t\t\t\t<SingleAverageCell\n\t\t\t\t\tsize={size}\n\t\t\t\t\tdataSource={head(dataSources)!}\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\treturn <LinkedAverageCell size={size} dataSources={dataSources!} />;\n\t\t}\n\t}\n\n\treturn <DataTableCell bordered style={{ width: size }} />;\n}\n\nfunction OrgUnitAverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = useMemo(() => props.getValue(), [props]);\n\tconst { loading, average } = useOrgUnitAverageCellValue(dataConfig);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (isNaN(average as number)) {\n\t\treturn (\n\t\t\t<DataTableCell\n\t\t\t\tstyle={{ width: size }}\n\t\t\t\tbordered\n\t\t\t\talign=\"center\"\n\t\t\t\tkey={props.row.id}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tstyle={{ width: size }}\n\t\t\tbordered\n\t\t\talign=\"center\"\n\t\t\tkey={props.row.id}\n\t\t>\n\t\t\t<b>{average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function AverageCell(\n\tprops: CellContext<ScorecardTableData, ScorecardTableAverageCellConfig>,\n) {\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tif (showDataInRows) {\n\t\treturn <DataSourceAverageCell {...props} />;\n\t}\n\n\treturn <OrgUnitAverageCell {...props} />;\n}\n"]}
@@ -6,44 +6,22 @@ var MetaProvider = require('../../MetaProvider');
6
6
  var DataProvider = require('../../DataProvider');
7
7
  var react = require('react');
8
8
  var columns = require('../../../utils/columns');
9
- var CellLoader = require('./CellLoader');
9
+ var completed = require('../../../hooks/completed');
10
10
 
11
11
  function AverageFooterCell({
12
12
  column
13
13
  }) {
14
14
  const size = column.getSize();
15
- const meta = MetaProvider.useScorecardMeta();
16
- const [loading, setLoading] = react.useState(false);
17
- const [average, setAverage] = react.useState();
18
15
  const { data: scorecardEngine } = DataProvider.useScorecardData();
19
- react.useEffect(() => {
20
- setLoading(true);
21
- const listener = (completed) => {
22
- if (completed) {
23
- setAverage(
24
- columns.getAverageValue({
25
- dataValues: scorecardEngine.data,
26
- meta
27
- })
28
- );
29
- setLoading(false);
30
- }
31
- };
32
- if (scorecardEngine.isDone) {
33
- setAverage(
34
- columns.getAverageValue({
35
- dataValues: scorecardEngine.data,
36
- meta
37
- })
38
- );
39
- setLoading(false);
40
- } else {
41
- return scorecardEngine.addOnCompleteListener(listener);
42
- }
43
- }, []);
44
- if (loading) {
45
- return /* @__PURE__ */ jsxRuntime.jsx(CellLoader.CellLoader, { size });
46
- }
16
+ const meta = MetaProvider.useScorecardMeta();
17
+ const isDone = completed.useScorecardLoadingCompleted();
18
+ const average = react.useMemo(() => {
19
+ if (!isDone) return;
20
+ return columns.getAverageValue({
21
+ dataValues: Array.from(scorecardEngine.data.values()),
22
+ meta
23
+ });
24
+ }, [meta, isDone, scorecardEngine.data]);
47
25
  if (!average || isNaN(average)) {
48
26
  return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { style: { width: size }, bordered: true });
49
27
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardTable/components/AverageFooterCell.tsx"],"names":["useScorecardMeta","useState","useScorecardData","useEffect","getAverageValue","jsx","CellLoader","DataTableCell"],"mappings":";;;;;;;;;;AASO,SAAS,iBAAA,CAAkB;AAAA,EACjC;AACD,CAAA,EAA2C;AAC1C,EAAA,MAAM,IAAA,GAAO,OAAO,OAAA,EAAQ;AAC5B,EAAA,MAAM,OAAOA,6BAAA,EAAiB;AAC9B,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIC,eAAkB,KAAK,CAAA;AACrD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,cAAA,EAAiB;AAC/C,EAAA,MAAM,EAAE,IAAA,EAAM,eAAA,EAAgB,GAAIC,6BAAA,EAAiB;AAEnD,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,MAAM,QAAA,GAAW,CAAC,SAAA,KAAuB;AACxC,MAAA,IAAI,SAAA,EAAW;AACd,QAAA,UAAA;AAAA,UACCC,uBAAA,CAAgB;AAAA,YACf,YAAY,eAAA,CAAgB,IAAA;AAAA,YAC5B;AAAA,WACA;AAAA,SACF;AACA,QAAA,UAAA,CAAW,KAAK,CAAA;AAAA,MACjB;AAAA,IACD,CAAA;AACA,IAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC3B,MAAA,UAAA;AAAA,QACCA,uBAAA,CAAgB;AAAA,UACf,YAAY,eAAA,CAAgB,IAAA;AAAA,UAC5B;AAAA,SACA;AAAA,OACF;AACA,MAAA,UAAA,CAAW,KAAK,CAAA;AAAA,IACjB,CAAA,MAAO;AACN,MAAA,OAAO,eAAA,CAAgB,sBAAsB,QAAQ,CAAA;AAAA,IACtD;AAAA,EACD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,uBAAOC,cAAA,CAACC,yBAAW,IAAA,EAAY,CAAA;AAAA,EAChC;AAEA,EAAA,IAAI,CAAC,OAAA,IAAW,KAAA,CAAM,OAAO,CAAA,EAAG;AAC/B,IAAA,uBAAOD,cAAA,CAACE,oBAAc,KAAA,EAAO,EAAE,OAAO,IAAA,EAAK,EAAG,UAAQ,IAAA,EAAC,CAAA;AAAA,EACxD;AAEA,EAAA,sCACEA,gBAAA,EAAA,EAAc,KAAA,EAAO,EAAE,KAAA,EAAO,IAAA,IAAQ,QAAA,EAAQ,IAAA,EAAC,OAAM,QAAA,EACrD,QAAA,kBAAAF,cAAA,CAAC,OAAG,QAAA,EAAA,OAAA,EAAS,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,IAAW,CAAA,EACpC,CAAA;AAEF","file":"AverageFooterCell.js","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../schemas/config\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { useEffect, useState } from \"react\";\nimport { getAverageValue } from \"../../../utils/columns\";\nimport { CellLoader } from \"./CellLoader\";\n\nexport function AverageFooterCell({\n\tcolumn,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst size = column.getSize();\n\tconst meta = useScorecardMeta();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [average, setAverage] = useState<number>();\n\tconst { data: scorecardEngine } = useScorecardData();\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetAverage(\n\t\t\t\t\tgetAverageValue({\n\t\t\t\t\t\tdataValues: scorecardEngine.data,\n\t\t\t\t\t\tmeta: meta!,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tsetAverage(\n\t\t\t\tgetAverageValue({\n\t\t\t\t\tdataValues: scorecardEngine.data,\n\t\t\t\t\tmeta: meta!,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\treturn scorecardEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, []);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (!average || isNaN(average)) {\n\t\treturn <DataTableCell style={{ width: size }} bordered />;\n\t}\n\n\treturn (\n\t\t<DataTableCell style={{ width: size }} bordered align=\"center\">\n\t\t\t<b>{average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardTable/components/AverageFooterCell.tsx"],"names":["useScorecardData","useScorecardMeta","useScorecardLoadingCompleted","useMemo","getAverageValue","jsx","DataTableCell"],"mappings":";;;;;;;;;;AASO,SAAS,iBAAA,CAAkB;AAAA,EACjC;AACD,CAAA,EAA2C;AAC1C,EAAA,MAAM,IAAA,GAAO,OAAO,OAAA,EAAQ;AAC5B,EAAA,MAAM,EAAE,IAAA,EAAM,eAAA,EAAgB,GAAIA,6BAAA,EAAiB;AACnD,EAAA,MAAM,OAAOC,6BAAA,EAAiB;AAC9B,EAAA,MAAM,SAASC,sCAAA,EAA6B;AAC5C,EAAA,MAAM,OAAA,GAAUC,cAAQ,MAAM;AAC7B,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,OAAOC,uBAAA,CAAgB;AAAA,MACtB,YAAY,KAAA,CAAM,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,QAAQ,CAAA;AAAA,MACpD;AAAA,KACA,CAAA;AAAA,EACF,GAAG,CAAC,IAAA,EAAM,MAAA,EAAQ,eAAA,CAAgB,IAAI,CAAC,CAAA;AAEvC,EAAA,IAAI,CAAC,OAAA,IAAW,KAAA,CAAM,OAAO,CAAA,EAAG;AAC/B,IAAA,uBAAOC,cAAA,CAACC,oBAAc,KAAA,EAAO,EAAE,OAAO,IAAA,EAAK,EAAG,UAAQ,IAAA,EAAC,CAAA;AAAA,EACxD;AAEA,EAAA,sCACEA,gBAAA,EAAA,EAAc,KAAA,EAAO,EAAE,KAAA,EAAO,IAAA,IAAQ,QAAA,EAAQ,IAAA,EAAC,OAAM,QAAA,EACrD,QAAA,kBAAAD,cAAA,CAAC,OAAG,QAAA,EAAA,OAAA,EAAS,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,IAAW,CAAA,EACpC,CAAA;AAEF","file":"AverageFooterCell.js","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../schemas/config\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { useMemo, useSyncExternalStore } from \"react\";\nimport { getAverageValue } from \"../../../utils/columns\";\nimport { useScorecardLoadingCompleted } from \"../../../hooks/completed\";\n\nexport function AverageFooterCell({\n\tcolumn,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst size = column.getSize();\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst isDone = useScorecardLoadingCompleted();\n\tconst average = useMemo(() => {\n\t\tif (!isDone) return;\n\t\treturn getAverageValue({\n\t\t\tdataValues: Array.from(scorecardEngine.data.values()),\n\t\t\tmeta: meta!,\n\t\t});\n\t}, [meta, isDone, scorecardEngine.data]);\n\n\tif (!average || isNaN(average)) {\n\t\treturn <DataTableCell style={{ width: size }} bordered />;\n\t}\n\n\treturn (\n\t\t<DataTableCell style={{ width: size }} bordered align=\"center\">\n\t\t\t<b>{average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n"]}
@@ -25,7 +25,10 @@ function DataContainerComponent(props) {
25
25
  if (!dataConfig) {
26
26
  return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { bordered: true });
27
27
  }
28
- if (cellData?.length === 1) {
28
+ if (!cellData) {
29
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { bordered: true });
30
+ }
31
+ if (cellData.length === 1) {
29
32
  return /* @__PURE__ */ jsxRuntime.jsx(
30
33
  SingleDataCell.SingleDataCell,
31
34
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardTable/components/DataContainer.tsx"],"names":["useScorecardConfig","useScorecardMeta","useCellValue","jsx","DataTableCell","CellLoader","SingleDataCell","LinkedDataCell","memo","DataContainer"],"mappings":";;;;;;;;;;;;AAcA,SAAS,uBACR,KAAA,EACC;AACD,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,OAAA,EAAQ;AACvC,EAAA,MAAM,UAAA,GAAa,MAAM,QAAA,EAAS;AAClC,EAAA,MAAM,SAASA,iCAAA,EAAmB;AAClC,EAAA,MAAM,OAAOC,6BAAA,EAAiB;AAC9B,EAAA,MAAM,EAAE,OAAA,EAAS,QAAA,KAAaC,kBAAA,CAAa,KAAA,CAAM,UAAU,CAAA;AAE3D,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,IAAA,EAAM;AACrB,IAAA,uBAAOC,cAAA,CAACC,oBAAc,KAAA,EAAO,EAAE,OAAO,IAAA,EAAK,EAAG,UAAQ,IAAA,EAAC,CAAA;AAAA,EACxD;AAEA,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,uBAAOD,cAAA,CAACE,yBAAW,IAAA,EAAY,CAAA;AAAA,EAChC;AAEA,EAAA,IAAI,CAAC,UAAA,EAAY;AAChB,IAAA,uBAAOF,cAAA,CAACC,gBAAA,EAAA,EAAc,QAAA,EAAQ,IAAA,EAAC,CAAA;AAAA,EAChC;AAEA,EAAA,IAAI,QAAA,EAAU,WAAW,CAAA,EAAG;AAC3B,IAAA,uBACCD,cAAA;AAAA,MAACG,6BAAA;AAAA,MAAA;AAAA,QACC,GAAG,UAAA;AAAA,QACJ,IAAA;AAAA,QACA,QAAQ,UAAA,CAAW,aAAA;AAAA,QACnB,WAAA,EAAa;AAAA;AAAA,KACd;AAAA,EAEF;AAEA,EAAA,uBACCH,cAAA;AAAA,IAACI,6BAAA;AAAA,IAAA;AAAA,MACC,GAAG,UAAA;AAAA,MACJ,IAAA;AAAA,MACA,QAAQ,UAAA,CAAW,aAAA;AAAA,MACnB,WAAA,EAAa;AAAA;AAAA,GACd;AAEF;AAEO,MAAM,aAAA,GAAgBC,UAAA,CAAK,SAASC,cAAAA,CAC1C,KAAA,EACC;AACD,EAAA,MAAM,MAAA,GAAS,MAAM,QAAA,EAAS;AAE9B,EAAA,IAAI,CAAC,MAAA,EAAQ;AACZ,IAAA,sCAAQL,gBAAA,EAAA,EAAc,QAAA,EAAQ,MAAC,GAAA,EAAI,IAAA,EAAK,OAAM,MAAA,EAAO,CAAA;AAAA,EACtD;AAEA,EAAA,uBAAOD,cAAA,CAAC,sBAAA,EAAA,EAAwB,GAAG,KAAA,EAAO,CAAA;AAC3C,CAAC","file":"DataContainer.js","sourcesContent":["import type {\n\tScorecardTableCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { SingleDataCell } from \"./SingleDataCell\";\nimport { LinkedDataCell } from \"./LinkedDataCell\";\nimport type { CellContext } from \"@tanstack/react-table\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { memo } from \"react\";\nimport { useCellValue } from \"../../../hooks/value\";\nimport { CellLoader } from \"./CellLoader\";\n\nfunction DataContainerComponent(\n\tprops: CellContext<ScorecardTableData, ScorecardTableCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = props.getValue();\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst { loading, cellData } = useCellValue(props.getValue());\n\n\tif (!config || !meta) {\n\t\treturn <DataTableCell style={{ width: size }} bordered />;\n\t}\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (!dataConfig) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\tif (cellData?.length === 1) {\n\t\treturn (\n\t\t\t<SingleDataCell\n\t\t\t\t{...dataConfig}\n\t\t\t\tsize={size}\n\t\t\t\tperiod={dataConfig.currentPeriod!}\n\t\t\t\tdataSources={cellData}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<LinkedDataCell\n\t\t\t{...dataConfig}\n\t\t\tsize={size}\n\t\t\tperiod={dataConfig.currentPeriod!}\n\t\t\tdataSources={cellData}\n\t\t/>\n\t);\n}\n\nexport const DataContainer = memo(function DataContainer(\n\tprops: CellContext<ScorecardTableData, ScorecardTableCellConfig>,\n) {\n\tconst config = props.getValue();\n\n\tif (!config) {\n\t\treturn <DataTableCell bordered tag=\"th\" width=\"auto\" />;\n\t}\n\n\treturn <DataContainerComponent {...props} />;\n});\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardTable/components/DataContainer.tsx"],"names":["useScorecardConfig","useScorecardMeta","useCellValue","jsx","DataTableCell","CellLoader","SingleDataCell","LinkedDataCell","memo","DataContainer"],"mappings":";;;;;;;;;;;;AAcA,SAAS,uBACR,KAAA,EACC;AACD,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,OAAA,EAAQ;AACvC,EAAA,MAAM,UAAA,GAAa,MAAM,QAAA,EAAS;AAClC,EAAA,MAAM,SAASA,iCAAA,EAAmB;AAClC,EAAA,MAAM,OAAOC,6BAAA,EAAiB;AAC9B,EAAA,MAAM,EAAE,OAAA,EAAS,QAAA,KAAaC,kBAAA,CAAa,KAAA,CAAM,UAAU,CAAA;AAE3D,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,IAAA,EAAM;AACrB,IAAA,uBAAOC,cAAA,CAACC,oBAAc,KAAA,EAAO,EAAE,OAAO,IAAA,EAAK,EAAG,UAAQ,IAAA,EAAC,CAAA;AAAA,EACxD;AAEA,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,uBAAOD,cAAA,CAACE,yBAAW,IAAA,EAAY,CAAA;AAAA,EAChC;AAEA,EAAA,IAAI,CAAC,UAAA,EAAY;AAChB,IAAA,uBAAOF,cAAA,CAACC,gBAAA,EAAA,EAAc,QAAA,EAAQ,IAAA,EAAC,CAAA;AAAA,EAChC;AAEA,EAAA,IAAI,CAAC,QAAA,EAAU;AACd,IAAA,uBAAOD,cAAA,CAACC,gBAAA,EAAA,EAAc,QAAA,EAAQ,IAAA,EAAC,CAAA;AAAA,EAChC;AAEA,EAAA,IAAI,QAAA,CAAS,WAAW,CAAA,EAAG;AAC1B,IAAA,uBACCD,cAAA;AAAA,MAACG,6BAAA;AAAA,MAAA;AAAA,QACC,GAAG,UAAA;AAAA,QACJ,IAAA;AAAA,QACA,QAAQ,UAAA,CAAW,aAAA;AAAA,QACnB,WAAA,EAAa;AAAA;AAAA,KACd;AAAA,EAEF;AAEA,EAAA,uBACCH,cAAA;AAAA,IAACI,6BAAA;AAAA,IAAA;AAAA,MACC,GAAG,UAAA;AAAA,MACJ,IAAA;AAAA,MACA,QAAQ,UAAA,CAAW,aAAA;AAAA,MACnB,WAAA,EAAa;AAAA;AAAA,GACd;AAEF;AAEO,MAAM,aAAA,GAAgBC,UAAA,CAAK,SAASC,cAAAA,CAC1C,KAAA,EACC;AACD,EAAA,MAAM,MAAA,GAAS,MAAM,QAAA,EAAS;AAE9B,EAAA,IAAI,CAAC,MAAA,EAAQ;AACZ,IAAA,sCAAQL,gBAAA,EAAA,EAAc,QAAA,EAAQ,MAAC,GAAA,EAAI,IAAA,EAAK,OAAM,MAAA,EAAO,CAAA;AAAA,EACtD;AAEA,EAAA,uBAAOD,cAAA,CAAC,sBAAA,EAAA,EAAwB,GAAG,KAAA,EAAO,CAAA;AAC3C,CAAC","file":"DataContainer.js","sourcesContent":["import type {\n\tScorecardTableCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { SingleDataCell } from \"./SingleDataCell\";\nimport { LinkedDataCell } from \"./LinkedDataCell\";\nimport type { CellContext } from \"@tanstack/react-table\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport { memo } from \"react\";\nimport { useCellValue } from \"../../../hooks/value\";\nimport { CellLoader } from \"./CellLoader\";\n\nfunction DataContainerComponent(\n\tprops: CellContext<ScorecardTableData, ScorecardTableCellConfig>,\n) {\n\tconst size = props.cell.column.getSize();\n\tconst dataConfig = props.getValue();\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst { loading, cellData } = useCellValue(props.getValue());\n\n\tif (!config || !meta) {\n\t\treturn <DataTableCell style={{ width: size }} bordered />;\n\t}\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (!dataConfig) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\tif (!cellData) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\tif (cellData.length === 1) {\n\t\treturn (\n\t\t\t<SingleDataCell\n\t\t\t\t{...dataConfig}\n\t\t\t\tsize={size}\n\t\t\t\tperiod={dataConfig.currentPeriod!}\n\t\t\t\tdataSources={cellData}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<LinkedDataCell\n\t\t\t{...dataConfig}\n\t\t\tsize={size}\n\t\t\tperiod={dataConfig.currentPeriod!}\n\t\t\tdataSources={cellData}\n\t\t/>\n\t);\n}\n\nexport const DataContainer = memo(function DataContainer(\n\tprops: CellContext<ScorecardTableData, ScorecardTableCellConfig>,\n) {\n\tconst config = props.getValue();\n\n\tif (!config) {\n\t\treturn <DataTableCell bordered tag=\"th\" width=\"auto\" />;\n\t}\n\n\treturn <DataContainerComponent {...props} />;\n});\n"]}
@@ -3,11 +3,10 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var react = require('react');
5
5
  var ui = require('@dhis2/ui');
6
- var DataProvider = require('../../DataProvider');
7
6
  var lodash = require('lodash');
8
- var CellLoader = require('./CellLoader');
9
7
  var AverageCell = require('./AverageCell');
10
- var viewState = require('../../../utils/viewState');
8
+ var utils = require('../../../utils');
9
+ var value = require('../../../hooks/value');
11
10
 
12
11
  function getOrgUnitAverage({
13
12
  dataSourcesConfig,
@@ -32,37 +31,24 @@ function OrgUnitFooterCell({
32
31
  dataSourcesConfig,
33
32
  size
34
33
  }) {
35
- const { data: scorecardEngine } = DataProvider.useScorecardData();
36
- const [loading, setLoading] = react.useState(false);
37
- const [averageValues, setAverageValues] = react.useState();
38
- react.useEffect(() => {
39
- setLoading(true);
40
- const listener = (completed) => {
41
- if (completed) {
42
- setAverageValues(
43
- getOrgUnitAverage({
44
- dataSourcesConfig,
45
- data: scorecardEngine.data
46
- })
47
- );
48
- setLoading(false);
49
- }
50
- };
51
- if (scorecardEngine.isDone) {
52
- setAverageValues(
53
- getOrgUnitAverage({
54
- dataSourcesConfig,
55
- data: scorecardEngine.data
56
- })
57
- );
58
- setLoading(false);
59
- } else {
60
- return scorecardEngine.addOnCompleteListener(listener);
34
+ const analyticsData = value.useDataValue({
35
+ ou: dataSourcesConfig.map(({ orgUnit }) => orgUnit.uid),
36
+ pe: lodash.compact(
37
+ dataSourcesConfig.map(({ currentPeriod }) => currentPeriod)
38
+ ),
39
+ dx: lodash.compact(
40
+ dataSourcesConfig.map(({ dataSources }) => dataSources?.map(({ id }) => id)).flat()
41
+ )
42
+ });
43
+ const averageValues = react.useMemo(() => {
44
+ if (!analyticsData) {
45
+ return;
61
46
  }
62
- }, [dataSourcesConfig]);
63
- if (loading) {
64
- return /* @__PURE__ */ jsxRuntime.jsx(CellLoader.CellLoader, { size });
65
- }
47
+ return getOrgUnitAverage({
48
+ dataSourcesConfig,
49
+ data: analyticsData
50
+ });
51
+ }, [analyticsData, dataSourcesConfig]);
66
52
  if (lodash.isEmpty(averageValues)) {
67
53
  return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { style: { width: size }, bordered: true });
68
54
  }
@@ -76,43 +62,21 @@ function DataHolderFooterCell({
76
62
  dataSourcesConfig,
77
63
  size
78
64
  }) {
79
- const { data: scorecardEngine } = DataProvider.useScorecardData();
80
- const [loading, setLoading] = react.useState(false);
81
- const [average, setAverage] = react.useState();
82
- react.useEffect(() => {
83
- setLoading(true);
84
- const listener = (completed) => {
85
- if (completed) {
86
- setLoading(false);
87
- const orgUnitId = lodash.head(dataSourcesConfig);
88
- const dataValues = scorecardEngine.data.filter(
89
- (datum) => datum.ou === orgUnitId.orgUnit.uid
90
- );
91
- const average2 = lodash.meanBy(
92
- dataValues,
93
- (value) => parseFloat(value.value)
94
- );
95
- setAverage(average2);
96
- }
97
- };
98
- if (scorecardEngine.isDone) {
99
- const orgUnitId = lodash.head(dataSourcesConfig);
100
- const dataValues = scorecardEngine.data.filter(
101
- (datum) => datum.ou === orgUnitId.orgUnit.uid
102
- );
103
- const average2 = lodash.meanBy(
104
- dataValues,
105
- (value) => parseFloat(value.value)
106
- );
107
- setAverage(average2);
108
- setLoading(false);
109
- } else {
110
- return scorecardEngine.addOnCompleteListener(listener);
65
+ const analyticsData = value.useDataValue({
66
+ ou: dataSourcesConfig.map(({ orgUnit }) => orgUnit.uid),
67
+ pe: lodash.compact(
68
+ dataSourcesConfig.map(({ currentPeriod }) => currentPeriod)
69
+ ),
70
+ dx: lodash.compact(
71
+ dataSourcesConfig.map(({ dataSources }) => dataSources?.map(({ id }) => id)).flat()
72
+ )
73
+ });
74
+ const average = react.useMemo(() => {
75
+ if (!analyticsData) {
76
+ return;
111
77
  }
112
- }, [dataSourcesConfig]);
113
- if (loading) {
114
- return /* @__PURE__ */ jsxRuntime.jsx(CellLoader.CellLoader, { size });
115
- }
78
+ return lodash.meanBy(analyticsData, (datum) => parseFloat(datum.value));
79
+ }, [analyticsData]);
116
80
  if (isNaN(average)) {
117
81
  return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableCell, { style: { width: size }, bordered: true, align: "center" });
118
82
  }
@@ -123,12 +87,12 @@ function DataFooterCell({
123
87
  column
124
88
  }) {
125
89
  const size = column.getSize();
126
- const showDataInRows = viewState.useScorecardViewStateValue("showDataInRows");
90
+ const showDataInRows = utils.useScorecardViewStateValue("showDataInRows");
127
91
  const dataSourceConfig = react.useMemo(() => {
128
92
  return table.getRowModel().rows.map(
129
93
  (row) => row.getValue(column.id)
130
94
  );
131
- }, [table.getRowModel().rows]);
95
+ }, [table, column.id]);
132
96
  if (showDataInRows) {
133
97
  return /* @__PURE__ */ jsxRuntime.jsx(
134
98
  DataHolderFooterCell,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardTable/components/DataFooterCell.tsx"],"names":["head","meanBy","useScorecardData","useState","useEffect","jsx","CellLoader","isEmpty","DataTableCell","SingleAverageCell","LinkedAverageCell","average","useScorecardViewStateValue","useMemo"],"mappings":"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","file":"DataFooterCell.js","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport type {\n\tScorecardAverageCellData,\n\tScorecardTableCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport type { AnalyticsData } from \"../../../utils/data\";\nimport { useScorecardData } from \"../../DataProvider\";\nimport { head, isEmpty, meanBy } from \"lodash\";\nimport { CellLoader } from \"./CellLoader\";\nimport { LinkedAverageCell, SingleAverageCell } from \"./AverageCell\";\nimport { useScorecardViewStateValue } from \"../../../utils/viewState\";\n\nfunction getOrgUnitAverage({\n\tdataSourcesConfig,\n\tdata,\n}: {\n\tdataSourcesConfig: ScorecardTableCellConfig[];\n\tdata: AnalyticsData[];\n}): ScorecardAverageCellData[] {\n\tconst dataSourceConfig = head(dataSourcesConfig)!;\n\n\treturn dataSourceConfig?.dataSources?.map((config) => {\n\t\tconst period = dataSourceConfig.currentPeriod!;\n\t\tconst dataValues = data.filter(\n\t\t\t(datum) => datum.pe === period && datum.dx === config.id,\n\t\t);\n\t\tconst average = meanBy(dataValues, (value) => parseFloat(value.value!));\n\n\t\treturn {\n\t\t\t...config,\n\t\t\tdata: {\n\t\t\t\taverage,\n\t\t\t},\n\t\t};\n\t});\n}\n\nfunction OrgUnitFooterCell({\n\tdataSourcesConfig,\n\tsize,\n}: {\n\tdataSourcesConfig: ScorecardTableCellConfig[];\n\tsize: number;\n}) {\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [averageValues, setAverageValues] =\n\t\tuseState<ScorecardAverageCellData[]>();\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetAverageValues(\n\t\t\t\t\tgetOrgUnitAverage({\n\t\t\t\t\t\tdataSourcesConfig,\n\t\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tsetAverageValues(\n\t\t\t\tgetOrgUnitAverage({\n\t\t\t\t\tdataSourcesConfig,\n\t\t\t\t\tdata: scorecardEngine.data,\n\t\t\t\t}),\n\t\t\t);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\treturn scorecardEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [dataSourcesConfig]);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (isEmpty(averageValues)) {\n\t\treturn <DataTableCell style={{ width: size }} bordered />;\n\t}\n\n\tif (averageValues?.length === 1) {\n\t\treturn (\n\t\t\t<SingleAverageCell size={size} dataSource={head(averageValues)!} />\n\t\t);\n\t} else {\n\t\treturn <LinkedAverageCell size={size} dataSources={averageValues!} />;\n\t}\n}\n\nfunction DataHolderFooterCell({\n\tdataSourcesConfig,\n\tsize,\n}: {\n\tdataSourcesConfig: ScorecardTableCellConfig[];\n\tsize: number;\n}) {\n\tconst { data: scorecardEngine } = useScorecardData();\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [average, setAverage] = useState<number>();\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetLoading(false);\n\t\t\t\tconst orgUnitId = head(dataSourcesConfig)!;\n\t\t\t\tconst dataValues = scorecardEngine.data.filter(\n\t\t\t\t\t(datum) => datum.ou === orgUnitId.orgUnit.uid,\n\t\t\t\t);\n\t\t\t\tconst average = meanBy(dataValues, (value) =>\n\t\t\t\t\tparseFloat(value.value!),\n\t\t\t\t);\n\t\t\t\tsetAverage(average);\n\t\t\t}\n\t\t};\n\t\tif (scorecardEngine.isDone) {\n\t\t\tconst orgUnitId = head(dataSourcesConfig)!;\n\t\t\tconst dataValues = scorecardEngine.data.filter(\n\t\t\t\t(datum) => datum.ou === orgUnitId.orgUnit.uid,\n\t\t\t);\n\t\t\tconst average = meanBy(dataValues, (value) =>\n\t\t\t\tparseFloat(value.value!),\n\t\t\t);\n\t\t\tsetAverage(average);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\treturn scorecardEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [dataSourcesConfig]);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\n\t}\n\n\tif (isNaN(average as number)) {\n\t\treturn (\n\t\t\t<DataTableCell style={{ width: size }} bordered align=\"center\" />\n\t\t);\n\t}\n\treturn (\n\t\t<DataTableCell style={{ width: size }} bordered align=\"center\">\n\t\t\t<b>{average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function DataFooterCell({\n\ttable,\n\tcolumn,\n}: HeaderContext<ScorecardTableData, ScorecardTableCellConfig>) {\n\tconst size = column.getSize();\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\tconst dataSourceConfig = useMemo(() => {\n\t\treturn table\n\t\t\t.getRowModel()\n\t\t\t.rows.map((row) =>\n\t\t\t\trow.getValue(column.id),\n\t\t\t) as ScorecardTableCellConfig[];\n\t}, [table.getRowModel().rows]);\n\n\tif (showDataInRows) {\n\t\treturn (\n\t\t\t<DataHolderFooterCell\n\t\t\t\tsize={size}\n\t\t\t\tdataSourcesConfig={dataSourceConfig}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<OrgUnitFooterCell size={size} dataSourcesConfig={dataSourceConfig} />\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardTable/components/DataFooterCell.tsx"],"names":["head","meanBy","useDataValue","compact","useMemo","isEmpty","jsx","DataTableCell","SingleAverageCell","LinkedAverageCell","useScorecardViewStateValue"],"mappings":"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","file":"DataFooterCell.js","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport type {\n\tScorecardAverageCellData,\n\tScorecardTableCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { useMemo } from \"react\";\nimport { DataTableCell } from \"@dhis2/ui\";\nimport type { AnalyticsData } from \"../../../utils/data\";\nimport { compact, head, isEmpty, meanBy } from \"lodash\";\nimport { LinkedAverageCell, SingleAverageCell } from \"./AverageCell\";\nimport { useScorecardViewStateValue } from \"../../../utils\";\nimport { useDataValue } from \"../../../hooks/value\";\n\nfunction getOrgUnitAverage({\n\tdataSourcesConfig,\n\tdata,\n}: {\n\tdataSourcesConfig: ScorecardTableCellConfig[];\n\tdata: AnalyticsData[];\n}): ScorecardAverageCellData[] {\n\tconst dataSourceConfig = head(dataSourcesConfig)!;\n\n\treturn dataSourceConfig?.dataSources?.map((config) => {\n\t\tconst period = dataSourceConfig.currentPeriod!;\n\t\tconst dataValues = data.filter(\n\t\t\t(datum) => datum.pe === period && datum.dx === config.id,\n\t\t);\n\t\tconst average = meanBy(dataValues, (value) => parseFloat(value.value!));\n\n\t\treturn {\n\t\t\t...config,\n\t\t\tdata: {\n\t\t\t\taverage,\n\t\t\t},\n\t\t};\n\t});\n}\n\nfunction OrgUnitFooterCell({\n\tdataSourcesConfig,\n\tsize,\n}: {\n\tdataSourcesConfig: ScorecardTableCellConfig[];\n\tsize: number;\n}) {\n\tconst analyticsData = useDataValue({\n\t\tou: dataSourcesConfig.map(({ orgUnit }) => orgUnit.uid),\n\t\tpe: compact(\n\t\t\tdataSourcesConfig.map(({ currentPeriod }) => currentPeriod),\n\t\t),\n\t\tdx: compact(\n\t\t\tdataSourcesConfig\n\t\t\t\t.map(({ dataSources }) => dataSources?.map(({ id }) => id))\n\t\t\t\t.flat(),\n\t\t),\n\t});\n\n\tconst averageValues = useMemo(() => {\n\t\tif (!analyticsData) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getOrgUnitAverage({\n\t\t\tdataSourcesConfig,\n\t\t\tdata: analyticsData,\n\t\t});\n\t}, [analyticsData, dataSourcesConfig]);\n\n\tif (isEmpty(averageValues)) {\n\t\treturn <DataTableCell style={{ width: size }} bordered />;\n\t}\n\n\tif (averageValues?.length === 1) {\n\t\treturn (\n\t\t\t<SingleAverageCell size={size} dataSource={head(averageValues)!} />\n\t\t);\n\t} else {\n\t\treturn <LinkedAverageCell size={size} dataSources={averageValues!} />;\n\t}\n}\n\nfunction DataHolderFooterCell({\n\tdataSourcesConfig,\n\tsize,\n}: {\n\tdataSourcesConfig: ScorecardTableCellConfig[];\n\tsize: number;\n}) {\n\tconst analyticsData = useDataValue({\n\t\tou: dataSourcesConfig.map(({ orgUnit }) => orgUnit.uid),\n\t\tpe: compact(\n\t\t\tdataSourcesConfig.map(({ currentPeriod }) => currentPeriod),\n\t\t),\n\t\tdx: compact(\n\t\t\tdataSourcesConfig\n\t\t\t\t.map(({ dataSources }) => dataSources?.map(({ id }) => id))\n\t\t\t\t.flat(),\n\t\t),\n\t});\n\tconst average = useMemo(() => {\n\t\tif (!analyticsData) {\n\t\t\treturn;\n\t\t}\n\t\treturn meanBy(analyticsData, (datum) => parseFloat(datum.value!)) as\n\t\t\t| number\n\t\t\t| undefined;\n\t}, [analyticsData]);\n\n\tif (isNaN(average as number)) {\n\t\treturn (\n\t\t\t<DataTableCell style={{ width: size }} bordered align=\"center\" />\n\t\t);\n\t}\n\treturn (\n\t\t<DataTableCell style={{ width: size }} bordered align=\"center\">\n\t\t\t<b>{average?.toFixed(2).toString()}</b>\n\t\t</DataTableCell>\n\t);\n}\n\nexport function DataFooterCell({\n\ttable,\n\tcolumn,\n}: HeaderContext<ScorecardTableData, ScorecardTableCellConfig>) {\n\tconst size = column.getSize();\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\tconst dataSourceConfig = useMemo(() => {\n\t\treturn table\n\t\t\t.getRowModel()\n\t\t\t.rows.map((row) =>\n\t\t\t\trow.getValue(column.id),\n\t\t\t) as ScorecardTableCellConfig[];\n\t}, [table, column.id]);\n\n\tif (showDataInRows) {\n\t\treturn (\n\t\t\t<DataHolderFooterCell\n\t\t\t\tsize={size}\n\t\t\t\tdataSourcesConfig={dataSourceConfig}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<OrgUnitFooterCell size={size} dataSourcesConfig={dataSourceConfig} />\n\t);\n}\n"]}
@@ -119,6 +119,15 @@ function FurtherAnalysisMenu({
119
119
  }
120
120
  ]
121
121
  },
122
+ type: {
123
+ visualizationType: "chart",
124
+ chartType: "line"
125
+ },
126
+ layout: {
127
+ columns: ["dx"],
128
+ rows: ["pe"],
129
+ filters: ["ou"]
130
+ },
122
131
  orgUnitSelection: {
123
132
  levels: [],
124
133
  groups: [],
@@ -149,6 +158,15 @@ function FurtherAnalysisMenu({
149
158
  }
150
159
  ]
151
160
  },
161
+ type: {
162
+ visualizationType: "chart",
163
+ chartType: "line"
164
+ },
165
+ layout: {
166
+ columns: ["dx"],
167
+ rows: ["pe"],
168
+ filters: ["ou"]
169
+ },
152
170
  orgUnitSelection: {
153
171
  levels: [],
154
172
  groups: [],
@@ -179,6 +197,15 @@ function FurtherAnalysisMenu({
179
197
  }
180
198
  ]
181
199
  },
200
+ type: {
201
+ visualizationType: "chart",
202
+ chartType: "line"
203
+ },
204
+ layout: {
205
+ columns: ["dx"],
206
+ rows: ["pe"],
207
+ filters: ["ou"]
208
+ },
182
209
  orgUnitSelection: {
183
210
  levels: [],
184
211
  groups: [],
@@ -209,6 +236,15 @@ function FurtherAnalysisMenu({
209
236
  }
210
237
  ]
211
238
  },
239
+ type: {
240
+ visualizationType: "chart",
241
+ chartType: "line"
242
+ },
243
+ layout: {
244
+ columns: ["dx"],
245
+ rows: ["pe"],
246
+ filters: ["ou"]
247
+ },
212
248
  orgUnitSelection: {
213
249
  levels: [],
214
250
  groups: [],
@@ -239,6 +275,15 @@ function FurtherAnalysisMenu({
239
275
  }
240
276
  ]
241
277
  },
278
+ type: {
279
+ visualizationType: "chart",
280
+ chartType: "line"
281
+ },
282
+ layout: {
283
+ columns: ["dx"],
284
+ rows: ["pe"],
285
+ filters: ["ou"]
286
+ },
242
287
  orgUnitSelection: {
243
288
  levels: [],
244
289
  groups: [],
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardTable/components/FurtherAnalysisMenu.tsx"],"names":["orgUnit","useLowestOrgUnitLevel","useMemo","getOrgUnitLevel","useState","jsx","Fragment","Popover","Menu","MenuItem","i18n","IconVisualizationColumnStacked16","IconDimensionOrgUnit16","jsxs","IconVisualizationLine24","IconVisualizationColumnStacked24"],"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":["orgUnit","useLowestOrgUnitLevel","useMemo","getOrgUnitLevel","useState","jsx","Fragment","Popover","Menu","MenuItem","i18n","IconVisualizationColumnStacked16","IconDimensionOrgUnit16","jsxs","IconVisualizationLine24","IconVisualizationColumnStacked24"],"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":["useState","Modal","jsx","ModalTitle","i18n","ModalContent","jsxs","FurtherAnalysisDictionary","FurtherAnalysisVisualization","ModalActions","Button"],"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,GAAIA,eAExC,eAAe,CAAA;AAEjB,EAAA,uCACEC,QAAA,EAAA,EAAM,OAAA,EAAkB,MAAY,KAAA,EAAK,IAAA,EAAC,UAAS,QAAA,EACnD,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,aAAA,EAAA,EAAY,QAAA,EAAAC,qBAAA,CAAK,CAAA,CAAE,kBAAkB,CAAA,EAAE,CAAA;AAAA,mCACvCC,eAAA,EAAA,EAmBA,QAAA,kBAAAH,cAAA;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,kBAAAI,eAAA;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,oBAClBJ,cAAA;AAAA,gBAACK,mDAAA;AAAA,gBAAA;AAAA,kBACA;AAAA;AAAA,eACA;AAAA,cAED,aAAA,KAAkB,eAAA,oBAClBL,cAAA,CAACM,yDAAA,EAAA,EAA6B,MAAA,EAAgB;AAAA;AAAA;AAAA;AAEhD;AAAA,KACD,EACD,CAAA;AAAA,oBACAN,cAAA,CAACO,eAAA,EAAA,EACA,QAAA,kBAAAP,cAAA,CAACQ,SAAA,EAAA,EAAO,OAAA,EAAS,SAAU,QAAA,EAAAN,qBAAA,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":["useState","Modal","jsx","ModalTitle","i18n","ModalContent","jsxs","FurtherAnalysisDictionary","FurtherAnalysisVisualization","ModalActions","Button"],"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,GAAIA,eAExC,eAAe,CAAA;AAEjB,EAAA,uCACEC,QAAA,EAAA,EAAM,OAAA,EAAkB,MAAY,KAAA,EAAK,IAAA,EAAC,UAAS,QAAA,EACnD,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,aAAA,EAAA,EAAY,QAAA,EAAAC,qBAAA,CAAK,CAAA,CAAE,kBAAkB,CAAA,EAAE,CAAA;AAAA,mCACvCC,eAAA,EAAA,EAmBA,QAAA,kBAAAH,cAAA;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,kBAAAI,eAAA;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,oBAClBJ,cAAA;AAAA,gBAACK,mDAAA;AAAA,gBAAA;AAAA,kBACA;AAAA;AAAA,eACA;AAAA,cAED,aAAA,KAAkB,eAAA,oBAClBL,cAAA,CAACM,yDAAA,EAAA,EAA6B,MAAA,EAAgB;AAAA;AAAA;AAAA;AAEhD;AAAA,KACD,EACD,CAAA;AAAA,oBACAN,cAAA,CAACO,eAAA,EAAA,EACA,QAAA,kBAAAP,cAAA,CAACQ,SAAA,EAAA,EAAO,OAAA,EAAS,SAAU,QAAA,EAAAN,qBAAA,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"]}