asab_webui_components 25.3.3 → 25.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -22,12 +22,6 @@ Object.defineProperty(exports, "AttentionBadge", {
22
22
  return _AttentionRequiredBadge.AttentionBadge;
23
23
  }
24
24
  });
25
- Object.defineProperty(exports, "ButtonWithAuthz", {
26
- enumerable: true,
27
- get: function get() {
28
- return _ButtonWithAuthz.ButtonWithAuthz;
29
- }
30
- });
31
25
  Object.defineProperty(exports, "CellContentLoader", {
32
26
  enumerable: true,
33
27
  get: function get() {
@@ -58,18 +52,6 @@ Object.defineProperty(exports, "ControlledSwitch", {
58
52
  return _ControlledSwitch.default;
59
53
  }
60
54
  });
61
- Object.defineProperty(exports, "ControlledSwitchWithAuthz", {
62
- enumerable: true,
63
- get: function get() {
64
- return _ControlledSwitchWithAuthz.ControlledSwitchWithAuthz;
65
- }
66
- });
67
- Object.defineProperty(exports, "Credentials", {
68
- enumerable: true,
69
- get: function get() {
70
- return _Credentials.Credentials;
71
- }
72
- });
73
55
  Object.defineProperty(exports, "DataTable", {
74
56
  enumerable: true,
75
57
  get: function get() {
@@ -142,12 +124,6 @@ Object.defineProperty(exports, "Humanize", {
142
124
  return _index.Humanize;
143
125
  }
144
126
  });
145
- Object.defineProperty(exports, "LinkWithAuthz", {
146
- enumerable: true,
147
- get: function get() {
148
- return _LinkWithAuthz.LinkWithAuthz;
149
- }
150
- });
151
127
  Object.defineProperty(exports, "Module", {
152
128
  enumerable: true,
153
129
  get: function get() {
@@ -208,12 +184,6 @@ Object.defineProperty(exports, "UncontrolledSwitch", {
208
184
  return _UncontrolledSwitch.default;
209
185
  }
210
186
  });
211
- Object.defineProperty(exports, "UncontrolledSwitchWithAuthz", {
212
- enumerable: true,
213
- get: function get() {
214
- return _UncontrolledSwitchWithAuthz.UncontrolledSwitchWithAuthz;
215
- }
216
- });
217
187
  Object.defineProperty(exports, "classifyIPAddress", {
218
188
  enumerable: true,
219
189
  get: function get() {
@@ -256,12 +226,6 @@ Object.defineProperty(exports, "humanizeToString", {
256
226
  return _humanizeToString.default;
257
227
  }
258
228
  });
259
- Object.defineProperty(exports, "isAuthorized", {
260
- enumerable: true,
261
- get: function get() {
262
- return _isAuthorized.isAuthorized;
263
- }
264
- });
265
229
  Object.defineProperty(exports, "isoCodeCountries", {
266
230
  enumerable: true,
267
231
  get: function get() {
@@ -316,6 +280,12 @@ Object.defineProperty(exports, "timeToStringRelative", {
316
280
  return _timeToStringRelative.timeToStringRelative;
317
281
  }
318
282
  });
283
+ Object.defineProperty(exports, "translateFromContent", {
284
+ enumerable: true,
285
+ get: function get() {
286
+ return _translateFromContent.translateFromContent;
287
+ }
288
+ });
319
289
  Object.defineProperty(exports, "useDateFNSLocale", {
320
290
  enumerable: true,
321
291
  get: function get() {
@@ -356,7 +326,6 @@ var _index2 = require("./components/DataTable2/components/filters/index.js");
356
326
  var _Spinner = require("./components/Spinner");
357
327
  var _ControlledSwitch = _interopRequireDefault(require("./components/ControlledSwitch"));
358
328
  var _UncontrolledSwitch = _interopRequireDefault(require("./components/UncontrolledSwitch"));
359
- var _Credentials = require("./components/Authz/Credentials");
360
329
  var _ContentLoader = require("./components/ContentLoader");
361
330
  var _DateTime = require("./components/DateTime/absolute/DateTime.js");
362
331
  var _DateTimeRelative = require("./components/DateTime/relative/DateTimeRelative.js");
@@ -372,12 +341,8 @@ var _classifyIPAddress = require("./utils/classifyIPAddress.js");
372
341
  var _itemExtensionHandler = require("./utils/itemExtensionHandler.js");
373
342
  var _removeFileExtension = require("./utils/removeFileExtension.js");
374
343
  var _deepMerge = require("./utils/deepMerge.js");
344
+ var _translateFromContent = require("./utils/translateFromContent.js");
375
345
  var _problemMarkers = require("./utils/monaco/problemMarkers.js");
376
- var _ButtonWithAuthz = require("./components/Authz/ButtonWithAuthz");
377
- var _LinkWithAuthz = require("./components/Authz/LinkWithAuthz");
378
- var _ControlledSwitchWithAuthz = require("./components/Authz/ControlledSwitchWithAuthz");
379
- var _UncontrolledSwitchWithAuthz = require("./components/Authz/UncontrolledSwitchWithAuthz");
380
- var _isAuthorized = require("./components/Authz/utils/isAuthorized.js");
381
346
  var _ResultCard = require("./components/ResultCard/ResultCard");
382
347
  var _AdvancedCard = require("./components/AdvancedCard/AdvancedCard.js");
383
348
  var _AsabReactJson = require("./components/AsabReactJson/AsabReactJson.js");
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _reactstrap = require("reactstrap");
12
- var _authz = require("./utils/authz");
12
+ var _authz = require("../utils/authz");
13
13
  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); }
14
14
  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; }
15
15
  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; }
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Credentials = Credentials;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactRedux = require("react-redux");
9
+ var _LinkWithAuthz = require("../LinkWithAuthz");
10
+ var _fetchAndStoreCredentials = require("../../utils/fetchAndStoreCredentials");
11
+ require("./Credentials.scss");
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); }
13
+ /*
14
+ This component displays a credential reference and links to their details page if available.
15
+
16
+ Props:
17
+ - app (object, required): The app configuration object containing credential module data.
18
+ - credentials_id (string or array, required): One or more credential IDs to display or resolve to user information.
19
+ - cleanupTime (number, optional): Time in milliseconds after which cached credentials can be cleared; defaults to 24 hours (1000 * 60 * 60 * 24).
20
+ */
21
+
22
+ function Credentials(_ref) {
23
+ var {
24
+ app,
25
+ credentials_id,
26
+ cleanupTime = 1000 * 60 * 60 * 24
27
+ } = _ref;
28
+ // Validation on undefined credentials_id
29
+ if (credentials_id == undefined) {
30
+ return '';
31
+ }
32
+ var resources = (0, _reactRedux.useSelector)(state => {
33
+ var _state$auth;
34
+ return state === null || state === void 0 || (_state$auth = state.auth) === null || _state$auth === void 0 ? void 0 : _state$auth.resources;
35
+ });
36
+ var resource = 'seacat:credentials:access'; // Resource required to access the Credentials List Screen
37
+
38
+ // Validation on props.app
39
+ if (app == undefined) {
40
+ return renderPlainCredentials(credentials_id);
41
+ }
42
+ var [credential, setCredential] = (0, _react.useState)(null);
43
+ // Checks if there is a SeaCatAdminFederationModule
44
+ var hasSeaCatAdminModule = (app === null || app === void 0 ? void 0 : app.Modules.some(obj => obj.Name === 'SeaCatAdminFederationModule')) === false;
45
+ (0, _react.useEffect)(() => {
46
+ // Fallback if credentials_id sent as an array
47
+ var fallbackCredentialId = Array.isArray(credentials_id) ? credentials_id[0] : credentials_id;
48
+ (0, _fetchAndStoreCredentials.matchCredentialId)(app, fallbackCredentialId, setCredential, cleanupTime);
49
+ }, []);
50
+ function renderPlainCredentials(cred_id) {
51
+ return /*#__PURE__*/_react.default.createElement("div", {
52
+ className: "authz-credentials-link"
53
+ }, /*#__PURE__*/_react.default.createElement("i", {
54
+ className: "bi bi-person pe-1"
55
+ }), /*#__PURE__*/_react.default.createElement("span", {
56
+ title: cred_id
57
+ }, cred_id));
58
+ }
59
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, credential ? /*#__PURE__*/_react.default.createElement("div", {
60
+ className: "authz-credentials-link",
61
+ title: credential.username || credential.id
62
+ }, /*#__PURE__*/_react.default.createElement("i", {
63
+ className: "bi bi-person pe-1"
64
+ }), /*#__PURE__*/_react.default.createElement(_LinkWithAuthz.LinkWithAuthz, {
65
+ resource: resource,
66
+ resources: resources,
67
+ to: "/auth/credentials/".concat(credential.id),
68
+ disabled: hasSeaCatAdminModule
69
+ }, credential.username || credential.id)) : /*#__PURE__*/_react.default.createElement("div", {
70
+ className: "authz-credentials-link",
71
+ title: credentials_id
72
+ }, /*#__PURE__*/_react.default.createElement("i", {
73
+ className: "bi bi-person pe-1"
74
+ }), /*#__PURE__*/_react.default.createElement(_LinkWithAuthz.LinkWithAuthz, {
75
+ resource: resource,
76
+ resources: resources,
77
+ to: "/auth/credentials/".concat(credentials_id),
78
+ disabled: hasSeaCatAdminModule
79
+ }, credentials_id)));
80
+ }
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _reactRouterDom = require("react-router-dom");
12
- var _authz = require("./utils/authz");
12
+ var _authz = require("../utils/authz");
13
13
  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; }
14
14
  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; }
15
15
  /*
@@ -7,10 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.ControlledSwitchWithAuthz = ControlledSwitchWithAuthz;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _ControlledSwitch = _interopRequireDefault(require("../ControlledSwitch"));
12
- var _authz = require("./utils/authz");
13
- 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); }
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _authz = require("../../utils/authz");
12
+ var _ControlledSwitch = require("./utils/ControlledSwitch/ControlledSwitch");
14
13
  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; }
15
14
  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; }
16
15
  /*
@@ -69,7 +68,7 @@ function ControlledSwitchWithAuthz(props) {
69
68
  var disabled = authzObj.disabled;
70
69
  var hide = authzObj.hide;
71
70
  var title = authzObj.title;
72
- return hide && disabled ? null : /*#__PURE__*/_react.default.createElement(_ControlledSwitch.default, (0, _extends2.default)({}, childProps, {
71
+ return hide && disabled ? null : /*#__PURE__*/_react.default.createElement(_ControlledSwitch.ControlledSwitch, (0, _extends2.default)({}, childProps, {
73
72
  title: title,
74
73
  disabled: disabled
75
74
  }));
@@ -7,10 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.UncontrolledSwitchWithAuthz = UncontrolledSwitchWithAuthz;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _UncontrolledSwitch = _interopRequireDefault(require("../UncontrolledSwitch"));
12
- var _authz = require("./utils/authz");
13
- 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); }
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _authz = require("../../utils/authz");
12
+ var _UncontrolledSwitch = require("./utils/UncontrolledSwitch");
14
13
  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; }
15
14
  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; }
16
15
  /*
@@ -70,7 +69,7 @@ function UncontrolledSwitchWithAuthz(props) {
70
69
  var disabled = authzObj.disabled;
71
70
  var hide = authzObj.hide;
72
71
  var title = authzObj.title;
73
- return hide && disabled ? null : /*#__PURE__*/_react.default.createElement(_UncontrolledSwitch.default, (0, _extends2.default)({}, childProps, {
72
+ return hide && disabled ? null : /*#__PURE__*/_react.default.createElement(_UncontrolledSwitch.UncontrolledSwitch, (0, _extends2.default)({}, childProps, {
74
73
  title: title,
75
74
  disabled: disabled
76
75
  }));
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ControlledSwitch = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ require("./ControlledSwitch.scss");
10
+ var ControlledSwitch = _ref => {
11
+ var {
12
+ isOn,
13
+ toggle,
14
+ disabled = false,
15
+ title,
16
+ size = 'md'
17
+ } = _ref;
18
+ var onClick = () => {
19
+ if (!disabled) {
20
+ toggle();
21
+ }
22
+ };
23
+ return /*#__PURE__*/_react.default.createElement("div", {
24
+ className: "seacat-auth switch-container".concat(disabled ? "-disabled" : "", " ").concat(size),
25
+ title: title
26
+ }, /*#__PURE__*/_react.default.createElement("div", {
27
+ className: isOn ? "on" : "off",
28
+ onClick: onClick
29
+ }, /*#__PURE__*/_react.default.createElement("div", {
30
+ className: "circle"
31
+ })));
32
+ };
33
+ exports.ControlledSwitch = ControlledSwitch;
@@ -0,0 +1,56 @@
1
+ // Switch styles
2
+
3
+ .seacat-auth.switch-container, .seacat-auth.switch-container-disabled {
4
+ width: 40px;
5
+ height: 20px;
6
+ display: inline-block;
7
+ border-radius: 50px;
8
+ margin-bottom: -2.5px;
9
+ cursor: pointer;
10
+
11
+ &.lg {
12
+ width: 52px;
13
+ height: 26px;
14
+ .on .circle {
15
+ margin-left: 25px;
16
+ }
17
+ }
18
+ &.sm {
19
+ width: 32px;
20
+ height: 16px;
21
+ .on .circle {
22
+ margin-left: 15px;
23
+ }
24
+ }
25
+
26
+ * {
27
+ border-radius: 50px;
28
+ transition: background-color .2s ease-out, margin .1s;
29
+ height: 100%;
30
+ }
31
+
32
+ .on, .off {
33
+ position: relative;
34
+ width: 100%;
35
+
36
+ .circle {
37
+ width: 50%;
38
+ }
39
+ }
40
+ .on {
41
+ .circle {
42
+ margin-left: 19px;
43
+ }
44
+ }
45
+ .off {
46
+ .circle {
47
+ margin-left: 0;
48
+ }
49
+ }
50
+ }
51
+
52
+ .seacat-auth.switch-container {
53
+ .circle {
54
+ background-color: white;
55
+ }
56
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.UncontrolledSwitch = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _ControlledSwitch = require("./ControlledSwitch/ControlledSwitch");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
12
+ // documentation available in asab-webui/doc/switch-components.md
13
+
14
+ var UncontrolledSwitch = _ref => {
15
+ var {
16
+ defaultValue = false,
17
+ disabled = false,
18
+ title,
19
+ register,
20
+ setValue,
21
+ name = 'uncontrolled switch',
22
+ id,
23
+ size = 'md'
24
+ } = _ref;
25
+ var [isOn, setIsOn] = (0, _react.useState)(defaultValue);
26
+ (0, _react.useEffect)(() => {
27
+ setValue(name, isOn, {
28
+ shouldDirty: true
29
+ });
30
+ }, [isOn]);
31
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ControlledSwitch.ControlledSwitch, {
32
+ isOn: isOn,
33
+ title: title,
34
+ disabled: disabled,
35
+ toggle: () => setIsOn(prev => !prev),
36
+ size: size
37
+ }), /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
38
+ type: "checkbox",
39
+ name: name,
40
+ id: id,
41
+ ref: register
42
+ }, register(name), {
43
+ style: {
44
+ display: "none"
45
+ }
46
+ })));
47
+ };
48
+ exports.UncontrolledSwitch = UncontrolledSwitch;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ButtonWithAuthz", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _ButtonWithAuthz.ButtonWithAuthz;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ControlledSwitchWithAuthz", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ControlledSwitchWithAuthz.ControlledSwitchWithAuthz;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "Credentials", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _Credentials.Credentials;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "LinkWithAuthz", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _LinkWithAuthz.LinkWithAuthz;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "UncontrolledSwitchWithAuthz", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _UncontrolledSwitchWithAuthz.UncontrolledSwitchWithAuthz;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "isAuthorized", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _isAuthorized.isAuthorized;
40
+ }
41
+ });
42
+ var _Credentials = require("./components/Credentials/Credentials");
43
+ var _ButtonWithAuthz = require("./components/ButtonWithAuthz");
44
+ var _LinkWithAuthz = require("./components/LinkWithAuthz");
45
+ var _ControlledSwitchWithAuthz = require("./components/Switches/ControlledSwitchWithAuthz");
46
+ var _UncontrolledSwitchWithAuthz = require("./components/Switches/UncontrolledSwitchWithAuthz");
47
+ var _isAuthorized = require("./utils/isAuthorized");
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.matchCredentialId = void 0;
8
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
+ var _i18next = _interopRequireDefault(require("i18next"));
10
+ // Compares array of IDs with data in localstorage
11
+ var matchCredentialId = (app, id, setData, cleanupTime) => {
12
+ var usernamesInLS = _getUsernamesFromLS('Credentials', cleanupTime);
13
+ if (!usernamesInLS.credentials || usernamesInLS.credentials.length === 0 || usernamesInLS.expiration <= Date.now()) {
14
+ _removeUsernamesFromLS();
15
+ _retrieveUserName(app, id, setData, cleanupTime);
16
+ return;
17
+ }
18
+ var found = usernamesInLS.credentials.find(item => item.id === id);
19
+ if (!found) {
20
+ _retrieveUserName(app, id, setData, cleanupTime);
21
+ } else {
22
+ setData(found);
23
+ }
24
+ };
25
+
26
+ // asks the server for usernames, saves them to local storage and sets usernames to render
27
+ exports.matchCredentialId = matchCredentialId;
28
+ var _retrieveUserName = /*#__PURE__*/function () {
29
+ var _ref = (0, _asyncToGenerator2.default)(function* (app, cred_id, setData, cleanupTime) {
30
+ var SeacatAuthAPI = app.axiosCreate('seacat-auth');
31
+ try {
32
+ var response = yield SeacatAuthAPI.put("idents", [cred_id]);
33
+ if (response.data.result !== 'OK') {
34
+ throw new Error(_i18next.default.t('General|There was an issue processing a request'));
35
+ }
36
+ var usernameToLS = _saveUsernamesToLS(response.data.data, cred_id, cleanupTime);
37
+ setData(usernameToLS);
38
+ } catch (e) {
39
+ console.error(e);
40
+ _removeUsernamesFromLS();
41
+ }
42
+ });
43
+ return function _retrieveUserName(_x, _x2, _x3, _x4) {
44
+ return _ref.apply(this, arguments);
45
+ };
46
+ }();
47
+ function _removeUsernamesFromLS() {
48
+ if (localStorage) {
49
+ localStorage.removeItem('Credentials');
50
+ }
51
+ }
52
+
53
+ // Get usernames from localstorage
54
+ function _getUsernamesFromLS(name, cleanupTime) {
55
+ var ls;
56
+ if (localStorage) {
57
+ try {
58
+ ls = JSON.parse(localStorage.getItem(name.toString()));
59
+ } catch (e) {
60
+ /*Ignore*/
61
+ }
62
+ }
63
+ return ls ? ls : {
64
+ credentials: [],
65
+ expiration: Date.now() + cleanupTime
66
+ };
67
+ }
68
+ function _saveUsernamesToLS(data, credentials_id, cleanupTime) {
69
+ if (localStorage) {
70
+ var dataInLS = _getUsernamesFromLS('Credentials', cleanupTime);
71
+ var item = {
72
+ id: credentials_id,
73
+ username: data[credentials_id] || undefined
74
+ };
75
+ if (!dataInLS.credentials.find(cred => cred.id === item.id)) {
76
+ dataInLS.credentials.push(item);
77
+ }
78
+ localStorage.setItem('Credentials', JSON.stringify(dataInLS));
79
+ return item;
80
+ }
81
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.translateFromContent = translateFromContent;
8
+ var _i18next = _interopRequireDefault(require("i18next"));
9
+ // Translates content based on the current language setting
10
+ // Handles translation of content objects that contain language-specific text
11
+ function translateFromContent(content) {
12
+ var currentLang = (_i18next.default === null || _i18next.default === void 0 ? void 0 : _i18next.default.language) || 'c';
13
+ var errorMessage = _i18next.default.t("General|Content cannot be translated - invalid format");
14
+
15
+ // If the content is a string, return it as-is
16
+ if (typeof content === 'string') {
17
+ return content;
18
+ }
19
+
20
+ // If content is null, not an object, or is an array, return error message
21
+ if (!content || typeof content !== 'object' || Array.isArray(content)) {
22
+ console.warn(errorMessage + " " + content);
23
+ return errorMessage;
24
+ }
25
+
26
+ // Normalize keys to lowercase
27
+ var normalizedKeys = Object.keys(content).reduce((acc, key) => {
28
+ acc[key.toLowerCase()] = content[key];
29
+ return acc;
30
+ }, {});
31
+
32
+ // If the normalizedKeys object is empty, return empty string
33
+ if (Object.keys(normalizedKeys).length === 0) {
34
+ console.warn('Content for translation is empty');
35
+ return '';
36
+ }
37
+
38
+ /* Try to get text in current language
39
+ if not found try fallback 'c' language
40
+ otherwise return error message */
41
+ if (typeof normalizedKeys[currentLang] === 'string') {
42
+ return normalizedKeys[currentLang];
43
+ }
44
+ if (typeof normalizedKeys['c'] === 'string') {
45
+ return normalizedKeys['c'];
46
+ }
47
+ console.warn(content);
48
+ return errorMessage;
49
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asab_webui_components",
3
- "version": "25.3.3",
3
+ "version": "25.4.2",
4
4
  "license": "BSD-3-Clause",
5
5
  "description": "TeskaLabs ASAB WebUI Components Library",
6
6
  "contributors": [
@@ -19,6 +19,10 @@
19
19
  },
20
20
  "homepage": "https://github.com/TeskaLabs/asab-webui-components-lib",
21
21
  "main": "dist/index.js",
22
+ "exports": {
23
+ ".": "./dist/index.js",
24
+ "./seacat-auth": "./dist/seacat-auth/index.js"
25
+ },
22
26
  "files": [
23
27
  "dist"
24
28
  ],
@@ -1,181 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.Credentials = Credentials;
8
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
- var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
- var _react = _interopRequireWildcard(require("react"));
12
- var _reactI18next = require("react-i18next");
13
- var _reactRedux = require("react-redux");
14
- var _LinkWithAuthz = require("./LinkWithAuthz");
15
- require("./Credentials.scss");
16
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
17
- function Credentials(_ref) {
18
- var _props$apiPath, _props$cleanupTime, _props$app;
19
- var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
20
- // Validation on undefined credentials_ids
21
- if (props.credentials_ids == undefined) {
22
- return '';
23
- }
24
- var resources = (0, _reactRedux.useSelector)(state => {
25
- var _state$auth;
26
- return state === null || state === void 0 || (_state$auth = state.auth) === null || _state$auth === void 0 ? void 0 : _state$auth.resources;
27
- });
28
- var resource = 'seacat:credentials:access'; // Resource required to access the Credentials List Screen
29
-
30
- var {
31
- t
32
- } = (0, _reactI18next.useTranslation)();
33
- var apiPath = (_props$apiPath = props.apiPath) !== null && _props$apiPath !== void 0 ? _props$apiPath : 'seacat-auth';
34
- var credentials_ids = Array.isArray(props.credentials_ids) ? props.credentials_ids : [props.credentials_ids];
35
-
36
- // Validation on props.app
37
- if (props.app == undefined) {
38
- return renderPlainCredentials(credentials_ids);
39
- }
40
- var CredentialsAPI = props.app.axiosCreate(apiPath);
41
- var cleanupTime = (_props$cleanupTime = props.cleanupTime) !== null && _props$cleanupTime !== void 0 ? _props$cleanupTime : 1000 * 60 * 60 * 24; // 24 hrs
42
-
43
- var [credentials, setCredentials] = (0, _react.useState)([]);
44
- // Checks if there is a SeaCatAdminFederationModule
45
- var hasSeaCatAdminModule = ((_props$app = props.app) === null || _props$app === void 0 ? void 0 : _props$app.Modules.some(obj => obj.Name === 'SeaCatAdminFederationModule')) === false;
46
- (0, _react.useEffect)(() => {
47
- matchCredentialIds(credentials_ids);
48
- }, []);
49
-
50
- // asks the server for usernames, saves them to local storage and sets usernames to render
51
- var retrieveUserNames = /*#__PURE__*/function () {
52
- var _ref2 = (0, _asyncToGenerator2.default)(function* () {
53
- try {
54
- var response = yield CredentialsAPI.put("idents", credentials_ids);
55
- if (response.data.result !== 'OK') {
56
- throw new Error(t('General|There was an issue processing a request'));
57
- }
58
- var usernamesToLS = saveUsernamesToLS(response.data.data, credentials_ids, cleanupTime);
59
- setCredentials(usernamesToLS);
60
- } catch (e) {
61
- console.error(e);
62
- removeUsernamesFromLS();
63
- }
64
- });
65
- return function retrieveUserNames() {
66
- return _ref2.apply(this, arguments);
67
- };
68
- }();
69
-
70
- // compares array of IDs with data in localstorage
71
- var matchCredentialIds = credentials_ids => {
72
- var usernamesInLS = getUsernamesFromLS('Credentials', cleanupTime);
73
- var usernamesToRender = [];
74
- if (usernamesInLS.credentials == undefined || usernamesInLS.credentials.length === 0 || usernamesInLS.expiration <= Date.now()) {
75
- removeUsernamesFromLS();
76
- retrieveUserNames();
77
- return;
78
- }
79
- var _loop = function _loop(i) {
80
- var indexFromLS = usernamesInLS.credentials.findIndex(itemInLS => itemInLS.id === credentials_ids[i]);
81
- if (indexFromLS === -1) {
82
- retrieveUserNames();
83
- return {
84
- v: void 0
85
- };
86
- }
87
- usernamesToRender.push({
88
- username: usernamesInLS.credentials[indexFromLS].username,
89
- id: usernamesInLS.credentials[indexFromLS].id
90
- });
91
- },
92
- _ret;
93
- for (var i = 0; i < credentials_ids.length; i++) {
94
- _ret = _loop(i);
95
- if (_ret) return _ret.v;
96
- }
97
- setCredentials(usernamesToRender);
98
- };
99
- function renderPlainCredentials(credentials_ids) {
100
- return credentials_ids.map((credentials_id, i) => /*#__PURE__*/_react.default.createElement("div", {
101
- className: "authz-credentials-link",
102
- key: i
103
- }, /*#__PURE__*/_react.default.createElement("i", {
104
- className: "bi bi-person pe-1"
105
- }), /*#__PURE__*/_react.default.createElement("span", {
106
- title: credentials_id
107
- }, credentials_id)));
108
- }
109
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, credentials && credentials.length !== 0 ? credentials.map((credentialObj, i) => /*#__PURE__*/_react.default.createElement("div", {
110
- key: i,
111
- className: "authz-credentials-link",
112
- title: credentialObj.username || credentialObj.id
113
- }, /*#__PURE__*/_react.default.createElement("i", {
114
- className: "bi bi-person pe-1"
115
- }), /*#__PURE__*/_react.default.createElement(_LinkWithAuthz.LinkWithAuthz, {
116
- resource: resource,
117
- resources: resources,
118
- to: "/auth/credentials/".concat(credentialObj.id),
119
- disabled: hasSeaCatAdminModule
120
- }, credentialObj.username || credentialObj.id))) : credentials_ids.map((credentials_id, i) => /*#__PURE__*/_react.default.createElement("div", {
121
- key: i,
122
- className: "authz-credentials-link",
123
- title: credentials_id
124
- }, /*#__PURE__*/_react.default.createElement("i", {
125
- className: "bi bi-person pe-1"
126
- }), /*#__PURE__*/_react.default.createElement(_LinkWithAuthz.LinkWithAuthz, {
127
- resource: resource,
128
- resources: resources,
129
- to: "/auth/credentials/".concat(credentials_id),
130
- disabled: hasSeaCatAdminModule
131
- }, credentials_id))));
132
- }
133
- function removeUsernamesFromLS() {
134
- if (localStorage) {
135
- localStorage.removeItem('Credentials');
136
- }
137
- }
138
-
139
- // Get usernames from localstorage
140
- function getUsernamesFromLS(name, cleanupTime) {
141
- var ls;
142
- if (localStorage) {
143
- try {
144
- ls = JSON.parse(localStorage.getItem(name.toString()));
145
- } catch (e) {
146
- /*Ignore*/
147
- }
148
- }
149
- return ls ? ls : {
150
- credentials: [],
151
- expiration: Date.now() + cleanupTime
152
- };
153
- }
154
- function saveUsernamesToLS(data, credentials_ids, cleanupTime) {
155
- if (localStorage) {
156
- var dataInLS = getUsernamesFromLS('Credentials', cleanupTime);
157
- var dataToLS = [];
158
- credentials_ids.map(credential_id => {
159
- var item = {};
160
- if (data[credential_id]) {
161
- item = {
162
- id: credential_id,
163
- username: data[credential_id]
164
- };
165
- }
166
- if (!data[credential_id]) {
167
- item = {
168
- id: credential_id,
169
- username: undefined
170
- };
171
- }
172
- var indexFromLS = dataInLS.credentials.findIndex(itemInLS => itemInLS.id === item.id);
173
- if (indexFromLS === -1) {
174
- dataInLS.credentials.push(item);
175
- }
176
- dataToLS.push(item);
177
- });
178
- localStorage.setItem('Credentials', JSON.stringify(dataInLS));
179
- return dataToLS;
180
- }
181
- }