andoncloud-sdk 1.3.0 → 1.3.3

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.
@@ -2,12 +2,13 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
2
2
 
3
3
  var React = require('react');
4
4
  var React__default = _interopDefault(React);
5
+ var mobx = require('mobx');
5
6
  var reactRouterDom = require('react-router-dom');
6
7
  var propTypes = require('prop-types');
7
8
  var CssBaseline = _interopDefault(require('@mui/material/CssBaseline'));
8
9
  var styles = require('@mui/material/styles');
9
- var mobx = require('mobx');
10
10
  var material = require('@mui/material');
11
+ var loader = _interopDefault(require('./images/loader.svg'));
11
12
  var mobxReactLite = require('mobx-react-lite');
12
13
  var Dialog = _interopDefault(require('@mui/material/Dialog'));
13
14
  var DialogContent = _interopDefault(require('@mui/material/DialogContent'));
@@ -25,7 +26,7 @@ var IconButton = _interopDefault(require('@mui/material/IconButton'));
25
26
  var MenuItem = _interopDefault(require('@mui/material/MenuItem'));
26
27
  var Menu = _interopDefault(require('@mui/material/Menu'));
27
28
  var AccessTimeIcon = _interopDefault(require('@mui/icons-material/AccessTime'));
28
- var styles$1 = require('@mui/styles');
29
+ var backdropPattern = _interopDefault(require('./images/backdropPattern.svg'));
29
30
 
30
31
  let e={data:""},t=t=>"object"==typeof window?((t?t.querySelector("#_goober"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:t||e,l=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,a=/\/\*[^]*?\*\/|\s\s+|\n/g,n=(e,t)=>{let r="",l="",a="";for(let o in e){let s=e[o];"@"==o[0]?"i"==o[1]?r=o+" "+s+";":l+="f"==o[1]?n(s,o):o+"{"+n(s,"k"==o[1]?"":t)+"}":"object"==typeof s?l+=n(s,t?t.replace(/([^,])+/g,e=>o.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):o):null!=s&&(o=/^--/.test(o)?o:o.replace(/[A-Z]/g,"-$&").toLowerCase(),a+=n.p?n.p(o,s):o+":"+s+";");}return r+(t&&a?t+"{"+a+"}":a)+l},o={},s=e=>{if("object"==typeof e){let t="";for(let r in e)t+=r+s(e[r]);return t}return e},c=(e,t,r,c,i)=>{let u=s(e),p=o[u]||(o[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return "go"+r})(u));if(!o[p]){let t=u!==e?e:(e=>{let t,r=[{}];for(;t=l.exec(e.replace(a,""));)t[4]?r.shift():t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):r[0][t[1]]=t[2];return r[0]})(e);o[p]=n(i?{["@keyframes "+p]:t}:t,r?"":"."+p);}return ((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e);})(o[p],t,c),p},i=(e,t,r)=>e.reduce((e,l,a)=>{let o=t[a];if(o&&o.call){let e=o(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;o=t?"."+t:e&&"object"==typeof e?e.props?"":n(e,""):!1===e?"":e;}return e+l+(null==o?"":o)},"");function u(e){let r=this||{},l=e.call?e(r.p):e;return c(l.unshift?l.raw?i(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let p,d,f,g=u.bind({g:1}),b=u.bind({k:1});function h(e,t,r,l){n.p=t,p=e,d=r,f=l;}function m(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let s=Object.assign({},n),c=s.className||a.className;r.p=Object.assign({theme:d&&d()},s),r.o=/ *go\d+/.test(c),s.className=u.apply(r,l)+(c?" "+c:""),t&&(s.ref=o);let i=e;return e[0]&&(i=s.as||e,delete s.as),f&&i[0]&&f(s),p(i,s)}return t?t(a):a}}
31
32
 
@@ -1432,15 +1433,31 @@ var SessionAPI = /*#__PURE__*/function () {
1432
1433
  var SessionStore = /*#__PURE__*/function () {
1433
1434
  function SessionStore() {
1434
1435
  this.loading = false;
1436
+ this.loginStatus = {
1437
+ status: "not_authorized"
1438
+ };
1435
1439
  this.api = new SessionAPI();
1436
1440
  this.networkError = null;
1437
1441
  mobx.makeObservable(this, {
1438
- loading: mobx.observable
1442
+ loading: mobx.observable,
1443
+ loginStatus: mobx.observable.deep
1439
1444
  });
1440
1445
  }
1441
1446
 
1442
1447
  var _proto2 = SessionStore.prototype;
1443
1448
 
1449
+ _proto2.updateLoginStatus = function updateLoginStatus() {
1450
+ this.loginStatus = {
1451
+ status: "connected",
1452
+ authResponse: {
1453
+ user: this.session.user,
1454
+ accessToken: this.session.accessToken,
1455
+ tokenType: this.session.tokenType,
1456
+ expiresIn: this.session.expiresIn
1457
+ }
1458
+ };
1459
+ };
1460
+
1444
1461
  _proto2.setAuthConfig = function setAuthConfig(config) {
1445
1462
  this.api.setAuthConfig(config);
1446
1463
  };
@@ -1466,24 +1483,6 @@ var SessionStore = /*#__PURE__*/function () {
1466
1483
  };
1467
1484
  };
1468
1485
 
1469
- _proto2.getLoginStatus = function getLoginStatus() {
1470
- if (this.isLoggedIn()) {
1471
- return {
1472
- status: "connected",
1473
- authResponse: {
1474
- user: this.session.user,
1475
- accessToken: this.session.accessToken,
1476
- tokenType: this.session.tokenType,
1477
- expiresIn: this.session.expiresIn
1478
- }
1479
- };
1480
- }
1481
-
1482
- return {
1483
- status: "not_authorized"
1484
- };
1485
- };
1486
-
1487
1486
  _proto2.authorize = function authorize(credentials, storeSession) {
1488
1487
  if (storeSession === void 0) {
1489
1488
  storeSession = true;
@@ -1506,6 +1505,8 @@ var SessionStore = /*#__PURE__*/function () {
1506
1505
  _this8.storeSession();
1507
1506
 
1508
1507
  _this8.setCurrentUser(session.user);
1508
+
1509
+ _this8.updateLoginStatus();
1509
1510
  }
1510
1511
 
1511
1512
  return session;
@@ -1528,6 +1529,8 @@ var SessionStore = /*#__PURE__*/function () {
1528
1529
  if (_this10.session) {
1529
1530
  return Promise.resolve(_this10.api.getUserData()).then(function (user) {
1530
1531
  _this10.setCurrentUser(user);
1532
+
1533
+ _this10.updateLoginStatus();
1531
1534
  });
1532
1535
  }
1533
1536
  }();
@@ -1549,6 +1552,10 @@ var SessionStore = /*#__PURE__*/function () {
1549
1552
  _this12.removeSession();
1550
1553
 
1551
1554
  _this12.removeCurrentUser();
1555
+
1556
+ _this12.loginStatus = {
1557
+ status: "not_authorized"
1558
+ };
1552
1559
  });
1553
1560
  }
1554
1561
  }();
@@ -1743,6 +1750,23 @@ var defaultTheme = styles.createTheme(styles.adaptV4Theme({
1743
1750
  }
1744
1751
  }));
1745
1752
 
1753
+ var Loader = function Loader(_ref) {
1754
+ var width = _ref.width,
1755
+ dataTestId = _ref["data-testid"];
1756
+ return /*#__PURE__*/React__default.createElement(material.Box, {
1757
+ display: "flex",
1758
+ alignItems: "center",
1759
+ justifyContent: "center",
1760
+ width: "100%",
1761
+ height: "100vh"
1762
+ }, /*#__PURE__*/React__default.createElement("img", {
1763
+ "data-testid": dataTestId,
1764
+ alt: "loader",
1765
+ width: width,
1766
+ src: loader
1767
+ }));
1768
+ };
1769
+
1746
1770
  var useQueryParams = function useQueryParams() {
1747
1771
  return new URLSearchParams(reactRouterDom.useLocation().search);
1748
1772
  };
@@ -2896,54 +2920,51 @@ var useLogin = function useLogin(scope, loginProps) {
2896
2920
  };
2897
2921
  };
2898
2922
 
2899
- var useStyles = styles$1.makeStyles({
2900
- root: function root(_ref) {
2901
- var styles = _ref.styles;
2902
- return styles;
2903
- },
2904
- nav: {
2905
- marginRight: 10
2906
- },
2907
- user: {
2908
- marginRight: 20,
2909
- backgroundColor: "rgba(0,0,0,0.05)",
2910
- borderRadius: 5,
2911
- border: "1px solid rgba(0,0,0, 0.25)"
2912
- },
2913
- userInfo: {
2914
- paddingLeft: "1em"
2915
- },
2916
- button: {
2917
- color: "white",
2918
- backgroundColor: "transparent",
2919
- "&:hover": {
2920
- backgroundColor: "rgba(0,0,0,0.05)"
2921
- }
2922
- },
2923
- loginButton: {
2924
- padding: "6px 18px"
2925
- },
2926
- logoutButton: {
2927
- paddingRight: 18
2928
- },
2929
- avatar: {
2930
- paddingRight: "0.5em"
2931
- },
2932
- menu: function menu(_ref2) {
2933
- var menuStyles = _ref2.menuStyles;
2934
- return _extends$1({
2935
- marginTop: 48,
2923
+ var useStyles = (function (_ref) {
2924
+ var styles = _ref.styles,
2925
+ menuStyles = _ref.menuStyles,
2926
+ menuDropdownStyles = _ref.menuDropdownStyles;
2927
+ return {
2928
+ root: styles,
2929
+ nav: {
2930
+ marginRight: "10px"
2931
+ },
2932
+ user: {
2933
+ marginRight: "20px",
2934
+ backgroundColor: "rgba(0,0,0,0.05)",
2935
+ borderRadius: "5px",
2936
+ border: "1px solid rgba(0,0,0, 0.25)"
2937
+ },
2938
+ userInfo: {
2939
+ paddingLeft: "1em"
2940
+ },
2941
+ button: {
2942
+ color: "white",
2943
+ backgroundColor: "transparent",
2944
+ "&:hover": {
2945
+ backgroundColor: "rgba(0,0,0,0.05)"
2946
+ }
2947
+ },
2948
+ loginButton: {
2949
+ padding: "6px 18px"
2950
+ },
2951
+ logoutButton: {
2952
+ paddingRight: "18px"
2953
+ },
2954
+ avatar: {
2955
+ paddingRight: "0.5em"
2956
+ },
2957
+ menu: _extends$1({
2958
+ marginTop: "48px",
2936
2959
  backgroundColor: "rgba(0,0,0,0.5)"
2937
- }, menuStyles);
2938
- },
2939
- popover: function popover(_ref3) {
2940
- var menuDropdownStyles = _ref3.menuDropdownStyles;
2941
- return _extends$1({
2942
- minWidth: "20%",
2943
- backgroundColor: "#2d2d2d",
2944
- color: "white"
2945
- }, menuDropdownStyles);
2946
- }
2960
+ }, menuStyles, {
2961
+ "& .MuiPaper-root": _extends$1({
2962
+ minWidth: "20%",
2963
+ backgroundColor: "#2d2d2d",
2964
+ color: "white"
2965
+ }, menuDropdownStyles)
2966
+ })
2967
+ };
2947
2968
  });
2948
2969
 
2949
2970
  var Header = function Header(_ref) {
@@ -2990,7 +3011,7 @@ var Header = function Header(_ref) {
2990
3011
  menuAnchorEl = _useState2[0],
2991
3012
  setMenuAnchorEl = _useState2[1];
2992
3013
 
2993
- var classes = useStyles({
3014
+ var headerStyles = useStyles({
2994
3015
  styles: styles,
2995
3016
  menuStyles: menuStyles,
2996
3017
  menuDropdownStyles: menuDropdownStyles
@@ -3058,14 +3079,14 @@ var Header = function Header(_ref) {
3058
3079
  var currentUser = userStore.currentUser;
3059
3080
  return /*#__PURE__*/React__default.createElement(Box, {
3060
3081
  display: "inline-block",
3061
- className: classes.avatar
3082
+ sx: headerStyles.avatar
3062
3083
  }, currentUser && currentUser.name);
3063
3084
  };
3064
3085
 
3065
3086
  var renderNav = function renderNav() {
3066
3087
  return navItems && /*#__PURE__*/React__default.createElement(Box, {
3067
3088
  display: "flex",
3068
- className: classes.nav
3089
+ sx: headerStyles.nav
3069
3090
  }, navItems.map(function (item) {
3070
3091
  return /*#__PURE__*/React__default.createElement(Button, {
3071
3092
  key: item.label,
@@ -3073,7 +3094,7 @@ var Header = function Header(_ref) {
3073
3094
  return handleItemClick(item);
3074
3095
  },
3075
3096
  endIcon: item.icon,
3076
- className: classes.button
3097
+ sx: headerStyles.button
3077
3098
  }, item.label);
3078
3099
  }));
3079
3100
  };
@@ -3082,23 +3103,23 @@ var Header = function Header(_ref) {
3082
3103
  var currentUser = userStore.getCurrentUserJS;
3083
3104
  return /*#__PURE__*/React__default.createElement(Box, {
3084
3105
  display: "flex",
3085
- className: classes.user
3106
+ sx: headerStyles.user
3086
3107
  }, currentUser ? /*#__PURE__*/React__default.createElement(Box, {
3087
3108
  display: "flex",
3088
3109
  alignItems: "center",
3089
- className: classes.userInfo
3110
+ sx: headerStyles.userInfo
3090
3111
  }, showCompanyLogo && renderUserCompanyLogo(), renderUserAvatar(), /*#__PURE__*/React__default.createElement(Button, {
3091
3112
  id: "logout-button",
3092
3113
  onClick: handleLogout,
3093
3114
  endIcon: /*#__PURE__*/React__default.createElement(ExitToAppIcon, null),
3094
- className: classes.button + " " + classes.logoutButton,
3115
+ sx: _extends$1({}, headerStyles.button, headerStyles.logoutButton),
3095
3116
  "data-testid": "ac-sdk-header-logout-button"
3096
3117
  }, languageStore.translations.headerLogoutButton)) : /*#__PURE__*/React__default.createElement(Button, {
3097
3118
  id: "login-button",
3098
3119
  onClick: function onClick() {
3099
3120
  return navigate("/login");
3100
3121
  },
3101
- className: classes.button + " " + classes.loginButton,
3122
+ sx: _extends$1({}, headerStyles.button, headerStyles.loginButton),
3102
3123
  "data-testid": "ac-sdk-header-login-button"
3103
3124
  }, languageStore.translations.headerLoginButton));
3104
3125
  };
@@ -3125,10 +3146,7 @@ var Header = function Header(_ref) {
3125
3146
  },
3126
3147
  open: Boolean(menuAnchorEl),
3127
3148
  onClose: handleMenuClose,
3128
- className: classes.menu,
3129
- PopoverClasses: {
3130
- paper: classes.popover
3131
- }
3149
+ sx: headerStyles.menu
3132
3150
  }, menuItems.map(function (item) {
3133
3151
  return /*#__PURE__*/React__default.createElement(MenuItem, {
3134
3152
  key: item.label,
@@ -3142,7 +3160,7 @@ var Header = function Header(_ref) {
3142
3160
  return /*#__PURE__*/React__default.createElement(AppBar, {
3143
3161
  position: position,
3144
3162
  elevation: 0,
3145
- className: classes.root,
3163
+ sx: headerStyles.root,
3146
3164
  "data-testid": dataTestID || "ac-sdk-header"
3147
3165
  }, /*#__PURE__*/React__default.createElement(Toolbar, {
3148
3166
  variant: "dense"
@@ -3237,8 +3255,6 @@ Container.defaultProps = {
3237
3255
  headerProps: {}
3238
3256
  };
3239
3257
 
3240
- var backdropPattern = "backdropPattern~bkGGEBvj.svg";
3241
-
3242
3258
  var FullscreenBackdrop = function FullscreenBackdrop() {
3243
3259
  return /*#__PURE__*/React__default.createElement("div", {
3244
3260
  style: {
@@ -3399,13 +3415,11 @@ var App = mobxReactLite.observer(function (_ref) {
3399
3415
  React.useEffect(function () {
3400
3416
  var recoverSession = function recoverSession() {
3401
3417
  try {
3402
- var _temp2 = function () {
3403
- if (authEnabled) {
3404
- return Promise.resolve(sessionStore.recover()).then(function () {});
3405
- }
3406
- }();
3418
+ if (authEnabled) {
3419
+ return Promise.resolve(sessionStore.recover());
3420
+ }
3407
3421
 
3408
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
3422
+ return Promise.resolve();
3409
3423
  } catch (e) {
3410
3424
  return Promise.reject(e);
3411
3425
  }
@@ -3425,10 +3439,13 @@ var App = mobxReactLite.observer(function (_ref) {
3425
3439
  config: _extends$1({
3426
3440
  baseUrl: baseUrl
3427
3441
  }, authProps)
3428
- }, sessionStore.networkError ? /*#__PURE__*/React__default.createElement(NetworkError, null) : appReady && /*#__PURE__*/React__default.createElement(Router, null, /*#__PURE__*/React__default.createElement(reactRouterDom.Route, {
3442
+ }, sessionStore.networkError ? /*#__PURE__*/React__default.createElement(NetworkError, null) : appReady ? /*#__PURE__*/React__default.createElement(Router, null, /*#__PURE__*/React__default.createElement(reactRouterDom.Route, {
3429
3443
  path: "*",
3430
3444
  element: /*#__PURE__*/React__default.createElement(ModalProvider, null, children)
3431
- }))));
3445
+ })) : /*#__PURE__*/React__default.createElement(Loader, {
3446
+ "data-testid": "ac-sdk-app-loading",
3447
+ width: "500px"
3448
+ })));
3432
3449
  });
3433
3450
  App.propTypes = {
3434
3451
  children: propTypes.PropTypes.any.isRequired,
@@ -3448,8 +3465,19 @@ App.defaultProps = {
3448
3465
  muiTheme: defaultTheme
3449
3466
  };
3450
3467
 
3451
- var getLoginStatus = function getLoginStatus() {
3452
- return sessionStore.getLoginStatus();
3468
+ var useLoginStatus = function useLoginStatus() {
3469
+ var _useState = React.useState(sessionStore.loginStatus),
3470
+ loginStatus = _useState[0],
3471
+ setLoginStatus = _useState[1];
3472
+
3473
+ React.useEffect(function () {
3474
+ return mobx.reaction(function () {
3475
+ return mobx.toJS(sessionStore.loginStatus);
3476
+ }, function () {
3477
+ setLoginStatus(sessionStore.loginStatus);
3478
+ });
3479
+ }, []);
3480
+ return loginStatus;
3453
3481
  };
3454
3482
 
3455
3483
  var logout = function logout() {
@@ -3462,9 +3490,9 @@ var setLocale = function setLocale(locale) {
3462
3490
 
3463
3491
  exports.App = App;
3464
3492
  exports.Container = Container;
3465
- exports.getLoginStatus = getLoginStatus;
3466
3493
  exports.logout = logout;
3467
3494
  exports.notify = toast;
3468
3495
  exports.setLocale = setLocale;
3469
3496
  exports.useLogin = useLogin;
3497
+ exports.useLoginStatus = useLoginStatus;
3470
3498
  //# sourceMappingURL=andoncloud-sdk.js.map