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,56 @@
|
|
|
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
|
+
navItems: []
|
|
14
|
+
};
|
|
15
|
+
var _default = exports["default"] = function _default() {
|
|
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_NAVIGATION_ITEMS:
|
|
20
|
+
// Remove navigation items which does not have populated children
|
|
21
|
+
var filteredNavItems = action.navItems ? action.navItems.filter(function (item) {
|
|
22
|
+
return !(item.children && item.children.length === 0);
|
|
23
|
+
}) : [];
|
|
24
|
+
|
|
25
|
+
// Sort children within each navigation item if they exist
|
|
26
|
+
filteredNavItems.forEach(function (item) {
|
|
27
|
+
if (item.children && item.children.length > 0) {
|
|
28
|
+
item.children.sort(function (a, b) {
|
|
29
|
+
return sortItemsByOrder(a, b);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
// Sort the navigation items
|
|
34
|
+
filteredNavItems.sort(function (a, b) {
|
|
35
|
+
return sortItemsByOrder(a, b);
|
|
36
|
+
});
|
|
37
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
38
|
+
navItems: filteredNavItems
|
|
39
|
+
});
|
|
40
|
+
default:
|
|
41
|
+
{
|
|
42
|
+
return state;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}; // Method to sort items by order property
|
|
46
|
+
function sortItemsByOrder(a, b) {
|
|
47
|
+
if (a.order == undefined && b.order == undefined) {
|
|
48
|
+
return 0; // No order specified for both, keep order unchanged
|
|
49
|
+
} else if (a.order == undefined) {
|
|
50
|
+
return 1; // Move items without order to the end
|
|
51
|
+
} else if (b.order == undefined) {
|
|
52
|
+
return -1; // Move items without order to the end
|
|
53
|
+
} else {
|
|
54
|
+
return a.order - b.order; // Sort by order
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
+
// IMPORTANT: This is intentionally low-depenency container!
|
|
10
|
+
|
|
11
|
+
var ErrorContainer = function ErrorContainer(props) {
|
|
12
|
+
var _props$error, _props$datetime;
|
|
13
|
+
var acknowledgeError = function acknowledgeError(e) {
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
props.ackError();
|
|
16
|
+
};
|
|
17
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
18
|
+
className: "container"
|
|
19
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
20
|
+
className: "row mt-5"
|
|
21
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
22
|
+
className: "col"
|
|
23
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
24
|
+
className: "card shadow border-danger"
|
|
25
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
26
|
+
className: "card-header card-header-flex"
|
|
27
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
28
|
+
className: "flex-fill"
|
|
29
|
+
}, /*#__PURE__*/_react["default"].createElement("h3", {
|
|
30
|
+
className: "text-danger"
|
|
31
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
32
|
+
className: "bi bi-emoji-frown pe-2"
|
|
33
|
+
}), "Ooops. We are sorry. Something went wrong.")), /*#__PURE__*/_react["default"].createElement("button", {
|
|
34
|
+
className: "btn btn-primary",
|
|
35
|
+
onClick: function onClick(e) {
|
|
36
|
+
return acknowledgeError(e);
|
|
37
|
+
}
|
|
38
|
+
}, "Acknowledge")), /*#__PURE__*/_react["default"].createElement("div", {
|
|
39
|
+
className: "card-body"
|
|
40
|
+
}, /*#__PURE__*/_react["default"].createElement("h6", {
|
|
41
|
+
className: "pe-5"
|
|
42
|
+
}, (_props$error = props.error) === null || _props$error === void 0 ? void 0 : _props$error.toString()), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("pre", null, /*#__PURE__*/_react["default"].createElement("code", null, props.errorInfo.componentStack)))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
43
|
+
className: "card-footer"
|
|
44
|
+
}, (_props$datetime = props.datetime) === null || _props$datetime === void 0 ? void 0 : _props$datetime.toString() /*This is intentionaly not using DateTime to reduce internal dependency*/)))));
|
|
45
|
+
};
|
|
46
|
+
var _default = exports["default"] = ErrorContainer;
|
|
@@ -0,0 +1,80 @@
|
|
|
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
|
+
var _ErrorContainer = _interopRequireDefault(require("./ErrorContainer"));
|
|
16
|
+
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)); }
|
|
17
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
18
|
+
var RouteErrorHandler = /*#__PURE__*/function (_React$Component) {
|
|
19
|
+
function RouteErrorHandler(props) {
|
|
20
|
+
var _this;
|
|
21
|
+
(0, _classCallCheck2["default"])(this, RouteErrorHandler);
|
|
22
|
+
_this = _callSuper(this, RouteErrorHandler, [props]);
|
|
23
|
+
// Acknowledge error
|
|
24
|
+
(0, _defineProperty2["default"])(_this, "ackError", function () {
|
|
25
|
+
var _window$location;
|
|
26
|
+
// TODO: send error to Sentry
|
|
27
|
+
/*
|
|
28
|
+
If location hash differs from the one stored in state,
|
|
29
|
+
use the location hash of the route, else use the default
|
|
30
|
+
location
|
|
31
|
+
*/
|
|
32
|
+
if (_this.state.locationHash != ((_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.hash)) {
|
|
33
|
+
window.location.hash;
|
|
34
|
+
} else {
|
|
35
|
+
// Default location
|
|
36
|
+
window.location.hash = "#/";
|
|
37
|
+
}
|
|
38
|
+
_this.setState({
|
|
39
|
+
error: null,
|
|
40
|
+
errorInfo: null,
|
|
41
|
+
datetime: null,
|
|
42
|
+
locationHash: null
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
_this.state = {
|
|
46
|
+
error: null,
|
|
47
|
+
errorInfo: null,
|
|
48
|
+
datetime: null,
|
|
49
|
+
locationHash: null
|
|
50
|
+
};
|
|
51
|
+
return _this;
|
|
52
|
+
}
|
|
53
|
+
(0, _inherits2["default"])(RouteErrorHandler, _React$Component);
|
|
54
|
+
return (0, _createClass2["default"])(RouteErrorHandler, [{
|
|
55
|
+
key: "componentDidCatch",
|
|
56
|
+
value: function componentDidCatch(error, errorInfo) {
|
|
57
|
+
var _window$location2;
|
|
58
|
+
this.setState({
|
|
59
|
+
error: error,
|
|
60
|
+
errorInfo: errorInfo,
|
|
61
|
+
datetime: new Date(),
|
|
62
|
+
locationHash: (_window$location2 = window.location) === null || _window$location2 === void 0 ? void 0 : _window$location2.hash
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}, {
|
|
66
|
+
key: "render",
|
|
67
|
+
value: function render() {
|
|
68
|
+
if (this.state.errorInfo) {
|
|
69
|
+
return /*#__PURE__*/_react["default"].createElement(_ErrorContainer["default"], {
|
|
70
|
+
error: this.state.error,
|
|
71
|
+
errorInfo: this.state.errorInfo,
|
|
72
|
+
datetime: this.state.datetime,
|
|
73
|
+
ackError: this.ackError
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return this.props.children;
|
|
77
|
+
}
|
|
78
|
+
}]);
|
|
79
|
+
}(_react["default"].Component);
|
|
80
|
+
var _default = exports["default"] = RouteErrorHandler;
|
|
@@ -0,0 +1,78 @@
|
|
|
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"] = ApplicationRouter;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactRedux = require("react-redux");
|
|
12
|
+
var _reactRouterDom = require("react-router-dom");
|
|
13
|
+
var _actions = require("../../actions");
|
|
14
|
+
var _RouteErrorHandler = _interopRequireDefault(require("../RouteErrorHandler"));
|
|
15
|
+
var _UnauthorizedAccessScreen = _interopRequireDefault(require("../../screens/UnauthorizedAccessScreen"));
|
|
16
|
+
var _InvalidRouteScreen = _interopRequireDefault(require("../../screens/InvalidRouteScreen"));
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
|
+
// TODO: properly isolate authorization screen from the Application (should be injected when needed and only when AuthModule is enabled)
|
|
20
|
+
|
|
21
|
+
function ApplicationRouter(props) {
|
|
22
|
+
var routes = (0, _reactRedux.useSelector)(function (state) {
|
|
23
|
+
var _state$router;
|
|
24
|
+
return (_state$router = state.router) === null || _state$router === void 0 ? void 0 : _state$router.routes;
|
|
25
|
+
});
|
|
26
|
+
return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Routes, null, routes && routes.map(function (route, idx) {
|
|
27
|
+
return route.component ? /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, {
|
|
28
|
+
key: idx,
|
|
29
|
+
path: "".concat(route.path),
|
|
30
|
+
end: route.end,
|
|
31
|
+
name: route.name,
|
|
32
|
+
element: /*#__PURE__*/_react["default"].createElement(_RouteErrorHandler["default"], null, /*#__PURE__*/_react["default"].createElement(RouteRenderer, {
|
|
33
|
+
app: props.app,
|
|
34
|
+
route: route,
|
|
35
|
+
routeComponent: /*#__PURE__*/_react["default"].createElement(route.component, (0, _extends2["default"])({
|
|
36
|
+
app: props.app
|
|
37
|
+
}, route.props))
|
|
38
|
+
}))
|
|
39
|
+
}) : null;
|
|
40
|
+
}), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, {
|
|
41
|
+
path: "*",
|
|
42
|
+
element: /*#__PURE__*/_react["default"].createElement(_InvalidRouteScreen["default"], null)
|
|
43
|
+
// Handle all undefined routes (404)
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
function RouteRenderer(props) {
|
|
47
|
+
var resources = (0, _reactRedux.useSelector)(function (state) {
|
|
48
|
+
var _state$auth;
|
|
49
|
+
return (_state$auth = state.auth) !== null && _state$auth !== void 0 && _state$auth.resources ? state.auth.resources : [];
|
|
50
|
+
});
|
|
51
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
52
|
+
// Set up and dispatch help content
|
|
53
|
+
(0, _react.useEffect)(function () {
|
|
54
|
+
var defaultHelp = "https://docs.teskalabs.com/logman.io/user/";
|
|
55
|
+
dispatch({
|
|
56
|
+
type: _actions.SET_HELP_PATH,
|
|
57
|
+
helpPath: props.route.help ? props.route.help : defaultHelp
|
|
58
|
+
});
|
|
59
|
+
}, [props.route.help]);
|
|
60
|
+
// Route component renders the approriate screen based on the route
|
|
61
|
+
if (props.route.resource) {
|
|
62
|
+
// If resource present, let UnauthorizedAccessScreen to decide if the Screen will be rendered
|
|
63
|
+
return /*#__PURE__*/_react["default"].createElement(_UnauthorizedAccessScreen["default"], {
|
|
64
|
+
app: props.app,
|
|
65
|
+
resource: props.route.resource,
|
|
66
|
+
routeComponent: props.routeComponent
|
|
67
|
+
});
|
|
68
|
+
} else if (!props.route.resource && resources.includes("authz:superuser") == false) {
|
|
69
|
+
// If resource is not present, the user is not a superuser and the page is not access control, the UnauthorizedAccessScreen will block the page
|
|
70
|
+
return /*#__PURE__*/_react["default"].createElement(_UnauthorizedAccessScreen["default"], {
|
|
71
|
+
app: props.app,
|
|
72
|
+
resource: props.route.resource,
|
|
73
|
+
routeComponent: props.routeComponent
|
|
74
|
+
});
|
|
75
|
+
} else {
|
|
76
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, props.routeComponent);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 Router = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
21
|
+
function Router(app) {
|
|
22
|
+
var _this;
|
|
23
|
+
(0, _classCallCheck2["default"])(this, Router);
|
|
24
|
+
_this = _callSuper(this, Router, [app]);
|
|
25
|
+
_this.Routes = [];
|
|
26
|
+
_this.App = app;
|
|
27
|
+
return _this;
|
|
28
|
+
}
|
|
29
|
+
(0, _inherits2["default"])(Router, _Component);
|
|
30
|
+
return (0, _createClass2["default"])(Router, [{
|
|
31
|
+
key: "addRoute",
|
|
32
|
+
value: function addRoute(route) {
|
|
33
|
+
/* Example route:
|
|
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
|
+
resource: some:resource, // Resource of the component | *optional
|
|
40
|
+
help: "https://docs.teskalabs.com" // Help content of the screen (route) | *optional
|
|
41
|
+
}
|
|
42
|
+
*/
|
|
43
|
+
this.Routes.push(route);
|
|
44
|
+
this.App.Store.dispatch({
|
|
45
|
+
type: _actions.SET_ROUTES,
|
|
46
|
+
routes: this.Routes
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}]);
|
|
50
|
+
}(_react.Component);
|
|
@@ -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"] = 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
|
+
routes: []
|
|
14
|
+
};
|
|
15
|
+
var _default = exports["default"] = function _default() {
|
|
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_ROUTES:
|
|
20
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
21
|
+
routes: action.routes
|
|
22
|
+
});
|
|
23
|
+
default:
|
|
24
|
+
{
|
|
25
|
+
return state;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactRedux = require("react-redux");
|
|
12
|
+
var _reactRouterDom = require("react-router-dom");
|
|
13
|
+
var _BrandImage = require("../../components/branding/BrandImage");
|
|
14
|
+
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); }
|
|
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; }
|
|
16
|
+
var NavbarBrand = function NavbarBrand(props) {
|
|
17
|
+
var _brandImage$href;
|
|
18
|
+
var _useState = (0, _react.useState)({}),
|
|
19
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
20
|
+
brandImage = _useState2[0],
|
|
21
|
+
setBrandImage = _useState2[1];
|
|
22
|
+
var theme = (0, _reactRedux.useSelector)(function (state) {
|
|
23
|
+
return state.theme;
|
|
24
|
+
});
|
|
25
|
+
var title = (0, _reactRedux.useSelector)(function (state) {
|
|
26
|
+
var _state$config;
|
|
27
|
+
return (_state$config = state.config) === null || _state$config === void 0 ? void 0 : _state$config.title;
|
|
28
|
+
});
|
|
29
|
+
var isSidebarCollapsed = (0, _reactRedux.useSelector)(function (state) {
|
|
30
|
+
var _state$sidebar;
|
|
31
|
+
return (_state$sidebar = state.sidebar) === null || _state$sidebar === void 0 ? void 0 : _state$sidebar.isSidebarCollapsed;
|
|
32
|
+
});
|
|
33
|
+
(0, _react.useEffect)(function () {
|
|
34
|
+
setBrandImage((0, _BrandImage.getBrandImage)(props, theme));
|
|
35
|
+
}, [theme]);
|
|
36
|
+
var href = (_brandImage$href = brandImage === null || brandImage === void 0 ? void 0 : brandImage.href) !== null && _brandImage$href !== void 0 ? _brandImage$href : "/";
|
|
37
|
+
if (href.includes("http")) {
|
|
38
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
39
|
+
id: "app-brandimage"
|
|
40
|
+
}, /*#__PURE__*/_react["default"].createElement("a", {
|
|
41
|
+
href: href,
|
|
42
|
+
target: "_blank",
|
|
43
|
+
rel: "noopener noreferrer"
|
|
44
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
45
|
+
src: isSidebarCollapsed ? brandImage === null || brandImage === void 0 ? void 0 : brandImage.minimized : brandImage === null || brandImage === void 0 ? void 0 : brandImage.full,
|
|
46
|
+
alt: title
|
|
47
|
+
})));
|
|
48
|
+
}
|
|
49
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
50
|
+
id: "app-brandimage",
|
|
51
|
+
title: title
|
|
52
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, {
|
|
53
|
+
to: href,
|
|
54
|
+
style: {
|
|
55
|
+
backgroundImage: "url(".concat(isSidebarCollapsed ? brandImage === null || brandImage === void 0 ? void 0 : brandImage.minimized : brandImage === null || brandImage === void 0 ? void 0 : brandImage.full, ")")
|
|
56
|
+
}
|
|
57
|
+
}, "\xA0"));
|
|
58
|
+
};
|
|
59
|
+
var _default = exports["default"] = NavbarBrand;
|
|
@@ -0,0 +1,55 @@
|
|
|
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 _reactRouterDom = require("react-router-dom");
|
|
10
|
+
var _reactI18next = require("react-i18next");
|
|
11
|
+
var _reactRedux = require("react-redux");
|
|
12
|
+
var _actions = require("../../actions");
|
|
13
|
+
var SidebarBottomItem = function SidebarBottomItem(_ref) {
|
|
14
|
+
var sidebarLogo = _ref.sidebarLogo;
|
|
15
|
+
var isSidebarCollapsed = (0, _reactRedux.useSelector)(function (state) {
|
|
16
|
+
return state.sidebar.isSidebarCollapsed;
|
|
17
|
+
});
|
|
18
|
+
var _useTranslation = (0, _reactI18next.useTranslation)(),
|
|
19
|
+
t = _useTranslation.t;
|
|
20
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
21
|
+
|
|
22
|
+
// Handle toggle of the sidebar's collapsed state
|
|
23
|
+
var onCollapse = function onCollapse(event) {
|
|
24
|
+
event.stopPropagation();
|
|
25
|
+
dispatch({
|
|
26
|
+
type: _actions.COLLAPSE_SIDEBAR,
|
|
27
|
+
isSidebarCollapsed: !isSidebarCollapsed
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var logoUrl = isSidebarCollapsed ? sidebarLogo === null || sidebarLogo === void 0 ? void 0 : sidebarLogo.minimized : sidebarLogo === null || sidebarLogo === void 0 ? void 0 : sidebarLogo.full;
|
|
31
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
32
|
+
className: "nav-item d-flex align-items-center",
|
|
33
|
+
role: "group"
|
|
34
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, {
|
|
35
|
+
id: "app-sidebar-logo",
|
|
36
|
+
to: "/about",
|
|
37
|
+
style: {
|
|
38
|
+
backgroundImage: "url(".concat(logoUrl, ")")
|
|
39
|
+
},
|
|
40
|
+
title: t("Sidebar|About")
|
|
41
|
+
}, "\xA0"), !isSidebarCollapsed && /*#__PURE__*/_react["default"].createElement("i", {
|
|
42
|
+
id: "app-sidebar-collapse",
|
|
43
|
+
title: t("Sidebar|Collapse"),
|
|
44
|
+
onClick: onCollapse,
|
|
45
|
+
className: "fs-4 bi bi-chevron-left text-primary"
|
|
46
|
+
})), isSidebarCollapsed && /*#__PURE__*/_react["default"].createElement("div", {
|
|
47
|
+
className: "nav-item"
|
|
48
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
49
|
+
id: "app-sidebar-expand",
|
|
50
|
+
title: t("Sidebar|Expand"),
|
|
51
|
+
onClick: onCollapse,
|
|
52
|
+
className: "nav-link fs-4 bi bi-chevron-right text-primary"
|
|
53
|
+
})));
|
|
54
|
+
};
|
|
55
|
+
var _default = exports["default"] = SidebarBottomItem;
|
|
@@ -0,0 +1,21 @@
|
|
|
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 Icon = function Icon(_ref) {
|
|
10
|
+
var icon = _ref.icon,
|
|
11
|
+
className = _ref.className;
|
|
12
|
+
if (typeof icon === "string") {
|
|
13
|
+
return /*#__PURE__*/_react["default"].createElement("i", {
|
|
14
|
+
className: "".concat(icon, " ").concat(className, " sidebar-item-icon")
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
18
|
+
className: "sidebar-item-icon"
|
|
19
|
+
}, icon);
|
|
20
|
+
};
|
|
21
|
+
var _default = exports["default"] = Icon;
|