@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.
Files changed (62) hide show
  1. package/lib/actions.js +137 -0
  2. package/lib/blocklet/actions.js +501 -0
  3. package/lib/blocklet/audit-logs.js +226 -0
  4. package/lib/blocklet/avatar.js +123 -0
  5. package/lib/blocklet/blocklet-source.js +69 -0
  6. package/lib/blocklet/component/configuration.js +150 -0
  7. package/lib/blocklet/component/delete.js +138 -0
  8. package/lib/blocklet/component/environment.js +334 -0
  9. package/lib/blocklet/component/index.js +837 -0
  10. package/lib/blocklet/component/setting.js +174 -0
  11. package/lib/blocklet/configuration.js +531 -0
  12. package/lib/blocklet/disk-info.js +115 -0
  13. package/lib/blocklet/icons.js +36 -0
  14. package/lib/blocklet/log.js +70 -0
  15. package/lib/blocklet/mode.js +47 -0
  16. package/lib/blocklet/overview.js +218 -0
  17. package/lib/blocklet/runtime-info.js +111 -0
  18. package/lib/blocklet/status.js +125 -0
  19. package/lib/blocklet/util.js +141 -0
  20. package/lib/blocklet/version.js +216 -0
  21. package/lib/click-to-copy.js +51 -0
  22. package/lib/confirm.js +175 -0
  23. package/lib/contexts/audit-log.js +155 -0
  24. package/lib/contexts/deleting-blocklets.js +91 -0
  25. package/lib/contexts/node.js +34 -0
  26. package/lib/contexts/session.js +22 -0
  27. package/lib/contexts/team.js +22 -0
  28. package/lib/did-address.js +95 -0
  29. package/lib/dot.js +25 -0
  30. package/lib/hooks/mobile-width.js +24 -0
  31. package/lib/icons/long-arrow.svg +5 -0
  32. package/lib/locales/en.js +1046 -38
  33. package/lib/locales/zh.js +1049 -36
  34. package/lib/logs/clock.js +25 -0
  35. package/lib/logs/log-terminal.js +198 -0
  36. package/lib/passport-tag.js +58 -0
  37. package/lib/permission.js +84 -0
  38. package/lib/relative-time.js +74 -0
  39. package/lib/table-icons.js +59 -0
  40. package/lib/table.js +19 -0
  41. package/lib/tag.js +48 -0
  42. package/lib/team/members/actions.js +115 -0
  43. package/lib/team/members/index.js +544 -0
  44. package/lib/team/members/invitations.js +229 -0
  45. package/lib/team/members/invite-member.js +241 -0
  46. package/lib/team/members/issue-passport.js +178 -0
  47. package/lib/team/members/member.js +336 -0
  48. package/lib/team/members/passport-issuances.js +181 -0
  49. package/lib/team/members/passports.js +377 -0
  50. package/lib/team/members/toggle-user-approval.js +154 -0
  51. package/lib/team/members/transfer-node.js +295 -0
  52. package/lib/team/members/util.js +27 -0
  53. package/lib/team/passports/detail.js +304 -0
  54. package/lib/team/passports/index.js +256 -0
  55. package/lib/team/passports/mutate-role.js +230 -0
  56. package/lib/team/passports/trusted-issuer.js +339 -0
  57. package/lib/team/passports/trusted-issuers.js +284 -0
  58. package/lib/team/search-input.js +51 -0
  59. package/lib/team/styles/dialog.js +19 -0
  60. package/lib/team/styles/list-header.js +19 -0
  61. package/lib/util/index.js +642 -6
  62. 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
+ };