@abtnode/ux 1.8.26 → 1.8.27
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 +137 -0
- package/lib/blocklet/actions.js +501 -0
- package/lib/blocklet/audit-logs.js +226 -0
- package/lib/blocklet/avatar.js +123 -0
- package/lib/blocklet/blocklet-source.js +69 -0
- package/lib/blocklet/component/configuration.js +150 -0
- package/lib/blocklet/component/delete.js +138 -0
- package/lib/blocklet/component/environment.js +334 -0
- package/lib/blocklet/component/index.js +837 -0
- package/lib/blocklet/component/setting.js +174 -0
- package/lib/blocklet/configuration.js +531 -0
- package/lib/blocklet/disk-info.js +115 -0
- package/lib/blocklet/icons.js +36 -0
- package/lib/blocklet/log.js +70 -0
- package/lib/blocklet/mode.js +47 -0
- package/lib/blocklet/overview.js +218 -0
- package/lib/blocklet/runtime-info.js +111 -0
- package/lib/blocklet/status.js +125 -0
- package/lib/blocklet/util.js +141 -0
- package/lib/blocklet/version.js +216 -0
- package/lib/click-to-copy.js +51 -0
- package/lib/confirm.js +175 -0
- package/lib/contexts/audit-log.js +155 -0
- package/lib/contexts/deleting-blocklets.js +91 -0
- package/lib/contexts/node.js +34 -0
- package/lib/contexts/session.js +22 -0
- package/lib/contexts/team.js +22 -0
- package/lib/did-address.js +95 -0
- package/lib/dot.js +25 -0
- package/lib/hooks/mobile-width.js +24 -0
- package/lib/icons/long-arrow.svg +5 -0
- package/lib/locales/en.js +1046 -38
- package/lib/locales/zh.js +1049 -36
- package/lib/logs/clock.js +25 -0
- package/lib/logs/log-terminal.js +198 -0
- package/lib/passport-tag.js +58 -0
- package/lib/permission.js +84 -0
- package/lib/relative-time.js +74 -0
- package/lib/table-icons.js +59 -0
- package/lib/table.js +19 -0
- package/lib/tag.js +48 -0
- package/lib/team/members/actions.js +115 -0
- package/lib/team/members/index.js +544 -0
- package/lib/team/members/invitations.js +229 -0
- package/lib/team/members/invite-member.js +241 -0
- package/lib/team/members/issue-passport.js +178 -0
- package/lib/team/members/member.js +336 -0
- package/lib/team/members/passport-issuances.js +181 -0
- package/lib/team/members/passports.js +377 -0
- package/lib/team/members/toggle-user-approval.js +154 -0
- package/lib/team/members/transfer-node.js +295 -0
- package/lib/team/members/util.js +27 -0
- package/lib/team/passports/detail.js +304 -0
- package/lib/team/passports/index.js +256 -0
- package/lib/team/passports/mutate-role.js +230 -0
- package/lib/team/passports/trusted-issuer.js +339 -0
- package/lib/team/passports/trusted-issuers.js +284 -0
- package/lib/team/search-input.js +51 -0
- package/lib/team/styles/dialog.js +19 -0
- package/lib/team/styles/list-header.js +19 -0
- package/lib/util/index.js +642 -6
- package/package.json +32 -9
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _useInterval = _interopRequireDefault(require("react-use/lib/useInterval"));
|
|
11
|
+
|
|
12
|
+
var _util = require("../util");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function Clock() {
|
|
17
|
+
const [currentTime, setCurrentTime] = (0, _react.useState)(+new Date());
|
|
18
|
+
(0, _useInterval.default)(() => {
|
|
19
|
+
setCurrentTime(+new Date());
|
|
20
|
+
}, 1000);
|
|
21
|
+
return (0, _util.formatTime)(currentTime, 'MMMM Do YYYY, h:mm:ss a');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var _default = Clock;
|
|
25
|
+
exports.default = _default;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LogTerminal = void 0;
|
|
7
|
+
exports.LogTerminalGroup = LogTerminalGroup;
|
|
8
|
+
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
|
|
11
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
12
|
+
|
|
13
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
|
+
|
|
15
|
+
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
16
|
+
|
|
17
|
+
var _ButtonGroup = _interopRequireDefault(require("@mui/material/ButtonGroup"));
|
|
18
|
+
|
|
19
|
+
var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
|
|
20
|
+
|
|
21
|
+
var _Terminal = _interopRequireDefault(require("@arcblock/terminal/lib/Terminal"));
|
|
22
|
+
|
|
23
|
+
var _clock = _interopRequireDefault(require("./clock"));
|
|
24
|
+
|
|
25
|
+
var _node = require("../contexts/node");
|
|
26
|
+
|
|
27
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
28
|
+
|
|
29
|
+
var _templateObject, _templateObject2;
|
|
30
|
+
|
|
31
|
+
const _excluded = ["name", "logId", "types", "initialData", "prepend"],
|
|
32
|
+
_excluded2 = ["logFile"];
|
|
33
|
+
|
|
34
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
+
|
|
36
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
37
|
+
|
|
38
|
+
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; }
|
|
39
|
+
|
|
40
|
+
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; }
|
|
41
|
+
|
|
42
|
+
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; }
|
|
43
|
+
|
|
44
|
+
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; }
|
|
45
|
+
|
|
46
|
+
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; }
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* 按 level/destination 分类的一组 terminal
|
|
50
|
+
*/
|
|
51
|
+
function LogTerminalGroup(_ref) {
|
|
52
|
+
let {
|
|
53
|
+
name,
|
|
54
|
+
logId,
|
|
55
|
+
types,
|
|
56
|
+
initialData,
|
|
57
|
+
prepend
|
|
58
|
+
} = _ref,
|
|
59
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
60
|
+
|
|
61
|
+
const {
|
|
62
|
+
ws: {
|
|
63
|
+
useSubscription
|
|
64
|
+
}
|
|
65
|
+
} = (0, _node.useNodeContext)();
|
|
66
|
+
const logTypeLabels = {
|
|
67
|
+
info: 'Info',
|
|
68
|
+
error: 'Error',
|
|
69
|
+
access: 'Access',
|
|
70
|
+
stdout: 'stdout',
|
|
71
|
+
stderr: 'stderr'
|
|
72
|
+
};
|
|
73
|
+
const isMobile = (0, _useMediaQuery.default)(theme => theme.breakpoints.down('md'));
|
|
74
|
+
const [currentType, setCurrentType] = (0, _react.useState)(types[0]);
|
|
75
|
+
const [logFiles, setLogFiles] = (0, _react.useState)();
|
|
76
|
+
const terminalRefs = (0, _react.useRef)({}); // 组件挂载时, 写入初始数据
|
|
77
|
+
|
|
78
|
+
(0, _react.useEffect)(() => {
|
|
79
|
+
types.forEach(type => {
|
|
80
|
+
const terminal = terminalRefs.current[type];
|
|
81
|
+
|
|
82
|
+
if (terminal) {
|
|
83
|
+
terminal.write("Collecting ".concat(type, " logs for ").concat(name, "..."));
|
|
84
|
+
terminal.write('\r\n\r\n');
|
|
85
|
+
initialData.forEach(item => terminal.write(item));
|
|
86
|
+
}
|
|
87
|
+
}); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
88
|
+
}, []); // 监听 log 数据, 写入 terminal
|
|
89
|
+
|
|
90
|
+
useSubscription("log.".concat(logId), log => {
|
|
91
|
+
if (!logFiles) {
|
|
92
|
+
setLogFiles(log.logFiles || {});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const terminal = terminalRefs.current[log.level];
|
|
96
|
+
|
|
97
|
+
if (terminal) {
|
|
98
|
+
terminal.write(log.data.replace(/.\n/g, p => p === '\r\n' ? p : "".concat(p[0], "\r\n\r\n")));
|
|
99
|
+
terminal.write('\r\n\r\n');
|
|
100
|
+
}
|
|
101
|
+
}, []);
|
|
102
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(LogTerminalGroupRoot, _objectSpread(_objectSpread({}, rest), {}, {
|
|
103
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
104
|
+
className: "log-terminal-group-head",
|
|
105
|
+
children: [prepend, /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonGroup.default, {
|
|
106
|
+
variant: "outlined",
|
|
107
|
+
size: isMobile ? 'small' : 'medium',
|
|
108
|
+
children: types.map(type => {
|
|
109
|
+
const props = type === currentType ? {
|
|
110
|
+
variant: 'contained'
|
|
111
|
+
} : {};
|
|
112
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, _objectSpread(_objectSpread({}, props), {}, {
|
|
113
|
+
onClick: () => setCurrentType(type),
|
|
114
|
+
children: logTypeLabels[type]
|
|
115
|
+
}), type);
|
|
116
|
+
})
|
|
117
|
+
})]
|
|
118
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
119
|
+
className: "log-terminal-group-terminals",
|
|
120
|
+
children: types.map(type => {
|
|
121
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(LogTerminal, {
|
|
122
|
+
ref: _ref2 => {
|
|
123
|
+
terminalRefs.current[type] = _ref2;
|
|
124
|
+
},
|
|
125
|
+
logFile: logFiles === null || logFiles === void 0 ? void 0 : logFiles[type],
|
|
126
|
+
style: {
|
|
127
|
+
visibility: type === currentType ? 'visible' : 'hidden'
|
|
128
|
+
}
|
|
129
|
+
}, type);
|
|
130
|
+
})
|
|
131
|
+
})]
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
LogTerminalGroup.propTypes = {
|
|
136
|
+
// log name, 比如: blocklet display name
|
|
137
|
+
name: _propTypes.default.string.isRequired,
|
|
138
|
+
// 比如: abtnode | blocklet-services | blocklet-<did>
|
|
139
|
+
logId: _propTypes.default.string.isRequired,
|
|
140
|
+
// 日志类型, info/error 或 stdin/stdout/access
|
|
141
|
+
types: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
142
|
+
// 写入 terminal 的初始数据
|
|
143
|
+
initialData: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
144
|
+
prepend: _propTypes.default.node
|
|
145
|
+
};
|
|
146
|
+
LogTerminalGroup.defaultProps = {
|
|
147
|
+
types: ['error', 'info', 'access', 'stdout', 'stderr'],
|
|
148
|
+
initialData: [],
|
|
149
|
+
prepend: null
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
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'));
|
|
153
|
+
|
|
154
|
+
const LogTerminal = /*#__PURE__*/(0, _react.forwardRef)((_ref3, ref) => {
|
|
155
|
+
let {
|
|
156
|
+
logFile
|
|
157
|
+
} = _ref3,
|
|
158
|
+
rest = _objectWithoutProperties(_ref3, _excluded2);
|
|
159
|
+
|
|
160
|
+
const terminalStyle = {
|
|
161
|
+
width: '100%',
|
|
162
|
+
boxSizing: 'border-box',
|
|
163
|
+
height: '100%'
|
|
164
|
+
};
|
|
165
|
+
const terminalOptions = {
|
|
166
|
+
theme: {
|
|
167
|
+
background: '#2C313C',
|
|
168
|
+
foreground: '#EEEEEE'
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(LogTerminalRoot, _objectSpread(_objectSpread({}, rest), {}, {
|
|
172
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
173
|
+
className: "log-terminal-top",
|
|
174
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_clock.default, {}), logFile && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
175
|
+
children: logFile
|
|
176
|
+
})]
|
|
177
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
178
|
+
className: "log-terminal-container",
|
|
179
|
+
style: {
|
|
180
|
+
position: 'relative'
|
|
181
|
+
},
|
|
182
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Terminal.default, {
|
|
183
|
+
ref: ref,
|
|
184
|
+
style: terminalStyle,
|
|
185
|
+
options: terminalOptions
|
|
186
|
+
})
|
|
187
|
+
})]
|
|
188
|
+
}));
|
|
189
|
+
});
|
|
190
|
+
exports.LogTerminal = LogTerminal;
|
|
191
|
+
LogTerminal.propTypes = {
|
|
192
|
+
logFile: _propTypes.default.string
|
|
193
|
+
};
|
|
194
|
+
LogTerminal.defaultProps = {
|
|
195
|
+
logFile: ''
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
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"])));
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PassportTag;
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
+
|
|
12
|
+
var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
var _templateObject;
|
|
17
|
+
|
|
18
|
+
const _excluded = ["passport", "onDelete"];
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
function PassportTag(props) {
|
|
35
|
+
const {
|
|
36
|
+
passport,
|
|
37
|
+
onDelete
|
|
38
|
+
} = props,
|
|
39
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
40
|
+
|
|
41
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Tag, _objectSpread(_objectSpread({}, rest), {}, {
|
|
42
|
+
children: [passport.title || passport.name, ' ', !!onDelete && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {
|
|
43
|
+
"data-cy": "delete-issuance",
|
|
44
|
+
className: "delete",
|
|
45
|
+
onClick: onDelete
|
|
46
|
+
})]
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
PassportTag.propTypes = {
|
|
51
|
+
passport: _propTypes.default.object.isRequired,
|
|
52
|
+
onDelete: _propTypes.default.func
|
|
53
|
+
};
|
|
54
|
+
PassportTag.defaultProps = {
|
|
55
|
+
onDelete: null
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
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,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = Permission;
|
|
7
|
+
exports.withPermission = withPermission;
|
|
8
|
+
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
|
|
11
|
+
var _session = require("./contexts/session");
|
|
12
|
+
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
|
|
17
|
+
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; }
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
|
|
23
|
+
function Permission(_ref) {
|
|
24
|
+
let {
|
|
25
|
+
permission,
|
|
26
|
+
role,
|
|
27
|
+
component,
|
|
28
|
+
children
|
|
29
|
+
} = _ref;
|
|
30
|
+
const {
|
|
31
|
+
session
|
|
32
|
+
} = (0, _session.useSessionContext)();
|
|
33
|
+
let can = true;
|
|
34
|
+
const permissions = [].concat(permission).filter(Boolean);
|
|
35
|
+
const roles = [].concat(role).filter(Boolean);
|
|
36
|
+
|
|
37
|
+
if (permissions.length) {
|
|
38
|
+
const userPermissions = session.user && session.user.permissions || [];
|
|
39
|
+
can = permissions.some(p => userPermissions.includes(p));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (can && roles.length) {
|
|
43
|
+
can = roles.includes(session.user.role);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (typeof component === 'function') {
|
|
47
|
+
return component(can);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (typeof children === 'function') {
|
|
51
|
+
return children(can);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (can) {
|
|
55
|
+
return component || children || null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function withPermission(Component, permissionName, role) {
|
|
62
|
+
return function WithPermission(props) {
|
|
63
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Permission, {
|
|
64
|
+
permission: permissionName,
|
|
65
|
+
role: role,
|
|
66
|
+
children: hasPermission => /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, _objectSpread(_objectSpread({}, props), {}, {
|
|
67
|
+
hasPermission: hasPermission
|
|
68
|
+
}))
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
Permission.propTypes = {
|
|
74
|
+
permission: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
75
|
+
role: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
76
|
+
component: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.element]),
|
|
77
|
+
children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.element])
|
|
78
|
+
};
|
|
79
|
+
Permission.defaultProps = {
|
|
80
|
+
permission: '',
|
|
81
|
+
role: '',
|
|
82
|
+
component: null,
|
|
83
|
+
children: null
|
|
84
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = RelativeTime;
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
var _prettyMsI18n = _interopRequireDefault(require("pretty-ms-i18n"));
|
|
11
|
+
|
|
12
|
+
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
|
13
|
+
|
|
14
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
15
|
+
|
|
16
|
+
var _util = require("./util");
|
|
17
|
+
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function RelativeTime(_ref) {
|
|
23
|
+
let {
|
|
24
|
+
value
|
|
25
|
+
} = _ref;
|
|
26
|
+
const {
|
|
27
|
+
t,
|
|
28
|
+
locale
|
|
29
|
+
} = (0, _context.useLocaleContext)();
|
|
30
|
+
|
|
31
|
+
if (!value) {
|
|
32
|
+
return '-';
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const prettyOption = {
|
|
36
|
+
locale: locale === 'zh' ? 'zh_CN' : 'zh_US',
|
|
37
|
+
compact: true
|
|
38
|
+
};
|
|
39
|
+
const valTime = new Date(value).getTime();
|
|
40
|
+
const now = Date.now();
|
|
41
|
+
|
|
42
|
+
if (valTime > now) {
|
|
43
|
+
const time = (0, _prettyMsI18n.default)(valTime - now, prettyOption);
|
|
44
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
45
|
+
title: (0, _util.formatToDatetime)(value),
|
|
46
|
+
placement: "top-end",
|
|
47
|
+
enterTouchDelay: 0,
|
|
48
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
49
|
+
children: t('common.afterTime', {
|
|
50
|
+
time
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const time = (0, _prettyMsI18n.default)(now - valTime, prettyOption);
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
58
|
+
title: (0, _util.formatToDatetime)(value),
|
|
59
|
+
placement: "top-end",
|
|
60
|
+
enterTouchDelay: 0,
|
|
61
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
62
|
+
children: t('common.timeAgo', {
|
|
63
|
+
time
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
RelativeTime.propTypes = {
|
|
70
|
+
value: _propTypes.default.any
|
|
71
|
+
};
|
|
72
|
+
RelativeTime.defaultProps = {
|
|
73
|
+
value: ''
|
|
74
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _Add = _interopRequireDefault(require("@mui/icons-material/Add"));
|
|
9
|
+
|
|
10
|
+
var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
|
|
11
|
+
|
|
12
|
+
var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
|
|
13
|
+
|
|
14
|
+
var _Clear = _interopRequireDefault(require("@mui/icons-material/Clear"));
|
|
15
|
+
|
|
16
|
+
var _SaveAlt = _interopRequireDefault(require("@mui/icons-material/SaveAlt"));
|
|
17
|
+
|
|
18
|
+
var _Edit = _interopRequireDefault(require("@mui/icons-material/Edit"));
|
|
19
|
+
|
|
20
|
+
var _Filter = _interopRequireDefault(require("@mui/icons-material/Filter"));
|
|
21
|
+
|
|
22
|
+
var _FirstPage = _interopRequireDefault(require("@mui/icons-material/FirstPage"));
|
|
23
|
+
|
|
24
|
+
var _LastPage = _interopRequireDefault(require("@mui/icons-material/LastPage"));
|
|
25
|
+
|
|
26
|
+
var _ChevronRight = _interopRequireDefault(require("@mui/icons-material/ChevronRight"));
|
|
27
|
+
|
|
28
|
+
var _ChevronLeft = _interopRequireDefault(require("@mui/icons-material/ChevronLeft"));
|
|
29
|
+
|
|
30
|
+
var _Search = _interopRequireDefault(require("@mui/icons-material/Search"));
|
|
31
|
+
|
|
32
|
+
var _ArrowDropDown = _interopRequireDefault(require("@mui/icons-material/ArrowDropDown"));
|
|
33
|
+
|
|
34
|
+
var _Remove = _interopRequireDefault(require("@mui/icons-material/Remove"));
|
|
35
|
+
|
|
36
|
+
var _ViewColumn = _interopRequireDefault(require("@mui/icons-material/ViewColumn"));
|
|
37
|
+
|
|
38
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
|
+
|
|
40
|
+
var _default = {
|
|
41
|
+
Add: _Add.default,
|
|
42
|
+
Check: _Check.default,
|
|
43
|
+
Delete: _Delete.default,
|
|
44
|
+
Edit: _Edit.default,
|
|
45
|
+
Clear: _Clear.default,
|
|
46
|
+
DetailPanel: _ChevronRight.default,
|
|
47
|
+
Filter: _Filter.default,
|
|
48
|
+
FirstPage: _FirstPage.default,
|
|
49
|
+
LastPage: _LastPage.default,
|
|
50
|
+
NextPage: _ChevronRight.default,
|
|
51
|
+
PreviousPage: _ChevronLeft.default,
|
|
52
|
+
Search: _Search.default,
|
|
53
|
+
ResetSearch: _Clear.default,
|
|
54
|
+
SortArrow: _ArrowDropDown.default,
|
|
55
|
+
Export: _SaveAlt.default,
|
|
56
|
+
ThirdStateCheck: _Remove.default,
|
|
57
|
+
ViewColumn: _ViewColumn.default
|
|
58
|
+
};
|
|
59
|
+
exports.default = _default;
|
package/lib/table.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
9
|
+
|
|
10
|
+
var _templateObject;
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
15
|
+
|
|
16
|
+
const TableStyle = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .MuiPaper-root {\n box-shadow: none !important;\n border: none !important;\n border-radius: 0 !important;\n background: transparent;\n }\n .MuiToolbar-root {\n background: transparent;\n padding-left: 0;\n display: none;\n }\n\n &.show-pagination {\n .MuiTablePagination-toolbar {\n display: flex;\n }\n }\n\n .MuiTableHead-root th {\n min-width: 100px;\n background: transparent;\n }\n\n .MuiTable-root {\n overflow-y: hidden;\n }\n .MuiTableRow-root {\n border: none !important;\n }\n\n .MuiTableCell-root {\n padding-right: 16px;\n &:last-of-type {\n padding-right: 0;\n }\n }\n\n /* @material-table/core@next \u517C\u5BB9 mui v5, \u4F46 pagination \u6837\u5F0F\u4F3C\u4E4E\u6709\u4E9B\u95EE\u9898, \u6682\u5730\u5B9A\u5236\u4E0B\u9762\u7684\u6837\u5F0F\u4FEE\u590D, \u540E\u9762\u8003\u8651\u5F03\u7528 material-table */\n .MuiTablePagination-selectLabel,\n .MuiTablePagination-displayedRows {\n display: none;\n }\n .MuiTypography-caption {\n display: inline-block;\n }\n .MuiTablePagination-selectLabel + .MuiInputBase-root {\n margin-right: 8px;\n }\n"])));
|
|
17
|
+
|
|
18
|
+
var _default = TableStyle;
|
|
19
|
+
exports.default = _default;
|
package/lib/tag.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = Wrapped;
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
|
|
11
|
+
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
|
|
14
|
+
const _excluded = ["children", "style"];
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
+
|
|
22
|
+
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; }
|
|
23
|
+
|
|
24
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
25
|
+
|
|
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
|
+
|
|
28
|
+
function Wrapped(_ref) {
|
|
29
|
+
let {
|
|
30
|
+
children,
|
|
31
|
+
style
|
|
32
|
+
} = _ref,
|
|
33
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
34
|
+
|
|
35
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, _objectSpread(_objectSpread({
|
|
36
|
+
style: style
|
|
37
|
+
}, rest), {}, {
|
|
38
|
+
children: children
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
Wrapped.propTypes = {
|
|
43
|
+
children: _propTypes.default.any.isRequired,
|
|
44
|
+
style: _propTypes.default.object
|
|
45
|
+
};
|
|
46
|
+
Wrapped.defaultProps = {
|
|
47
|
+
style: {}
|
|
48
|
+
};
|