@hisptz/dhis2-scorecard 1.2.30 → 1.2.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/LoadingIndicator.js +3 -5
- package/dist/components/LoadingIndicator.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/LegendView.js +86 -56
- package/dist/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js +7 -31
- package/dist/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js +16 -26
- package/dist/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js +4 -22
- package/dist/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
- package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js +6 -13
- package/dist/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
- package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js +6 -6
- package/dist/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
- package/dist/components/ScorecardTable/components/AverageCell.js +2 -2
- package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/AverageFooterCell.js +10 -32
- package/dist/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataContainer.js +4 -1
- package/dist/components/ScorecardTable/components/DataContainer.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataFooterCell.js +35 -71
- package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js +45 -0
- package/dist/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
- package/dist/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +37 -2
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js +78 -0
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js.map +1 -0
- package/dist/esm/components/LoadingIndicator.js +2 -4
- package/dist/esm/components/LoadingIndicator.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/LegendView.js +86 -52
- package/dist/esm/components/ScorecardLegendsView/components/LegendView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js +7 -27
- package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js +16 -22
- package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js +4 -18
- package/dist/esm/components/ScorecardLegendsView/components/PeriodSpecificTargetView.js.map +1 -1
- package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js +4 -11
- package/dist/esm/components/ScorecardPrint/components/ScorecardDownloadButton.js.map +1 -1
- package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js +6 -6
- package/dist/esm/components/ScorecardTable/FurtherAnalysisVisualization.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/AverageCell.js +2 -2
- package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js +11 -33
- package/dist/esm/components/ScorecardTable/components/AverageFooterCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataContainer.js +4 -1
- package/dist/esm/components/ScorecardTable/components/DataContainer.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +36 -72
- package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js +45 -0
- package/dist/esm/components/ScorecardTable/components/FurtherAnalysisMenu.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/FurtherAnalysisModal.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +39 -4
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js +72 -0
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js.map +1 -0
- package/dist/esm/hooks/completed.js +13 -0
- package/dist/esm/hooks/completed.js.map +1 -0
- package/dist/esm/hooks/table.js +35 -45
- package/dist/esm/hooks/table.js.map +1 -1
- package/dist/esm/hooks/value.js +51 -101
- package/dist/esm/hooks/value.js.map +1 -1
- package/dist/esm/schemas/config.js +4 -0
- package/dist/esm/schemas/config.js.map +1 -1
- package/dist/esm/utils/columns.js +15 -5
- package/dist/esm/utils/columns.js.map +1 -1
- package/dist/esm/utils/dataEngine.js +128 -83
- package/dist/esm/utils/dataEngine.js.map +1 -1
- package/dist/hooks/completed.js +15 -0
- package/dist/hooks/completed.js.map +1 -0
- package/dist/hooks/table.js +43 -53
- package/dist/hooks/table.js.map +1 -1
- package/dist/hooks/value.js +49 -98
- package/dist/hooks/value.js.map +1 -1
- package/dist/schemas/config.js +4 -0
- package/dist/schemas/config.js.map +1 -1
- package/dist/types/components/LoadingIndicator.d.ts.map +1 -1
- package/dist/types/components/ScorecardLegendsView/components/LegendView.d.ts +1 -1
- package/dist/types/components/ScorecardLegendsView/components/LegendView.d.ts.map +1 -1
- package/dist/types/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.d.ts.map +1 -1
- package/dist/types/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.d.ts.map +1 -1
- package/dist/types/components/ScorecardLegendsView/components/PeriodSpecificTargetView.d.ts.map +1 -1
- package/dist/types/components/ScorecardPrint/components/ScorecardDownloadButton.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/FurtherAnalysisVisualization.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/AverageFooterCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/DataContainer.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/FurtherAnalysisMenu.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/FurtherAnalysisModal.d.ts +10 -0
- package/dist/types/components/ScorecardTable/components/FurtherAnalysisModal.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/DataHeaderLegendView.d.ts +13 -0
- package/dist/types/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.d.ts.map +1 -0
- package/dist/types/hooks/completed.d.ts +2 -0
- package/dist/types/hooks/completed.d.ts.map +1 -0
- package/dist/types/hooks/table.d.ts.map +1 -1
- package/dist/types/hooks/value.d.ts +9 -3
- package/dist/types/hooks/value.d.ts.map +1 -1
- package/dist/types/schemas/config.d.ts +18 -0
- package/dist/types/schemas/config.d.ts.map +1 -1
- package/dist/types/utils/columns.d.ts.map +1 -1
- package/dist/types/utils/dataEngine.d.ts +16 -12
- package/dist/types/utils/dataEngine.d.ts.map +1 -1
- package/dist/utils/columns.js +15 -5
- package/dist/utils/columns.js.map +1 -1
- package/dist/utils/dataEngine.js +127 -82
- package/dist/utils/dataEngine.js.map +1 -1
- package/package.json +5 -5
|
@@ -7,6 +7,10 @@ var i18n = require('@dhis2/d2-i18n');
|
|
|
7
7
|
var DraggableCell = require('../../DraggableCell');
|
|
8
8
|
var DroppableCell = require('../../DroppableCell');
|
|
9
9
|
var utils = require('../../../../../utils');
|
|
10
|
+
var usehooksTs = require('usehooks-ts');
|
|
11
|
+
var react = require('react');
|
|
12
|
+
var DataHeaderLegendView = require('./DataHeaderLegendView');
|
|
13
|
+
var lodash = require('lodash');
|
|
10
14
|
|
|
11
15
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
16
|
|
|
@@ -19,16 +23,33 @@ function EmptyDataHeaderCell({
|
|
|
19
23
|
const colSpan = header.colSpan.toString();
|
|
20
24
|
return /* @__PURE__ */ jsxRuntime.jsx(ui.DataTableColumnHeader, { colSpan });
|
|
21
25
|
}
|
|
26
|
+
function SpecificTargetsIndicator({
|
|
27
|
+
legends
|
|
28
|
+
}) {
|
|
29
|
+
const hasSpecificTargets = legends?.some(
|
|
30
|
+
({ specificTargetsSet }) => specificTargetsSet === true
|
|
31
|
+
);
|
|
32
|
+
return hasSpecificTargets ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
33
|
+
ui.Tooltip,
|
|
34
|
+
{
|
|
35
|
+
content: i18n__default.default.t("This data item has specific targets configured"),
|
|
36
|
+
children: "*"
|
|
37
|
+
}
|
|
38
|
+
) : null;
|
|
39
|
+
}
|
|
22
40
|
function DataHeaderCellComponent({
|
|
23
41
|
column,
|
|
24
42
|
header
|
|
25
43
|
}) {
|
|
26
44
|
const dataInRows = utils.useScorecardViewStateValue("showDataInRows");
|
|
45
|
+
const labelRef = react.useRef(null);
|
|
27
46
|
const label = header.column.columnDef.meta.label ?? column.columnDef.meta.label;
|
|
28
47
|
const bold = header.column.columnDef.meta.bold ?? column.columnDef.meta.bold;
|
|
29
48
|
const colSpan = header.colSpan.toString();
|
|
49
|
+
const { value: openLegendView, toggle: toggleLegendView } = usehooksTs.useBoolean(false);
|
|
30
50
|
const sortDirection = !column?.getIsSorted() ? "default" : column.getIsSorted();
|
|
31
51
|
const nextSortType = column?.getNextSortingOrder() === "asc" ? i18n__default.default.t("in ascending order") : column?.getNextSortingOrder() === "desc" ? i18n__default.default.t("in descending order") : i18n__default.default.t("disable");
|
|
52
|
+
const legends = header.column.columnDef.meta?.legends;
|
|
32
53
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
33
54
|
ui.DataTableColumnHeader,
|
|
34
55
|
{
|
|
@@ -46,12 +67,26 @@ function DataHeaderCellComponent({
|
|
|
46
67
|
DroppableCell__default.default,
|
|
47
68
|
{
|
|
48
69
|
accept: dataInRows ? [config.ScorecardDraggableItems.data] : [config.ScorecardDraggableItems.ou],
|
|
49
|
-
children: /* @__PURE__ */ jsxRuntime.
|
|
70
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
50
71
|
DraggableCell.DraggableCell,
|
|
51
72
|
{
|
|
52
73
|
id: label,
|
|
53
74
|
type: dataInRows ? config.ScorecardDraggableItems.ou : config.ScorecardDraggableItems.data,
|
|
54
|
-
children:
|
|
75
|
+
children: [
|
|
76
|
+
openLegendView && !lodash.isEmpty(legends) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
77
|
+
DataHeaderLegendView.DataHeaderLegendView,
|
|
78
|
+
{
|
|
79
|
+
legends,
|
|
80
|
+
reference: labelRef,
|
|
81
|
+
onClose: toggleLegendView
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
bold ? /* @__PURE__ */ jsxRuntime.jsx("b", { children: label }) : /* @__PURE__ */ jsxRuntime.jsxs("span", { onClick: toggleLegendView, ref: labelRef, children: [
|
|
85
|
+
label,
|
|
86
|
+
" ",
|
|
87
|
+
/* @__PURE__ */ jsxRuntime.jsx(SpecificTargetsIndicator, { legends })
|
|
88
|
+
] })
|
|
89
|
+
]
|
|
55
90
|
}
|
|
56
91
|
)
|
|
57
92
|
}
|
package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":["jsx","DataTableColumnHeader","
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.tsx"],"names":["jsx","DataTableColumnHeader","Tooltip","i18n","useScorecardViewStateValue","useRef","useBoolean","DroppableCell","ScorecardDraggableItems","jsxs","DraggableCell","isEmpty","DataHeaderLegendView"],"mappings":"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","file":"DataHeaderCell.js","sourcesContent":["import type { HeaderContext } from \"@tanstack/react-table\";\nimport {\n\tScorecardDraggableItems,\n\ttype ScorecardLegend,\n\ttype ScorecardTableData,\n} from \"../../../../../schemas/config\";\nimport {\n\tDataTableColumnHeader,\n\ttype DataTableSortDirection,\n\tTooltip,\n} from \"@dhis2/ui\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { DraggableCell } from \"../../DraggableCell\";\nimport DroppableCell from \"../../DroppableCell\";\nimport { useScorecardViewStateValue } from \"../../../../../utils\";\nimport { useBoolean } from \"usehooks-ts\";\nimport { useRef } from \"react\";\nimport { DataHeaderLegendView } from \"./DataHeaderLegendView\";\nimport { isEmpty } from \"lodash\";\n\nexport function EmptyDataHeaderCell({\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst colSpan = header.colSpan.toString();\n\treturn <DataTableColumnHeader colSpan={colSpan} />;\n}\n\nfunction SpecificTargetsIndicator({\n\tlegends,\n}: {\n\tlegends?: Array<{ specificTargetsSet?: boolean | undefined }>;\n}) {\n\tconst hasSpecificTargets = legends?.some(\n\t\t({ specificTargetsSet }) => specificTargetsSet === true,\n\t);\n\treturn hasSpecificTargets ? (\n\t\t<Tooltip\n\t\t\tcontent={i18n.t(\"This data item has specific targets configured\")}\n\t\t>\n\t\t\t*\n\t\t</Tooltip>\n\t) : null;\n}\n\nexport function DataHeaderCellComponent({\n\tcolumn,\n\theader,\n}: HeaderContext<ScorecardTableData, any>) {\n\tconst dataInRows = useScorecardViewStateValue<boolean>(\"showDataInRows\");\n\tconst labelRef = useRef<HTMLElement>(null);\n\tconst label =\n\t\t(\n\t\t\theader.column.columnDef.meta as {\n\t\t\t\tlabel: string;\n\t\t\t\tlegends: { id: string };\n\t\t\t}\n\t\t).label ?? (column.columnDef.meta as { label: string }).label;\n\n\tconst bold =\n\t\t(header.column.columnDef.meta as { bold?: boolean }).bold ??\n\t\t(column.columnDef.meta as { bold?: boolean }).bold;\n\n\tconst colSpan = header.colSpan.toString();\n\tconst { value: openLegendView, toggle: toggleLegendView } =\n\t\tuseBoolean(false);\n\n\tconst sortDirection = !column?.getIsSorted()\n\t\t? \"default\"\n\t\t: (column!.getIsSorted() as DataTableSortDirection);\n\tconst nextSortType =\n\t\tcolumn?.getNextSortingOrder() === \"asc\"\n\t\t\t? i18n.t(\"in ascending order\")\n\t\t\t: column?.getNextSortingOrder() === \"desc\"\n\t\t\t\t? i18n.t(\"in descending order\")\n\t\t\t\t: i18n.t(\"disable\");\n\n\tconst legends = (\n\t\theader.column.columnDef.meta as {\n\t\t\tlegends: Array<{\n\t\t\t\tid: string;\n\t\t\t\tlabel: string;\n\t\t\t\tlegends: ScorecardLegend[];\n\t\t\t\tspecificTargetsSet?: boolean;\n\t\t\t}>;\n\t\t}\n\t)?.legends;\n\n\treturn (\n\t\t<DataTableColumnHeader\n\t\t\tkey={`${label}`}\n\t\t\tsortIconTitle={i18n.t(\"Sort {{nextSortType}}\", { nextSortType })}\n\t\t\tonSortIconClick={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? (_, e) => {\n\t\t\t\t\t\t\tconst sort = column!.getToggleSortingHandler();\n\t\t\t\t\t\t\tif (sort) {\n\t\t\t\t\t\t\t\tsort(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tsortDirection={\n\t\t\t\theader.column?.getCanSort() || column.getCanSort()\n\t\t\t\t\t? sortDirection\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\talign=\"center\"\n\t\t\tcolSpan={colSpan}\n\t\t>\n\t\t\t<DroppableCell\n\t\t\t\taccept={\n\t\t\t\t\tdataInRows\n\t\t\t\t\t\t? [ScorecardDraggableItems.data]\n\t\t\t\t\t\t: [ScorecardDraggableItems.ou]\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DraggableCell\n\t\t\t\t\tid={label}\n\t\t\t\t\ttype={\n\t\t\t\t\t\tdataInRows\n\t\t\t\t\t\t\t? ScorecardDraggableItems.ou\n\t\t\t\t\t\t\t: ScorecardDraggableItems.data\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{openLegendView && !isEmpty(legends) && (\n\t\t\t\t\t\t<DataHeaderLegendView\n\t\t\t\t\t\t\tlegends={legends}\n\t\t\t\t\t\t\treference={labelRef}\n\t\t\t\t\t\t\tonClose={toggleLegendView}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{bold ? (\n\t\t\t\t\t\t<b>{label}</b>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span onClick={toggleLegendView} ref={labelRef}>\n\t\t\t\t\t\t\t{label}{\" \"}\n\t\t\t\t\t\t\t<SpecificTargetsIndicator legends={legends} />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</DraggableCell>\n\t\t\t</DroppableCell>\n\t\t</DataTableColumnHeader>\n\t);\n}\n\nexport const DataHeaderCell = DataHeaderCellComponent;\n"]}
|
package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var ui = require('@dhis2/ui');
|
|
5
|
+
var LegendView = require('../../../../ScorecardLegendsView/components/LegendView');
|
|
6
|
+
var lodash = require('lodash');
|
|
7
|
+
var i18n = require('@dhis2/d2-i18n');
|
|
8
|
+
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var i18n__default = /*#__PURE__*/_interopDefault(i18n);
|
|
12
|
+
|
|
13
|
+
function DataHeaderLegendView({
|
|
14
|
+
legends,
|
|
15
|
+
reference,
|
|
16
|
+
onClose
|
|
17
|
+
}) {
|
|
18
|
+
if (lodash.isEmpty(legends)) return null;
|
|
19
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ui.Popover, { onClickOutside: onClose, reference, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
20
|
+
"div",
|
|
21
|
+
{
|
|
22
|
+
style: {
|
|
23
|
+
display: "flex",
|
|
24
|
+
gap: 16,
|
|
25
|
+
flexDirection: "column",
|
|
26
|
+
padding: 16
|
|
27
|
+
},
|
|
28
|
+
children: legends?.map(({ id, label, legends: legends2, specificTargetsSet }) => {
|
|
29
|
+
if (specificTargetsSet) {
|
|
30
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
31
|
+
"div",
|
|
32
|
+
{
|
|
33
|
+
style: {
|
|
34
|
+
display: "flex",
|
|
35
|
+
flexDirection: "column",
|
|
36
|
+
gap: 8
|
|
37
|
+
},
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsx("b", { style: { fontSize: 14 }, children: label }),
|
|
40
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41
|
+
"span",
|
|
42
|
+
{
|
|
43
|
+
style: {
|
|
44
|
+
color: ui.colors.grey700,
|
|
45
|
+
fontSize: 12
|
|
46
|
+
},
|
|
47
|
+
children: i18n__default.default.t(
|
|
48
|
+
"This data item has been configured with specific targets. Open the specific targets menu to learn more"
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
57
|
+
"div",
|
|
58
|
+
{
|
|
59
|
+
style: {
|
|
60
|
+
display: "flex",
|
|
61
|
+
flexDirection: "column",
|
|
62
|
+
gap: 8
|
|
63
|
+
},
|
|
64
|
+
children: [
|
|
65
|
+
/* @__PURE__ */ jsxRuntime.jsx("b", { style: { fontSize: 14 }, children: label }),
|
|
66
|
+
/* @__PURE__ */ jsxRuntime.jsx(LegendView.LegendsView, { legends: legends2 })
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
`${id}-legend-view`
|
|
70
|
+
);
|
|
71
|
+
})
|
|
72
|
+
}
|
|
73
|
+
) });
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
exports.DataHeaderLegendView = DataHeaderLegendView;
|
|
77
|
+
//# sourceMappingURL=DataHeaderLegendView.js.map
|
|
78
|
+
//# sourceMappingURL=DataHeaderLegendView.js.map
|
package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/components/ScorecardTable/components/TableHeader/components/DataHeaderLegendView.tsx"],"names":["isEmpty","jsx","Popover","legends","jsxs","colors","i18n","LegendsView"],"mappings":";;;;;;;;;;;;AAOO,SAAS,oBAAA,CAAqB;AAAA,EACpC,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACD,CAAA,EASG;AACF,EAAA,IAAIA,cAAA,CAAQ,OAAO,CAAA,EAAG,OAAO,IAAA;AAE7B,EAAA,uBACCC,cAAA,CAACC,UAAA,EAAA,EAAQ,cAAA,EAAgB,OAAA,EAAS,SAAA,EACjC,QAAA,kBAAAD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,OAAA,EAAS,MAAA;AAAA,QACT,GAAA,EAAK,EAAA;AAAA,QACL,aAAA,EAAe,QAAA;AAAA,QACf,OAAA,EAAS;AAAA,OACV;AAAA,MAEC,QAAA,EAAA,OAAA,EAAS,IAAI,CAAC,EAAE,IAAI,KAAA,EAAO,OAAA,EAAAE,QAAAA,EAAS,kBAAA,EAAmB,KAAM;AAC7D,QAAA,IAAI,kBAAA,EAAoB;AACvB,UAAA,uBACCC,eAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACA,KAAA,EAAO;AAAA,gBACN,OAAA,EAAS,MAAA;AAAA,gBACT,aAAA,EAAe,QAAA;AAAA,gBACf,GAAA,EAAK;AAAA,eACN;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAH,cAAA,CAAC,OAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAO,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,gCACnCA,cAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACA,KAAA,EAAO;AAAA,sBACN,OAAOI,SAAA,CAAO,OAAA;AAAA,sBACd,QAAA,EAAU;AAAA,qBACX;AAAA,oBAEC,QAAA,EAAAC,qBAAA,CAAK,CAAA;AAAA,sBACL;AAAA;AACD;AAAA;AACD;AAAA;AAAA,WACD;AAAA,QAEF;AAEA,QAAA,uBACCF,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,OAAA,EAAS,MAAA;AAAA,cACT,aAAA,EAAe,QAAA;AAAA,cACf,GAAA,EAAK;AAAA,aACN;AAAA,YAGA,QAAA,EAAA;AAAA,8BAAAH,cAAA,CAAC,OAAE,KAAA,EAAO,EAAE,QAAA,EAAU,EAAA,IAAO,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,8BACnCA,cAAA,CAACM,sBAAA,EAAA,EAAY,OAAA,EAASJ,QAAAA,EAAS;AAAA;AAAA,WAAA;AAAA,UAH1B,GAAG,EAAE,CAAA,YAAA;AAAA,SAIX;AAAA,MAEF,CAAC;AAAA;AAAA,GACF,EACD,CAAA;AAEF","file":"DataHeaderLegendView.js","sourcesContent":["import type { ScorecardLegend } from \"../../../../../schemas/config\";\nimport { colors, Popover } from \"@dhis2/ui\";\nimport type { RefObject } from \"react\";\nimport { LegendsView } from \"../../../../ScorecardLegendsView/components/LegendView\";\nimport { isEmpty } from \"lodash\";\nimport i18n from \"@dhis2/d2-i18n\";\n\nexport function DataHeaderLegendView({\n\tlegends,\n\treference,\n\tonClose,\n}: {\n\tlegends: Array<{\n\t\tid: string;\n\t\tlabel: string;\n\t\tlegends: Array<ScorecardLegend>;\n\t\tspecificTargetsSet?: boolean;\n\t}>;\n\treference: RefObject<HTMLElement>;\n\tonClose: () => void;\n}) {\n\tif (isEmpty(legends)) return null;\n\n\treturn (\n\t\t<Popover onClickOutside={onClose} reference={reference}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tgap: 16,\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tpadding: 16,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legends?.map(({ id, label, legends, specificTargetsSet }) => {\n\t\t\t\t\tif (specificTargetsSet) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<b style={{ fontSize: 14 }}>{label}</b>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\tcolor: colors.grey700,\n\t\t\t\t\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{i18n.t(\n\t\t\t\t\t\t\t\t\t\t\"This data item has been configured with specific targets. Open the specific targets menu to learn more\",\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tkey={`${id}-legend-view`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<b style={{ fontSize: 14 }}>{label}</b>\n\t\t\t\t\t\t\t<LegendsView legends={legends} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</Popover>\n\t);\n}\n"]}
|
|
@@ -4,19 +4,17 @@ import { DataTableRow, LinearLoader } from '@dhis2/ui';
|
|
|
4
4
|
import { useTableState } from './TableStateProvider';
|
|
5
5
|
import { memo, useState, useEffect } from 'react';
|
|
6
6
|
import styles from './ScorecardTable/ScorecardTable.module.css';
|
|
7
|
+
import { useScorecardLoadingCompleted } from '../hooks/completed';
|
|
7
8
|
|
|
8
9
|
const LoadingIndicator = memo(function LoadingIndicator2({
|
|
9
10
|
tableRef
|
|
10
11
|
}) {
|
|
11
12
|
const { data: dataEngine } = useScorecardData();
|
|
12
13
|
const [progress, setProgress] = useState(0);
|
|
13
|
-
const
|
|
14
|
+
const completed = useScorecardLoadingCompleted();
|
|
14
15
|
const table = useTableState();
|
|
15
16
|
const colSpan = table.getVisibleFlatColumns().length;
|
|
16
17
|
const width = tableRef.current?.parentElement?.getBoundingClientRect().width;
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
return dataEngine.addOnCompleteListener(setCompleted);
|
|
19
|
-
}, [dataEngine]);
|
|
20
18
|
useEffect(() => {
|
|
21
19
|
return dataEngine.addProgressListener((value) => {
|
|
22
20
|
setProgress(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/LoadingIndicator.tsx"],"names":["LoadingIndicator"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/LoadingIndicator.tsx"],"names":["LoadingIndicator"],"mappings":";;;;;;;;AAaO,MAAM,gBAAA,GAAmB,IAAA,CAAK,SAASA,iBAAAA,CAAiB;AAAA,EAC9D;AACD,CAAA,EAEG;AACF,EAAA,MAAM,EAAE,IAAA,EAAM,UAAA,EAAW,GAAI,gBAAA,EAAiB;AAC9C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAiB,CAAC,CAAA;AAClD,EAAA,MAAM,YAAY,4BAAA,EAA6B;AAC/C,EAAA,MAAM,QAAQ,aAAA,EAAc;AAC5B,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,qBAAA,EAAsB,CAAE,MAAA;AAE9C,EAAA,MAAM,KAAA,GACL,QAAA,CAAS,OAAA,EAAS,aAAA,EAAe,uBAAsB,CAAE,KAAA;AAE1D,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,OAAO,UAAA,CAAW,mBAAA,CAAoB,CAAC,KAAA,KAAU;AAChD,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IAClB,CAAC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,IAAI,QAAA,KAAa,CAAA,IAAK,KAAA,CAAM,QAAS,KAAK,SAAA,EAAW;AACpD,IAAA,OAAO,IAAA;AAAA,EACR;AACA,EAAA,2BACE,YAAA,EAAA,EACA,QAAA,kBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,OAAO,EAAE,QAAA,EAAU,UAAU,IAAA,EAAM,CAAA,EAAG,KAAK,CAAA,EAAE;AAAA,MAC7C,OAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAW,OAAO,QAAQ,CAAA;AAAA,UAC1B,MAAA,EAAQ,GAAA;AAAA,UACR,OAAO,KAAA,GAAQ,CAAA,EAAG,KAAK,KAAA,CAAM,KAAK,CAAC,CAAA,EAAA,CAAA,GAAO,MAAA;AAAA,UAC1C,MAAA,EAAA,CAAS,YAAY,CAAA,IAAK;AAAA;AAAA;AAC3B;AAAA,GACD,EACD,CAAA;AAEF,CAAC","file":"LoadingIndicator.js","sourcesContent":["import { useScorecardData } from \"./DataProvider\";\nimport { DataTableRow, LinearLoader } from \"@dhis2/ui\";\nimport { useTableState } from \"./TableStateProvider\";\nimport {\n\tmemo,\n\ttype RefObject,\n\tuseEffect,\n\tuseState,\n\tuseSyncExternalStore,\n} from \"react\";\nimport styles from \"./ScorecardTable/ScorecardTable.module.css\";\nimport { useScorecardLoadingCompleted } from \"../hooks/completed\";\n\nexport const LoadingIndicator = memo(function LoadingIndicator({\n\ttableRef,\n}: {\n\ttableRef: RefObject<HTMLTableElement>;\n}) {\n\tconst { data: dataEngine } = useScorecardData();\n\tconst [progress, setProgress] = useState<number>(0);\n\tconst completed = useScorecardLoadingCompleted();\n\tconst table = useTableState();\n\tconst colSpan = table.getVisibleFlatColumns().length;\n\n\tconst width =\n\t\ttableRef.current?.parentElement?.getBoundingClientRect().width;\n\n\tuseEffect(() => {\n\t\treturn dataEngine.addProgressListener((value) => {\n\t\t\tsetProgress(value);\n\t\t});\n\t}, [dataEngine]);\n\n\tif (progress === 1 || isNaN(progress!) || completed) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DataTableRow>\n\t\t\t<td\n\t\t\t\tstyle={{ position: \"static\", left: 0, top: 0 }}\n\t\t\t\tcolSpan={colSpan}\n\t\t\t>\n\t\t\t\t<LinearLoader\n\t\t\t\t\tclassName={styles[\"loader\"]}\n\t\t\t\t\tmargin={\"0\"}\n\t\t\t\t\twidth={width ? `${Math.trunc(width)}px` : \"100%\"}\n\t\t\t\t\tamount={(progress ?? 0) * 100}\n\t\t\t\t/>\n\t\t\t</td>\n\t\t</DataTableRow>\n\t);\n});\n"]}
|
|
@@ -1,63 +1,97 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import i18n from '@dhis2/d2-i18n';
|
|
3
|
-
import { find } from 'lodash';
|
|
4
2
|
import { useScorecardConfig } from '../../ConfigProvider';
|
|
3
|
+
import { colors } from '@dhis2/ui';
|
|
4
|
+
import { isEmpty } from 'lodash';
|
|
5
5
|
|
|
6
|
+
const formatNumber = Intl.NumberFormat("en-GB", {
|
|
7
|
+
notation: "standard"
|
|
8
|
+
}).format;
|
|
9
|
+
function LegendItem({
|
|
10
|
+
legend,
|
|
11
|
+
legendDefinitions
|
|
12
|
+
}) {
|
|
13
|
+
const legendDefinition = legendDefinitions.find(
|
|
14
|
+
({ id }) => id === legend.legendDefinitionId
|
|
15
|
+
);
|
|
16
|
+
if (!legendDefinition) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return /* @__PURE__ */ jsxs(
|
|
20
|
+
"div",
|
|
21
|
+
{
|
|
22
|
+
style: {
|
|
23
|
+
display: "flex",
|
|
24
|
+
gap: 8,
|
|
25
|
+
alignItems: "stretch",
|
|
26
|
+
width: "100%"
|
|
27
|
+
},
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ jsx(
|
|
30
|
+
"div",
|
|
31
|
+
{
|
|
32
|
+
style: {
|
|
33
|
+
alignSelf: "stretch",
|
|
34
|
+
backgroundColor: legendDefinition.color,
|
|
35
|
+
width: 8,
|
|
36
|
+
minHeight: "100%"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
),
|
|
40
|
+
/* @__PURE__ */ jsxs(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
style: {
|
|
44
|
+
display: "flex",
|
|
45
|
+
flexDirection: "column",
|
|
46
|
+
gap: 2
|
|
47
|
+
},
|
|
48
|
+
children: [
|
|
49
|
+
/* @__PURE__ */ jsx("span", { children: legendDefinition.name }),
|
|
50
|
+
/* @__PURE__ */ jsx(
|
|
51
|
+
"div",
|
|
52
|
+
{
|
|
53
|
+
style: {
|
|
54
|
+
display: "flex",
|
|
55
|
+
gap: 4,
|
|
56
|
+
fontSize: 11,
|
|
57
|
+
color: colors.grey600
|
|
58
|
+
},
|
|
59
|
+
children: /* @__PURE__ */ jsx("div", { className: "legend-item-label", children: `${formatNumber(+legend.startValue)} - ${formatNumber(+legend.endValue)}` })
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
)
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
6
69
|
function LegendsView({ legends }) {
|
|
7
70
|
const config = useScorecardConfig();
|
|
8
71
|
const legendDefinitions = config.legendDefinitions ?? [];
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
72
|
+
if (isEmpty(legends)) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
console.log(legends);
|
|
76
|
+
return /* @__PURE__ */ jsx(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
style: {
|
|
80
|
+
display: "flex",
|
|
81
|
+
flexDirection: "column",
|
|
82
|
+
gap: 8,
|
|
83
|
+
fontSize: 14
|
|
84
|
+
},
|
|
85
|
+
children: legends?.map((legend) => /* @__PURE__ */ jsx(
|
|
86
|
+
LegendItem,
|
|
24
87
|
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
children: [
|
|
29
|
-
/* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsxs(
|
|
30
|
-
"div",
|
|
31
|
-
{
|
|
32
|
-
style: {
|
|
33
|
-
display: "grid",
|
|
34
|
-
alignItems: "center",
|
|
35
|
-
gap: 8,
|
|
36
|
-
gridTemplateColumns: "32px 1fr"
|
|
37
|
-
},
|
|
38
|
-
children: [
|
|
39
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
40
|
-
"div",
|
|
41
|
-
{
|
|
42
|
-
style: {
|
|
43
|
-
height: 24,
|
|
44
|
-
width: 32,
|
|
45
|
-
background: legendDefinition?.color
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
) }),
|
|
49
|
-
/* @__PURE__ */ jsx("div", { children: legendDefinition?.name })
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
) }),
|
|
53
|
-
/* @__PURE__ */ jsx("td", { align: "center", children: legend?.startValue }),
|
|
54
|
-
/* @__PURE__ */ jsx("td", { align: "center", children: legend?.endValue })
|
|
55
|
-
]
|
|
88
|
+
legend,
|
|
89
|
+
legendDefinitions
|
|
56
90
|
},
|
|
57
|
-
|
|
58
|
-
)
|
|
59
|
-
}
|
|
60
|
-
|
|
91
|
+
legend.id
|
|
92
|
+
))
|
|
93
|
+
}
|
|
94
|
+
);
|
|
61
95
|
}
|
|
62
96
|
function LegendView({ legend }) {
|
|
63
97
|
const { color, name, id } = legend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ScorecardLegendsView/components/LegendView.tsx"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ScorecardLegendsView/components/LegendView.tsx"],"names":[],"mappings":"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","file":"LegendView.js","sourcesContent":["import { useScorecardConfig } from \"../../ConfigProvider\";\nimport type {\n\tLegendDefinition,\n\tScorecardLegend,\n} from \"../../../schemas/config\";\nimport { colors } from \"@dhis2/ui\";\nimport { isEmpty } from \"lodash\";\n\nexport interface LegendsViewProps {\n\tlegends: ScorecardLegend[];\n}\n\nconst formatNumber = Intl.NumberFormat(\"en-GB\", {\n\tnotation: \"standard\",\n}).format;\n\nfunction LegendItem({\n\tlegend,\n\tlegendDefinitions,\n}: {\n\tlegend: ScorecardLegend;\n\tlegendDefinitions: LegendDefinition[];\n}) {\n\tconst legendDefinition = legendDefinitions.find(\n\t\t({ id }) => id === legend.legendDefinitionId,\n\t);\n\tif (!legendDefinition) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tgap: 8,\n\t\t\t\talignItems: \"stretch\",\n\t\t\t\twidth: \"100%\",\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\talignSelf: \"stretch\",\n\t\t\t\t\tbackgroundColor: legendDefinition.color,\n\t\t\t\t\twidth: 8,\n\t\t\t\t\tminHeight: \"100%\",\n\t\t\t\t}}\n\t\t\t></div>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 2,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<span>{legendDefinition.name}</span>\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\tgap: 4,\n\t\t\t\t\t\tfontSize: 11,\n\t\t\t\t\t\tcolor: colors.grey600,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"legend-item-label\">{`${formatNumber(+legend.startValue)} - ${formatNumber(+legend.endValue)}`}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function LegendsView({ legends }: LegendsViewProps) {\n\tconst config = useScorecardConfig();\n\tconst legendDefinitions = config.legendDefinitions ?? [];\n\n\tif (isEmpty(legends)) {\n\t\treturn null;\n\t}\n\n\tconsole.log(legends);\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\tgap: 8,\n\t\t\t\tfontSize: 14,\n\t\t\t}}\n\t\t>\n\t\t\t{legends?.map((legend) => (\n\t\t\t\t<LegendItem\n\t\t\t\t\tkey={legend.id}\n\t\t\t\t\tlegend={legend}\n\t\t\t\t\tlegendDefinitions={legendDefinitions}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</div>\n\t);\n}\n\nexport interface LegendViewProps {\n\tlegend: LegendDefinition;\n}\n\nexport function LegendView({ legend }: LegendViewProps) {\n\tconst { color, name, id } = legend;\n\treturn (\n\t\t<div\n\t\t\tkey={id}\n\t\t\tstyle={{ display: \"grid\", gap: 8, gridTemplateColumns: \"auto 1fr\" }}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 25,\n\t\t\t\t\tbackground: color,\n\t\t\t\t\tborder: \"1px solid rgb(232, 237, 242)\",\n\t\t\t\t\tpadding: 16,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<p style={{ paddingLeft: 8, marginRight: 8 }}>{name}</p>\n\t\t</div>\n\t);\n}\n"]}
|
package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import i18n from '@dhis2/d2-i18n';
|
|
3
2
|
import { LegendsView } from './LegendView';
|
|
4
3
|
import { useScorecardMeta } from '../../MetaProvider';
|
|
5
4
|
import { colors } from '@dhis2/ui';
|
|
@@ -23,13 +22,7 @@ function OrgUnitLevelSpecificTargetView({
|
|
|
23
22
|
fontSize: 14
|
|
24
23
|
},
|
|
25
24
|
children: [
|
|
26
|
-
/* @__PURE__ */
|
|
27
|
-
/* @__PURE__ */ jsxs("b", { children: [
|
|
28
|
-
i18n.t("Data Source"),
|
|
29
|
-
": "
|
|
30
|
-
] }),
|
|
31
|
-
label
|
|
32
|
-
] }),
|
|
25
|
+
/* @__PURE__ */ jsx("div", { style: { fontSize: 16 }, children: /* @__PURE__ */ jsx("b", { children: label }) }),
|
|
33
26
|
/* @__PURE__ */ jsx(
|
|
34
27
|
"div",
|
|
35
28
|
{
|
|
@@ -47,29 +40,16 @@ function OrgUnitLevelSpecificTargetView({
|
|
|
47
40
|
"div",
|
|
48
41
|
{
|
|
49
42
|
style: {
|
|
50
|
-
border: `1px solid ${colors.
|
|
43
|
+
border: `1px solid ${colors.grey400}`,
|
|
51
44
|
padding: 16,
|
|
52
45
|
borderRadius: 4,
|
|
53
|
-
fontSize: 14
|
|
46
|
+
fontSize: 14,
|
|
47
|
+
display: "flex",
|
|
48
|
+
flexDirection: "column",
|
|
49
|
+
gap: 8
|
|
54
50
|
},
|
|
55
51
|
children: [
|
|
56
|
-
/* @__PURE__ */ jsx(
|
|
57
|
-
"div",
|
|
58
|
-
{
|
|
59
|
-
style: {
|
|
60
|
-
display: "flex",
|
|
61
|
-
flexDirection: "column",
|
|
62
|
-
gap: 4
|
|
63
|
-
},
|
|
64
|
-
children: /* @__PURE__ */ jsxs("div", { children: [
|
|
65
|
-
/* @__PURE__ */ jsxs("b", { children: [
|
|
66
|
-
i18n.t("Organisation Unit Level"),
|
|
67
|
-
": "
|
|
68
|
-
] }),
|
|
69
|
-
orgUnitLevel?.displayName
|
|
70
|
-
] })
|
|
71
|
-
}
|
|
72
|
-
),
|
|
52
|
+
/* @__PURE__ */ jsx("b", { children: orgUnitLevel?.displayName }),
|
|
73
53
|
/* @__PURE__ */ jsx(LegendsView, { legends })
|
|
74
54
|
]
|
|
75
55
|
}
|
package/dist/esm/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ScorecardLegendsView/components/OrgUnitLevelSpecificTargetView.tsx"],"names":[],"mappings":";;;;;AAUO,SAAS,8BAAA,CAA+B;AAAA,EAC9C,cAAA;AAAA,EACA;AACD,CAAA,EAAmC;AAClC,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,MAAM,aAAA,GAAgB,IAAA,EAAM,aAAA,IAAiB,EAAC;AAE9C,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,YAAA,EAAc,CAAA;AAAA,QACd,GAAA,EAAK,CAAA;AAAA,QACL,QAAA,EAAU,aAAA;AAAA,QACV,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,OAAA,EAAS,EAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACX;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,OAAO,EAAE,QAAA,EAAU,IAAG,EAC1B,QAAA,kBAAA,GAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,KAAA,EAAM,CAAA,EACX,CAAA;AAAA,wBACA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,GAAA,EAAK,EAAA;AAAA,cACL,OAAA,EAAS,MAAA;AAAA,cACT,mBAAA,EAAqB;AAAA,aACtB;AAAA,YAEC,iBAAO,IAAA,CAAK,cAAc,CAAA,CAAE,GAAA,CAAI,CAAC,GAAA,KAAQ;AACzC,cAAA,MAAM,eAAe,aAAA,CAAc,IAAA;AAAA,gBAClC,CAAC,KAAA,KAAU,KAAA,CAAM,EAAA,KAAO;AAAA,eACzB;AACA,cAAA,MAAM,OAAA,GAAU,eAAe,GAAG,CAAA;AAClC,cAAA,uBACC,IAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACA,KAAA,EAAO;AAAA,oBACN,MAAA,EAAQ,CAAA,UAAA,EAAa,MAAA,CAAO,OAAO,CAAA,CAAA;AAAA,oBACnC,OAAA,EAAS,EAAA;AAAA,oBACT,YAAA,EAAc,CAAA;AAAA,oBACd,QAAA,EAAU,EAAA;AAAA,oBACV,OAAA,EAAS,MAAA;AAAA,oBACT,aAAA,EAAe,QAAA;AAAA,oBACf,GAAA,EAAK;AAAA,mBACN;AAAA,kBAEA,QAAA,EAAA;AAAA,oCAAA,GAAA,CAAC,GAAA,EAAA,EAAG,wBAAc,WAAA,EAAY,CAAA;AAAA,oCAC9B,GAAA,CAAC,eAAY,OAAA,EAAkB;AAAA;AAAA;AAAA,eAChC;AAAA,YAEF,CAAC;AAAA;AAAA;AACF;AAAA;AAAA,GACD;AAEF","file":"OrgUnitLevelSpecificTargetView.js","sourcesContent":["import { LegendsView } from \"./LegendView\";\nimport type { OrgUnitLevelLegend } from \"../../../schemas/config\";\nimport { useScorecardMeta } from \"../../MetaProvider\";\nimport { colors } from \"@dhis2/ui\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: OrgUnitLevelLegend;\n\tlabel: string;\n}\n\nexport function OrgUnitLevelSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst meta = useScorecardMeta();\n\tconst orgUnitLevels = meta?.orgUnitLevels ?? [];\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tborderRadius: 4,\n\t\t\t\tgap: 8,\n\t\t\t\tmaxWidth: \"fit-content\",\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\tpadding: 16,\n\t\t\t\tfontSize: 14,\n\t\t\t}}\n\t\t>\n\t\t\t<div style={{ fontSize: 16 }}>\n\t\t\t\t<b>{label}</b>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tgap: 16,\n\t\t\t\t\tdisplay: \"grid\",\n\t\t\t\t\tgridTemplateColumns: \"1fr 1fr\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{Object.keys(specificTarget).map((key) => {\n\t\t\t\t\tconst orgUnitLevel = orgUnitLevels.find(\n\t\t\t\t\t\t(level) => level.id === key,\n\t\t\t\t\t);\n\t\t\t\t\tconst legends = specificTarget[key];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tborder: `1px solid ${colors.grey400}`,\n\t\t\t\t\t\t\t\tpadding: 16,\n\t\t\t\t\t\t\t\tborderRadius: 4,\n\t\t\t\t\t\t\t\tfontSize: 14,\n\t\t\t\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\t\t\t\tgap: 8,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<b>{orgUnitLevel?.displayName}</b>\n\t\t\t\t\t\t\t<LegendsView legends={legends} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { CircularLoader, colors } from '@dhis2/ui';
|
|
3
|
-
import i18n from '@dhis2/d2-i18n';
|
|
4
3
|
import { LegendsView } from './LegendView';
|
|
5
4
|
import { useOrgUnits } from '../../../hooks/orgUnit';
|
|
6
5
|
|
|
@@ -25,33 +24,28 @@ function OrgUnitSpecificTargetView({
|
|
|
25
24
|
{
|
|
26
25
|
style: {
|
|
27
26
|
maxWidth: "fit-content",
|
|
28
|
-
border: `1px solid ${colors.
|
|
27
|
+
border: `1px solid ${colors.grey400}`,
|
|
29
28
|
borderRadius: 4,
|
|
30
29
|
display: "flex",
|
|
31
30
|
flexDirection: "column",
|
|
32
31
|
gap: 8,
|
|
33
|
-
padding: 16
|
|
34
|
-
fontSize: 14
|
|
32
|
+
padding: 16
|
|
35
33
|
},
|
|
36
|
-
className: "column gap-16 p-16",
|
|
37
34
|
children: [
|
|
38
|
-
/* @__PURE__ */ jsxs(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
label
|
|
53
|
-
] })
|
|
54
|
-
] }),
|
|
35
|
+
/* @__PURE__ */ jsxs(
|
|
36
|
+
"div",
|
|
37
|
+
{
|
|
38
|
+
style: {
|
|
39
|
+
display: "flex",
|
|
40
|
+
flexDirection: "column",
|
|
41
|
+
gap: 8
|
|
42
|
+
},
|
|
43
|
+
children: [
|
|
44
|
+
/* @__PURE__ */ jsx("b", { children: label }),
|
|
45
|
+
/* @__PURE__ */ jsx("span", { style: { color: colors.grey600, fontSize: 12 }, children: orgUnits?.map((ou) => ou.displayName)?.join(", ") })
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
),
|
|
55
49
|
/* @__PURE__ */ jsx(LegendsView, { legends: specificTarget.legends })
|
|
56
50
|
]
|
|
57
51
|
}
|
package/dist/esm/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ScorecardLegendsView/components/OrgUnitSpecificTargetView.tsx"],"names":[],"mappings":";;;;;AAUO,SAAS,yBAAA,CAA0B;AAAA,EACzC,cAAA;AAAA,EACA;AACD,CAAA,EAAmC;AAClC,EAAA,MAAM,QAAQ,cAAA,CAAe,KAAA;AAC7B,EAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAS,GAAI,YAAY,KAAK,CAAA;AAE/C,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,uBACC,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,KAAA,EAAO,EAAE,QAAA,EAAU,GAAA,EAAK,WAAW,GAAA,EAAI;AAAA,QACvC,SAAA,EAAU,kDAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,UAAA,EAAU,IAAA,EAAC;AAAA;AAAA,KAC5B;AAAA,EAEF;AAEA,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACN,QAAA,EAAU,aAAA;AAAA,QACV,MAAA,EAAQ,CAAA,UAAA,EAAa,MAAA,CAAO,OAAO,CAAA,CAAA;AAAA,QACnC,YAAA,EAAc,CAAA;AAAA,QACd,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe,QAAA;AAAA,QACf,GAAA,EAAK,CAAA;AAAA,QACL,OAAA,EAAS;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACN,OAAA,EAAS,MAAA;AAAA,cACT,aAAA,EAAe,QAAA;AAAA,cACf,GAAA,EAAK;AAAA,aACN;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,OAAG,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,kCACT,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,CAAO,SAAS,QAAA,EAAU,EAAA,IAC9C,QAAA,EAAA,QAAA,EAAU,GAAA,CAAI,CAAC,EAAA,KAAO,EAAA,CAAG,WAAW,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAClD;AAAA;AAAA;AAAA,SACD;AAAA,wBACA,GAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAS,cAAA,CAAe,OAAA,EAAS;AAAA;AAAA;AAAA,GAC/C;AAEF","file":"OrgUnitSpecificTargetView.js","sourcesContent":["import type { SpecificTarget } from \"../../../schemas/config\";\nimport { CircularLoader, colors } from \"@dhis2/ui\";\nimport { LegendsView } from \"./LegendView\";\nimport { useOrgUnits } from \"../../../hooks/orgUnit\";\n\nexport interface OrgUnitSpecificTargetViewProps {\n\tspecificTarget: SpecificTarget;\n\tlabel: string;\n}\n\nexport function OrgUnitSpecificTargetView({\n\tspecificTarget,\n\tlabel,\n}: OrgUnitSpecificTargetViewProps) {\n\tconst items = specificTarget.items;\n\tconst { loading, orgUnits } = useOrgUnits(items);\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{ minWidth: 200, minHeight: 200 }}\n\t\t\t\tclassName=\"column align-items-center justify-content-center\"\n\t\t\t>\n\t\t\t\t<CircularLoader extrasmall />\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\tmaxWidth: \"fit-content\",\n\t\t\t\tborder: `1px solid ${colors.grey400}`,\n\t\t\t\tborderRadius: 4,\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\tflexDirection: \"column\",\n\t\t\t\tgap: 8,\n\t\t\t\tpadding: 16,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 8,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<b>{label}</b>\n\t\t\t\t<span style={{ color: colors.grey600, fontSize: 12 }}>\n\t\t\t\t\t{orgUnits?.map((ou) => ou.displayName)?.join(\", \")}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<LegendsView legends={specificTarget.legends} />\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { colors } from '@dhis2/ui';
|
|
3
|
-
import i18n from '@dhis2/d2-i18n';
|
|
4
3
|
import { LegendsView } from './LegendView';
|
|
5
4
|
import { createFixedPeriodFromPeriodId } from '@dhis2/multi-calendar-dates';
|
|
6
5
|
import { useCalendar } from '../../../hooks/metadata';
|
|
@@ -22,7 +21,7 @@ function PeriodSpecificTargetView({
|
|
|
22
21
|
{
|
|
23
22
|
style: {
|
|
24
23
|
maxWidth: 350,
|
|
25
|
-
border: `1px solid ${colors.
|
|
24
|
+
border: `1px solid ${colors.grey400}`,
|
|
26
25
|
borderRadius: 4,
|
|
27
26
|
display: "flex",
|
|
28
27
|
flexDirection: "column",
|
|
@@ -34,26 +33,13 @@ function PeriodSpecificTargetView({
|
|
|
34
33
|
"div",
|
|
35
34
|
{
|
|
36
35
|
style: {
|
|
37
|
-
gap:
|
|
36
|
+
gap: 4,
|
|
38
37
|
display: "flex",
|
|
39
38
|
flexDirection: "column"
|
|
40
39
|
},
|
|
41
40
|
children: [
|
|
42
|
-
/* @__PURE__ */
|
|
43
|
-
|
|
44
|
-
i18n.t("Period(s)"),
|
|
45
|
-
": "
|
|
46
|
-
] }),
|
|
47
|
-
" ",
|
|
48
|
-
periods?.map((ou) => ou.displayName)?.join(", ")
|
|
49
|
-
] }),
|
|
50
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
51
|
-
/* @__PURE__ */ jsxs("b", { children: [
|
|
52
|
-
i18n.t("Data Source"),
|
|
53
|
-
": "
|
|
54
|
-
] }),
|
|
55
|
-
label
|
|
56
|
-
] })
|
|
41
|
+
/* @__PURE__ */ jsx("b", { children: label }),
|
|
42
|
+
/* @__PURE__ */ jsx("span", { style: { color: colors.grey600, fontSize: 12 }, children: periods?.map((ou) => ou.displayName)?.join(", ") })
|
|
57
43
|
]
|
|
58
44
|
}
|
|
59
45
|
),
|