@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,229 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Invitations;
7
+
8
+ var _react = require("react");
9
+
10
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
11
+
12
+ var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
13
+
14
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
15
+
16
+ var _context = require("@arcblock/ux/lib/Locale/context");
17
+
18
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
19
+
20
+ var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
21
+
22
+ var _Datatable = _interopRequireDefault(require("@arcblock/ux/lib/Datatable"));
23
+
24
+ var _RelativeTime = _interopRequireDefault(require("@arcblock/ux/lib/RelativeTime"));
25
+
26
+ var _node = require("../../contexts/node");
27
+
28
+ var _team = require("../../contexts/team");
29
+
30
+ var _confirm = _interopRequireDefault(require("../../confirm"));
31
+
32
+ var _permission = _interopRequireDefault(require("../../permission"));
33
+
34
+ var _clickToCopy = _interopRequireDefault(require("../../click-to-copy"));
35
+
36
+ var _util = require("../../util");
37
+
38
+ var _jsxRuntime = require("react/jsx-runtime");
39
+
40
+ var _templateObject;
41
+
42
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
+
44
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
45
+
46
+ function Invitations() {
47
+ const {
48
+ api: client,
49
+ inService
50
+ } = (0, _node.useNodeContext)();
51
+ const {
52
+ t,
53
+ locale
54
+ } = (0, _react.useContext)(_context.LocaleContext);
55
+ const {
56
+ teamDid,
57
+ invitations,
58
+ refresh,
59
+ endpoint
60
+ } = (0, _team.useTeamContext)();
61
+ const [delConfirm, setDelConfirm] = (0, _react.useState)(null);
62
+ const [loading, setLoading] = (0, _react.useState)(false);
63
+
64
+ const deleteInvitation = async _ref => {
65
+ let {
66
+ inviteId
67
+ } = _ref;
68
+
69
+ if (loading) {
70
+ return;
71
+ }
72
+
73
+ setLoading(true);
74
+
75
+ try {
76
+ await client.deleteInvitation({
77
+ input: {
78
+ teamDid,
79
+ inviteId
80
+ }
81
+ });
82
+ refresh();
83
+ await (0, _util.sleep)(800);
84
+ } catch (error) {
85
+ console.error(error);
86
+ } finally {
87
+ setLoading(false);
88
+ setDelConfirm(null);
89
+ }
90
+ };
91
+
92
+ const onCancel = () => {
93
+ setLoading(false);
94
+ setDelConfirm(null);
95
+ };
96
+
97
+ const getLink = column => {
98
+ if (!endpoint) {
99
+ return '';
100
+ }
101
+
102
+ return (0, _util.getInviteLink)({
103
+ inviteId: column.inviteId,
104
+ endpoint
105
+ });
106
+ };
107
+
108
+ const columns = [{
109
+ label: t('team.inviting.link'),
110
+ name: 'inviteId',
111
+ options: {
112
+ sort: false,
113
+ customBodyRenderLite: rawIndex => {
114
+ const d = invitations[rawIndex];
115
+
116
+ if (!endpoint) {
117
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
118
+ size: 16
119
+ });
120
+ }
121
+
122
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_clickToCopy.default, {
123
+ children: getLink(d)
124
+ });
125
+ }
126
+ }
127
+ }, {
128
+ label: t('common.role'),
129
+ name: 'role',
130
+ widtn: 70
131
+ }, {
132
+ label: t('common.remark'),
133
+ name: 'remark',
134
+ options: {
135
+ customBodyRender: e => {
136
+ return e || '--';
137
+ }
138
+ }
139
+ }, {
140
+ label: t('team.inviting.inviter'),
141
+ name: 'inviter.fullName',
142
+ options: {
143
+ sort: false,
144
+ customBodyRender: (e, _ref2) => {
145
+ var _d$inviter;
146
+
147
+ let {
148
+ rowIndex
149
+ } = _ref2;
150
+ const d = invitations[rowIndex];
151
+ return d === null || d === void 0 ? void 0 : (_d$inviter = d.inviter) === null || _d$inviter === void 0 ? void 0 : _d$inviter.fullName;
152
+ }
153
+ }
154
+ }, {
155
+ label: t('common.expires'),
156
+ name: 'expireDate',
157
+ options: {
158
+ customBodyRender: e => {
159
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_RelativeTime.default, {
160
+ value: e,
161
+ locale: locale
162
+ });
163
+ }
164
+ }
165
+ }, {
166
+ label: t('common.actions'),
167
+ name: '',
168
+ width: 100,
169
+ align: 'center',
170
+ options: {
171
+ sort: false,
172
+ customBodyRenderLite: rawIndex => {
173
+ const item = invitations[rawIndex];
174
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {
175
+ permission: inService ? '' : 'mutate_team',
176
+ role: inService ? _util.BlockletAdminRoles : [],
177
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
178
+ onClick: () => setDelConfirm({
179
+ title: t('team.inviting.delete.title'),
180
+ description: t('team.inviting.delete.description', {
181
+ link: getLink(item)
182
+ }),
183
+ confirm: t('common.delConfirm'),
184
+ cancel: t('common.cancel'),
185
+ onConfirm: () => deleteInvitation(item),
186
+ onCancel
187
+ }),
188
+ size: "small",
189
+ color: "error",
190
+ variant: "text",
191
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {
192
+ style: {
193
+ fontSize: '1.2em'
194
+ }
195
+ }), t('common.delete')]
196
+ })
197
+ });
198
+ }
199
+ }
200
+ }];
201
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, {
202
+ children: [invitations.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Datatable.default, {
203
+ locale: locale,
204
+ data: [...invitations],
205
+ columns: columns,
206
+ verticalKeyWidth: 100,
207
+ options: {
208
+ download: false,
209
+ filter: false,
210
+ print: false
211
+ }
212
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {
213
+ children: t('common.empty')
214
+ }), delConfirm && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
215
+ title: delConfirm.title,
216
+ description: delConfirm.description,
217
+ confirm: delConfirm.confirm,
218
+ cancel: delConfirm.cancel,
219
+ params: delConfirm.params,
220
+ onConfirm: delConfirm.onConfirm,
221
+ onCancel: delConfirm.onCancel
222
+ })]
223
+ });
224
+ }
225
+
226
+ const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n margin-top: -20px;\n"])));
227
+
228
+ Invitations.propTypes = {};
229
+ Invitations.defaultProps = {};
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = InviteMember;
7
+
8
+ var _react = require("react");
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
13
+
14
+ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
15
+
16
+ var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
17
+
18
+ var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
19
+
20
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
21
+
22
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
23
+
24
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
25
+
26
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
27
+
28
+ var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
29
+
30
+ var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
31
+
32
+ var _context = require("@arcblock/ux/lib/Locale/context");
33
+
34
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
35
+
36
+ var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
37
+
38
+ var _clickToCopy = _interopRequireDefault(require("../../click-to-copy"));
39
+
40
+ var _node = require("../../contexts/node");
41
+
42
+ var _util = require("../../util");
43
+
44
+ var _jsxRuntime = require("react/jsx-runtime");
45
+
46
+ var _templateObject;
47
+
48
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
49
+
50
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
51
+
52
+ function InviteMember(_ref) {
53
+ let {
54
+ teamDid,
55
+ roles,
56
+ onCancel,
57
+ onSuccess,
58
+ onError,
59
+ endpoint
60
+ } = _ref;
61
+ const {
62
+ api
63
+ } = (0, _node.useNodeContext)();
64
+ const [loading, setLoading] = (0, _react.useState)(false);
65
+ const [error, setError] = (0, _react.useState)('');
66
+ const {
67
+ t
68
+ } = (0, _context.useLocaleContext)();
69
+ const [activeStep, setActiveStep] = (0, _react.useState)(0);
70
+ const [inviteInfo, setInviteInfo] = (0, _react.useState)('');
71
+ const [role, setRole] = (0, _react.useState)('');
72
+ const [remark, setRemark] = (0, _react.useState)('');
73
+
74
+ const onCreate = async () => {
75
+ if (!role) {
76
+ setError(t('team.member.error.passportEmpty'));
77
+ return;
78
+ }
79
+
80
+ const trimRemark = remark.trim();
81
+ setError(null);
82
+ setLoading(true);
83
+
84
+ try {
85
+ const {
86
+ inviteInfo: info
87
+ } = await api.createMemberInvitation({
88
+ input: {
89
+ teamDid,
90
+ role,
91
+ remark: trimRemark
92
+ }
93
+ });
94
+ setInviteInfo(info);
95
+ setActiveStep(1);
96
+ } catch (err) {
97
+ const errMsg = (0, _util.formatError)(err);
98
+ setError(errMsg);
99
+ onError(err);
100
+ } finally {
101
+ setLoading(false);
102
+ }
103
+ };
104
+
105
+ const steps = [{
106
+ body: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
107
+ component: "div",
108
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_FormControl.default, {
109
+ style: {
110
+ width: '100%'
111
+ },
112
+ variant: "outlined",
113
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, {
114
+ children: t('common.passport')
115
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, {
116
+ "data-cy": "invite-member-select-role",
117
+ value: role,
118
+ onChange: e => {
119
+ setError(null);
120
+ setRole(e.target.value);
121
+ },
122
+ fullWidth: true,
123
+ label: t('common.passport'),
124
+ disabled: loading,
125
+ onKeyPress: e => {
126
+ if (e.key === 'Enter') {
127
+ e.preventDefault();
128
+ onCreate();
129
+ }
130
+ },
131
+ children: roles.filter(d => d.name !== 'owner').map(r => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
132
+ value: r.name,
133
+ "data-cy": "invite-member-select-option-".concat(r.name),
134
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
135
+ children: r.title || r.name
136
+ })
137
+ }, r.name))
138
+ })]
139
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
140
+ style: {
141
+ marginTop: 20,
142
+ marginBottom: 10
143
+ }
144
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
145
+ label: t('common.remark'),
146
+ autoComplete: "off",
147
+ variant: "outlined",
148
+ fullWidth: true,
149
+ style: {
150
+ marginBottom: 8
151
+ },
152
+ value: remark,
153
+ onChange: e => {
154
+ setError(null);
155
+ setRemark(e.target.value);
156
+ },
157
+ disabled: loading,
158
+ "data-cy": "invite-member-input-remark"
159
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
160
+ style: {
161
+ marginTop: 20,
162
+ marginBottom: 10
163
+ }
164
+ })]
165
+ }),
166
+ cancel: t('common.cancel'),
167
+ confirm: t('team.member.inviteDialog.createInviteLink'),
168
+ onCancel,
169
+ onConfirm: onCreate
170
+ }, {
171
+ // eslint-disable-next-line react/no-unstable-nested-components
172
+ body: () => {
173
+ const link = (0, _util.getInviteLink)({
174
+ inviteId: inviteInfo.inviteId,
175
+ endpoint
176
+ });
177
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
178
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Bold, {
179
+ children: t('team.member.inviteDialog.createSuccessTip', {
180
+ expireDate: (0, _util.formatToDatetime)(inviteInfo.expireDate)
181
+ })
182
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
183
+ style: {
184
+ marginTop: '40px'
185
+ }
186
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_clickToCopy.default, {
187
+ children: link
188
+ })]
189
+ });
190
+ },
191
+ confirm: t('common.confirm'),
192
+ onConfirm: onSuccess
193
+ }];
194
+ const step = steps[activeStep];
195
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog.default, {
196
+ title: t('common.invite'),
197
+ fullWidth: true,
198
+ open: true,
199
+ showCloseButton: false,
200
+ actions: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
201
+ children: [step.cancel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
202
+ onClick: step.onCancel,
203
+ color: "inherit",
204
+ children: step.cancel
205
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
206
+ onClick: step.onConfirm,
207
+ color: "primary",
208
+ disabled: loading || !role,
209
+ variant: "contained",
210
+ autoFocus: true,
211
+ children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
212
+ size: [16, 10]
213
+ }), step.confirm]
214
+ })]
215
+ }),
216
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContentText.default, {
217
+ component: "div",
218
+ children: typeof step.body === 'function' ? step.body() : step.body
219
+ }), !!error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
220
+ type: "error",
221
+ variant: "icon",
222
+ children: error
223
+ })]
224
+ });
225
+ }
226
+
227
+ InviteMember.propTypes = {
228
+ teamDid: _propTypes.default.string.isRequired,
229
+ onCancel: _propTypes.default.func.isRequired,
230
+ onSuccess: _propTypes.default.func.isRequired,
231
+ onError: _propTypes.default.func,
232
+ roles: _propTypes.default.array,
233
+ endpoint: _propTypes.default.string
234
+ };
235
+ InviteMember.defaultProps = {
236
+ onError: () => {},
237
+ roles: [],
238
+ endpoint: ''
239
+ };
240
+
241
+ const Bold = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n font-size: 16px;\n font-weight: bold;\n"])));
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = IssuePassport;
7
+
8
+ var _react = require("react");
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
13
+
14
+ var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
15
+
16
+ var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
17
+
18
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
19
+
20
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
21
+
22
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
23
+
24
+ var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
25
+
26
+ var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
27
+
28
+ var _context = require("@arcblock/ux/lib/Locale/context");
29
+
30
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
31
+
32
+ var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
33
+
34
+ var _node = require("../../contexts/node");
35
+
36
+ var _util = require("../../util");
37
+
38
+ var _jsxRuntime = require("react/jsx-runtime");
39
+
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
+
42
+ function IssuePassport(_ref) {
43
+ let {
44
+ teamDid,
45
+ ownerDid,
46
+ roles,
47
+ onCancel,
48
+ onSuccess,
49
+ onError,
50
+ showOwnerPassport
51
+ } = _ref;
52
+ const {
53
+ api
54
+ } = (0, _node.useNodeContext)();
55
+ const [loading, setLoading] = (0, _react.useState)(false);
56
+ const [error, setError] = (0, _react.useState)('');
57
+ const {
58
+ t
59
+ } = (0, _context.useLocaleContext)();
60
+ const [role, setRole] = (0, _react.useState)('');
61
+
62
+ const onCreate = async () => {
63
+ if (!role) {
64
+ setError(t('team.member.error.passportEmpty'));
65
+ return;
66
+ }
67
+
68
+ setError(null);
69
+ setLoading(true);
70
+
71
+ try {
72
+ await api.createPassportIssuance({
73
+ input: {
74
+ teamDid,
75
+ name: role,
76
+ ownerDid
77
+ }
78
+ });
79
+ onSuccess();
80
+ } catch (err) {
81
+ const errMsg = (0, _util.formatError)(err);
82
+ setError(errMsg);
83
+ onError(err);
84
+ } finally {
85
+ setLoading(false);
86
+ }
87
+ };
88
+
89
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog.default, {
90
+ title: t('team.passport.issue'),
91
+ fullWidth: true,
92
+ open: true,
93
+ onClick: e => e.stopPropagation(),
94
+ onClose: onCancel,
95
+ disableEscapeKeyDown: true,
96
+ PaperProps: {
97
+ style: {
98
+ minHeight: 'auto'
99
+ }
100
+ },
101
+ actions: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
102
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
103
+ onClick: onCancel,
104
+ color: "inherit",
105
+ size: "small",
106
+ children: t('common.cancel')
107
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
108
+ onClick: onCreate,
109
+ color: "primary",
110
+ size: "small",
111
+ disabled: loading || !role,
112
+ variant: "contained",
113
+ autoFocus: true,
114
+ "data-cy": "issue-passport-create-btn",
115
+ children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
116
+ size: [16, 10]
117
+ }), t('team.passport.issuance.create.title')]
118
+ })]
119
+ }),
120
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContentText.default, {
121
+ component: "div",
122
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
123
+ component: "div",
124
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_FormControl.default, {
125
+ style: {
126
+ width: '100%'
127
+ },
128
+ variant: "outlined",
129
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, {
130
+ children: t('common.passport')
131
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, {
132
+ "data-cy": "issue-passport-select-passport",
133
+ value: role,
134
+ onChange: e => {
135
+ setError(null);
136
+ setRole(e.target.value);
137
+ },
138
+ fullWidth: true,
139
+ label: t('common.passport'),
140
+ disabled: loading,
141
+ onKeyPress: e => {
142
+ if (e.key === 'Enter') {
143
+ e.preventDefault();
144
+ onCreate();
145
+ }
146
+ },
147
+ children: roles.filter(d => showOwnerPassport || d.name !== 'owner').map(r => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
148
+ value: r.name,
149
+ "data-cy": "issue-passport-select-option-".concat(r.name),
150
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
151
+ children: r.title || r.name
152
+ })
153
+ }, r.name))
154
+ })]
155
+ })
156
+ })
157
+ }), !!error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
158
+ type: "error",
159
+ variant: "icon",
160
+ children: error
161
+ })]
162
+ });
163
+ }
164
+
165
+ IssuePassport.propTypes = {
166
+ teamDid: _propTypes.default.string.isRequired,
167
+ ownerDid: _propTypes.default.string.isRequired,
168
+ onCancel: _propTypes.default.func.isRequired,
169
+ onSuccess: _propTypes.default.func.isRequired,
170
+ onError: _propTypes.default.func,
171
+ roles: _propTypes.default.array,
172
+ showOwnerPassport: _propTypes.default.bool
173
+ };
174
+ IssuePassport.defaultProps = {
175
+ onError: () => {},
176
+ roles: [],
177
+ showOwnerPassport: false
178
+ };