@hisptz/dhis2-scorecard 1.1.9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/Scorecard.js +2 -2
  2. package/dist/Scorecard.js.map +1 -1
  3. package/dist/components/ColGroup.js +3 -9
  4. package/dist/components/ColGroup.js.map +1 -1
  5. package/dist/components/ScorecardHeader.js +8 -7
  6. package/dist/components/ScorecardHeader.js.map +1 -1
  7. package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js +2 -2
  8. package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
  9. package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js +3 -3
  10. package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  11. package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js +32 -37
  12. package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
  13. package/dist/components/ScorecardTable/ScorecardTable.js +6 -8
  14. package/dist/components/ScorecardTable/ScorecardTable.js.map +1 -1
  15. package/dist/components/ScorecardTable/components/AverageCell.js +2 -5
  16. package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
  17. package/dist/components/ScorecardTable/components/DataFooterCell.js +2 -5
  18. package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  19. package/dist/components/ScorecardTable/components/DataValue.js +5 -8
  20. package/dist/components/ScorecardTable/components/DataValue.js.map +1 -1
  21. package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js +6 -4
  22. package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  23. package/dist/components/ScorecardTable/components/LinkedCell.js +2 -2
  24. package/dist/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  25. package/dist/components/ScorecardTable/components/TableFoot.js +2 -5
  26. package/dist/components/ScorecardTable/components/TableFoot.js.map +1 -1
  27. package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +4 -8
  28. package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  29. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +2 -5
  30. package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  31. package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js +2 -5
  32. package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  33. package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -13
  34. package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  35. package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +4 -6
  36. package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  37. package/dist/components/StateProvider.js +40 -27
  38. package/dist/components/StateProvider.js.map +1 -1
  39. package/dist/esm/Scorecard.js +1 -1
  40. package/dist/esm/Scorecard.js.map +1 -1
  41. package/dist/esm/components/ColGroup.js +3 -9
  42. package/dist/esm/components/ColGroup.js.map +1 -1
  43. package/dist/esm/components/ScorecardHeader.js +8 -7
  44. package/dist/esm/components/ScorecardHeader.js.map +1 -1
  45. package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js +2 -2
  46. package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
  47. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js +3 -3
  48. package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
  49. package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js +32 -37
  50. package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
  51. package/dist/esm/components/ScorecardTable/ScorecardTable.js +6 -8
  52. package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
  53. package/dist/esm/components/ScorecardTable/components/AverageCell.js +2 -5
  54. package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
  55. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +2 -5
  56. package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
  57. package/dist/esm/components/ScorecardTable/components/DataValue.js +5 -8
  58. package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
  59. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js +6 -4
  60. package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
  61. package/dist/esm/components/ScorecardTable/components/LinkedCell.js +2 -2
  62. package/dist/esm/components/ScorecardTable/components/LinkedCell.js.map +1 -1
  63. package/dist/esm/components/ScorecardTable/components/TableFoot.js +2 -5
  64. package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
  65. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +4 -8
  66. package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
  67. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +2 -5
  68. package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
  69. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js +2 -5
  70. package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
  71. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -13
  72. package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
  73. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +4 -6
  74. package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
  75. package/dist/esm/components/StateProvider.js +40 -29
  76. package/dist/esm/components/StateProvider.js.map +1 -1
  77. package/dist/esm/hooks/columns.js +8 -21
  78. package/dist/esm/hooks/columns.js.map +1 -1
  79. package/dist/esm/hooks/data.js +1 -1
  80. package/dist/esm/hooks/data.js.map +1 -1
  81. package/dist/esm/hooks/metadata.js +3 -7
  82. package/dist/esm/hooks/metadata.js.map +1 -1
  83. package/dist/esm/hooks/table.js +12 -34
  84. package/dist/esm/hooks/table.js.map +1 -1
  85. package/dist/esm/index.js +0 -1
  86. package/dist/esm/utils/dimensionState.js +133 -0
  87. package/dist/esm/utils/dimensionState.js.map +1 -0
  88. package/dist/esm/utils/viewState.js +85 -0
  89. package/dist/esm/utils/viewState.js.map +1 -0
  90. package/dist/hooks/columns.js +8 -21
  91. package/dist/hooks/columns.js.map +1 -1
  92. package/dist/hooks/data.js +1 -1
  93. package/dist/hooks/data.js.map +1 -1
  94. package/dist/hooks/metadata.js +3 -7
  95. package/dist/hooks/metadata.js.map +1 -1
  96. package/dist/hooks/table.js +12 -34
  97. package/dist/hooks/table.js.map +1 -1
  98. package/dist/index.js +0 -7
  99. package/dist/types/components/ColGroup.d.ts.map +1 -1
  100. package/dist/types/components/ScorecardHeader.d.ts.map +1 -1
  101. package/dist/types/components/ScorecardLegendsView/components/ArrowLegendView.d.ts +1 -1
  102. package/dist/types/components/ScorecardLegendsView/components/ArrowLegendView.d.ts.map +1 -1
  103. package/dist/types/components/ScorecardPrint/components/ScorecardPreviewArea.d.ts.map +1 -1
  104. package/dist/types/components/ScorecardTable/ScorecardTable.d.ts.map +1 -1
  105. package/dist/types/components/ScorecardTable/components/AverageCell.d.ts.map +1 -1
  106. package/dist/types/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -1
  107. package/dist/types/components/ScorecardTable/components/DataValue.d.ts.map +1 -1
  108. package/dist/types/components/ScorecardTable/components/ExpandedScorecardTable.d.ts.map +1 -1
  109. package/dist/types/components/ScorecardTable/components/TableFoot.d.ts.map +1 -1
  110. package/dist/types/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts.map +1 -1
  111. package/dist/types/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -1
  112. package/dist/types/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts.map +1 -1
  113. package/dist/types/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -1
  114. package/dist/types/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts.map +1 -1
  115. package/dist/types/components/StateProvider.d.ts +34 -2
  116. package/dist/types/components/StateProvider.d.ts.map +1 -1
  117. package/dist/types/hooks/columns.d.ts.map +1 -1
  118. package/dist/types/hooks/metadata.d.ts.map +1 -1
  119. package/dist/types/hooks/table.d.ts.map +1 -1
  120. package/dist/types/index.d.ts +0 -1
  121. package/dist/types/index.d.ts.map +1 -1
  122. package/dist/types/utils/dimensionState.d.ts +62 -0
  123. package/dist/types/utils/dimensionState.d.ts.map +1 -0
  124. package/dist/types/utils/viewState.d.ts +34 -0
  125. package/dist/types/utils/viewState.d.ts.map +1 -0
  126. package/dist/utils/dimensionState.js +139 -0
  127. package/dist/utils/dimensionState.js.map +1 -0
  128. package/dist/utils/viewState.js +90 -0
  129. package/dist/utils/viewState.js.map +1 -0
  130. package/package.json +7 -8
  131. package/dist/esm/hooks/period.js +0 -13
  132. package/dist/esm/hooks/period.js.map +0 -1
  133. package/dist/esm/state/index.js +0 -53
  134. package/dist/esm/state/index.js.map +0 -1
  135. package/dist/esm/utils/engine.js +0 -18
  136. package/dist/esm/utils/engine.js.map +0 -1
  137. package/dist/hooks/period.js +0 -15
  138. package/dist/hooks/period.js.map +0 -1
  139. package/dist/state/index.js +0 -63
  140. package/dist/state/index.js.map +0 -1
  141. package/dist/types/hooks/period.d.ts +0 -2
  142. package/dist/types/hooks/period.d.ts.map +0 -1
  143. package/dist/types/state/index.d.ts +0 -109
  144. package/dist/types/state/index.d.ts.map +0 -1
  145. package/dist/types/utils/engine.d.ts +0 -14
  146. package/dist/types/utils/engine.d.ts.map +0 -1
  147. package/dist/utils/engine.js +0 -20
  148. package/dist/utils/engine.js.map +0 -1
package/dist/Scorecard.js CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var TableStateProvider = require('./components/TableStateProvider');
4
+ var components = require('./components');
5
5
  var ScorecardTable = require('./components/ScorecardTable');
6
6
  var reactDndHtml5Backend = require('react-dnd-html5-backend');
7
7
  var reactDnd = require('react-dnd');
8
8
 
9
9
  function Scorecard({ tableProps }) {
10
- return /* @__PURE__ */ jsxRuntime.jsx(TableStateProvider.TableStateProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactDnd.DndProvider, { backend: reactDndHtml5Backend.HTML5Backend, children: /* @__PURE__ */ jsxRuntime.jsx(ScorecardTable.ScorecardTable, { ...tableProps ?? {} }) }) });
10
+ return /* @__PURE__ */ jsxRuntime.jsx(components.TableStateProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactDnd.DndProvider, { backend: reactDndHtml5Backend.HTML5Backend, children: /* @__PURE__ */ jsxRuntime.jsx(ScorecardTable.ScorecardTable, { ...tableProps ?? {} }) }) });
11
11
  }
12
12
 
13
13
  exports.Scorecard = Scorecard;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Scorecard.tsx"],"names":["jsx","TableStateProvider","DndProvider","HTML5Backend","ScorecardTable"],"mappings":";;;;;;;;AAaO,SAAS,SAAA,CAAU,EAAE,UAAA,EAAkD,EAAA;AAC7E,EAAA,uBACEA,cAAA,CAAAC,qCAAA,EAAA,EACA,QAAC,kBAAAD,cAAA,CAAAE,oBAAA,EAAA,EAAY,OAAS,EAAAC,iCAAA,EACrB,QAAC,kBAAAH,cAAA,CAAAI,6BAAA,EAAA,EAAgB,GAAI,UAAA,IAAc,EAAC,EAAI,GACzC,CACD,EAAA,CAAA;AAEF","file":"Scorecard.js","sourcesContent":["import React from \"react\";\nimport { TableStateProvider } from \"./components/TableStateProvider\";\nimport {\n\tScorecardTable,\n\ttype ScorecardTableProps,\n} from \"./components/ScorecardTable\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\n\nexport interface ScorecardProps {\n\ttableProps?: ScorecardTableProps;\n}\n\nexport function Scorecard({ tableProps }: ScorecardProps): React.ReactElement {\n\treturn (\n\t\t<TableStateProvider>\n\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t<ScorecardTable {...(tableProps ?? {})} />\n\t\t\t</DndProvider>\n\t\t</TableStateProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../src/Scorecard.tsx"],"names":["jsx","TableStateProvider","DndProvider","HTML5Backend","ScorecardTable"],"mappings":";;;;;;;;AAaO,SAAS,SAAA,CAAU,EAAE,UAAA,EAAkD,EAAA;AAC7E,EAAA,uBACEA,cAAA,CAAAC,6BAAA,EAAA,EACA,QAAC,kBAAAD,cAAA,CAAAE,oBAAA,EAAA,EAAY,OAAS,EAAAC,iCAAA,EACrB,QAAC,kBAAAH,cAAA,CAAAI,6BAAA,EAAA,EAAgB,GAAI,UAAA,IAAc,EAAC,EAAI,GACzC,CACD,EAAA,CAAA;AAEF","file":"Scorecard.js","sourcesContent":["import React from \"react\";\nimport { TableStateProvider } from \"./components\";\nimport {\n\tScorecardTable,\n\ttype ScorecardTableProps,\n} from \"./components/ScorecardTable\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { DndProvider } from \"react-dnd\";\n\nexport interface ScorecardProps {\n\ttableProps?: ScorecardTableProps;\n}\n\nexport function Scorecard({ tableProps }: ScorecardProps): React.ReactElement {\n\treturn (\n\t\t<TableStateProvider>\n\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t<ScorecardTable {...(tableProps ?? {})} />\n\t\t\t</DndProvider>\n\t\t</TableStateProvider>\n\t);\n}\n"]}
@@ -1,17 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var state = require('../state');
4
+ var viewState = require('../utils/viewState');
5
5
 
6
6
  function ColGroup() {
7
- const inPrintMode = state.useScorecardStateSelectorValue([
8
- "options",
9
- "printMode"
10
- ]);
11
- const itemNumber = state.useScorecardStateSelectorValue([
12
- "options",
13
- "itemNumber"
14
- ]);
7
+ const inPrintMode = viewState.useScorecardViewStateValue("printMode");
8
+ const itemNumber = viewState.useScorecardViewStateValue("itemNumber");
15
9
  if (!inPrintMode) {
16
10
  return null;
17
11
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ColGroup.tsx"],"names":["useScorecardStateSelectorValue","jsx"],"mappings":";;;;;AAEO,SAAS,QAAW,GAAA;AAC1B,EAAA,MAAM,cAAcA,oCAAwC,CAAA;AAAA,IAC3D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,MAAM,aAAaA,oCAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,IAAI,CAAC,WAAa,EAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uCACE,UACC,EAAA,EAAA,QAAA,EAAA;AAAA,IAAc,UAAA,oBAAAC,cAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAI,EAAA,CAAA;AAAA,oBAC/BA,cAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA;AAAA,GACnB,EAAA,CAAA;AAEF","file":"ColGroup.js","sourcesContent":["import { useScorecardStateSelectorValue } from \"../state\";\n\nexport function ColGroup() {\n\tconst inPrintMode = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"printMode\",\n\t]);\n\n\tconst itemNumber = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\n\tif (!inPrintMode) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<colgroup>\n\t\t\t{itemNumber && <col width={48} />}\n\t\t\t<col width=\"auto\" />\n\t\t</colgroup>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../src/components/ColGroup.tsx"],"names":["useScorecardViewStateValue","jsx"],"mappings":";;;;;AAEO,SAAS,QAAW,GAAA;AAC1B,EAAM,MAAA,WAAA,GAAcA,qCAAoC,WAAW,CAAA;AACnE,EAAM,MAAA,UAAA,GAAaA,qCAAoC,YAAY,CAAA;AAEnE,EAAA,IAAI,CAAC,WAAa,EAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uCACE,UACC,EAAA,EAAA,QAAA,EAAA;AAAA,IAAc,UAAA,oBAAAC,cAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAI,EAAA,CAAA;AAAA,oBAC/BA,cAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA;AAAA,GACnB,EAAA,CAAA;AAEF","file":"ColGroup.js","sourcesContent":["import { useScorecardViewStateValue } from \"../utils/viewState\";\n\nexport function ColGroup() {\n\tconst inPrintMode = useScorecardViewStateValue<boolean>(\"printMode\");\n\tconst itemNumber = useScorecardViewStateValue<boolean>(\"itemNumber\");\n\n\tif (!inPrintMode) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<colgroup>\n\t\t\t{itemNumber && <col width={48} />}\n\t\t\t<col width=\"auto\" />\n\t\t</colgroup>\n\t);\n}\n"]}
@@ -3,11 +3,12 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var ConfigProvider = require('./ConfigProvider');
5
5
  var react = require('react');
6
- var state = require('../state');
7
6
  var dhis2Utils = require('@hisptz/dhis2-utils');
8
7
  var lodash = require('lodash');
9
8
  var ui = require('@dhis2/ui');
10
9
  var JsxParser = require('react-jsx-parser');
10
+ var viewState = require('../utils/viewState');
11
+ var dimensionState = require('../utils/dimensionState');
11
12
 
12
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
14
 
@@ -16,12 +17,12 @@ var JsxParser__default = /*#__PURE__*/_interopDefault(JsxParser);
16
17
  function ScorecardHeader() {
17
18
  const config = ConfigProvider.useScorecardConfig();
18
19
  const { customHeader, title, subtitle } = config ?? {};
19
- const periodSelection = state.useScorecardStateSelectorValue("periodSelection");
20
- const showTitle = state.useScorecardStateSelectorValue([
21
- "options",
22
- "title"
23
- ]);
24
- const periods = react.useMemo(() => periodSelection.periods, [periodSelection]);
20
+ const periodSelection = dimensionState.usePeriodSelectionValue();
21
+ const showTitle = viewState.useScorecardViewStateValue("title");
22
+ const periods = react.useMemo(
23
+ () => periodSelection.periods,
24
+ [periodSelection.periods]
25
+ );
25
26
  const period = react.useMemo(() => {
26
27
  if (periods.length > 1) {
27
28
  return;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/ScorecardHeader.tsx"],"names":["useScorecardConfig","useScorecardStateSelectorValue","useMemo","PeriodUtility","head","jsx","Fragment","JsxParser","jsxs","colors"],"mappings":";;;;;;;;;;;;;;;AASO,SAAS,eAAkB,GAAA;AACjC,EAAA,MAAM,SAASA,iCAAmB,EAAA;AAClC,EAAA,MAAM,EAAE,YAAc,EAAA,KAAA,EAAO,QAAS,EAAA,GAAI,UAAU,EAAC;AAErD,EAAM,MAAA,eAAA,GACLC,qCAAgD,iBAAiB,CAAA;AAClE,EAAA,MAAM,YAAYA,oCAAwC,CAAA;AAAA,IACzD,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,MAAM,UAAUC,aAAQ,CAAA,MAAM,gBAAgB,OAAS,EAAA,CAAC,eAAe,CAAC,CAAA;AAExE,EAAM,MAAA,MAAA,GAASA,cAAQ,MAAM;AAC5B,IAAI,IAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACvB,MAAA;AAAA;AAED,IAAA,OAAOC,wBAAc,CAAA,aAAA,CAAcC,WAAK,CAAA,OAAO,GAAG,EAAY,CAAA;AAAA,GAC/D,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,CAAC,SAAW,EAAA;AACf,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uBAEGC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,YAAA;AAAA;AAAA;AAAA,oBAGAD,cAAA;AAAA,MAACE,0BAAA;AAAA,MAAA;AAAA,QACA,qBAAqB,EAAA,IAAA;AAAA,QACrB,SAAU,EAAA,OAAA;AAAA,QACV,SAAS,OAAQ,CAAA,KAAA;AAAA,QACjB,QAAU,EAAA;AAAA,UACT,KAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAQ,EAAA,OAAA,CAAQ,MAAW,KAAA,CAAA,GAAI,QAAQ,IAAO,GAAA;AAAA,SAC/C;AAAA,QACA,GAAK,EAAA;AAAA;AAAA;AACN,sBAEAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,QAAA;AAAA,QAChB,KAAO,EAAA,MAAA;AAAA,QACP,GAAK,EAAA;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,QAAG,KAAO,EAAA,EAAE,QAAQ,CAAE,EAAA,EAAG,IAAI,4BAC5B,EAAA,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UAAO,GAAA;AAAA,UACP,CAAA,EAAG,QAAQ,MAAW,KAAA,CAAA,GAAI,MAAM,MAAQ,EAAA,IAAI,KAAK,EAAE,CAAA;AAAA,SACrD,EAAA,CAAA;AAAA,wBACAH,cAAA,CAAC,IAAG,EAAA,EAAA,KAAA,EAAO,EAAE,KAAA,EAAOI,UAAO,OAAS,EAAA,MAAA,EAAQ,CAAE,EAAA,EAC5C,QACF,EAAA,QAAA,EAAA;AAAA;AAAA;AAAA,GAGH,EAAA,CAAA;AAEF","file":"ScorecardHeader.js","sourcesContent":["import { useScorecardConfig } from \"./ConfigProvider\";\nimport { useMemo } from \"react\";\nimport { useScorecardStateSelectorValue } from \"../state\";\nimport type { PeriodSelection } from \"../schemas/config\";\nimport { PeriodUtility } from \"@hisptz/dhis2-utils\";\nimport { head } from \"lodash\";\nimport { colors } from \"@dhis2/ui\";\nimport JsxParser from \"react-jsx-parser\";\n\nexport function ScorecardHeader() {\n\tconst config = useScorecardConfig();\n\tconst { customHeader, title, subtitle } = config ?? {};\n\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<PeriodSelection>(\"periodSelection\");\n\tconst showTitle = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"title\",\n\t]);\n\n\tconst periods = useMemo(() => periodSelection.periods, [periodSelection]);\n\n\tconst period = useMemo(() => {\n\t\tif (periods.length > 1) {\n\t\t\treturn;\n\t\t}\n\t\treturn PeriodUtility.getPeriodById(head(periods)?.id as string);\n\t}, [periods]);\n\n\tif (!showTitle) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{customHeader ? (\n\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t<JsxParser\n\t\t\t\t\tautoCloseVoidElements\n\t\t\t\t\tclassName=\"w-100\"\n\t\t\t\t\tonError={console.error}\n\t\t\t\t\tbindings={{\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tsubtitle,\n\t\t\t\t\t\tperiod: periods.length === 1 ? period?.name : \"\",\n\t\t\t\t\t}}\n\t\t\t\t\tjsx={customHeader}\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\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h1 style={{ margin: 8 }} id={\"data-test-score-card-title\"}>\n\t\t\t\t\t\t{title}{\" \"}\n\t\t\t\t\t\t{`${periods.length === 1 ? ` - ${period?.name}` : \"\"}`}\n\t\t\t\t\t</h1>\n\t\t\t\t\t<h3 style={{ color: colors.grey600, margin: 0 }}>\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</h3>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../src/components/ScorecardHeader.tsx"],"names":["useScorecardConfig","usePeriodSelectionValue","useScorecardViewStateValue","useMemo","PeriodUtility","head","jsx","Fragment","JsxParser","jsxs","colors"],"mappings":";;;;;;;;;;;;;;;;AASO,SAAS,eAAkB,GAAA;AACjC,EAAA,MAAM,SAASA,iCAAmB,EAAA;AAClC,EAAA,MAAM,EAAE,YAAc,EAAA,KAAA,EAAO,QAAS,EAAA,GAAI,UAAU,EAAC;AAErD,EAAA,MAAM,kBAAkBC,sCAAwB,EAAA;AAChD,EAAM,MAAA,SAAA,GAAYC,qCAAoC,OAAO,CAAA;AAE7D,EAAA,MAAM,OAAU,GAAAC,aAAA;AAAA,IACf,MAAM,eAAgB,CAAA,OAAA;AAAA,IACtB,CAAC,gBAAgB,OAAO;AAAA,GACzB;AAEA,EAAM,MAAA,MAAA,GAASA,cAAQ,MAAM;AAC5B,IAAI,IAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACvB,MAAA;AAAA;AAED,IAAA,OAAOC,wBAAc,CAAA,aAAA,CAAcC,WAAK,CAAA,OAAO,GAAG,EAAY,CAAA;AAAA,GAC/D,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,CAAC,SAAW,EAAA;AACf,IAAO,OAAA,IAAA;AAAA;AAGR,EAAA,uBAEGC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,YAAA;AAAA;AAAA;AAAA,oBAGAD,cAAA;AAAA,MAACE,0BAAA;AAAA,MAAA;AAAA,QACA,qBAAqB,EAAA,IAAA;AAAA,QACrB,SAAU,EAAA,OAAA;AAAA,QACV,SAAS,OAAQ,CAAA,KAAA;AAAA,QACjB,QAAU,EAAA;AAAA,UACT,KAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAQ,EAAA,OAAA,CAAQ,MAAW,KAAA,CAAA,GAAI,QAAQ,IAAO,GAAA;AAAA,SAC/C;AAAA,QACA,GAAK,EAAA;AAAA;AAAA;AACN,sBAEAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,QAAA;AAAA,QAChB,KAAO,EAAA,MAAA;AAAA,QACP,GAAK,EAAA;AAAA,OACN;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,QAAG,KAAO,EAAA,EAAE,QAAQ,CAAE,EAAA,EAAG,IAAI,4BAC5B,EAAA,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UAAO,GAAA;AAAA,UACP,CAAA,EAAG,QAAQ,MAAW,KAAA,CAAA,GAAI,MAAM,MAAQ,EAAA,IAAI,KAAK,EAAE,CAAA;AAAA,SACrD,EAAA,CAAA;AAAA,wBACAH,cAAA,CAAC,IAAG,EAAA,EAAA,KAAA,EAAO,EAAE,KAAA,EAAOI,UAAO,OAAS,EAAA,MAAA,EAAQ,CAAE,EAAA,EAC5C,QACF,EAAA,QAAA,EAAA;AAAA;AAAA;AAAA,GAGH,EAAA,CAAA;AAEF","file":"ScorecardHeader.js","sourcesContent":["import { useScorecardConfig } from \"./ConfigProvider\";\nimport { useMemo } from \"react\";\nimport { PeriodUtility } from \"@hisptz/dhis2-utils\";\nimport { head } from \"lodash\";\nimport { colors } from \"@dhis2/ui\";\nimport JsxParser from \"react-jsx-parser\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\nimport { usePeriodSelectionValue } from \"../utils/dimensionState\";\n\nexport function ScorecardHeader() {\n\tconst config = useScorecardConfig();\n\tconst { customHeader, title, subtitle } = config ?? {};\n\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst showTitle = useScorecardViewStateValue<boolean>(\"title\");\n\n\tconst periods = useMemo(\n\t\t() => periodSelection.periods,\n\t\t[periodSelection.periods],\n\t);\n\n\tconst period = useMemo(() => {\n\t\tif (periods.length > 1) {\n\t\t\treturn;\n\t\t}\n\t\treturn PeriodUtility.getPeriodById(head(periods)?.id as string);\n\t}, [periods]);\n\n\tif (!showTitle) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{customHeader ? (\n\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t<JsxParser\n\t\t\t\t\tautoCloseVoidElements\n\t\t\t\t\tclassName=\"w-100\"\n\t\t\t\t\tonError={console.error}\n\t\t\t\t\tbindings={{\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tsubtitle,\n\t\t\t\t\t\tperiod: periods.length === 1 ? period?.name : \"\",\n\t\t\t\t\t}}\n\t\t\t\t\tjsx={customHeader}\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\tdisplay: \"flex\",\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<h1 style={{ margin: 8 }} id={\"data-test-score-card-title\"}>\n\t\t\t\t\t\t{title}{\" \"}\n\t\t\t\t\t\t{`${periods.length === 1 ? ` - ${period?.name}` : \"\"}`}\n\t\t\t\t\t</h1>\n\t\t\t\t\t<h3 style={{ color: colors.grey600, margin: 0 }}>\n\t\t\t\t\t\t{subtitle}\n\t\t\t\t\t</h3>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"]}
@@ -6,12 +6,12 @@ var SpecificTargetLegendsView = require('./components/SpecificTargetLegendsView'
6
6
  var LegendView = require('./components/LegendView');
7
7
  var ConfigProvider = require('../ConfigProvider');
8
8
  var react = require('react');
9
- var state = require('../../state');
9
+ var viewState = require('../../utils/viewState');
10
10
 
11
11
  const ScorecardLegendsView = react.memo(function ScorecardLegendsView2() {
12
12
  const config = ConfigProvider.useScorecardConfig();
13
13
  const legendDefinitions = config.legendDefinitions;
14
- const showLegends = state.useScorecardViewOptionValue("legend");
14
+ const showLegends = viewState.useScorecardViewStateValue("legend");
15
15
  if (!showLegends) {
16
16
  return null;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardLegendsView/ScorecardLegendsView.tsx"],"names":["memo","ScorecardLegendsView","useScorecardConfig","useScorecardViewOptionValue","jsxs","jsx","LegendView","ArrowLegendsView","SpecificTargetLegendsView"],"mappings":";;;;;;;;;;AAOa,MAAA,oBAAA,GAAuBA,UAAK,CAAA,SAASC,qBAAuB,GAAA;AACxE,EAAA,MAAM,SAASC,iCAAmB,EAAA;AAClC,EAAA,MAAM,oBAAoB,MAAQ,CAAA,iBAAA;AAClC,EAAM,MAAA,WAAA,GAAcC,kCAA4B,QAAQ,CAAA;AAExD,EAAA,IAAI,CAAC,WAAa,EAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAGR,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,GAAK,EAAA,EAAA;AAAA,QACL,OAAS,EAAA,QAAA;AAAA,QACT,OAAS,EAAA,MAAA;AAAA,QACT,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA;AAAA,OACjB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,OAAS,EAAA,MAAA;AAAA,cACT,GAAK,EAAA,CAAA;AAAA,cACL,mBAAA,EAAqB,CAAU,OAAA,EAAA,iBAAA,CAAkB,MAAM,CAAA,OAAA;AAAA,aACxD;AAAA,YAEC,QAAA,EAAA,iBAAA,CAAkB,GAAI,CAAA,CAAC,IACvB,qBAAAA,cAAA,CAACC,yBAAW,MAAQ,EAAA,IAAA,EAAA,EAAW,IAAK,CAAA,EAAI,CACxC;AAAA;AAAA,SACF;AAAA,uCACC,KACA,EAAA,EAAA,QAAA,kBAAAF,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,GAAK,EAAA,EAAA;AAAA,cACL,WAAa,EAAA,UAAA;AAAA,cACb,OAAS,EAAA,MAAA;AAAA,cACT,UAAY,EAAA,QAAA;AAAA,cACZ,cAAgB,EAAA;AAAA,aACjB;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAACE,gCAAiB,EAAA,EAAA,CAAA;AAAA,6CACjBC,mDAA0B,EAAA,EAAA;AAAA;AAAA;AAAA,SAE7B,EAAA;AAAA;AAAA;AAAA,GACD;AAEF,CAAC","file":"ScorecardLegendsView.js","sourcesContent":["import { ArrowLegendsView } from \"./components/ArrowLegendView\";\nimport { SpecificTargetLegendsView } from \"./components/SpecificTargetLegendsView\";\nimport { LegendView } from \"./components/LegendView\";\nimport { useScorecardConfig } from \"../ConfigProvider\";\nimport { memo } from \"react\";\nimport { useScorecardViewOptionValue } from \"../../state\";\n\nexport const ScorecardLegendsView = memo(function ScorecardLegendsView() {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config!.legendDefinitions;\n\tconst showLegends = useScorecardViewOptionValue(\"legend\");\n\n\tif (!showLegends) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: \"0 16px\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t\tgridTemplateColumns: `repeat(${legendDefinitions.length}, auto)`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legendDefinitions.map((item) => (\n\t\t\t\t\t<LegendView legend={item} key={item.id} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tjustifySelf: \"flex-end\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<ArrowLegendsView />\n\t\t\t\t\t<SpecificTargetLegendsView />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardLegendsView/ScorecardLegendsView.tsx"],"names":["memo","ScorecardLegendsView","useScorecardConfig","useScorecardViewStateValue","jsxs","jsx","LegendView","ArrowLegendsView","SpecificTargetLegendsView"],"mappings":";;;;;;;;;;AAOa,MAAA,oBAAA,GAAuBA,UAAK,CAAA,SAASC,qBAAuB,GAAA;AACxE,EAAA,MAAM,SAASC,iCAAmB,EAAA;AAClC,EAAA,MAAM,oBAAoB,MAAQ,CAAA,iBAAA;AAClC,EAAM,MAAA,WAAA,GAAcC,qCAAoC,QAAQ,CAAA;AAEhE,EAAA,IAAI,CAAC,WAAa,EAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAGR,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,GAAK,EAAA,EAAA;AAAA,QACL,OAAS,EAAA,QAAA;AAAA,QACT,OAAS,EAAA,MAAA;AAAA,QACT,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA;AAAA,OACjB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,OAAS,EAAA,MAAA;AAAA,cACT,GAAK,EAAA,CAAA;AAAA,cACL,mBAAA,EAAqB,CAAU,OAAA,EAAA,iBAAA,CAAkB,MAAM,CAAA,OAAA;AAAA,aACxD;AAAA,YAEC,QAAA,EAAA,iBAAA,CAAkB,GAAI,CAAA,CAAC,IACvB,qBAAAA,cAAA,CAACC,yBAAW,MAAQ,EAAA,IAAA,EAAA,EAAW,IAAK,CAAA,EAAI,CACxC;AAAA;AAAA,SACF;AAAA,uCACC,KACA,EAAA,EAAA,QAAA,kBAAAF,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAO,EAAA;AAAA,cACN,GAAK,EAAA,EAAA;AAAA,cACL,WAAa,EAAA,UAAA;AAAA,cACb,OAAS,EAAA,MAAA;AAAA,cACT,UAAY,EAAA,QAAA;AAAA,cACZ,cAAgB,EAAA;AAAA,aACjB;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAACE,gCAAiB,EAAA,EAAA,CAAA;AAAA,6CACjBC,mDAA0B,EAAA,EAAA;AAAA;AAAA;AAAA,SAE7B,EAAA;AAAA;AAAA;AAAA,GACD;AAEF,CAAC","file":"ScorecardLegendsView.js","sourcesContent":["import { ArrowLegendsView } from \"./components/ArrowLegendView\";\nimport { SpecificTargetLegendsView } from \"./components/SpecificTargetLegendsView\";\nimport { LegendView } from \"./components/LegendView\";\nimport { useScorecardConfig } from \"../ConfigProvider\";\nimport { memo } from \"react\";\nimport { useScorecardViewStateValue } from \"../../utils/viewState\";\n\nexport const ScorecardLegendsView = memo(function ScorecardLegendsView() {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config!.legendDefinitions;\n\tconst showLegends = useScorecardViewStateValue<boolean>(\"legend\");\n\n\tif (!showLegends) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tgap: 16,\n\t\t\t\tpadding: \"0 16px\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t\tgridTemplateColumns: `repeat(${legendDefinitions.length}, auto)`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legendDefinitions.map((item) => (\n\t\t\t\t\t<LegendView legend={item} key={item.id} />\n\t\t\t\t))}\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tjustifySelf: \"flex-end\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<ArrowLegendsView />\n\t\t\t\t\t<SpecificTargetLegendsView />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n});\n"]}
@@ -3,14 +3,14 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var ui = require('@dhis2/ui');
5
5
  var i18n = require('@dhis2/d2-i18n');
6
- var state = require('../../../state');
6
+ var viewState = require('../../../utils/viewState');
7
7
 
8
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
 
10
10
  var i18n__default = /*#__PURE__*/_interopDefault(i18n);
11
11
 
12
- function ArrowLegendsView(props) {
13
- const showArrows = state.useScorecardViewOptionValue("arrows");
12
+ function ArrowLegendsView() {
13
+ const showArrows = viewState.useScorecardViewStateValue("arrows");
14
14
  if (!showArrows) {
15
15
  return null;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/ArrowLegendView.tsx"],"names":["useScorecardViewOptionValue","jsxs","jsx","IconArrowUp24","i18n","IconArrowDown24"],"mappings":";;;;;;;;;;;AAIO,SAAS,iBAAiB,KAAY,EAAA;AAC5C,EAAM,MAAA,UAAA,GAAaA,kCAA4B,QAAQ,CAAA;AAEvD,EAAA,IAAI,CAAC,UAAY,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAGR,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,GAAA,EAAK,IAAI,OAAS,EAAA,MAAA,EAAQ,qBAAqB,SAAU,EAAA;AAAA,MAElE,QAAA,EAAA;AAAA,wBAACA,eAAA,CAAA,KAAA,EAAA,EAAI,OAAO,EAAE,GAAA,EAAK,GAAG,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,EAClD,EAAA,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,gBAAc,EAAA,EAAA,CAAA;AAAA,UACdC,qBAAA,CAAK,EAAE,4BAA4B;AAAA,SACrC,EAAA,CAAA;AAAA,wBACAH,eAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,GAAA,EAAK,GAAG,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,EAClD,EAAA,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACG,kBAAgB,EAAA,EAAA,CAAA;AAAA,UAChBD,qBAAA,CAAK,EAAE,4BAA4B;AAAA,SACrC,EAAA;AAAA;AAAA;AAAA,GACD;AAEF","file":"ArrowLegendView.js","sourcesContent":["import { IconArrowDown24, IconArrowUp24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardViewOptionValue } from \"../../../state\";\n\nexport function ArrowLegendsView(props: any) {\n\tconst showArrows = useScorecardViewOptionValue(\"arrows\");\n\n\tif (!showArrows) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ gap: 16, display: \"grid\", gridTemplateColumns: \"1fr 1fr\" }}\n\t\t>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowUp24 />\n\t\t\t\t{i18n.t(\"Increased from last period\")}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowDown24 />\n\t\t\t\t{i18n.t(\"Decreased from last period\")}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardLegendsView/components/ArrowLegendView.tsx"],"names":["useScorecardViewStateValue","jsxs","jsx","IconArrowUp24","i18n","IconArrowDown24"],"mappings":";;;;;;;;;;;AAIO,SAAS,gBAAmB,GAAA;AAClC,EAAM,MAAA,UAAA,GAAaA,qCAAoC,QAAQ,CAAA;AAE/D,EAAA,IAAI,CAAC,UAAY,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAGR,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,GAAA,EAAK,IAAI,OAAS,EAAA,MAAA,EAAQ,qBAAqB,SAAU,EAAA;AAAA,MAElE,QAAA,EAAA;AAAA,wBAACA,eAAA,CAAA,KAAA,EAAA,EAAI,OAAO,EAAE,GAAA,EAAK,GAAG,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,EAClD,EAAA,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,gBAAc,EAAA,EAAA,CAAA;AAAA,UACdC,qBAAA,CAAK,EAAE,4BAA4B;AAAA,SACrC,EAAA,CAAA;AAAA,wBACAH,eAAA,CAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,GAAA,EAAK,GAAG,OAAS,EAAA,MAAA,EAAQ,UAAY,EAAA,QAAA,EAClD,EAAA,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACG,kBAAgB,EAAA,EAAA,CAAA;AAAA,UAChBD,qBAAA,CAAK,EAAE,4BAA4B;AAAA,SACrC,EAAA;AAAA;AAAA;AAAA,GACD;AAEF","file":"ArrowLegendView.js","sourcesContent":["import { IconArrowDown24, IconArrowUp24 } from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { useScorecardViewStateValue } from \"../../../utils/viewState\";\n\nexport function ArrowLegendsView() {\n\tconst showArrows = useScorecardViewStateValue<boolean>(\"arrows\");\n\n\tif (!showArrows) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{ gap: 16, display: \"grid\", gridTemplateColumns: \"1fr 1fr\" }}\n\t\t>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowUp24 />\n\t\t\t\t{i18n.t(\"Increased from last period\")}\n\t\t\t</div>\n\t\t\t<div style={{ gap: 8, display: \"flex\", alignItems: \"center\" }}>\n\t\t\t\t<IconArrowDown24 />\n\t\t\t\t{i18n.t(\"Decreased from last period\")}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -10,58 +10,53 @@ var ScorecardHeader = require('../../ScorecardHeader');
10
10
  var ScorecardLegendsView = require('../../ScorecardLegendsView');
11
11
  var StateProvider = require('../../StateProvider');
12
12
  var ConfigProvider = require('../../ConfigProvider');
13
- var recoil = require('recoil');
14
- var state = require('../../../state');
15
13
  require('../print.css');
14
+ var viewState = require('../../../utils/viewState');
15
+ var dimensionState = require('../../../utils/dimensionState');
16
16
 
17
17
  const ScorecardPreviewArea = react.memo(function ScorecardPreviewArea2({
18
18
  previewRef
19
19
  }) {
20
20
  const config = ConfigProvider.useScorecardConfig();
21
- const state$1 = recoil.useRecoilValue(state.scorecardStateAtom);
21
+ const options = viewState.useScorecardViewOptions();
22
+ const periodSelection = dimensionState.usePeriodSelectionValue();
23
+ const orgUnitSelection = dimensionState.useOrgUnitSelectionValue();
22
24
  const updatedState = {
23
- ...state$1 ?? {},
25
+ periodSelection,
26
+ orgUnitSelection,
24
27
  options: {
25
- ...state$1?.options ?? {},
28
+ ...options ?? {},
26
29
  disableExpanding: true,
27
30
  disablePagination: true,
28
31
  printMode: true
29
32
  }
30
33
  };
31
- return /* @__PURE__ */ jsxRuntime.jsx(
32
- StateProvider.ScorecardStateProvider,
34
+ return /* @__PURE__ */ jsxRuntime.jsx(StateProvider.ScorecardStateProvider, { initialState: updatedState, config, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "none" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
35
+ "div",
33
36
  {
34
- withRecoilRoot: true,
35
- initialState: updatedState,
36
- config,
37
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { display: "none" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
38
- "div",
39
- {
40
- className: "print-preview",
41
- style: {
42
- height: "100%",
43
- display: "flex",
44
- gap: 16,
45
- flexDirection: "column"
46
- },
47
- ref: previewRef,
48
- children: [
49
- /* @__PURE__ */ jsxRuntime.jsx(ScorecardHeader.ScorecardHeader, {}),
50
- /* @__PURE__ */ jsxRuntime.jsx(ScorecardLegendsView.ScorecardLegendsView, {}),
51
- /* @__PURE__ */ jsxRuntime.jsx(TableStateProvider.TableStateProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactDnd.DndProvider, { backend: reactDndHtml5Backend.HTML5Backend, children: /* @__PURE__ */ jsxRuntime.jsx(
52
- ScorecardTable.ScorecardTable,
53
- {
54
- layout: "fixed",
55
- scrollHeight: "100%",
56
- scrollWidth: "100%",
57
- width: "100%"
58
- }
59
- ) }) })
60
- ]
61
- }
62
- ) })
37
+ className: "print-preview",
38
+ style: {
39
+ height: "100%",
40
+ display: "flex",
41
+ gap: 16,
42
+ flexDirection: "column"
43
+ },
44
+ ref: previewRef,
45
+ children: [
46
+ /* @__PURE__ */ jsxRuntime.jsx(ScorecardHeader.ScorecardHeader, {}),
47
+ /* @__PURE__ */ jsxRuntime.jsx(ScorecardLegendsView.ScorecardLegendsView, {}),
48
+ /* @__PURE__ */ jsxRuntime.jsx(TableStateProvider.TableStateProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(reactDnd.DndProvider, { backend: reactDndHtml5Backend.HTML5Backend, children: /* @__PURE__ */ jsxRuntime.jsx(
49
+ ScorecardTable.ScorecardTable,
50
+ {
51
+ layout: "fixed",
52
+ scrollHeight: "100%",
53
+ scrollWidth: "100%",
54
+ width: "100%"
55
+ }
56
+ ) }) })
57
+ ]
63
58
  }
64
- );
59
+ ) }) });
65
60
  });
66
61
 
67
62
  exports.ScorecardPreviewArea = ScorecardPreviewArea;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":["memo","ScorecardPreviewArea","useScorecardConfig","state","useRecoilValue","scorecardStateAtom","jsx","ScorecardStateProvider","jsxs","ScorecardHeader","ScorecardLegendsView","TableStateProvider","DndProvider","HTML5Backend","ScorecardTable"],"mappings":";;;;;;;;;;;;;;;;AAca,MAAA,oBAAA,GAAuBA,UAAK,CAAA,SAASC,qBAAqB,CAAA;AAAA,EACtE;AACD,CAEG,EAAA;AACF,EAAA,MAAM,SAASC,iCAAmB,EAAA;AAClC,EAAM,MAAAC,OAAA,GAAQC,sBAAeC,wBAAkB,CAAA;AAE/C,EAAA,MAAM,YAAe,GAAA;AAAA,IACpB,GAAIF,WAAS,EAAC;AAAA,IACd,OAAS,EAAA;AAAA,MACR,GAAIA,OAAO,EAAA,OAAA,IAAW,EAAC;AAAA,MACvB,gBAAkB,EAAA,IAAA;AAAA,MAClB,iBAAmB,EAAA,IAAA;AAAA,MACnB,SAAW,EAAA;AAAA;AACZ,GACD;AAEA,EACC,uBAAAG,cAAA;AAAA,IAACC,oCAAA;AAAA,IAAA;AAAA,MACA,cAAc,EAAA,IAAA;AAAA,MACd,YAAc,EAAA,YAAA;AAAA,MACd,MAAA;AAAA,MAEA,yCAAC,KAAI,EAAA,EAAA,KAAA,EAAO,EAAE,OAAA,EAAS,QACtB,EAAA,QAAA,kBAAAC,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACA,SAAU,EAAA,eAAA;AAAA,UACV,KAAO,EAAA;AAAA,YACN,MAAQ,EAAA,MAAA;AAAA,YACR,OAAS,EAAA,MAAA;AAAA,YACT,GAAK,EAAA,EAAA;AAAA,YACL,aAAe,EAAA;AAAA,WAChB;AAAA,UACA,GAAK,EAAA,UAAA;AAAA,UAEL,QAAA,EAAA;AAAA,4BAAAF,cAAA,CAACG,+BAAgB,EAAA,EAAA,CAAA;AAAA,2CAChBC,yCAAqB,EAAA,EAAA,CAAA;AAAA,4BACrBJ,cAAA,CAAAK,qCAAA,EAAA,EACA,QAAC,kBAAAL,cAAA,CAAAM,oBAAA,EAAA,EAAY,SAASC,iCACrB,EAAA,QAAA,kBAAAP,cAAA;AAAA,cAACQ,6BAAA;AAAA,cAAA;AAAA,gBACA,MAAO,EAAA,OAAA;AAAA,gBACP,YAAa,EAAA,MAAA;AAAA,gBACb,WAAY,EAAA,MAAA;AAAA,gBACZ,KAAM,EAAA;AAAA;AAAA,eAER,CACD,EAAA;AAAA;AAAA;AAAA,OAEF,EAAA;AAAA;AAAA,GACD;AAEF,CAAC","file":"ScorecardPreviewArea.js","sourcesContent":["import React, { memo, type RefObject } from \"react\";\nimport { TableStateProvider } from \"../../TableStateProvider\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ScorecardTable } from \"../../ScorecardTable\";\nimport { ScorecardHeader } from \"../../ScorecardHeader\";\nimport { ScorecardLegendsView } from \"../../ScorecardLegendsView\";\nimport { ScorecardStateProvider } from \"../../StateProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport { useRecoilValue } from \"recoil\";\nimport { scorecardStateAtom } from \"../../../state\";\nimport type { ScorecardState } from \"../../../schemas/config\";\nimport \"../print.css\";\n\nexport const ScorecardPreviewArea = memo(function ScorecardPreviewArea({\n\tpreviewRef,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n}) {\n\tconst config = useScorecardConfig();\n\tconst state = useRecoilValue(scorecardStateAtom);\n\n\tconst updatedState = {\n\t\t...(state ?? {}),\n\t\toptions: {\n\t\t\t...(state?.options ?? {}),\n\t\t\tdisableExpanding: true,\n\t\t\tdisablePagination: true,\n\t\t\tprintMode: true,\n\t\t},\n\t} as ScorecardState;\n\n\treturn (\n\t\t<ScorecardStateProvider\n\t\t\twithRecoilRoot\n\t\t\tinitialState={updatedState}\n\t\t\tconfig={config}\n\t\t>\n\t\t\t<div style={{ display: \"none\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"print-preview\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t}}\n\t\t\t\t\tref={previewRef}\n\t\t\t\t>\n\t\t\t\t\t<ScorecardHeader />\n\t\t\t\t\t<ScorecardLegendsView />\n\t\t\t\t\t<TableStateProvider>\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<ScorecardTable\n\t\t\t\t\t\t\t\tlayout=\"fixed\"\n\t\t\t\t\t\t\t\tscrollHeight=\"100%\"\n\t\t\t\t\t\t\t\tscrollWidth=\"100%\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t</TableStateProvider>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ScorecardStateProvider>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardPrint/components/ScorecardPreviewArea.tsx"],"names":["memo","ScorecardPreviewArea","useScorecardConfig","useScorecardViewOptions","usePeriodSelectionValue","useOrgUnitSelectionValue","jsx","ScorecardStateProvider","jsxs","ScorecardHeader","ScorecardLegendsView","TableStateProvider","DndProvider","HTML5Backend","ScorecardTable"],"mappings":";;;;;;;;;;;;;;;;AAiBa,MAAA,oBAAA,GAAuBA,UAAK,CAAA,SAASC,qBAAqB,CAAA;AAAA,EACtE;AACD,CAEG,EAAA;AACF,EAAA,MAAM,SAASC,iCAAmB,EAAA;AAClC,EAAA,MAAM,UAAUC,iCAAwB,EAAA;AACxC,EAAA,MAAM,kBAAkBC,sCAAwB,EAAA;AAChD,EAAA,MAAM,mBAAmBC,uCAAyB,EAAA;AAElD,EAAA,MAAM,YAAe,GAAA;AAAA,IACpB,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACR,GAAI,WAAW,EAAC;AAAA,MAChB,gBAAkB,EAAA,IAAA;AAAA,MAClB,iBAAmB,EAAA,IAAA;AAAA,MACnB,SAAW,EAAA;AAAA;AACZ,GACD;AAEA,EACC,uBAAAC,cAAA,CAACC,oCAAuB,EAAA,EAAA,YAAA,EAAc,YAAc,EAAA,MAAA,EACnD,QAAC,kBAAAD,cAAA,CAAA,KAAA,EAAA,EAAI,KAAO,EAAA,EAAE,OAAS,EAAA,MAAA,EACtB,EAAA,QAAA,kBAAAE,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAU,EAAA,eAAA;AAAA,MACV,KAAO,EAAA;AAAA,QACN,MAAQ,EAAA,MAAA;AAAA,QACR,OAAS,EAAA,MAAA;AAAA,QACT,GAAK,EAAA,EAAA;AAAA,QACL,aAAe,EAAA;AAAA,OAChB;AAAA,MACA,GAAK,EAAA,UAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAAF,cAAA,CAACG,+BAAgB,EAAA,EAAA,CAAA;AAAA,uCAChBC,yCAAqB,EAAA,EAAA,CAAA;AAAA,wBACrBJ,cAAA,CAAAK,qCAAA,EAAA,EACA,QAAC,kBAAAL,cAAA,CAAAM,oBAAA,EAAA,EAAY,SAASC,iCACrB,EAAA,QAAA,kBAAAP,cAAA;AAAA,UAACQ,6BAAA;AAAA,UAAA;AAAA,YACA,MAAO,EAAA,OAAA;AAAA,YACP,YAAa,EAAA,MAAA;AAAA,YACb,WAAY,EAAA,MAAA;AAAA,YACZ,KAAM,EAAA;AAAA;AAAA,WAER,CACD,EAAA;AAAA;AAAA;AAAA,KAEF,CACD,EAAA,CAAA;AAEF,CAAC","file":"ScorecardPreviewArea.js","sourcesContent":["import React, { memo, type RefObject } from \"react\";\nimport { TableStateProvider } from \"../../TableStateProvider\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport { ScorecardTable } from \"../../ScorecardTable\";\nimport { ScorecardHeader } from \"../../ScorecardHeader\";\nimport { ScorecardLegendsView } from \"../../ScorecardLegendsView\";\nimport { ScorecardStateProvider } from \"../../StateProvider\";\nimport { useScorecardConfig } from \"../../ConfigProvider\";\nimport type { ScorecardState } from \"../../../schemas/config\";\nimport \"../print.css\";\nimport { useScorecardViewOptions } from \"../../../utils/viewState\";\nimport {\n\tuseOrgUnitSelectionValue,\n\tusePeriodSelectionValue,\n} from \"../../../utils/dimensionState\";\n\nexport const ScorecardPreviewArea = memo(function ScorecardPreviewArea({\n\tpreviewRef,\n}: {\n\tpreviewRef: RefObject<HTMLDivElement>;\n}) {\n\tconst config = useScorecardConfig();\n\tconst options = useScorecardViewOptions();\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst orgUnitSelection = useOrgUnitSelectionValue();\n\n\tconst updatedState = {\n\t\tperiodSelection,\n\t\torgUnitSelection,\n\t\toptions: {\n\t\t\t...(options ?? {}),\n\t\t\tdisableExpanding: true,\n\t\t\tdisablePagination: true,\n\t\t\tprintMode: true,\n\t\t},\n\t} as ScorecardState;\n\n\treturn (\n\t\t<ScorecardStateProvider initialState={updatedState} config={config}>\n\t\t\t<div style={{ display: \"none\" }}>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"print-preview\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\tgap: 16,\n\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t}}\n\t\t\t\t\tref={previewRef}\n\t\t\t\t>\n\t\t\t\t\t<ScorecardHeader />\n\t\t\t\t\t<ScorecardLegendsView />\n\t\t\t\t\t<TableStateProvider>\n\t\t\t\t\t\t<DndProvider backend={HTML5Backend}>\n\t\t\t\t\t\t\t<ScorecardTable\n\t\t\t\t\t\t\t\tlayout=\"fixed\"\n\t\t\t\t\t\t\t\tscrollHeight=\"100%\"\n\t\t\t\t\t\t\t\tscrollWidth=\"100%\"\n\t\t\t\t\t\t\t\twidth=\"100%\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</DndProvider>\n\t\t\t\t\t</TableStateProvider>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ScorecardStateProvider>\n\t);\n});\n"]}
@@ -8,25 +8,23 @@ var TableFoot = require('./components/TableFoot');
8
8
  var react = require('react');
9
9
  var PaginatedToolbar = require('./components/PaginatedToolbar');
10
10
  var reactDnd = require('react-dnd');
11
- var state = require('../../state');
12
11
  var ColGroup = require('../ColGroup');
12
+ var StateProvider = require('../StateProvider');
13
13
 
14
14
  const ScorecardTable = react.memo(function TableComponent(props) {
15
15
  const tableRef = react.useRef(null);
16
16
  const manager = reactDnd.useDragDropManager();
17
17
  const [isPending, startTransition] = react.useTransition();
18
- const setState = state.useSetScorecardStateSelector([
19
- "options",
20
- "showDataInRows"
21
- ]);
18
+ const viewStateEngine = StateProvider.useScorecardViewStateEngine();
22
19
  react.useEffect(() => {
23
20
  return manager.getMonitor().subscribeToStateChange(() => {
24
21
  const dropResult = manager.getMonitor().getDropResult();
25
22
  if (dropResult) {
26
23
  startTransition(() => {
27
- setState((prevState) => {
28
- return !prevState;
29
- });
24
+ viewStateEngine.updateOption(
25
+ "showDataInRows",
26
+ !viewStateEngine.options.showDataInRows
27
+ );
30
28
  });
31
29
  }
32
30
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ScorecardTable/ScorecardTable.tsx"],"names":["memo","useRef","useDragDropManager","useTransition","useSetScorecardStateSelector","useEffect","jsx","CircularLoader","jsxs","DataTable","ColGroup","TableHeader","TableBody","TableFoot","PaginatedToolbar"],"mappings":";;;;;;;;;;;;;AAYO,MAAM,cAAiB,GAAAA,UAAA,CAAK,SAAS,cAAA,CAC3C,KACC,EAAA;AACD,EAAM,MAAA,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM,UAAUC,2BAAmB,EAAA;AACnC,EAAA,MAAM,CAAC,SAAA,EAAW,eAAe,CAAA,GAAIC,mBAAc,EAAA;AACnD,EAAA,MAAM,WAAWC,kCAA6B,CAAA;AAAA,IAC7C,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,OAAO,OAAQ,CAAA,UAAA,EAAa,CAAA,sBAAA,CAAuB,MAAM;AACxD,MAAA,MAAM,UAAa,GAAA,OAAA,CAAQ,UAAW,EAAA,CAAE,aAAc,EAAA;AACtD,MAAA,IAAI,UAAY,EAAA;AACf,QAAA,eAAA,CAAgB,MAAM;AACrB,UAAA,QAAA,CAAS,CAAC,SAAuB,KAAA;AAChC,YAAA,OAAO,CAAC,SAAA;AAAA,WACR,CAAA;AAAA,SACD,CAAA;AAAA;AACF,KACA,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,SAAW,EAAA;AACd,IACC,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACN,MAAQ,EAAA,MAAA;AAAA,UACR,KAAO,EAAA,MAAA;AAAA,UACP,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA;AAAA,SACjB;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAACC,iBAAe,EAAA,EAAA,KAAA,EAAK,IAAC,EAAA;AAAA;AAAA,KACvB;AAAA;AAIF,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,KAAA,EAAO,KAAM,CAAA,KAAA,IAAS,KAAM,CAAA,WAAA;AAAA,QAC5B,QAAQ,KAAM,CAAA;AAAA,OACf;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA;AAAA,UAACC,YAAA;AAAA,UAAA;AAAA,YACA,MAAO,EAAA,MAAA;AAAA,YACN,GAAG,KAAA;AAAA,YAEJ,GAAK,EAAA,QAAA;AAAA,YAEL,QAAA,EAAA;AAAA,8BAAAH,cAAA,CAACI,iBAAS,EAAA,EAAA,CAAA;AAAA,6CACTC,uBAAY,EAAA,EAAA,CAAA;AAAA,8BACbL,cAAA,CAACM,uBAAU,QAAoB,EAAA,CAAA;AAAA,6CAC9BC,mBAAU,EAAA,EAAA;AAAA;AAAA;AAAA,SACZ;AAAA,uCACCC,iCAAiB,EAAA,EAAA;AAAA;AAAA;AAAA,GACnB;AAEF,CAAC","file":"ScorecardTable.js","sourcesContent":["import { CircularLoader, DataTable, type DataTableProps } from \"@dhis2/ui\";\nimport { TableHeader } from \"./components/TableHeader\";\nimport { TableBody } from \"./components/TableBody\";\nimport { TableFoot } from \"./components/TableFoot\";\nimport { memo, useEffect, useRef, useTransition } from \"react\";\nimport { PaginatedToolbar } from \"./components/PaginatedToolbar\";\nimport { useDragDropManager } from \"react-dnd\";\nimport { useSetScorecardStateSelector } from \"../../state\";\nimport { ColGroup } from \"../ColGroup\";\n\nexport interface ScorecardTableProps extends Omit<DataTableProps, \"children\"> {}\n\nexport const ScorecardTable = memo(function TableComponent(\n\tprops: ScorecardTableProps,\n) {\n\tconst tableRef = useRef<HTMLTableElement>(null);\n\tconst manager = useDragDropManager();\n\tconst [isPending, startTransition] = useTransition();\n\tconst setState = useSetScorecardStateSelector([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tuseEffect(() => {\n\t\treturn manager.getMonitor().subscribeToStateChange(() => {\n\t\t\tconst dropResult = manager.getMonitor().getDropResult();\n\t\t\tif (dropResult) {\n\t\t\t\tstartTransition(() => {\n\t\t\t\t\tsetState((prevState: boolean) => {\n\t\t\t\t\t\treturn !prevState;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}, [manager]);\n\n\tif (isPending) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: props.width ?? props.scrollWidth,\n\t\t\t\theight: props.scrollHeight,\n\t\t\t}}\n\t\t>\n\t\t\t<DataTable\n\t\t\t\tlayout=\"auto\"\n\t\t\t\t{...props} /*\n // @ts-ignore */\n\t\t\t\tref={tableRef}\n\t\t\t>\n\t\t\t\t<ColGroup />\n\t\t\t\t<TableHeader />\n\t\t\t\t<TableBody tableRef={tableRef} />\n\t\t\t\t<TableFoot />\n\t\t\t</DataTable>\n\t\t\t<PaginatedToolbar />\n\t\t</div>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../src/components/ScorecardTable/ScorecardTable.tsx"],"names":["memo","useRef","useDragDropManager","useTransition","useScorecardViewStateEngine","useEffect","jsx","CircularLoader","jsxs","DataTable","ColGroup","TableHeader","TableBody","TableFoot","PaginatedToolbar"],"mappings":";;;;;;;;;;;;;AAYO,MAAM,cAAiB,GAAAA,UAAA,CAAK,SAAS,cAAA,CAC3C,KACC,EAAA;AACD,EAAM,MAAA,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM,UAAUC,2BAAmB,EAAA;AACnC,EAAA,MAAM,CAAC,SAAA,EAAW,eAAe,CAAA,GAAIC,mBAAc,EAAA;AACnD,EAAA,MAAM,kBAAkBC,yCAA4B,EAAA;AAEpD,EAAAC,eAAA,CAAU,MAAM;AACf,IAAA,OAAO,OAAQ,CAAA,UAAA,EAAa,CAAA,sBAAA,CAAuB,MAAM;AACxD,MAAA,MAAM,UAAa,GAAA,OAAA,CAAQ,UAAW,EAAA,CAAE,aAAc,EAAA;AACtD,MAAA,IAAI,UAAY,EAAA;AACf,QAAA,eAAA,CAAgB,MAAM;AACrB,UAAgB,eAAA,CAAA,YAAA;AAAA,YACf,gBAAA;AAAA,YACA,CAAC,gBAAgB,OAAQ,CAAA;AAAA,WAC1B;AAAA,SACA,CAAA;AAAA;AACF,KACA,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,IAAI,SAAW,EAAA;AACd,IACC,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACN,MAAQ,EAAA,MAAA;AAAA,UACR,KAAO,EAAA,MAAA;AAAA,UACP,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA;AAAA,SACjB;AAAA,QAEA,QAAA,kBAAAA,cAAA,CAACC,iBAAe,EAAA,EAAA,KAAA,EAAK,IAAC,EAAA;AAAA;AAAA,KACvB;AAAA;AAIF,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,KAAA,EAAO,KAAM,CAAA,KAAA,IAAS,KAAM,CAAA,WAAA;AAAA,QAC5B,QAAQ,KAAM,CAAA;AAAA,OACf;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA;AAAA,UAACC,YAAA;AAAA,UAAA;AAAA,YACA,MAAO,EAAA,MAAA;AAAA,YACN,GAAG,KAAA;AAAA,YAEJ,GAAK,EAAA,QAAA;AAAA,YAEL,QAAA,EAAA;AAAA,8BAAAH,cAAA,CAACI,iBAAS,EAAA,EAAA,CAAA;AAAA,6CACTC,uBAAY,EAAA,EAAA,CAAA;AAAA,8BACbL,cAAA,CAACM,uBAAU,QAAoB,EAAA,CAAA;AAAA,6CAC9BC,mBAAU,EAAA,EAAA;AAAA;AAAA;AAAA,SACZ;AAAA,uCACCC,iCAAiB,EAAA,EAAA;AAAA;AAAA;AAAA,GACnB;AAEF,CAAC","file":"ScorecardTable.js","sourcesContent":["import { CircularLoader, DataTable, type DataTableProps } from \"@dhis2/ui\";\nimport { TableHeader } from \"./components/TableHeader\";\nimport { TableBody } from \"./components/TableBody\";\nimport { TableFoot } from \"./components/TableFoot\";\nimport { memo, useEffect, useRef, useTransition } from \"react\";\nimport { PaginatedToolbar } from \"./components/PaginatedToolbar\";\nimport { useDragDropManager } from \"react-dnd\";\nimport { ColGroup } from \"../ColGroup\";\nimport { useScorecardViewStateEngine } from \"../StateProvider\";\n\nexport interface ScorecardTableProps extends Omit<DataTableProps, \"children\"> {}\n\nexport const ScorecardTable = memo(function TableComponent(\n\tprops: ScorecardTableProps,\n) {\n\tconst tableRef = useRef<HTMLTableElement>(null);\n\tconst manager = useDragDropManager();\n\tconst [isPending, startTransition] = useTransition();\n\tconst viewStateEngine = useScorecardViewStateEngine();\n\n\tuseEffect(() => {\n\t\treturn manager.getMonitor().subscribeToStateChange(() => {\n\t\t\tconst dropResult = manager.getMonitor().getDropResult();\n\t\t\tif (dropResult) {\n\t\t\t\tstartTransition(() => {\n\t\t\t\t\tviewStateEngine.updateOption(\n\t\t\t\t\t\t\"showDataInRows\",\n\t\t\t\t\t\t!viewStateEngine.options.showDataInRows,\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}, [manager]);\n\n\tif (isPending) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\theight: \"100%\",\n\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<CircularLoader small />\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: props.width ?? props.scrollWidth,\n\t\t\t\theight: props.scrollHeight,\n\t\t\t}}\n\t\t>\n\t\t\t<DataTable\n\t\t\t\tlayout=\"auto\"\n\t\t\t\t{...props} /*\n // @ts-ignore */\n\t\t\t\tref={tableRef}\n\t\t\t>\n\t\t\t\t<ColGroup />\n\t\t\t\t<TableHeader />\n\t\t\t\t<TableBody tableRef={tableRef} />\n\t\t\t\t<TableFoot />\n\t\t\t</DataTable>\n\t\t\t<PaginatedToolbar />\n\t\t</div>\n\t);\n});\n"]}
@@ -9,7 +9,7 @@ var legends = require('../../../utils/legends');
9
9
  var LinkedCell = require('./LinkedCell');
10
10
  var value = require('../../../hooks/value');
11
11
  var CellLoader = require('./CellLoader');
12
- var state = require('../../../state');
12
+ var viewState = require('../../../utils/viewState');
13
13
 
14
14
  function SingleAverageCell({
15
15
  dataSource,
@@ -152,10 +152,7 @@ function OrgUnitAverageCell(props) {
152
152
  );
153
153
  }
154
154
  function AverageCell(props) {
155
- const showDataInRows = state.useScorecardStateSelectorValue([
156
- "options",
157
- "showDataInRows"
158
- ]);
155
+ const showDataInRows = viewState.useScorecardViewStateValue("showDataInRows");
159
156
  if (showDataInRows) {
160
157
  return /* @__PURE__ */ jsxRuntime.jsx(DataSourceAverageCell, { ...props });
161
158
  }
@@ -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","useScorecardStateSelectorValue"],"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 { useScorecardStateSelectorValue } from \"../../../state\";\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 = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\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/viewState\";\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"]}
@@ -7,7 +7,7 @@ var DataProvider = require('../../DataProvider');
7
7
  var lodash = require('lodash');
8
8
  var CellLoader = require('./CellLoader');
9
9
  var AverageCell = require('./AverageCell');
10
- var state = require('../../../state');
10
+ var viewState = require('../../../utils/viewState');
11
11
 
12
12
  function getOrgUnitAverage({
13
13
  dataSourcesConfig,
@@ -123,10 +123,7 @@ function DataFooterCell({
123
123
  column
124
124
  }) {
125
125
  const size = column.getSize();
126
- const showDataInRows = state.useScorecardStateSelectorValue([
127
- "options",
128
- "showDataInRows"
129
- ]);
126
+ const showDataInRows = viewState.useScorecardViewStateValue("showDataInRows");
130
127
  const dataSourceConfig = react.useMemo(() => {
131
128
  return table.getRowModel().rows.map(
132
129
  (row) => row.getValue(column.id)
@@ -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","useScorecardStateSelectorValue","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 { useScorecardStateSelectorValue } from \"../../../state\";\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 = useScorecardStateSelectorValue<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"]}
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"]}
@@ -3,17 +3,14 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var ui = require('@dhis2/ui');
5
5
  var react = require('react');
6
- var state = require('../../../state');
6
+ var viewState = require('../../../utils/viewState');
7
7
 
8
8
  const DataValue = react.memo(function DataValue2({
9
9
  dataSource,
10
10
  value,
11
11
  bold
12
12
  }) {
13
- const showArrows = state.useScorecardStateSelectorValue([
14
- "options",
15
- "arrows"
16
- ]);
13
+ const showArrows = viewState.useScorecardViewStateValue("arrows");
17
14
  const currentValue = dataSource.data.current;
18
15
  const previousValue = dataSource.data.previous;
19
16
  const showArrow = react.useMemo(() => {
@@ -32,8 +29,8 @@ const DataValue = react.memo(function DataValue2({
32
29
  return;
33
30
  }
34
31
  return currentValue > previousValue ? "increasing" : "decreasing";
35
- }, [currentValue, dataSource.effectiveGap, showArrows]);
36
- if (value) {
32
+ }, [currentValue, dataSource.effectiveGap, showArrows, previousValue]);
33
+ if (value && !dataSource.data.current) {
37
34
  if (isNaN(value)) {
38
35
  return "";
39
36
  }
@@ -62,7 +59,7 @@ const DataValue = react.memo(function DataValue2({
62
59
  children: [
63
60
  showArrow === "decreasing" && /* @__PURE__ */ jsxRuntime.jsx(ui.IconArrowDown16, {}),
64
61
  showArrow === "increasing" && /* @__PURE__ */ jsxRuntime.jsx(ui.IconArrowUp16, {}),
65
- currentValue?.toFixed(2).toString() ?? ""
62
+ bold ? /* @__PURE__ */ jsxRuntime.jsx("b", { children: currentValue?.toFixed(2).toString() ?? "" }) : currentValue?.toFixed(2).toString() ?? ""
66
63
  ]
67
64
  }
68
65
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScorecardTable/components/DataValue.tsx"],"names":["memo","DataValue","useScorecardStateSelectorValue","useMemo","jsx","jsxs","IconArrowDown16","IconArrowUp16"],"mappings":";;;;;;;AAKa,MAAA,SAAA,GAAYA,UAAK,CAAA,SAASC,UAAU,CAAA;AAAA,EAChD,UAAA;AAAA,EACA,KAAA;AAAA,EACA;AACD,CAIG,EAAA;AACF,EAAA,MAAM,aAAaC,oCAAwC,CAAA;AAAA,IAC1D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAM,MAAA,YAAA,GAAe,WAAW,IAAK,CAAA,OAAA;AACrC,EAAM,MAAA,aAAA,GAAgB,WAAW,IAAK,CAAA,QAAA;AACtC,EAAM,MAAA,SAAA,GAAqDC,cAAQ,MAAM;AACxE,IAAA,IAAI,CAAC,UAAY,EAAA;AAChB,MAAA;AAAA;AAGD,IAAI,IAAA,CAAC,aAAiB,IAAA,CAAC,YAAc,EAAA;AACpC,MAAA;AAAA;AAGD,IAAA,MAAM,eAAe,UAAW,CAAA,YAAA;AAChC,IAAA,MAAM,GAAM,GAAA,IAAA,CAAK,GAAI,CAAA,aAAA,GAAgB,YAAY,CAAA;AACjD,IAAA,IAAI,MAAM,YAAc,EAAA;AACvB,MAAA;AAAA;AAGD,IAAA,IAAI,kBAAkB,YAAc,EAAA;AACnC,MAAA;AAAA;AAGD,IAAO,OAAA,YAAA,GAAe,gBAAgB,YAAe,GAAA,YAAA;AAAA,KACnD,CAAC,YAAA,EAAc,UAAW,CAAA,YAAA,EAAc,UAAU,CAAC,CAAA;AAEtD,EAAA,IAAI,KAAO,EAAA;AACV,IAAI,IAAA,KAAA,CAAM,KAAe,CAAG,EAAA;AAC3B,MAAO,OAAA,EAAA;AAAA;AAER,IACC,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACN,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA,QAAA;AAAA,UAChB,GAAK,EAAA;AAAA,SACN;AAAA,QAEC,iCACCA,cAAA,CAAA,GAAA,EAAA,EAAG,QAAO,EAAA,KAAA,EAAA,OAAA,CAAQ,CAAC,CAAE,CAAA,QAAA,EAAc,IAAA,EAAA,EAAG,IAEvC,KAAO,EAAA,OAAA,CAAQ,CAAC,CAAA,CAAE,UAAc,IAAA;AAAA;AAAA,KAElC;AAAA;AAIF,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,QAAA;AAAA,QAChB,GAAK,EAAA;AAAA,OACN;AAAA,MAEC,QAAA,EAAA;AAAA,QAAc,SAAA,KAAA,YAAA,mCAAiBC,kBAAgB,EAAA,EAAA,CAAA;AAAA,QAC/C,SAAA,KAAc,YAAgB,oBAAAF,cAAA,CAACG,gBAAc,EAAA,EAAA,CAAA;AAAA,QAC7C,YAAc,EAAA,OAAA,CAAQ,CAAC,CAAA,CAAE,UAAc,IAAA;AAAA;AAAA;AAAA,GACzC;AAEF,CAAC","file":"DataValue.js","sourcesContent":["import { IconArrowDown16, IconArrowUp16 } from \"@dhis2/ui\";\nimport { memo, useMemo } from \"react\";\nimport type { ScorecardCellData } from \"../../../schemas/config\";\nimport { useScorecardStateSelectorValue } from \"../../../state\";\n\nexport const DataValue = memo(function DataValue({\n\tdataSource,\n\tvalue,\n\tbold,\n}: {\n\tdataSource: ScorecardCellData;\n\tvalue?: number;\n\tbold?: boolean;\n}) {\n\tconst showArrows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"arrows\",\n\t]);\n\tconst currentValue = dataSource.data.current;\n\tconst previousValue = dataSource.data.previous;\n\tconst showArrow: \"decreasing\" | \"increasing\" | undefined = useMemo(() => {\n\t\tif (!showArrows) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!previousValue || !currentValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst effectiveGap = dataSource.effectiveGap;\n\t\tconst gap = Math.abs(previousValue - currentValue);\n\t\tif (gap < effectiveGap) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousValue === currentValue) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn currentValue > previousValue ? \"increasing\" : \"decreasing\";\n\t}, [currentValue, dataSource.effectiveGap, showArrows]);\n\n\tif (value) {\n\t\tif (isNaN(value as number)) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\tgap: 4,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{bold ? (\n\t\t\t\t\t<b>{value?.toFixed(2).toString() ?? \"\"}</b>\n\t\t\t\t) : (\n\t\t\t\t\tvalue?.toFixed(2).toString() ?? \"\"\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 2,\n\t\t\t}}\n\t\t>\n\t\t\t{showArrow === \"decreasing\" && <IconArrowDown16 />}\n\t\t\t{showArrow === \"increasing\" && <IconArrowUp16 />}\n\t\t\t{currentValue?.toFixed(2).toString() ?? \"\"}\n\t\t</div>\n\t);\n});\n"]}
1
+ {"version":3,"sources":["../../../../src/components/ScorecardTable/components/DataValue.tsx"],"names":["memo","DataValue","useScorecardViewStateValue","useMemo","jsx","jsxs","IconArrowDown16","IconArrowUp16"],"mappings":";;;;;;;AAKa,MAAA,SAAA,GAAYA,UAAK,CAAA,SAASC,UAAU,CAAA;AAAA,EAChD,UAAA;AAAA,EACA,KAAA;AAAA,EACA;AACD,CAIG,EAAA;AACF,EAAM,MAAA,UAAA,GAAaC,qCAAoC,QAAQ,CAAA;AAC/D,EAAM,MAAA,YAAA,GAAe,WAAW,IAAK,CAAA,OAAA;AACrC,EAAM,MAAA,aAAA,GAAgB,WAAW,IAAK,CAAA,QAAA;AACtC,EAAM,MAAA,SAAA,GAAqDC,cAAQ,MAAM;AACxE,IAAA,IAAI,CAAC,UAAY,EAAA;AAChB,MAAA;AAAA;AAGD,IAAI,IAAA,CAAC,aAAiB,IAAA,CAAC,YAAc,EAAA;AACpC,MAAA;AAAA;AAGD,IAAA,MAAM,eAAe,UAAW,CAAA,YAAA;AAChC,IAAA,MAAM,GAAM,GAAA,IAAA,CAAK,GAAI,CAAA,aAAA,GAAgB,YAAY,CAAA;AACjD,IAAA,IAAI,MAAM,YAAc,EAAA;AACvB,MAAA;AAAA;AAGD,IAAA,IAAI,kBAAkB,YAAc,EAAA;AACnC,MAAA;AAAA;AAGD,IAAO,OAAA,YAAA,GAAe,gBAAgB,YAAe,GAAA,YAAA;AAAA,KACnD,CAAC,YAAA,EAAc,WAAW,YAAc,EAAA,UAAA,EAAY,aAAa,CAAC,CAAA;AAErE,EAAA,IAAI,KAAS,IAAA,CAAC,UAAW,CAAA,IAAA,CAAK,OAAS,EAAA;AACtC,IAAI,IAAA,KAAA,CAAM,KAAe,CAAG,EAAA;AAC3B,MAAO,OAAA,EAAA;AAAA;AAER,IACC,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACN,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,QAAA;AAAA,UACZ,cAAgB,EAAA,QAAA;AAAA,UAChB,GAAK,EAAA;AAAA,SACN;AAAA,QAEC,iCACCA,cAAA,CAAA,GAAA,EAAA,EAAG,QAAO,EAAA,KAAA,EAAA,OAAA,CAAQ,CAAC,CAAE,CAAA,QAAA,EAAc,IAAA,EAAA,EAAG,IAEtC,KAAO,EAAA,OAAA,CAAQ,CAAC,CAAA,CAAE,UAAc,IAAA;AAAA;AAAA,KAEnC;AAAA;AAIF,EACC,uBAAAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,UAAY,EAAA,QAAA;AAAA,QACZ,cAAgB,EAAA,QAAA;AAAA,QAChB,GAAK,EAAA;AAAA,OACN;AAAA,MAEC,QAAA,EAAA;AAAA,QAAc,SAAA,KAAA,YAAA,mCAAiBC,kBAAgB,EAAA,EAAA,CAAA;AAAA,QAC/C,SAAA,KAAc,YAAgB,oBAAAF,cAAA,CAACG,gBAAc,EAAA,EAAA,CAAA;AAAA,QAC7C,uBACCH,cAAA,CAAA,GAAA,EAAA,EAAG,QAAc,EAAA,YAAA,EAAA,OAAA,CAAQ,CAAC,CAAE,CAAA,QAAA,EAAc,IAAA,EAAA,EAAG,IAE7C,YAAc,EAAA,OAAA,CAAQ,CAAC,CAAA,CAAE,UAAc,IAAA;AAAA;AAAA;AAAA,GAE1C;AAEF,CAAC","file":"DataValue.js","sourcesContent":["import { IconArrowDown16, IconArrowUp16 } from \"@dhis2/ui\";\nimport { memo, useMemo } from \"react\";\nimport type { ScorecardCellData } from \"../../../schemas/config\";\nimport { useScorecardViewStateValue } from \"../../../utils/viewState\";\n\nexport const DataValue = memo(function DataValue({\n\tdataSource,\n\tvalue,\n\tbold,\n}: {\n\tdataSource: ScorecardCellData;\n\tvalue?: number;\n\tbold?: boolean;\n}) {\n\tconst showArrows = useScorecardViewStateValue<boolean>(\"arrows\");\n\tconst currentValue = dataSource.data.current;\n\tconst previousValue = dataSource.data.previous;\n\tconst showArrow: \"decreasing\" | \"increasing\" | undefined = useMemo(() => {\n\t\tif (!showArrows) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!previousValue || !currentValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst effectiveGap = dataSource.effectiveGap;\n\t\tconst gap = Math.abs(previousValue - currentValue);\n\t\tif (gap < effectiveGap) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (previousValue === currentValue) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn currentValue > previousValue ? \"increasing\" : \"decreasing\";\n\t}, [currentValue, dataSource.effectiveGap, showArrows, previousValue]);\n\n\tif (value && !dataSource.data.current) {\n\t\tif (isNaN(value as number)) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\talignItems: \"center\",\n\t\t\t\t\tjustifyContent: \"center\",\n\t\t\t\t\tgap: 4,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{bold ? (\n\t\t\t\t\t<b>{value?.toFixed(2).toString() ?? \"\"}</b>\n\t\t\t\t) : (\n\t\t\t\t\t(value?.toFixed(2).toString() ?? \"\")\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tjustifyContent: \"center\",\n\t\t\t\tgap: 2,\n\t\t\t}}\n\t\t>\n\t\t\t{showArrow === \"decreasing\" && <IconArrowDown16 />}\n\t\t\t{showArrow === \"increasing\" && <IconArrowUp16 />}\n\t\t\t{bold ? (\n\t\t\t\t<b>{currentValue?.toFixed(2).toString() ?? \"\"}</b>\n\t\t\t) : (\n\t\t\t\t(currentValue?.toFixed(2).toString() ?? \"\")\n\t\t\t)}\n\t\t</div>\n\t);\n});\n"]}
@@ -6,18 +6,20 @@ var react = require('react');
6
6
  var orgUnits = require('../../../utils/orgUnits');
7
7
  var ScorecardContext = require('../../ScorecardContext');
8
8
  var ui = require('@dhis2/ui');
9
- var state = require('../../../state');
10
9
  var TableStateProvider = require('../../TableStateProvider');
11
10
  var ScorecardTable = require('../ScorecardTable');
12
11
  var DataProvider = require('../../DataProvider');
13
12
  var StateProvider = require('../../StateProvider');
13
+ var dimensionState = require('../../../utils/dimensionState');
14
+ var viewState = require('../../../utils/viewState');
14
15
 
15
16
  function ExpandedScorecardTable({
16
17
  orgUnit,
17
18
  pending
18
19
  }) {
19
20
  const config = ConfigProvider.useScorecardConfig();
20
- const state$1 = state.useScorecardStateValue();
21
+ const periodSelection = dimensionState.usePeriodSelectionValue();
22
+ const options = viewState.useScorecardViewOptions();
21
23
  const orgUnitSelection = react.useMemo(() => {
22
24
  const orgUnitId = orgUnit.uid;
23
25
  const level = orgUnits.getOrgUnitLevel(orgUnit) + 1;
@@ -61,9 +63,9 @@ function ExpandedScorecardTable({
61
63
  ...config,
62
64
  orgUnitSelection
63
65
  },
64
- withRecoilRoot: true,
65
66
  initialState: {
66
- ...state$1,
67
+ ...options,
68
+ periodSelection,
67
69
  orgUnitSelection
68
70
  },
69
71
  children: /* @__PURE__ */ jsxRuntime.jsx(