@hisptz/dhis2-analytics 2.0.37 → 2.0.39

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 (139) hide show
  1. package/dist/components/Scorecard/Scorecard.js +3 -1
  2. package/dist/components/Scorecard/Scorecard.js.map +1 -1
  3. package/dist/components/Scorecard/Scorecard.stories.js +6 -927
  4. package/dist/components/Scorecard/Scorecard.stories.js.map +1 -1
  5. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js +38 -37
  6. package/dist/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -1
  7. package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js +30 -8
  8. package/dist/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -1
  9. package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +7 -4
  10. package/dist/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  11. package/dist/components/Scorecard/components/ScorecardTable/components/CellLoader.js +2 -2
  12. package/dist/components/Scorecard/components/ScorecardTable/components/CellLoader.js.map +1 -1
  13. package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js +5 -2
  14. package/dist/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -1
  15. package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +19 -10
  16. package/dist/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  17. package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js +2 -8
  18. package/dist/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -1
  19. package/dist/components/Scorecard/components/ScorecardTable/components/DraggableCell.js +29 -30
  20. package/dist/components/Scorecard/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  21. package/dist/components/Scorecard/components/ScorecardTable/components/DroppableCell.js +28 -16
  22. package/dist/components/Scorecard/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  23. package/dist/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js +1 -1
  24. package/dist/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  25. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +2 -1
  26. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  27. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js +3 -1
  28. package/dist/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  29. package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +1 -0
  30. package/dist/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  31. package/dist/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.js +51 -0
  32. package/dist/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -0
  33. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +4 -1
  34. package/dist/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  35. package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js +5 -14
  36. package/dist/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -1
  37. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +1 -0
  38. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  39. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js +3 -2
  40. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
  41. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -3
  42. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  43. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js +7 -4
  44. package/dist/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  45. package/dist/components/Scorecard/components/TableStateProvider.js +20 -1
  46. package/dist/components/Scorecard/components/TableStateProvider.js.map +1 -1
  47. package/dist/components/Scorecard/hooks/columns.js +4 -0
  48. package/dist/components/Scorecard/hooks/columns.js.map +1 -1
  49. package/dist/components/Scorecard/hooks/table.js +11 -2
  50. package/dist/components/Scorecard/hooks/table.js.map +1 -1
  51. package/dist/components/Scorecard/utils/columns.js +4 -0
  52. package/dist/components/Scorecard/utils/columns.js.map +1 -1
  53. package/dist/esm/components/Scorecard/Scorecard.js +3 -1
  54. package/dist/esm/components/Scorecard/Scorecard.js.map +1 -1
  55. package/dist/esm/components/Scorecard/Scorecard.stories.js +6 -927
  56. package/dist/esm/components/Scorecard/Scorecard.stories.js.map +1 -1
  57. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js +39 -38
  58. package/dist/esm/components/Scorecard/components/ScorecardTable/ScorecardTable.js.map +1 -1
  59. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js +30 -8
  60. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageCell.js.map +1 -1
  61. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js +7 -4
  62. package/dist/esm/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
  63. package/dist/esm/components/Scorecard/components/ScorecardTable/components/CellLoader.js +2 -2
  64. package/dist/esm/components/Scorecard/components/ScorecardTable/components/CellLoader.js.map +1 -1
  65. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js +5 -2
  66. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataContainer.js.map +1 -1
  67. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js +19 -10
  68. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  69. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js +3 -9
  70. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DataRow.js.map +1 -1
  71. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DraggableCell.js +29 -30
  72. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DraggableCell.js.map +1 -1
  73. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DroppableCell.js +28 -16
  74. package/dist/esm/components/Scorecard/components/ScorecardTable/components/DroppableCell.js.map +1 -1
  75. package/dist/esm/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js +1 -1
  76. package/dist/esm/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.js.map +1 -1
  77. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js +2 -1
  78. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  79. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js +3 -1
  80. package/dist/esm/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.js.map +1 -1
  81. package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js +1 -0
  82. package/dist/esm/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.js.map +1 -1
  83. package/dist/esm/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.js +49 -0
  84. package/dist/esm/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.js.map +1 -0
  85. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js +4 -1
  86. package/dist/esm/components/Scorecard/components/ScorecardTable/components/SingleDataCell.js.map +1 -1
  87. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js +7 -16
  88. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableBody.js.map +1 -1
  89. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +1 -0
  90. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  91. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js +3 -2
  92. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.js.map +1 -1
  93. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -3
  94. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  95. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js +7 -4
  96. package/dist/esm/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.js.map +1 -1
  97. package/dist/esm/components/Scorecard/components/TableStateProvider.js +18 -2
  98. package/dist/esm/components/Scorecard/components/TableStateProvider.js.map +1 -1
  99. package/dist/esm/components/Scorecard/hooks/columns.js +4 -0
  100. package/dist/esm/components/Scorecard/hooks/columns.js.map +1 -1
  101. package/dist/esm/components/Scorecard/hooks/table.js +12 -3
  102. package/dist/esm/components/Scorecard/hooks/table.js.map +1 -1
  103. package/dist/esm/components/Scorecard/utils/columns.js +4 -0
  104. package/dist/esm/components/Scorecard/utils/columns.js.map +1 -1
  105. package/dist/types/components/Scorecard/Scorecard.d.ts.map +1 -1
  106. package/dist/types/components/Scorecard/components/ScorecardTable/ScorecardTable.d.ts.map +1 -1
  107. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts +4 -2
  108. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageCell.d.ts.map +1 -1
  109. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.d.ts +1 -1
  110. package/dist/types/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.d.ts.map +1 -1
  111. package/dist/types/components/Scorecard/components/ScorecardTable/components/CellLoader.d.ts +3 -1
  112. package/dist/types/components/Scorecard/components/ScorecardTable/components/CellLoader.d.ts.map +1 -1
  113. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataContainer.d.ts.map +1 -1
  114. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -1
  115. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataRow.d.ts +3 -5
  116. package/dist/types/components/Scorecard/components/ScorecardTable/components/DataRow.d.ts.map +1 -1
  117. package/dist/types/components/Scorecard/components/ScorecardTable/components/DraggableCell.d.ts +2 -1
  118. package/dist/types/components/Scorecard/components/ScorecardTable/components/DraggableCell.d.ts.map +1 -1
  119. package/dist/types/components/Scorecard/components/ScorecardTable/components/DroppableCell.d.ts.map +1 -1
  120. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts +2 -1
  121. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedCell.d.ts.map +1 -1
  122. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts +2 -1
  123. package/dist/types/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.d.ts.map +1 -1
  124. package/dist/types/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.d.ts.map +1 -1
  125. package/dist/types/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.d.ts +2 -0
  126. package/dist/types/components/Scorecard/components/ScorecardTable/components/PaginatedToolbar.d.ts.map +1 -0
  127. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts +2 -1
  128. package/dist/types/components/Scorecard/components/ScorecardTable/components/SingleDataCell.d.ts.map +1 -1
  129. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableBody.d.ts.map +1 -1
  130. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -1
  131. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/ExpandCell.d.ts.map +1 -1
  132. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -1
  133. package/dist/types/components/Scorecard/components/ScorecardTable/components/TableHeader/components/NumberCell.d.ts.map +1 -1
  134. package/dist/types/components/Scorecard/components/TableStateProvider.d.ts +5 -0
  135. package/dist/types/components/Scorecard/components/TableStateProvider.d.ts.map +1 -1
  136. package/dist/types/components/Scorecard/hooks/columns.d.ts.map +1 -1
  137. package/dist/types/components/Scorecard/hooks/table.d.ts.map +1 -1
  138. package/dist/types/components/Scorecard/utils/columns.d.ts.map +1 -1
  139. package/package.json +4 -6
@@ -6,7 +6,10 @@ import { useState, useEffect } from 'react';
6
6
  import { getAverageValue } from '../../../utils/columns';
7
7
  import { CellLoader } from './CellLoader';
8
8
 
9
- function AverageFooterCell({}) {
9
+ function AverageFooterCell({
10
+ column
11
+ }) {
12
+ const size = column.getSize();
10
13
  const meta = useScorecardMeta();
11
14
  const [loading, setLoading] = useState(false);
12
15
  const [average, setAverage] = useState();
@@ -40,12 +43,12 @@ function AverageFooterCell({}) {
40
43
  };
41
44
  }, []);
42
45
  if (loading) {
43
- return /* @__PURE__ */ jsx(CellLoader, {});
46
+ return /* @__PURE__ */ jsx(CellLoader, { size });
44
47
  }
45
48
  if (!average || isNaN(average)) {
46
- return /* @__PURE__ */ jsx(DataTableCell, { bordered: true });
49
+ return /* @__PURE__ */ jsx(DataTableCell, { style: { width: size }, bordered: true });
47
50
  }
48
- return /* @__PURE__ */ jsx(DataTableCell, { bordered: true, align: "center", children: /* @__PURE__ */ jsx("b", { children: average?.toFixed(2).toString() }) });
51
+ return /* @__PURE__ */ jsx(DataTableCell, { style: { width: size }, bordered: true, align: "center", children: /* @__PURE__ */ jsx("b", { children: average?.toFixed(2).toString() }) });
49
52
  }
50
53
 
51
54
  export { AverageFooterCell };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/AverageFooterCell.tsx"],"names":[],"mappings":"AA8CS;AA9CT,SAAS,qBAAqB;AAG9B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,WAAW,gBAAgB;AAEpC,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAEpB,SAAS,kBAAkB,CAAC,GAA2C;AAC7E,QAAM,OAAO,iBAAiB;AAC9B,QAAM,CAAC,SAAS,UAAU,IAAI,SAAkB,KAAK;AACrD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAiB;AAC/C,QAAM,EAAE,MAAM,gBAAgB,IAAI,iBAAiB;AAEnD,YAAU,MAAM;AACf,eAAW,IAAI;AACf,UAAM,WAAW,CAAC,SAAmC;AACpD,UAAI,SAAS,QAAQ;AACpB;AAAA,UACC,gBAAgB;AAAA,YACf,YAAY,gBAAgB;AAAA,YAC5B;AAAA,UACD,CAAC;AAAA,QACF;AACA,mBAAW,KAAK;AAAA,MACjB;AAAA,IACD;AACA,QAAI,gBAAgB,QAAQ;AAC3B;AAAA,QACC,gBAAgB;AAAA,UACf,YAAY,gBAAgB;AAAA,UAC5B;AAAA,QACD,CAAC;AAAA,MACF;AACA,iBAAW,KAAK;AAAA,IACjB,OAAO;AACN,sBAAgB,YAAY,QAAQ;AAAA,IACrC;AACA,WAAO,MAAM;AACZ,sBAAgB,eAAe,QAAQ;AAAA,IACxC;AAAA,EACD,GAAG,CAAC,CAAC;AAEL,MAAI,SAAS;AACZ,WAAO,oBAAC,cAAW;AAAA,EACpB;AAEA,MAAI,CAAC,WAAW,MAAM,OAAO,GAAG;AAC/B,WAAO,oBAAC,iBAAc,UAAQ,MAAC;AAAA,EAChC;AAEA,SACC,oBAAC,iBAAc,UAAQ,MAAC,OAAM,UAC7B,8BAAC,OAAG,mBAAS,QAAQ,CAAC,EAAE,SAAS,GAAE,GACpC;AAEF","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 type { AnalyticsData } from \"../../../utils/data\";\nimport { getAverageValue } from \"../../../utils/columns\";\nimport { CellLoader } from \"./CellLoader\";\n\nexport function AverageFooterCell({}: HeaderContext<ScorecardTableData, any>) {\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 = (data: AnalyticsData[] | \"done\") => {\n\t\t\tif (data === \"done\") {\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\tscorecardEngine.addListener(listener);\n\t\t}\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, []);\n\n\tif (loading) {\n\t\treturn <CellLoader />;\n\t}\n\n\tif (!average || isNaN(average)) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\treturn (\n\t\t<DataTableCell 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/Scorecard/components/ScorecardTable/components/AverageFooterCell.tsx"],"names":[],"mappings":"AAiDS;AAjDT,SAAS,qBAAqB;AAG9B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,WAAW,gBAAgB;AAEpC,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAEpB,SAAS,kBAAkB;AAAA,EACjC;AACD,GAA2C;AAC1C,QAAM,OAAO,OAAO,QAAQ;AAC5B,QAAM,OAAO,iBAAiB;AAC9B,QAAM,CAAC,SAAS,UAAU,IAAI,SAAkB,KAAK;AACrD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAiB;AAC/C,QAAM,EAAE,MAAM,gBAAgB,IAAI,iBAAiB;AAEnD,YAAU,MAAM;AACf,eAAW,IAAI;AACf,UAAM,WAAW,CAAC,SAAmC;AACpD,UAAI,SAAS,QAAQ;AACpB;AAAA,UACC,gBAAgB;AAAA,YACf,YAAY,gBAAgB;AAAA,YAC5B;AAAA,UACD,CAAC;AAAA,QACF;AACA,mBAAW,KAAK;AAAA,MACjB;AAAA,IACD;AACA,QAAI,gBAAgB,QAAQ;AAC3B;AAAA,QACC,gBAAgB;AAAA,UACf,YAAY,gBAAgB;AAAA,UAC5B;AAAA,QACD,CAAC;AAAA,MACF;AACA,iBAAW,KAAK;AAAA,IACjB,OAAO;AACN,sBAAgB,YAAY,QAAQ;AAAA,IACrC;AACA,WAAO,MAAM;AACZ,sBAAgB,eAAe,QAAQ;AAAA,IACxC;AAAA,EACD,GAAG,CAAC,CAAC;AAEL,MAAI,SAAS;AACZ,WAAO,oBAAC,cAAW,MAAY;AAAA,EAChC;AAEA,MAAI,CAAC,WAAW,MAAM,OAAO,GAAG;AAC/B,WAAO,oBAAC,iBAAc,OAAO,EAAE,OAAO,KAAK,GAAG,UAAQ,MAAC;AAAA,EACxD;AAEA,SACC,oBAAC,iBAAc,OAAO,EAAE,OAAO,KAAK,GAAG,UAAQ,MAAC,OAAM,UACrD,8BAAC,OAAG,mBAAS,QAAQ,CAAC,EAAE,SAAS,GAAE,GACpC;AAEF","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 type { AnalyticsData } from \"../../../utils/data\";\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 = (data: AnalyticsData[] | \"done\") => {\n\t\t\tif (data === \"done\") {\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\tscorecardEngine.addListener(listener);\n\t\t}\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(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,8 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { DataTableCell } from '@dhis2/ui';
3
3
 
4
- function CellLoader() {
5
- return /* @__PURE__ */ jsx(DataTableCell, { align: "center", bordered: true });
4
+ function CellLoader({ size }) {
5
+ return /* @__PURE__ */ jsx(DataTableCell, { style: { width: size }, align: "center", bordered: true });
6
6
  }
7
7
 
8
8
  export { CellLoader };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/CellLoader.tsx"],"names":[],"mappings":"AAGQ;AAHR,SAAS,qBAAqB;AAEvB,SAAS,aAAa;AAC5B,SAAO,oBAAC,iBAAc,OAAM,UAAS,UAAQ,MAAC;AAC/C","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\n\nexport function CellLoader() {\n\treturn <DataTableCell align=\"center\" bordered />;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/CellLoader.tsx"],"names":[],"mappings":"AAGQ;AAHR,SAAS,qBAAqB;AAEvB,SAAS,WAAW,EAAE,KAAK,GAAqB;AACtD,SAAO,oBAAC,iBAAc,OAAO,EAAE,OAAO,KAAK,GAAG,OAAM,UAAS,UAAQ,MAAC;AACvE","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\n\nexport function CellLoader({ size }: { size: number }) {\n\treturn <DataTableCell style={{ width: size }} align=\"center\" bordered />;\n}\n"]}
@@ -9,15 +9,16 @@ import { useCellValue } from '../../../hooks/value';
9
9
  import { CellLoader } from './CellLoader';
10
10
 
11
11
  function DataContainerComponent(props) {
12
+ const size = props.cell.column.getSize();
12
13
  const dataConfig = props.getValue();
13
14
  const config = useScorecardConfig();
14
15
  const meta = useScorecardMeta();
15
16
  const { loading, cellData } = useCellValue(props.getValue());
16
17
  if (!config || !meta) {
17
- return /* @__PURE__ */ jsx(DataTableCell, { bordered: true });
18
+ return /* @__PURE__ */ jsx(DataTableCell, { style: { width: size }, bordered: true });
18
19
  }
19
20
  if (loading) {
20
- return /* @__PURE__ */ jsx(CellLoader, {});
21
+ return /* @__PURE__ */ jsx(CellLoader, { size });
21
22
  }
22
23
  if (!dataConfig) {
23
24
  return /* @__PURE__ */ jsx(DataTableCell, { bordered: true });
@@ -27,6 +28,7 @@ function DataContainerComponent(props) {
27
28
  SingleDataCell,
28
29
  {
29
30
  ...dataConfig,
31
+ size,
30
32
  period: dataConfig.currentPeriod,
31
33
  dataSources: cellData
32
34
  }
@@ -36,6 +38,7 @@ function DataContainerComponent(props) {
36
38
  LinkedDataCell,
37
39
  {
38
40
  ...dataConfig,
41
+ size,
39
42
  period: dataConfig.currentPeriod,
40
43
  dataSources: cellData
41
44
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DataContainer.tsx"],"names":["DataContainer"],"mappings":"AAuBS;AAnBT,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAE/B,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAE3B,SAAS,uBACR,OACC;AACD,QAAM,aAAa,MAAM,SAAS;AAClC,QAAM,SAAS,mBAAmB;AAClC,QAAM,OAAO,iBAAiB;AAC9B,QAAM,EAAE,SAAS,SAAS,IAAI,aAAa,MAAM,SAAS,CAAC;AAE3D,MAAI,CAAC,UAAU,CAAC,MAAM;AACrB,WAAO,oBAAC,iBAAc,UAAQ,MAAC;AAAA,EAChC;AAEA,MAAI,SAAS;AACZ,WAAO,oBAAC,cAAW;AAAA,EACpB;AAEA,MAAI,CAAC,YAAY;AAChB,WAAO,oBAAC,iBAAc,UAAQ,MAAC;AAAA,EAChC;AAEA,MAAI,UAAU,WAAW,GAAG;AAC3B,WACC;AAAA,MAAC;AAAA;AAAA,QACC,GAAG;AAAA,QACJ,QAAQ,WAAW;AAAA,QACnB,aAAa;AAAA;AAAA,IACd;AAAA,EAEF;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACC,GAAG;AAAA,MACJ,QAAQ,WAAW;AAAA,MACnB,aAAa;AAAA;AAAA,EACd;AAEF;AAEO,MAAM,gBAAgB,KAAK,SAASA,eAC1C,OACC;AACD,QAAM,SAAS,MAAM,SAAS;AAE9B,MAAI,CAAC,QAAQ;AACZ,WAAO,oBAAC,iBAAc,UAAQ,MAAC,KAAI,MAAK,OAAM,QAAO;AAAA,EACtD;AAEA,SAAO,oBAAC,0BAAwB,GAAG,OAAO;AAC3C,CAAC","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 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 bordered />;\n\t}\n\n\tif (loading) {\n\t\treturn <CellLoader />;\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\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\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/Scorecard/components/ScorecardTable/components/DataContainer.tsx"],"names":["DataContainer"],"mappings":"AAwBS;AApBT,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAE/B,SAAS,qBAAqB;AAC9B,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAE3B,SAAS,uBACR,OACC;AACD,QAAM,OAAO,MAAM,KAAK,OAAO,QAAQ;AACvC,QAAM,aAAa,MAAM,SAAS;AAClC,QAAM,SAAS,mBAAmB;AAClC,QAAM,OAAO,iBAAiB;AAC9B,QAAM,EAAE,SAAS,SAAS,IAAI,aAAa,MAAM,SAAS,CAAC;AAE3D,MAAI,CAAC,UAAU,CAAC,MAAM;AACrB,WAAO,oBAAC,iBAAc,OAAO,EAAE,OAAO,KAAK,GAAG,UAAQ,MAAC;AAAA,EACxD;AAEA,MAAI,SAAS;AACZ,WAAO,oBAAC,cAAW,MAAY;AAAA,EAChC;AAEA,MAAI,CAAC,YAAY;AAChB,WAAO,oBAAC,iBAAc,UAAQ,MAAC;AAAA,EAChC;AAEA,MAAI,UAAU,WAAW,GAAG;AAC3B,WACC;AAAA,MAAC;AAAA;AAAA,QACC,GAAG;AAAA,QACJ;AAAA,QACA,QAAQ,WAAW;AAAA,QACnB,aAAa;AAAA;AAAA,IACd;AAAA,EAEF;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACC,GAAG;AAAA,MACJ;AAAA,MACA,QAAQ,WAAW;AAAA,MACnB,aAAa;AAAA;AAAA,EACd;AAEF;AAEO,MAAM,gBAAgB,KAAK,SAASA,eAC1C,OACC;AACD,QAAM,SAAS,MAAM,SAAS;AAE9B,MAAI,CAAC,QAAQ;AACZ,WAAO,oBAAC,iBAAc,UAAQ,MAAC,KAAI,MAAK,OAAM,QAAO;AAAA,EACtD;AAEA,SAAO,oBAAC,0BAAwB,GAAG,OAAO;AAC3C,CAAC","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"]}
@@ -27,7 +27,8 @@ function getOrgUnitAverage({
27
27
  });
28
28
  }
29
29
  function OrgUnitFooterCell({
30
- dataSourcesConfig
30
+ dataSourcesConfig,
31
+ size
31
32
  }) {
32
33
  const { data: scorecardEngine } = useScorecardData();
33
34
  const [loading, setLoading] = useState(false);
@@ -61,19 +62,20 @@ function OrgUnitFooterCell({
61
62
  };
62
63
  }, [dataSourcesConfig]);
63
64
  if (loading) {
64
- return /* @__PURE__ */ jsx(CellLoader, {});
65
+ return /* @__PURE__ */ jsx(CellLoader, { size });
65
66
  }
66
67
  if (isEmpty(averageValues)) {
67
- return /* @__PURE__ */ jsx(DataTableCell, { bordered: true });
68
+ return /* @__PURE__ */ jsx(DataTableCell, { style: { width: size }, bordered: true });
68
69
  }
69
70
  if (averageValues?.length === 1) {
70
- return /* @__PURE__ */ jsx(SingleAverageCell, { dataSource: head(averageValues) });
71
+ return /* @__PURE__ */ jsx(SingleAverageCell, { size, dataSource: head(averageValues) });
71
72
  } else {
72
- return /* @__PURE__ */ jsx(LinkedAverageCell, { dataSources: averageValues });
73
+ return /* @__PURE__ */ jsx(LinkedAverageCell, { size, dataSources: averageValues });
73
74
  }
74
75
  }
75
76
  function DataHolderFooterCell({
76
- dataSourcesConfig
77
+ dataSourcesConfig,
78
+ size
77
79
  }) {
78
80
  const { data: scorecardEngine } = useScorecardData();
79
81
  const [loading, setLoading] = useState(false);
@@ -113,14 +115,15 @@ function DataHolderFooterCell({
113
115
  };
114
116
  }, [dataSourcesConfig]);
115
117
  if (loading) {
116
- return /* @__PURE__ */ jsx(CellLoader, {});
118
+ return /* @__PURE__ */ jsx(CellLoader, { size });
117
119
  }
118
- return /* @__PURE__ */ jsx(DataTableCell, { bordered: true, align: "center", children: /* @__PURE__ */ jsx("b", { children: average?.toFixed(2).toString() }) });
120
+ return /* @__PURE__ */ jsx(DataTableCell, { style: { width: size }, bordered: true, align: "center", children: /* @__PURE__ */ jsx("b", { children: average?.toFixed(2).toString() }) });
119
121
  }
120
122
  function DataFooterCell({
121
123
  table,
122
124
  column
123
125
  }) {
126
+ const size = column.getSize();
124
127
  const showDataInRows = useScorecardStateSelector([
125
128
  "options",
126
129
  "showDataInRows"
@@ -131,9 +134,15 @@ function DataFooterCell({
131
134
  );
132
135
  }, [table.getRowModel().rows]);
133
136
  if (showDataInRows) {
134
- return /* @__PURE__ */ jsx(DataHolderFooterCell, { dataSourcesConfig: dataSourceConfig });
137
+ return /* @__PURE__ */ jsx(
138
+ DataHolderFooterCell,
139
+ {
140
+ size,
141
+ dataSourcesConfig: dataSourceConfig
142
+ }
143
+ );
135
144
  }
136
- return /* @__PURE__ */ jsx(OrgUnitFooterCell, { dataSourcesConfig: dataSourceConfig });
145
+ return /* @__PURE__ */ jsx(OrgUnitFooterCell, { size, dataSourcesConfig: dataSourceConfig });
137
146
  }
138
147
 
139
148
  export { DataFooterCell };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DataFooterCell.tsx"],"names":["average"],"mappings":"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","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 { useScorecardStateSelector } from \"../../StateProvider\";\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\";\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}: {\n\tdataSourcesConfig: ScorecardTableCellConfig[];\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 = (data: AnalyticsData[] | \"done\") => {\n\t\t\tif (data === \"done\") {\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\tscorecardEngine.addListener(listener);\n\t\t}\n\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataSourcesConfig]);\n\n\tif (loading) {\n\t\treturn <CellLoader />;\n\t}\n\n\tif (isEmpty(averageValues)) {\n\t\treturn <DataTableCell bordered />;\n\t}\n\n\tif (averageValues?.length === 1) {\n\t\treturn <SingleAverageCell dataSource={head(averageValues)!} />;\n\t} else {\n\t\treturn <LinkedAverageCell dataSources={averageValues!} />;\n\t}\n}\n\nfunction DataHolderFooterCell({\n\tdataSourcesConfig,\n}: {\n\tdataSourcesConfig: ScorecardTableCellConfig[];\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 = (data: AnalyticsData[] | \"done\") => {\n\t\t\tif (data === \"done\") {\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\tscorecardEngine.addListener(listener);\n\t\t}\n\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataSourcesConfig]);\n\n\tif (loading) {\n\t\treturn <CellLoader />;\n\t}\n\treturn (\n\t\t<DataTableCell 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 showDataInRows = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\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 <DataHolderFooterCell dataSourcesConfig={dataSourceConfig} />;\n\t}\n\n\treturn <OrgUnitFooterCell dataSourcesConfig={dataSourceConfig} />;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DataFooterCell.tsx"],"names":["average"],"mappings":"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","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 { useScorecardStateSelector } from \"../../StateProvider\";\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\";\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 = (data: AnalyticsData[] | \"done\") => {\n\t\t\tif (data === \"done\") {\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\tscorecardEngine.addListener(listener);\n\t\t}\n\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(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 = (data: AnalyticsData[] | \"done\") => {\n\t\t\tif (data === \"done\") {\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\tscorecardEngine.addListener(listener);\n\t\t}\n\n\t\treturn () => {\n\t\t\tscorecardEngine.removeListener(listener);\n\t\t};\n\t}, [dataSourcesConfig]);\n\n\tif (loading) {\n\t\treturn <CellLoader size={size} />;\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 = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\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"]}
@@ -4,13 +4,9 @@ import { head } from 'lodash';
4
4
  import { DataTableRow } from '@dhis2/ui';
5
5
  import styles from '../ScorecardTable.module.css';
6
6
  import { ExpandedScorecardTable } from './ExpandedScorecardTable';
7
- import { useTransition, useMemo, Fragment } from 'react';
7
+ import { memo, useTransition, useMemo, Fragment } from 'react';
8
8
 
9
- function TableRowComponent({
10
- row,
11
- virtualRow,
12
- virtualizer
13
- }) {
9
+ function TableRowComponent({ row }) {
14
10
  const [isPending, startTransition] = useTransition();
15
11
  const orgUnit = useMemo(() => {
16
12
  const dataCell = row.getVisibleCells().find((cell) => {
@@ -27,8 +23,6 @@ function TableRowComponent({
27
23
  return /* @__PURE__ */ jsx(
28
24
  DataTableRow,
29
25
  {
30
- "data-index": virtualRow ? virtualRow.index : void 0,
31
- ref: virtualizer ? (node) => virtualizer.measureElement(node) : void 0,
32
26
  className: styles.expandCell,
33
27
  onExpandToggle: canExpand ? ({ expanded }) => {
34
28
  startTransition(() => {
@@ -53,7 +47,7 @@ function TableRowComponent({
53
47
  row.id
54
48
  );
55
49
  }
56
- const TableRow = TableRowComponent;
50
+ const TableRow = memo(TableRowComponent);
57
51
 
58
52
  export { TableRow };
59
53
  //# sourceMappingURL=out.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DataRow.tsx"],"names":[],"mappings":"AA2DK;AA3DL,SAAS,kBAA4B;AAKrC,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,OAAO,YAAY;AACnB,SAAS,8BAA8B;AACvC,SAAS,UAAU,SAAS,qBAAqB;AAGjD,SAAS,kBAAkB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACD,GAIG;AACF,QAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AACnD,QAAM,UAAU,QAAQ,MAAM;AAC7B,UAAM,WAAW,IAAI,gBAAgB,EAAE,KAAK,CAAC,SAAS;AACrD,YAAM,OAAO,KAAK,SAAS;AAC3B,aAAO,CAAC,CAAC,MAAM;AAAA,IAChB,CAAC;AACD,WAAQ,UAAU,SAAS,GAAgC;AAAA,EAC5D,GAAG,CAAC,GAAG,CAAC;AAER,QAAM,eAAe,QAAQ,MAAM;AAClC,UAAM,aAAa,KAAK,IAAI,gBAAgB,CAAC;AAC7C,WAAQ,YAAY,SAAS,KAAiB;AAAA,EAC/C,GAAG,CAAC,GAAG,CAAC;AAER,QAAM,YAAY,WAAW;AAE7B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,cAAY,aAAa,WAAW,QAAQ;AAAA,MAG5C,KACC,cACG,CAAC,SAAc,YAAY,eAAe,IAAI,IAC9C;AAAA,MAEJ,WAAW,OAAO;AAAA,MAClB,gBACC,YACG,CAAC,EAAE,SAAS,MAAM;AAClB,wBAAgB,MAAM;AACrB,cAAI,eAAe,QAAQ;AAAA,QAC5B,CAAC;AAAA,MACF,IACC;AAAA,MAEJ,mBACC,WAAW,eACV;AAAA,QAAC;AAAA;AAAA,UACA,SAAS;AAAA,UACT;AAAA;AAAA,MACD,IACG;AAAA,MAEL,UAAU,aAAa,IAAI,cAAc;AAAA,MAGxC,cAAI,gBAAgB,EAAE,IAAI,CAAC,SAAS;AACpC,eACC,oBAAC,YACC;AAAA,UACA,KAAK,OAAO,UAAU;AAAA,UACtB,KAAK,WAAW;AAAA,QACjB,KAJc,KAAK,EAKpB;AAAA,MAEF,CAAC;AAAA;AAAA,IAXI,IAAI;AAAA,EAYV;AAEF;AAEO,MAAM,WAAW","sourcesContent":["import { flexRender, type Row } from \"@tanstack/react-table\";\nimport type {\n\tScorecardTableCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { head } from \"lodash\";\nimport { DataTableRow } from \"@dhis2/ui\";\nimport styles from \"../ScorecardTable.module.css\";\nimport { ExpandedScorecardTable } from \"./ExpandedScorecardTable\";\nimport { Fragment, useMemo, useTransition } from \"react\";\nimport type { VirtualItem, Virtualizer } from \"@tanstack/react-virtual\";\n\nfunction TableRowComponent({\n\trow,\n\tvirtualRow,\n\tvirtualizer,\n}: {\n\trow: Row<ScorecardTableData>;\n\tvirtualRow?: VirtualItem;\n\tvirtualizer?: Virtualizer<HTMLDivElement, any>;\n}) {\n\tconst [isPending, startTransition] = useTransition();\n\tconst orgUnit = useMemo(() => {\n\t\tconst dataCell = row.getVisibleCells().find((cell) => {\n\t\t\tconst data = cell.getValue() as ScorecardTableCellConfig;\n\t\t\treturn !!data?.orgUnit;\n\t\t});\n\t\treturn (dataCell?.getValue() as ScorecardTableCellConfig)?.orgUnit;\n\t}, [row]);\n\n\tconst shouldExpand = useMemo(() => {\n\t\tconst expandCell = head(row.getVisibleCells());\n\t\treturn (expandCell?.getValue() as boolean) ?? false;\n\t}, [row]);\n\n\tconst canExpand = orgUnit && shouldExpand;\n\n\treturn (\n\t\t<DataTableRow\n\t\t\tdata-index={virtualRow ? virtualRow.index : undefined}\n\t\t\t/*\n // @ts-ignore */\n\t\t\tref={\n\t\t\t\tvirtualizer\n\t\t\t\t\t? (node: any) => virtualizer.measureElement(node)\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tclassName={styles.expandCell}\n\t\t\tonExpandToggle={\n\t\t\t\tcanExpand\n\t\t\t\t\t? ({ expanded }) => {\n\t\t\t\t\t\t\tstartTransition(() => {\n\t\t\t\t\t\t\t\trow.toggleExpanded(expanded);\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\texpandableContent={\n\t\t\t\torgUnit && shouldExpand ? (\n\t\t\t\t\t<ExpandedScorecardTable\n\t\t\t\t\t\tpending={isPending}\n\t\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\t/>\n\t\t\t\t) : undefined\n\t\t\t}\n\t\t\texpanded={canExpand && row.getIsExpanded()}\n\t\t\tkey={row.id}\n\t\t>\n\t\t\t{row.getVisibleCells().map((cell) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={cell.id}>\n\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\tcell.getContext(),\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</DataTableRow>\n\t);\n}\n\nexport const TableRow = TableRowComponent;\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DataRow.tsx"],"names":[],"mappings":"AA0CK;AA1CL,SAAS,kBAA4B;AAKrC,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,OAAO,YAAY;AACnB,SAAS,8BAA8B;AACvC,SAAS,UAAU,MAAM,SAAS,qBAAqB;AAEvD,SAAS,kBAAkB,EAAE,IAAI,GAAqC;AACrE,QAAM,CAAC,WAAW,eAAe,IAAI,cAAc;AACnD,QAAM,UAAU,QAAQ,MAAM;AAC7B,UAAM,WAAW,IAAI,gBAAgB,EAAE,KAAK,CAAC,SAAS;AACrD,YAAM,OAAO,KAAK,SAAS;AAC3B,aAAO,CAAC,CAAC,MAAM;AAAA,IAChB,CAAC;AACD,WAAQ,UAAU,SAAS,GAAgC;AAAA,EAC5D,GAAG,CAAC,GAAG,CAAC;AAER,QAAM,eAAe,QAAQ,MAAM;AAClC,UAAM,aAAa,KAAK,IAAI,gBAAgB,CAAC;AAC7C,WAAQ,YAAY,SAAS,KAAiB;AAAA,EAC/C,GAAG,CAAC,GAAG,CAAC;AAER,QAAM,YAAY,WAAW;AAE7B,SACC;AAAA,IAAC;AAAA;AAAA,MACA,WAAW,OAAO;AAAA,MAClB,gBACC,YACG,CAAC,EAAE,SAAS,MAAM;AAClB,wBAAgB,MAAM;AACrB,cAAI,eAAe,QAAQ;AAAA,QAC5B,CAAC;AAAA,MACF,IACC;AAAA,MAEJ,mBACC,WAAW,eACV;AAAA,QAAC;AAAA;AAAA,UACA,SAAS;AAAA,UACT;AAAA;AAAA,MACD,IACG;AAAA,MAEL,UAAU,aAAa,IAAI,cAAc;AAAA,MAGxC,cAAI,gBAAgB,EAAE,IAAI,CAAC,SAAS;AACpC,eACC,oBAAC,YACC;AAAA,UACA,KAAK,OAAO,UAAU;AAAA,UACtB,KAAK,WAAW;AAAA,QACjB,KAJc,KAAK,EAKpB;AAAA,MAEF,CAAC;AAAA;AAAA,IAXI,IAAI;AAAA,EAYV;AAEF;AAEO,MAAM,WAAW,KAAK,iBAAiB","sourcesContent":["import { flexRender, type Row } from \"@tanstack/react-table\";\nimport type {\n\tScorecardTableCellConfig,\n\tScorecardTableData,\n} from \"../../../schemas/config\";\nimport { head } from \"lodash\";\nimport { DataTableRow } from \"@dhis2/ui\";\nimport styles from \"../ScorecardTable.module.css\";\nimport { ExpandedScorecardTable } from \"./ExpandedScorecardTable\";\nimport { Fragment, memo, useMemo, useTransition } from \"react\";\n\nfunction TableRowComponent({ row }: { row: Row<ScorecardTableData> }) {\n\tconst [isPending, startTransition] = useTransition();\n\tconst orgUnit = useMemo(() => {\n\t\tconst dataCell = row.getVisibleCells().find((cell) => {\n\t\t\tconst data = cell.getValue() as ScorecardTableCellConfig;\n\t\t\treturn !!data?.orgUnit;\n\t\t});\n\t\treturn (dataCell?.getValue() as ScorecardTableCellConfig)?.orgUnit;\n\t}, [row]);\n\n\tconst shouldExpand = useMemo(() => {\n\t\tconst expandCell = head(row.getVisibleCells());\n\t\treturn (expandCell?.getValue() as boolean) ?? false;\n\t}, [row]);\n\n\tconst canExpand = orgUnit && shouldExpand;\n\n\treturn (\n\t\t<DataTableRow\n\t\t\tclassName={styles.expandCell}\n\t\t\tonExpandToggle={\n\t\t\t\tcanExpand\n\t\t\t\t\t? ({ expanded }) => {\n\t\t\t\t\t\t\tstartTransition(() => {\n\t\t\t\t\t\t\t\trow.toggleExpanded(expanded);\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\texpandableContent={\n\t\t\t\torgUnit && shouldExpand ? (\n\t\t\t\t\t<ExpandedScorecardTable\n\t\t\t\t\t\tpending={isPending}\n\t\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\t/>\n\t\t\t\t) : undefined\n\t\t\t}\n\t\t\texpanded={canExpand && row.getIsExpanded()}\n\t\t\tkey={row.id}\n\t\t>\n\t\t\t{row.getVisibleCells().map((cell) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={cell.id}>\n\t\t\t\t\t\t{flexRender(\n\t\t\t\t\t\t\tcell.column.columnDef.cell,\n\t\t\t\t\t\t\tcell.getContext(),\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t})}\n\t\t</DataTableRow>\n\t);\n}\n\nexport const TableRow = memo(TableRowComponent);\n"]}
@@ -1,43 +1,42 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { colors } from '@dhis2/ui';
3
- import { useDraggable } from '@dnd-kit/core';
4
- import { CSS } from '@dnd-kit/utilities';
3
+ import { useDrag } from 'react-dnd';
5
4
 
6
5
  function DraggableCell({
7
6
  children,
8
7
  type,
9
8
  style,
9
+ id,
10
10
  ...props
11
11
  }) {
12
- const { attributes, listeners, setNodeRef, transform, isDragging } = useDraggable({
13
- id: type
14
- });
15
- const transformStyle = transform ? {
16
- transform: CSS.Translate.toString(transform)
17
- } : void 0;
18
- return /* @__PURE__ */ jsx(
19
- "div",
20
- {
21
- id: type,
22
- ...props,
23
- ...attributes,
24
- ...listeners,
25
- className: "column center",
26
- style: {
27
- ...style ?? {},
28
- ...transformStyle,
29
- background: isDragging ? colors?.grey400 : void 0,
30
- cursor: "move",
31
- opacity: isDragging ? 0.5 : 1,
32
- height: "100%",
33
- width: "100%",
34
- padding: "0 12px",
35
- zIndex: isDragging ? 3 : void 0
12
+ const [collected, drag, dragPreview] = useDrag(() => {
13
+ return {
14
+ type,
15
+ item: {
16
+ id
36
17
  },
37
- ref: setNodeRef,
38
- children
39
- }
40
- );
18
+ collect: (monitor) => {
19
+ return {
20
+ isDragging: monitor.isDragging()
21
+ };
22
+ }
23
+ };
24
+ });
25
+ if (collected.isDragging) {
26
+ return /* @__PURE__ */ jsx(
27
+ "div",
28
+ {
29
+ ref: dragPreview,
30
+ style: {
31
+ backgroundColor: colors.grey400,
32
+ opacity: 0.5,
33
+ cursor: "move"
34
+ },
35
+ children
36
+ }
37
+ );
38
+ }
39
+ return /* @__PURE__ */ jsx("div", { style: { cursor: "move" }, id: type, ref: drag, children });
41
40
  }
42
41
 
43
42
  export { DraggableCell };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DraggableCell.tsx"],"names":[],"mappings":"AA4BE;AA5BF,SAAS,cAAc;AAGvB,SAAS,oBAAoB;AAC7B,SAAS,WAAW;AAEb,SAAS,cAAc;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAIG;AACF,QAAM,EAAE,YAAY,WAAW,YAAY,WAAW,WAAW,IAChE,aAAa;AAAA,IACZ,IAAI;AAAA,EACL,CAAC;AAEF,QAAM,iBAAiB,YACpB;AAAA,IACA,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,EAC5C,IACC;AAEH,SACC;AAAA,IAAC;AAAA;AAAA,MACA,IAAI;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACJ,WAAU;AAAA,MACV,OAAO;AAAA,QACN,GAAI,SAAS,CAAC;AAAA,QACd,GAAG;AAAA,QACH,YAAY,aAAa,QAAQ,UAAU;AAAA,QAC3C,QAAQ;AAAA,QACR,SAAS,aAAa,MAAM;AAAA,QAC5B,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,QACT,QAAQ,aAAa,IAAI;AAAA,MAC1B;AAAA,MACA,KAAK;AAAA,MAEJ;AAAA;AAAA,EACF;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React from \"react\";\nimport type { ScorecardDraggableItems } from \"../../../schemas/config\";\nimport { useDraggable } from \"@dnd-kit/core\";\nimport { CSS } from \"@dnd-kit/utilities\";\n\nexport function DraggableCell({\n\tchildren,\n\ttype,\n\tstyle,\n\t...props\n}: {\n\tchildren: React.ReactNode;\n\ttype: ScorecardDraggableItems;\n\tstyle?: React.CSSProperties;\n}) {\n\tconst { attributes, listeners, setNodeRef, transform, isDragging } =\n\t\tuseDraggable({\n\t\t\tid: type,\n\t\t});\n\n\tconst transformStyle = transform\n\t\t? {\n\t\t\t\ttransform: CSS.Translate.toString(transform),\n\t\t\t}\n\t\t: undefined;\n\n\treturn (\n\t\t<div\n\t\t\tid={type}\n\t\t\t{...props}\n\t\t\t{...attributes}\n\t\t\t{...listeners}\n\t\t\tclassName=\"column center\"\n\t\t\tstyle={{\n\t\t\t\t...(style ?? {}),\n\t\t\t\t...transformStyle,\n\t\t\t\tbackground: isDragging ? colors?.grey400 : undefined,\n\t\t\t\tcursor: \"move\",\n\t\t\t\topacity: isDragging ? 0.5 : 1,\n\t\t\t\theight: \"100%\",\n\t\t\t\twidth: \"100%\",\n\t\t\t\tpadding: \"0 12px\",\n\t\t\t\tzIndex: isDragging ? 3 : undefined,\n\t\t\t}}\n\t\t\tref={setNodeRef}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DraggableCell.tsx"],"names":[],"mappings":"AAiCG;AAjCH,SAAS,cAAc;AAGvB,SAAS,eAAe;AAEjB,SAAS,cAAc;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACJ,GAKG;AACF,QAAM,CAAC,WAAW,MAAM,WAAW,IAAI,QAAQ,MAAM;AACpD,WAAO;AAAA,MACN;AAAA,MACA,MAAM;AAAA,QACL;AAAA,MACD;AAAA,MACA,SAAS,CAAC,YAAY;AACrB,eAAO;AAAA,UACN,YAAY,QAAQ,WAAW;AAAA,QAChC;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAC;AAED,MAAI,UAAU,YAAY;AACzB,WACC;AAAA,MAAC;AAAA;AAAA,QACA,KAAK;AAAA,QACL,OAAO;AAAA,UACN,iBAAiB,OAAO;AAAA,UACxB,SAAS;AAAA,UACT,QAAQ;AAAA,QACT;AAAA,QAEC;AAAA;AAAA,IACF;AAAA,EAEF;AAEA,SACC,oBAAC,SAAI,OAAO,EAAE,QAAQ,OAAO,GAAG,IAAI,MAAM,KAAK,MAC7C,UACF;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React from \"react\";\nimport type { ScorecardDraggableItems } from \"../../../schemas/config\";\nimport { useDrag } from \"react-dnd\";\n\nexport function DraggableCell({\n\tchildren,\n\ttype,\n\tstyle,\n\tid,\n\t...props\n}: {\n\tchildren: React.ReactNode;\n\ttype: ScorecardDraggableItems;\n\tid: string;\n\tstyle?: React.CSSProperties;\n}) {\n\tconst [collected, drag, dragPreview] = useDrag(() => {\n\t\treturn {\n\t\t\ttype,\n\t\t\titem: {\n\t\t\t\tid,\n\t\t\t},\n\t\t\tcollect: (monitor) => {\n\t\t\t\treturn {\n\t\t\t\t\tisDragging: monitor.isDragging(),\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t});\n\n\tif (collected.isDragging) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={dragPreview}\n\t\t\t\tstyle={{\n\t\t\t\t\tbackgroundColor: colors.grey400,\n\t\t\t\t\topacity: 0.5,\n\t\t\t\t\tcursor: \"move\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div style={{ cursor: \"move\" }} id={type} ref={drag}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"]}
@@ -1,31 +1,43 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { colors } from '@dhis2/ui';
3
- import { useMemo } from 'react';
4
- import { useDroppable } from '@dnd-kit/core';
5
- import { head } from 'lodash';
3
+ import { useDrop } from 'react-dnd';
6
4
 
7
5
  function DroppableCell({
8
6
  accept,
9
7
  children
10
8
  }) {
11
- const { setNodeRef, active } = useDroppable({
12
- id: head(accept)
9
+ const [collectedProps, drop] = useDrop(() => {
10
+ return {
11
+ accept,
12
+ collect: (monitor) => {
13
+ if (monitor.canDrop()) {
14
+ return {
15
+ style: {
16
+ border: `2px dashed ${colors.grey700}`,
17
+ background: `${colors.grey100}`,
18
+ width: "100%"
19
+ }
20
+ };
21
+ } else {
22
+ return {
23
+ style: {
24
+ width: "100%",
25
+ border: `2px solid transparent`
26
+ }
27
+ };
28
+ }
29
+ },
30
+ drop: (results) => {
31
+ return results;
32
+ }
33
+ };
13
34
  });
14
- const canDrop = useMemo(() => {
15
- if (!active)
16
- return false;
17
- return accept.includes(active.id);
18
- }, [accept, active]);
19
35
  return /* @__PURE__ */ jsx(
20
36
  "div",
21
37
  {
22
- ref: setNodeRef,
38
+ ref: drop,
23
39
  className: "column center align-items-center",
24
- style: {
25
- border: canDrop ? `2px dashed ${colors.grey700}` : void 0,
26
- background: canDrop ? `${colors.grey100}` : void 0,
27
- width: "100%"
28
- },
40
+ ...collectedProps,
29
41
  children
30
42
  }
31
43
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DroppableCell.tsx"],"names":[],"mappings":"AAuBE;AAvBF,SAAS,cAAc;AACvB,SAAgB,eAAe;AAE/B,SAAS,oBAAoB;AAC7B,SAAS,YAAY;AAEN,SAAR,cAA+B;AAAA,EACrC;AAAA,EACA;AACD,GAGG;AACF,QAAM,EAAE,YAAY,OAAO,IAAI,aAAa;AAAA,IAC3C,IAAI,KAAK,MAAM;AAAA,EAChB,CAAC;AAED,QAAM,UAAU,QAAQ,MAAM;AAC7B,QAAI,CAAC;AAAQ,aAAO;AACpB,WAAO,OAAO,SAAS,OAAO,EAA6B;AAAA,EAC5D,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SACC;AAAA,IAAC;AAAA;AAAA,MACA,KAAK;AAAA,MACL,WAAU;AAAA,MACV,OAAO;AAAA,QACN,QAAQ,UAAU,cAAc,OAAO,OAAO,KAAK;AAAA,QACnD,YAAY,UAAU,GAAG,OAAO,OAAO,KAAK;AAAA,QAC5C,OAAO;AAAA,MACR;AAAA,MAEC;AAAA;AAAA,EACF;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React, { useMemo } from \"react\";\nimport type { ScorecardDraggableItems } from \"../../../schemas/config\";\nimport { useDroppable } from \"@dnd-kit/core\";\nimport { head } from \"lodash\";\n\nexport default function DroppableCell({\n\taccept,\n\tchildren,\n}: {\n\taccept: ScorecardDraggableItems[];\n\tchildren: React.ReactNode;\n}) {\n\tconst { setNodeRef, active } = useDroppable({\n\t\tid: head(accept) as string,\n\t});\n\n\tconst canDrop = useMemo(() => {\n\t\tif (!active) return false;\n\t\treturn accept.includes(active.id as ScorecardDraggableItems);\n\t}, [accept, active]);\n\n\treturn (\n\t\t<div\n\t\t\tref={setNodeRef}\n\t\t\tclassName=\"column center align-items-center\"\n\t\t\tstyle={{\n\t\t\t\tborder: canDrop ? `2px dashed ${colors.grey700}` : undefined,\n\t\t\t\tbackground: canDrop ? `${colors.grey100}` : undefined,\n\t\t\t\twidth: \"100%\",\n\t\t\t}}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/DroppableCell.tsx"],"names":[],"mappings":"AAwCE;AAxCF,SAAS,cAAc;AAGvB,SAAS,eAAe;AAET,SAAR,cAA+B;AAAA,EACrC;AAAA,EACA;AACD,GAGG;AACF,QAAM,CAAC,gBAAgB,IAAI,IAAI,QAAQ,MAAM;AAC5C,WAAO;AAAA,MACN;AAAA,MACA,SAAS,CAAC,YAAY;AACrB,YAAI,QAAQ,QAAQ,GAAG;AACtB,iBAAO;AAAA,YACN,OAAO;AAAA,cACN,QAAQ,cAAc,OAAO,OAAO;AAAA,cACpC,YAAY,GAAG,OAAO,OAAO;AAAA,cAC7B,OAAO;AAAA,YACR;AAAA,UACD;AAAA,QACD,OAAO;AACN,iBAAO;AAAA,YACN,OAAO;AAAA,cACN,OAAO;AAAA,cACP,QAAQ;AAAA,YACT;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MACA,MAAM,CAAC,YAA4B;AAClC,eAAO;AAAA,MACR;AAAA,IACD;AAAA,EACD,CAAC;AAED,SACC;AAAA,IAAC;AAAA;AAAA,MACA,KAAK;AAAA,MACL,WAAU;AAAA,MACT,GAAG;AAAA,MAEH;AAAA;AAAA,EACF;AAEF","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport React from \"react\";\nimport type { ScorecardDraggableItems } from \"../../../schemas/config\";\nimport { useDrop } from \"react-dnd\";\n\nexport default function DroppableCell({\n\taccept,\n\tchildren,\n}: {\n\taccept: ScorecardDraggableItems[];\n\tchildren: React.ReactNode;\n}) {\n\tconst [collectedProps, drop] = useDrop(() => {\n\t\treturn {\n\t\t\taccept,\n\t\t\tcollect: (monitor) => {\n\t\t\t\tif (monitor.canDrop()) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tborder: `2px dashed ${colors.grey700}`,\n\t\t\t\t\t\t\tbackground: `${colors.grey100}`,\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\tborder: `2px solid transparent`,\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\tdrop: (results: { id: string }) => {\n\t\t\t\treturn results;\n\t\t\t},\n\t\t};\n\t});\n\n\treturn (\n\t\t<div\n\t\t\tref={drop}\n\t\t\tclassName=\"column center align-items-center\"\n\t\t\t{...collectedProps}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n"]}
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { DataTableCell } from '@dhis2/ui';
3
3
 
4
4
  function EmptyFooterCell(props) {
5
- return /* @__PURE__ */ jsx(DataTableCell, {});
5
+ return /* @__PURE__ */ jsx(DataTableCell, { bordered: true });
6
6
  }
7
7
 
8
8
  export { EmptyFooterCell };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.tsx"],"names":[],"mappings":"AAOQ;AAPR,SAAS,qBAAqB;AAIvB,SAAS,gBACf,OACC;AACD,SAAO,oBAAC,iBAAc;AACvB","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../schemas/config\";\n\nexport function EmptyFooterCell(\n\tprops: HeaderContext<ScorecardTableData, unknown>,\n) {\n\treturn <DataTableCell />;\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/EmptyFooterCell.tsx"],"names":[],"mappings":"AAOQ;AAPR,SAAS,qBAAqB;AAIvB,SAAS,gBACf,OACC;AACD,SAAO,oBAAC,iBAAc,UAAQ,MAAC;AAChC","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport type { HeaderContext } from \"@tanstack/react-table\";\nimport type { ScorecardTableData } from \"../../../schemas/config\";\n\nexport function EmptyFooterCell(\n\tprops: HeaderContext<ScorecardTableData, unknown>,\n) {\n\treturn <DataTableCell bordered />;\n}\n"]}
@@ -5,7 +5,7 @@ import { DataValue } from './DataValue';
5
5
  import { useElementSize } from 'usehooks-ts';
6
6
  import React, { useMemo } from 'react';
7
7
 
8
- function LinkedCellComponent({ top, bottom, ...props }) {
8
+ function LinkedCellComponent({ top, bottom, size, ...props }) {
9
9
  const [ref, { height, width }] = useElementSize();
10
10
  const {
11
11
  legendDefinition: topLegendDefinition,
@@ -27,6 +27,7 @@ function LinkedCellComponent({ top, bottom, ...props }) {
27
27
  ref,
28
28
  style: {
29
29
  padding: 8,
30
+ width: size,
30
31
  minWidth: 120,
31
32
  background: `linear-gradient(-${angle}rad, ${bottomLegendDefinition?.color ?? colors.white} 0%, ${bottomLegendDefinition?.color ?? colors.white} 49%, ${colors.white} 49%, ${colors.white} 50%, ${topLegendDefinition?.color ?? colors.white} 50%, ${topLegendDefinition?.color ?? colors.white} 100%)`
32
33
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/LinkedCell.tsx"],"names":[],"mappings":"AA8DG,SAuBG,KAvBH;AA9DH,SAAS,QAAQ,qBAAqB;AACtC,SAAS,uCAAuC;AAChD,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,OAAO,SAAS,eAAe;AAqB/B,SAAS,oBAAoB,EAAE,KAAK,QAAQ,GAAG,MAAM,GAAoB;AACxE,QAAM,CAAC,KAAK,EAAE,QAAQ,MAAM,CAAC,IAAI,eAAe;AAEhD,QAAM;AAAA,IACL,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,OAAO;AAAA,EACR,IAAI;AACJ,QAAM;AAAA,IACL,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,OAAO;AAAA,EACR,IAAI;AAEJ,QAAM,QAAQ,QAAQ,MAAM;AAC3B,WAAO,KAAK,IAAI,SAAS,KAAK;AAAA,EAC/B,GAAG,CAAC,QAAQ,KAAK,CAAC;AAElB,SACC;AAAA,IAAC;AAAA;AAAA,MACC,GAAG;AAAA,MAGJ;AAAA,MACA,OAAO;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,QACV,YAAY,oBAAoB,KAAK,QACpC,wBAAwB,SAAS,OAAO,KACzC,QAAQ,wBAAwB,SAAS,OAAO,KAAK,SACpD,OAAO,KACR,SAAS,OAAO,KAAK,SACpB,qBAAqB,SAAS,OAAO,KACtC,SAAS,qBAAqB,SAAS,OAAO,KAAK;AAAA,MACpD;AAAA,MACA,UAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACA,OAAO;AAAA,YACN,SAAS;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,eAAe;AAAA,UAChB;AAAA,UAEA;AAAA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAO;AAAA,kBACN,YAAY;AAAA,kBACZ,SAAS;AAAA,kBACT,OAAO;AAAA,kBACP,YAAY;AAAA,kBACZ,gBAAgB;AAAA,kBAChB,OAAO,sBACJ;AAAA,oBACA,qBAAqB,SAAS;AAAA,kBAC/B,IACC;AAAA,gBACJ;AAAA,gBAEC,2BACA;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAO;AAAA,oBACP,YAAY;AAAA;AAAA,gBACb;AAAA;AAAA,YAEF;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAO;AAAA,kBACN,YAAY;AAAA,kBACZ,SAAS;AAAA,kBACT,OAAO;AAAA,kBACP,YAAY;AAAA,kBACZ,gBAAgB;AAAA,kBAChB,OAAO,yBACJ;AAAA,oBACA,wBAAwB,SAAS;AAAA,kBAClC,IACC;AAAA,gBACJ;AAAA,gBAEC,8BACA;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAO;AAAA,oBACP,YAAY;AAAA;AAAA,gBACb;AAAA;AAAA,YAEF;AAAA;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEO,MAAM,aAAa,MAAM,KAAK,qBAAqB,CAAC,MAAM,SAAS;AACzE,SACC,KAAK,IAAI,UAAU,KAAK,IAAI,SAC5B,KAAK,OAAO,UAAU,KAAK,OAAO;AAEpC,CAAC","sourcesContent":["import { colors, DataTableCell } from \"@dhis2/ui\";\nimport { getTextColorFromBackgroundColor } from \"../../../utils/legends\";\nimport { DataValue } from \"./DataValue\";\nimport { useElementSize } from \"usehooks-ts\";\nimport React, { useMemo } from \"react\";\nimport type {\n\tLegendDefinition,\n\tScorecardCellData,\n} from \"../../../schemas/config\";\n\nexport interface LinkedCellProps {\n\ttop: {\n\t\tdataSource: ScorecardCellData;\n\t\tlegendDefinition?: LegendDefinition;\n\t\tvalue?: number;\n\t};\n\tbottom: {\n\t\tdataSource: ScorecardCellData;\n\t\tlegendDefinition?: LegendDefinition;\n\t\tvalue?: number;\n\t};\n\n\t[key: string]: unknown;\n}\n\nfunction LinkedCellComponent({ top, bottom, ...props }: LinkedCellProps) {\n\tconst [ref, { height, width }] = useElementSize();\n\n\tconst {\n\t\tlegendDefinition: topLegendDefinition,\n\t\tdataSource: topDataSource,\n\t\tvalue: topValue,\n\t} = top;\n\tconst {\n\t\tlegendDefinition: bottomLegendDefinition,\n\t\tdataSource: bottomDataSource,\n\t\tvalue: bottomValue,\n\t} = bottom;\n\n\tconst angle = useMemo(() => {\n\t\treturn Math.tan(height / width);\n\t}, [height, width]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\t{...props}\n\t\t\t/*\n // @ts-ignore */\n\t\t\tref={ref}\n\t\t\tstyle={{\n\t\t\t\tpadding: 8,\n\t\t\t\tminWidth: 120,\n\t\t\t\tbackground: `linear-gradient(-${angle}rad, ${\n\t\t\t\t\tbottomLegendDefinition?.color ?? colors.white\n\t\t\t\t} 0%, ${bottomLegendDefinition?.color ?? colors.white} 49%, ${\n\t\t\t\t\tcolors.white\n\t\t\t\t} 49%, ${colors.white} 50%, ${\n\t\t\t\t\ttopLegendDefinition?.color ?? colors.white\n\t\t\t\t} 50%, ${topLegendDefinition?.color ?? colors.white} 100%)`,\n\t\t\t}}\n\t\t\tbordered\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackground: \"inherit\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\talignItems: \"flex-start\",\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\n\t\t\t\t\t\tcolor: topLegendDefinition\n\t\t\t\t\t\t\t? getTextColorFromBackgroundColor(\n\t\t\t\t\t\t\t\t\ttopLegendDefinition?.color ?? \"#FFFFFF\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{topDataSource && (\n\t\t\t\t\t\t<DataValue\n\t\t\t\t\t\t\tvalue={topValue}\n\t\t\t\t\t\t\tdataSource={topDataSource}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackground: \"inherit\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\tjustifyContent: \"flex-end\",\n\t\t\t\t\t\tcolor: bottomLegendDefinition\n\t\t\t\t\t\t\t? getTextColorFromBackgroundColor(\n\t\t\t\t\t\t\t\t\tbottomLegendDefinition?.color ?? \"#FFFFFF\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{bottomDataSource && (\n\t\t\t\t\t\t<DataValue\n\t\t\t\t\t\t\tvalue={bottomValue}\n\t\t\t\t\t\t\tdataSource={bottomDataSource}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</DataTableCell>\n\t);\n}\n\nexport const LinkedCell = React.memo(LinkedCellComponent, (prev, next) => {\n\treturn (\n\t\tprev.top.value === next.top.value &&\n\t\tprev.bottom.value === next.bottom.value\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/LinkedCell.tsx"],"names":[],"mappings":"AAgEG,SAuBG,KAvBH;AAhEH,SAAS,QAAQ,qBAAqB;AACtC,SAAS,uCAAuC;AAChD,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,OAAO,SAAS,eAAe;AAsB/B,SAAS,oBAAoB,EAAE,KAAK,QAAQ,MAAM,GAAG,MAAM,GAAoB;AAC9E,QAAM,CAAC,KAAK,EAAE,QAAQ,MAAM,CAAC,IAAI,eAAe;AAEhD,QAAM;AAAA,IACL,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,OAAO;AAAA,EACR,IAAI;AACJ,QAAM;AAAA,IACL,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,OAAO;AAAA,EACR,IAAI;AAEJ,QAAM,QAAQ,QAAQ,MAAM;AAC3B,WAAO,KAAK,IAAI,SAAS,KAAK;AAAA,EAC/B,GAAG,CAAC,QAAQ,KAAK,CAAC;AAElB,SACC;AAAA,IAAC;AAAA;AAAA,MACC,GAAG;AAAA,MAGJ;AAAA,MACA,OAAO;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,UAAU;AAAA,QACV,YAAY,oBAAoB,KAAK,QACpC,wBAAwB,SAAS,OAAO,KACzC,QAAQ,wBAAwB,SAAS,OAAO,KAAK,SACpD,OAAO,KACR,SAAS,OAAO,KAAK,SACpB,qBAAqB,SAAS,OAAO,KACtC,SAAS,qBAAqB,SAAS,OAAO,KAAK;AAAA,MACpD;AAAA,MACA,UAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACA,OAAO;AAAA,YACN,SAAS;AAAA,YACT,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,eAAe;AAAA,UAChB;AAAA,UAEA;AAAA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAO;AAAA,kBACN,YAAY;AAAA,kBACZ,SAAS;AAAA,kBACT,OAAO;AAAA,kBACP,YAAY;AAAA,kBACZ,gBAAgB;AAAA,kBAChB,OAAO,sBACJ;AAAA,oBACA,qBAAqB,SAAS;AAAA,kBAC/B,IACC;AAAA,gBACJ;AAAA,gBAEC,2BACA;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAO;AAAA,oBACP,YAAY;AAAA;AAAA,gBACb;AAAA;AAAA,YAEF;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACA,OAAO;AAAA,kBACN,YAAY;AAAA,kBACZ,SAAS;AAAA,kBACT,OAAO;AAAA,kBACP,YAAY;AAAA,kBACZ,gBAAgB;AAAA,kBAChB,OAAO,yBACJ;AAAA,oBACA,wBAAwB,SAAS;AAAA,kBAClC,IACC;AAAA,gBACJ;AAAA,gBAEC,8BACA;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAO;AAAA,oBACP,YAAY;AAAA;AAAA,gBACb;AAAA;AAAA,YAEF;AAAA;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;AAEO,MAAM,aAAa,MAAM,KAAK,qBAAqB,CAAC,MAAM,SAAS;AACzE,SACC,KAAK,IAAI,UAAU,KAAK,IAAI,SAC5B,KAAK,OAAO,UAAU,KAAK,OAAO;AAEpC,CAAC","sourcesContent":["import { colors, DataTableCell } from \"@dhis2/ui\";\nimport { getTextColorFromBackgroundColor } from \"../../../utils/legends\";\nimport { DataValue } from \"./DataValue\";\nimport { useElementSize } from \"usehooks-ts\";\nimport React, { useMemo } from \"react\";\nimport type {\n\tLegendDefinition,\n\tScorecardCellData,\n} from \"../../../schemas/config\";\n\nexport interface LinkedCellProps {\n\ttop: {\n\t\tdataSource: ScorecardCellData;\n\t\tlegendDefinition?: LegendDefinition;\n\t\tvalue?: number;\n\t};\n\tbottom: {\n\t\tdataSource: ScorecardCellData;\n\t\tlegendDefinition?: LegendDefinition;\n\t\tvalue?: number;\n\t};\n\tsize: number;\n\n\t[key: string]: unknown;\n}\n\nfunction LinkedCellComponent({ top, bottom, size, ...props }: LinkedCellProps) {\n\tconst [ref, { height, width }] = useElementSize();\n\n\tconst {\n\t\tlegendDefinition: topLegendDefinition,\n\t\tdataSource: topDataSource,\n\t\tvalue: topValue,\n\t} = top;\n\tconst {\n\t\tlegendDefinition: bottomLegendDefinition,\n\t\tdataSource: bottomDataSource,\n\t\tvalue: bottomValue,\n\t} = bottom;\n\n\tconst angle = useMemo(() => {\n\t\treturn Math.tan(height / width);\n\t}, [height, width]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\t{...props}\n\t\t\t/*\n // @ts-ignore */\n\t\t\tref={ref}\n\t\t\tstyle={{\n\t\t\t\tpadding: 8,\n\t\t\t\twidth: size,\n\t\t\t\tminWidth: 120,\n\t\t\t\tbackground: `linear-gradient(-${angle}rad, ${\n\t\t\t\t\tbottomLegendDefinition?.color ?? colors.white\n\t\t\t\t} 0%, ${bottomLegendDefinition?.color ?? colors.white} 49%, ${\n\t\t\t\t\tcolors.white\n\t\t\t\t} 49%, ${colors.white} 50%, ${\n\t\t\t\t\ttopLegendDefinition?.color ?? colors.white\n\t\t\t\t} 50%, ${topLegendDefinition?.color ?? colors.white} 100%)`,\n\t\t\t}}\n\t\t\tbordered\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackground: \"inherit\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\talignItems: \"flex-start\",\n\t\t\t\t\t\tjustifyContent: \"flex-start\",\n\t\t\t\t\t\tcolor: topLegendDefinition\n\t\t\t\t\t\t\t? getTextColorFromBackgroundColor(\n\t\t\t\t\t\t\t\t\ttopLegendDefinition?.color ?? \"#FFFFFF\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{topDataSource && (\n\t\t\t\t\t\t<DataValue\n\t\t\t\t\t\t\tvalue={topValue}\n\t\t\t\t\t\t\tdataSource={topDataSource}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackground: \"inherit\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\t\tjustifyContent: \"flex-end\",\n\t\t\t\t\t\tcolor: bottomLegendDefinition\n\t\t\t\t\t\t\t? getTextColorFromBackgroundColor(\n\t\t\t\t\t\t\t\t\tbottomLegendDefinition?.color ?? \"#FFFFFF\",\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{bottomDataSource && (\n\t\t\t\t\t\t<DataValue\n\t\t\t\t\t\t\tvalue={bottomValue}\n\t\t\t\t\t\t\tdataSource={bottomDataSource}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</DataTableCell>\n\t);\n}\n\nexport const LinkedCell = React.memo(LinkedCellComponent, (prev, next) => {\n\treturn (\n\t\tprev.top.value === next.top.value &&\n\t\tprev.bottom.value === next.bottom.value\n\t);\n});\n"]}
@@ -8,7 +8,8 @@ import { FurtherAnalysis } from './FurtherAnalysisModal';
8
8
  function LinkedDataCellComponent({
9
9
  dataSources,
10
10
  orgUnit,
11
- period
11
+ period,
12
+ size
12
13
  }) {
13
14
  const [furtherAnalysisConfig, setFurtherAnalysisConfig] = useState(null);
14
15
  const [stateActionRef, setStateActionRef] = useState(void 0);
@@ -37,6 +38,7 @@ function LinkedDataCellComponent({
37
38
  /* @__PURE__ */ jsx(
38
39
  LinkedCell,
39
40
  {
41
+ size,
40
42
  onContextMenu: (e) => {
41
43
  e.preventDefault();
42
44
  setStateActionRef(e.target);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.tsx"],"names":[],"mappings":"AAuCE,mBAEE,KAFF;AArCF,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,MAAM,gBAAgB;AAC/B,SAAS,2BAA2B;AACpC;AAAA,EACC;AAAA,OAEM;AAQP,SAAS,wBAAwB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACD,GAAwB;AACvB,QAAM,CAAC,uBAAuB,wBAAwB,IACrD,SAAuC,IAAI;AAC5C,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,MAAS;AAE9D,QAAM,CAAC,KAAK,MAAM,IAAI,eAAe,CAAC;AACtC,QAAM,EAAE,kBAAkB,oBAAoB,IAAI,YAAY;AAAA,IAC7D,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EACD,CAAC;AACD,QAAM,EAAE,kBAAkB,uBAAuB,IAAI,YAAY;AAAA,IAChE,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EACD,CAAC;AAED,SACC,iCACE;AAAA,KAAC,CAAC,yBACF;AAAA,MAAC;AAAA;AAAA,QACA,SAAS,MAAM;AACd,mCAAyB,IAAI;AAAA,QAC9B;AAAA,QACA,MAAM,CAAC;AAAA,QACP,QAAQ;AAAA;AAAA,IACT;AAAA,IAED;AAAA,MAAC;AAAA;AAAA,QACA,eAAe,CAAC,MAAW;AAC1B,YAAE,eAAe;AACjB,4BAAkB,EAAE,MAAM;AAAA,QAC3B;AAAA,QACA,SAAS,CAAC,UAAsB;AAC/B,gBAAM,gBAAgB;AACtB,mCAAyB;AAAA,YACxB,iBAAiB;AAAA,cAChB,SAAS;AAAA,gBACR;AAAA,kBACC,IAAI;AAAA,gBACL;AAAA,cACD;AAAA,YACD;AAAA,YACA,kBAAkB;AAAA,cACjB,QAAQ,CAAC;AAAA,cACT,QAAQ,CAAC;AAAA,cACT,UAAU;AAAA,gBACT;AAAA,kBACC,IAAI,QAAQ;AAAA,gBACb;AAAA,cACD;AAAA,YACD;AAAA,YACA;AAAA,UACD,CAAC;AAAA,QACF;AAAA,QACA,KAAK;AAAA,UACJ,kBAAkB;AAAA,UAClB,YAAY;AAAA,QACb;AAAA,QACA,QAAQ;AAAA,UACP,kBAAkB;AAAA,UAClB,YAAY;AAAA,QACb;AAAA;AAAA,IACD;AAAA,IACC,kBACA;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA;AAAA,IACX;AAAA,KAEF;AAEF;AAEO,MAAM,iBAAiB,KAAK,uBAAuB","sourcesContent":["import type { ScorecardCellData } from \"../../../schemas/config\";\nimport type { ItemMeta } from \"../../../hooks/metadata\";\nimport { useCellData } from \"../../../hooks/cellData\";\nimport { LinkedCell } from \"./LinkedCell\";\nimport { memo, useState } from \"react\";\nimport { FurtherAnalysisMenu } from \"./FurtherAnalysisMenu\";\nimport {\n\tFurtherAnalysis,\n\ttype FurtherAnalysisConfig,\n} from \"./FurtherAnalysisModal\";\n\nexport interface LinkedDataCellProps {\n\tdataSources: ScorecardCellData[];\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n}\n\nfunction LinkedDataCellComponent({\n\tdataSources,\n\torgUnit,\n\tperiod,\n}: LinkedDataCellProps) {\n\tconst [furtherAnalysisConfig, setFurtherAnalysisConfig] =\n\t\tuseState<FurtherAnalysisConfig | null>(null);\n\tconst [stateActionRef, setStateActionRef] = useState(undefined);\n\n\tconst [top, bottom] = dataSources ?? [];\n\tconst { legendDefinition: topLegendDefinition } = useCellData({\n\t\tdataSource: top,\n\t\torgUnit,\n\t\tperiod,\n\t});\n\tconst { legendDefinition: bottomLegendDefinition } = useCellData({\n\t\tdataSource: bottom,\n\t\torgUnit,\n\t\tperiod,\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t{!!furtherAnalysisConfig && (\n\t\t\t\t<FurtherAnalysis\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetFurtherAnalysisConfig(null);\n\t\t\t\t\t}}\n\t\t\t\t\thide={!furtherAnalysisConfig}\n\t\t\t\t\tconfig={furtherAnalysisConfig}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<LinkedCell\n\t\t\t\tonContextMenu={(e: any) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetStateActionRef(e.target);\n\t\t\t\t}}\n\t\t\t\tonClick={(event: MouseEvent) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tsetFurtherAnalysisConfig({\n\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: period,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdataSources,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ttop={{\n\t\t\t\t\tlegendDefinition: topLegendDefinition,\n\t\t\t\t\tdataSource: top,\n\t\t\t\t}}\n\t\t\t\tbottom={{\n\t\t\t\t\tlegendDefinition: bottomLegendDefinition,\n\t\t\t\t\tdataSource: bottom,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{stateActionRef && (\n\t\t\t\t<FurtherAnalysisMenu\n\t\t\t\t\tdataSources={dataSources}\n\t\t\t\t\tonSelect={setFurtherAnalysisConfig}\n\t\t\t\t\tstateActionRef={stateActionRef}\n\t\t\t\t\tsetStateActionRef={setStateActionRef}\n\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\tperiodId={period}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const LinkedDataCell = memo(LinkedDataCellComponent);\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/LinkedDataCell.tsx"],"names":[],"mappings":"AAyCE,mBAEE,KAFF;AAvCF,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAC3B,SAAS,MAAM,gBAAgB;AAC/B,SAAS,2BAA2B;AACpC;AAAA,EACC;AAAA,OAEM;AASP,SAAS,wBAAwB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAwB;AACvB,QAAM,CAAC,uBAAuB,wBAAwB,IACrD,SAAuC,IAAI;AAC5C,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,MAAS;AAE9D,QAAM,CAAC,KAAK,MAAM,IAAI,eAAe,CAAC;AACtC,QAAM,EAAE,kBAAkB,oBAAoB,IAAI,YAAY;AAAA,IAC7D,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EACD,CAAC;AACD,QAAM,EAAE,kBAAkB,uBAAuB,IAAI,YAAY;AAAA,IAChE,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EACD,CAAC;AAED,SACC,iCACE;AAAA,KAAC,CAAC,yBACF;AAAA,MAAC;AAAA;AAAA,QACA,SAAS,MAAM;AACd,mCAAyB,IAAI;AAAA,QAC9B;AAAA,QACA,MAAM,CAAC;AAAA,QACP,QAAQ;AAAA;AAAA,IACT;AAAA,IAED;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,eAAe,CAAC,MAAW;AAC1B,YAAE,eAAe;AACjB,4BAAkB,EAAE,MAAM;AAAA,QAC3B;AAAA,QACA,SAAS,CAAC,UAAsB;AAC/B,gBAAM,gBAAgB;AACtB,mCAAyB;AAAA,YACxB,iBAAiB;AAAA,cAChB,SAAS;AAAA,gBACR;AAAA,kBACC,IAAI;AAAA,gBACL;AAAA,cACD;AAAA,YACD;AAAA,YACA,kBAAkB;AAAA,cACjB,QAAQ,CAAC;AAAA,cACT,QAAQ,CAAC;AAAA,cACT,UAAU;AAAA,gBACT;AAAA,kBACC,IAAI,QAAQ;AAAA,gBACb;AAAA,cACD;AAAA,YACD;AAAA,YACA;AAAA,UACD,CAAC;AAAA,QACF;AAAA,QACA,KAAK;AAAA,UACJ,kBAAkB;AAAA,UAClB,YAAY;AAAA,QACb;AAAA,QACA,QAAQ;AAAA,UACP,kBAAkB;AAAA,UAClB,YAAY;AAAA,QACb;AAAA;AAAA,IACD;AAAA,IACC,kBACA;AAAA,MAAC;AAAA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA;AAAA,IACX;AAAA,KAEF;AAEF;AAEO,MAAM,iBAAiB,KAAK,uBAAuB","sourcesContent":["import type { ScorecardCellData } from \"../../../schemas/config\";\nimport type { ItemMeta } from \"../../../hooks/metadata\";\nimport { useCellData } from \"../../../hooks/cellData\";\nimport { LinkedCell } from \"./LinkedCell\";\nimport { memo, useState } from \"react\";\nimport { FurtherAnalysisMenu } from \"./FurtherAnalysisMenu\";\nimport {\n\tFurtherAnalysis,\n\ttype FurtherAnalysisConfig,\n} from \"./FurtherAnalysisModal\";\n\nexport interface LinkedDataCellProps {\n\tdataSources: ScorecardCellData[];\n\torgUnit: ItemMeta & { hierarchy: string };\n\tperiod: string;\n\tsize: number;\n}\n\nfunction LinkedDataCellComponent({\n\tdataSources,\n\torgUnit,\n\tperiod,\n\tsize,\n}: LinkedDataCellProps) {\n\tconst [furtherAnalysisConfig, setFurtherAnalysisConfig] =\n\t\tuseState<FurtherAnalysisConfig | null>(null);\n\tconst [stateActionRef, setStateActionRef] = useState(undefined);\n\n\tconst [top, bottom] = dataSources ?? [];\n\tconst { legendDefinition: topLegendDefinition } = useCellData({\n\t\tdataSource: top,\n\t\torgUnit,\n\t\tperiod,\n\t});\n\tconst { legendDefinition: bottomLegendDefinition } = useCellData({\n\t\tdataSource: bottom,\n\t\torgUnit,\n\t\tperiod,\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t{!!furtherAnalysisConfig && (\n\t\t\t\t<FurtherAnalysis\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetFurtherAnalysisConfig(null);\n\t\t\t\t\t}}\n\t\t\t\t\thide={!furtherAnalysisConfig}\n\t\t\t\t\tconfig={furtherAnalysisConfig}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<LinkedCell\n\t\t\t\tsize={size}\n\t\t\t\tonContextMenu={(e: any) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetStateActionRef(e.target);\n\t\t\t\t}}\n\t\t\t\tonClick={(event: MouseEvent) => {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tsetFurtherAnalysisConfig({\n\t\t\t\t\t\tperiodSelection: {\n\t\t\t\t\t\t\tperiods: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: period,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\torgUnitSelection: {\n\t\t\t\t\t\t\tlevels: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\torgUnits: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: orgUnit.uid,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdataSources,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\ttop={{\n\t\t\t\t\tlegendDefinition: topLegendDefinition,\n\t\t\t\t\tdataSource: top,\n\t\t\t\t}}\n\t\t\t\tbottom={{\n\t\t\t\t\tlegendDefinition: bottomLegendDefinition,\n\t\t\t\t\tdataSource: bottom,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{stateActionRef && (\n\t\t\t\t<FurtherAnalysisMenu\n\t\t\t\t\tdataSources={dataSources}\n\t\t\t\t\tonSelect={setFurtherAnalysisConfig}\n\t\t\t\t\tstateActionRef={stateActionRef}\n\t\t\t\t\tsetStateActionRef={setStateActionRef}\n\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\tperiodId={period}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const LinkedDataCell = memo(LinkedDataCellComponent);\n"]}
@@ -11,6 +11,7 @@ function MetaFooterCell() {
11
11
  return /* @__PURE__ */ jsx(
12
12
  DataTableCell,
13
13
  {
14
+ bordered: true,
14
15
  width: "300px",
15
16
  style: {
16
17
  width: "fit-content",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.tsx"],"names":[],"mappings":"AAwBG;AAxBH,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AACjB,SAAS,iCAAiC;AAEnC,SAAS,iBAAiB;AAChC,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,SACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAM;AAAA,MACN,OAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MACX;AAAA,MACA,OAAM;AAAA,MACN,SAAS,aAAa,MAAM;AAAA,MAC5B,OAAK;AAAA,MAGL,MAAK;AAAA,MAEL,8BAAC,OAAE,OAAO,EAAE,SAAS,QAAQ,GAAI,eAAK,EAAE,SAAS,GAAE;AAAA;AAAA,EACpD;AAEF","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelector } from \"../../StateProvider\";\n\nexport function MetaFooterCell() {\n\tconst itemNumber = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\twidth=\"300px\"\n\t\t\tstyle={{\n\t\t\t\twidth: \"fit-content\",\n\t\t\t\tminWidth: 300,\n\t\t\t}}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={itemNumber ? \"3\" : \"2\"}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"0\"\n\t\t>\n\t\t\t<b style={{ padding: \"8px 0\" }}>{i18n.t(\"Average\")}</b>\n\t\t</DataTableCell>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../../../../src/components/Scorecard/components/ScorecardTable/components/MetaFooterCell.tsx"],"names":[],"mappings":"AAyBG;AAzBH,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AACjB,SAAS,iCAAiC;AAEnC,SAAS,iBAAiB;AAChC,QAAM,aAAa,0BAAmC;AAAA,IACrD;AAAA,IACA;AAAA,EACD,CAAC;AAED,SACC;AAAA,IAAC;AAAA;AAAA,MACA,UAAQ;AAAA,MACR,OAAM;AAAA,MACN,OAAO;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,MACX;AAAA,MACA,OAAM;AAAA,MACN,SAAS,aAAa,MAAM;AAAA,MAC5B,OAAK;AAAA,MAGL,MAAK;AAAA,MAEL,8BAAC,OAAE,OAAO,EAAE,SAAS,QAAQ,GAAI,eAAK,EAAE,SAAS,GAAE;AAAA;AAAA,EACpD;AAEF","sourcesContent":["import { DataTableCell } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardStateSelector } from \"../../StateProvider\";\n\nexport function MetaFooterCell() {\n\tconst itemNumber = useScorecardStateSelector<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\n\treturn (\n\t\t<DataTableCell\n\t\t\tbordered\n\t\t\twidth=\"300px\"\n\t\t\tstyle={{\n\t\t\t\twidth: \"fit-content\",\n\t\t\t\tminWidth: 300,\n\t\t\t}}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={itemNumber ? \"3\" : \"2\"}\n\t\t\tfixed\n\t\t\t/*\n // @ts-ignore */\n\t\t\tleft=\"0\"\n\t\t>\n\t\t\t<b style={{ padding: \"8px 0\" }}>{i18n.t(\"Average\")}</b>\n\t\t</DataTableCell>\n\t);\n}\n"]}