@abtnode/ux 1.15.17 → 1.16.0-beta-8ee536d7

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 (154) hide show
  1. package/lib/actions.js +111 -0
  2. package/lib/blocklet/access/config-access.js +303 -0
  3. package/lib/blocklet/access/index.js +221 -0
  4. package/lib/blocklet/actions.js +438 -0
  5. package/lib/blocklet/add-cert.js +191 -0
  6. package/lib/blocklet/agreement-app.js +30 -0
  7. package/lib/blocklet/agreement.js +72 -0
  8. package/lib/blocklet/app-avatar.js +74 -0
  9. package/lib/blocklet/audit-logs.js +197 -0
  10. package/lib/blocklet/blocklet-source.js +56 -0
  11. package/lib/blocklet/bundle-avatar.js +80 -0
  12. package/lib/blocklet/component/add.js +1063 -0
  13. package/lib/blocklet/component/configuration.js +124 -0
  14. package/lib/blocklet/component/delete.js +117 -0
  15. package/lib/blocklet/component/environment.js +289 -0
  16. package/lib/blocklet/component/expiration.js +53 -0
  17. package/lib/blocklet/component/index.js +804 -0
  18. package/lib/blocklet/component/line.js +28 -0
  19. package/lib/blocklet/component/navigation/locale-tabs.js +218 -0
  20. package/lib/blocklet/component/navigation/navigation-actions.js +120 -0
  21. package/lib/blocklet/component/navigation/navigation-dialog.js +620 -0
  22. package/lib/blocklet/component/navigation/navigation-preview.js +102 -0
  23. package/lib/blocklet/component/navigation/simple-select.js +131 -0
  24. package/lib/blocklet/component/select-store.js +153 -0
  25. package/lib/blocklet/component/setting.js +151 -0
  26. package/lib/blocklet/component/sortable-tree.js +138 -0
  27. package/lib/blocklet/component/space-gateway-selector.js +174 -0
  28. package/lib/blocklet/component/store-blocklet-list.js +205 -0
  29. package/lib/blocklet/config-navigation.js +344 -0
  30. package/lib/blocklet/configuration.js +574 -0
  31. package/lib/blocklet/disk-info.js +91 -0
  32. package/lib/blocklet/icons.js +26 -0
  33. package/lib/blocklet/install-from-url.js +347 -0
  34. package/lib/blocklet/log.js +62 -0
  35. package/lib/blocklet/migration.js +153 -0
  36. package/lib/blocklet/mode.js +35 -0
  37. package/lib/blocklet/monitor.js +186 -0
  38. package/lib/blocklet/overview.js +236 -0
  39. package/lib/blocklet/preferences/app-sk.js +131 -0
  40. package/lib/blocklet/preferences/index.js +238 -0
  41. package/lib/blocklet/preferences/wallet-type.js +107 -0
  42. package/lib/blocklet/purchase/common.js +103 -0
  43. package/lib/blocklet/purchase/component-purchase.js +253 -0
  44. package/lib/blocklet/purchase/index.js +13 -0
  45. package/lib/blocklet/router/action/add-domain-alias.js +173 -0
  46. package/lib/blocklet/router/action/add-rule.js +204 -0
  47. package/lib/blocklet/router/action/config-routing-rule.js +129 -0
  48. package/lib/blocklet/router/action/delete-domain-alias.js +107 -0
  49. package/lib/blocklet/router/action/delete-rule.js +114 -0
  50. package/lib/blocklet/router/action/update-rule.js +203 -0
  51. package/lib/blocklet/router/domain-actions.js +71 -0
  52. package/lib/blocklet/router/domain-status.js +96 -0
  53. package/lib/blocklet/router/rule-actions.js +77 -0
  54. package/lib/blocklet/router/rule-list.js +181 -0
  55. package/lib/blocklet/router/util.js +146 -0
  56. package/lib/blocklet/runtime-info.js +87 -0
  57. package/lib/blocklet/status.js +105 -0
  58. package/lib/blocklet/storage.js +322 -0
  59. package/lib/blocklet/types.js +25 -0
  60. package/lib/blocklet/util.js +233 -0
  61. package/lib/blocklet/version.js +156 -0
  62. package/lib/card-selector.js +109 -0
  63. package/lib/certificate.js +110 -0
  64. package/lib/click-to-copy.js +38 -0
  65. package/lib/confirm.js +149 -0
  66. package/lib/contexts/audit-log.js +141 -0
  67. package/lib/contexts/blocklet.js +19 -0
  68. package/lib/contexts/deleting-blocklets.js +78 -0
  69. package/lib/contexts/node.js +30 -0
  70. package/lib/contexts/session.js +20 -0
  71. package/lib/contexts/team.js +19 -0
  72. package/lib/delete-confirm.js +127 -0
  73. package/lib/did-address.js +77 -0
  74. package/lib/dot.js +18 -0
  75. package/lib/form/form-text-input.js +266 -0
  76. package/lib/form/form-wrapper.js +13 -0
  77. package/lib/form/required.js +13 -0
  78. package/lib/hooks/blocklet.js +231 -0
  79. package/lib/hooks/mobile-width.js +19 -0
  80. package/lib/hooks/url-evaluation.js +168 -0
  81. package/lib/hooks/use-app-logo.js +25 -0
  82. package/lib/hooks/use-bundle-logo.js +36 -0
  83. package/lib/hooks/use-navigation.js +355 -0
  84. package/lib/hooks/use-passport-id.js +21 -0
  85. package/lib/hooks/use-subscription.js +28 -0
  86. package/lib/icons/long-arrow.svg +5 -0
  87. package/lib/index.js +0 -3
  88. package/lib/invitation/invitation-app.js +51 -0
  89. package/lib/invitation/invitation-login.js +47 -0
  90. package/lib/invitation/invitation-passport.js +130 -0
  91. package/lib/invitation/invitation-receive.js +108 -0
  92. package/lib/invitation/invitation-success.js +82 -0
  93. package/lib/invitation/invitation-user.js +79 -0
  94. package/lib/invitation/invitation.js +80 -0
  95. package/lib/issue-passport.js +84 -84
  96. package/lib/launch-blocklet/content-layout.js +33 -0
  97. package/lib/launch-blocklet/page-header.js +38 -0
  98. package/lib/layout/addon.js +100 -0
  99. package/lib/layout/feedback.js +55 -0
  100. package/lib/locales/en.js +1221 -10
  101. package/lib/locales/index.js +3 -4
  102. package/lib/locales/zh.js +1232 -15
  103. package/lib/logs/clock.js +19 -0
  104. package/lib/logs/download.js +139 -0
  105. package/lib/logs/log-terminal.js +183 -0
  106. package/lib/lost-passport.js +207 -192
  107. package/lib/monitor/card.js +73 -0
  108. package/lib/monitor/cpu.js +109 -0
  109. package/lib/monitor/disk.js +122 -0
  110. package/lib/monitor/memory.js +144 -0
  111. package/lib/nav-logo.js +120 -0
  112. package/lib/passport-tag.js +43 -0
  113. package/lib/permission.js +70 -0
  114. package/lib/relative-time.js +61 -0
  115. package/lib/schema-form/color-input.js +105 -0
  116. package/lib/schema-form/common-prop-types.js +21 -0
  117. package/lib/schema-form/index.js +229 -0
  118. package/lib/schema-form/passport-input.js +66 -0
  119. package/lib/schema-form/text-input.js +72 -0
  120. package/lib/store/add.js +185 -0
  121. package/lib/store/delete.js +102 -0
  122. package/lib/store/item.js +84 -0
  123. package/lib/table-icons.js +42 -0
  124. package/lib/table.js +13 -0
  125. package/lib/tag.js +37 -0
  126. package/lib/team/members/actions.js +99 -0
  127. package/lib/team/members/index.js +503 -0
  128. package/lib/team/members/invitations.js +196 -0
  129. package/lib/team/members/invite-member.js +212 -0
  130. package/lib/team/members/issue-passport.js +155 -0
  131. package/lib/team/members/member.js +300 -0
  132. package/lib/team/members/passport-issuances.js +154 -0
  133. package/lib/team/members/passports.js +336 -0
  134. package/lib/team/members/toggle-user-approval.js +128 -0
  135. package/lib/team/members/transfer-node.js +262 -0
  136. package/lib/team/members/util.js +20 -0
  137. package/lib/team/passports/color.js +132 -0
  138. package/lib/team/passports/detail.js +271 -0
  139. package/lib/team/passports/index.js +233 -0
  140. package/lib/team/passports/mutate-role.js +204 -0
  141. package/lib/team/passports/trusted-issuer.js +297 -0
  142. package/lib/team/passports/trusted-issuers.js +240 -0
  143. package/lib/team/search-input.js +38 -0
  144. package/lib/team/styles/dialog.js +13 -0
  145. package/lib/team/styles/list-header.js +13 -0
  146. package/lib/toast.js +86 -0
  147. package/lib/util/api.js +21 -0
  148. package/lib/util/constants.js +10 -0
  149. package/lib/util/index.js +703 -0
  150. package/lib/util/locales.js +28 -0
  151. package/lib/util/mode.js +11 -0
  152. package/lib/who-can-access/config.js +46 -0
  153. package/lib/wrap-locale.js +12 -13
  154. package/package.json +71 -17
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ComponentPurchase = ComponentPurchase;
7
+ exports.default = void 0;
8
+ var _react = require("react");
9
+ var _urlJoin = _interopRequireDefault(require("url-join"));
10
+ var _util = require("@blocklet/meta/lib/util");
11
+ var _context = require("@arcblock/ux/lib/Locale/context");
12
+ var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _pWaitFor = _interopRequireDefault(require("p-wait-for"));
15
+ var _toast = _interopRequireDefault(require("../../toast"));
16
+ var _node = require("../../contexts/node");
17
+ var _util2 = require("../../util");
18
+ var _api = require("../../util/api");
19
+ var _common = require("./common");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ const _excluded = ["mode"];
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+ 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; }
24
+ 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; }
25
+ 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; }
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
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
28
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
29
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
30
+ function ComponentPurchase(_ref) {
31
+ let {
32
+ meta,
33
+ onCancel,
34
+ mode,
35
+ handlePaySuccess
36
+ } = _ref;
37
+ const {
38
+ t,
39
+ locale
40
+ } = (0, _context.useLocaleContext)();
41
+ const {
42
+ info
43
+ } = (0, _node.useNodeContext)();
44
+ const webWalletUrl = (0, _util2.getWebWalletUrl)(info);
45
+ const [nw, setNw] = (0, _react.useState)(null);
46
+ const baseUrl = new URL(meta === null || meta === void 0 ? void 0 : meta.registryUrl).origin;
47
+ const name = (0, _util.getDisplayName)({
48
+ meta
49
+ });
50
+ const handleConnectSuccess = async (result, decrypt) => {
51
+ const success = async _ref2 => {
52
+ let {
53
+ downloadTokenList
54
+ } = _ref2;
55
+ handlePaySuccess({
56
+ downloadTokenList
57
+ });
58
+ };
59
+ const failure = async errorMessage => {
60
+ _toast.default.error(errorMessage);
61
+ onCancel(errorMessage);
62
+ };
63
+ async function handleConnectSessionStatus(url) {
64
+ return (0, _pWaitFor.default)(() => {
65
+ return _api.api.get(url).then(async _ref3 => {
66
+ let {
67
+ data
68
+ } = _ref3;
69
+ const downloadTokenList = data === null || data === void 0 ? void 0 : data.downloadTokenList;
70
+ if (data.status === 'succeed') {
71
+ if (downloadTokenList && downloadTokenList.length) {
72
+ await success({
73
+ downloadTokenList
74
+ });
75
+ } else {
76
+ await failure(t('blocklet.component.missDownloadTokenTip'));
77
+ return true;
78
+ }
79
+ return true;
80
+ }
81
+ if (data.status === 'error') {
82
+ console.error('vc error: ', data);
83
+ await failure(data === null || data === void 0 ? void 0 : data.error);
84
+ return true;
85
+ }
86
+ return false;
87
+ });
88
+ }, {
89
+ interval: 1000
90
+ });
91
+ }
92
+ if (mode === 'purchase' && nw) {
93
+ const {
94
+ statusUrl
95
+ } = (0, _util2.extractStatusUrlFromNextWorkflow)(nw);
96
+ // poll status url, to get download token
97
+ await handleConnectSessionStatus(statusUrl);
98
+ } else {
99
+ await success({
100
+ downloadTokenList: result.downloadTokenList && decrypt(result.downloadTokenList)
101
+ });
102
+ }
103
+ };
104
+ (0, _react.useEffect)(() => {
105
+ // only purchase mode has nw
106
+ if (mode === 'purchase') {
107
+ const nextWorkflowUrl = new URL(baseUrl);
108
+ nextWorkflowUrl.pathname = '/api/did/verify-purchase-blocklet/token';
109
+ nextWorkflowUrl.searchParams.set('serverDid', info.did);
110
+ nextWorkflowUrl.searchParams.set('blockletDid', meta === null || meta === void 0 ? void 0 : meta.did);
111
+ try {
112
+ _api.api.get(nextWorkflowUrl.href).then(_ref4 => {
113
+ let {
114
+ data
115
+ } = _ref4;
116
+ const url = "".concat(data.url);
117
+ setNw(url);
118
+ });
119
+ } catch (error) {
120
+ console.error('get next workflow url error: ', error);
121
+ }
122
+ }
123
+ return () => {
124
+ setNw(null);
125
+ };
126
+ }, [mode]); // eslint-disable-line
127
+
128
+ // If nw does not exist, then connect should not be render
129
+ if (mode === 'purchase' && !nw) {
130
+ return '';
131
+ }
132
+ const modePropsMap = {
133
+ verify: {
134
+ action: 'verify-purchase-blocklet',
135
+ checkFn: _api.axios.create({
136
+ baseURL: baseUrl
137
+ }).get,
138
+ extraParams: {
139
+ serverDid: info.did,
140
+ blockletDid: meta === null || meta === void 0 ? void 0 : meta.did
141
+ },
142
+ messages: {
143
+ title: t('store.purchase.verify.auth.title', {
144
+ name
145
+ }),
146
+ scan: t('store.purchase.verify.auth.scan'),
147
+ confirm: t('store.purchase.verify.auth.confirm'),
148
+ success: t('store.purchase.verify.auth.success')
149
+ }
150
+ },
151
+ purchase: {
152
+ action: 'acquire-asset',
153
+ checkFn: _api.axios.create({
154
+ baseURL: (0, _urlJoin.default)(baseUrl, '/store')
155
+ }).get,
156
+ extraParams: {
157
+ factory: meta.nftFactory,
158
+ nw
159
+ },
160
+ messages: {
161
+ title: t('store.purchase.auth.title', {
162
+ name
163
+ }),
164
+ scan: t('store.purchase.auth.scan'),
165
+ confirm: t('store.purchase.auth.confirm'),
166
+ success: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
167
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
168
+ children: t('store.purchase.auth.success')
169
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
170
+ children: t('blocklet.component.purchaseComponentSecondCheckTip')
171
+ })]
172
+ })
173
+ }
174
+ }
175
+ };
176
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, _objectSpread({
177
+ open: true,
178
+ locale: locale,
179
+ popup: false,
180
+ saveConnect: false,
181
+ className: "connect",
182
+ baseUrl: baseUrl,
183
+ onSuccess: handleConnectSuccess,
184
+ cancelWhenScanned: onCancel,
185
+ onClose: onCancel,
186
+ checkTimeout: 60 * 5000,
187
+ webWalletUrl: webWalletUrl,
188
+ disableClose: true,
189
+ showDownload: false
190
+ }, modePropsMap[mode]));
191
+ }
192
+ ComponentPurchase.propTypes = _objectSpread(_objectSpread({}, _common.commonProps), {}, {
193
+ handlePaySuccess: _propTypes.default.func,
194
+ mode: _propTypes.default.oneOf(['verify', 'purchase']).isRequired
195
+ });
196
+ ComponentPurchase.defaultProps = {
197
+ handlePaySuccess: () => {}
198
+ };
199
+ const ComponentPurchaseSelect = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
200
+ let {
201
+ mode
202
+ } = _ref5,
203
+ rest = _objectWithoutProperties(_ref5, _excluded);
204
+ const [action, setAction] = (0, _react.useState)(mode !== 'both' ? mode : 'verify');
205
+ const [step, setStep] = (0, _react.useState)(mode !== 'both' ? 2 : 1);
206
+ const onSelect = async act => {
207
+ if (act === action) {
208
+ return;
209
+ }
210
+ setAction(act);
211
+ };
212
+ const onNext = async () => {
213
+ if (!action) {
214
+ return;
215
+ }
216
+ if (step === 2) {
217
+ return;
218
+ }
219
+ setStep(2);
220
+ };
221
+
222
+ // expose the func and activeStep
223
+ (0, _react.useImperativeHandle)(ref, () => ({
224
+ onNext,
225
+ getCurrentStep: () => {
226
+ return step;
227
+ }
228
+ }));
229
+ if (step === 1) {
230
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
231
+ style: {
232
+ maxWidth: 520
233
+ },
234
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.CustomSelect, {
235
+ action: action,
236
+ onNext: null,
237
+ onSelect: onSelect
238
+ })
239
+ });
240
+ }
241
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentPurchase, _objectSpread(_objectSpread({}, rest), {}, {
242
+ mode: action
243
+ }));
244
+ });
245
+ ComponentPurchaseSelect.propTypes = {
246
+ mode: _propTypes.default.oneOf(['both', 'verify', 'purchase']).isRequired,
247
+ ref: _propTypes.default.any
248
+ };
249
+ ComponentPurchaseSelect.defaultProps = {
250
+ ref: {}
251
+ };
252
+ var _default = ComponentPurchaseSelect;
253
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ComponentPurchaseSelect", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _componentPurchase.default;
10
+ }
11
+ });
12
+ var _componentPurchase = _interopRequireDefault(require("./component-purchase"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = AddDomainAlias;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _CallMerge = _interopRequireDefault(require("@mui/icons-material/CallMerge"));
10
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
11
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
12
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
14
+ var _context = require("@arcblock/ux/lib/Locale/context");
15
+ var _toast = _interopRequireDefault(require("../../../toast"));
16
+ var _confirm = _interopRequireDefault(require("../../../confirm"));
17
+ var _util = require("../../../util");
18
+ var _node = require("../../../contexts/node");
19
+ var _util2 = require("../util");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ 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; }
23
+ 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; }
24
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
26
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
27
+ function AddDomainAlias(_ref) {
28
+ let {
29
+ id,
30
+ children,
31
+ title,
32
+ teamDid
33
+ } = _ref;
34
+ const {
35
+ t
36
+ } = (0, _context.useLocaleContext)();
37
+ const {
38
+ api
39
+ } = (0, _node.useNodeContext)();
40
+ const [loading, setLoading] = (0, _react.useState)(false);
41
+ const [confirmSetting, setConfirmSetting] = (0, _react.useState)(null);
42
+ const onCancel = () => {
43
+ setLoading(false);
44
+ setConfirmSetting(null);
45
+ };
46
+ const onConfirm = async params => {
47
+ setLoading(true);
48
+ try {
49
+ await api.addDomainAlias({
50
+ input: {
51
+ id,
52
+ domainAlias: params.domain.trim(),
53
+ teamDid
54
+ }
55
+ });
56
+ await (0, _util.sleep)(2000);
57
+ } catch (err) {
58
+ _toast.default.error(err.message);
59
+ } finally {
60
+ setConfirmSetting(null);
61
+ setLoading(false);
62
+ }
63
+ };
64
+ const onEnter = async (params, confirm, setError) => {
65
+ try {
66
+ await confirm(params);
67
+ } catch (err) {
68
+ setError((0, _util.formatError)(err));
69
+ } finally {
70
+ setLoading(false);
71
+ }
72
+ };
73
+ const setting = {
74
+ title: title || t('router.domainAlias.add.title'),
75
+ // eslint-disable-next-line react/no-unstable-nested-components
76
+ description: (params, setParams, setError) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
77
+ component: "div",
78
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
79
+ label: t('router.domainAlias.add.domainDescription'),
80
+ autoComplete: "off",
81
+ variant: "outlined",
82
+ name: "domain",
83
+ "data-cy": "add-domain",
84
+ fullWidth: true,
85
+ autoFocus: true,
86
+ inputProps: {
87
+ 'data-cy': 'domain-name-input'
88
+ },
89
+ value: params.domain,
90
+ style: {
91
+ marginBottom: 8
92
+ },
93
+ margin: "dense",
94
+ onChange: e => {
95
+ const domain = e.target.value.trim();
96
+ const errMsg = (0, _util2.validateDomain)(domain, t);
97
+ setParams(_objectSpread(_objectSpread({}, params), {}, {
98
+ domain,
99
+ __disableConfirm: !!errMsg
100
+ }));
101
+ if (errMsg) {
102
+ setError(errMsg);
103
+ } else {
104
+ setError('');
105
+ }
106
+ },
107
+ onKeyPress: e => {
108
+ if (e.key === 'Enter') {
109
+ e.preventDefault();
110
+ const domain = e.target.value.trim();
111
+ const errMsg = (0, _util2.validateDomain)(domain, t);
112
+ if (errMsg) {
113
+ setError(errMsg);
114
+ } else {
115
+ onEnter(params, onConfirm, setError);
116
+ }
117
+ }
118
+ }
119
+ })
120
+ }),
121
+ confirm: t('common.confirm'),
122
+ cancel: t('common.cancel'),
123
+ params: {
124
+ domain: '',
125
+ __disableConfirm: true
126
+ },
127
+ onConfirm,
128
+ onCancel
129
+ };
130
+ const onMenuItemClick = e => {
131
+ e.stopPropagation();
132
+ // eslint-disable-next-line no-unused-expressions
133
+ setConfirmSetting(setting);
134
+ };
135
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
136
+ children: [typeof children === 'function' ? children({
137
+ loading,
138
+ open: onMenuItemClick
139
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
140
+ onClick: onMenuItemClick,
141
+ className: "rule-action",
142
+ "data-cy": "action-add-domain-alias",
143
+ children: [loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
144
+ size: 16
145
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_CallMerge.default, {
146
+ style: {
147
+ fontSize: 18,
148
+ marginRight: 5
149
+ }
150
+ }), t('router.domainAlias.add.title')]
151
+ }), confirmSetting && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
152
+ title: confirmSetting.title,
153
+ description: confirmSetting.description,
154
+ confirm: confirmSetting.confirm,
155
+ cancel: confirmSetting.cancel,
156
+ params: confirmSetting.params,
157
+ onConfirm: confirmSetting.onConfirm,
158
+ onCancel: confirmSetting.onCancel,
159
+ color: "primary"
160
+ })]
161
+ });
162
+ }
163
+ AddDomainAlias.propTypes = {
164
+ id: _propTypes.default.string.isRequired,
165
+ children: _propTypes.default.any,
166
+ title: _propTypes.default.string,
167
+ teamDid: _propTypes.default.string
168
+ };
169
+ AddDomainAlias.defaultProps = {
170
+ children: null,
171
+ title: '',
172
+ teamDid: ''
173
+ };
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = AddRule;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Link = _interopRequireDefault(require("@mui/icons-material/Link"));
10
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
11
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
12
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
14
+ var _context = require("@arcblock/ux/lib/Locale/context");
15
+ var _constant = require("@abtnode/constant");
16
+ var _urlFriendly = _interopRequireDefault(require("@blocklet/meta/lib/url-friendly"));
17
+ var _node = require("../../../contexts/node");
18
+ var _blocklet = require("../../../contexts/blocklet");
19
+ var _confirm = _interopRequireDefault(require("../../../confirm"));
20
+ var _toast = _interopRequireDefault(require("../../../toast"));
21
+ var _util = require("../util");
22
+ var _configRoutingRule = _interopRequireDefault(require("./config-routing-rule"));
23
+ var _util2 = require("../../../util");
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+ 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; }
27
+ 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; }
28
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
30
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
31
+ function AddRule(_ref) {
32
+ let {
33
+ children
34
+ } = _ref;
35
+ const {
36
+ t
37
+ } = (0, _context.useLocaleContext)();
38
+ const {
39
+ api
40
+ } = (0, _node.useNodeContext)();
41
+ const {
42
+ blocklet
43
+ } = (0, _blocklet.useBlockletContext)();
44
+ const [loading, setLoading] = (0, _react.useState)(false);
45
+ const [confirmSetting, setConfirmSetting] = (0, _react.useState)(null);
46
+ const teamDid = blocklet.meta.did;
47
+ const siteId = blocklet.site.id;
48
+ const onCancel = () => {
49
+ setLoading(false);
50
+ setConfirmSetting(null);
51
+ };
52
+ const onConfirm = async params => {
53
+ try {
54
+ const err = await (0, _util.validateRule)(params, t);
55
+ if (err) {
56
+ throw err;
57
+ }
58
+ setLoading(true);
59
+ const rule = {
60
+ from: {
61
+ pathPrefix: (0, _urlFriendly.default)(params.pathPrefix)
62
+ },
63
+ to: {
64
+ type: params.type
65
+ }
66
+ };
67
+ if (params.type === _constant.ROUTING_RULE_TYPES.REDIRECT) {
68
+ rule.to.url = params.url.trim();
69
+ rule.to.redirectCode = params.redirectCode;
70
+ }
71
+ await api.addRoutingRule({
72
+ input: {
73
+ id: siteId,
74
+ rule,
75
+ teamDid
76
+ }
77
+ });
78
+ } catch (error) {
79
+ _toast.default.error(error.message);
80
+ } finally {
81
+ setLoading(false);
82
+ setConfirmSetting(null);
83
+ }
84
+ };
85
+ const setting = {
86
+ title: t('router.rule.add.title'),
87
+ // eslint-disable-next-line react/no-unstable-nested-components
88
+ description: (params, setParams, setError) => {
89
+ const setValue = value => {
90
+ setError(null);
91
+ const validateResult = (0, _util.validateRule)(value, t);
92
+ if (validateResult) {
93
+ setParams(_objectSpread(_objectSpread({}, value), {}, {
94
+ __disableConfirm: true
95
+ }));
96
+ return;
97
+ }
98
+ setParams(_objectSpread({}, value));
99
+ };
100
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
101
+ component: "div",
102
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
103
+ label: t('router.rule.add.pathPrefix'),
104
+ autoComplete: "off",
105
+ variant: "outlined",
106
+ name: "pathPrefix",
107
+ "data-cy": "path-prefix-input",
108
+ fullWidth: true,
109
+ autoFocus: true,
110
+ helperText: params.helperText || t('router.rule.add.pathPrefixTip'),
111
+ style: {
112
+ marginBottom: 32
113
+ },
114
+ margin: "dense",
115
+ value: params.pathPrefix,
116
+ onChange: e => {
117
+ let disable = false;
118
+ const validateResult = (0, _util.validatePathPrefix)({
119
+ params: _objectSpread(_objectSpread({}, params), {}, {
120
+ pathPrefix: e.target.value
121
+ }),
122
+ blocklets: [blocklet]
123
+ });
124
+ setError(validateResult);
125
+ if (params.type === _constant.ROUTING_RULE_TYPES.BLOCKLET && validateResult) {
126
+ disable = true;
127
+ }
128
+ if (params.type === _constant.ROUTING_RULE_TYPES.REDIRECT && !params.url) {
129
+ disable = true;
130
+ }
131
+ if (!e.target.value.trim()) {
132
+ disable = true;
133
+ setError(t('router.validation.pathPrefixRequired'));
134
+ }
135
+ if (!disable) {
136
+ setError('');
137
+ }
138
+ const helperText = t('common.slugifyHint', {
139
+ value: (0, _util2.formatMountPoint)(e.target.value)
140
+ });
141
+ setParams(_objectSpread(_objectSpread({}, params), {}, {
142
+ pathPrefix: e.target.value,
143
+ helperText,
144
+ __disableConfirm: disable
145
+ }));
146
+ }
147
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_configRoutingRule.default, {
148
+ params: params,
149
+ setParams: setValue,
150
+ setError: setError
151
+ })]
152
+ });
153
+ },
154
+ confirm: t('router.rule.add.confirm'),
155
+ cancel: t('common.cancel'),
156
+ params: {
157
+ pathPrefix: '',
158
+ type: _constant.ROUTING_RULE_TYPES.REDIRECT,
159
+ interfaceName: '',
160
+ redirectCode: 302,
161
+ __disableConfirm: true
162
+ },
163
+ onConfirm,
164
+ onCancel
165
+ };
166
+ const onMenuItemClick = e => {
167
+ e.stopPropagation();
168
+ // eslint-disable-next-line no-unused-expressions
169
+ setConfirmSetting(setting);
170
+ };
171
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
172
+ children: [typeof children === 'function' ? children({
173
+ loading,
174
+ open: onMenuItemClick
175
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
176
+ onClick: onMenuItemClick,
177
+ className: "rule-action",
178
+ "data-cy": "action-add-rule",
179
+ children: [loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
180
+ size: 16
181
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
182
+ style: {
183
+ fontSize: 18,
184
+ marginRight: 5
185
+ }
186
+ }), t('router.rule.add.title')]
187
+ }), confirmSetting && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
188
+ title: confirmSetting.title,
189
+ description: confirmSetting.description,
190
+ confirm: confirmSetting.confirm,
191
+ cancel: confirmSetting.cancel,
192
+ params: confirmSetting.params,
193
+ onConfirm: confirmSetting.onConfirm,
194
+ onCancel: confirmSetting.onCancel,
195
+ color: "primary"
196
+ })]
197
+ });
198
+ }
199
+ AddRule.propTypes = {
200
+ children: _propTypes.default.any
201
+ };
202
+ AddRule.defaultProps = {
203
+ children: null
204
+ };