@hisptz/dhis2-analytics 1.0.45 → 1.0.47
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/build/cjs/components/Visualization/components/DimensionsProvider/index.js +11 -0
- package/build/cjs/components/Visualization/components/VisualizationSelector/index.js +4 -13
- package/build/cjs/components/Visualization/index.js +1 -11
- package/build/es/components/Visualization/components/DimensionsProvider/index.js +11 -0
- package/build/es/components/Visualization/components/VisualizationSelector/index.js +4 -13
- package/build/es/components/Visualization/index.js +1 -11
- package/build/types/components/Visualization/components/VisualizationSelector/index.d.ts +2 -4
- package/package.json +3 -3
|
@@ -8,6 +8,7 @@ exports.DimensionsProvider = DimensionsProvider;
|
|
|
8
8
|
exports.useDimensions = useDimensions;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _lodash = require("lodash");
|
|
11
|
+
var _usehooksTs = require("usehooks-ts");
|
|
11
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
14
|
const DimensionState = /*#__PURE__*/(0, _react.createContext)({
|
|
@@ -38,6 +39,16 @@ function DimensionsProvider(_ref2) {
|
|
|
38
39
|
dimensions
|
|
39
40
|
} = _ref2;
|
|
40
41
|
const [state, dispatch] = (0, _react.useReducer)(reducer, dimensions);
|
|
42
|
+
(0, _usehooksTs.useUpdateEffect)(() => {
|
|
43
|
+
Object.keys(dimensions).forEach(dimension => {
|
|
44
|
+
var _dimensions$dimension;
|
|
45
|
+
console.log("updating");
|
|
46
|
+
dispatch({
|
|
47
|
+
dimension: dimension,
|
|
48
|
+
value: (_dimensions$dimension = dimensions[dimension]) !== null && _dimensions$dimension !== void 0 ? _dimensions$dimension : []
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}, [dimensions]);
|
|
41
52
|
return /*#__PURE__*/_react.default.createElement(DimensionState.Provider, {
|
|
42
53
|
value: state
|
|
43
54
|
}, /*#__PURE__*/_react.default.createElement(DimensionUpdateState.Provider, {
|
|
@@ -91,8 +91,7 @@ function PivotTableRenderer(_ref) {
|
|
|
91
91
|
}
|
|
92
92
|
function ChartRenderer(_ref2) {
|
|
93
93
|
let {
|
|
94
|
-
options
|
|
95
|
-
height
|
|
94
|
+
options
|
|
96
95
|
} = _ref2;
|
|
97
96
|
const {
|
|
98
97
|
analytics
|
|
@@ -103,8 +102,7 @@ function ChartRenderer(_ref2) {
|
|
|
103
102
|
return /*#__PURE__*/_react.default.createElement(_ChartAnalytics.ChartAnalytics, {
|
|
104
103
|
analytics: analytics,
|
|
105
104
|
config: {
|
|
106
|
-
...options
|
|
107
|
-
height
|
|
105
|
+
...options
|
|
108
106
|
}
|
|
109
107
|
});
|
|
110
108
|
}
|
|
@@ -148,8 +146,7 @@ function MapRenderer(_ref3) {
|
|
|
148
146
|
}
|
|
149
147
|
function VisualizationSelector(_ref4) {
|
|
150
148
|
let {
|
|
151
|
-
config
|
|
152
|
-
height
|
|
149
|
+
config
|
|
153
150
|
} = _ref4;
|
|
154
151
|
const [type] = (0, _VisualizationTypeProvider.useVisualizationType)();
|
|
155
152
|
const {
|
|
@@ -172,15 +169,9 @@ function VisualizationSelector(_ref4) {
|
|
|
172
169
|
if (!analytics) {
|
|
173
170
|
return null;
|
|
174
171
|
}
|
|
175
|
-
return /*#__PURE__*/_react.default.createElement("
|
|
176
|
-
style: {
|
|
177
|
-
width: "100%",
|
|
178
|
-
height: "100%"
|
|
179
|
-
}
|
|
180
|
-
}, type === "pivotTable" && /*#__PURE__*/_react.default.createElement(PivotTableRenderer, {
|
|
172
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, type === "pivotTable" && /*#__PURE__*/_react.default.createElement(PivotTableRenderer, {
|
|
181
173
|
options: config === null || config === void 0 ? void 0 : config.pivotTable
|
|
182
174
|
}), type === "chart" && /*#__PURE__*/_react.default.createElement(ChartRenderer, {
|
|
183
|
-
height: height,
|
|
184
175
|
options: config === null || config === void 0 ? void 0 : config.chart
|
|
185
176
|
}), type === "map" && /*#__PURE__*/_react.default.createElement(MapRenderer, {
|
|
186
177
|
options: config === null || config === void 0 ? void 0 : config.map
|
|
@@ -79,7 +79,6 @@ function Visualization(_ref2) {
|
|
|
79
79
|
flexDirection: "column",
|
|
80
80
|
width: "100%",
|
|
81
81
|
height: "100%",
|
|
82
|
-
padding: 16,
|
|
83
82
|
gap: 16
|
|
84
83
|
}
|
|
85
84
|
}, showToolbar && /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -89,16 +88,7 @@ function Visualization(_ref2) {
|
|
|
89
88
|
gap: 16,
|
|
90
89
|
justifyContent: "space-between"
|
|
91
90
|
}
|
|
92
|
-
}, /*#__PURE__*/_react.default.createElement(_VisualizationTypeSelector.VisualizationTypeSelector, null), /*#__PURE__*/_react.default.createElement(_VisualizationDimensionSelector.VisualizationDimensionSelector, null)), /*#__PURE__*/_react.default.createElement(
|
|
93
|
-
style: {
|
|
94
|
-
display: "flex",
|
|
95
|
-
flexDirection: "column",
|
|
96
|
-
alignItems: "center",
|
|
97
|
-
justifyContent: "center",
|
|
98
|
-
height: height !== null && height !== void 0 ? height : 500
|
|
99
|
-
}
|
|
100
|
-
}, /*#__PURE__*/_react.default.createElement(_VisualizationSelector.VisualizationSelector, {
|
|
101
|
-
height: height !== null && height !== void 0 ? height : 500,
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement(_VisualizationTypeSelector.VisualizationTypeSelector, null), /*#__PURE__*/_react.default.createElement(_VisualizationDimensionSelector.VisualizationDimensionSelector, null)), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_VisualizationSelector.VisualizationSelector, {
|
|
102
92
|
config: config
|
|
103
93
|
})))));
|
|
104
94
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { createContext, useContext, useReducer } from "react";
|
|
2
2
|
import { set } from "lodash";
|
|
3
|
+
import { useUpdateEffect } from "usehooks-ts";
|
|
3
4
|
export const DimensionState = /*#__PURE__*/createContext({
|
|
4
5
|
dx: [],
|
|
5
6
|
pe: [],
|
|
@@ -26,6 +27,16 @@ export function DimensionsProvider(_ref2) {
|
|
|
26
27
|
dimensions
|
|
27
28
|
} = _ref2;
|
|
28
29
|
const [state, dispatch] = useReducer(reducer, dimensions);
|
|
30
|
+
useUpdateEffect(() => {
|
|
31
|
+
Object.keys(dimensions).forEach(dimension => {
|
|
32
|
+
var _dimensions$dimension;
|
|
33
|
+
console.log("updating");
|
|
34
|
+
dispatch({
|
|
35
|
+
dimension: dimension,
|
|
36
|
+
value: (_dimensions$dimension = dimensions[dimension]) !== null && _dimensions$dimension !== void 0 ? _dimensions$dimension : []
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}, [dimensions]);
|
|
29
40
|
return /*#__PURE__*/React.createElement(DimensionState.Provider, {
|
|
30
41
|
value: state
|
|
31
42
|
}, /*#__PURE__*/React.createElement(DimensionUpdateState.Provider, {
|
|
@@ -77,8 +77,7 @@ export function PivotTableRenderer(_ref) {
|
|
|
77
77
|
}
|
|
78
78
|
export function ChartRenderer(_ref2) {
|
|
79
79
|
let {
|
|
80
|
-
options
|
|
81
|
-
height
|
|
80
|
+
options
|
|
82
81
|
} = _ref2;
|
|
83
82
|
const {
|
|
84
83
|
analytics
|
|
@@ -89,8 +88,7 @@ export function ChartRenderer(_ref2) {
|
|
|
89
88
|
return /*#__PURE__*/React.createElement(ChartAnalytics, {
|
|
90
89
|
analytics: analytics,
|
|
91
90
|
config: {
|
|
92
|
-
...options
|
|
93
|
-
height
|
|
91
|
+
...options
|
|
94
92
|
}
|
|
95
93
|
});
|
|
96
94
|
}
|
|
@@ -134,8 +132,7 @@ export function MapRenderer(_ref3) {
|
|
|
134
132
|
}
|
|
135
133
|
export function VisualizationSelector(_ref4) {
|
|
136
134
|
let {
|
|
137
|
-
config
|
|
138
|
-
height
|
|
135
|
+
config
|
|
139
136
|
} = _ref4;
|
|
140
137
|
const [type] = useVisualizationType();
|
|
141
138
|
const {
|
|
@@ -158,15 +155,9 @@ export function VisualizationSelector(_ref4) {
|
|
|
158
155
|
if (!analytics) {
|
|
159
156
|
return null;
|
|
160
157
|
}
|
|
161
|
-
return /*#__PURE__*/React.createElement("
|
|
162
|
-
style: {
|
|
163
|
-
width: "100%",
|
|
164
|
-
height: "100%"
|
|
165
|
-
}
|
|
166
|
-
}, type === "pivotTable" && /*#__PURE__*/React.createElement(PivotTableRenderer, {
|
|
158
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, type === "pivotTable" && /*#__PURE__*/React.createElement(PivotTableRenderer, {
|
|
167
159
|
options: config === null || config === void 0 ? void 0 : config.pivotTable
|
|
168
160
|
}), type === "chart" && /*#__PURE__*/React.createElement(ChartRenderer, {
|
|
169
|
-
height: height,
|
|
170
161
|
options: config === null || config === void 0 ? void 0 : config.chart
|
|
171
162
|
}), type === "map" && /*#__PURE__*/React.createElement(MapRenderer, {
|
|
172
163
|
options: config === null || config === void 0 ? void 0 : config.map
|
|
@@ -72,7 +72,6 @@ export function Visualization(_ref2) {
|
|
|
72
72
|
flexDirection: "column",
|
|
73
73
|
width: "100%",
|
|
74
74
|
height: "100%",
|
|
75
|
-
padding: 16,
|
|
76
75
|
gap: 16
|
|
77
76
|
}
|
|
78
77
|
}, showToolbar && /*#__PURE__*/React.createElement("div", {
|
|
@@ -82,16 +81,7 @@ export function Visualization(_ref2) {
|
|
|
82
81
|
gap: 16,
|
|
83
82
|
justifyContent: "space-between"
|
|
84
83
|
}
|
|
85
|
-
}, /*#__PURE__*/React.createElement(VisualizationTypeSelector, null), /*#__PURE__*/React.createElement(VisualizationDimensionSelector, null)), /*#__PURE__*/React.createElement(
|
|
86
|
-
style: {
|
|
87
|
-
display: "flex",
|
|
88
|
-
flexDirection: "column",
|
|
89
|
-
alignItems: "center",
|
|
90
|
-
justifyContent: "center",
|
|
91
|
-
height: height !== null && height !== void 0 ? height : 500
|
|
92
|
-
}
|
|
93
|
-
}, /*#__PURE__*/React.createElement(VisualizationSelector, {
|
|
94
|
-
height: height !== null && height !== void 0 ? height : 500,
|
|
84
|
+
}, /*#__PURE__*/React.createElement(VisualizationTypeSelector, null), /*#__PURE__*/React.createElement(VisualizationDimensionSelector, null)), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(VisualizationSelector, {
|
|
95
85
|
config: config
|
|
96
86
|
})))));
|
|
97
87
|
}
|
|
@@ -8,18 +8,16 @@ import { OrgUnitSelection } from "@hisptz/dhis2-utils";
|
|
|
8
8
|
import { PivotTableLayoutProps } from "../../../CustomPivotTable/components/Table";
|
|
9
9
|
export interface VisualizationSelectorProps {
|
|
10
10
|
config: VisualizationConfig;
|
|
11
|
-
height: number;
|
|
12
11
|
}
|
|
13
12
|
export declare function getDimensionLabel(dimension: Dimension): any;
|
|
14
13
|
export declare function getOrgUnitSelectionFromIds(ous: string[]): OrgUnitSelection;
|
|
15
14
|
export declare function PivotTableRenderer({ options }: {
|
|
16
15
|
options: CustomPivotTableOptions & PivotTableLayoutProps;
|
|
17
16
|
}): JSX.Element | null;
|
|
18
|
-
export declare function ChartRenderer({ options
|
|
17
|
+
export declare function ChartRenderer({ options }: {
|
|
19
18
|
options: ChartConfig;
|
|
20
|
-
height: number;
|
|
21
19
|
}): JSX.Element | null;
|
|
22
20
|
export declare function MapRenderer({ options }: {
|
|
23
21
|
options: Omit<MapProps, "orgUnitSelection" | "periodSelection">;
|
|
24
22
|
}): JSX.Element;
|
|
25
|
-
export declare function VisualizationSelector({ config
|
|
23
|
+
export declare function VisualizationSelector({ config }: VisualizationSelectorProps): JSX.Element | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hisptz/dhis2-analytics",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.47",
|
|
4
4
|
"description": "A collection of reusable react components for visualizing analytics data from DHIS2",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"scripts": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@dhis2/app-runtime": "^3.7.0",
|
|
34
|
-
"@hisptz/dhis2-ui": "^1.0.
|
|
34
|
+
"@hisptz/dhis2-ui": "^1.0.47",
|
|
35
35
|
"@hisptz/dhis2-utils": "*",
|
|
36
36
|
"@react-leaflet/core": "^2.1.0",
|
|
37
37
|
"async-es": "^3.2.4",
|
|
@@ -87,5 +87,5 @@
|
|
|
87
87
|
"react-hook-form": "^7.43",
|
|
88
88
|
"recoil": "*"
|
|
89
89
|
},
|
|
90
|
-
"gitHead": "
|
|
90
|
+
"gitHead": "d5879f1190205b3af60b50ed97d2689f9228e1b1"
|
|
91
91
|
}
|