@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
@@ -5,15 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Shell = Shell;
7
7
  exports.width = exports.screenData = exports.ratio = exports.height = exports.default = void 0;
8
-
9
8
  var _jsxRuntime = require("react/jsx-runtime");
10
-
11
9
  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; }
12
-
13
10
  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; }
14
-
15
- 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; }
16
-
11
+ 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; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
13
+ 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); }
17
14
  function Shell(_ref) {
18
15
  let rest = Object.assign({}, _ref);
19
16
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("svg", _objectSpread(_objectSpread({
@@ -35,16 +32,18 @@ function Shell(_ref) {
35
32
  fill: "#282828"
36
33
  })]
37
34
  }));
38
- } // 设备截图的实际尺寸
39
-
35
+ }
40
36
 
37
+ // 设备截图的实际尺寸
41
38
  const width = 909;
42
39
  exports.width = width;
43
- const height = 517; // 屏幕的比例
40
+ const height = 517;
44
41
 
42
+ // 屏幕的比例
45
43
  exports.height = height;
46
- const ratio = 438 / 785; // 屏幕相关数据
44
+ const ratio = 438 / 785;
47
45
 
46
+ // 屏幕相关数据
48
47
  exports.ratio = ratio;
49
48
  const screenData = {
50
49
  // 屏幕坐标轴相对图片的百分比
@@ -5,20 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Shell = Shell;
7
7
  exports.width = exports.screenData = exports.ratio = exports.height = exports.default = void 0;
8
-
9
8
  var _jsxRuntime = require("react/jsx-runtime");
10
-
11
9
  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; }
12
-
13
10
  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; }
14
-
15
- 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; }
16
-
11
+ 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; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
13
+ 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); }
17
14
  const width = 268;
18
15
  exports.width = width;
19
16
  const height = 554;
20
17
  exports.height = height;
21
-
22
18
  function Shell(_ref) {
23
19
  let rest = Object.assign({}, _ref);
24
20
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", _objectSpread(_objectSpread({
@@ -36,7 +32,6 @@ function Shell(_ref) {
36
32
  })
37
33
  }));
38
34
  }
39
-
40
35
  const ratio = 798 / 386;
41
36
  exports.ratio = ratio;
42
37
  const screenData = {
@@ -4,40 +4,25 @@ 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 _Util = require("../Util");
13
-
14
10
  var _Theme = require("../Theme");
15
-
16
11
  var _BaseScreenshot = _interopRequireDefault(require("./BaseScreenshot"));
17
-
18
12
  require("./devices.css");
19
-
20
13
  var _jsxRuntime = require("react/jsx-runtime");
21
-
22
14
  var _templateObject, _templateObject2;
23
-
24
15
  const _excluded = ["type", "children", "style", "className", "width", "height"],
25
- _excluded2 = ["type", "src", "children", "style", "sx"];
26
-
16
+ _excluded2 = ["type", "src", "children", "style", "sx"];
27
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
-
29
18
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
30
-
31
19
  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; }
32
-
33
20
  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; }
34
-
35
- 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; }
36
-
21
+ 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; }
22
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
23
+ 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); }
37
24
  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; }
38
-
39
25
  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; }
40
-
41
26
  const types = {
42
27
  'iphone-x': {
43
28
  borderRadius: 32,
@@ -109,56 +94,45 @@ const childProps = {
109
94
  img: ['alt', 'title', 'src', 'srcSet', 'sizes', 'loading', 'key', 'children'],
110
95
  video: ['alt', 'title', 'muted', 'autoplay', 'loop', 'key', 'children']
111
96
  };
112
-
113
97
  const createChild = child => [/*#__PURE__*/(0, _react.createElement)(child.type, childProps[child.type].reduce((acc, x) => {
114
98
  acc[x] = child.props[x];
115
99
  return acc;
116
100
  }, {}))];
117
-
118
101
  const findChildren = function findChildren(children) {
119
102
  let returnArgWhenNotFound = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
120
-
121
103
  for (let i = 0; i < children.length; i++) {
122
104
  const child = children[i];
123
-
124
105
  if (['img', 'video'].includes(child.type)) {
125
106
  return createChild(child);
126
107
  }
127
-
128
108
  if (child.props && child.props.children) {
129
109
  const subChildren = _react.Children.toArray(child.props.children);
130
-
131
110
  const result = findChildren(subChildren, false);
132
-
133
111
  if (result) {
134
112
  return result;
135
113
  }
136
114
  }
137
115
  }
138
-
139
116
  if (returnArgWhenNotFound) {
140
117
  return children;
141
118
  }
142
-
143
119
  return null;
144
- }; // This component is built upon the awesome device.css lib
120
+ };
121
+
122
+ // This component is built upon the awesome device.css lib
145
123
  // By default it will find and only render img/video tags in the children
146
124
  // If neither of them are found, the whole child tree is rendered
147
-
148
-
149
125
  function OldScreenshot(props) {
150
126
  const newProps = (0, _Util.mergeProps)(props, OldScreenshot, ['style', 'width', 'height']);
151
-
152
127
  const {
153
- type,
154
- children,
155
- style,
156
- className,
157
- width,
158
- height
159
- } = newProps,
160
- rest = _objectWithoutProperties(newProps, _excluded);
161
-
128
+ type,
129
+ children,
130
+ style,
131
+ className,
132
+ width,
133
+ height
134
+ } = newProps,
135
+ rest = _objectWithoutProperties(newProps, _excluded);
162
136
  const {
163
137
  zIndex = 0,
164
138
  borderRadius = 0
@@ -190,7 +164,6 @@ function OldScreenshot(props) {
190
164
  })]
191
165
  }));
192
166
  }
193
-
194
167
  const Div = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n @media (max-width: ", "px) {\n transform-origin: 0 0;\n transform: scale(", ");\n }\n .device-content {\n overflow: hidden;\n }\n .device-content video,\n .device-content img {\n border-radius: ", "px;\n background-color: #fff;\n background-position: center center;\n background-size: cover;\n object-fit: cover;\n width: 100.1%;\n height: 100.1%;\n }\n"])), props => types[props.type].width, props => types[props.type].scale, props => props.contentRadius);
195
168
  OldScreenshot.propTypes = {
196
169
  type: _propTypes.default.oneOf(Object.keys(types)),
@@ -207,30 +180,29 @@ OldScreenshot.defaultProps = {
207
180
  width: 0,
208
181
  height: 0
209
182
  };
183
+
210
184
  /**
211
185
  * 用于修正旧版 Screenshot 无法匹配尺寸的问题
212
186
  * @param {*} props params to OldScreenshot
213
187
  * @returns <OldScreenshot />
214
188
  */
215
-
216
189
  function ScreenFixer(props) {
217
190
  const screenEl = (0, _react.useRef)(null);
218
191
  const [height, setHeight] = (0, _react.useState)(undefined);
219
192
  const [scale, setScale] = (0, _react.useState)(null);
220
193
  (0, _react.useEffect)(() => {
221
194
  let resizeObs;
222
-
223
195
  const fixSize = () => {
224
196
  const {
225
197
  clientWidth
226
- } = screenEl.current; // 获取内部元素的宽高
198
+ } = screenEl.current;
227
199
 
200
+ // 获取内部元素的宽高
228
201
  const {
229
202
  clientWidth: targetWidth,
230
203
  clientHeight: targetHeight
231
204
  } = screenEl.current.children[0];
232
205
  const realScale = clientWidth / targetWidth;
233
-
234
206
  if (realScale < 1) {
235
207
  setScale(realScale);
236
208
  setHeight(realScale * targetHeight);
@@ -239,17 +211,16 @@ function ScreenFixer(props) {
239
211
  setHeight(undefined);
240
212
  }
241
213
  };
242
-
243
214
  if (screenEl.current) {
244
215
  resizeObs = new ResizeObserver(fixSize);
245
216
  resizeObs.observe(screenEl.current);
246
217
  }
247
-
248
218
  return () => {
249
219
  if (resizeObs) {
250
220
  resizeObs.disconnect();
251
221
  }
252
- }; // eslint-disable-next-line react-hooks/exhaustive-deps
222
+ };
223
+ // eslint-disable-next-line react-hooks/exhaustive-deps
253
224
  }, [screenEl.current]);
254
225
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(ReScreen, {
255
226
  ref: screenEl,
@@ -263,22 +234,19 @@ function ScreenFixer(props) {
263
234
  }))
264
235
  });
265
236
  }
266
-
267
237
  const ReScreen = (0, _Theme.styled)('div')(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n div[type] {\n transform: scale(1);\n transform-origin: 0 0;\n }\n"])));
268
-
269
238
  function Screenshot(_ref) {
270
239
  let {
271
- type,
272
- src,
273
- children,
274
- style,
275
- sx
276
- } = _ref,
277
- rest = _objectWithoutProperties(_ref, _excluded2);
278
-
279
- const _type = type.toLowerCase(); // 新版采用容器采用BaseScreenshot,svg集成,更容易拓展,响应式更好
280
-
281
-
240
+ type,
241
+ src,
242
+ children,
243
+ style,
244
+ sx
245
+ } = _ref,
246
+ rest = _objectWithoutProperties(_ref, _excluded2);
247
+ const _type = type.toLowerCase();
248
+
249
+ // 新版采用容器采用BaseScreenshot,svg集成,更容易拓展,响应式更好
282
250
  if (['phone', 'macbook'].includes(_type)) {
283
251
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseScreenshot.default, _objectSpread(_objectSpread({
284
252
  type: _type,
@@ -289,9 +257,9 @@ function Screenshot(_ref) {
289
257
  alt: "screenshot"
290
258
  }) : null)
291
259
  }));
292
- } // 旧版采用纯css制作,定制性欠缺,暂时保留使用
293
-
260
+ }
294
261
 
262
+ // 旧版采用纯css制作,定制性欠缺,暂时保留使用
295
263
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(ScreenFixer, _objectSpread(_objectSpread({
296
264
  type: type
297
265
  }, rest), {}, {
@@ -304,7 +272,6 @@ function Screenshot(_ref) {
304
272
  }) : null)
305
273
  }));
306
274
  }
307
-
308
275
  Screenshot.propTypes = {
309
276
  type: _propTypes.default.string.isRequired,
310
277
  src: _propTypes.default.string,
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = FederatedLoginDetecter;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _react = require("react");
9
+ var _material = require("@mui/material");
10
+ var _ShieldCheck = _interopRequireDefault(require("mdi-material-ui/ShieldCheck"));
11
+ var _userPopper = _interopRequireDefault(require("./user-popper"));
12
+ var _Avatar = _interopRequireDefault(require("../Avatar"));
13
+ var _Address = _interopRequireDefault(require("../Address"));
14
+ var _Button = _interopRequireDefault(require("../Button"));
15
+ var _Toast = _interopRequireDefault(require("../Toast"));
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ const translations = {
19
+ en: {
20
+ useToConnect(_ref) {
21
+ let {
22
+ master,
23
+ member
24
+ } = _ref;
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
26
+ children: ["Use ", master, " account to connect ", member]
27
+ });
28
+ },
29
+ connect: 'Connect Account',
30
+ loginFederatedFailed: 'Login federated account failed'
31
+ },
32
+ zh: {
33
+ useToConnect(_ref2) {
34
+ let {
35
+ master,
36
+ member
37
+ } = _ref2;
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
39
+ children: ["\u4F7F\u7528 ", master, " \u8D26\u53F7\u8FDE\u63A5 ", member]
40
+ });
41
+ },
42
+ connect: '连接账号',
43
+ loginFederatedFailed: '登录统一登录账号失败'
44
+ }
45
+ };
46
+ function FederatedLoginDetecter(_ref3) {
47
+ var _session$federatedMas, _session$federatedMas2, _userInfo$role, _userInfo$role2;
48
+ let {
49
+ session,
50
+ anchorEl,
51
+ dark,
52
+ locale: _locale
53
+ } = _ref3;
54
+ const [federatedLoginOpen, setFederatedLoginOpen] = (0, _react.useState)(true);
55
+ const siteInfo = (_session$federatedMas = session.federatedMaster) === null || _session$federatedMas === void 0 ? void 0 : _session$federatedMas.site;
56
+ const userInfo = (_session$federatedMas2 = session.federatedMaster) === null || _session$federatedMas2 === void 0 ? void 0 : _session$federatedMas2.user;
57
+ const localeList = Object.keys(translations);
58
+ const locale = localeList.includes(_locale) ? _locale : localeList[0];
59
+ const onLoginFederated = (0, _react.useCallback)(() => {
60
+ session === null || session === void 0 ? void 0 : session.loginFederated(err => {
61
+ if (err) {
62
+ _Toast.default.error(err || translations[_locale].loginFederatedFailed);
63
+ } else {
64
+ setFederatedLoginOpen(false);
65
+ }
66
+ }, {
67
+ mode: userInfo ? 'auto' : 'manual'
68
+ });
69
+ }, [session, userInfo, _locale]);
70
+ return siteInfo && /*#__PURE__*/(0, _jsxRuntime.jsx)(_userPopper.default, {
71
+ open: federatedLoginOpen,
72
+ anchorEl: anchorEl,
73
+ dark: dark,
74
+ onClose: () => setFederatedLoginOpen(false),
75
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
76
+ p: 2,
77
+ children: [siteInfo && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
78
+ display: "flex",
79
+ alignItems: "center",
80
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
81
+ component: "img",
82
+ mr: 2,
83
+ src: "".concat(siteInfo.appUrl).concat(siteInfo.appLogo),
84
+ alt: siteInfo.appName,
85
+ width: "30px",
86
+ height: "30px"
87
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
88
+ children: translations[locale].useToConnect({
89
+ master: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
90
+ component: "a",
91
+ href: siteInfo.appUrl,
92
+ target: "_blank",
93
+ sx: {
94
+ textDecoration: 'none',
95
+ fontWeight: 'bold',
96
+ color: 'primary.main',
97
+ fontSize: '1.2em'
98
+ },
99
+ children: siteInfo.appName
100
+ }),
101
+ member: window.blocklet.appName
102
+ })
103
+ })]
104
+ }), siteInfo && userInfo && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {
105
+ style: {
106
+ margin: '15px 0 10px 0'
107
+ }
108
+ }), userInfo && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
109
+ display: "flex",
110
+ alignItems: "center",
111
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
112
+ variant: "circle",
113
+ did: userInfo.did,
114
+ src: userInfo.avatar,
115
+ size: 28,
116
+ shape: "circle"
117
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
118
+ ml: 2,
119
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
120
+ display: "flex",
121
+ justifyContent: "space-between",
122
+ alignItems: "center",
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
124
+ fontSize: 18,
125
+ children: userInfo.fullName
126
+ }), ((_userInfo$role = userInfo.role) === null || _userInfo$role === void 0 ? void 0 : _userInfo$role.toUpperCase()) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Chip, {
127
+ label: (_userInfo$role2 = userInfo.role) === null || _userInfo$role2 === void 0 ? void 0 : _userInfo$role2.toUpperCase(),
128
+ size: "small",
129
+ variant: "outlined",
130
+ sx: {
131
+ height: 'auto',
132
+ marginRight: 0,
133
+ fontSize: 12
134
+ },
135
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {
136
+ component: _ShieldCheck.default,
137
+ style: {
138
+ fontSize: '14px'
139
+ }
140
+ })
141
+ })]
142
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Address.default, {
143
+ responsive: false,
144
+ children: userInfo.did
145
+ })]
146
+ })]
147
+ }), siteInfo && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
148
+ display: "flex",
149
+ justifyContent: "center",
150
+ mt: 2,
151
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
152
+ variant: "contained",
153
+ size: "small",
154
+ onClick: onLoginFederated,
155
+ children: translations[locale].connect
156
+ })
157
+ })]
158
+ })
159
+ });
160
+ }
161
+ FederatedLoginDetecter.propTypes = {
162
+ session: _propTypes.default.object.isRequired,
163
+ anchorEl: _propTypes.default.instanceOf(Element),
164
+ dark: _propTypes.default.bool,
165
+ locale: _propTypes.default.string
166
+ };
167
+ FederatedLoginDetecter.defaultProps = {
168
+ dark: false,
169
+ anchorEl: null,
170
+ locale: 'en'
171
+ };