@dhis2/analytics 26.11.1 → 26.12.1
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/DashboardPluginWrapper/DashboardPluginWrapper.js +92 -0
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuDropdown.js +2 -3
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuList.js +4 -4
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuListItem.js +3 -5
- package/build/cjs/components/Toolbar/HoverMenuBar/HoverMenuListItem.styles.js +2 -2
- package/build/cjs/components/Toolbar/MenuButton.styles.js +2 -2
- package/build/cjs/components/Toolbar/Toolbar.js +4 -4
- package/build/cjs/components/Toolbar/ToolbarSidebar.js +4 -4
- package/build/cjs/components/Toolbar/UpdateButton.js +6 -8
- package/build/cjs/index.js +8 -0
- package/build/cjs/locales/fr/translations.json +1 -1
- package/build/cjs/modules/getPWAInstallationStatus.js +77 -0
- package/build/cjs/visualizations/config/adapters/dhis_highcharts/index.js +0 -1
- package/build/es/components/DashboardPluginWrapper/DashboardPluginWrapper.js +82 -0
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuDropdown.js +1 -2
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuList.js +1 -1
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuListItem.js +1 -3
- package/build/es/components/Toolbar/HoverMenuBar/HoverMenuListItem.styles.js +1 -1
- package/build/es/components/Toolbar/MenuButton.styles.js +1 -1
- package/build/es/components/Toolbar/Toolbar.js +1 -1
- package/build/es/components/Toolbar/ToolbarSidebar.js +1 -1
- package/build/es/components/Toolbar/UpdateButton.js +1 -3
- package/build/es/index.js +1 -0
- package/build/es/locales/fr/translations.json +1 -1
- package/build/es/modules/getPWAInstallationStatus.js +70 -0
- package/build/es/visualizations/config/adapters/dhis_highcharts/index.js +0 -1
- package/package.json +3 -3
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DashboardPluginWrapper = void 0;
|
|
7
|
+
var _appRuntime = require("@dhis2/app-runtime");
|
|
8
|
+
var _ui = require("@dhis2/ui");
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _getPWAInstallationStatus = require("../../modules/getPWAInstallationStatus.js");
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
const LoadingMask = () => {
|
|
16
|
+
return /*#__PURE__*/_react.default.createElement(_ui.Layer, null, /*#__PURE__*/_react.default.createElement(_ui.CenteredContent, null, /*#__PURE__*/_react.default.createElement(_ui.CircularLoader, null)));
|
|
17
|
+
};
|
|
18
|
+
const CacheableSectionWrapper = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
id,
|
|
21
|
+
children,
|
|
22
|
+
isParentCached
|
|
23
|
+
} = _ref;
|
|
24
|
+
const {
|
|
25
|
+
startRecording,
|
|
26
|
+
isCached,
|
|
27
|
+
remove
|
|
28
|
+
} = (0, _appRuntime.useCacheableSection)(id);
|
|
29
|
+
(0, _react.useEffect)(() => {
|
|
30
|
+
if (isParentCached && !isCached) {
|
|
31
|
+
startRecording({
|
|
32
|
+
onError: console.error
|
|
33
|
+
});
|
|
34
|
+
} else if (!isParentCached && isCached) {
|
|
35
|
+
// Synchronize cache state on load or prop update
|
|
36
|
+
// -- a back-up to imperative `removeCachedData`
|
|
37
|
+
remove();
|
|
38
|
+
}
|
|
39
|
+
}, [isCached, isParentCached, remove, startRecording]);
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement(_appRuntime.CacheableSection, {
|
|
41
|
+
id: id,
|
|
42
|
+
loadingMask: /*#__PURE__*/_react.default.createElement(LoadingMask, null)
|
|
43
|
+
}, children);
|
|
44
|
+
};
|
|
45
|
+
CacheableSectionWrapper.propTypes = {
|
|
46
|
+
children: _propTypes.default.node,
|
|
47
|
+
id: _propTypes.default.string,
|
|
48
|
+
isParentCached: _propTypes.default.bool
|
|
49
|
+
};
|
|
50
|
+
const DashboardPluginWrapper = _ref2 => {
|
|
51
|
+
let {
|
|
52
|
+
onInstallationStatusChange,
|
|
53
|
+
children,
|
|
54
|
+
cacheId,
|
|
55
|
+
isParentCached,
|
|
56
|
+
...props
|
|
57
|
+
} = _ref2;
|
|
58
|
+
const {
|
|
59
|
+
pwaEnabled
|
|
60
|
+
} = (0, _appRuntime.useConfig)();
|
|
61
|
+
(0, _react.useEffect)(() => {
|
|
62
|
+
// Get & send PWA installation status now
|
|
63
|
+
(0, _getPWAInstallationStatus.getPWAInstallationStatus)({
|
|
64
|
+
onStateChange: onInstallationStatusChange
|
|
65
|
+
}).then(onInstallationStatusChange);
|
|
66
|
+
}, [onInstallationStatusChange]);
|
|
67
|
+
return props ? /*#__PURE__*/_react.default.createElement("div", {
|
|
68
|
+
style: {
|
|
69
|
+
display: 'flex',
|
|
70
|
+
height: '100%',
|
|
71
|
+
overflow: 'hidden'
|
|
72
|
+
}
|
|
73
|
+
}, pwaEnabled ? /*#__PURE__*/_react.default.createElement(CacheableSectionWrapper, {
|
|
74
|
+
id: cacheId,
|
|
75
|
+
isParentCached: isParentCached
|
|
76
|
+
}, children(props)) : children(props), /*#__PURE__*/_react.default.createElement(_ui.CssVariables, {
|
|
77
|
+
colors: true,
|
|
78
|
+
spacers: true,
|
|
79
|
+
elevations: true
|
|
80
|
+
})) : null;
|
|
81
|
+
};
|
|
82
|
+
exports.DashboardPluginWrapper = DashboardPluginWrapper;
|
|
83
|
+
DashboardPluginWrapper.defaultProps = {
|
|
84
|
+
isParentCached: false,
|
|
85
|
+
onInstallationStatusChange: Function.prototype
|
|
86
|
+
};
|
|
87
|
+
DashboardPluginWrapper.propTypes = {
|
|
88
|
+
cacheId: _propTypes.default.string,
|
|
89
|
+
children: _propTypes.default.func,
|
|
90
|
+
isParentCached: _propTypes.default.bool,
|
|
91
|
+
onInstallationStatusChange: _propTypes.default.func
|
|
92
|
+
};
|
|
@@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.HoverMenuDropdown = void 0;
|
|
7
7
|
var _style = _interopRequireDefault(require("styled-jsx/style"));
|
|
8
|
-
var
|
|
9
|
-
var _portal = require("@dhis2-ui/portal");
|
|
8
|
+
var _ui = require("@dhis2/ui");
|
|
10
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -41,7 +40,7 @@ const HoverMenuDropdown = _ref => {
|
|
|
41
40
|
}) || "")
|
|
42
41
|
}, label, /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
43
42
|
id: _MenuButtonStyles.default.__hash
|
|
44
|
-
}, _MenuButtonStyles.default)), isOpen && /*#__PURE__*/_react.default.createElement(
|
|
43
|
+
}, _MenuButtonStyles.default)), isOpen && /*#__PURE__*/_react.default.createElement(_ui.Portal, null, /*#__PURE__*/_react.default.createElement(_ui.Popper, {
|
|
45
44
|
placement: "bottom-start",
|
|
46
45
|
reference: buttonRef
|
|
47
46
|
}, children)));
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useHoverMenuListContext = exports.HoverMenuList = void 0;
|
|
7
7
|
var _style = _interopRequireDefault(require("styled-jsx/style"));
|
|
8
|
-
var
|
|
8
|
+
var _ui = require("@dhis2/ui");
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _HoverMenuBar = require("./HoverMenuBar.js");
|
|
@@ -55,11 +55,11 @@ const HoverMenuList = _ref => {
|
|
|
55
55
|
}
|
|
56
56
|
}, /*#__PURE__*/_react.default.createElement("ul", {
|
|
57
57
|
"data-test": dataTest,
|
|
58
|
-
className: _style.default.dynamic([["3026610659", [
|
|
58
|
+
className: _style.default.dynamic([["3026610659", [_ui.colors.white, _ui.colors.grey200, _ui.elevations.e300, dense ? '128' : '180', maxWidth, maxHeight, _ui.spacers.dp4]]]) + " " + (className || "")
|
|
59
59
|
}, children, /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
60
60
|
id: "3026610659",
|
|
61
|
-
dynamic: [
|
|
62
|
-
}, [`ul.__jsx-style-dynamic-selector{position:relative;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:${
|
|
61
|
+
dynamic: [_ui.colors.white, _ui.colors.grey200, _ui.elevations.e300, dense ? '128' : '180', maxWidth, maxHeight, _ui.spacers.dp4]
|
|
62
|
+
}, [`ul.__jsx-style-dynamic-selector{position:relative;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:${_ui.colors.white};border:1px solid ${_ui.colors.grey200};border-radius:3px;box-shadow:${_ui.elevations.e300};display:inline-block;min-width:${dense ? '128' : '180'}px;max-width:${maxWidth};max-height:${maxHeight};padding:${_ui.spacers.dp4} 0;overflow:auto;list-style:none;}`])));
|
|
63
63
|
};
|
|
64
64
|
exports.HoverMenuList = HoverMenuList;
|
|
65
65
|
HoverMenuList.defaultProps = {
|
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.HoverMenuListItem = void 0;
|
|
7
7
|
var _style = _interopRequireDefault(require("styled-jsx/style"));
|
|
8
|
-
var
|
|
9
|
-
var _popper = require("@dhis2-ui/popper");
|
|
10
|
-
var _portal = require("@dhis2-ui/portal");
|
|
8
|
+
var _ui = require("@dhis2/ui");
|
|
11
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
12
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -53,9 +51,9 @@ const HoverMenuListItem = _ref => {
|
|
|
53
51
|
className: `jsx-${_HoverMenuListItemStyles.default.__hash}` + " " + "label"
|
|
54
52
|
}, label), !!children && /*#__PURE__*/_react.default.createElement("span", {
|
|
55
53
|
className: `jsx-${_HoverMenuListItemStyles.default.__hash}` + " " + "chevron"
|
|
56
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.IconChevronRight24, null)), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
57
55
|
id: _HoverMenuListItemStyles.default.__hash
|
|
58
|
-
}, _HoverMenuListItemStyles.default)), children && isSubMenuOpen && /*#__PURE__*/_react.default.createElement(
|
|
56
|
+
}, _HoverMenuListItemStyles.default)), children && isSubMenuOpen && /*#__PURE__*/_react.default.createElement(_ui.Portal, null, /*#__PURE__*/_react.default.createElement(_ui.Popper, {
|
|
59
57
|
placement: "right-start",
|
|
60
58
|
reference: ref
|
|
61
59
|
}, /*#__PURE__*/_react.default.createElement(_HoverMenuList.HoverMenuList, {
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
8
|
-
const _defaultExport = [`li.jsx-3263820070{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0px ${
|
|
7
|
+
var _ui = require("@dhis2/ui");
|
|
8
|
+
const _defaultExport = [`li.jsx-3263820070{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0px ${_ui.spacers.dp24};cursor:pointer;list-style:none;background-color:${_ui.colors.white};color:${_ui.colors.grey900};fill:${_ui.colors.grey900};font-size:14px;line-height:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, `li.jsx-3263820070:hover,li.jsx-3263820070:active,li.active.jsx-3263820070{background-color:${_ui.colors.grey200};}`, `li.dense.jsx-3263820070{padding:0px ${_ui.spacers.dp12};}`, `li.destructive.jsx-3263820070{color:${_ui.colors.red700};fill:${_ui.colors.red600};}`, `li.destructive.jsx-3263820070:hover{background-color:${_ui.colors.red050};}`, `li.destructive.jsx-3263820070:active,li.destructive.active.jsx-3263820070{background-color:${_ui.colors.red100};}`, `li.disabled.jsx-3263820070{cursor:not-allowed;color:${_ui.colors.grey500};fill:${_ui.colors.grey500};}`, `li.disabled.jsx-3263820070:hover{background-color:${_ui.colors.white};}`, `.label.jsx-3263820070{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:${_ui.spacers.dp12} 0;}`, `li.dense.jsx-3263820070 .label.jsx-3263820070{padding:${_ui.spacers.dp8} 0;}`, `.icon.jsx-3263820070{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;margin-right:${_ui.spacers.dp12};width:24px;height:24px;}`, `.chevron.jsx-3263820070{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;margin-left:${_ui.spacers.dp24};}`, `li.dense.jsx-3263820070 .icon.jsx-3263820070{margin-right:${_ui.spacers.dp8};width:16px;height:16px;}`, "li.jsx-3263820070 .icon.jsx-3263820070>svg{width:24px;height:24px;}", "li.dense.jsx-3263820070 .icon.jsx-3263820070>svg,li.jsx-3263820070 .chevron.jsx-3263820070>svg{width:16px;height:16px;}"];
|
|
9
9
|
_defaultExport.__hash = "3263820070";
|
|
10
10
|
var _default = exports.default = _defaultExport;
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
8
|
-
const _defaultExport = [`button.jsx-3546699693{all:unset;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-size:14px;line-height:14px;padding:0 ${
|
|
7
|
+
var _ui = require("@dhis2/ui");
|
|
8
|
+
const _defaultExport = [`button.jsx-3546699693{all:unset;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-size:14px;line-height:14px;padding:0 ${_ui.spacers.dp12};color:${_ui.colors.grey900};cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, `button.jsx-3546699693:hover.jsx-3546699693:enabled,button.jsx-3546699693:active.jsx-3546699693:enabled,button.isOpen.jsx-3546699693{background-color:${_ui.colors.grey200};}`, `button.jsx-3546699693:focus{outline:3px solid ${_ui.theme.focus};outline-offset:-3px;}`, "button.jsx-3546699693:focus.jsx-3546699693:not(:focus-visible){outline:none;}", `button.jsx-3546699693:disabled{color:${_ui.colors.grey500};cursor:not-allowed;}`];
|
|
9
9
|
_defaultExport.__hash = "3546699693";
|
|
10
10
|
var _default = exports.default = _defaultExport;
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Toolbar = void 0;
|
|
7
7
|
var _style = _interopRequireDefault(require("styled-jsx/style"));
|
|
8
|
-
var
|
|
8
|
+
var _ui = require("@dhis2/ui");
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -16,11 +16,11 @@ const Toolbar = _ref => {
|
|
|
16
16
|
} = _ref;
|
|
17
17
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
18
18
|
"data-test": dataTest,
|
|
19
|
-
className: _style.default.dynamic([["2617706539", [
|
|
19
|
+
className: _style.default.dynamic([["2617706539", [_ui.colors.grey400, _ui.colors.white]]])
|
|
20
20
|
}, children, /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
21
21
|
id: "2617706539",
|
|
22
|
-
dynamic: [
|
|
23
|
-
}, [`div.__jsx-style-dynamic-selector{box-sizing:border-box;min-height:32px;max-height:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;border-bottom:1px solid ${
|
|
22
|
+
dynamic: [_ui.colors.grey400, _ui.colors.white]
|
|
23
|
+
}, [`div.__jsx-style-dynamic-selector{box-sizing:border-box;min-height:32px;max-height:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;border-bottom:1px solid ${_ui.colors.grey400};background-color:${_ui.colors.white};}`]));
|
|
24
24
|
};
|
|
25
25
|
exports.Toolbar = Toolbar;
|
|
26
26
|
Toolbar.defaultProps = {
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ToolbarSidebar = void 0;
|
|
7
7
|
var _style = _interopRequireDefault(require("styled-jsx/style"));
|
|
8
|
-
var
|
|
8
|
+
var _ui = require("@dhis2/ui");
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _react = _interopRequireDefault(require("react"));
|
|
@@ -18,13 +18,13 @@ const ToolbarSidebar = _ref => {
|
|
|
18
18
|
} = _ref;
|
|
19
19
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
20
20
|
"data-test": dataTest,
|
|
21
|
-
className: _style.default.dynamic([["1150014343", [
|
|
21
|
+
className: _style.default.dynamic([["1150014343", [_ui.colors.grey400]]]) + " " + ((0, _classnames.default)('container', {
|
|
22
22
|
isHidden
|
|
23
23
|
}) || "")
|
|
24
24
|
}, children, /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
25
25
|
id: "1150014343",
|
|
26
|
-
dynamic: [
|
|
27
|
-
}, [`div.__jsx-style-dynamic-selector{width:260px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;border-right:1px solid ${
|
|
26
|
+
dynamic: [_ui.colors.grey400]
|
|
27
|
+
}, [`div.__jsx-style-dynamic-selector{width:260px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;border-right:1px solid ${_ui.colors.grey400};}`, "div.isHidden.__jsx-style-dynamic-selector{display:none;}"]));
|
|
28
28
|
};
|
|
29
29
|
exports.ToolbarSidebar = ToolbarSidebar;
|
|
30
30
|
ToolbarSidebar.defaultProps = {
|
|
@@ -6,9 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.UpdateButton = void 0;
|
|
7
7
|
var _style = _interopRequireDefault(require("styled-jsx/style"));
|
|
8
8
|
var _d2I18n = _interopRequireDefault(require("@dhis2/d2-i18n"));
|
|
9
|
-
var
|
|
10
|
-
var _uiIcons = require("@dhis2/ui-icons");
|
|
11
|
-
var _loader = require("@dhis2-ui/loader");
|
|
9
|
+
var _ui = require("@dhis2/ui");
|
|
12
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
11
|
var _react = _interopRequireDefault(require("react"));
|
|
14
12
|
var _MenuButtonStyles = _interopRequireDefault(require("./MenuButton.styles.js"));
|
|
@@ -24,15 +22,15 @@ const UpdateButton = _ref => {
|
|
|
24
22
|
onClick: onClick,
|
|
25
23
|
disabled: disabled,
|
|
26
24
|
"data-test": dataTest,
|
|
27
|
-
className: `jsx-${_MenuButtonStyles.default.__hash}` + " " + _style.default.dynamic([["2364287882", [
|
|
28
|
-
}, loading ? /*#__PURE__*/_react.default.createElement(
|
|
25
|
+
className: `jsx-${_MenuButtonStyles.default.__hash}` + " " + _style.default.dynamic([["2364287882", [_ui.colors.blue700, _ui.colors.blue100, _ui.colors.blue200]]])
|
|
26
|
+
}, loading ? /*#__PURE__*/_react.default.createElement(_ui.CircularLoader, {
|
|
29
27
|
extrasmall: true
|
|
30
|
-
}) : /*#__PURE__*/_react.default.createElement(
|
|
28
|
+
}) : /*#__PURE__*/_react.default.createElement(_ui.IconSync16, null), _d2I18n.default.t('Update'), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
31
29
|
id: _MenuButtonStyles.default.__hash
|
|
32
30
|
}, _MenuButtonStyles.default), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
33
31
|
id: "2364287882",
|
|
34
|
-
dynamic: [
|
|
35
|
-
}, [`button.__jsx-style-dynamic-selector{gap:8px;color:${
|
|
32
|
+
dynamic: [_ui.colors.blue700, _ui.colors.blue100, _ui.colors.blue200]
|
|
33
|
+
}, [`button.__jsx-style-dynamic-selector{gap:8px;color:${_ui.colors.blue700};font-weight:500;}`, `button.__jsx-style-dynamic-selector:hover.__jsx-style-dynamic-selector:enabled{background:${_ui.colors.blue100};}`, `button.__jsx-style-dynamic-selector:active{background:${_ui.colors.blue200};}`]));
|
|
36
34
|
};
|
|
37
35
|
exports.UpdateButton = UpdateButton;
|
|
38
36
|
UpdateButton.defaultProps = {
|
package/build/cjs/index.js
CHANGED
|
@@ -27,6 +27,7 @@ var _exportNames = {
|
|
|
27
27
|
OfflineTooltip: true,
|
|
28
28
|
CachedDataQueryProvider: true,
|
|
29
29
|
useCachedDataQuery: true,
|
|
30
|
+
DashboardPluginWrapper: true,
|
|
30
31
|
Analytics: true,
|
|
31
32
|
apiFetchDimensions: true,
|
|
32
33
|
apiFetchRecommendedIds: true,
|
|
@@ -542,6 +543,12 @@ Object.defineProperty(exports, "DIMENSION_TYPE_PROGRAM_INDICATOR", {
|
|
|
542
543
|
return _dataTypes.DIMENSION_TYPE_PROGRAM_INDICATOR;
|
|
543
544
|
}
|
|
544
545
|
});
|
|
546
|
+
Object.defineProperty(exports, "DashboardPluginWrapper", {
|
|
547
|
+
enumerable: true,
|
|
548
|
+
get: function () {
|
|
549
|
+
return _DashboardPluginWrapper.DashboardPluginWrapper;
|
|
550
|
+
}
|
|
551
|
+
});
|
|
545
552
|
Object.defineProperty(exports, "DataDimension", {
|
|
546
553
|
enumerable: true,
|
|
547
554
|
get: function () {
|
|
@@ -1877,6 +1884,7 @@ Object.keys(_index6).forEach(function (key) {
|
|
|
1877
1884
|
}
|
|
1878
1885
|
});
|
|
1879
1886
|
});
|
|
1887
|
+
var _DashboardPluginWrapper = require("./components/DashboardPluginWrapper/DashboardPluginWrapper.js");
|
|
1880
1888
|
var _Analytics = _interopRequireDefault(require("./api/analytics/Analytics.js"));
|
|
1881
1889
|
var _dimensions = require("./api/dimensions.js");
|
|
1882
1890
|
var _organisationUnits = require("./api/organisationUnits.js");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"view only": "",
|
|
3
3
|
"view and edit": "",
|
|
4
4
|
"all users ({{accessLevel}})": "",
|
|
5
|
-
"{{userOrGroup}} ({{accessLevel}})": "",
|
|
5
|
+
"{{userOrGroup}} ({{accessLevel}})": "{{userOrGroup}} ({{accessLevel}})",
|
|
6
6
|
"Shared with {{commaSeparatedListOfUsersAndGroups}}": "",
|
|
7
7
|
"Not shared with any users or groups": "",
|
|
8
8
|
"No description": "Aucune description",
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.INSTALLATION_STATES = void 0;
|
|
7
|
+
exports.getPWAInstallationStatus = getPWAInstallationStatus;
|
|
8
|
+
const INSTALLATION_STATES = exports.INSTALLATION_STATES = {
|
|
9
|
+
READY: 'READY',
|
|
10
|
+
INSTALLING: 'INSTALLING'
|
|
11
|
+
};
|
|
12
|
+
function handleInstallingWorker(_ref) {
|
|
13
|
+
let {
|
|
14
|
+
installingWorker,
|
|
15
|
+
onStateChange
|
|
16
|
+
} = _ref;
|
|
17
|
+
installingWorker.onstatechange = () => {
|
|
18
|
+
if (installingWorker.state === 'activated') {
|
|
19
|
+
// ... and update state to 'ready'
|
|
20
|
+
onStateChange(INSTALLATION_STATES.READY);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Gets the current installation state of the PWA features, which is intended
|
|
27
|
+
* to be reported from this plugin to the parent app to indicate that the
|
|
28
|
+
* static assets are cached and ready to be accessed locally instead of over
|
|
29
|
+
* the network.
|
|
30
|
+
*
|
|
31
|
+
* Returns either READY, INSTALLING, or `null` for not installed/won't install
|
|
32
|
+
*/
|
|
33
|
+
async function getPWAInstallationStatus(_ref2) {
|
|
34
|
+
let {
|
|
35
|
+
onStateChange
|
|
36
|
+
} = _ref2;
|
|
37
|
+
if (!navigator.serviceWorker) {
|
|
38
|
+
// Nothing to do here
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const registration = await navigator.serviceWorker.getRegistration();
|
|
42
|
+
if (!registration) {
|
|
43
|
+
// This shouldn't happen since this is a PWA app, but return null
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
if (registration.active) {
|
|
47
|
+
return INSTALLATION_STATES.READY;
|
|
48
|
+
}
|
|
49
|
+
// note that 'registration.waiting' is skipped - it implies there's an active one
|
|
50
|
+
if (registration.installing) {
|
|
51
|
+
handleInstallingWorker({
|
|
52
|
+
installingWorker: registration.installing,
|
|
53
|
+
onStateChange
|
|
54
|
+
});
|
|
55
|
+
return INSTALLATION_STATES.INSTALLING;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// It shouldn't normally be possible to get here, but just in case,
|
|
59
|
+
// listen for installations
|
|
60
|
+
registration.onupdatefound = () => {
|
|
61
|
+
// update state for this plugin to 'installing'
|
|
62
|
+
onStateChange(INSTALLATION_STATES.INSTALLING);
|
|
63
|
+
|
|
64
|
+
// also listen for the installing worker to become active
|
|
65
|
+
const installingWorker = registration.installing;
|
|
66
|
+
if (!installingWorker) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
handleInstallingWorker({
|
|
70
|
+
installingWorker,
|
|
71
|
+
onStateChange
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// and in the mean time, return null to show 'not installed'
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { useCacheableSection, CacheableSection, useConfig } from '@dhis2/app-runtime';
|
|
2
|
+
import { CenteredContent, CircularLoader, CssVariables, Layer } from '@dhis2/ui';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import React, { useEffect } from 'react';
|
|
5
|
+
import { getPWAInstallationStatus } from '../../modules/getPWAInstallationStatus.js';
|
|
6
|
+
const LoadingMask = () => {
|
|
7
|
+
return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(CenteredContent, null, /*#__PURE__*/React.createElement(CircularLoader, null)));
|
|
8
|
+
};
|
|
9
|
+
const CacheableSectionWrapper = _ref => {
|
|
10
|
+
let {
|
|
11
|
+
id,
|
|
12
|
+
children,
|
|
13
|
+
isParentCached
|
|
14
|
+
} = _ref;
|
|
15
|
+
const {
|
|
16
|
+
startRecording,
|
|
17
|
+
isCached,
|
|
18
|
+
remove
|
|
19
|
+
} = useCacheableSection(id);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (isParentCached && !isCached) {
|
|
22
|
+
startRecording({
|
|
23
|
+
onError: console.error
|
|
24
|
+
});
|
|
25
|
+
} else if (!isParentCached && isCached) {
|
|
26
|
+
// Synchronize cache state on load or prop update
|
|
27
|
+
// -- a back-up to imperative `removeCachedData`
|
|
28
|
+
remove();
|
|
29
|
+
}
|
|
30
|
+
}, [isCached, isParentCached, remove, startRecording]);
|
|
31
|
+
return /*#__PURE__*/React.createElement(CacheableSection, {
|
|
32
|
+
id: id,
|
|
33
|
+
loadingMask: /*#__PURE__*/React.createElement(LoadingMask, null)
|
|
34
|
+
}, children);
|
|
35
|
+
};
|
|
36
|
+
CacheableSectionWrapper.propTypes = {
|
|
37
|
+
children: PropTypes.node,
|
|
38
|
+
id: PropTypes.string,
|
|
39
|
+
isParentCached: PropTypes.bool
|
|
40
|
+
};
|
|
41
|
+
export const DashboardPluginWrapper = _ref2 => {
|
|
42
|
+
let {
|
|
43
|
+
onInstallationStatusChange,
|
|
44
|
+
children,
|
|
45
|
+
cacheId,
|
|
46
|
+
isParentCached,
|
|
47
|
+
...props
|
|
48
|
+
} = _ref2;
|
|
49
|
+
const {
|
|
50
|
+
pwaEnabled
|
|
51
|
+
} = useConfig();
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
// Get & send PWA installation status now
|
|
54
|
+
getPWAInstallationStatus({
|
|
55
|
+
onStateChange: onInstallationStatusChange
|
|
56
|
+
}).then(onInstallationStatusChange);
|
|
57
|
+
}, [onInstallationStatusChange]);
|
|
58
|
+
return props ? /*#__PURE__*/React.createElement("div", {
|
|
59
|
+
style: {
|
|
60
|
+
display: 'flex',
|
|
61
|
+
height: '100%',
|
|
62
|
+
overflow: 'hidden'
|
|
63
|
+
}
|
|
64
|
+
}, pwaEnabled ? /*#__PURE__*/React.createElement(CacheableSectionWrapper, {
|
|
65
|
+
id: cacheId,
|
|
66
|
+
isParentCached: isParentCached
|
|
67
|
+
}, children(props)) : children(props), /*#__PURE__*/React.createElement(CssVariables, {
|
|
68
|
+
colors: true,
|
|
69
|
+
spacers: true,
|
|
70
|
+
elevations: true
|
|
71
|
+
})) : null;
|
|
72
|
+
};
|
|
73
|
+
DashboardPluginWrapper.defaultProps = {
|
|
74
|
+
isParentCached: false,
|
|
75
|
+
onInstallationStatusChange: Function.prototype
|
|
76
|
+
};
|
|
77
|
+
DashboardPluginWrapper.propTypes = {
|
|
78
|
+
cacheId: PropTypes.string,
|
|
79
|
+
children: PropTypes.func,
|
|
80
|
+
isParentCached: PropTypes.bool,
|
|
81
|
+
onInstallationStatusChange: PropTypes.func
|
|
82
|
+
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _JSXStyle from "styled-jsx/style";
|
|
2
|
-
import { Popper } from '@dhis2
|
|
3
|
-
import { Portal } from '@dhis2-ui/portal';
|
|
2
|
+
import { Popper, Portal } from '@dhis2/ui';
|
|
4
3
|
import cx from 'classnames';
|
|
5
4
|
import PropTypes from 'prop-types';
|
|
6
5
|
import React, { useRef } from 'react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _JSXStyle from "styled-jsx/style";
|
|
2
|
-
import { colors, elevations, spacers } from '@dhis2/ui
|
|
2
|
+
import { colors, elevations, spacers } from '@dhis2/ui';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import React, { createContext, useCallback, useContext, useState } from 'react';
|
|
5
5
|
import { useHoverMenubarContext } from './HoverMenuBar.js';
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import _JSXStyle from "styled-jsx/style";
|
|
2
|
-
import { IconChevronRight24 } from '@dhis2/ui
|
|
3
|
-
import { Popper } from '@dhis2-ui/popper';
|
|
4
|
-
import { Portal } from '@dhis2-ui/portal';
|
|
2
|
+
import { IconChevronRight24, Popper, Portal } from '@dhis2/ui';
|
|
5
3
|
import cx from 'classnames';
|
|
6
4
|
import PropTypes from 'prop-types';
|
|
7
5
|
import React, { useRef } from 'react';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { colors, spacers } from '@dhis2/ui
|
|
1
|
+
import { colors, spacers } from '@dhis2/ui';
|
|
2
2
|
const _defaultExport = [`li.jsx-3263820070{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0px ${spacers.dp24};cursor:pointer;list-style:none;background-color:${colors.white};color:${colors.grey900};fill:${colors.grey900};font-size:14px;line-height:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, `li.jsx-3263820070:hover,li.jsx-3263820070:active,li.active.jsx-3263820070{background-color:${colors.grey200};}`, `li.dense.jsx-3263820070{padding:0px ${spacers.dp12};}`, `li.destructive.jsx-3263820070{color:${colors.red700};fill:${colors.red600};}`, `li.destructive.jsx-3263820070:hover{background-color:${colors.red050};}`, `li.destructive.jsx-3263820070:active,li.destructive.active.jsx-3263820070{background-color:${colors.red100};}`, `li.disabled.jsx-3263820070{cursor:not-allowed;color:${colors.grey500};fill:${colors.grey500};}`, `li.disabled.jsx-3263820070:hover{background-color:${colors.white};}`, `.label.jsx-3263820070{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:${spacers.dp12} 0;}`, `li.dense.jsx-3263820070 .label.jsx-3263820070{padding:${spacers.dp8} 0;}`, `.icon.jsx-3263820070{-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;margin-right:${spacers.dp12};width:24px;height:24px;}`, `.chevron.jsx-3263820070{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;margin-left:${spacers.dp24};}`, `li.dense.jsx-3263820070 .icon.jsx-3263820070{margin-right:${spacers.dp8};width:16px;height:16px;}`, "li.jsx-3263820070 .icon.jsx-3263820070>svg{width:24px;height:24px;}", "li.dense.jsx-3263820070 .icon.jsx-3263820070>svg,li.jsx-3263820070 .chevron.jsx-3263820070>svg{width:16px;height:16px;}"];
|
|
3
3
|
_defaultExport.__hash = "3263820070";
|
|
4
4
|
export default _defaultExport;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { colors, spacers, theme } from '@dhis2/ui
|
|
1
|
+
import { colors, spacers, theme } from '@dhis2/ui';
|
|
2
2
|
const _defaultExport = [`button.jsx-3546699693{all:unset;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-size:14px;line-height:14px;padding:0 ${spacers.dp12};color:${colors.grey900};cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}`, `button.jsx-3546699693:hover.jsx-3546699693:enabled,button.jsx-3546699693:active.jsx-3546699693:enabled,button.isOpen.jsx-3546699693{background-color:${colors.grey200};}`, `button.jsx-3546699693:focus{outline:3px solid ${theme.focus};outline-offset:-3px;}`, "button.jsx-3546699693:focus.jsx-3546699693:not(:focus-visible){outline:none;}", `button.jsx-3546699693:disabled{color:${colors.grey500};cursor:not-allowed;}`];
|
|
3
3
|
_defaultExport.__hash = "3546699693";
|
|
4
4
|
export default _defaultExport;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import _JSXStyle from "styled-jsx/style";
|
|
2
2
|
import i18n from '@dhis2/d2-i18n';
|
|
3
|
-
import { colors } from '@dhis2/ui
|
|
4
|
-
import { IconSync16 } from '@dhis2/ui-icons';
|
|
5
|
-
import { CircularLoader } from '@dhis2-ui/loader';
|
|
3
|
+
import { CircularLoader, IconSync16, colors } from '@dhis2/ui';
|
|
6
4
|
import PropTypes from 'prop-types';
|
|
7
5
|
import React from 'react';
|
|
8
6
|
import menuButtonStyles from './MenuButton.styles.js';
|
package/build/es/index.js
CHANGED
|
@@ -23,6 +23,7 @@ export { TranslationDialog } from './components/TranslationDialog/index.js';
|
|
|
23
23
|
export { OfflineTooltip } from './components/OfflineTooltip.js';
|
|
24
24
|
export { CachedDataQueryProvider, useCachedDataQuery } from './components/CachedDataQueryProvider.js';
|
|
25
25
|
export * from './components/RichText/index.js';
|
|
26
|
+
export { DashboardPluginWrapper } from './components/DashboardPluginWrapper/DashboardPluginWrapper.js';
|
|
26
27
|
|
|
27
28
|
// Api
|
|
28
29
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"view only": "",
|
|
3
3
|
"view and edit": "",
|
|
4
4
|
"all users ({{accessLevel}})": "",
|
|
5
|
-
"{{userOrGroup}} ({{accessLevel}})": "",
|
|
5
|
+
"{{userOrGroup}} ({{accessLevel}})": "{{userOrGroup}} ({{accessLevel}})",
|
|
6
6
|
"Shared with {{commaSeparatedListOfUsersAndGroups}}": "",
|
|
7
7
|
"Not shared with any users or groups": "",
|
|
8
8
|
"No description": "Aucune description",
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export const INSTALLATION_STATES = {
|
|
2
|
+
READY: 'READY',
|
|
3
|
+
INSTALLING: 'INSTALLING'
|
|
4
|
+
};
|
|
5
|
+
function handleInstallingWorker(_ref) {
|
|
6
|
+
let {
|
|
7
|
+
installingWorker,
|
|
8
|
+
onStateChange
|
|
9
|
+
} = _ref;
|
|
10
|
+
installingWorker.onstatechange = () => {
|
|
11
|
+
if (installingWorker.state === 'activated') {
|
|
12
|
+
// ... and update state to 'ready'
|
|
13
|
+
onStateChange(INSTALLATION_STATES.READY);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Gets the current installation state of the PWA features, which is intended
|
|
20
|
+
* to be reported from this plugin to the parent app to indicate that the
|
|
21
|
+
* static assets are cached and ready to be accessed locally instead of over
|
|
22
|
+
* the network.
|
|
23
|
+
*
|
|
24
|
+
* Returns either READY, INSTALLING, or `null` for not installed/won't install
|
|
25
|
+
*/
|
|
26
|
+
export async function getPWAInstallationStatus(_ref2) {
|
|
27
|
+
let {
|
|
28
|
+
onStateChange
|
|
29
|
+
} = _ref2;
|
|
30
|
+
if (!navigator.serviceWorker) {
|
|
31
|
+
// Nothing to do here
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
const registration = await navigator.serviceWorker.getRegistration();
|
|
35
|
+
if (!registration) {
|
|
36
|
+
// This shouldn't happen since this is a PWA app, but return null
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
if (registration.active) {
|
|
40
|
+
return INSTALLATION_STATES.READY;
|
|
41
|
+
}
|
|
42
|
+
// note that 'registration.waiting' is skipped - it implies there's an active one
|
|
43
|
+
if (registration.installing) {
|
|
44
|
+
handleInstallingWorker({
|
|
45
|
+
installingWorker: registration.installing,
|
|
46
|
+
onStateChange
|
|
47
|
+
});
|
|
48
|
+
return INSTALLATION_STATES.INSTALLING;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// It shouldn't normally be possible to get here, but just in case,
|
|
52
|
+
// listen for installations
|
|
53
|
+
registration.onupdatefound = () => {
|
|
54
|
+
// update state for this plugin to 'installing'
|
|
55
|
+
onStateChange(INSTALLATION_STATES.INSTALLING);
|
|
56
|
+
|
|
57
|
+
// also listen for the installing worker to become active
|
|
58
|
+
const installingWorker = registration.installing;
|
|
59
|
+
if (!installingWorker) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
handleInstallingWorker({
|
|
63
|
+
installingWorker,
|
|
64
|
+
onStateChange
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// and in the mean time, return null to show 'not installed'
|
|
69
|
+
return null;
|
|
70
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dhis2/analytics",
|
|
3
|
-
"version": "26.
|
|
3
|
+
"version": "26.12.1",
|
|
4
4
|
"main": "./build/cjs/index.js",
|
|
5
5
|
"module": "./build/es/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"validate-push": "yarn test"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@dhis2/app-runtime": "^3.
|
|
34
|
-
"@dhis2/cli-app-scripts": "^11.
|
|
33
|
+
"@dhis2/app-runtime": "^3.13.2",
|
|
34
|
+
"@dhis2/cli-app-scripts": "^11.8.0",
|
|
35
35
|
"@dhis2/cli-style": "^10.7.4",
|
|
36
36
|
"@dhis2/d2-i18n": "^1.1.0",
|
|
37
37
|
"@dhis2/ui": "^10.1.9",
|