asab_webui_shell 25.1.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/CHANGELOG.md +218 -0
- package/LICENSE +28 -0
- package/README.md +3 -0
- package/dist/actions.js +22 -0
- package/dist/components/branding/BrandImage.js +72 -0
- package/dist/components/locationReplace.js +51 -0
- package/dist/config/ConfigReducer.js +22 -0
- package/dist/config/ConfigService.js +169 -0
- package/dist/containers/AdvancedMode/reducer.js +28 -0
- package/dist/containers/Alerts/alerts.scss +9 -0
- package/dist/containers/Alerts/index.js +81 -0
- package/dist/containers/Alerts/reducer.js +68 -0
- package/dist/containers/Application.js +773 -0
- package/dist/containers/Application.scss +104 -0
- package/dist/containers/AttentionRequired/reducer.js +30 -0
- package/dist/containers/FullscreenMode/reducer.js +28 -0
- package/dist/containers/Header/ApplicationScreenTitle/ApplicationScreenTitle.js +47 -0
- package/dist/containers/Header/ApplicationScreenTitle/ApplicationScreenTitle.scss +8 -0
- package/dist/containers/Header/ApplicationScreenTitle/index.js +31 -0
- package/dist/containers/Header/Help/HelpButton.js +58 -0
- package/dist/containers/Header/Help/HelpButton.scss +15 -0
- package/dist/containers/Header/Help/HelpService.js +34 -0
- package/dist/containers/Header/Preview/PreviewFlag.js +34 -0
- package/dist/containers/Header/Preview/PreviewService.js +34 -0
- package/dist/containers/Header/header.scss +24 -0
- package/dist/containers/Header/index.js +39 -0
- package/dist/containers/Header/reducer.js +53 -0
- package/dist/containers/Navigation/index.js +66 -0
- package/dist/containers/Navigation/reducer.js +56 -0
- package/dist/containers/RouteErrorHandler/ErrorContainer.js +46 -0
- package/dist/containers/RouteErrorHandler/index.js +80 -0
- package/dist/containers/Router/ApplicationRouter.js +78 -0
- package/dist/containers/Router/index.js +50 -0
- package/dist/containers/Router/reducer.js +28 -0
- package/dist/containers/Sidebar/NavbarBrand.js +59 -0
- package/dist/containers/Sidebar/SidebarBottomItem.js +55 -0
- package/dist/containers/Sidebar/SidebarIcon.js +21 -0
- package/dist/containers/Sidebar/SidebarItem.js +209 -0
- package/dist/containers/Sidebar/SidebarItemRenderer.js +30 -0
- package/dist/containers/Sidebar/index.js +86 -0
- package/dist/containers/Sidebar/reducer.js +35 -0
- package/dist/containers/Sidebar/sidebar.scss +176 -0
- package/dist/containers/Sidepanel/Sidepanel.js +60 -0
- package/dist/containers/Sidepanel/Sidepanel.scss +20 -0
- package/dist/containers/Toast/ToastComponent.js +31 -0
- package/dist/containers/Toast/ToastComponent.jsx +28 -0
- package/dist/containers/Toast/ToastContainer.js +80 -0
- package/dist/containers/Toast/ToastContainer.jsx +59 -0
- package/dist/containers/Toast/reducer.js +55 -0
- package/dist/containers/Toast/reducer.jsx +45 -0
- package/dist/index.js +48 -0
- package/dist/modules/about/AboutScreen.js +84 -0
- package/dist/modules/about/index.js +41 -0
- package/dist/modules/auth/actions.js +11 -0
- package/dist/modules/auth/api.js +214 -0
- package/dist/modules/auth/components/SessionExpirationAlert.js +35 -0
- package/dist/modules/auth/header.js +109 -0
- package/dist/modules/auth/header.scss +9 -0
- package/dist/modules/auth/index.js +761 -0
- package/dist/modules/auth/reducer.js +36 -0
- package/dist/modules/auth/screens/AccessControlScreen.js +78 -0
- package/dist/modules/auth/screens/InvitationScreen.js +161 -0
- package/dist/modules/i18n/actions.js +7 -0
- package/dist/modules/i18n/dropdown.js +77 -0
- package/dist/modules/i18n/index.js +44 -0
- package/dist/modules/i18n/reducer.js +26 -0
- package/dist/modules/i18n/service.js +158 -0
- package/dist/modules/tenant/TenantDropdown.js +53 -0
- package/dist/modules/tenant/access/AccessDeniedCard.js +107 -0
- package/dist/modules/tenant/access/AccessDeniedCard.scss +6 -0
- package/dist/modules/tenant/actions.js +10 -0
- package/dist/modules/tenant/index.js +41 -0
- package/dist/modules/tenant/reducer.js +26 -0
- package/dist/modules/tenant/service.js +228 -0
- package/dist/screens/InvalidRouteScreen.js +30 -0
- package/dist/screens/InvalidRouteScreen.scss +19 -0
- package/dist/screens/SuspenseScreen.js +43 -0
- package/dist/screens/SuspenseScreen.scss +9 -0
- package/dist/screens/UnauthorizedAccessScreen.js +79 -0
- package/dist/screens/UnauthorizedAccessScreen.scss +19 -0
- package/dist/services/AttentionRequiredService.js +169 -0
- package/dist/services/BrandingService.js +104 -0
- package/dist/services/HeaderService.js +84 -0
- package/dist/services/ReduxService.js +25 -0
- package/dist/services/TitleService.js +45 -0
- package/dist/theme/ThemeButton.js +39 -0
- package/dist/theme/ThemeReducer.js +20 -0
- package/dist/theme/ThemeService.js +52 -0
- package/dist/theme/actions.js +7 -0
- package/package.json +41 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#app {
|
|
2
|
+
height: 100vh;
|
|
3
|
+
overflow: hidden; /* This disable visible scroll of the whole app container for some browsers (Chrome, etc.) - Dont remove it unless handled different way */
|
|
4
|
+
|
|
5
|
+
display: grid;
|
|
6
|
+
grid-template-columns: 150px 1fr;
|
|
7
|
+
grid-template-rows: 65px 1fr;
|
|
8
|
+
grid-column-gap: 0px;
|
|
9
|
+
grid-row-gap: 0px;
|
|
10
|
+
|
|
11
|
+
transition: all 0.2s linear; // This is speed of sidebar collapsing
|
|
12
|
+
|
|
13
|
+
> #app-brandimage {
|
|
14
|
+
grid-area: 1 / 1 / 2 / 2;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
> #app-header {
|
|
18
|
+
grid-area: 1 / 2 / 2 / 4;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
> #app-sidebar {
|
|
22
|
+
grid-area: 2 / 1 / 3 / 2;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
> #app-main {
|
|
26
|
+
grid-area: 2 / 2 / 4 / 3;
|
|
27
|
+
overflow: auto;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
> #app-sidepanel {
|
|
31
|
+
grid-area: 2/ 3 / 4 / 4;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
#app-networking-indicator {
|
|
35
|
+
position: fixed;
|
|
36
|
+
z-index: 2000;
|
|
37
|
+
|
|
38
|
+
width: 100%;
|
|
39
|
+
height: 7px;
|
|
40
|
+
transition: all 0.1s linear;
|
|
41
|
+
|
|
42
|
+
opacity: 100%;
|
|
43
|
+
|
|
44
|
+
&.transparent {
|
|
45
|
+
opacity: 0%;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
body {
|
|
51
|
+
&.fullscreen {
|
|
52
|
+
#app-header > ul > li:not(.fullscreen-visible) {
|
|
53
|
+
display: none;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
#app-sidebar {
|
|
57
|
+
opacity: 0;
|
|
58
|
+
transform: translateX(-100%);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
#app-main {
|
|
62
|
+
grid-area: 2/1/4/4 !important;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
#app-sidebar {
|
|
67
|
+
transition: opacity 0.5s ease, transform 0.5s ease;
|
|
68
|
+
opacity: 1;
|
|
69
|
+
transform: translateX(0);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// This is for printing
|
|
74
|
+
|
|
75
|
+
@media print {
|
|
76
|
+
|
|
77
|
+
#app {
|
|
78
|
+
grid-template-columns: 0px 1fr;
|
|
79
|
+
grid-template-rows: 0px 1fr;
|
|
80
|
+
grid-column-gap: 0px;
|
|
81
|
+
grid-row-gap: 0px;
|
|
82
|
+
|
|
83
|
+
// No brand image when printing
|
|
84
|
+
> #app-brandimage {
|
|
85
|
+
display: none;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// No header when printing
|
|
89
|
+
> #app-header {
|
|
90
|
+
display: none;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// No sidebar when printing
|
|
94
|
+
> #app-sidebar {
|
|
95
|
+
display: none;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
> #app-main {
|
|
99
|
+
overflow-y: visible; // We want the full content to be displayed
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = attentionRequiredReducer;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _actions = require("../../actions");
|
|
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["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
|
+
var initialState = {
|
|
13
|
+
beacon: {}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// Reducer for attention required, returning beacon
|
|
17
|
+
function attentionRequiredReducer() {
|
|
18
|
+
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
19
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
20
|
+
switch (action.type) {
|
|
21
|
+
case _actions.SET_ATTENTION_REQUIRED_BEACON:
|
|
22
|
+
{
|
|
23
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
24
|
+
beacon: action.beacon
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
default:
|
|
28
|
+
return state;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = fullscreenModeReducer;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _actions = require("../../actions");
|
|
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["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
|
+
var initialState = {
|
|
13
|
+
status: 'off'
|
|
14
|
+
};
|
|
15
|
+
function fullscreenModeReducer() {
|
|
16
|
+
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
17
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
18
|
+
switch (action.type) {
|
|
19
|
+
case _actions.SET_FULLSCREEN_MODE:
|
|
20
|
+
{
|
|
21
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
22
|
+
status: action.status
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
default:
|
|
26
|
+
return state;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactRedux = require("react-redux");
|
|
10
|
+
var _reactI18next = require("react-i18next");
|
|
11
|
+
require("./ApplicationScreenTitle.scss");
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(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
|
+
var ApplicationScreenTitle = function ApplicationScreenTitle(props) {
|
|
15
|
+
var _props$routes;
|
|
16
|
+
var subtitle = (0, _reactRedux.useSelector)(function (state) {
|
|
17
|
+
var _state$header;
|
|
18
|
+
return (_state$header = state.header) === null || _state$header === void 0 ? void 0 : _state$header.subtitle;
|
|
19
|
+
});
|
|
20
|
+
var title = (0, _reactRedux.useSelector)(function (state) {
|
|
21
|
+
var _state$config;
|
|
22
|
+
return (_state$config = state.config) === null || _state$config === void 0 ? void 0 : _state$config.title;
|
|
23
|
+
});
|
|
24
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
25
|
+
t = _useTranslation.t;
|
|
26
|
+
var route = (_props$routes = props.routes) === null || _props$routes === void 0 ? void 0 : _props$routes[0];
|
|
27
|
+
var routeName = (0, _react.useMemo)(function () {
|
|
28
|
+
if (route && route.name) {
|
|
29
|
+
return route.name;
|
|
30
|
+
} else {
|
|
31
|
+
return title;
|
|
32
|
+
}
|
|
33
|
+
}, [route]);
|
|
34
|
+
(0, _react.useEffect)(function () {
|
|
35
|
+
document.title = title && routeName ? "".concat(title, " | ").concat(routeName) : title;
|
|
36
|
+
}, [routeName, t]);
|
|
37
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
38
|
+
className: "application-screen-title text-primary"
|
|
39
|
+
}, /*#__PURE__*/_react["default"].createElement("h4", {
|
|
40
|
+
className: "m-0"
|
|
41
|
+
}, t("ApplicationScreenTitle|".concat(routeName))), subtitle && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
|
|
42
|
+
className: "px-2 subtitle-separator"
|
|
43
|
+
}, "|"), /*#__PURE__*/_react["default"].createElement("h5", {
|
|
44
|
+
className: "m-0"
|
|
45
|
+
}, subtitle)));
|
|
46
|
+
};
|
|
47
|
+
var _default = exports["default"] = ApplicationScreenTitle;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactRedux = require("react-redux");
|
|
10
|
+
var _reactRouterDom = require("react-router-dom");
|
|
11
|
+
var _ApplicationScreenTitle = _interopRequireDefault(require("./ApplicationScreenTitle"));
|
|
12
|
+
var ApplicationTitleRouter = function ApplicationTitleRouter(props) {
|
|
13
|
+
var routes = (0, _reactRedux.useSelector)(function (state) {
|
|
14
|
+
var _state$router;
|
|
15
|
+
return (_state$router = state.router) === null || _state$router === void 0 ? void 0 : _state$router.routes;
|
|
16
|
+
});
|
|
17
|
+
var filteredRoutes = filterRoutesByMatch(routes);
|
|
18
|
+
return /*#__PURE__*/_react["default"].createElement(_ApplicationScreenTitle["default"], {
|
|
19
|
+
app: props.app,
|
|
20
|
+
routes: filteredRoutes
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
var _default = exports["default"] = ApplicationTitleRouter;
|
|
24
|
+
function filterRoutesByMatch(routes) {
|
|
25
|
+
return routes.filter(function (route) {
|
|
26
|
+
var match = (0, _reactRouterDom.useMatch)({
|
|
27
|
+
path: "".concat(route.path)
|
|
28
|
+
});
|
|
29
|
+
return match;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = HelpButton;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _reactRedux = require("react-redux");
|
|
13
|
+
var _reactstrap = require("reactstrap");
|
|
14
|
+
require("./HelpButton.scss");
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
16
|
+
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; }
|
|
17
|
+
function HelpButton() {
|
|
18
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
19
|
+
t = _useTranslation.t;
|
|
20
|
+
var _useState = (0, _react.useState)(false),
|
|
21
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
22
|
+
modal = _useState2[0],
|
|
23
|
+
setModal = _useState2[1];
|
|
24
|
+
var path = (0, _reactRedux.useSelector)(function (state) {
|
|
25
|
+
return state === null || state === void 0 ? void 0 : state.header.helpPath;
|
|
26
|
+
});
|
|
27
|
+
if (path == undefined) return null;
|
|
28
|
+
var toggle = function toggle() {
|
|
29
|
+
return setModal(!modal);
|
|
30
|
+
};
|
|
31
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.NavLink, {
|
|
32
|
+
className: "help-nav-link",
|
|
33
|
+
onClick: toggle,
|
|
34
|
+
title: t("HelpButton|Show help info")
|
|
35
|
+
}, t("HelpButton|Help")), /*#__PURE__*/_react["default"].createElement(_reactstrap.Modal, {
|
|
36
|
+
isOpen: modal,
|
|
37
|
+
toggle: toggle,
|
|
38
|
+
className: "help-modal-dialog"
|
|
39
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactstrap.Card, {
|
|
40
|
+
className: "help-card"
|
|
41
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactstrap.CardHeader, {
|
|
42
|
+
className: "card-header-flex"
|
|
43
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
44
|
+
className: "flex-fill"
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement("h3", null, /*#__PURE__*/_react["default"].createElement("i", {
|
|
46
|
+
className: "bi bi-question-circle pe-2"
|
|
47
|
+
}), t("HelpButton|Help"))), /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
|
|
48
|
+
outline: true,
|
|
49
|
+
type: "button",
|
|
50
|
+
onClick: toggle,
|
|
51
|
+
color: "primary"
|
|
52
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
53
|
+
className: "bi bi-x-lg"
|
|
54
|
+
}))), /*#__PURE__*/_react["default"].createElement(_reactstrap.CardBody, null, /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
55
|
+
className: "help-iframe",
|
|
56
|
+
src: path
|
|
57
|
+
})))));
|
|
58
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _asab_webui_components = require("asab_webui_components");
|
|
14
|
+
var _HelpButton = _interopRequireDefault(require("./HelpButton"));
|
|
15
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
16
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
17
|
+
var HelpService = exports["default"] = /*#__PURE__*/function (_Service) {
|
|
18
|
+
function HelpService(app) {
|
|
19
|
+
var serviceName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "HelpService";
|
|
20
|
+
(0, _classCallCheck2["default"])(this, HelpService);
|
|
21
|
+
return _callSuper(this, HelpService, [app, serviceName]);
|
|
22
|
+
}
|
|
23
|
+
(0, _inherits2["default"])(HelpService, _Service);
|
|
24
|
+
return (0, _createClass2["default"])(HelpService, [{
|
|
25
|
+
key: "initialize",
|
|
26
|
+
value: function initialize() {
|
|
27
|
+
var headerService = this.App.locateService("HeaderService");
|
|
28
|
+
headerService.addComponent({
|
|
29
|
+
component: _HelpButton["default"],
|
|
30
|
+
order: 300
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}]);
|
|
34
|
+
}(_asab_webui_components.Service);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = PreviewFlag;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactI18next = require("react-i18next");
|
|
10
|
+
var _reactRedux = require("react-redux");
|
|
11
|
+
var _reactstrap = require("reactstrap");
|
|
12
|
+
function PreviewFlag() {
|
|
13
|
+
var _name;
|
|
14
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
15
|
+
t = _useTranslation.t;
|
|
16
|
+
var name = (0, _reactRedux.useSelector)(function (state) {
|
|
17
|
+
var _state$header;
|
|
18
|
+
return state === null || state === void 0 || (_state$header = state.header) === null || _state$header === void 0 ? void 0 : _state$header.flag;
|
|
19
|
+
});
|
|
20
|
+
var lowercasedName = (_name = name) === null || _name === void 0 ? void 0 : _name.toLowerCase();
|
|
21
|
+
if (lowercasedName === "preview") {
|
|
22
|
+
name = t("General|Feature preview");
|
|
23
|
+
} else if (lowercasedName === "alpha") {
|
|
24
|
+
name = t("Alpha");
|
|
25
|
+
} else if (lowercasedName === "beta") {
|
|
26
|
+
name = t("Beta");
|
|
27
|
+
} else {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return /*#__PURE__*/_react["default"].createElement(_reactstrap.Badge, {
|
|
31
|
+
className: "mx-2",
|
|
32
|
+
color: "primary"
|
|
33
|
+
}, name);
|
|
34
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
+
var _asab_webui_components = require("asab_webui_components");
|
|
14
|
+
var _PreviewFlag = _interopRequireDefault(require("./PreviewFlag"));
|
|
15
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
16
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
17
|
+
var PreviewService = exports["default"] = /*#__PURE__*/function (_Service) {
|
|
18
|
+
function PreviewService(app) {
|
|
19
|
+
var serviceName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "PreviewService";
|
|
20
|
+
(0, _classCallCheck2["default"])(this, PreviewService);
|
|
21
|
+
return _callSuper(this, PreviewService, [app, serviceName]);
|
|
22
|
+
}
|
|
23
|
+
(0, _inherits2["default"])(PreviewService, _Service);
|
|
24
|
+
return (0, _createClass2["default"])(PreviewService, [{
|
|
25
|
+
key: "initialize",
|
|
26
|
+
value: function initialize() {
|
|
27
|
+
var headerService = this.App.locateService("HeaderService");
|
|
28
|
+
headerService.addComponent({
|
|
29
|
+
component: _PreviewFlag["default"],
|
|
30
|
+
order: 100
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}]);
|
|
34
|
+
}(_asab_webui_components.Service);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#app-header {
|
|
2
|
+
|
|
3
|
+
.nav-link, .btn {
|
|
4
|
+
// Font is larger in header items
|
|
5
|
+
font-size: 16px;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
[data-bs-theme=light] {
|
|
10
|
+
#app-header .nav-link:hover {
|
|
11
|
+
filter: brightness(0.75);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
[data-bs-theme=dark] {
|
|
16
|
+
#app-header {
|
|
17
|
+
.nav-link:active, .nav-link:focus {
|
|
18
|
+
color: var(--bs-link-color)
|
|
19
|
+
}
|
|
20
|
+
.nav-link:hover {
|
|
21
|
+
color: var(--bs-link-hover-color);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = Header;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _reactstrap = require("reactstrap");
|
|
11
|
+
var _reactRedux = require("react-redux");
|
|
12
|
+
var _ApplicationScreenTitle = _interopRequireDefault(require("./ApplicationScreenTitle"));
|
|
13
|
+
require("./header.scss");
|
|
14
|
+
function Header(props) {
|
|
15
|
+
var headerNavItems = (0, _reactRedux.useSelector)(function (state) {
|
|
16
|
+
var _state$header;
|
|
17
|
+
return (_state$header = state.header) === null || _state$header === void 0 ? void 0 : _state$header.headerNavItems;
|
|
18
|
+
});
|
|
19
|
+
return /*#__PURE__*/_react["default"].createElement("header", {
|
|
20
|
+
id: "app-header"
|
|
21
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactstrap.Nav, {
|
|
22
|
+
className: "d-flex flex-row nav w-100 h-100 align-items-center"
|
|
23
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactstrap.NavItem, {
|
|
24
|
+
className: "mx-1 fullscreen-visible"
|
|
25
|
+
}, /*#__PURE__*/_react["default"].createElement(_ApplicationScreenTitle["default"], {
|
|
26
|
+
app: props.app
|
|
27
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
28
|
+
className: "flex-fill"
|
|
29
|
+
}, "\xA0"), headerNavItems.map(function (item, idx) {
|
|
30
|
+
return /*#__PURE__*/_react["default"].createElement(_reactstrap.NavItem, {
|
|
31
|
+
className: "mx-1 ".concat(item.fullscreenVisible == true ? 'fullscreen-visible' : ''),
|
|
32
|
+
key: idx
|
|
33
|
+
}, /*#__PURE__*/_react["default"].createElement(item.component, (0, _extends2["default"])({
|
|
34
|
+
key: item
|
|
35
|
+
}, item.componentProps, {
|
|
36
|
+
app: props.app
|
|
37
|
+
})));
|
|
38
|
+
})));
|
|
39
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _actions = require("../../actions");
|
|
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["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
|
+
var initialState = {
|
|
13
|
+
helpPath: "https://docs.teskalabs.com/logman.io/user/",
|
|
14
|
+
subtitle: undefined,
|
|
15
|
+
flag: undefined,
|
|
16
|
+
headerNavItems: []
|
|
17
|
+
};
|
|
18
|
+
var _default = exports["default"] = function _default() {
|
|
19
|
+
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
20
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
21
|
+
switch (action.type) {
|
|
22
|
+
case _actions.SET_HELP_PATH:
|
|
23
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
24
|
+
helpPath: action.helpPath
|
|
25
|
+
});
|
|
26
|
+
case _actions.SET_SUBTITLE:
|
|
27
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
28
|
+
subtitle: action.subtitle
|
|
29
|
+
});
|
|
30
|
+
case _actions.SET_FLAG:
|
|
31
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
32
|
+
flag: action.flag
|
|
33
|
+
});
|
|
34
|
+
case _actions.SET_HEADER_NAVIGATION_ITEMS:
|
|
35
|
+
// Sort the navigation items
|
|
36
|
+
action.headerNavItems.sort(function (a, b) {
|
|
37
|
+
if (a.order == undefined && b.order == undefined) {
|
|
38
|
+
return 0; // No order specified for both, keep order unchanged
|
|
39
|
+
} else if (a.order == undefined) {
|
|
40
|
+
return 1; // Move items without order to the end
|
|
41
|
+
} else if (b.order == undefined) {
|
|
42
|
+
return -1; // Move items without order to the end
|
|
43
|
+
} else {
|
|
44
|
+
return a.order - b.order; // Sort by order
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
48
|
+
headerNavItems: action.headerNavItems
|
|
49
|
+
});
|
|
50
|
+
default:
|
|
51
|
+
return state;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _actions = require("../../actions");
|
|
16
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
+
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; }
|
|
18
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
19
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
20
|
+
var Navigation = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
21
|
+
function Navigation(app) {
|
|
22
|
+
var _this;
|
|
23
|
+
(0, _classCallCheck2["default"])(this, Navigation);
|
|
24
|
+
_this = _callSuper(this, Navigation, [app]);
|
|
25
|
+
_this.App = app;
|
|
26
|
+
_this.Items = [];
|
|
27
|
+
return _this;
|
|
28
|
+
}
|
|
29
|
+
(0, _inherits2["default"])(Navigation, _Component);
|
|
30
|
+
return (0, _createClass2["default"])(Navigation, [{
|
|
31
|
+
key: "addItem",
|
|
32
|
+
value: function addItem(item) {
|
|
33
|
+
/* Example item:
|
|
34
|
+
{
|
|
35
|
+
path: '/some/path', // Url path
|
|
36
|
+
end: true, // Whether path must be matched exactly
|
|
37
|
+
name: 'Some Name', // Route name
|
|
38
|
+
component: ReactComponent // Component to be rendered
|
|
39
|
+
}
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
// Find an existing item with the same name
|
|
43
|
+
var existingItem = this.Items.find(function (existing) {
|
|
44
|
+
return existing.name === item.name;
|
|
45
|
+
});
|
|
46
|
+
if (existingItem) {
|
|
47
|
+
// If found, merge the children (concatenate arrays while avoiding duplicates based on a name)
|
|
48
|
+
var existingChildrenNames = new Set(existingItem.children.map(function (child) {
|
|
49
|
+
return child.name;
|
|
50
|
+
}));
|
|
51
|
+
item.children.forEach(function (child) {
|
|
52
|
+
if (!existingChildrenNames.has(child.name)) {
|
|
53
|
+
existingItem.children.push(child);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
} else {
|
|
57
|
+
// If no existing item, push the new item
|
|
58
|
+
this.Items.push(item);
|
|
59
|
+
}
|
|
60
|
+
this.App.Store.dispatch({
|
|
61
|
+
type: _actions.SET_NAVIGATION_ITEMS,
|
|
62
|
+
navItems: this.Items
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}]);
|
|
66
|
+
}(_react.Component);
|