@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.
- package/lib/actions.js +109 -0
- package/lib/blocklet/actions.js +437 -0
- package/lib/blocklet/audit-logs.js +194 -0
- package/lib/blocklet/avatar.js +96 -0
- package/lib/blocklet/blocklet-source.js +56 -0
- package/lib/blocklet/component/configuration.js +124 -0
- package/lib/blocklet/component/delete.js +115 -0
- package/lib/blocklet/component/environment.js +277 -0
- package/lib/blocklet/component/index.js +742 -0
- package/lib/blocklet/component/setting.js +135 -0
- package/lib/blocklet/configuration.js +463 -0
- package/lib/blocklet/disk-info.js +89 -0
- package/lib/blocklet/icons.js +26 -0
- package/lib/blocklet/log.js +55 -0
- package/lib/blocklet/mode.js +33 -0
- package/lib/blocklet/overview.js +184 -0
- package/lib/blocklet/runtime-info.js +85 -0
- package/lib/blocklet/status.js +103 -0
- package/lib/blocklet/util.js +119 -0
- package/lib/blocklet/version.js +178 -0
- package/lib/card-selector.js +9 -22
- package/lib/click-to-copy.js +36 -0
- package/lib/confirm.js +149 -0
- package/lib/contexts/audit-log.js +141 -0
- package/lib/contexts/deleting-blocklets.js +78 -0
- package/lib/contexts/node.js +28 -0
- package/lib/contexts/session.js +20 -0
- package/lib/contexts/team.js +19 -0
- package/lib/did-address.js +75 -0
- package/lib/dot.js +18 -0
- package/lib/form/form-text-input.js +12 -38
- package/lib/form/form-wrapper.js +0 -7
- package/lib/form/required.js +0 -6
- package/lib/hooks/mobile-width.js +19 -0
- package/lib/hooks/use-passport-id.js +0 -5
- package/lib/icons/long-arrow.svg +5 -0
- package/lib/index.js +0 -3
- package/lib/invitation/invitation-app.js +3 -21
- package/lib/invitation/invitation-passport.js +2 -16
- package/lib/invitation/invitation-receive.js +2 -19
- package/lib/invitation/invitation-user.js +0 -16
- package/lib/invitation/invitation.js +0 -23
- package/lib/issue-passport.js +2 -31
- package/lib/launch-blocklet/content-layout.js +3 -19
- package/lib/launch-blocklet/page-header.js +0 -9
- package/lib/layout/addon.js +0 -24
- package/lib/locales/en.js +1046 -38
- package/lib/locales/index.js +0 -3
- package/lib/locales/zh.js +1049 -36
- package/lib/logs/clock.js +19 -0
- package/lib/logs/log-terminal.js +172 -0
- package/lib/lost-passport.js +6 -51
- package/lib/nav-logo.js +12 -33
- package/lib/passport-tag.js +41 -0
- package/lib/permission.js +68 -0
- package/lib/relative-time.js +61 -0
- package/lib/schema-form/color-input.js +2 -15
- package/lib/schema-form/common-prop-types.js +0 -3
- package/lib/schema-form/index.js +8 -45
- package/lib/schema-form/passport-input.js +6 -24
- package/lib/schema-form/text-input.js +9 -26
- package/lib/table-icons.js +42 -0
- package/lib/table.js +13 -0
- package/lib/tag.js +35 -0
- package/lib/team/members/actions.js +99 -0
- package/lib/team/members/index.js +476 -0
- package/lib/team/members/invitations.js +196 -0
- package/lib/team/members/invite-member.js +212 -0
- package/lib/team/members/issue-passport.js +155 -0
- package/lib/team/members/member.js +294 -0
- package/lib/team/members/passport-issuances.js +154 -0
- package/lib/team/members/passports.js +329 -0
- package/lib/team/members/toggle-user-approval.js +128 -0
- package/lib/team/members/transfer-node.js +262 -0
- package/lib/team/members/util.js +20 -0
- package/lib/team/passports/detail.js +261 -0
- package/lib/team/passports/index.js +220 -0
- package/lib/team/passports/mutate-role.js +204 -0
- package/lib/team/passports/trusted-issuer.js +295 -0
- package/lib/team/passports/trusted-issuers.js +238 -0
- package/lib/team/search-input.js +36 -0
- package/lib/team/styles/dialog.js +13 -0
- package/lib/team/styles/list-header.js +13 -0
- package/lib/toast.js +4 -19
- package/lib/util/index.js +504 -38
- package/lib/who-can-access/config.js +0 -6
- package/lib/wrap-locale.js +0 -7
- 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"])));
|
package/lib/lost-passport.js
CHANGED
|
@@ -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
|
-
}
|
|
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)();
|
|
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) {
|
|
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
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
};
|
|
105
|
+
};
|
|
125
106
|
|
|
107
|
+
// eslint-disable-next-line react/prop-types
|
|
126
108
|
function LogoImg(_ref2) {
|
|
127
109
|
let {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
+
};
|