@abtnode/ux 1.8.26 → 1.8.28

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 (88) hide show
  1. package/lib/actions.js +109 -0
  2. package/lib/blocklet/actions.js +437 -0
  3. package/lib/blocklet/audit-logs.js +194 -0
  4. package/lib/blocklet/avatar.js +96 -0
  5. package/lib/blocklet/blocklet-source.js +56 -0
  6. package/lib/blocklet/component/configuration.js +124 -0
  7. package/lib/blocklet/component/delete.js +115 -0
  8. package/lib/blocklet/component/environment.js +277 -0
  9. package/lib/blocklet/component/index.js +742 -0
  10. package/lib/blocklet/component/setting.js +135 -0
  11. package/lib/blocklet/configuration.js +463 -0
  12. package/lib/blocklet/disk-info.js +89 -0
  13. package/lib/blocklet/icons.js +26 -0
  14. package/lib/blocklet/log.js +55 -0
  15. package/lib/blocklet/mode.js +33 -0
  16. package/lib/blocklet/overview.js +184 -0
  17. package/lib/blocklet/runtime-info.js +85 -0
  18. package/lib/blocklet/status.js +103 -0
  19. package/lib/blocklet/util.js +119 -0
  20. package/lib/blocklet/version.js +178 -0
  21. package/lib/card-selector.js +9 -22
  22. package/lib/click-to-copy.js +36 -0
  23. package/lib/confirm.js +149 -0
  24. package/lib/contexts/audit-log.js +141 -0
  25. package/lib/contexts/deleting-blocklets.js +78 -0
  26. package/lib/contexts/node.js +28 -0
  27. package/lib/contexts/session.js +20 -0
  28. package/lib/contexts/team.js +19 -0
  29. package/lib/did-address.js +75 -0
  30. package/lib/dot.js +18 -0
  31. package/lib/form/form-text-input.js +12 -38
  32. package/lib/form/form-wrapper.js +0 -7
  33. package/lib/form/required.js +0 -6
  34. package/lib/hooks/mobile-width.js +19 -0
  35. package/lib/hooks/use-passport-id.js +0 -5
  36. package/lib/icons/long-arrow.svg +5 -0
  37. package/lib/index.js +0 -3
  38. package/lib/invitation/invitation-app.js +3 -21
  39. package/lib/invitation/invitation-passport.js +2 -16
  40. package/lib/invitation/invitation-receive.js +2 -19
  41. package/lib/invitation/invitation-user.js +0 -16
  42. package/lib/invitation/invitation.js +0 -23
  43. package/lib/issue-passport.js +2 -31
  44. package/lib/launch-blocklet/content-layout.js +3 -19
  45. package/lib/launch-blocklet/page-header.js +0 -9
  46. package/lib/layout/addon.js +0 -24
  47. package/lib/locales/en.js +1046 -38
  48. package/lib/locales/index.js +0 -3
  49. package/lib/locales/zh.js +1049 -36
  50. package/lib/logs/clock.js +19 -0
  51. package/lib/logs/log-terminal.js +172 -0
  52. package/lib/lost-passport.js +6 -51
  53. package/lib/nav-logo.js +12 -33
  54. package/lib/passport-tag.js +41 -0
  55. package/lib/permission.js +68 -0
  56. package/lib/relative-time.js +61 -0
  57. package/lib/schema-form/color-input.js +2 -15
  58. package/lib/schema-form/common-prop-types.js +0 -3
  59. package/lib/schema-form/index.js +8 -45
  60. package/lib/schema-form/passport-input.js +6 -24
  61. package/lib/schema-form/text-input.js +9 -26
  62. package/lib/table-icons.js +42 -0
  63. package/lib/table.js +13 -0
  64. package/lib/tag.js +35 -0
  65. package/lib/team/members/actions.js +99 -0
  66. package/lib/team/members/index.js +476 -0
  67. package/lib/team/members/invitations.js +196 -0
  68. package/lib/team/members/invite-member.js +212 -0
  69. package/lib/team/members/issue-passport.js +155 -0
  70. package/lib/team/members/member.js +294 -0
  71. package/lib/team/members/passport-issuances.js +154 -0
  72. package/lib/team/members/passports.js +329 -0
  73. package/lib/team/members/toggle-user-approval.js +128 -0
  74. package/lib/team/members/transfer-node.js +262 -0
  75. package/lib/team/members/util.js +20 -0
  76. package/lib/team/passports/detail.js +261 -0
  77. package/lib/team/passports/index.js +220 -0
  78. package/lib/team/passports/mutate-role.js +204 -0
  79. package/lib/team/passports/trusted-issuer.js +295 -0
  80. package/lib/team/passports/trusted-issuers.js +238 -0
  81. package/lib/team/search-input.js +36 -0
  82. package/lib/team/styles/dialog.js +13 -0
  83. package/lib/team/styles/list-header.js +13 -0
  84. package/lib/toast.js +4 -19
  85. package/lib/util/index.js +504 -38
  86. package/lib/who-can-access/config.js +0 -6
  87. package/lib/wrap-locale.js +0 -7
  88. package/package.json +43 -20
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _useInterval = _interopRequireDefault(require("react-use/lib/useInterval"));
9
+ var _util = require("../util");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function Clock() {
12
+ const [currentTime, setCurrentTime] = (0, _react.useState)(+new Date());
13
+ (0, _useInterval.default)(() => {
14
+ setCurrentTime(+new Date());
15
+ }, 1000);
16
+ return (0, _util.formatTime)(currentTime, 'MMMM Do YYYY, h:mm:ss a');
17
+ }
18
+ var _default = Clock;
19
+ exports.default = _default;
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LogTerminal = void 0;
7
+ exports.LogTerminalGroup = LogTerminalGroup;
8
+ var _react = require("react");
9
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
12
+ var _ButtonGroup = _interopRequireDefault(require("@mui/material/ButtonGroup"));
13
+ var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
14
+ var _Terminal = _interopRequireDefault(require("@arcblock/terminal/lib/Terminal"));
15
+ var _clock = _interopRequireDefault(require("./clock"));
16
+ var _node = require("../contexts/node");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ var _templateObject, _templateObject2;
19
+ const _excluded = ["name", "logId", "types", "initialData", "prepend"],
20
+ _excluded2 = ["logFile"];
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23
+ 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; }
24
+ 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; }
25
+ 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; }
26
+ 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; }
27
+ 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; }
28
+ /**
29
+ * 按 level/destination 分类的一组 terminal
30
+ */
31
+ function LogTerminalGroup(_ref) {
32
+ let {
33
+ name,
34
+ logId,
35
+ types,
36
+ initialData,
37
+ prepend
38
+ } = _ref,
39
+ rest = _objectWithoutProperties(_ref, _excluded);
40
+ const {
41
+ ws: {
42
+ useSubscription
43
+ }
44
+ } = (0, _node.useNodeContext)();
45
+ const logTypeLabels = {
46
+ info: 'Info',
47
+ error: 'Error',
48
+ access: 'Access',
49
+ stdout: 'stdout',
50
+ stderr: 'stderr'
51
+ };
52
+ const isMobile = (0, _useMediaQuery.default)(theme => theme.breakpoints.down('md'));
53
+ const [currentType, setCurrentType] = (0, _react.useState)(types[0]);
54
+ const [logFiles, setLogFiles] = (0, _react.useState)();
55
+ const terminalRefs = (0, _react.useRef)({});
56
+
57
+ // 组件挂载时, 写入初始数据
58
+ (0, _react.useEffect)(() => {
59
+ types.forEach(type => {
60
+ const terminal = terminalRefs.current[type];
61
+ if (terminal) {
62
+ terminal.write("Collecting ".concat(type, " logs for ").concat(name, "..."));
63
+ terminal.write('\r\n\r\n');
64
+ initialData.forEach(item => terminal.write(item));
65
+ }
66
+ });
67
+ // eslint-disable-next-line react-hooks/exhaustive-deps
68
+ }, []);
69
+
70
+ // 监听 log 数据, 写入 terminal
71
+ useSubscription("log.".concat(logId), log => {
72
+ if (!logFiles) {
73
+ setLogFiles(log.logFiles || {});
74
+ }
75
+ const terminal = terminalRefs.current[log.level];
76
+ if (terminal) {
77
+ terminal.write(log.data.replace(/.\n/g, p => p === '\r\n' ? p : "".concat(p[0], "\r\n\r\n")));
78
+ terminal.write('\r\n\r\n');
79
+ }
80
+ }, []);
81
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(LogTerminalGroupRoot, _objectSpread(_objectSpread({}, rest), {}, {
82
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
83
+ className: "log-terminal-group-head",
84
+ children: [prepend, /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonGroup.default, {
85
+ variant: "outlined",
86
+ size: isMobile ? 'small' : 'medium',
87
+ children: types.map(type => {
88
+ const props = type === currentType ? {
89
+ variant: 'contained'
90
+ } : {};
91
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, _objectSpread(_objectSpread({}, props), {}, {
92
+ onClick: () => setCurrentType(type),
93
+ children: logTypeLabels[type]
94
+ }), type);
95
+ })
96
+ })]
97
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
98
+ className: "log-terminal-group-terminals",
99
+ children: types.map(type => {
100
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(LogTerminal, {
101
+ ref: _ref2 => {
102
+ terminalRefs.current[type] = _ref2;
103
+ },
104
+ logFile: logFiles === null || logFiles === void 0 ? void 0 : logFiles[type],
105
+ style: {
106
+ visibility: type === currentType ? 'visible' : 'hidden'
107
+ }
108
+ }, type);
109
+ })
110
+ })]
111
+ }));
112
+ }
113
+ LogTerminalGroup.propTypes = {
114
+ // log name, 比如: blocklet display name
115
+ name: _propTypes.default.string.isRequired,
116
+ // 比如: abtnode | blocklet-services | blocklet-<did>
117
+ logId: _propTypes.default.string.isRequired,
118
+ // 日志类型, info/error 或 stdin/stdout/access
119
+ types: _propTypes.default.arrayOf(_propTypes.default.string),
120
+ // 写入 terminal 的初始数据
121
+ initialData: _propTypes.default.arrayOf(_propTypes.default.string),
122
+ prepend: _propTypes.default.node
123
+ };
124
+ LogTerminalGroup.defaultProps = {
125
+ types: ['error', 'info', 'access', 'stdout', 'stderr'],
126
+ initialData: [],
127
+ prepend: null
128
+ };
129
+ const LogTerminalGroupRoot = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n height: 100%;\n .log-terminal-group-head {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: 16px;\n padding-bottom: 16px;\n\n ", " {\n flex-direction: column;\n align-items: start;\n }\n }\n .log-terminal-group-terminals {\n flex: 1;\n position: relative;\n overflow: hidden;\n > * {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n }\n"])), props => props.theme.breakpoints.down('md'));
130
+ const LogTerminal = /*#__PURE__*/(0, _react.forwardRef)((_ref3, ref) => {
131
+ let {
132
+ logFile
133
+ } = _ref3,
134
+ rest = _objectWithoutProperties(_ref3, _excluded2);
135
+ const terminalStyle = {
136
+ width: '100%',
137
+ boxSizing: 'border-box',
138
+ height: '100%'
139
+ };
140
+ const terminalOptions = {
141
+ theme: {
142
+ background: '#2C313C',
143
+ foreground: '#EEEEEE'
144
+ }
145
+ };
146
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(LogTerminalRoot, _objectSpread(_objectSpread({}, rest), {}, {
147
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
148
+ className: "log-terminal-top",
149
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_clock.default, {}), logFile && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
150
+ children: logFile
151
+ })]
152
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
153
+ className: "log-terminal-container",
154
+ style: {
155
+ position: 'relative'
156
+ },
157
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Terminal.default, {
158
+ ref: ref,
159
+ style: terminalStyle,
160
+ options: terminalOptions
161
+ })
162
+ })]
163
+ }));
164
+ });
165
+ exports.LogTerminal = LogTerminal;
166
+ LogTerminal.propTypes = {
167
+ logFile: _propTypes.default.string
168
+ };
169
+ LogTerminal.defaultProps = {
170
+ logFile: ''
171
+ };
172
+ const LogTerminalRoot = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n height: 100%;\n display: flex;\n flex-direction: column;\n .log-terminal-top {\n flex: 0 0 auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n padding: 8px;\n font-size: 14px;\n color: aquamarine;\n background: darkgray;\n word-break: break-word;\n }\n .log-terminal-container {\n flex: 1;\n height: 100%;\n padding: 8px;\n overflow: hidden;\n background: #2c313c;\n }\n\n .xterm-viewport::-webkit-scrollbar {\n width: 10px;\n }\n .xterm-viewport::-webkit-scrollbar-track {\n opacity: 0;\n }\n .xterm-viewport::-webkit-scrollbar-thumb {\n min-height: 20px;\n background-color: #ffffff20;\n }\n"])));
@@ -4,59 +4,32 @@ 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 _styled = _interopRequireDefault(require("@emotion/styled"));
11
-
12
9
  var _reactRouterDom = require("react-router-dom");
13
-
14
10
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
15
-
16
11
  var _Container = _interopRequireDefault(require("@mui/material/Container"));
17
-
18
12
  var _CheckCircle = _interopRequireDefault(require("@mui/icons-material/CheckCircle"));
19
-
20
13
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
21
-
22
14
  var _Stepper = _interopRequireDefault(require("@mui/material/Stepper"));
23
-
24
15
  var _Step = _interopRequireDefault(require("@mui/material/Step"));
25
-
26
16
  var _StepLabel = _interopRequireDefault(require("@mui/material/StepLabel"));
27
-
28
17
  var _ViewList = _interopRequireDefault(require("@mui/icons-material/ViewList"));
29
-
30
18
  var _GetApp = _interopRequireDefault(require("@mui/icons-material/GetApp"));
31
-
32
19
  var _Done = _interopRequireDefault(require("@mui/icons-material/Done"));
33
-
34
20
  var _Avatar = _interopRequireDefault(require("@mui/material/Avatar"));
35
-
36
21
  var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
37
-
38
22
  var _Address = _interopRequireDefault(require("@arcblock/did-connect/lib/Address"));
39
-
40
23
  var _context = require("@arcblock/ux/lib/Locale/context");
41
-
42
24
  var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
43
-
44
25
  var _constant = require("@abtnode/constant");
45
-
46
26
  var _cardSelector = _interopRequireDefault(require("./card-selector"));
47
-
48
27
  var _wrapLocale = _interopRequireDefault(require("./wrap-locale"));
49
-
50
28
  var _usePassportId = _interopRequireDefault(require("./hooks/use-passport-id"));
51
-
52
29
  var _jsxRuntime = require("react/jsx-runtime");
53
-
54
30
  var _templateObject;
55
-
56
31
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
57
-
58
32
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
59
-
60
33
  // eslint-disable-next-line react/prop-types
61
34
  function ColorStepIcon(_ref) {
62
35
  let {
@@ -76,22 +49,19 @@ function ColorStepIcon(_ref) {
76
49
  })
77
50
  };
78
51
  const classNames = ['step-icon-w'];
79
-
80
52
  if (active) {
81
53
  classNames.push('step-icon-w--active');
82
54
  }
83
-
84
55
  if (completed) {
85
56
  classNames.push('step-icon-w--completed');
86
57
  }
87
-
88
58
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
89
59
  className: classNames.join(' '),
90
60
  children: icons[String(icon)]
91
61
  });
92
- } // eslint-disable-next-line react/prop-types
93
-
62
+ }
94
63
 
64
+ // eslint-disable-next-line react/prop-types
95
65
  function LostPassport(_ref2) {
96
66
  let {
97
67
  SessionContext,
@@ -114,66 +84,55 @@ function LostPassport(_ref2) {
114
84
  const [activeStep, setActiveStep] = (0, _react.useState)(0);
115
85
  const {
116
86
  setPassportId
117
- } = (0, _usePassportId.default)(); // eslint-disable-next-line no-undef
87
+ } = (0, _usePassportId.default)();
118
88
 
89
+ // eslint-disable-next-line no-undef
119
90
  const {
120
91
  searchParams
121
92
  } = new URL(window.location.href);
122
-
123
93
  const onNext = () => {
124
94
  setActiveStep(activeStep + 1);
125
95
  };
126
-
127
96
  const onGetUser = result => {
128
97
  setUser(result.user);
129
98
  };
130
-
131
99
  const onSelectPassport = () => {
132
100
  onNext();
133
101
  };
134
-
135
102
  const onReceivePassport = result => {
136
103
  if (result !== null && result !== void 0 && result.passportId) {
137
104
  setPassportId(result.passportId);
138
105
  }
139
-
140
106
  setSuccess(true);
141
107
  onNext();
142
108
  };
143
-
144
109
  const onUsePassport = () => {
145
110
  var _window$env;
146
-
147
111
  try {
148
112
  session.logout();
149
- } catch (err) {// Do nothing
113
+ } catch (err) {
114
+ // Do nothing
150
115
  }
151
-
152
116
  const redirect = searchParams.get('redirect');
153
-
154
117
  if (redirect) {
155
118
  navigate(redirect, {
156
119
  replace: true
157
120
  });
158
121
  return;
159
122
  }
160
-
161
123
  if ((((_window$env = window.env) === null || _window$env === void 0 ? void 0 : _window$env.apiPrefix) || '').startsWith(_constant.WELLKNOWN_SERVICE_PATH_PREFIX)) {
162
124
  navigate("".concat(_constant.WELLKNOWN_SERVICE_PATH_PREFIX, "/login"), {
163
125
  replace: true
164
126
  });
165
127
  return;
166
128
  }
167
-
168
129
  navigate('/', {
169
130
  replace: true
170
131
  });
171
132
  };
172
-
173
133
  const handleChange = event => {
174
134
  setPassport(event.target.value);
175
135
  };
176
-
177
136
  const steps = [{
178
137
  label: t('lostPassport.selectPassport'),
179
138
  content: () => {
@@ -197,7 +156,6 @@ function LostPassport(_ref2) {
197
156
  }
198
157
  });
199
158
  }
200
-
201
159
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
202
160
  className: "select-passport",
203
161
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
@@ -353,9 +311,6 @@ function LostPassport(_ref2) {
353
311
  })
354
312
  });
355
313
  }
356
-
357
314
  const Div = (0, _styled.default)(_Container.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding-top: 46px;\n padding-bottom: 46px;\n height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n @media (max-width: ", "px) {\n display: block;\n }\n .header {\n text-align: center;\n margin-bottom: 24px;\n }\n\n .stepper {\n padding: 24px;\n height: auto;\n width: 100%;\n min-height: 640px;\n display: flex;\n flex-direction: column;\n\n .stepper-progress {\n padding: 0;\n flex: 0;\n margin-bottom: 24px;\n\n .MuiStepLabel-label.MuiStepLabel-alternativeLabel {\n margin-top: 8px;\n }\n\n .MuiStepConnector-alternativeLabel {\n top: 24px;\n }\n\n .MuiStepConnector-lineHorizontal {\n height: 3px;\n border: none;\n background-color: #eaeaf0;\n border-radius: 1px;\n }\n\n .step-icon-w {\n background-color: ", ";\n z-index: 1;\n color: ", ";\n width: 50px;\n height: 50px;\n display: flex;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n .step-icon {\n font-size: 30px;\n }\n }\n\n .step-icon-w--active {\n background-color: ", ";\n }\n\n .step-icon-w--completed {\n background-color: ", ";\n }\n }\n\n .stepper-content {\n padding: 0 64px;\n flex: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 24px;\n\n .stepper-icon {\n margin-left: 40px;\n }\n\n .stepper-auth {\n padding: 0;\n\n .auth-title {\n margin-bottom: 16px;\n }\n }\n\n .stepper-tip {\n text-align: center;\n margin-bottom: 16px;\n }\n @media (max-width: ", "px) {\n padding: 0;\n }\n }\n\n .stepper-actions {\n flex: 0;\n text-align: right;\n padding: 0 64px;\n display: none;\n .step-button {\n margin-right: 8px;\n }\n }\n\n .select-passport {\n width: 80%;\n @media (max-width: ", "px) {\n width: 100%;\n }\n }\n\n .user-info {\n .name {\n font-weight: 500;\n font-size: 18px;\n line-height: 25px;\n color: #222222;\n }\n }\n }\n\n .connect {\n background: #fafafa;\n }\n"])), props => props.theme.breakpoints.values.sm, props => props.theme.palette.grey[500], props => props.theme.palette.common.white, props => props.theme.palette.primary.main, props => props.theme.palette.secondary.main, props => props.theme.breakpoints.values.sm, props => props.theme.breakpoints.values.sm);
358
-
359
315
  var _default = (0, _wrapLocale.default)(LostPassport);
360
-
361
316
  exports.default = _default;
package/lib/nav-logo.js CHANGED
@@ -4,47 +4,32 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = LogoContainer;
7
-
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
-
10
8
  var _styled = _interopRequireDefault(require("@emotion/styled"));
11
-
12
9
  var _jsxRuntime = require("react/jsx-runtime");
13
-
14
10
  var _templateObject, _templateObject2;
15
-
16
11
  const _excluded = ["logo", "name", "subname", "previousData"],
17
- _excluded2 = ["logo"];
18
-
12
+ _excluded2 = ["logo"];
19
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
-
21
14
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
22
-
23
15
  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; }
24
-
25
16
  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; }
26
-
27
17
  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; }
28
-
29
18
  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; }
30
-
31
19
  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; }
32
-
33
20
  function LogoContainer(_ref) {
34
21
  let {
35
- logo,
36
- name,
37
- subname,
38
- previousData
39
- } = _ref,
40
- rest = _objectWithoutProperties(_ref, _excluded);
41
-
22
+ logo,
23
+ name,
24
+ subname,
25
+ previousData
26
+ } = _ref,
27
+ rest = _objectWithoutProperties(_ref, _excluded);
42
28
  let logoEle = /*#__PURE__*/(0, _jsxRuntime.jsx)(LogoImg, {
43
29
  logo: logo
44
30
  });
45
31
  let nameEle = name;
46
32
  let subnameEle = subname;
47
-
48
33
  if (previousData.logo) {
49
34
  logoEle = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
50
35
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(LogoImg, {
@@ -56,7 +41,6 @@ function LogoContainer(_ref) {
56
41
  })]
57
42
  });
58
43
  }
59
-
60
44
  if (previousData.name && previousData.name !== name) {
61
45
  nameEle = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
62
46
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
@@ -71,7 +55,6 @@ function LogoContainer(_ref) {
71
55
  })]
72
56
  });
73
57
  }
74
-
75
58
  if (previousData.subname && previousData.subname !== subname) {
76
59
  subnameEle = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
77
60
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
@@ -86,7 +69,6 @@ function LogoContainer(_ref) {
86
69
  })]
87
70
  });
88
71
  }
89
-
90
72
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, _objectSpread(_objectSpread({}, rest), {}, {
91
73
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
92
74
  className: "logo-inner",
@@ -106,7 +88,6 @@ function LogoContainer(_ref) {
106
88
  })
107
89
  }));
108
90
  }
109
-
110
91
  LogoContainer.propTypes = {
111
92
  logo: _propTypes.default.element.isRequired,
112
93
  name: _propTypes.default.string,
@@ -121,19 +102,17 @@ LogoContainer.defaultProps = {
121
102
  name: '',
122
103
  subname: ''
123
104
  }
124
- }; // eslint-disable-next-line react/prop-types
105
+ };
125
106
 
107
+ // eslint-disable-next-line react/prop-types
126
108
  function LogoImg(_ref2) {
127
109
  let {
128
- logo
129
- } = _ref2,
130
- rest = _objectWithoutProperties(_ref2, _excluded2);
131
-
110
+ logo
111
+ } = _ref2,
112
+ rest = _objectWithoutProperties(_ref2, _excluded2);
132
113
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(LogoImgDiv, _objectSpread(_objectSpread({}, rest), {}, {
133
114
  children: logo
134
115
  }));
135
116
  }
136
-
137
117
  const LogoImgDiv = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: block;\n > * {\n display: block;\n }\n"])));
138
-
139
118
  const Container = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n display: block;\n\n .logo-inner {\n display: flex;\n align-items: center;\n height: 100%;\n .logo-img-content {\n position: relative;\n display: block;\n }\n .logo-info {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: 10px;\n letter-spacing: 0.1px;\n &.zero-left {\n margin-left: 0%;\n }\n .logo-name {\n position: relative;\n line-height: 16px;\n font-size: 16px;\n color: #121319;\n }\n .logo-subname {\n position: relative;\n line-height: 13px;\n font-size: 13px;\n color: #7d8085;\n }\n }\n }\n\n .postion-abs {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n }\n\n .right-fade-out-ele {\n animation: right-fade-out ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: forwards;\n }\n\n .right-fade-in-ele {\n animation: right-fade-in ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: both;\n }\n\n @keyframes right-fade-out {\n 0% {\n opacity: 1;\n transform: translate(0, 0);\n }\n 100% {\n opacity: 0;\n transform: translate(8px, 0);\n }\n }\n\n @keyframes right-fade-in {\n 0% {\n opacity: 0;\n transform: translate(8px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n }\n\n .left-fade-out-ele {\n animation: left-fade-out ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: forwards;\n }\n\n .left-fade-in-ele {\n animation: left-fade-in ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: both;\n }\n\n @keyframes left-fade-out {\n 0% {\n opacity: 1;\n transform: translate(0, 0);\n }\n 100% {\n opacity: 0;\n transform: translate(-8px, 0);\n }\n }\n\n @keyframes left-fade-in {\n 0% {\n opacity: 0;\n transform: translate(-8px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n }\n"])));
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = PassportTag;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ var _templateObject;
12
+ const _excluded = ["passport", "onDelete"];
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
15
+ 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; }
16
+ 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; }
17
+ 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; }
18
+ 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; }
19
+ 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; }
20
+ function PassportTag(props) {
21
+ const {
22
+ passport,
23
+ onDelete
24
+ } = props,
25
+ rest = _objectWithoutProperties(props, _excluded);
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Tag, _objectSpread(_objectSpread({}, rest), {}, {
27
+ children: [passport.title || passport.name, ' ', !!onDelete && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {
28
+ "data-cy": "delete-issuance",
29
+ className: "delete",
30
+ onClick: onDelete
31
+ })]
32
+ }));
33
+ }
34
+ PassportTag.propTypes = {
35
+ passport: _propTypes.default.object.isRequired,
36
+ onDelete: _propTypes.default.func
37
+ };
38
+ PassportTag.defaultProps = {
39
+ onDelete: null
40
+ };
41
+ const Tag = _styled.default.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline-flex;\n padding: 2px 8px;\n background: ", ";\n border-radius: 100vw;\n font-weight: 400;\n font-size: 12px;\n line-height: 22px;\n color: #fff;\n align-items: center;\n .delete {\n font-size: 1em;\n margin-left: 6px;\n cursor: pointer;\n }\n"])), props => props.theme.palette.primary.main);
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Permission;
7
+ exports.withPermission = withPermission;
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _session = require("./contexts/session");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ 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; }
13
+ 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
+ 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; }
15
+ function Permission(_ref) {
16
+ let {
17
+ permission,
18
+ role,
19
+ component,
20
+ children
21
+ } = _ref;
22
+ const {
23
+ session
24
+ } = (0, _session.useSessionContext)();
25
+ let can = true;
26
+ const permissions = [].concat(permission).filter(Boolean);
27
+ const roles = [].concat(role).filter(Boolean);
28
+ if (permissions.length) {
29
+ const userPermissions = session.user && session.user.permissions || [];
30
+ can = permissions.some(p => userPermissions.includes(p));
31
+ }
32
+ if (can && roles.length) {
33
+ can = roles.includes(session.user.role);
34
+ }
35
+ if (typeof component === 'function') {
36
+ return component(can);
37
+ }
38
+ if (typeof children === 'function') {
39
+ return children(can);
40
+ }
41
+ if (can) {
42
+ return component || children || null;
43
+ }
44
+ return null;
45
+ }
46
+ function withPermission(Component, permissionName, role) {
47
+ return function WithPermission(props) {
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Permission, {
49
+ permission: permissionName,
50
+ role: role,
51
+ children: hasPermission => /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, _objectSpread(_objectSpread({}, props), {}, {
52
+ hasPermission: hasPermission
53
+ }))
54
+ });
55
+ };
56
+ }
57
+ Permission.propTypes = {
58
+ permission: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
59
+ role: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
60
+ component: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.element]),
61
+ children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.element])
62
+ };
63
+ Permission.defaultProps = {
64
+ permission: '',
65
+ role: '',
66
+ component: null,
67
+ children: null
68
+ };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = RelativeTime;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _prettyMsI18n = _interopRequireDefault(require("pretty-ms-i18n"));
9
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
10
+ var _context = require("@arcblock/ux/lib/Locale/context");
11
+ var _util = require("./util");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function RelativeTime(_ref) {
15
+ let {
16
+ value
17
+ } = _ref;
18
+ const {
19
+ t,
20
+ locale
21
+ } = (0, _context.useLocaleContext)();
22
+ if (!value) {
23
+ return '-';
24
+ }
25
+ const prettyOption = {
26
+ locale: locale === 'zh' ? 'zh_CN' : 'zh_US',
27
+ compact: true
28
+ };
29
+ const valTime = new Date(value).getTime();
30
+ const now = Date.now();
31
+ if (valTime > now) {
32
+ const time = (0, _prettyMsI18n.default)(valTime - now, prettyOption);
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
34
+ title: (0, _util.formatToDatetime)(value),
35
+ placement: "top-end",
36
+ enterTouchDelay: 0,
37
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
38
+ children: t('common.afterTime', {
39
+ time
40
+ })
41
+ })
42
+ });
43
+ }
44
+ const time = (0, _prettyMsI18n.default)(now - valTime, prettyOption);
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
46
+ title: (0, _util.formatToDatetime)(value),
47
+ placement: "top-end",
48
+ enterTouchDelay: 0,
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
50
+ children: t('common.timeAgo', {
51
+ time
52
+ })
53
+ })
54
+ });
55
+ }
56
+ RelativeTime.propTypes = {
57
+ value: _propTypes.default.any
58
+ };
59
+ RelativeTime.defaultProps = {
60
+ value: ''
61
+ };