@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.
- package/dist/Scorecard.js +2 -2
- package/dist/Scorecard.js.map +1 -1
- package/dist/components/ColGroup.js +3 -9
- package/dist/components/ColGroup.js.map +1 -1
- package/dist/components/ScorecardHeader.js +8 -7
- package/dist/components/ScorecardHeader.js.map +1 -1
- package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js +2 -2
- package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js +3 -3
- package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
- package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js +32 -37
- package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
- package/dist/components/ScorecardTable/ScorecardTable.js +6 -8
- package/dist/components/ScorecardTable/ScorecardTable.js.map +1 -1
- package/dist/components/ScorecardTable/components/AverageCell.js +2 -5
- package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataFooterCell.js +2 -5
- package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataValue.js +5 -8
- package/dist/components/ScorecardTable/components/DataValue.js.map +1 -1
- package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js +6 -4
- package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
- package/dist/components/ScorecardTable/components/LinkedCell.js +2 -2
- package/dist/components/ScorecardTable/components/LinkedCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableFoot.js +2 -5
- package/dist/components/ScorecardTable/components/TableFoot.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +4 -8
- package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +2 -5
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js +2 -5
- package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -13
- package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +4 -6
- package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
- package/dist/components/StateProvider.js +40 -27
- package/dist/components/StateProvider.js.map +1 -1
- package/dist/esm/Scorecard.js +1 -1
- package/dist/esm/Scorecard.js.map +1 -1
- package/dist/esm/components/ColGroup.js +3 -9
- package/dist/esm/components/ColGroup.js.map +1 -1
- package/dist/esm/components/ScorecardHeader.js +8 -7
- package/dist/esm/components/ScorecardHeader.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js +2 -2
- package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js +3 -3
- package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
- package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js +32 -37
- package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
- package/dist/esm/components/ScorecardTable/ScorecardTable.js +6 -8
- package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/AverageCell.js +2 -5
- package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +2 -5
- package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataValue.js +5 -8
- package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js +6 -4
- package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/LinkedCell.js +2 -2
- package/dist/esm/components/ScorecardTable/components/LinkedCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableFoot.js +2 -5
- package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +4 -8
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +2 -5
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js +2 -5
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -13
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +4 -6
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
- package/dist/esm/components/StateProvider.js +40 -29
- package/dist/esm/components/StateProvider.js.map +1 -1
- package/dist/esm/hooks/columns.js +8 -21
- package/dist/esm/hooks/columns.js.map +1 -1
- package/dist/esm/hooks/data.js +1 -1
- package/dist/esm/hooks/data.js.map +1 -1
- package/dist/esm/hooks/metadata.js +3 -7
- package/dist/esm/hooks/metadata.js.map +1 -1
- package/dist/esm/hooks/table.js +12 -34
- package/dist/esm/hooks/table.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/utils/dimensionState.js +133 -0
- package/dist/esm/utils/dimensionState.js.map +1 -0
- package/dist/esm/utils/viewState.js +85 -0
- package/dist/esm/utils/viewState.js.map +1 -0
- package/dist/hooks/columns.js +8 -21
- package/dist/hooks/columns.js.map +1 -1
- package/dist/hooks/data.js +1 -1
- package/dist/hooks/data.js.map +1 -1
- package/dist/hooks/metadata.js +3 -7
- package/dist/hooks/metadata.js.map +1 -1
- package/dist/hooks/table.js +12 -34
- package/dist/hooks/table.js.map +1 -1
- package/dist/index.js +0 -7
- package/dist/types/components/ColGroup.d.ts.map +1 -1
- package/dist/types/components/ScorecardHeader.d.ts.map +1 -1
- package/dist/types/components/ScorecardLegendsView/components/ArrowLegendView.d.ts +1 -1
- package/dist/types/components/ScorecardLegendsView/components/ArrowLegendView.d.ts.map +1 -1
- package/dist/types/components/ScorecardPrint/components/ScorecardPreviewArea.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/ScorecardTable.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/AverageCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/DataValue.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/ExpandedScorecardTable.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableFoot.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts.map +1 -1
- package/dist/types/components/StateProvider.d.ts +34 -2
- package/dist/types/components/StateProvider.d.ts.map +1 -1
- package/dist/types/hooks/columns.d.ts.map +1 -1
- package/dist/types/hooks/metadata.d.ts.map +1 -1
- package/dist/types/hooks/table.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils/dimensionState.d.ts +62 -0
- package/dist/types/utils/dimensionState.d.ts.map +1 -0
- package/dist/types/utils/viewState.d.ts +34 -0
- package/dist/types/utils/viewState.d.ts.map +1 -0
- package/dist/utils/dimensionState.js +139 -0
- package/dist/utils/dimensionState.js.map +1 -0
- package/dist/utils/viewState.js +90 -0
- package/dist/utils/viewState.js.map +1 -0
- package/package.json +7 -8
- package/dist/esm/hooks/period.js +0 -13
- package/dist/esm/hooks/period.js.map +0 -1
- package/dist/esm/state/index.js +0 -53
- package/dist/esm/state/index.js.map +0 -1
- package/dist/esm/utils/engine.js +0 -18
- package/dist/esm/utils/engine.js.map +0 -1
- package/dist/hooks/period.js +0 -15
- package/dist/hooks/period.js.map +0 -1
- package/dist/state/index.js +0 -63
- package/dist/state/index.js.map +0 -1
- package/dist/types/hooks/period.d.ts +0 -2
- package/dist/types/hooks/period.d.ts.map +0 -1
- package/dist/types/state/index.d.ts +0 -109
- package/dist/types/state/index.d.ts.map +0 -1
- package/dist/types/utils/engine.d.ts +0 -14
- package/dist/types/utils/engine.d.ts.map +0 -1
- package/dist/utils/engine.js +0 -20
- 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
|
|
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(
|
|
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;
|
package/dist/Scorecard.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
4
|
+
var viewState = require('../utils/viewState');
|
|
5
5
|
|
|
6
6
|
function ColGroup() {
|
|
7
|
-
const inPrintMode =
|
|
8
|
-
|
|
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":["
|
|
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 =
|
|
20
|
-
const showTitle =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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","
|
|
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
|
|
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 =
|
|
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","
|
|
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
|
|
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(
|
|
13
|
-
const showArrows =
|
|
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":["
|
|
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
|
|
21
|
+
const options = viewState.useScorecardViewOptions();
|
|
22
|
+
const periodSelection = dimensionState.usePeriodSelectionValue();
|
|
23
|
+
const orgUnitSelection = dimensionState.useOrgUnitSelectionValue();
|
|
22
24
|
const updatedState = {
|
|
23
|
-
|
|
25
|
+
periodSelection,
|
|
26
|
+
orgUnitSelection,
|
|
24
27
|
options: {
|
|
25
|
-
...
|
|
28
|
+
...options ?? {},
|
|
26
29
|
disableExpanding: true,
|
|
27
30
|
disablePagination: true,
|
|
28
31
|
printMode: true
|
|
29
32
|
}
|
|
30
33
|
};
|
|
31
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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","
|
|
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
|
|
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
|
-
|
|
28
|
-
|
|
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","
|
|
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
|
|
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 =
|
|
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","
|
|
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
|
|
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 =
|
|
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","
|
|
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
|
|
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 =
|
|
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","
|
|
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
|
|
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
|
-
...
|
|
67
|
+
...options,
|
|
68
|
+
periodSelection,
|
|
67
69
|
orgUnitSelection
|
|
68
70
|
},
|
|
69
71
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|