asab_webui_shell 25.1.11 → 25.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/components/locationReplace.js +4 -16
  2. package/dist/config/ConfigReducer.js +1 -1
  3. package/dist/config/ConfigService.js +116 -137
  4. package/dist/containers/AdvancedMode/reducer.js +2 -2
  5. package/dist/containers/Alerts/index.js +18 -30
  6. package/dist/containers/Alerts/reducer.js +5 -6
  7. package/dist/containers/Application.js +531 -663
  8. package/dist/containers/AttentionRequired/reducer.js +2 -2
  9. package/dist/containers/FullscreenMode/reducer.js +2 -2
  10. package/dist/containers/Header/ApplicationScreenTitle/ApplicationScreenTitle.js +15 -16
  11. package/dist/containers/Header/ApplicationScreenTitle/index.js +6 -6
  12. package/dist/containers/Header/Help/HelpButton.js +17 -27
  13. package/dist/containers/Header/Help/HelpService.js +13 -24
  14. package/dist/containers/Header/Preview/PreviewFlag.js +6 -5
  15. package/dist/containers/Header/Preview/PreviewService.js +13 -24
  16. package/dist/containers/Header/index.js +15 -17
  17. package/dist/containers/Header/reducer.js +4 -4
  18. package/dist/containers/Navigation/index.js +35 -55
  19. package/dist/containers/Navigation/reducer.js +7 -13
  20. package/dist/containers/RouteErrorHandler/ErrorContainer.js +17 -19
  21. package/dist/containers/RouteErrorHandler/index.js +28 -44
  22. package/dist/containers/Router/ApplicationRouter.js +14 -16
  23. package/dist/containers/Router/index.js +26 -42
  24. package/dist/containers/Router/reducer.js +3 -3
  25. package/dist/containers/Sidebar/NavbarBrand.js +14 -23
  26. package/dist/containers/Sidebar/SidebarBottomItem.js +16 -15
  27. package/dist/containers/Sidebar/SidebarIcon.js +9 -7
  28. package/dist/containers/Sidebar/SidebarItem.js +70 -85
  29. package/dist/containers/Sidebar/SidebarItemRenderer.js +20 -20
  30. package/dist/containers/Sidebar/index.js +20 -36
  31. package/dist/containers/Sidebar/reducer.js +3 -3
  32. package/dist/containers/Sidepanel/Sidepanel.js +18 -26
  33. package/dist/containers/Toast/ToastComponent.js +12 -12
  34. package/dist/containers/Toast/ToastContainer.js +19 -30
  35. package/dist/containers/Toast/reducer.js +3 -6
  36. package/dist/index.js +5 -5
  37. package/dist/modules/about/AboutScreen.js +30 -38
  38. package/dist/modules/about/index.js +8 -26
  39. package/dist/modules/auth/api.js +110 -156
  40. package/dist/modules/auth/components/SessionExpirationAlert.js +10 -9
  41. package/dist/modules/auth/header.js +25 -23
  42. package/dist/modules/auth/index.js +440 -692
  43. package/dist/modules/auth/reducer.js +2 -2
  44. package/dist/modules/auth/screens/AccessControlScreen.js +24 -25
  45. package/dist/modules/auth/screens/InvitationScreen.js +89 -128
  46. package/dist/modules/i18n/dropdown.js +24 -23
  47. package/dist/modules/i18n/index.js +20 -33
  48. package/dist/modules/i18n/reducer.js +2 -2
  49. package/dist/modules/i18n/service.js +48 -102
  50. package/dist/modules/tenant/TenantDropdown.js +28 -27
  51. package/dist/modules/tenant/access/AccessDeniedCard.js +28 -54
  52. package/dist/modules/tenant/index.js +16 -29
  53. package/dist/modules/tenant/reducer.js +1 -1
  54. package/dist/modules/tenant/service.js +123 -207
  55. package/dist/screens/InvalidRouteScreen.js +10 -9
  56. package/dist/screens/SuspenseScreen.js +11 -20
  57. package/dist/screens/UnauthorizedAccessScreen.js +18 -21
  58. package/dist/services/AttentionRequiredService.js +117 -142
  59. package/dist/services/BrandingService.js +63 -80
  60. package/dist/services/HeaderService.js +47 -66
  61. package/dist/services/ReduxService.js +11 -17
  62. package/dist/services/TitleService.js +13 -24
  63. package/dist/theme/ThemeButton.js +13 -10
  64. package/dist/theme/ThemeReducer.js +1 -1
  65. package/dist/theme/ThemeService.js +25 -38
  66. package/package.json +1 -1
@@ -4,11 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports["default"] = reducer;
7
+ exports.default = reducer;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _actions = require("./actions");
10
10
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["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; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
12
  var initialState = {
13
13
  userinfo: null,
14
14
  resources: [],
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports["default"] = void 0;
7
+ exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _reactI18next = require("react-i18next");
10
10
  var _reactRedux = require("react-redux");
@@ -28,51 +28,50 @@ var _reactstrap = require("reactstrap");
28
28
  */
29
29
 
30
30
  function AccessControlScreen(props) {
31
- return /*#__PURE__*/_react["default"].createElement(_reactstrap.Container, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.Row, {
31
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Container, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Row, {
32
32
  className: "justify-content-center pt-5"
33
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, {
33
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Col, {
34
34
  md: "6"
35
- }, /*#__PURE__*/_react["default"].createElement(AccessControlCard, null))));
35
+ }, /*#__PURE__*/_react.default.createElement(AccessControlCard, null))));
36
36
  }
37
- var _default = exports["default"] = AccessControlScreen;
37
+ var _default = exports.default = AccessControlScreen;
38
38
  function AccessControlCard(props) {
39
39
  var _useSelector;
40
- var _useTranslation = (0, _reactI18next.useTranslation)(),
41
- t = _useTranslation.t,
42
- i18n = _useTranslation.i18n;
43
- var tenant = (0, _reactRedux.useSelector)(function (state) {
40
+ var {
41
+ t,
42
+ i18n
43
+ } = (0, _reactI18next.useTranslation)();
44
+ var tenant = (0, _reactRedux.useSelector)(state => {
44
45
  var _state$tenant;
45
46
  return (_state$tenant = state.tenant) === null || _state$tenant === void 0 ? void 0 : _state$tenant.current;
46
47
  });
47
- var userinfo = (0, _reactRedux.useSelector)(function (state) {
48
+ var userinfo = (0, _reactRedux.useSelector)(state => {
48
49
  var _state$auth;
49
50
  return (_state$auth = state.auth) === null || _state$auth === void 0 ? void 0 : _state$auth.userinfo;
50
51
  });
51
- var resources = ((_useSelector = (0, _reactRedux.useSelector)(function (state) {
52
+ var resources = ((_useSelector = (0, _reactRedux.useSelector)(state => {
52
53
  var _state$auth2;
53
54
  return (_state$auth2 = state.auth) === null || _state$auth2 === void 0 ? void 0 : _state$auth2.resources;
54
55
  })) === null || _useSelector === void 0 ? void 0 : _useSelector.sort()) || [];
55
- return /*#__PURE__*/_react["default"].createElement(_reactstrap.Card, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.CardHeader, {
56
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Card, null, /*#__PURE__*/_react.default.createElement(_reactstrap.CardHeader, {
56
57
  className: "card-header-flex"
57
- }, /*#__PURE__*/_react["default"].createElement("div", {
58
+ }, /*#__PURE__*/_react.default.createElement("div", {
58
59
  className: "flex-fill"
59
- }, /*#__PURE__*/_react["default"].createElement("h3", null, t('AccessControlScreen|Access control')))), /*#__PURE__*/_react["default"].createElement("ul", {
60
+ }, /*#__PURE__*/_react.default.createElement("h3", null, t('AccessControlScreen|Access control')))), /*#__PURE__*/_react.default.createElement("ul", {
60
61
  className: "list-group list-group-flush"
61
- }, (userinfo === null || userinfo === void 0 ? void 0 : userinfo.username) && /*#__PURE__*/_react["default"].createElement("li", {
62
+ }, (userinfo === null || userinfo === void 0 ? void 0 : userinfo.username) && /*#__PURE__*/_react.default.createElement("li", {
62
63
  className: "list-group-item"
63
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Row, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, {
64
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Row, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Col, {
64
65
  className: "col-6"
65
- }, t('AccessControlScreen|Username')), /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, null, userinfo.username))), tenant && /*#__PURE__*/_react["default"].createElement("li", {
66
+ }, t('AccessControlScreen|Username')), /*#__PURE__*/_react.default.createElement(_reactstrap.Col, null, userinfo.username))), tenant && /*#__PURE__*/_react.default.createElement("li", {
66
67
  className: "list-group-item"
67
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Row, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, {
68
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Row, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Col, {
68
69
  className: "col-6"
69
- }, t('AccessControlScreen|Tenant')), /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, null, tenant))), resources && /*#__PURE__*/_react["default"].createElement("li", {
70
+ }, t('AccessControlScreen|Tenant')), /*#__PURE__*/_react.default.createElement(_reactstrap.Col, null, tenant))), resources && /*#__PURE__*/_react.default.createElement("li", {
70
71
  className: "list-group-item"
71
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Row, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, {
72
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Row, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Col, {
72
73
  className: "col-6"
73
- }, t('AccessControlScreen|Resources')), /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, null, resources.map(function (resource) {
74
- return /*#__PURE__*/_react["default"].createElement("div", {
75
- key: resource
76
- }, resource);
77
- }))))));
74
+ }, t('AccessControlScreen|Resources')), /*#__PURE__*/_react.default.createElement(_reactstrap.Col, null, resources.map(resource => /*#__PURE__*/_react.default.createElement("div", {
75
+ key: resource
76
+ }, resource)))))));
78
77
  }
@@ -1,216 +1,177 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = InvitationScreen;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
7
+ exports.default = InvitationScreen;
10
8
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
9
  var _react = _interopRequireWildcard(require("react"));
13
10
  var _reactI18next = require("react-i18next");
14
11
  var _reactRedux = require("react-redux");
15
12
  var _asab_webui_components = require("asab_webui_components");
16
13
  var _reactRouterDom = require("react-router-dom");
17
14
  var _reactstrap = require("reactstrap");
18
- 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); }
19
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
20
16
  // Component that handles user invitation
21
17
  function InvitationScreen(props) {
22
- var _useState = (0, _react.useState)(''),
23
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
24
- emailValue = _useState2[0],
25
- setEmailValue = _useState2[1];
26
- var _useState3 = (0, _react.useState)(undefined),
27
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
28
- isInvitationSuccessful = _useState4[0],
29
- setIsInvitationSuccessful = _useState4[1];
30
- var _useState5 = (0, _react.useState)(undefined),
31
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
32
- registrationUrl = _useState6[0],
33
- setRegistrationUrl = _useState6[1];
34
- var _useState7 = (0, _react.useState)(undefined),
35
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
36
- urlCopied = _useState8[0],
37
- setUrlCopied = _useState8[1];
38
- var tenant = (0, _reactRedux.useSelector)(function (state) {
18
+ var [emailValue, setEmailValue] = (0, _react.useState)('');
19
+ var [isInvitationSuccessful, setIsInvitationSuccessful] = (0, _react.useState)(undefined);
20
+ var [registrationUrl, setRegistrationUrl] = (0, _react.useState)(undefined);
21
+ var [urlCopied, setUrlCopied] = (0, _react.useState)(undefined);
22
+ var tenant = (0, _reactRedux.useSelector)(state => {
39
23
  var _state$tenant;
40
24
  return (_state$tenant = state.tenant) === null || _state$tenant === void 0 ? void 0 : _state$tenant.current;
41
25
  });
42
- var _useTranslation = (0, _reactI18next.useTranslation)(),
43
- t = _useTranslation.t;
26
+ var {
27
+ t
28
+ } = (0, _reactI18next.useTranslation)();
44
29
  var navigate = (0, _reactRouterDom.useNavigate)();
45
30
  var SeaCatAuthAPI = props.app.axiosCreate('seacat-auth');
46
31
 
47
32
  // Copy registration URL if there is any
48
- var copyRegistrationUrl = function copyRegistrationUrl() {
33
+ var copyRegistrationUrl = () => {
49
34
  if (!registrationUrl) {
50
35
  console.error('No registration URL to copy.');
51
36
  return;
52
37
  }
53
- navigator.clipboard.writeText(registrationUrl).then(function () {
38
+ navigator.clipboard.writeText(registrationUrl).then(() => {
54
39
  setUrlCopied(true);
55
- var timeoutId = setTimeout(function () {
56
- return setUrlCopied(false);
57
- }, 3000);
58
- return function () {
40
+ var timeoutId = setTimeout(() => setUrlCopied(false), 3000);
41
+ return () => {
59
42
  clearTimeout(timeoutId);
60
43
  };
61
- })["catch"](function (error) {
44
+ }).catch(error => {
62
45
  console.error('Failed to copy registration URL: ', error);
63
46
  });
64
47
  };
65
48
 
66
49
  // Validate email input
67
- var emailValidation = function emailValidation(e) {
50
+ var emailValidation = e => {
68
51
  e.preventDefault();
69
52
  setEmailValue(e.target.value);
70
53
  };
71
54
 
72
55
  // Send invitation to the specified email
73
56
  var sendInvitation = /*#__PURE__*/function () {
74
- var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(e) {
75
- var body, _response$data, _response$data2, response, _response$data3, _e$response, _e$response2;
76
- return _regenerator["default"].wrap(function _callee$(_context) {
77
- while (1) switch (_context.prev = _context.next) {
78
- case 0:
79
- e.preventDefault();
80
- body = {
81
- email: emailValue
82
- };
83
- _context.prev = 2;
84
- _context.next = 5;
85
- return SeaCatAuthAPI.post("/account/".concat(tenant, "/invite"), body);
86
- case 5:
87
- response = _context.sent;
88
- if (!((response === null || response === void 0 || (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.result) !== 'OK')) {
89
- _context.next = 8;
90
- break;
91
- }
92
- throw new Error('Invitation has not been sent');
93
- case 8:
94
- setIsInvitationSuccessful(true);
95
- setEmailValue('');
96
- if (response !== null && response !== void 0 && (_response$data2 = response.data) !== null && _response$data2 !== void 0 && _response$data2.registration_url) {
97
- setRegistrationUrl(response === null || response === void 0 || (_response$data3 = response.data) === null || _response$data3 === void 0 ? void 0 : _response$data3.registration_url);
98
- } else {
99
- setRegistrationUrl(undefined);
100
- }
101
- _context.next = 17;
102
- break;
103
- case 13:
104
- _context.prev = 13;
105
- _context.t0 = _context["catch"](2);
106
- setIsInvitationSuccessful(false);
107
- if (_context.t0 !== null && _context.t0 !== void 0 && (_e$response = _context.t0.response) !== null && _e$response !== void 0 && (_e$response = _e$response.data) !== null && _e$response !== void 0 && _e$response.registration_url) {
108
- setRegistrationUrl(_context.t0 === null || _context.t0 === void 0 || (_e$response2 = _context.t0.response) === null || _e$response2 === void 0 || (_e$response2 = _e$response2.data) === null || _e$response2 === void 0 ? void 0 : _e$response2.registration_url);
109
- } else {
110
- setRegistrationUrl(undefined);
111
- }
112
- case 17:
113
- case "end":
114
- return _context.stop();
57
+ var _ref = (0, _asyncToGenerator2.default)(function* (e) {
58
+ e.preventDefault();
59
+ var body = {
60
+ email: emailValue
61
+ };
62
+ try {
63
+ var _response$data, _response$data2;
64
+ var response = yield SeaCatAuthAPI.post("/account/".concat(tenant, "/invite"), body);
65
+ if ((response === null || response === void 0 || (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.result) !== 'OK') {
66
+ throw new Error('Invitation has not been sent');
67
+ }
68
+ setIsInvitationSuccessful(true);
69
+ setEmailValue('');
70
+ if (response !== null && response !== void 0 && (_response$data2 = response.data) !== null && _response$data2 !== void 0 && _response$data2.registration_url) {
71
+ var _response$data3;
72
+ setRegistrationUrl(response === null || response === void 0 || (_response$data3 = response.data) === null || _response$data3 === void 0 ? void 0 : _response$data3.registration_url);
73
+ } else {
74
+ setRegistrationUrl(undefined);
75
+ }
76
+ } catch (e) {
77
+ var _e$response;
78
+ setIsInvitationSuccessful(false);
79
+ if (e !== null && e !== void 0 && (_e$response = e.response) !== null && _e$response !== void 0 && (_e$response = _e$response.data) !== null && _e$response !== void 0 && _e$response.registration_url) {
80
+ var _e$response2;
81
+ setRegistrationUrl(e === null || e === void 0 || (_e$response2 = e.response) === null || _e$response2 === void 0 || (_e$response2 = _e$response2.data) === null || _e$response2 === void 0 ? void 0 : _e$response2.registration_url);
82
+ } else {
83
+ setRegistrationUrl(undefined);
115
84
  }
116
- }, _callee, null, [[2, 13]]);
117
- }));
85
+ }
86
+ });
118
87
  return function sendInvitation(_x) {
119
88
  return _ref.apply(this, arguments);
120
89
  };
121
90
  }();
122
91
 
123
92
  // Component that displays the registration URL with a copy button
124
- var CopyableRegistrationUrl = function CopyableRegistrationUrl(_ref2) {
125
- var registrationUrl = _ref2.registrationUrl;
126
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.FormText, null, t('InvitationScreen|If you want to invite the user manually, message them the registration URL below:')), /*#__PURE__*/_react["default"].createElement(_reactstrap.InputGroup, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, {
93
+ var CopyableRegistrationUrl = _ref2 => {
94
+ var {
95
+ registrationUrl
96
+ } = _ref2;
97
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactstrap.FormText, null, t('InvitationScreen|If you want to invite the user manually, message them the registration URL below:')), /*#__PURE__*/_react.default.createElement(_reactstrap.InputGroup, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
127
98
  readOnly: true,
128
99
  value: registrationUrl
129
- }), /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
100
+ }), /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
130
101
  outline: true,
131
102
  color: "primary",
132
103
  className: "text-nowrap",
133
104
  onClick: copyRegistrationUrl
134
- }, /*#__PURE__*/_react["default"].createElement("i", {
105
+ }, /*#__PURE__*/_react.default.createElement("i", {
135
106
  className: urlCopied ? 'bi bi-clipboard-check pe-2' : 'bi bi-clipboard pe-2',
136
107
  title: t('InvitationScreen|Copy to clipboard')
137
108
  }), urlCopied ? t('InvitationScreen|Copied!') : t('InvitationScreen|Copy URL'))));
138
109
  };
139
110
 
140
111
  // Display for successful invitation
141
- var SuccessfulInvitationCardBody = function SuccessfulInvitationCardBody() {
142
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("h6", null, t('InvitationScreen|Invitation was sent successfully')), registrationUrl && /*#__PURE__*/_react["default"].createElement(CopyableRegistrationUrl, {
143
- registrationUrl: registrationUrl
144
- }), /*#__PURE__*/_react["default"].createElement("div", {
145
- className: "mt-2"
146
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
147
- onClick: function onClick() {
148
- return navigate('/auth/credentials');
149
- },
150
- color: "primary",
151
- size: "lg"
152
- }, t('General|Continue'))));
153
- };
112
+ var SuccessfulInvitationCardBody = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h6", null, t('InvitationScreen|Invitation was sent successfully')), registrationUrl && /*#__PURE__*/_react.default.createElement(CopyableRegistrationUrl, {
113
+ registrationUrl: registrationUrl
114
+ }), /*#__PURE__*/_react.default.createElement("div", {
115
+ className: "mt-2"
116
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
117
+ onClick: () => navigate('/auth/credentials'),
118
+ color: "primary",
119
+ size: "lg"
120
+ }, t('General|Continue'))));
154
121
 
155
122
  // Display for unsuccessful invitation
156
- var UnsuccessfulInvitationCardBody = function UnsuccessfulInvitationCardBody() {
157
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("h6", null, t('InvitationScreen|Invitation was not sent')), registrationUrl ? /*#__PURE__*/_react["default"].createElement(CopyableRegistrationUrl, {
158
- registrationUrl: registrationUrl
159
- }) : /*#__PURE__*/_react["default"].createElement(_reactstrap.FormText, null, t('InvitationScreen|The user could not be invited')), /*#__PURE__*/_react["default"].createElement("div", {
160
- className: "mt-2"
161
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
162
- onClick: function onClick() {
163
- return setIsInvitationSuccessful(undefined);
164
- },
165
- color: "primary",
166
- size: "lg"
167
- }, t('General|Back'))));
168
- };
169
- return /*#__PURE__*/_react["default"].createElement(_reactstrap.Container, {
123
+ var UnsuccessfulInvitationCardBody = () => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h6", null, t('InvitationScreen|Invitation was not sent')), registrationUrl ? /*#__PURE__*/_react.default.createElement(CopyableRegistrationUrl, {
124
+ registrationUrl: registrationUrl
125
+ }) : /*#__PURE__*/_react.default.createElement(_reactstrap.FormText, null, t('InvitationScreen|The user could not be invited')), /*#__PURE__*/_react.default.createElement("div", {
126
+ className: "mt-2"
127
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
128
+ onClick: () => setIsInvitationSuccessful(undefined),
129
+ color: "primary",
130
+ size: "lg"
131
+ }, t('General|Back'))));
132
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Container, {
170
133
  fluid: true,
171
134
  className: isInvitationSuccessful == undefined ? '' : 'h-100'
172
- }, isInvitationSuccessful != undefined ? /*#__PURE__*/_react["default"].createElement(_asab_webui_components.ResultCard, {
135
+ }, isInvitationSuccessful != undefined ? /*#__PURE__*/_react.default.createElement(_asab_webui_components.ResultCard, {
173
136
  isSuccessful: isInvitationSuccessful ? true : false,
174
- body: isInvitationSuccessful ? /*#__PURE__*/_react["default"].createElement(SuccessfulInvitationCardBody, null) : /*#__PURE__*/_react["default"].createElement(UnsuccessfulInvitationCardBody, null)
175
- }) : /*#__PURE__*/_react["default"].createElement(_reactstrap.Row, {
137
+ body: isInvitationSuccessful ? /*#__PURE__*/_react.default.createElement(SuccessfulInvitationCardBody, null) : /*#__PURE__*/_react.default.createElement(UnsuccessfulInvitationCardBody, null)
138
+ }) : /*#__PURE__*/_react.default.createElement(_reactstrap.Row, {
176
139
  className: "justify-content-center pt-5"
177
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, {
140
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Col, {
178
141
  md: "4"
179
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Form, {
180
- onSubmit: function onSubmit(e) {
142
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Form, {
143
+ onSubmit: e => {
181
144
  sendInvitation(e);
182
145
  }
183
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Card, {
146
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Card, {
184
147
  className: "invite-card"
185
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.CardHeader, {
148
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.CardHeader, {
186
149
  className: "card-header-flex"
187
- }, /*#__PURE__*/_react["default"].createElement("div", {
150
+ }, /*#__PURE__*/_react.default.createElement("div", {
188
151
  className: "flex-fill"
189
- }, /*#__PURE__*/_react["default"].createElement("h3", null, /*#__PURE__*/_react["default"].createElement("i", {
152
+ }, /*#__PURE__*/_react.default.createElement("h3", null, /*#__PURE__*/_react.default.createElement("i", {
190
153
  className: "bi bi-person-plus pe-2"
191
- }), t('InvitationScreen|Invite other users')))), /*#__PURE__*/_react["default"].createElement(_reactstrap.CardBody, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.Label, null, t('InvitationScreen|Enter the user\'s email address')), /*#__PURE__*/_react["default"].createElement(_reactstrap.InputGroup, null, /*#__PURE__*/_react["default"].createElement(_reactstrap.InputGroupText, null, /*#__PURE__*/_react["default"].createElement("i", {
154
+ }), t('InvitationScreen|Invite other users')))), /*#__PURE__*/_react.default.createElement(_reactstrap.CardBody, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Label, null, t('InvitationScreen|Enter the user\'s email address')), /*#__PURE__*/_react.default.createElement(_reactstrap.InputGroup, null, /*#__PURE__*/_react.default.createElement(_reactstrap.InputGroupText, null, /*#__PURE__*/_react.default.createElement("i", {
192
155
  className: "bi bi-envelope-at"
193
- })), /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, {
156
+ })), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
194
157
  name: "email",
195
158
  type: "email",
196
159
  autoComplete: "email",
197
160
  autoFocus: true,
198
161
  value: emailValue,
199
- onChange: function onChange(e) {
162
+ onChange: e => {
200
163
  emailValidation(e);
201
164
  }
202
- }))), /*#__PURE__*/_react["default"].createElement(_reactstrap.CardFooter, {
165
+ }))), /*#__PURE__*/_react.default.createElement(_reactstrap.CardFooter, {
203
166
  className: "card-footer-flex"
204
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
167
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
205
168
  outline: true,
206
169
  color: "primary",
207
170
  type: "button",
208
- onClick: function onClick() {
209
- return navigate(-1);
210
- }
211
- }, t('General|Cancel')), /*#__PURE__*/_react["default"].createElement("div", {
171
+ onClick: () => navigate(-1)
172
+ }, t('General|Cancel')), /*#__PURE__*/_react.default.createElement("div", {
212
173
  className: "flex-fill"
213
- }, "\xA0"), /*#__PURE__*/_react["default"].createElement(_reactstrap.Button, {
174
+ }, "\xA0"), /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
214
175
  color: "primary",
215
176
  disabled: emailValue === '' // Disable button if input is empty
216
177
  }, t('InvitationScreen|Invite'))))))));
@@ -1,28 +1,27 @@
1
1
  "use strict";
2
2
 
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports["default"] = LanguageDropdown;
6
+ exports.default = LanguageDropdown;
8
7
  var _react = _interopRequireWildcard(require("react"));
9
8
  var _reactI18next = require("react-i18next");
10
9
  var _actions = require("./actions");
11
10
  var _reactRedux = require("react-redux");
12
11
  var _reactstrap = require("reactstrap");
13
- 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); }
14
- 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; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
15
13
  function LanguageDropdown(props) {
16
- var _useTranslation = (0, _reactI18next.useTranslation)(),
17
- t = _useTranslation.t,
18
- i18n = _useTranslation.i18n;
19
- var changeLanguage = function changeLanguage(language) {
20
- i18n.changeLanguage(language).then(function () {
14
+ var {
15
+ t,
16
+ i18n
17
+ } = (0, _reactI18next.useTranslation)();
18
+ var changeLanguage = language => {
19
+ i18n.changeLanguage(language).then(() => {
21
20
  // if the hard refresh is needed: window.location.reload(false);
22
21
  });
23
22
  };
24
23
  var dispatch = (0, _reactRedux.useDispatch)();
25
- (0, _react.useEffect)(function () {
24
+ (0, _react.useEffect)(() => {
26
25
  var _i18n$language;
27
26
  dispatch({
28
27
  type: _actions.CHANGE_LANGUAGE,
@@ -34,29 +33,29 @@ function LanguageDropdown(props) {
34
33
  if (i18n.options.supportedLngs == null || i18n.options.supportedLngs == false) {
35
34
  return null;
36
35
  }
37
- return /*#__PURE__*/_react["default"].createElement(_reactstrap.UncontrolledDropdown, {
36
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledDropdown, {
38
37
  direction: "down"
39
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownToggle, {
38
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownToggle, {
40
39
  nav: true,
41
40
  caret: true
42
- }, /*#__PURE__*/_react["default"].createElement(LanguageFlag, {
41
+ }, /*#__PURE__*/_react.default.createElement(LanguageFlag, {
43
42
  language: i18n.language,
44
43
  style: {
45
44
  width: '24px'
46
45
  }
47
- })), /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownMenu, {
46
+ })), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownMenu, {
48
47
  className: "shadow"
49
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownItem, {
48
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
50
49
  header: true
51
- }, t('i18n|Language')), i18n.options.supportedLngs.map(function (language, i) {
50
+ }, t('i18n|Language')), i18n.options.supportedLngs.map((language, i) => {
52
51
  if (language == 'cimode') return null;
53
- return /*#__PURE__*/_react["default"].createElement(_reactstrap.DropdownItem, {
52
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
54
53
  key: language,
55
54
  title: language,
56
- onClick: function onClick() {
55
+ onClick: () => {
57
56
  changeLanguage(language);
58
57
  }
59
- }, /*#__PURE__*/_react["default"].createElement(LanguageFlag, {
58
+ }, /*#__PURE__*/_react.default.createElement(LanguageFlag, {
60
59
  language: language,
61
60
  className: "pe-2",
62
61
  style: {
@@ -66,10 +65,12 @@ function LanguageDropdown(props) {
66
65
  })));
67
66
  }
68
67
  function LanguageFlag(_ref) {
69
- var language = _ref.language,
70
- className = _ref.className,
71
- style = _ref.style;
72
- return /*#__PURE__*/_react["default"].createElement("img", {
68
+ var {
69
+ language,
70
+ className,
71
+ style
72
+ } = _ref;
73
+ return /*#__PURE__*/_react.default.createElement("img", {
73
74
  className: className,
74
75
  src: "media/locale/".concat(language, ".svg"),
75
76
  style: style
@@ -4,41 +4,28 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
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"));
7
+ exports.default = void 0;
13
8
  var _asab_webui_components = require("asab_webui_components");
14
9
  var _service = _interopRequireDefault(require("./service.js"));
15
10
  var _dropdown = _interopRequireDefault(require("./dropdown.js"));
16
11
  var _reducer = _interopRequireDefault(require("./reducer.js"));
17
- 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)); }
18
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
19
- var I18nModule = exports["default"] = /*#__PURE__*/function (_Module) {
20
- function I18nModule(app, name, props) {
21
- var _this;
22
- (0, _classCallCheck2["default"])(this, I18nModule);
23
- _this = _callSuper(this, I18nModule, [app, "I18nModule"]);
24
- _this.App = app;
25
- _this.I18nService = new _service["default"](app, "I18nService");
26
- _this.App.ReduxService.addReducer("language", _reducer["default"]);
27
- return _this;
12
+ class I18nModule extends _asab_webui_components.Module {
13
+ constructor(app, name, props) {
14
+ super(app, "I18nModule");
15
+ this.App = app;
16
+ this.I18nService = new _service.default(app, "I18nService");
17
+ this.App.ReduxService.addReducer("language", _reducer.default);
28
18
  }
29
- (0, _inherits2["default"])(I18nModule, _Module);
30
- return (0, _createClass2["default"])(I18nModule, [{
31
- key: "initialize",
32
- value: function initialize() {
33
- var headerService = this.App.locateService("HeaderService");
34
- headerService.addComponent({
35
- component: _dropdown["default"],
36
- componentProps: {
37
- children: "LanguageDropdown"
38
- },
39
- order: 500,
40
- fullscreenVisible: true
41
- });
42
- }
43
- }]);
44
- }(_asab_webui_components.Module);
19
+ initialize() {
20
+ var headerService = this.App.locateService("HeaderService");
21
+ headerService.addComponent({
22
+ component: _dropdown.default,
23
+ componentProps: {
24
+ children: "LanguageDropdown"
25
+ },
26
+ order: 500,
27
+ fullscreenVisible: true
28
+ });
29
+ }
30
+ }
31
+ exports.default = I18nModule;
@@ -4,11 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports["default"] = languageReducer;
7
+ exports.default = languageReducer;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _actions = require("./actions");
10
10
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["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; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
12
  var initialValue = {
13
13
  language: 'en'
14
14
  };