asab_webui_shell 25.1.11 → 25.1.13
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/locationReplace.js +4 -16
- package/dist/config/ConfigReducer.js +1 -1
- package/dist/config/ConfigService.js +116 -137
- package/dist/containers/AdvancedMode/reducer.js +2 -2
- package/dist/containers/Alerts/index.js +18 -30
- package/dist/containers/Alerts/reducer.js +5 -6
- package/dist/containers/Application.js +531 -663
- package/dist/containers/AttentionRequired/reducer.js +2 -2
- package/dist/containers/FullscreenMode/reducer.js +2 -2
- package/dist/containers/Header/ApplicationScreenTitle/ApplicationScreenTitle.js +15 -16
- package/dist/containers/Header/ApplicationScreenTitle/index.js +6 -6
- package/dist/containers/Header/Help/HelpButton.js +17 -27
- package/dist/containers/Header/Help/HelpService.js +13 -24
- package/dist/containers/Header/Preview/PreviewFlag.js +6 -5
- package/dist/containers/Header/Preview/PreviewService.js +13 -24
- package/dist/containers/Header/index.js +15 -17
- package/dist/containers/Header/reducer.js +4 -4
- package/dist/containers/Navigation/index.js +35 -55
- package/dist/containers/Navigation/reducer.js +7 -13
- package/dist/containers/RouteErrorHandler/ErrorContainer.js +17 -19
- package/dist/containers/RouteErrorHandler/index.js +28 -44
- package/dist/containers/Router/ApplicationRouter.js +14 -16
- package/dist/containers/Router/index.js +26 -42
- package/dist/containers/Router/reducer.js +3 -3
- package/dist/containers/Sidebar/NavbarBrand.js +14 -23
- package/dist/containers/Sidebar/SidebarBottomItem.js +16 -15
- package/dist/containers/Sidebar/SidebarIcon.js +9 -7
- package/dist/containers/Sidebar/SidebarItem.js +70 -85
- package/dist/containers/Sidebar/SidebarItemRenderer.js +20 -20
- package/dist/containers/Sidebar/index.js +20 -36
- package/dist/containers/Sidebar/reducer.js +3 -3
- package/dist/containers/Sidepanel/Sidepanel.js +18 -26
- package/dist/containers/Toast/ToastComponent.js +12 -12
- package/dist/containers/Toast/ToastContainer.js +19 -30
- package/dist/containers/Toast/reducer.js +3 -6
- package/dist/index.js +5 -5
- package/dist/modules/about/AboutScreen.js +30 -38
- package/dist/modules/about/index.js +8 -26
- package/dist/modules/auth/api.js +110 -156
- package/dist/modules/auth/components/SessionExpirationAlert.js +10 -9
- package/dist/modules/auth/header.js +25 -23
- package/dist/modules/auth/index.js +440 -692
- package/dist/modules/auth/reducer.js +2 -2
- package/dist/modules/auth/screens/AccessControlScreen.js +24 -25
- package/dist/modules/auth/screens/InvitationScreen.js +89 -128
- package/dist/modules/i18n/dropdown.js +24 -23
- package/dist/modules/i18n/index.js +20 -33
- package/dist/modules/i18n/reducer.js +2 -2
- package/dist/modules/i18n/service.js +48 -102
- package/dist/modules/tenant/TenantDropdown.js +28 -27
- package/dist/modules/tenant/access/AccessDeniedCard.js +28 -54
- package/dist/modules/tenant/index.js +16 -29
- package/dist/modules/tenant/reducer.js +1 -1
- package/dist/modules/tenant/service.js +123 -207
- package/dist/screens/InvalidRouteScreen.js +10 -9
- package/dist/screens/SuspenseScreen.js +11 -20
- package/dist/screens/UnauthorizedAccessScreen.js +18 -21
- package/dist/services/AttentionRequiredService.js +117 -142
- package/dist/services/BrandingService.js +63 -80
- package/dist/services/HeaderService.js +47 -66
- package/dist/services/ReduxService.js +11 -17
- package/dist/services/TitleService.js +13 -24
- package/dist/theme/ThemeButton.js +13 -10
- package/dist/theme/ThemeReducer.js +1 -1
- package/dist/theme/ThemeService.js +25 -38
- package/package.json +1 -1
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.SidebarItem = exports.SidebarCollapsibleItem = void 0;
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
9
|
var _reactRouter = require("react-router");
|
|
13
10
|
var _reactRouterDom = require("react-router-dom");
|
|
@@ -16,47 +13,42 @@ var _reactRedux = require("react-redux");
|
|
|
16
13
|
var _reactstrap = require("reactstrap");
|
|
17
14
|
var _asab_webui_components = require("asab_webui_components");
|
|
18
15
|
var _SidebarIcon = _interopRequireDefault(require("./SidebarIcon"));
|
|
19
|
-
function
|
|
20
|
-
|
|
21
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
22
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
23
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
24
|
-
var SidebarItem = exports.SidebarItem = function SidebarItem(_ref) {
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
17
|
+
var SidebarItem = _ref => {
|
|
25
18
|
var _item$name;
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
beacon =
|
|
19
|
+
var {
|
|
20
|
+
item,
|
|
21
|
+
disabled,
|
|
22
|
+
isOpen,
|
|
23
|
+
setOpen,
|
|
24
|
+
isSmallResolution,
|
|
25
|
+
beacon = undefined
|
|
26
|
+
} = _ref;
|
|
33
27
|
var location = (0, _reactRouter.useLocation)();
|
|
34
|
-
var
|
|
35
|
-
t
|
|
36
|
-
|
|
28
|
+
var {
|
|
29
|
+
t
|
|
30
|
+
} = (0, _reactI18next.useTranslation)();
|
|
31
|
+
var isSidebarCollapsed = (0, _reactRedux.useSelector)(state => {
|
|
37
32
|
var _state$sidebar;
|
|
38
33
|
return (_state$sidebar = state.sidebar) === null || _state$sidebar === void 0 ? void 0 : _state$sidebar.isSidebarCollapsed;
|
|
39
34
|
});
|
|
40
|
-
var attentionRequired = (0, _reactRedux.useSelector)(
|
|
35
|
+
var attentionRequired = (0, _reactRedux.useSelector)(state => {
|
|
41
36
|
var _state$attentionrequi;
|
|
42
37
|
return (_state$attentionrequi = state.attentionrequired) === null || _state$attentionrequi === void 0 ? void 0 : _state$attentionrequi.beacon;
|
|
43
38
|
});
|
|
44
|
-
var
|
|
45
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
46
|
-
isActive = _useState2[0],
|
|
47
|
-
setActive = _useState2[1];
|
|
39
|
+
var [isActive, setActive] = (0, _react.useState)(false);
|
|
48
40
|
var lowercasedItemName = item === null || item === void 0 || (_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.toLowerCase();
|
|
49
41
|
// Attention requred flag
|
|
50
42
|
var itemBeacon = beacon ? beacon["beacon.".concat(lowercasedItemName)] : attentionRequired["beacon.".concat(lowercasedItemName)];
|
|
51
|
-
(0, _react.useEffect)(
|
|
43
|
+
(0, _react.useEffect)(() => {
|
|
52
44
|
if (isOpen && !isActive) {
|
|
53
45
|
setOpen(false);
|
|
54
46
|
}
|
|
55
47
|
setActive(item.url && (location.pathname === item.url || location.pathname.startsWith(item.url + '/')) ? true : false);
|
|
56
48
|
}, [location]);
|
|
57
|
-
return /*#__PURE__*/_react
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
58
50
|
className: "nav-item"
|
|
59
|
-
}, /*#__PURE__*/_react
|
|
51
|
+
}, /*#__PURE__*/_react.default.createElement(_reactRouterDom.Link, {
|
|
60
52
|
disabled: disabled,
|
|
61
53
|
to: item.url,
|
|
62
54
|
title: t("Sidebar|".concat(item.name)),
|
|
@@ -64,42 +56,43 @@ var SidebarItem = exports.SidebarItem = function SidebarItem(_ref) {
|
|
|
64
56
|
}, !isSidebarCollapsed || isSmallResolution ?
|
|
65
57
|
/*#__PURE__*/
|
|
66
58
|
//hide item.name if sidebar is collapsed
|
|
67
|
-
_react
|
|
59
|
+
_react.default.createElement("div", {
|
|
68
60
|
className: "d-flex align-items-center"
|
|
69
|
-
}, /*#__PURE__*/_react
|
|
61
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
70
62
|
className: "sidebar-item-name d-flex align-items-center flex-grow-1"
|
|
71
|
-
}, /*#__PURE__*/_react
|
|
63
|
+
}, /*#__PURE__*/_react.default.createElement(_SidebarIcon.default, {
|
|
72
64
|
icon: item.icon,
|
|
73
65
|
className: "pe-2"
|
|
74
|
-
}), /*#__PURE__*/_react
|
|
66
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
75
67
|
className: "sidebar-item-name"
|
|
76
|
-
}, t("Sidebar|".concat(item.name)))), itemBeacon && /*#__PURE__*/_react
|
|
68
|
+
}, t("Sidebar|".concat(item.name)))), itemBeacon && /*#__PURE__*/_react.default.createElement(_asab_webui_components.AttentionBadge, {
|
|
77
69
|
className: "sidebar-badge-collapsed",
|
|
78
70
|
content: itemBeacon
|
|
79
|
-
})) : /*#__PURE__*/_react
|
|
71
|
+
})) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_SidebarIcon.default, {
|
|
80
72
|
icon: item.icon,
|
|
81
73
|
className: "pe-2"
|
|
82
|
-
}), itemBeacon && /*#__PURE__*/_react
|
|
74
|
+
}), itemBeacon && /*#__PURE__*/_react.default.createElement(_asab_webui_components.AttentionBadge, {
|
|
83
75
|
className: "sidebar-badge-collapsed",
|
|
84
76
|
content: itemBeacon
|
|
85
77
|
}))));
|
|
86
78
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
79
|
+
exports.SidebarItem = SidebarItem;
|
|
80
|
+
var SidebarCollapsibleItem = _ref2 => {
|
|
81
|
+
var {
|
|
82
|
+
item,
|
|
83
|
+
disabled,
|
|
84
|
+
isSmallResolution
|
|
85
|
+
} = _ref2;
|
|
86
|
+
var [isOpen, setOpen] = (0, _react.useState)(false);
|
|
95
87
|
var location = (0, _reactRouter.useLocation)();
|
|
96
|
-
var
|
|
97
|
-
t
|
|
98
|
-
|
|
88
|
+
var {
|
|
89
|
+
t
|
|
90
|
+
} = (0, _reactI18next.useTranslation)();
|
|
91
|
+
var isSidebarCollapsed = (0, _reactRedux.useSelector)(state => {
|
|
99
92
|
var _state$sidebar2;
|
|
100
93
|
return (_state$sidebar2 = state.sidebar) === null || _state$sidebar2 === void 0 ? void 0 : _state$sidebar2.isSidebarCollapsed;
|
|
101
94
|
});
|
|
102
|
-
var attentionRequired = (0, _reactRedux.useSelector)(
|
|
95
|
+
var attentionRequired = (0, _reactRedux.useSelector)(state => {
|
|
103
96
|
var _state$attentionrequi2;
|
|
104
97
|
return (_state$attentionrequi2 = state.attentionrequired) === null || _state$attentionrequi2 === void 0 ? void 0 : _state$attentionrequi2.beacon;
|
|
105
98
|
});
|
|
@@ -108,77 +101,68 @@ var SidebarCollapsibleItem = exports.SidebarCollapsibleItem = function SidebarCo
|
|
|
108
101
|
// Attention required flag
|
|
109
102
|
var itemsBeacon = parentBeacon(attentionRequired, "beacon.".concat(lowercasedItemName), lowercasedItemName);
|
|
110
103
|
// Summarize parent beacon count based on children
|
|
111
|
-
var beaconCount = itemsBeacon && Object.keys(itemsBeacon).length > 0 ? Object.values(itemsBeacon).reduce(
|
|
104
|
+
var beaconCount = itemsBeacon && Object.keys(itemsBeacon).length > 0 ? Object.values(itemsBeacon).reduce((sum, current) => {
|
|
112
105
|
return sum + (current.count || 0); // Ensure we sum only valid count values
|
|
113
106
|
}, 0) : 0;
|
|
114
107
|
|
|
115
108
|
// Should collapsed item uncollapse
|
|
116
|
-
(0, _react.useEffect)(
|
|
109
|
+
(0, _react.useEffect)(() => {
|
|
117
110
|
if (item.children && !isOpen) {
|
|
118
|
-
var
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
var child = _step.value;
|
|
123
|
-
if (location.pathname.includes(child.url)) {
|
|
124
|
-
setOpen(true);
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
111
|
+
for (var child of item.children) {
|
|
112
|
+
if (location.pathname.includes(child.url)) {
|
|
113
|
+
setOpen(true);
|
|
114
|
+
break;
|
|
127
115
|
}
|
|
128
|
-
} catch (err) {
|
|
129
|
-
_iterator.e(err);
|
|
130
|
-
} finally {
|
|
131
|
-
_iterator.f();
|
|
132
116
|
}
|
|
133
117
|
}
|
|
134
118
|
}, [isOpen]);
|
|
135
|
-
var onClickOpen =
|
|
119
|
+
var onClickOpen = e => {
|
|
136
120
|
e.preventDefault();
|
|
137
121
|
setOpen(!isOpen);
|
|
138
122
|
};
|
|
139
|
-
return /*#__PURE__*/_react
|
|
123
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
140
124
|
className: "nav-item sidebar-collapsible" + (isOpen ? " open" : "")
|
|
141
|
-
}, /*#__PURE__*/_react
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
142
126
|
onClick: onClickOpen,
|
|
143
127
|
title: t("Sidebar|".concat(item.name)),
|
|
144
128
|
className: "d-flex align-items-center nav-link" + (isOpen ? " open" : ""),
|
|
145
129
|
href: "#"
|
|
146
|
-
}, !isSidebarCollapsed || isSmallResolution ? /*#__PURE__*/_react
|
|
130
|
+
}, !isSidebarCollapsed || isSmallResolution ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
147
131
|
className: "d-flex flex-column justify-content-center align-items-center pe-2"
|
|
148
|
-
}, /*#__PURE__*/_react
|
|
132
|
+
}, /*#__PURE__*/_react.default.createElement(_SidebarIcon.default, {
|
|
149
133
|
icon: item.icon
|
|
150
|
-
}), /*#__PURE__*/_react
|
|
134
|
+
}), /*#__PURE__*/_react.default.createElement("i", {
|
|
151
135
|
className: "bi bi-chevron-down"
|
|
152
|
-
})), /*#__PURE__*/_react
|
|
136
|
+
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
153
137
|
className: "sidebar-item-name"
|
|
154
|
-
}, t("Sidebar|".concat(item.name))), /*#__PURE__*/_react
|
|
138
|
+
}, t("Sidebar|".concat(item.name))), /*#__PURE__*/_react.default.createElement("div", {
|
|
155
139
|
className: "ms-auto"
|
|
156
|
-
}, " ", beaconCount > 0 && /*#__PURE__*/_react
|
|
140
|
+
}, " ", beaconCount > 0 && /*#__PURE__*/_react.default.createElement(_asab_webui_components.AttentionBadge, {
|
|
157
141
|
className: "sidebar-badge-collapsed",
|
|
158
142
|
content: {
|
|
159
143
|
count: beaconCount
|
|
160
144
|
}
|
|
161
|
-
}))) : /*#__PURE__*/_react
|
|
145
|
+
}))) : /*#__PURE__*/_react.default.createElement("div", {
|
|
162
146
|
className: "d-flex flex-column justify-content-center align-items-center"
|
|
163
|
-
}, /*#__PURE__*/_react
|
|
147
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
164
148
|
className: "d-flex flex-column justify-content-center align-items-center"
|
|
165
|
-
}, /*#__PURE__*/_react
|
|
149
|
+
}, /*#__PURE__*/_react.default.createElement(_SidebarIcon.default, {
|
|
166
150
|
icon: item.icon
|
|
167
|
-
}), /*#__PURE__*/_react
|
|
151
|
+
}), /*#__PURE__*/_react.default.createElement("i", {
|
|
168
152
|
className: "bi bi-chevron-down"
|
|
169
|
-
}), " "), beaconCount > 0 && /*#__PURE__*/_react
|
|
153
|
+
}), " "), beaconCount > 0 && /*#__PURE__*/_react.default.createElement("div", {
|
|
170
154
|
className: "mt-1 w-100 justify-content-center d-flex"
|
|
171
|
-
}, /*#__PURE__*/_react
|
|
155
|
+
}, /*#__PURE__*/_react.default.createElement(_asab_webui_components.AttentionBadge, {
|
|
172
156
|
className: "sidebar-badge-collapsed",
|
|
173
157
|
content: {
|
|
174
158
|
count: beaconCount
|
|
175
159
|
}
|
|
176
|
-
}))))), /*#__PURE__*/_react
|
|
160
|
+
}))))), /*#__PURE__*/_react.default.createElement(_reactstrap.Collapse, {
|
|
177
161
|
isOpen: isOpen,
|
|
178
162
|
className: "sidebar-collapse"
|
|
179
|
-
}, item.children.map(
|
|
163
|
+
}, item.children.map((child, idx) => {
|
|
180
164
|
var _child$name;
|
|
181
|
-
return /*#__PURE__*/_react
|
|
165
|
+
return /*#__PURE__*/_react.default.createElement(SidebarItem, {
|
|
182
166
|
key: idx,
|
|
183
167
|
item: child,
|
|
184
168
|
disabled: disabled,
|
|
@@ -191,19 +175,20 @@ var SidebarCollapsibleItem = exports.SidebarCollapsibleItem = function SidebarCo
|
|
|
191
175
|
};
|
|
192
176
|
|
|
193
177
|
// Filter beacon for the parent
|
|
194
|
-
|
|
178
|
+
exports.SidebarCollapsibleItem = SidebarCollapsibleItem;
|
|
179
|
+
var parentBeacon = (data, prefix, itemName) => {
|
|
195
180
|
if (!data) {
|
|
196
181
|
return {};
|
|
197
182
|
}
|
|
198
|
-
return Object.keys(data).filter(
|
|
199
|
-
return key.startsWith(prefix);
|
|
200
|
-
}).reduce(function (result, key) {
|
|
183
|
+
return Object.keys(data).filter(key => key.startsWith(prefix)).reduce((result, key) => {
|
|
201
184
|
result[key.replace(".".concat(itemName), '')] = data[key];
|
|
202
185
|
return result;
|
|
203
186
|
}, {});
|
|
204
187
|
};
|
|
205
188
|
|
|
206
189
|
// Filter beacon for the children
|
|
207
|
-
var childBeacon =
|
|
208
|
-
return data[key] ?
|
|
190
|
+
var childBeacon = (data, key) => {
|
|
191
|
+
return data[key] ? {
|
|
192
|
+
[key]: data[key]
|
|
193
|
+
} : {};
|
|
209
194
|
};
|
|
@@ -7,24 +7,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.SidebarItemRenderer = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _SidebarItem = require("./SidebarItem");
|
|
10
|
-
var SidebarItemRenderer =
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
isSmallResolution =
|
|
15
|
-
|
|
10
|
+
var SidebarItemRenderer = _ref => {
|
|
11
|
+
var {
|
|
12
|
+
sidebarItems,
|
|
13
|
+
sessionExpired,
|
|
14
|
+
isSmallResolution = undefined
|
|
15
|
+
} = _ref;
|
|
16
|
+
return /*#__PURE__*/_react.default.createElement("nav", {
|
|
16
17
|
className: "nav flex-column"
|
|
17
|
-
}, sidebarItems.map(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
18
|
+
}, sidebarItems.map((item, idx) => item.children ? /*#__PURE__*/_react.default.createElement(_SidebarItem.SidebarCollapsibleItem, {
|
|
19
|
+
key: idx,
|
|
20
|
+
item: item,
|
|
21
|
+
disabled: sessionExpired,
|
|
22
|
+
isSmallResolution: isSmallResolution
|
|
23
|
+
}) : /*#__PURE__*/_react.default.createElement(_SidebarItem.SidebarItem, {
|
|
24
|
+
key: idx,
|
|
25
|
+
item: item,
|
|
26
|
+
disabled: sessionExpired,
|
|
27
|
+
isSmallResolution: isSmallResolution
|
|
28
|
+
})));
|
|
29
|
+
};
|
|
30
|
+
exports.SidebarItemRenderer = SidebarItemRenderer;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
7
|
+
exports.default = Sidebar;
|
|
10
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
9
|
var _reactRedux = require("react-redux");
|
|
12
10
|
var _reactstrap = require("reactstrap");
|
|
@@ -15,34 +13,22 @@ var _actions = require("../../actions");
|
|
|
15
13
|
var _BrandImage = require("../../components/branding/BrandImage");
|
|
16
14
|
require("./sidebar.scss");
|
|
17
15
|
var _SidebarItemRenderer = require("./SidebarItemRenderer");
|
|
18
|
-
function
|
|
19
|
-
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; }
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
17
|
function Sidebar(props) {
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var _useState3 = (0, _react.useState)({}),
|
|
26
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
27
|
-
sidebarBottomBranding = _useState4[0],
|
|
28
|
-
setSidebarBottomBranding = _useState4[1];
|
|
29
|
-
var _useState5 = (0, _react.useState)(window.innerWidth),
|
|
30
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
31
|
-
windowWidth = _useState6[0],
|
|
32
|
-
setWindowWidth = _useState6[1];
|
|
33
|
-
var sidebarItems = (0, _reactRedux.useSelector)(function (state) {
|
|
18
|
+
var [isSmallResolution, setIsSmallResolution] = (0, _react.useState)(false);
|
|
19
|
+
var [sidebarBottomBranding, setSidebarBottomBranding] = (0, _react.useState)({});
|
|
20
|
+
var [windowWidth, setWindowWidth] = (0, _react.useState)(window.innerWidth);
|
|
21
|
+
var sidebarItems = (0, _reactRedux.useSelector)(state => {
|
|
34
22
|
var _state$navigation;
|
|
35
23
|
return (_state$navigation = state.navigation) === null || _state$navigation === void 0 ? void 0 : _state$navigation.navItems;
|
|
36
24
|
});
|
|
37
|
-
var sessionExpired = (0, _reactRedux.useSelector)(
|
|
25
|
+
var sessionExpired = (0, _reactRedux.useSelector)(state => {
|
|
38
26
|
var _state$auth;
|
|
39
27
|
return (_state$auth = state.auth) === null || _state$auth === void 0 ? void 0 : _state$auth.sessionExpired;
|
|
40
28
|
});
|
|
41
|
-
var theme = (0, _reactRedux.useSelector)(
|
|
42
|
-
return state.theme;
|
|
43
|
-
});
|
|
29
|
+
var theme = (0, _reactRedux.useSelector)(state => state.theme);
|
|
44
30
|
var dispatch = (0, _reactRedux.useDispatch)();
|
|
45
|
-
(0, _react.useEffect)(
|
|
31
|
+
(0, _react.useEffect)(() => {
|
|
46
32
|
// Collapse sidebar if innerWidth is smaller or equal to 944px on page initialization
|
|
47
33
|
if (window.innerWidth <= 944) {
|
|
48
34
|
dispatch({
|
|
@@ -51,35 +37,33 @@ function Sidebar(props) {
|
|
|
51
37
|
});
|
|
52
38
|
}
|
|
53
39
|
}, []);
|
|
54
|
-
(0, _react.useEffect)(
|
|
40
|
+
(0, _react.useEffect)(() => {
|
|
55
41
|
setSidebarBottomBranding((0, _BrandImage.getBrandImage)(props, theme, 'sidebarLogo'));
|
|
56
42
|
}, [theme]);
|
|
57
|
-
var toggleSidebarModal =
|
|
58
|
-
|
|
59
|
-
};
|
|
60
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, windowWidth <= 768 ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
43
|
+
var toggleSidebarModal = () => setIsSmallResolution(!isSmallResolution);
|
|
44
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, windowWidth <= 768 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
61
45
|
onClick: toggleSidebarModal
|
|
62
|
-
}, /*#__PURE__*/_react
|
|
46
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
63
47
|
className: "bi ms-2 bi-list text-primary fs-1"
|
|
64
|
-
})), /*#__PURE__*/_react
|
|
48
|
+
})), /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
|
|
65
49
|
isOpen: isSmallResolution,
|
|
66
50
|
toggle: toggleSidebarModal,
|
|
67
51
|
className: "left"
|
|
68
|
-
}, /*#__PURE__*/_react
|
|
52
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
69
53
|
className: "sidebar-modal"
|
|
70
|
-
}, /*#__PURE__*/_react
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement(_SidebarItemRenderer.SidebarItemRenderer, {
|
|
71
55
|
sidebarItems: sidebarItems,
|
|
72
56
|
sessionExpired: sessionExpired,
|
|
73
57
|
isSmallResolution: isSmallResolution
|
|
74
|
-
})))) : /*#__PURE__*/_react
|
|
58
|
+
})))) : /*#__PURE__*/_react.default.createElement("div", {
|
|
75
59
|
className: "h-100",
|
|
76
60
|
id: "app-sidebar"
|
|
77
|
-
}, /*#__PURE__*/_react
|
|
61
|
+
}, /*#__PURE__*/_react.default.createElement(_SidebarItemRenderer.SidebarItemRenderer, {
|
|
78
62
|
sidebarItems: sidebarItems,
|
|
79
63
|
sessionExpired: sessionExpired
|
|
80
|
-
}), /*#__PURE__*/_react
|
|
64
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
81
65
|
className: "flex-fill"
|
|
82
|
-
}, "\xA0"), /*#__PURE__*/_react
|
|
66
|
+
}, "\xA0"), /*#__PURE__*/_react.default.createElement(_SidebarBottomItem.default, {
|
|
83
67
|
sidebarLogo: sidebarBottomBranding,
|
|
84
68
|
disabled: sessionExpired
|
|
85
69
|
})));
|
|
@@ -4,15 +4,15 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports
|
|
7
|
+
exports.default = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _actions = require("../../actions");
|
|
10
10
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
12
|
var initialState = {
|
|
13
13
|
isSidebarCollapsed: false
|
|
14
14
|
};
|
|
15
|
-
var _default = exports
|
|
15
|
+
var _default = exports.default = function _default() {
|
|
16
16
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
17
17
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
18
18
|
switch (action.type) {
|
|
@@ -1,29 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
|
-
exports
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
6
|
+
exports.default = Sidepanel;
|
|
10
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
8
|
var _reactstrap = require("reactstrap");
|
|
12
9
|
var _asab_webui_components = require("asab_webui_components");
|
|
13
10
|
require("./Sidepanel.scss");
|
|
14
|
-
function
|
|
15
|
-
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; }
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
12
|
// Application sidepanel
|
|
17
13
|
function Sidepanel(props) {
|
|
18
|
-
var
|
|
19
|
-
publish
|
|
20
|
-
subscribe
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
(0, _react.useEffect)(function () {
|
|
26
|
-
var handleEvent = function handleEvent(message) {
|
|
14
|
+
var {
|
|
15
|
+
publish,
|
|
16
|
+
subscribe
|
|
17
|
+
} = (0, _asab_webui_components.usePubSub)();
|
|
18
|
+
var [sidepanelContent, setSidepanelContent] = (0, _react.useState)(undefined);
|
|
19
|
+
(0, _react.useEffect)(() => {
|
|
20
|
+
var handleEvent = message => {
|
|
27
21
|
if (message.mode === 'close') {
|
|
28
22
|
setSidepanelContent(undefined);
|
|
29
23
|
} else {
|
|
@@ -33,28 +27,26 @@ function Sidepanel(props) {
|
|
|
33
27
|
// Subscription to Application.panel!
|
|
34
28
|
var subscriptionSidepanel = subscribe('Application.panel!', handleEvent);
|
|
35
29
|
// Clean up subscription on component unmount
|
|
36
|
-
return
|
|
30
|
+
return () => {
|
|
37
31
|
subscriptionSidepanel();
|
|
38
32
|
};
|
|
39
33
|
}, []);
|
|
40
34
|
|
|
41
35
|
// TODO: think of how to automatically close the sidepanel on screen leave
|
|
42
|
-
return /*#__PURE__*/_react
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(_reactstrap.Collapse, {
|
|
43
37
|
id: "app-sidepanel",
|
|
44
38
|
isOpen: sidepanelContent != undefined ? true : false,
|
|
45
39
|
horizontal: true
|
|
46
|
-
}, /*#__PURE__*/_react
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_reactstrap.Card, {
|
|
47
41
|
className: "app-sidepanel-card h-100"
|
|
48
|
-
}, /*#__PURE__*/_react
|
|
42
|
+
}, /*#__PURE__*/_react.default.createElement(_reactstrap.CardBody, {
|
|
49
43
|
className: "w-100 h-100 app-sidepanel-card-body"
|
|
50
|
-
}, sidepanelContent), /*#__PURE__*/_react
|
|
44
|
+
}, sidepanelContent), /*#__PURE__*/_react.default.createElement("div", {
|
|
51
45
|
className: "app-sidepanel-chevron-wrapper"
|
|
52
|
-
}, /*#__PURE__*/_react
|
|
46
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
53
47
|
className: "app-sidepanel-chevron bi bi-chevron-right",
|
|
54
|
-
onClick:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
});
|
|
58
|
-
}
|
|
48
|
+
onClick: () => publish('Application.panel!', {
|
|
49
|
+
mode: 'close'
|
|
50
|
+
})
|
|
59
51
|
}))));
|
|
60
52
|
}
|
|
@@ -12,20 +12,20 @@ var _actions = require("../../actions");
|
|
|
12
12
|
|
|
13
13
|
// Component for displaying Toast messages
|
|
14
14
|
function ToastComponent(_ref) {
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
var {
|
|
16
|
+
app,
|
|
17
|
+
content,
|
|
18
|
+
dispatch
|
|
19
|
+
} = _ref;
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(_reactstrap.Toast, {
|
|
19
21
|
fade: true,
|
|
20
22
|
className: "toast d-print-none"
|
|
21
|
-
}, /*#__PURE__*/_react
|
|
22
|
-
toggle:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
});
|
|
27
|
-
},
|
|
23
|
+
}, /*#__PURE__*/_react.default.createElement(_reactstrap.ToastHeader, {
|
|
24
|
+
toggle: () => dispatch({
|
|
25
|
+
type: _actions.DEL_TOAST,
|
|
26
|
+
key: content.key
|
|
27
|
+
}),
|
|
28
28
|
className: "toast-header",
|
|
29
29
|
icon: content !== null && content !== void 0 && content.level ? "".concat(content.level) : 'secondary'
|
|
30
|
-
}, content !== null && content !== void 0 && content.title ? content.title : ':-('), /*#__PURE__*/_react
|
|
30
|
+
}, content !== null && content !== void 0 && content.title ? content.title : ':-('), /*#__PURE__*/_react.default.createElement(_reactstrap.ToastBody, null, content !== null && content !== void 0 && content.message ? content.message : 'Ooops, mistake is on our side. Message has not been defined!'));
|
|
31
31
|
}
|