@abtnode/ux 1.16.18-beta-aa01bd8e → 1.16.18-beta-bb4ebacc

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.
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = LogoUploader;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _urlJoin = _interopRequireDefault(require("url-join"));
10
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
11
+ var _noop = _interopRequireDefault(require("lodash/noop"));
12
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+ var _context = require("@arcblock/ux/lib/Locale/context");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var _templateObject;
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // eslint-disable-next-line import/no-unresolved
21
+ const Uploader = /*#__PURE__*/(0, _react.lazy)(() => Promise.resolve().then(() => _interopRequireWildcard(require('@blocklet/uploader/react'))).then(res => ({
22
+ default: res.Uploader
23
+ })));
24
+ const uploadPrefix = '/blocklet/logo/upload';
25
+ function LogoUploader(_ref) {
26
+ let {
27
+ url,
28
+ height,
29
+ width,
30
+ enabled,
31
+ type,
32
+ did,
33
+ prefix,
34
+ headers,
35
+ onUploaded
36
+ } = _ref;
37
+ const {
38
+ t
39
+ } = (0, _context.useLocaleContext)();
40
+ const uploaderRef = (0, _react.useRef)(null);
41
+ const onOpen = () => {
42
+ var _uploaderRef$current;
43
+ (_uploaderRef$current = uploaderRef.current) === null || _uploaderRef$current === void 0 ? void 0 : _uploaderRef$current.open();
44
+ };
45
+ const onFinish = () => {
46
+ var _uploaderRef$current2;
47
+ onUploaded();
48
+ (_uploaderRef$current2 = uploaderRef.current) === null || _uploaderRef$current2 === void 0 ? void 0 : _uploaderRef$current2.close();
49
+ };
50
+ const uploaderStyle = {
51
+ cursor: enabled ? 'pointer' : 'default',
52
+ '&::after': {
53
+ content: "\"".concat(t('common.switch'), "\"")
54
+ }
55
+ };
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, {
57
+ id: "uploader-".concat(did, "-").concat(type),
58
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Uploader, {
59
+ ref: uploaderRef,
60
+ popup: true,
61
+ onUploadFinish: onFinish,
62
+ plugins: ['ImageEditor'],
63
+ apiPathProps: {
64
+ uploader: (0, _urlJoin.default)(prefix, uploadPrefix, type, did),
65
+ disableMediaKitPrefix: true
66
+ },
67
+ coreProps: {
68
+ restrictions: {
69
+ allowedFileTypes: ['image/*', '.jpg', '.jpeg', '.png', '.gif', '.svg'],
70
+ maxFileSize: 1024 * 1024 * 10,
71
+ maxNumberOfFiles: 1
72
+ }
73
+ },
74
+ tusProps: {
75
+ headers
76
+ }
77
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
78
+ className: (0, _classnames.default)('uploader-wrapper', enabled && 'enabled'),
79
+ sx: uploaderStyle,
80
+ onClick: onOpen,
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
82
+ alt: "Logo",
83
+ src: url,
84
+ style: {
85
+ height,
86
+ width
87
+ }
88
+ })
89
+ })]
90
+ }, "uploader-".concat(did, "-").concat(type));
91
+ }
92
+
93
+ // infer props for Uploader
94
+ LogoUploader.propTypes = {
95
+ url: _propTypes.default.string.isRequired,
96
+ type: _propTypes.default.oneOf(['square', 'rect', 'favicon']).isRequired,
97
+ did: _propTypes.default.string.isRequired,
98
+ prefix: _propTypes.default.string.isRequired,
99
+ headers: _propTypes.default.func,
100
+ onUploaded: _propTypes.default.func,
101
+ height: _propTypes.default.number,
102
+ width: _propTypes.default.any,
103
+ enabled: _propTypes.default.bool
104
+ };
105
+ LogoUploader.defaultProps = {
106
+ height: 80,
107
+ width: 'auto',
108
+ enabled: true,
109
+ headers: () => ({}),
110
+ onUploaded: _noop.default
111
+ };
112
+ const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .uploader-wrapper {\n display: inline-flex;\n position: relative;\n font-size: 0px;\n &.enabled {\n cursor: pointer;\n }\n &::after {\n display: none;\n }\n &.enabled::after {\n display: block;\n opacity: 0;\n position: absolute;\n bottom: 0;\n background: rgba(0, 0, 0, 0.2);\n left: 0;\n right: 0;\n height: 2.2em;\n color: white;\n text-align: center;\n font-size: 12px;\n line-height: 2em;\n transition: opacity 0.3s ease;\n }\n &:hover::after {\n opacity: 1;\n }\n }\n"])));
@@ -216,7 +216,7 @@ function FederatedSiteList(_ref) {
216
216
  });
217
217
  }
218
218
  return list;
219
- }, [federatedConfig.appId, federatedSites, isMaster]);
219
+ }, [federatedConfig.appId, federatedSites, isMaster, t]);
220
220
  const tableOptions = (0, _ahooks.useCreation)(() => {
221
221
  return {
222
222
  sort: true,
@@ -581,7 +581,7 @@ function CreateRelease(_ref2) {
581
581
  });
582
582
  uploaderLogoRef.current.close();
583
583
  },
584
- plugins: [],
584
+ plugins: ['ImageEditor'],
585
585
  apiPathProps: {
586
586
  uploader: uploadLogoPrefix,
587
587
  disableMediaKitPrefix: true
@@ -606,7 +606,7 @@ function CreateRelease(_ref2) {
606
606
  });
607
607
  uploaderScreenshotRef.current.close();
608
608
  },
609
- plugins: [],
609
+ plugins: ['ImageEditor'],
610
610
  apiPathProps: {
611
611
  uploader: uploadScreenshotPrefix,
612
612
  disableMediaKitPrefix: true
@@ -4,15 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = usePassportId;
7
- var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
7
  function usePassportId() {
10
- const [passportId, setPassportId, clearPassportId] = (0, _useLocalStorage.default)('passportId', '');
8
+ const clearPassportId = () => {
9
+ localStorage.removeItem('passportId');
10
+ };
11
+ const setPassportId = value => {
12
+ localStorage.setItem('passportId', value);
13
+ };
11
14
  const getPassportId = () => {
12
- setTimeout(() => {
13
- clearPassportId();
14
- }, 0);
15
- return passportId || '';
15
+ const passportId = localStorage.getItem('passportId') || '';
16
+ clearPassportId();
17
+ return passportId;
16
18
  };
17
19
  return {
18
20
  getPassportId,
package/lib/locales/en.js CHANGED
@@ -83,6 +83,7 @@ module.exports = {
83
83
  instances: 'Number of instances'
84
84
  },
85
85
  common: {
86
+ invalid: 'Invalid',
86
87
  about: 'About',
87
88
  access: 'Access',
88
89
  accessKey: 'Access Keys',
@@ -102,6 +103,7 @@ module.exports = {
102
103
  back: 'Back',
103
104
  basic: 'Basic',
104
105
  basicInfo: 'Basic Information',
106
+ profile: 'Profile',
105
107
  bind: 'Bind',
106
108
  blocklet: 'Blocklet',
107
109
  blocklets: 'Blocklets',
@@ -155,6 +157,7 @@ module.exports = {
155
157
  downloading: 'Downloading',
156
158
  edit: 'Edit',
157
159
  email: 'Email',
160
+ phone: 'Phone',
158
161
  empty: 'Empty',
159
162
  emptyData: 'No results found',
160
163
  enable: 'Enable',
@@ -396,9 +399,9 @@ module.exports = {
396
399
  securityError: 'SecurityError: Can not open the admin url from accessing a cross-origin frame'
397
400
  },
398
401
  config: {
399
- name: 'Blocklet Name',
400
- description: 'Blocklet Description',
401
- sk: 'Secret key for the blocklet wallet',
402
+ name: 'App Name',
403
+ description: 'App Description',
404
+ sk: 'Secret key for the app wallet',
402
405
  logoSquare: 'App Logo',
403
406
  logoRect: 'Rect logo',
404
407
  logoRectDesc: 'Usually displayed at the top of the page, default to app logo',
@@ -419,7 +422,7 @@ module.exports = {
419
422
  languages: 'Supported Languages',
420
423
  selectLanguagesTip: 'Adjust the order by removing and re-adding',
421
424
  passportColor: 'Passport Color',
422
- appUrl: 'Blocklet URL',
425
+ appUrl: 'App URL',
423
426
  access: {
424
427
  title: 'Who Can Access',
425
428
  description: 'Who can access the blocklet',
@@ -1109,7 +1112,24 @@ module.exports = {
1109
1112
  passportEmpty: 'Passport should not be empty'
1110
1113
  },
1111
1114
  connectedAccounts: 'Connected Accounts',
1112
- federated: 'Federated'
1115
+ connections: 'Connections',
1116
+ federated: 'Federated',
1117
+ switch: {
1118
+ did: 'Switch DID',
1119
+ profile: 'Switch Profile',
1120
+ passport: 'Switch Passport'
1121
+ },
1122
+ settings: {
1123
+ notification: 'Notifications',
1124
+ email: 'Send email to me when some events happen',
1125
+ wallet: 'Send notification to my wallet when some events happen',
1126
+ phone: 'Send text message to me when some events happen',
1127
+ webhook: 'Webhooks',
1128
+ add: 'Add new webhook',
1129
+ url: 'Custom URL',
1130
+ slack: 'Slack Webhook',
1131
+ tested: 'Test message sent'
1132
+ }
1113
1133
  },
1114
1134
  transferNode: {
1115
1135
  name: 'Transfer Ownership',
package/lib/locales/zh.js CHANGED
@@ -86,6 +86,7 @@ module.exports = {
86
86
  instances: '实例数'
87
87
  },
88
88
  common: {
89
+ invalid: '无效',
89
90
  about: '关于',
90
91
  access: '访问',
91
92
  accessKey: '访问秘钥',
@@ -105,6 +106,7 @@ module.exports = {
105
106
  back: '返回',
106
107
  basic: '基础',
107
108
  basicInfo: '基础信息',
109
+ profile: '信息',
108
110
  bind: '绑定',
109
111
  blocklet: '基石程序',
110
112
  blocklets: '基石程序',
@@ -159,6 +161,7 @@ module.exports = {
159
161
  downloading: '下载中',
160
162
  edit: '编辑',
161
163
  email: '邮箱',
164
+ phone: '电话',
162
165
  empty: '暂无',
163
166
  emptyData: '未找到结果',
164
167
  enable: '启用',
@@ -1112,7 +1115,24 @@ module.exports = {
1112
1115
  passportEmpty: '通行证不能为空'
1113
1116
  },
1114
1117
  connectedAccounts: '已连接账号',
1115
- federated: '统一登录'
1118
+ connections: '账号绑定',
1119
+ federated: '统一登录',
1120
+ switch: {
1121
+ did: '添加账户',
1122
+ profile: '更新身份',
1123
+ passport: '切换通行证'
1124
+ },
1125
+ settings: {
1126
+ notification: '通知设置',
1127
+ email: '当有动态时给我发送邮件',
1128
+ wallet: '当有动态时给我发送钱包通知',
1129
+ phone: '当有动态时给我发送短信',
1130
+ webhook: '外部钩子',
1131
+ add: '添加新钩子',
1132
+ url: '自定义 URL',
1133
+ slack: 'Slack 通知',
1134
+ tested: '测试消息已经发送'
1135
+ }
1116
1136
  },
1117
1137
  transferNode: {
1118
1138
  name: '转移所有者',
@@ -52,7 +52,8 @@ function LogTerminalGroup(_ref) {
52
52
  error: 'Error',
53
53
  access: 'Access',
54
54
  stdout: 'stdout',
55
- stderr: 'stderr'
55
+ stderr: 'stderr',
56
+ pm2: 'PM2'
56
57
  };
57
58
  const isMobile = (0, _useMediaQuery.default)(theme => theme.breakpoints.down('md'));
58
59
  const [currentType, setCurrentType] = (0, _react.useState)(types[defaultTypeIndex || 0]);
@@ -18,6 +18,7 @@ var _textInput = _interopRequireDefault(require("./text-input"));
18
18
  var _passportInput = _interopRequireDefault(require("./passport-input"));
19
19
  var _required = _interopRequireDefault(require("../form/required"));
20
20
  var _formWrapper = _interopRequireDefault(require("../form/form-wrapper"));
21
+ var _logoUploader = _interopRequireDefault(require("../blocklet/logo-uploader"));
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  var _templateObject;
23
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -48,7 +49,8 @@ function getComponent(item, _ref) {
48
49
  const componentMap = {
49
50
  input: _textInput.default,
50
51
  color: _colorInput.default,
51
- passport: _passportInput.default
52
+ passport: _passportInput.default,
53
+ uploader: props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_logoUploader.default, _objectSpread({}, props.componentProps))
52
54
  };
53
55
  return componentMap[componentType === null || componentType === void 0 ? void 0 : componentType.toLowerCase()];
54
56
  }
@@ -132,6 +134,7 @@ function SchemaForm(_ref2) {
132
134
  key,
133
135
  description,
134
136
  required,
137
+ solo = false,
135
138
  hidden = false,
136
139
  componentProps = {}
137
140
  } = x;
@@ -162,7 +165,7 @@ function SchemaForm(_ref2) {
162
165
  };
163
166
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
164
167
  className: "form-item",
165
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
168
+ children: [!solo && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
166
169
  className: "form-item-label",
167
170
  style: {
168
171
  color: required && !currentValue ? '#ff0000' : '#333'
@@ -172,8 +175,11 @@ function SchemaForm(_ref2) {
172
175
  className: "form-item-body",
173
176
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
174
177
  className: "form-item-input",
178
+ sx: {
179
+ textAlign: solo ? 'center' : 'left'
180
+ },
175
181
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CurrentComponent, _objectSpread({}, renderComponentProps))
176
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
182
+ }), !solo && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
177
183
  className: "form-item-action",
178
184
  children: editing ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
179
185
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = UserConnections;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _InfoRow = _interopRequireDefault(require("@arcblock/ux/lib/InfoRow"));
10
+ var _didAddress = _interopRequireDefault(require("../../did-address"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function UserConnections(_ref) {
14
+ let {
15
+ user
16
+ } = _ref;
17
+ const connectedAccounts = user.connectedAccounts || [];
18
+ return connectedAccounts.map(account => {
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
20
+ style: {
21
+ alignItems: 'flex-start'
22
+ },
23
+ valueComponent: "div",
24
+ nameWidth: 120,
25
+ name: account.provider,
26
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {
27
+ did: account.did
28
+ })
29
+ }, account.did);
30
+ });
31
+ }
32
+ UserConnections.propTypes = {
33
+ user: _propTypes.default.object.isRequired
34
+ };
35
+ UserConnections.defaultProps = {};
@@ -31,6 +31,7 @@ var _passportIssuances = _interopRequireDefault(require("./passport-issuances"))
31
31
  var _passports = _interopRequireDefault(require("./passports"));
32
32
  var _toggleUserApproval = _interopRequireDefault(require("./toggle-user-approval"));
33
33
  var _util2 = require("./util");
34
+ var _connections = _interopRequireDefault(require("./connections"));
34
35
  var _jsxRuntime = require("react/jsx-runtime");
35
36
  var _templateObject, _templateObject2, _templateObject3;
36
37
  const _excluded = ["name"];
@@ -63,40 +64,14 @@ function LinkUser(_ref) {
63
64
  LinkUser.propTypes = {
64
65
  name: _propTypes.default.string.isRequired
65
66
  };
66
- function TabOAuth(_ref2) {
67
- let {
68
- user
69
- } = _ref2;
70
- const connectedAccounts = user.connectedAccounts || [];
71
- return connectedAccounts.map(account => {
72
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
73
- style: {
74
- alignItems: 'flex-start'
75
- },
76
- valueComponent: "div",
77
- nameWidth: 120,
78
- name: account.provider,
79
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {
80
- did: account.did
81
- })
82
- }, account.did);
83
- });
84
- }
85
- TabOAuth.propTypes = {
86
- user: _propTypes.default.object.isRequired,
87
- onChangeUser: _propTypes.default.func
88
- };
89
- TabOAuth.defaultProps = {
90
- onChangeUser: () => {}
91
- };
92
67
  const defaultTab = 'info';
93
- function Member(_ref3) {
68
+ function Member(_ref2) {
94
69
  let {
95
70
  userDid,
96
71
  onCancel,
97
72
  initTab,
98
73
  createPassportSvg
99
- } = _ref3;
74
+ } = _ref2;
100
75
  const {
101
76
  api,
102
77
  ws: {
@@ -251,7 +226,7 @@ function Member(_ref3) {
251
226
  oauth: {
252
227
  label: t('team.member.connectedAccounts'),
253
228
  value: 'oauth',
254
- component: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(TabOAuth, {
229
+ component: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_connections.default, {
255
230
  user: pageState.user,
256
231
  onChangeUser: handleChangeUser
257
232
  })
@@ -288,11 +263,11 @@ function Member(_ref3) {
288
263
  })
289
264
  }
290
265
  };
291
- const tabs = Object.values(tabConfigs).map(_ref4 => {
266
+ const tabs = Object.values(tabConfigs).map(_ref3 => {
292
267
  let {
293
268
  label,
294
269
  value
295
- } = _ref4;
270
+ } = _ref3;
296
271
  return {
297
272
  label,
298
273
  value
@@ -331,10 +306,10 @@ function Member(_ref3) {
331
306
  role: inService ? _util.BlockletAdminRoles : [],
332
307
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_toggleUserApproval.default, {
333
308
  user: pageState.user,
334
- children: _ref5 => {
309
+ children: _ref4 => {
335
310
  let {
336
311
  open
337
- } = _ref5;
312
+ } = _ref4;
338
313
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(BlockButton, {
339
314
  onClick: open,
340
315
  children: [pageState.user.approved ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ForbidLoginIcon.default, {
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = PassportItem;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
+ var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
11
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
12
+ var _context = require("@arcblock/ux/lib/Locale/context");
13
+ var _RevokeIcon = _interopRequireDefault(require("@arcblock/icons/lib/RevokeIcon"));
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ var _templateObject;
16
+ const _excluded = ["passport", "user", "color", "width", "icon", "children", "createPassportSvg"];
17
+ /* eslint-disable prettier/prettier */
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
20
+ 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; }
21
+ 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; }
22
+ 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; }
23
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
24
+ 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); }
25
+ 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; }
26
+ 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; }
27
+ function PassportItem(_ref) {
28
+ let {
29
+ passport,
30
+ user,
31
+ color,
32
+ width,
33
+ icon,
34
+ children,
35
+ createPassportSvg
36
+ } = _ref,
37
+ rest = _objectWithoutProperties(_ref, _excluded);
38
+ const {
39
+ t
40
+ } = (0, _context.useLocaleContext)();
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Root, _objectSpread(_objectSpread({
42
+ display: "flex",
43
+ alignItems: "center"
44
+ }, rest), {}, {
45
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
46
+ // eslint-disable-next-line react/no-danger
47
+ dangerouslySetInnerHTML: {
48
+ __html: createPassportSvg({
49
+ title: passport.title || passport.name,
50
+ issuer: passport.issuer && passport.issuer.name,
51
+ issuerDid: passport.issuer && passport.issuer.id,
52
+ ownerName: user.fullName,
53
+ ownerDid: user.did,
54
+ ownerAvatarUrl: user.avatar,
55
+ revoked: passport.revoked,
56
+ preferredColor: color,
57
+ width
58
+ })
59
+ }
60
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
61
+ className: "body",
62
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
63
+ className: "title",
64
+ display: "flex",
65
+ alignItems: "center",
66
+ children: [(0, _upperFirst.default)(passport.title), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
67
+ className: "status-icons",
68
+ children: [icon, passport.revoked && /*#__PURE__*/(0, _jsxRuntime.jsx)(_RevokeIcon.default, {})]
69
+ })]
70
+ }), passport.expirationDate && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
71
+ className: "title",
72
+ display: "flex",
73
+ alignItems: "center",
74
+ children: t('team.passport.validUntil', {
75
+ date: passport.expirationDate
76
+ })
77
+ }), children]
78
+ })]
79
+ }));
80
+ }
81
+ PassportItem.propTypes = {
82
+ passport: _propTypes.default.any.isRequired,
83
+ user: _propTypes.default.any.isRequired,
84
+ color: _propTypes.default.string.isRequired,
85
+ createPassportSvg: _propTypes.default.func.isRequired,
86
+ icon: _propTypes.default.any,
87
+ children: _propTypes.default.any,
88
+ width: _propTypes.default.number
89
+ };
90
+ PassportItem.defaultProps = {
91
+ icon: null,
92
+ children: null,
93
+ width: 150
94
+ };
95
+ const Root = (0, _styled.default)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .body {\n padding: 0;\n margin-left: 24px;\n margin-top: 0;\n }\n .title {\n font-weight: 400;\n font-size: 16px;\n line-height: 19px;\n color: #222222;\n }\n .tip {\n display: flex;\n align-items: center;\n font-size: 14px;\n margin-top: 6px;\n color: #bbb;\n }\n .status-icons {\n svg {\n fill: #bfbfbf;\n height: 1.2em;\n margin-left: 0.4em;\n }\n }\n"])));