@abtnode/ux 1.8.33 → 1.8.35
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/blocklet/component/environment.js +1 -1
- package/lib/blocklet/component/index.js +61 -31
- package/lib/blocklet/component/line.js +28 -0
- package/lib/blocklet/component/setting.js +1 -1
- package/lib/blocklet/configuration.js +180 -13
- package/lib/blocklet/overview.js +127 -10
- package/lib/blocklet/router/action/add-domain-alias.js +171 -0
- package/lib/blocklet/router/action/add-rule.js +196 -0
- package/lib/blocklet/router/action/config-routing-rule.js +125 -0
- package/lib/blocklet/router/action/delete-domain-alias.js +107 -0
- package/lib/blocklet/router/action/delete-rule.js +114 -0
- package/lib/blocklet/router/action/update-rule.js +195 -0
- package/lib/blocklet/router/domain-actions.js +71 -0
- package/lib/blocklet/router/domain-status.js +96 -0
- package/lib/blocklet/router/rule-actions.js +75 -0
- package/lib/blocklet/router/rule-list.js +179 -0
- package/lib/blocklet/router/util.js +146 -0
- package/lib/blocklet/types.js +25 -0
- package/lib/blocklet/util.js +105 -9
- package/lib/blocklet/version.js +1 -1
- package/lib/certificate.js +110 -0
- package/lib/contexts/blocklet.js +19 -0
- package/lib/delete-confirm.js +125 -0
- package/lib/form/form-text-input.js +9 -2
- package/lib/hooks/blocklet.js +171 -0
- package/lib/hooks/url-evaluation.js +157 -0
- package/lib/hooks/use-subscription.js +28 -0
- package/lib/layout/addon.js +17 -17
- package/lib/layout/feedback.js +57 -0
- package/lib/locales/en.js +6 -2
- package/lib/locales/zh.js +6 -2
- package/lib/schema-form/index.js +9 -4
- package/lib/schema-form/text-input.js +1 -1
- package/lib/team/members/index.js +23 -11
- package/lib/team/members/member.js +3 -0
- package/lib/team/passports/color.js +131 -0
- package/lib/team/passports/index.js +32 -20
- package/lib/util/index.js +70 -5
- package/package.json +12 -12
|
@@ -232,7 +232,7 @@ function ComponentEnvironment(_ref) {
|
|
|
232
232
|
severity: "info",
|
|
233
233
|
children: t('blocklet.config.environment.tip')
|
|
234
234
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {
|
|
235
|
-
permission: inService ? '' : '
|
|
235
|
+
permission: inService ? '' : 'mutate_blockets',
|
|
236
236
|
role: inService ? _util2.BlockletAdminRoles : [],
|
|
237
237
|
children: hasPermission => /*#__PURE__*/(0, _jsxRuntime.jsx)(_table.default, {
|
|
238
238
|
className: (0, _util2.isBlockletDev)(blocklet) ? 'readonly-block config-table' : 'config-table',
|
|
@@ -47,6 +47,9 @@ var _avatar = _interopRequireDefault(require("../avatar"));
|
|
|
47
47
|
var _mode = _interopRequireDefault(require("../mode"));
|
|
48
48
|
var _configuration = _interopRequireDefault(require("./configuration"));
|
|
49
49
|
var _delete = _interopRequireDefault(require("./delete"));
|
|
50
|
+
var _line = _interopRequireDefault(require("./line"));
|
|
51
|
+
var _addRule = _interopRequireDefault(require("../router/action/add-rule"));
|
|
52
|
+
var _ruleList = _interopRequireDefault(require("../router/rule-list"));
|
|
50
53
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
51
54
|
const _excluded = ["blocklet", "onUpdate", "getComponentUrl", "AddComponent"];
|
|
52
55
|
var _templateObject, _templateObject2;
|
|
@@ -357,13 +360,9 @@ function ComponentItem(_ref) {
|
|
|
357
360
|
tip: deleteDisabledTip
|
|
358
361
|
})]
|
|
359
362
|
}, "actions")]
|
|
360
|
-
}, "group-not-gateway-box"), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
borderBottom: 1,
|
|
364
|
-
borderColor: 'rgba(0,0,0,0.12)'
|
|
365
|
-
}
|
|
366
|
-
}, "group-collapse-box"), (_blocklet$children = blocklet.children) !== null && _blocklet$children !== void 0 && _blocklet$children.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Collapse.default, {
|
|
363
|
+
}, "group-not-gateway-box"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_line.default, {
|
|
364
|
+
depth: depth
|
|
365
|
+
}), (_blocklet$children = blocklet.children) !== null && _blocklet$children !== void 0 && _blocklet$children.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Collapse.default, {
|
|
367
366
|
in: expand,
|
|
368
367
|
children: blocklet.children.map(x => /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentItem, {
|
|
369
368
|
blocklet: x,
|
|
@@ -587,7 +586,7 @@ function BlockletComponent(_ref4) {
|
|
|
587
586
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
588
587
|
className: "title",
|
|
589
588
|
children: [t('common.components'), /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {
|
|
590
|
-
permission: inService ? '' : '
|
|
589
|
+
permission: inService ? '' : 'mutate_blockets',
|
|
591
590
|
role: inService ? _util2.BlockletAdminRoles : [],
|
|
592
591
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledBadge, {
|
|
593
592
|
top: 1.2,
|
|
@@ -618,34 +617,58 @@ function BlockletComponent(_ref4) {
|
|
|
618
617
|
})
|
|
619
618
|
})]
|
|
620
619
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {
|
|
621
|
-
permission:
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
620
|
+
permission: inService ? '' : 'mutate_blockets',
|
|
621
|
+
role: inService ? _util2.BlockletAdminRoles : [],
|
|
622
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
623
|
+
display: "flex",
|
|
624
|
+
alignItems: "center",
|
|
625
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_addRule.default, {
|
|
626
|
+
children: _ref6 => {
|
|
627
|
+
let {
|
|
628
|
+
open
|
|
629
|
+
} = _ref6;
|
|
630
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
631
|
+
disabled: loading || (0, _util2.isInProgress)(blocklet.status),
|
|
632
|
+
variant: "text",
|
|
633
|
+
color: "primary",
|
|
634
|
+
"data-cy": "add-rule",
|
|
635
|
+
onClick: open,
|
|
636
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
|
|
637
|
+
style: {
|
|
638
|
+
fontSize: '1.3em',
|
|
639
|
+
marginRight: 4
|
|
640
|
+
}
|
|
641
|
+
}), t('router.rule.add.title')]
|
|
642
|
+
});
|
|
643
|
+
}
|
|
644
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(AddComponent, {
|
|
645
|
+
blocklet: blocklet,
|
|
646
|
+
children: _ref7 => {
|
|
647
|
+
let {
|
|
648
|
+
open
|
|
649
|
+
} = _ref7;
|
|
650
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
651
|
+
disabled: loading || (0, _util2.isInProgress)(blocklet.status),
|
|
652
|
+
variant: "text",
|
|
653
|
+
color: "primary",
|
|
654
|
+
"data-cy": "add-component",
|
|
655
|
+
onClick: open,
|
|
656
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
|
|
657
|
+
style: {
|
|
658
|
+
fontSize: '1.3em',
|
|
659
|
+
marginRight: 4
|
|
660
|
+
}
|
|
661
|
+
}), t('blocklet.component.add')]
|
|
662
|
+
});
|
|
663
|
+
}
|
|
664
|
+
})]
|
|
642
665
|
})
|
|
643
666
|
})]
|
|
644
667
|
}), components && components.length ? [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
645
668
|
mt: 2,
|
|
646
669
|
ml: {
|
|
647
|
-
xs: '-
|
|
648
|
-
md: '-
|
|
670
|
+
xs: '-12px',
|
|
671
|
+
md: '-24px'
|
|
649
672
|
},
|
|
650
673
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentItem, {
|
|
651
674
|
blocklet: blocklet,
|
|
@@ -657,6 +680,13 @@ function BlockletComponent(_ref4) {
|
|
|
657
680
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {
|
|
658
681
|
children: t('blocklet.component.noComponent')
|
|
659
682
|
})
|
|
683
|
+
}), !!blocklet.site.rules.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
684
|
+
mt: 0,
|
|
685
|
+
ml: {
|
|
686
|
+
xs: '-16px',
|
|
687
|
+
md: '-28px'
|
|
688
|
+
},
|
|
689
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ruleList.default, {})
|
|
660
690
|
}), !!updateConfirm && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.default, {
|
|
661
691
|
open: true,
|
|
662
692
|
fullWidth: true,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = Line;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function Line(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
depth
|
|
14
|
+
} = _ref;
|
|
15
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
16
|
+
ml: Math.max((depth - 1) * 2, 0),
|
|
17
|
+
sx: {
|
|
18
|
+
borderBottom: 1,
|
|
19
|
+
borderColor: 'rgba(0,0,0,0.12)'
|
|
20
|
+
}
|
|
21
|
+
}, "group-collapse-box");
|
|
22
|
+
}
|
|
23
|
+
Line.propTypes = {
|
|
24
|
+
depth: _propTypes.default.number
|
|
25
|
+
};
|
|
26
|
+
Line.defaultProps = {
|
|
27
|
+
depth: 1
|
|
28
|
+
};
|
|
@@ -112,7 +112,7 @@ function ComponentSetting(_ref) {
|
|
|
112
112
|
})
|
|
113
113
|
}));
|
|
114
114
|
}
|
|
115
|
-
const ComponentSettingInDaemon = (0, _permission.withPermission)(ComponentSetting, '
|
|
115
|
+
const ComponentSettingInDaemon = (0, _permission.withPermission)(ComponentSetting, 'mutate_blockets');
|
|
116
116
|
const ComponentSettingInService = (0, _permission.withPermission)(ComponentSetting, '', _util.BlockletAdminRoles);
|
|
117
117
|
function ComponentSettingWithPermission(props) {
|
|
118
118
|
const {
|
|
@@ -9,21 +9,32 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
11
11
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
12
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
12
13
|
var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
13
14
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
14
15
|
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
15
16
|
var _useTheme = _interopRequireDefault(require("@mui/material/styles/useTheme"));
|
|
16
17
|
var _Switch = _interopRequireDefault(require("@mui/material/Switch"));
|
|
17
18
|
var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
|
|
19
|
+
var _Add = _interopRequireDefault(require("@mui/icons-material/Add"));
|
|
20
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
21
|
+
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
|
18
22
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
23
|
+
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
24
|
+
var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
|
|
25
|
+
var _LockIcon = _interopRequireDefault(require("@arcblock/icons/lib/LockIcon"));
|
|
19
26
|
var _constant = require("@blocklet/constant");
|
|
20
27
|
var _util = require("@blocklet/meta/lib/util");
|
|
21
28
|
var _toast = _interopRequireDefault(require("../toast"));
|
|
22
29
|
var _schemaForm = _interopRequireDefault(require("../schema-form"));
|
|
30
|
+
var _formTextInput = _interopRequireDefault(require("../form/form-text-input"));
|
|
23
31
|
var _config = _interopRequireDefault(require("../who-can-access/config"));
|
|
24
32
|
var _node = require("../contexts/node");
|
|
25
33
|
var _util2 = require("../util");
|
|
26
34
|
var _permission = require("../permission");
|
|
35
|
+
var _addDomainAlias = _interopRequireDefault(require("./router/action/add-domain-alias"));
|
|
36
|
+
var _domainStatus = _interopRequireDefault(require("./router/domain-status"));
|
|
37
|
+
var _domainActions = _interopRequireDefault(require("./router/domain-actions"));
|
|
27
38
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
28
39
|
var _templateObject, _templateObject2;
|
|
29
40
|
const _excluded = ["blocklet", "onUpdate", "hasPermission"],
|
|
@@ -61,6 +72,15 @@ function BlockletEnvironment(_ref) {
|
|
|
61
72
|
useSubscription
|
|
62
73
|
}
|
|
63
74
|
} = node;
|
|
75
|
+
const {
|
|
76
|
+
did
|
|
77
|
+
} = blocklet.meta;
|
|
78
|
+
const {
|
|
79
|
+
site
|
|
80
|
+
} = blocklet;
|
|
81
|
+
const {
|
|
82
|
+
domainAliases
|
|
83
|
+
} = site;
|
|
64
84
|
const clusterMode = (0, _get.default)(blocklet.meta, 'capabilities.clusterMode', false);
|
|
65
85
|
useSubscription('system.info', res => {
|
|
66
86
|
if (clusterMode) {
|
|
@@ -82,7 +102,6 @@ function BlockletEnvironment(_ref) {
|
|
|
82
102
|
const customType = blocklet.environments.find(x => x.key === 'BLOCKLET_WALLET_TYPE');
|
|
83
103
|
const customDelete = blocklet.environments.find(x => x.key === 'BLOCKLET_DELETABLE');
|
|
84
104
|
const deletable = !customDelete || customDelete.value === 'yes';
|
|
85
|
-
const customColor = blocklet.environments.find(x => x.key === 'BLOCKLET_PASSPORT_COLOR');
|
|
86
105
|
const customUrl = blocklet.environments.find(x => x.key === 'BLOCKLET_APP_URL');
|
|
87
106
|
const customLogo = blocklet.environments.find(x => x.key === 'BLOCKLET_APP_LOGO');
|
|
88
107
|
const customLogoSquare = blocklet.environments.find(x => x.key === 'BLOCKLET_APP_LOGO_SQUARE');
|
|
@@ -94,14 +113,6 @@ function BlockletEnvironment(_ref) {
|
|
|
94
113
|
key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_DESCRIPTION,
|
|
95
114
|
description: t('blocklet.config.description'),
|
|
96
115
|
value: blocklet.environments.find(x => x.key === 'BLOCKLET_APP_DESCRIPTION').value
|
|
97
|
-
}, {
|
|
98
|
-
key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_PASSPORT_COLOR,
|
|
99
|
-
description: t('blocklet.config.passportColor'),
|
|
100
|
-
value: customColor ? customColor.value : 'auto',
|
|
101
|
-
componentType: 'passport',
|
|
102
|
-
componentProps: {
|
|
103
|
-
blocklet
|
|
104
|
-
}
|
|
105
116
|
}, {
|
|
106
117
|
key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_URL,
|
|
107
118
|
description: t('blocklet.config.appUrl'),
|
|
@@ -273,6 +284,30 @@ function BlockletEnvironment(_ref) {
|
|
|
273
284
|
setLoading(false);
|
|
274
285
|
}
|
|
275
286
|
};
|
|
287
|
+
const onUpdateCors = async value => {
|
|
288
|
+
const oldValue = site.corsAllowedOrigins || [];
|
|
289
|
+
const newValue = value.split(',').map(x => x.trim()).filter(Boolean);
|
|
290
|
+
if ((0, _isEqual.default)(oldValue, newValue)) {
|
|
291
|
+
return false;
|
|
292
|
+
}
|
|
293
|
+
try {
|
|
294
|
+
setLoading(true);
|
|
295
|
+
const corsAllowedOrigins = newValue.length ? newValue : ['__none__'];
|
|
296
|
+
await node.api.updateRoutingSite({
|
|
297
|
+
input: {
|
|
298
|
+
id: site.id,
|
|
299
|
+
corsAllowedOrigins,
|
|
300
|
+
teamDid: blocklet.meta.did
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
setLoading(false);
|
|
304
|
+
} catch (err) {
|
|
305
|
+
_toast.default.error(err.message);
|
|
306
|
+
setLoading(false);
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
return true;
|
|
310
|
+
};
|
|
276
311
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({}, rest), {}, {
|
|
277
312
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_schemaForm.default, {
|
|
278
313
|
disabled: disabled,
|
|
@@ -378,6 +413,138 @@ function BlockletEnvironment(_ref) {
|
|
|
378
413
|
className: "config-form",
|
|
379
414
|
component: _Divider.default,
|
|
380
415
|
my: 3
|
|
416
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
417
|
+
className: "config-form",
|
|
418
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
419
|
+
display: "flex",
|
|
420
|
+
justifyContent: "space-between",
|
|
421
|
+
alignItems: "center",
|
|
422
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
423
|
+
className: "config-label",
|
|
424
|
+
children: t('common.domain')
|
|
425
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
426
|
+
display: "flex",
|
|
427
|
+
alignItems: "center",
|
|
428
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_addDomainAlias.default, {
|
|
429
|
+
id: site.id,
|
|
430
|
+
title: t('router.domain.add.title'),
|
|
431
|
+
teamDid: did,
|
|
432
|
+
children: _ref3 => {
|
|
433
|
+
let {
|
|
434
|
+
open
|
|
435
|
+
} = _ref3;
|
|
436
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
437
|
+
style: {
|
|
438
|
+
marginLeft: 16
|
|
439
|
+
},
|
|
440
|
+
variant: "contained",
|
|
441
|
+
color: "primary",
|
|
442
|
+
"data-cy": "add-domain-alias",
|
|
443
|
+
onClick: open,
|
|
444
|
+
disabled: (0, _util2.isInProgress)(blocklet.status),
|
|
445
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
|
|
446
|
+
style: {
|
|
447
|
+
fontSize: '1.3em',
|
|
448
|
+
marginRight: 4
|
|
449
|
+
}
|
|
450
|
+
}), t('common.add')]
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
})
|
|
454
|
+
})]
|
|
455
|
+
}), domainAliases.map((domain, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
456
|
+
display: "flex",
|
|
457
|
+
alignItems: "center",
|
|
458
|
+
justifyContent: "space-between",
|
|
459
|
+
mt: index ? 0 : 1,
|
|
460
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
461
|
+
display: "flex",
|
|
462
|
+
alignItems: "center",
|
|
463
|
+
justifyContent: "space-between",
|
|
464
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_domainStatus.default, {
|
|
465
|
+
domain: domain,
|
|
466
|
+
filters: ['domain']
|
|
467
|
+
}, "".concat(domain.value, "-domain")), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
468
|
+
ml: 2,
|
|
469
|
+
mr: 0.5,
|
|
470
|
+
children: domain.value
|
|
471
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_domainStatus.default, {
|
|
472
|
+
domain: domain,
|
|
473
|
+
filters: ['http']
|
|
474
|
+
}, "".concat(domain.value, "-http")), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
475
|
+
style: {
|
|
476
|
+
marginLeft: 12
|
|
477
|
+
}
|
|
478
|
+
})]
|
|
479
|
+
}), hasPermission && !domain.isProtected ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_domainActions.default, {
|
|
480
|
+
site: site,
|
|
481
|
+
domain: domain,
|
|
482
|
+
blocklet: blocklet
|
|
483
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
484
|
+
title: t('blocklet.router.domainLockTooltip'),
|
|
485
|
+
placement: "top",
|
|
486
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
487
|
+
disabled: true,
|
|
488
|
+
size: "large",
|
|
489
|
+
style: {
|
|
490
|
+
pointerEvents: 'auto',
|
|
491
|
+
// padding replace to margin, fix the tooltip position
|
|
492
|
+
paddingTop: 0,
|
|
493
|
+
paddingBottom: 0,
|
|
494
|
+
margin: '12px 0'
|
|
495
|
+
},
|
|
496
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LockIcon.default, {
|
|
497
|
+
style: {
|
|
498
|
+
fill: theme.palette.text.disabled
|
|
499
|
+
}
|
|
500
|
+
})
|
|
501
|
+
})
|
|
502
|
+
})]
|
|
503
|
+
}, domain.value)), !domainAliases.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
504
|
+
mt: 4,
|
|
505
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {
|
|
506
|
+
children: t('common.empty')
|
|
507
|
+
})
|
|
508
|
+
})]
|
|
509
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
510
|
+
className: "config-form",
|
|
511
|
+
component: _Divider.default,
|
|
512
|
+
my: 3
|
|
513
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
514
|
+
className: "config-form",
|
|
515
|
+
mt: 2,
|
|
516
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
517
|
+
className: "config-label",
|
|
518
|
+
mb: 0,
|
|
519
|
+
children: t('common.security')
|
|
520
|
+
})
|
|
521
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
522
|
+
className: "config-form",
|
|
523
|
+
mt: 2,
|
|
524
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
525
|
+
className: "config-label",
|
|
526
|
+
fontSize: 14,
|
|
527
|
+
mb: 0,
|
|
528
|
+
children: t('router.domainSecurity.cors.title')
|
|
529
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
530
|
+
mb: 1.5,
|
|
531
|
+
className: "config-desc",
|
|
532
|
+
children: t('router.domainSecurity.cors.description', {
|
|
533
|
+
name: 'the blocklet'
|
|
534
|
+
})
|
|
535
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_formTextInput.default, {
|
|
536
|
+
style: {
|
|
537
|
+
marginTop: 0
|
|
538
|
+
},
|
|
539
|
+
disabled: loading || disabled,
|
|
540
|
+
loading: loading,
|
|
541
|
+
initialValue: (site.corsAllowedOrigins || []).join(', '),
|
|
542
|
+
onSubmit: onUpdateCors
|
|
543
|
+
})]
|
|
544
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
545
|
+
className: "config-form",
|
|
546
|
+
component: _Divider.default,
|
|
547
|
+
my: 3
|
|
381
548
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
382
549
|
className: "config-form",
|
|
383
550
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
@@ -427,11 +594,11 @@ function BlockletEnvironment(_ref) {
|
|
|
427
594
|
defaultValue: {
|
|
428
595
|
[_constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SK]: blocklet.environments.find(x => x.key === 'BLOCKLET_APP_SK').value
|
|
429
596
|
},
|
|
430
|
-
onChange: (changeValue,
|
|
597
|
+
onChange: (changeValue, _ref4) => {
|
|
431
598
|
let {
|
|
432
599
|
action,
|
|
433
600
|
currentItem
|
|
434
|
-
} =
|
|
601
|
+
} = _ref4;
|
|
435
602
|
if (action === 'edit') {
|
|
436
603
|
setEditingItem(currentItem);
|
|
437
604
|
} else if (['cancel', 'confirm'].includes(action)) {
|
|
@@ -444,7 +611,7 @@ function BlockletEnvironment(_ref) {
|
|
|
444
611
|
})]
|
|
445
612
|
}));
|
|
446
613
|
}
|
|
447
|
-
const BlockletEnvironmentInDaemon = (0, _permission.withPermission)(BlockletEnvironment, '
|
|
614
|
+
const BlockletEnvironmentInDaemon = (0, _permission.withPermission)(BlockletEnvironment, 'mutate_blockets');
|
|
448
615
|
const BlockletEnvironmentInService = (0, _permission.withPermission)(BlockletEnvironment, '', _util2.BlockletAdminRoles);
|
|
449
616
|
function BlockletEnvironmentWithPermission(props) {
|
|
450
617
|
const {
|
|
@@ -464,5 +631,5 @@ BlockletEnvironment.defaultProps = {
|
|
|
464
631
|
onUpdate: () => {},
|
|
465
632
|
hasPermission: false
|
|
466
633
|
};
|
|
467
|
-
const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .config-form {\n width: 80%;\n flex-grow: 1;\n overflow-y: auto;\n ", " {\n width: 100%;\n flex-shrink: 0;\n padding: 0 24px;\n transform: translate(0, 0);\n max-height: 60vh;\n }\n }\n\n .config-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px 0;\n }\n\n .config-label {\n font-weight: bold;\n }\n\n .config-desc {\n font-weight: normal;\n font-size: 12px;\n color: #666;\n }\n"])), props => props.theme.breakpoints.down('md'));
|
|
634
|
+
const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .config-form {\n width: 80%;\n flex-grow: 1;\n overflow-y: auto;\n ", " {\n width: 100%;\n flex-shrink: 0;\n padding: 0 24px;\n transform: translate(0, 0);\n max-height: 60vh;\n }\n }\n\n .config-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px 0;\n }\n\n .config-label {\n font-weight: bold;\n }\n\n .config-desc {\n font-weight: normal;\n font-size: 12px;\n color: #666;\n }\n\n .form-item {\n margin-top: 0;\n }\n"])), props => props.theme.breakpoints.down('md'));
|
|
468
635
|
const StyledMenuItem = (0, _styled.default)(_MenuItem.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .tip {\n font-size: 12px;\n color: ", ";\n }\n"])), props => props.theme.palette.text.secondary);
|
package/lib/blocklet/overview.js
CHANGED
|
@@ -7,28 +7,87 @@ exports.default = BlockletOverview;
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
11
|
+
var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
|
|
12
|
+
var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
|
|
13
|
+
var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
|
|
10
14
|
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
11
15
|
var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
|
|
12
16
|
var _InfoRow = _interopRequireDefault(require("@arcblock/ux/lib/InfoRow"));
|
|
13
17
|
var _util = require("@blocklet/meta/lib/util");
|
|
14
18
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
19
|
+
var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
|
|
20
|
+
var _blocklet = require("../contexts/blocklet");
|
|
21
|
+
var _util2 = require("../util");
|
|
15
22
|
var _didAddress = _interopRequireDefault(require("../did-address"));
|
|
16
23
|
var _blockletSource = _interopRequireDefault(require("./blocklet-source"));
|
|
17
24
|
var _runtimeInfo = _interopRequireDefault(require("./runtime-info"));
|
|
18
25
|
var _diskInfo = _interopRequireDefault(require("./disk-info"));
|
|
19
26
|
var _status = _interopRequireDefault(require("./status"));
|
|
20
27
|
var _version = _interopRequireDefault(require("./version"));
|
|
21
|
-
var
|
|
28
|
+
var _domainStatus = _interopRequireDefault(require("./router/domain-status"));
|
|
29
|
+
var _types = require("./types");
|
|
22
30
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
var _templateObject;
|
|
24
31
|
const _excluded = ["blocklet"];
|
|
32
|
+
var _templateObject, _templateObject2;
|
|
25
33
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
27
34
|
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; }
|
|
28
35
|
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; }
|
|
29
36
|
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; }
|
|
30
37
|
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
38
|
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; }
|
|
39
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
40
|
+
function DomainLink(_ref) {
|
|
41
|
+
let {
|
|
42
|
+
domain,
|
|
43
|
+
children
|
|
44
|
+
} = _ref;
|
|
45
|
+
const {
|
|
46
|
+
t
|
|
47
|
+
} = (0, _react.useContext)(_context.LocaleContext);
|
|
48
|
+
const {
|
|
49
|
+
href,
|
|
50
|
+
accessibility
|
|
51
|
+
} = domain;
|
|
52
|
+
if (!accessibility || accessibility.loading) {
|
|
53
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(LinkDiv, {
|
|
54
|
+
children: [children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
55
|
+
title: t('blocklet.router.checkUrlAccessible'),
|
|
56
|
+
placement: "top-end",
|
|
57
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
58
|
+
className: "status",
|
|
59
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
|
|
60
|
+
size: 12
|
|
61
|
+
})
|
|
62
|
+
})
|
|
63
|
+
})]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (!accessibility.accessible) {
|
|
67
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkDiv, {
|
|
68
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
69
|
+
title: t('blocklet.router.urlInaccessible'),
|
|
70
|
+
placement: "top-end",
|
|
71
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
72
|
+
children: children
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkDiv, {
|
|
78
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
|
|
79
|
+
href: href,
|
|
80
|
+
target: "_blank",
|
|
81
|
+
rel: "noopener noreferrer",
|
|
82
|
+
children: children
|
|
83
|
+
})
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
DomainLink.propTypes = {
|
|
87
|
+
domain: _types.DomainType.isRequired,
|
|
88
|
+
children: _propTypes.default.any.isRequired
|
|
89
|
+
};
|
|
90
|
+
const LinkDiv = _styled.default.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &,\n & > * {\n color: #222;\n font-size: 18px;\n }\n\n .status {\n margin-left: 8px;\n }\n"])));
|
|
32
91
|
const getEngineRows = (engine, t) => {
|
|
33
92
|
if (!engine) {
|
|
34
93
|
return [];
|
|
@@ -46,15 +105,18 @@ const getEngineRows = (engine, t) => {
|
|
|
46
105
|
})
|
|
47
106
|
}];
|
|
48
107
|
};
|
|
49
|
-
function BlockletOverview(
|
|
108
|
+
function BlockletOverview(_ref2) {
|
|
50
109
|
var _blocklet$settings;
|
|
51
110
|
let {
|
|
52
111
|
blocklet
|
|
53
|
-
} =
|
|
54
|
-
rest = _objectWithoutProperties(
|
|
112
|
+
} = _ref2,
|
|
113
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
55
114
|
const {
|
|
56
115
|
t
|
|
57
116
|
} = (0, _react.useContext)(_context.LocaleContext);
|
|
117
|
+
const {
|
|
118
|
+
loadingRuntimeInfo
|
|
119
|
+
} = (0, _blocklet.useBlockletContext)();
|
|
58
120
|
const {
|
|
59
121
|
value: appDid
|
|
60
122
|
} = (blocklet.environments || []).find(x => x.key === 'BLOCKLET_APP_ID') || {};
|
|
@@ -139,10 +201,65 @@ function BlockletOverview(_ref) {
|
|
|
139
201
|
children: row.value
|
|
140
202
|
}, row.name);
|
|
141
203
|
});
|
|
204
|
+
const {
|
|
205
|
+
site
|
|
206
|
+
} = blocklet;
|
|
207
|
+
const {
|
|
208
|
+
domainAliases = []
|
|
209
|
+
} = site || {};
|
|
142
210
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({
|
|
143
211
|
component: "div"
|
|
144
212
|
}, rest), {}, {
|
|
145
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
213
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
214
|
+
display: "flex",
|
|
215
|
+
justifyContent: "space-between",
|
|
216
|
+
alignItems: "center",
|
|
217
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
218
|
+
className: "title first",
|
|
219
|
+
mb: 0,
|
|
220
|
+
children: t('common.domain')
|
|
221
|
+
})
|
|
222
|
+
}), blocklet.status !== 'running' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
223
|
+
mt: -2,
|
|
224
|
+
mb: 1.5,
|
|
225
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
|
|
226
|
+
severity: "warning",
|
|
227
|
+
children: t('blocklet.router.noRunning')
|
|
228
|
+
})
|
|
229
|
+
}), domainAliases.map((domain, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
230
|
+
display: "flex",
|
|
231
|
+
alignItems: "center",
|
|
232
|
+
justifyContent: "space-between",
|
|
233
|
+
mt: index ? 3 : 0,
|
|
234
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
235
|
+
display: "flex",
|
|
236
|
+
alignItems: "center",
|
|
237
|
+
justifyContent: "space-between",
|
|
238
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_domainStatus.default, {
|
|
239
|
+
domain: domain,
|
|
240
|
+
filters: ['domain']
|
|
241
|
+
}, "".concat(domain.value, "-domain")), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
242
|
+
ml: 2,
|
|
243
|
+
mr: 0.5,
|
|
244
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DomainLink, {
|
|
245
|
+
domain: domain,
|
|
246
|
+
target: "_blank",
|
|
247
|
+
children: domain.value
|
|
248
|
+
})
|
|
249
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_domainStatus.default, {
|
|
250
|
+
domain: domain,
|
|
251
|
+
filters: ['http']
|
|
252
|
+
}, "".concat(domain.value, "-http")), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
253
|
+
style: {
|
|
254
|
+
marginLeft: 12
|
|
255
|
+
}
|
|
256
|
+
})]
|
|
257
|
+
})
|
|
258
|
+
}, domain.value)), !domainAliases.length && (loadingRuntimeInfo ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
|
|
259
|
+
size: 16
|
|
260
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {
|
|
261
|
+
children: t('common.empty')
|
|
262
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
146
263
|
className: "title",
|
|
147
264
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
148
265
|
children: t('common.basicInfo')
|
|
@@ -159,11 +276,11 @@ function BlockletOverview(_ref) {
|
|
|
159
276
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
160
277
|
className: "title",
|
|
161
278
|
children: t('common.engine')
|
|
162
|
-
}), engineRows.map(
|
|
279
|
+
}), engineRows.map(_ref3 => {
|
|
163
280
|
let {
|
|
164
281
|
name,
|
|
165
282
|
value
|
|
166
|
-
} =
|
|
283
|
+
} = _ref3;
|
|
167
284
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
|
|
168
285
|
nameWidth: 120,
|
|
169
286
|
name: name,
|
|
@@ -181,4 +298,4 @@ function BlockletOverview(_ref) {
|
|
|
181
298
|
BlockletOverview.propTypes = {
|
|
182
299
|
blocklet: _propTypes.default.object.isRequired
|
|
183
300
|
};
|
|
184
|
-
const Div = (0, _styled.default)(_Typography.default)(
|
|
301
|
+
const Div = (0, _styled.default)(_Typography.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .title {\n font-size: 1.2rem;\n font-weight: bold;\n margin-top: ", ";\n margin-bottom: ", ";\n &.first {\n margin-top: 0;\n }\n }\n"])), props => props.theme.spacing(5), props => props.theme.spacing(3));
|