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.
Files changed (90) hide show
  1. package/CHANGELOG.md +218 -0
  2. package/LICENSE +28 -0
  3. package/README.md +3 -0
  4. package/dist/actions.js +22 -0
  5. package/dist/components/branding/BrandImage.js +72 -0
  6. package/dist/components/locationReplace.js +51 -0
  7. package/dist/config/ConfigReducer.js +22 -0
  8. package/dist/config/ConfigService.js +169 -0
  9. package/dist/containers/AdvancedMode/reducer.js +28 -0
  10. package/dist/containers/Alerts/alerts.scss +9 -0
  11. package/dist/containers/Alerts/index.js +81 -0
  12. package/dist/containers/Alerts/reducer.js +68 -0
  13. package/dist/containers/Application.js +773 -0
  14. package/dist/containers/Application.scss +104 -0
  15. package/dist/containers/AttentionRequired/reducer.js +30 -0
  16. package/dist/containers/FullscreenMode/reducer.js +28 -0
  17. package/dist/containers/Header/ApplicationScreenTitle/ApplicationScreenTitle.js +47 -0
  18. package/dist/containers/Header/ApplicationScreenTitle/ApplicationScreenTitle.scss +8 -0
  19. package/dist/containers/Header/ApplicationScreenTitle/index.js +31 -0
  20. package/dist/containers/Header/Help/HelpButton.js +58 -0
  21. package/dist/containers/Header/Help/HelpButton.scss +15 -0
  22. package/dist/containers/Header/Help/HelpService.js +34 -0
  23. package/dist/containers/Header/Preview/PreviewFlag.js +34 -0
  24. package/dist/containers/Header/Preview/PreviewService.js +34 -0
  25. package/dist/containers/Header/header.scss +24 -0
  26. package/dist/containers/Header/index.js +39 -0
  27. package/dist/containers/Header/reducer.js +53 -0
  28. package/dist/containers/Navigation/index.js +66 -0
  29. package/dist/containers/Navigation/reducer.js +56 -0
  30. package/dist/containers/RouteErrorHandler/ErrorContainer.js +46 -0
  31. package/dist/containers/RouteErrorHandler/index.js +80 -0
  32. package/dist/containers/Router/ApplicationRouter.js +78 -0
  33. package/dist/containers/Router/index.js +50 -0
  34. package/dist/containers/Router/reducer.js +28 -0
  35. package/dist/containers/Sidebar/NavbarBrand.js +59 -0
  36. package/dist/containers/Sidebar/SidebarBottomItem.js +55 -0
  37. package/dist/containers/Sidebar/SidebarIcon.js +21 -0
  38. package/dist/containers/Sidebar/SidebarItem.js +209 -0
  39. package/dist/containers/Sidebar/SidebarItemRenderer.js +30 -0
  40. package/dist/containers/Sidebar/index.js +86 -0
  41. package/dist/containers/Sidebar/reducer.js +35 -0
  42. package/dist/containers/Sidebar/sidebar.scss +176 -0
  43. package/dist/containers/Sidepanel/Sidepanel.js +60 -0
  44. package/dist/containers/Sidepanel/Sidepanel.scss +20 -0
  45. package/dist/containers/Toast/ToastComponent.js +31 -0
  46. package/dist/containers/Toast/ToastComponent.jsx +28 -0
  47. package/dist/containers/Toast/ToastContainer.js +80 -0
  48. package/dist/containers/Toast/ToastContainer.jsx +59 -0
  49. package/dist/containers/Toast/reducer.js +55 -0
  50. package/dist/containers/Toast/reducer.jsx +45 -0
  51. package/dist/index.js +48 -0
  52. package/dist/modules/about/AboutScreen.js +84 -0
  53. package/dist/modules/about/index.js +41 -0
  54. package/dist/modules/auth/actions.js +11 -0
  55. package/dist/modules/auth/api.js +214 -0
  56. package/dist/modules/auth/components/SessionExpirationAlert.js +35 -0
  57. package/dist/modules/auth/header.js +109 -0
  58. package/dist/modules/auth/header.scss +9 -0
  59. package/dist/modules/auth/index.js +761 -0
  60. package/dist/modules/auth/reducer.js +36 -0
  61. package/dist/modules/auth/screens/AccessControlScreen.js +78 -0
  62. package/dist/modules/auth/screens/InvitationScreen.js +161 -0
  63. package/dist/modules/i18n/actions.js +7 -0
  64. package/dist/modules/i18n/dropdown.js +77 -0
  65. package/dist/modules/i18n/index.js +44 -0
  66. package/dist/modules/i18n/reducer.js +26 -0
  67. package/dist/modules/i18n/service.js +158 -0
  68. package/dist/modules/tenant/TenantDropdown.js +53 -0
  69. package/dist/modules/tenant/access/AccessDeniedCard.js +107 -0
  70. package/dist/modules/tenant/access/AccessDeniedCard.scss +6 -0
  71. package/dist/modules/tenant/actions.js +10 -0
  72. package/dist/modules/tenant/index.js +41 -0
  73. package/dist/modules/tenant/reducer.js +26 -0
  74. package/dist/modules/tenant/service.js +228 -0
  75. package/dist/screens/InvalidRouteScreen.js +30 -0
  76. package/dist/screens/InvalidRouteScreen.scss +19 -0
  77. package/dist/screens/SuspenseScreen.js +43 -0
  78. package/dist/screens/SuspenseScreen.scss +9 -0
  79. package/dist/screens/UnauthorizedAccessScreen.js +79 -0
  80. package/dist/screens/UnauthorizedAccessScreen.scss +19 -0
  81. package/dist/services/AttentionRequiredService.js +169 -0
  82. package/dist/services/BrandingService.js +104 -0
  83. package/dist/services/HeaderService.js +84 -0
  84. package/dist/services/ReduxService.js +25 -0
  85. package/dist/services/TitleService.js +45 -0
  86. package/dist/theme/ThemeButton.js +39 -0
  87. package/dist/theme/ThemeReducer.js +20 -0
  88. package/dist/theme/ThemeService.js +52 -0
  89. package/dist/theme/actions.js +7 -0
  90. 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;