@arcblock/ux 2.5.58 → 2.5.60

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 (135) hide show
  1. package/lib/ActionButton/index.js +20 -39
  2. package/lib/ActivityIndicator/index.js +20 -41
  3. package/lib/Address/compact-text.js +16 -38
  4. package/lib/Address/did-address.js +22 -51
  5. package/lib/Address/index.js +6 -19
  6. package/lib/Address/responsive-did-address.js +20 -36
  7. package/lib/Alert/index.js +12 -34
  8. package/lib/AnimationWaiter/index.js +35 -59
  9. package/lib/Async/index.js +5 -19
  10. package/lib/Avatar/did-motif.js +12 -26
  11. package/lib/Avatar/etherscan-blockies.js +2 -20
  12. package/lib/Avatar/index.js +28 -54
  13. package/lib/Badge/index.js +12 -33
  14. package/lib/Blocklet/blocklet.js +20 -47
  15. package/lib/Blocklet/index.js +0 -6
  16. package/lib/Blocklet/utils.js +0 -6
  17. package/lib/BlockletNFT/index.js +37 -67
  18. package/lib/Button/index.js +0 -4
  19. package/lib/Button/wrap.js +19 -38
  20. package/lib/ButtonGroup/index.js +0 -5
  21. package/lib/CardSelector/index.js +9 -22
  22. package/lib/Center/index.js +2 -12
  23. package/lib/ClickToCopy/copy-button.js +9 -26
  24. package/lib/ClickToCopy/hook.js +0 -10
  25. package/lib/ClickToCopy/index.js +13 -41
  26. package/lib/CodeBlock/LightBox.js +1 -6
  27. package/lib/CodeBlock/index.js +12 -80
  28. package/lib/Colors/index.js +0 -2
  29. package/lib/Colors/themes/default.js +2 -3
  30. package/lib/ContactForm/index.js +5 -35
  31. package/lib/CookieConsent/index.js +10 -32
  32. package/lib/CountDown/index.js +10 -35
  33. package/lib/DID/index.js +8 -32
  34. package/lib/Datatable/CustomToolbar.js +9 -56
  35. package/lib/Datatable/DatatableContext.js +2 -5
  36. package/lib/Datatable/TableSearch.js +0 -21
  37. package/lib/Datatable/index.js +76 -152
  38. package/lib/Datatable/utils.js +14 -27
  39. package/lib/Dialog/confirm.js +18 -31
  40. package/lib/Dialog/dialog.js +24 -50
  41. package/lib/Dialog/index.js +0 -3
  42. package/lib/DidLogo/index.js +0 -7
  43. package/lib/DriftBot/index.js +1 -12
  44. package/lib/Earth/index.js +17 -58
  45. package/lib/Earth/util.js +0 -7
  46. package/lib/Empty/index.js +9 -23
  47. package/lib/ErrorBoundary/fallback.js +0 -14
  48. package/lib/ErrorBoundary/index.js +0 -2
  49. package/lib/Footer/index.js +1 -14
  50. package/lib/Header/auto-hidden.js +9 -23
  51. package/lib/Header/header.js +19 -38
  52. package/lib/Header/index.js +0 -3
  53. package/lib/Header/responsive-header.js +16 -40
  54. package/lib/Icon/image.js +12 -26
  55. package/lib/Icon/index.js +15 -34
  56. package/lib/Img/index.js +32 -54
  57. package/lib/InfoRow/index.js +11 -27
  58. package/lib/Layout/dashboard/external-link.js +13 -30
  59. package/lib/Layout/dashboard/full-page.js +8 -24
  60. package/lib/Layout/dashboard/index.js +28 -72
  61. package/lib/Layout/dashboard/sidebar.js +11 -31
  62. package/lib/Layout/dashboard-legacy/header.js +14 -36
  63. package/lib/Layout/dashboard-legacy/index.js +19 -44
  64. package/lib/Layout/dashboard-legacy/sidebar.js +10 -32
  65. package/lib/Layout/index.js +18 -52
  66. package/lib/Locale/browser-lang.js +6 -19
  67. package/lib/Locale/context.js +15 -51
  68. package/lib/Locale/languages.js +3 -7
  69. package/lib/Locale/selector.js +11 -44
  70. package/lib/Locale/util.js +0 -10
  71. package/lib/Logo/index.js +10 -33
  72. package/lib/Metric/index.js +1 -9
  73. package/lib/NFTDisplay/aspect-ratio-container.js +7 -20
  74. package/lib/NFTDisplay/broken.js +0 -8
  75. package/lib/NFTDisplay/index.js +63 -110
  76. package/lib/NFTDisplay/loading.js +0 -6
  77. package/lib/NFTDisplay/svg-embedder/img.js +9 -22
  78. package/lib/NFTDisplay/svg-embedder/inline-svg.js +9 -23
  79. package/lib/NavMenu/index.js +0 -2
  80. package/lib/NavMenu/nav-menu.js +40 -69
  81. package/lib/NavMenu/style.js +1 -5
  82. package/lib/PageScroller/index.js +9 -39
  83. package/lib/PageScroller/story/FifthComponent.js +0 -2
  84. package/lib/PageScroller/story/FirstComponent.js +0 -2
  85. package/lib/PageScroller/story/FourthComponent.js +0 -2
  86. package/lib/PageScroller/story/FullPage.js +1 -14
  87. package/lib/PageScroller/story/PageContain.js +1 -14
  88. package/lib/PageScroller/story/SecondComponent.js +0 -2
  89. package/lib/PageScroller/story/ThirdComponent.js +0 -2
  90. package/lib/PageScroller/usePrevValue.js +1 -2
  91. package/lib/PricingTable/PricingPlan.js +0 -12
  92. package/lib/PricingTable/index.js +0 -14
  93. package/lib/QRCode/index.js +14 -24
  94. package/lib/RelativeTime/index.js +12 -45
  95. package/lib/Result/common.js +43 -63
  96. package/lib/Result/index.js +6 -23
  97. package/lib/Result/result.js +9 -23
  98. package/lib/Screenshot/BaseScreenshot/index.js +9 -26
  99. package/lib/Screenshot/BaseScreenshot/shells/Macbook.js +9 -10
  100. package/lib/Screenshot/BaseScreenshot/shells/Phone.js +3 -8
  101. package/lib/Screenshot/index.js +32 -65
  102. package/lib/SessionManager/federated-login-detecter.js +171 -0
  103. package/lib/SessionManager/index.js +189 -271
  104. package/lib/SessionManager/user-popper.js +83 -0
  105. package/lib/Sparkline/index.js +40 -42
  106. package/lib/Spinner/index.js +12 -23
  107. package/lib/SplitButton/index.js +20 -48
  108. package/lib/Switch/index.js +7 -22
  109. package/lib/Tabs/index.js +8 -22
  110. package/lib/Tag/index.js +13 -33
  111. package/lib/TextCollapse/index.js +14 -31
  112. package/lib/Theme/index.js +3 -13
  113. package/lib/Theme/theme-provider.js +1 -10
  114. package/lib/Theme/theme.js +15 -27
  115. package/lib/Toast/index.js +13 -40
  116. package/lib/Util/deprecate.js +3 -12
  117. package/lib/Util/index.js +13 -74
  118. package/lib/Util/wallet.js +3 -10
  119. package/lib/Video/index.js +3 -19
  120. package/lib/Wallet/Action.js +9 -28
  121. package/lib/Wallet/Download.js +11 -36
  122. package/lib/Wallet/Open.js +0 -12
  123. package/lib/WebWalletSWKeeper/index.js +30 -55
  124. package/lib/WechatPrompt/index.js +0 -16
  125. package/lib/index.js +0 -38
  126. package/lib/withTheme/index.js +3 -15
  127. package/lib/withTracker/error_boundary.js +3 -14
  128. package/lib/withTracker/index.js +3 -24
  129. package/package.json +5 -5
  130. package/src/Blocklet/blocklet.js +1 -1
  131. package/src/BlockletNFT/index.js +1 -1
  132. package/src/NFTDisplay/index.js +4 -4
  133. package/src/SessionManager/federated-login-detecter.jsx +138 -0
  134. package/src/SessionManager/index.jsx +140 -233
  135. package/src/SessionManager/user-popper.jsx +121 -0
@@ -4,62 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _material = require("@mui/material");
13
-
14
10
  var _Account = _interopRequireDefault(require("@arcblock/icons/lib/Account"));
15
-
16
11
  var _ShieldCheck = _interopRequireDefault(require("mdi-material-ui/ShieldCheck"));
17
-
18
12
  var _OpenIn = _interopRequireDefault(require("@arcblock/icons/lib/OpenIn"));
19
-
20
13
  var _Disconnect = _interopRequireDefault(require("@arcblock/icons/lib/Disconnect"));
21
-
22
14
  var _Switch = _interopRequireDefault(require("@arcblock/icons/lib/Switch"));
23
-
24
15
  var _PersonOutline = _interopRequireDefault(require("@mui/icons-material/PersonOutline"));
25
-
26
16
  var _Link = _interopRequireDefault(require("@mui/icons-material/Link"));
27
-
28
17
  var _VpnKeyOutlined = _interopRequireDefault(require("@mui/icons-material/VpnKeyOutlined"));
29
-
30
18
  var _useBrowser = _interopRequireDefault(require("@arcblock/react-hooks/lib/useBrowser"));
31
-
32
- var _OAuth = require("@arcblock/did-connect/lib/OAuth");
33
-
34
- var _User = require("@arcblock/did-connect/lib/User");
35
-
36
- var _Theme = require("../Theme");
37
-
38
19
  var _Avatar = _interopRequireDefault(require("../Avatar"));
39
-
40
20
  var _Address = _interopRequireDefault(require("../Address"));
41
-
21
+ var _federatedLoginDetecter = _interopRequireDefault(require("./federated-login-detecter"));
22
+ var _userPopper = _interopRequireDefault(require("./user-popper"));
42
23
  var _jsxRuntime = require("react/jsx-runtime");
43
-
44
- var _templateObject;
45
-
46
24
  const _excluded = ["session", "locale", "showText", "showRole", "switchDid", "switchProfile", "switchPassport", "disableLogout", "onLogin", "onLogout", "onSwitchDid", "onSwitchProfile", "onSwitchPassport", "onBindWallet", "menu", "menuRender", "dark", "size"],
47
- _excluded2 = ["svgIcon"];
48
-
25
+ _excluded2 = ["svgIcon"];
26
+ /* eslint-disable react/no-array-index-key */
27
+ /* eslint-disable react/jsx-no-bind */
49
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
50
-
51
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
52
-
53
29
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
54
-
55
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
56
-
57
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
58
-
31
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
32
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
33
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
59
34
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
60
-
61
35
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
62
-
63
36
  const translations = {
64
37
  en: {
65
38
  switchDid: 'Switch DID',
@@ -85,144 +58,139 @@ const translations = {
85
58
  thirdParty: '第三方登录'
86
59
  }
87
60
  };
88
-
89
61
  const getConnectedAccounts = user => {
90
62
  var _user$extraConfigs;
91
-
92
63
  return (user === null || user === void 0 ? void 0 : user.connectedAccounts) || (user === null || user === void 0 ? void 0 : (_user$extraConfigs = user.extraConfigs) === null || _user$extraConfigs === void 0 ? void 0 : _user$extraConfigs.connectedAccounts) || [];
93
64
  };
94
-
95
65
  const getSourceProvider = user => {
96
66
  var _user$extraConfigs2;
97
-
98
67
  return (user === null || user === void 0 ? void 0 : user.sourceProvider) || (user === null || user === void 0 ? void 0 : (_user$extraConfigs2 = user.extraConfigs) === null || _user$extraConfigs2 === void 0 ? void 0 : _user$extraConfigs2.sourceProvider) || 'wallet';
99
68
  };
100
-
101
69
  function SessionManager(_ref) {
102
70
  var _session$user, _session$user$avatar, _session$user3, _session$user4, _session$user5;
103
-
104
71
  let {
105
- session,
106
- locale,
107
- showText,
108
- showRole,
109
- switchDid,
110
- switchProfile,
111
- switchPassport,
112
- disableLogout,
113
- onLogin,
114
- onLogout,
115
- onSwitchDid,
116
- onSwitchProfile,
117
- onSwitchPassport,
118
- onBindWallet,
119
- menu,
120
- menuRender,
121
- dark,
122
- size
123
- } = _ref,
124
- rest = _objectWithoutProperties(_ref, _excluded);
125
-
72
+ session,
73
+ locale,
74
+ showText,
75
+ showRole,
76
+ switchDid,
77
+ switchProfile,
78
+ switchPassport,
79
+ disableLogout,
80
+ onLogin,
81
+ onLogout,
82
+ onSwitchDid,
83
+ onSwitchProfile,
84
+ onSwitchPassport,
85
+ onBindWallet,
86
+ menu,
87
+ menuRender,
88
+ dark,
89
+ size
90
+ } = _ref,
91
+ rest = _objectWithoutProperties(_ref, _excluded);
126
92
  const translation = translations[locale] || translations.en;
127
93
  const userAnchorRef = (0, _react.useRef)(null);
94
+ // eslint-disable-next-line react/prop-types
128
95
  const {
129
96
  logoutOAuth,
130
97
  bindOAuth,
131
98
  configs: oauthConfigs,
132
99
  switchOAuthPassport
133
- } = (0, _OAuth.useOAuth)();
134
- const [userOpen, setUserOpen] = (0, _react.useState)(false); // base64 img maybe have some blank char, need encodeURIComponent to transform it
100
+ } = session.useOAuth();
101
+ const [userOpen, setUserOpen] = (0, _react.useState)(false);
135
102
 
103
+ // base64 img maybe have some blank char, need encodeURIComponent to transform it
136
104
  const avatar = (_session$user = session.user) === null || _session$user === void 0 ? void 0 : (_session$user$avatar = _session$user.avatar) === null || _session$user$avatar === void 0 ? void 0 : _session$user$avatar.replace(/\s/g, encodeURIComponent(' '));
137
105
  const currentRole = (0, _react.useMemo)(() => {
138
106
  var _session$user2, _session$user2$passpo;
139
-
140
107
  return (_session$user2 = session.user) === null || _session$user2 === void 0 ? void 0 : (_session$user2$passpo = _session$user2.passports) === null || _session$user2$passpo === void 0 ? void 0 : _session$user2$passpo.find(item => item.name === session.user.role);
141
108
  }, [session.user]);
142
109
  const browser = (0, _useBrowser.default)();
110
+ // eslint-disable-next-line react/prop-types
143
111
  const {
144
112
  walletDid
145
- } = (0, _User.useDid)({
113
+ } = session.useDid({
146
114
  session
147
115
  });
148
116
  const isRawWalletAccount = getSourceProvider(session.user) === 'wallet';
149
117
  const connectedAccounts = getConnectedAccounts(session.user);
150
118
  let hasBindWallet = false;
151
119
  let hasBindAccount = false;
152
-
153
120
  if (isRawWalletAccount) {
154
121
  if (connectedAccounts.some(item => item.provider !== 'wallet')) {
155
122
  hasBindAccount = true;
156
123
  }
157
-
158
124
  hasBindWallet = true;
159
125
  } else if (connectedAccounts.some(item => item.provider === 'wallet')) {
160
126
  hasBindAccount = true;
161
127
  hasBindWallet = true;
162
128
  }
163
-
164
129
  const oauthConfigList = Object.entries(oauthConfigs).map(_ref2 => {
165
130
  let [key, value] = _ref2;
166
131
  return _objectSpread(_objectSpread({}, value), {}, {
167
132
  provider: key
168
133
  });
169
134
  }).filter(item => item.enabled);
170
-
171
135
  if (!session.user) {
172
- return showText ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Button, _objectSpread(_objectSpread({
173
- sx: [{
174
- borderRadius: '100vw'
175
- }, dark && {
176
- color: '#fff',
177
- borderColor: '#fff'
178
- }],
179
- variant: "outlined",
180
- onClick: _onLogin,
181
- "aria-label": "login button"
182
- }, rest), {}, {
183
- "data-cy": "sessionManager-login",
184
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Account.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
185
- style: {
186
- lineHeight: '25px'
187
- },
188
- children: translation.connect
136
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
137
+ children: [showText ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Button, _objectSpread(_objectSpread({
138
+ ref: userAnchorRef,
139
+ sx: [{
140
+ borderRadius: '100vw'
141
+ }, dark && {
142
+ color: '#fff',
143
+ borderColor: '#fff'
144
+ }],
145
+ variant: "outlined",
146
+ onClick: _onLogin,
147
+ "aria-label": "login button"
148
+ }, rest), {}, {
149
+ "data-cy": "sessionManager-login",
150
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Account.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
151
+ style: {
152
+ lineHeight: '25px'
153
+ },
154
+ children: translation.connect
155
+ })]
156
+ })) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, _objectSpread(_objectSpread({
157
+ ref: userAnchorRef
158
+ }, rest), {}, {
159
+ onClick: _onLogin,
160
+ "data-cy": "sessionManager-login",
161
+ size: "medium",
162
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Account.default, {
163
+ style: {
164
+ width: size,
165
+ height: size,
166
+ color: dark ? '#fff' : ''
167
+ }
168
+ })
169
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_federatedLoginDetecter.default, {
170
+ locale: locale,
171
+ dark: dark,
172
+ session: session,
173
+ anchorEl: userAnchorRef.current
189
174
  })]
190
- })) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, _objectSpread(_objectSpread({}, rest), {}, {
191
- onClick: _onLogin,
192
- "data-cy": "sessionManager-login",
193
- size: "medium",
194
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Account.default, {
195
- style: {
196
- width: size,
197
- height: size,
198
- color: dark ? '#fff' : ''
199
- }
200
- })
201
- }));
175
+ });
202
176
  }
203
-
204
177
  function onToggleUser() {
205
178
  setUserOpen(prevOpen => !prevOpen);
206
179
  }
207
-
208
180
  function onCloseUser(e) {
209
181
  if (userAnchorRef.current && userAnchorRef.current.contains(e.target)) {
210
182
  return;
211
183
  }
212
-
213
184
  setUserOpen(false);
214
185
  }
215
-
216
186
  function _onLogin() {
217
187
  session.login(onLogin);
218
188
  }
219
-
220
189
  function _onLogout() {
221
190
  session.logout(function () {
222
191
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
223
192
  args[_key] = arguments[_key];
224
193
  }
225
-
226
194
  logoutOAuth({
227
195
  session
228
196
  }, ...args).then(() => {
@@ -234,26 +202,22 @@ function SessionManager(_ref) {
234
202
  });
235
203
  });
236
204
  }
237
-
238
205
  function _onSwitchDid() {
239
206
  session.switchDid(function () {
240
207
  setUserOpen(false);
241
208
  onSwitchDid(...arguments);
242
209
  });
243
210
  }
244
-
245
211
  function _onSwitchProfile() {
246
212
  session.switchProfile(function () {
247
213
  setUserOpen(false);
248
214
  onSwitchProfile(...arguments);
249
215
  });
250
216
  }
251
-
252
217
  function _onSwitchPassport() {
253
218
  const {
254
219
  user
255
220
  } = session;
256
-
257
221
  if (isRawWalletAccount) {
258
222
  setUserOpen(false);
259
223
  session.switchPassport(function () {
@@ -264,10 +228,8 @@ function SessionManager(_ref) {
264
228
  switchOAuthPassport(user);
265
229
  }
266
230
  }
267
-
268
231
  function _onBindWallet() {
269
232
  setUserOpen(false);
270
-
271
233
  if (isRawWalletAccount) {
272
234
  bindOAuth();
273
235
  } else {
@@ -277,7 +239,6 @@ function SessionManager(_ref) {
277
239
  });
278
240
  }
279
241
  }
280
-
281
242
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
282
243
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, _objectSpread(_objectSpread({
283
244
  ref: userAnchorRef,
@@ -295,161 +256,131 @@ function SessionManager(_ref) {
295
256
  size: size,
296
257
  shape: "circle"
297
258
  })
298
- })), userAnchorRef.current && /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledPopper, {
259
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_userPopper.default, {
299
260
  open: userOpen,
300
- disablePortal: true,
261
+ onClose: onCloseUser,
301
262
  anchorEl: userAnchorRef.current,
302
- placement: "bottom-end",
303
- $dark: dark,
304
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, {
305
- sx: [theme => ({
306
- borderColor: '#F0F0F0',
307
- boxShadow: '0px 8px 12px rgba(92, 92, 92, 0.04)',
308
- borderRadius: theme.spacing(2),
309
- overflow: 'hidden',
310
- maxWidth: 'calc(100vw - 10px)',
311
- '& .MuiChip-root .MuiChip-icon': {
312
- color: theme.palette.success.main
313
- }
314
- }), dark && {
315
- backgroundColor: '#27282c',
316
- color: '#fff',
317
- border: 0,
318
- '& .MuiChip-root': {
319
- borderColor: '#aaa'
320
- },
321
- '& .MuiListItem-root, & .MuiChip-label': {
322
- color: '#aaa'
323
- },
324
- '& .MuiListItem-root:hover': {
325
- backgroundColor: '#363434'
326
- }
327
- }],
328
- variant: "outlined",
329
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ClickAwayListener, {
330
- onClickAway: onCloseUser,
331
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuList, {
332
- sx: {
333
- p: 0
334
- },
335
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
336
- className: "session-manager-user",
337
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
338
- className: "session-manager-user-name",
339
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
340
- children: session.user.fullName
341
- }), !!showRole && ((currentRole === null || currentRole === void 0 ? void 0 : currentRole.title) || ((_session$user3 = session.user) === null || _session$user3 === void 0 ? void 0 : _session$user3.role.toUpperCase())) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Chip, {
342
- label: (currentRole === null || currentRole === void 0 ? void 0 : currentRole.title) || ((_session$user4 = session.user) === null || _session$user4 === void 0 ? void 0 : _session$user4.role.toUpperCase()),
343
- size: "small",
344
- variant: "outlined",
345
- sx: {
346
- height: 'auto',
347
- marginRight: 0
348
- },
349
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
350
- component: _ShieldCheck.default,
351
- size: "small"
352
- })
353
- })]
354
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
355
- className: "session-manager-id-list",
356
- children: [walletDid && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
357
- className: "session-manager-id-item",
358
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
359
- responsive: false,
360
- children: walletDid
361
- })
362
- }), (session === null || session === void 0 ? void 0 : (_session$user5 = session.user) === null || _session$user5 === void 0 ? void 0 : _session$user5.email) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
363
- className: "session-manager-id-item",
364
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
365
- responsive: false,
366
- children: session.user.email
367
- })
368
- })]
369
- })]
370
- }), Array.isArray(menu) && menu.map((menuItem, index) => {
371
- const {
372
- svgIcon
373
- } = menuItem,
374
- menuProps = _objectWithoutProperties(menuItem, _excluded2);
375
-
376
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, _objectSpread(_objectSpread({
377
- className: "session-manager-menu-item"
378
- }, _objectSpread(_objectSpread({}, menuProps), {}, {
379
- icon: undefined,
380
- label: undefined
381
- })), {}, {
382
- children: [svgIcon ? svgIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
383
- component: svgIcon,
384
- className: "session-manager-menu-icon"
385
- }) : menuItem.icon, menuItem.label]
386
- }), index);
387
- }), menuRender({
388
- classes: {
389
- menuItem: 'session-manager-menu-item',
390
- menuIcon: 'session-manager-menu-icon'
391
- }
392
- }), !browser.wallet && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
393
- component: "a",
394
- className: "session-manager-menu-item",
395
- "data-cy": "sessionManager-openInWallet",
396
- href: "https://www.abtwallet.io/",
397
- target: "_blank",
398
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
399
- component: _OpenIn.default,
400
- className: "session-manager-menu-icon"
401
- }), translation.openInWallet]
402
- }), !!switchDid && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
403
- className: "session-manager-menu-item",
404
- onClick: _onSwitchDid,
405
- "data-cy": "sessionManager-switch-trigger",
406
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
407
- component: _Switch.default,
408
- className: "session-manager-menu-icon"
409
- }), translation.switchDid]
410
- }), !!switchProfile && hasBindWallet && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
411
- className: "session-manager-menu-item",
412
- onClick: _onSwitchProfile,
413
- "data-cy": "sessionManager-switch-profile-trigger",
414
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
415
- component: _PersonOutline.default,
416
- className: "session-manager-menu-icon"
417
- }), translation.switchProfile]
418
- }), !!switchPassport && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
419
- className: "session-manager-menu-item",
420
- onClick: _onSwitchPassport,
421
- "data-cy": "sessionManager-switch-passport-trigger",
422
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
423
- component: _VpnKeyOutlined.default,
424
- className: "session-manager-menu-icon"
425
- }), translation.switchPassport]
426
- }), oauthConfigList.length > 0 && !hasBindAccount && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
427
- className: "session-manager-menu-item",
428
- onClick: _onBindWallet,
429
- "data-cy": "sessionManager-bind-trigger",
430
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
431
- component: _Link.default,
432
- className: "session-manager-menu-icon"
433
- }), isRawWalletAccount ? "".concat(translation.bind).concat(translation.thirdParty) : "".concat(translation.bind, "DID Wallet")]
434
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
435
- className: "session-manager-menu-item",
436
- onClick: _onLogout,
437
- disabled: disableLogout,
438
- "data-cy": "sessionManager-logout-trigger",
439
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
440
- component: _Disconnect.default,
441
- className: "session-manager-menu-icon"
442
- }), translation.disconnect]
263
+ dark: dark,
264
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuList, {
265
+ sx: {
266
+ p: 0
267
+ },
268
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
269
+ className: "session-manager-user",
270
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
271
+ className: "session-manager-user-name",
272
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
273
+ children: session.user.fullName
274
+ }), !!showRole && ((currentRole === null || currentRole === void 0 ? void 0 : currentRole.title) || ((_session$user3 = session.user) === null || _session$user3 === void 0 ? void 0 : _session$user3.role.toUpperCase())) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Chip, {
275
+ label: (currentRole === null || currentRole === void 0 ? void 0 : currentRole.title) || ((_session$user4 = session.user) === null || _session$user4 === void 0 ? void 0 : _session$user4.role.toUpperCase()),
276
+ size: "small",
277
+ variant: "outlined",
278
+ sx: {
279
+ height: 'auto',
280
+ marginRight: 0
281
+ },
282
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
283
+ component: _ShieldCheck.default,
284
+ size: "small"
285
+ })
443
286
  })]
444
- })
445
- })
287
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
288
+ className: "session-manager-id-list",
289
+ children: [walletDid && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
290
+ className: "session-manager-id-item",
291
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
292
+ responsive: false,
293
+ children: walletDid
294
+ })
295
+ }), (session === null || session === void 0 ? void 0 : (_session$user5 = session.user) === null || _session$user5 === void 0 ? void 0 : _session$user5.email) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
296
+ className: "session-manager-id-item",
297
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
298
+ responsive: false,
299
+ children: session.user.email
300
+ })
301
+ })]
302
+ })]
303
+ }), Array.isArray(menu) && menu.map((menuItem, index) => {
304
+ const {
305
+ svgIcon
306
+ } = menuItem,
307
+ menuProps = _objectWithoutProperties(menuItem, _excluded2);
308
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, _objectSpread(_objectSpread({
309
+ className: "session-manager-menu-item"
310
+ }, _objectSpread(_objectSpread({}, menuProps), {}, {
311
+ icon: undefined,
312
+ label: undefined
313
+ })), {}, {
314
+ children: [svgIcon ? svgIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
315
+ component: svgIcon,
316
+ className: "session-manager-menu-icon"
317
+ }) : menuItem.icon, menuItem.label]
318
+ }), index);
319
+ }), menuRender({
320
+ classes: {
321
+ menuItem: 'session-manager-menu-item',
322
+ menuIcon: 'session-manager-menu-icon'
323
+ }
324
+ }), !browser.wallet && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
325
+ component: "a",
326
+ className: "session-manager-menu-item",
327
+ "data-cy": "sessionManager-openInWallet",
328
+ href: "https://www.abtwallet.io/",
329
+ target: "_blank",
330
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
331
+ component: _OpenIn.default,
332
+ className: "session-manager-menu-icon"
333
+ }), translation.openInWallet]
334
+ }), !!switchDid && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
335
+ className: "session-manager-menu-item",
336
+ onClick: _onSwitchDid,
337
+ "data-cy": "sessionManager-switch-trigger",
338
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
339
+ component: _Switch.default,
340
+ className: "session-manager-menu-icon"
341
+ }), translation.switchDid]
342
+ }), !!switchProfile && hasBindWallet && session.provider !== 'federated' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
343
+ className: "session-manager-menu-item",
344
+ onClick: _onSwitchProfile,
345
+ "data-cy": "sessionManager-switch-profile-trigger",
346
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
347
+ component: _PersonOutline.default,
348
+ className: "session-manager-menu-icon"
349
+ }), translation.switchProfile]
350
+ }), !!switchPassport && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
351
+ className: "session-manager-menu-item",
352
+ onClick: _onSwitchPassport,
353
+ "data-cy": "sessionManager-switch-passport-trigger",
354
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
355
+ component: _VpnKeyOutlined.default,
356
+ className: "session-manager-menu-icon"
357
+ }), translation.switchPassport]
358
+ }), oauthConfigList.length > 0 && !hasBindAccount && session.provider !== 'federated' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
359
+ className: "session-manager-menu-item",
360
+ onClick: _onBindWallet,
361
+ "data-cy": "sessionManager-bind-trigger",
362
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
363
+ component: _Link.default,
364
+ className: "session-manager-menu-icon"
365
+ }), isRawWalletAccount ? "".concat(translation.bind).concat(translation.thirdParty) : "".concat(translation.bind, "DID Wallet")]
366
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
367
+ className: "session-manager-menu-item",
368
+ onClick: _onLogout,
369
+ disabled: disableLogout,
370
+ "data-cy": "sessionManager-logout-trigger",
371
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
372
+ component: _Disconnect.default,
373
+ className: "session-manager-menu-icon"
374
+ }), translation.disconnect]
375
+ })]
446
376
  })
447
377
  })]
448
378
  });
449
379
  }
450
-
451
380
  SessionManager.propTypes = {
452
381
  session: _propTypes.default.shape({
382
+ federatedMaster: _propTypes.default.object,
383
+ provider: _propTypes.default.oneOf(['wallet', 'federated', 'auth0']),
453
384
  user: _propTypes.default.shape({
454
385
  did: _propTypes.default.string.isRequired,
455
386
  role: _propTypes.default.string.isRequired,
@@ -495,9 +426,7 @@ SessionManager.propTypes = {
495
426
  dark: _propTypes.default.bool,
496
427
  size: _propTypes.default.number
497
428
  };
498
-
499
429
  const noop = () => {};
500
-
501
430
  SessionManager.defaultProps = {
502
431
  locale: 'en',
503
432
  showText: false,
@@ -517,16 +446,5 @@ SessionManager.defaultProps = {
517
446
  dark: false,
518
447
  size: 24
519
448
  };
520
- const StyledPopper = (0, _Theme.styled)(_material.Popper)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n z-index: ", ";\n .MuiList-root {\n /* HACK: \u9700\u8981288px \u624D\u80FD\u5C06 did \u5C55\u793A\u5B8C\u6574 */\n width: 290px;\n }\n .session-manager-user {\n font-size: 12px;\n flex-direction: column;\n align-items: flex-start;\n padding: 24px 24px 10px;\n }\n .session-manager-user-name {\n font-size: 20px;\n color: ", ";\n font-weight: bold;\n margin-bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .session-manager-id-item {\n position: relative;\n padding-left: 8px;\n /* HACK: \u5F53\u524D\u5143\u7D20\u65E2\u662F\u7B2C\u4E00\u4E2A\uFF0C\u4E5F\u662F\u6700\u540E\u4E00\u4E2A\uFF0C\u5373\u53EA\u6709\u4E00\u4E2A\u540C\u7EA7\u5143\u7D20 */\n &:first-of-type:last-of-type {\n padding-left: 0;\n &:before,\n &:after {\n content: unset;\n }\n }\n &:before {\n position: absolute;\n content: '';\n left: 0px;\n top: 50%;\n width: 6px;\n height: 1px;\n background-color: #aeaeae;\n }\n &:not(:last-of-type):after {\n position: absolute;\n content: '';\n left: 0px;\n top: 50%;\n height: 100%;\n width: 1px;\n background-color: #aeaeae;\n }\n }\n .session-manager-menu-item {\n padding: 18.5px 24px;\n color: #777;\n font-size: 16px;\n &:hover {\n background-color: #fbfbfb;\n }\n }\n .session-manager-menu-icon {\n color: #999;\n margin-right: 16px;\n }\n"])), _ref3 => {
521
- let {
522
- theme
523
- } = _ref3;
524
- return theme.zIndex.tooltip;
525
- }, _ref4 => {
526
- let {
527
- $dark
528
- } = _ref4;
529
- return $dark ? '#aaa' : '#222';
530
- });
531
449
  var _default = SessionManager;
532
450
  exports.default = _default;