@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,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = DomainStatus;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Https = _interopRequireDefault(require("@mui/icons-material/Https"));
10
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
11
+ var _context = require("@arcblock/ux/lib/Locale/context");
12
+ var _dot = _interopRequireDefault(require("../../dot"));
13
+ var _types = require("../types");
14
+ var _util = require("../../util");
15
+ var _certificate = _interopRequireDefault(require("../../certificate"));
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ function DomainStatus(_ref) {
19
+ let {
20
+ domain,
21
+ filters
22
+ } = _ref;
23
+ const {
24
+ t
25
+ } = (0, _context.useLocaleContext)();
26
+ const {
27
+ value: name,
28
+ domainStatus
29
+ } = domain;
30
+ if (!(0, _util.shouldCheckDomainStatus)(name)) {
31
+ return null;
32
+ }
33
+ let domainIcon = null;
34
+ let httpsIcon = null;
35
+ const {
36
+ isHttps,
37
+ matchedCert
38
+ } = domainStatus;
39
+ if (!(0, _util.checkIsWildcardDomain)(name)) {
40
+ const {
41
+ dns: {
42
+ resolved,
43
+ ip
44
+ } = {}
45
+ } = domainStatus;
46
+ if (resolved || ip === '127.0.0.1') {
47
+ domainIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
48
+ title: t('router.domain.verify.ok'),
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dot.default, {
50
+ color: "success"
51
+ })
52
+ });
53
+ } else {
54
+ domainIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
55
+ title: t('router.domain.verify.notResolved'),
56
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dot.default, {
57
+ color: "error"
58
+ })
59
+ });
60
+ }
61
+ }
62
+ if (isHttps) {
63
+ httpsIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_certificate.default, {
64
+ certificate: matchedCert
65
+ });
66
+ } else {
67
+ httpsIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
68
+ title: t('router.domain.https.bad'),
69
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Https.default, {
70
+ style: {
71
+ color: '#D0021B',
72
+ fontSize: 20,
73
+ marginLeft: 8,
74
+ cursor: 'pointer'
75
+ }
76
+ })
77
+ });
78
+ }
79
+ const items = filters.map(x => {
80
+ if (x === 'domain') {
81
+ return domainIcon;
82
+ }
83
+ if (x === 'http') {
84
+ return httpsIcon;
85
+ }
86
+ return null;
87
+ });
88
+ return /*#__PURE__*/(0, _react.createElement)(_react.Fragment, null, ...items);
89
+ }
90
+ DomainStatus.propTypes = {
91
+ domain: _types.DomainType.isRequired,
92
+ filters: _propTypes.default.array
93
+ };
94
+ DomainStatus.defaultProps = {
95
+ filters: ['domain', 'http']
96
+ };
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = RuleActions;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _context = require("@arcblock/ux/lib/Locale/context");
9
+ var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
10
+ var _Launch = _interopRequireDefault(require("@mui/icons-material/Launch"));
11
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
12
+ var _SettingsOutlined = _interopRequireDefault(require("@mui/icons-material/SettingsOutlined"));
13
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
14
+ var _blocklet = require("../../contexts/blocklet");
15
+ var _deleteRule = _interopRequireDefault(require("./action/delete-rule"));
16
+ var _updateRule = _interopRequireDefault(require("./action/update-rule"));
17
+ var _util = require("../../util");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+ 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; }
21
+ 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; }
22
+ 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; }
23
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
24
+ 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); }
25
+ function RuleActions(rule) {
26
+ const {
27
+ locale
28
+ } = (0, _context.useLocaleContext)();
29
+ const {
30
+ blocklet,
31
+ recommendedDomain: domain
32
+ } = (0, _blocklet.useBlockletContext)();
33
+ const href = (0, _util.getAccessUrl)(domain, rule.from.pathPrefix, (0, _util.getBlockletUrlParams)(blocklet, locale));
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
35
+ display: "flex",
36
+ alignItems: "center",
37
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
38
+ target: "_blank",
39
+ href: href,
40
+ rel: "noopener noreferrer",
41
+ title: href,
42
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
43
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Launch.default, {})
44
+ })
45
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_updateRule.default, _objectSpread(_objectSpread({}, rule), {}, {
46
+ children: _ref => {
47
+ let {
48
+ open: o
49
+ } = _ref;
50
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
51
+ onClick: o,
52
+ disabled: rule.isProtected,
53
+ "data-cy": "action-update-rule",
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsOutlined.default, {})
55
+ });
56
+ }
57
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_deleteRule.default, _objectSpread(_objectSpread({}, rule), {}, {
58
+ children: _ref2 => {
59
+ let {
60
+ open
61
+ } = _ref2;
62
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
63
+ onClick: open,
64
+ disabled: rule.isProtected,
65
+ "data-cy": "action-delete-rule",
66
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {})
67
+ });
68
+ }
69
+ }))]
70
+ });
71
+ }
72
+ RuleActions.propTypes = {
73
+ isProtected: _propTypes.default.bool
74
+ };
75
+ RuleActions.defaultProps = {
76
+ isProtected: false
77
+ };
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = RuleListWithPermission;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _isUrl = _interopRequireDefault(require("is-url"));
9
+ var _useTheme = _interopRequireDefault(require("@mui/material/styles/useTheme"));
10
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
11
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
12
+ var _Link = _interopRequireDefault(require("@mui/material/Link"));
13
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
14
+ var _Avatar = _interopRequireDefault(require("@mui/material/Avatar"));
15
+ var _LockIcon = _interopRequireDefault(require("@arcblock/icons/lib/LockIcon"));
16
+ var _context = require("@arcblock/ux/lib/Locale/context");
17
+ var _constant = require("@abtnode/constant");
18
+ var _util = require("../../util");
19
+ var _blocklet = require("../../contexts/blocklet");
20
+ var _node = require("../../contexts/node");
21
+ var _permission = require("../../permission");
22
+ var _line = _interopRequireDefault(require("../component/line"));
23
+ var _ruleActions = _interopRequireDefault(require("./rule-actions"));
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 RedirectRule(_ref) {
32
+ let {
33
+ domain,
34
+ isHttps,
35
+ toUrl
36
+ } = _ref;
37
+ const scheme = isHttps ? 'https' : 'http';
38
+ let tmpToUrl = toUrl;
39
+ if (!(0, _isUrl.default)(tmpToUrl)) {
40
+ tmpToUrl = "".concat(scheme, "://").concat(domain).concat(toUrl);
41
+ }
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
43
+ href: tmpToUrl,
44
+ target: "_blank",
45
+ style: {
46
+ fontSize: 14
47
+ },
48
+ underline: "hover",
49
+ children: toUrl
50
+ }, tmpToUrl);
51
+ }
52
+ RedirectRule.propTypes = {
53
+ domain: _propTypes.default.string.isRequired,
54
+ toUrl: _propTypes.default.string.isRequired,
55
+ isHttps: _propTypes.default.bool
56
+ };
57
+ RedirectRule.defaultProps = {
58
+ isHttps: false
59
+ };
60
+ function RuleList(_ref2) {
61
+ let {
62
+ hasPermission
63
+ } = _ref2;
64
+ const {
65
+ t,
66
+ locale
67
+ } = (0, _context.useLocaleContext)();
68
+ const theme = (0, _useTheme.default)();
69
+ const {
70
+ blocklet,
71
+ recommendedDomain: domain
72
+ } = (0, _blocklet.useBlockletContext)();
73
+ const rules = blocklet.site.rules.filter(rule => rule.to.did !== blocklet.meta.did).filter(rule => rule.to.type !== _constant.ROUTING_RULE_TYPES.BLOCKLET);
74
+ return rules.map(rule => {
75
+ let avatarName = '';
76
+ if (rule.to.type === _constant.ROUTING_RULE_TYPES.NONE) {
77
+ avatarName = '404';
78
+ } else if (rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT) {
79
+ avatarName = rule.to.redirectCode;
80
+ }
81
+ const action = rule.isProtected ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
82
+ title: t('blocklet.router.urlLockTooltip'),
83
+ placement: "top",
84
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
85
+ disabled: true,
86
+ size: "large",
87
+ style: {
88
+ pointerEvents: 'auto',
89
+ // padding replace to margin, fix the tooltip position
90
+ paddingTop: 0,
91
+ paddingBottom: 0,
92
+ margin: '12px 0'
93
+ },
94
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LockIcon.default, {
95
+ style: {
96
+ fill: theme.palette.text.disabled
97
+ }
98
+ })
99
+ })
100
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ruleActions.default, _objectSpread({}, rule));
101
+ return [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
102
+ display: "flex",
103
+ py: 2,
104
+ className: "component-item",
105
+ justifyContent: "space-between",
106
+ alignItems: "center",
107
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
108
+ width: {
109
+ xs: 300,
110
+ md: 400
111
+ },
112
+ display: "flex",
113
+ alignItems: "center",
114
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
115
+ width: 28
116
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
117
+ children: avatarName
118
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
119
+ ml: "16px",
120
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
121
+ style: {
122
+ color: '#222',
123
+ fontSize: 18
124
+ },
125
+ children: [rule.to.type === _constant.ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT && t('common.redirect')]
126
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
127
+ display: "flex",
128
+ alignItems: "center",
129
+ children: rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT && /*#__PURE__*/(0, _jsxRuntime.jsx)(RedirectRule, {
130
+ domain: domain,
131
+ toUrl: rule.to.url
132
+ })
133
+ })]
134
+ })]
135
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
136
+ px: 2,
137
+ sx: {
138
+ display: {
139
+ xs: 'none',
140
+ md: 'flex'
141
+ }
142
+ },
143
+ alignItems: "center",
144
+ flexGrow: "1",
145
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
146
+ href: (0, _util.getAccessUrl)(domain, rule.from.pathPrefix, (0, _util.getBlockletUrlParams)(blocklet, locale)),
147
+ target: "_blank",
148
+ style: {
149
+ fontSize: 18
150
+ },
151
+ underline: "hover",
152
+ children: rule.from.pathPrefix
153
+ })
154
+ }, rule.from.pathPrefix), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
155
+ children: hasPermission && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
156
+ style: {
157
+ textAlign: 'right'
158
+ },
159
+ children: action
160
+ })
161
+ }, "actions")]
162
+ }, "group-not-gateway-box"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_line.default, {})];
163
+ });
164
+ }
165
+ RuleList.propTypes = {
166
+ hasPermission: _propTypes.default.bool
167
+ };
168
+ RuleList.defaultProps = {
169
+ hasPermission: false
170
+ };
171
+ const RuleListInDaemon = (0, _permission.withPermission)(RuleList, 'mutate_blocklets');
172
+ const RuleListInService = (0, _permission.withPermission)(RuleList, '', _util.BlockletAdminRoles);
173
+ function RuleListWithPermission(props) {
174
+ const {
175
+ inService
176
+ } = (0, _node.useNodeContext)();
177
+ if (inService) {
178
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RuleListInService, _objectSpread({}, props));
179
+ }
180
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RuleListInDaemon, _objectSpread({}, props));
181
+ }
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateSite = exports.validateRule = exports.validatePathPrefix = exports.validateDomain = exports.isSpecialDomain = exports.getInitialBlockletDid = void 0;
7
+ var _constant = require("@abtnode/constant");
8
+ var _isPathPrefixEqual = _interopRequireDefault(require("@abtnode/util/lib/is-path-prefix-equal"));
9
+ var _constant2 = require("@blocklet/constant");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ /* eslint-disable import/prefer-default-export */
12
+
13
+ const validateRuleByServiceType = (params, localeContext) => {
14
+ if (params.type === _constant.ROUTING_RULE_TYPES.REDIRECT) {
15
+ if (!params.url) {
16
+ return new Error("".concat(localeContext('router.validation.redirectUrlRequired')));
17
+ }
18
+ if (!params.redirectCode) {
19
+ return new Error("redirect ".concat(localeContext('router.validation.redirectCodeRequired')));
20
+ }
21
+ } else if (params.type === _constant.ROUTING_RULE_TYPES.BLOCKLET) {
22
+ if (!params.did) {
23
+ return new Error(localeContext('router.validation.didRequired'));
24
+ }
25
+ }
26
+ return null;
27
+ };
28
+ const validateDomain = (domain, localeContext) => {
29
+ if (!domain) {
30
+ return localeContext('router.domain.validate.emptyTip');
31
+ }
32
+ if (domain.endsWith(_constant.DEFAULT_IP_DOMAIN_SUFFIX)) {
33
+ return localeContext('router.domain.validate.suffixTip', {
34
+ suffix: _constant.DEFAULT_IP_DOMAIN_SUFFIX
35
+ });
36
+ }
37
+ return null;
38
+ };
39
+
40
+ /**
41
+ * form validator of add site(add domain)
42
+ * @param {Object} params form params
43
+ * @param {Function} localeContext error message
44
+ */
45
+ exports.validateDomain = validateDomain;
46
+ const validateSite = (params, localeContext) => {
47
+ const validateResult = validateRuleByServiceType(params, localeContext);
48
+ if (validateResult) {
49
+ return validateResult;
50
+ }
51
+ const errMsg = validateDomain(params.domain, localeContext);
52
+ if (errMsg) {
53
+ return new Error(errMsg);
54
+ }
55
+ return null;
56
+ };
57
+
58
+ /**
59
+ * form validator of add_rule and update_rule
60
+ * @param {Object} params form params
61
+ * @param {Function} localeContext error message
62
+ */
63
+ exports.validateSite = validateSite;
64
+ const validateRule = (params, localeContext) => {
65
+ const validateResult = validateRuleByServiceType(params, localeContext);
66
+ if (validateResult) {
67
+ return validateResult;
68
+ }
69
+ if (!params.pathPrefix.length) {
70
+ return new Error(localeContext('router.validation.pathPrefixCannotBeEmpty'));
71
+ }
72
+ if (params.pathPrefix.length > 150) {
73
+ return new Error(localeContext('router.validation.pathPrefixTooLong', {
74
+ length: 150
75
+ }));
76
+ }
77
+ return null;
78
+ };
79
+ exports.validateRule = validateRule;
80
+ const validatePathPrefix = _ref => {
81
+ let {
82
+ params,
83
+ blocklets,
84
+ blocklet: curBlocklet,
85
+ locale = 'en'
86
+ } = _ref;
87
+ // validate children
88
+ if (curBlocklet) {
89
+ let exist = (curBlocklet.children || []).find(x => (0, _isPathPrefixEqual.default)(x.mountPoint, params.pathPrefix));
90
+ if (curBlocklet.meta.group !== 'gateway' && params.pathPrefix === '/') {
91
+ exist = '/';
92
+ }
93
+ if (exist) {
94
+ return {
95
+ zh: "\u6302\u8F7D\u70B9 ".concat(params.pathPrefix, " \u5DF2\u5B58\u5728\uFF0C\u8BF7\u4F7F\u7528\u5176\u4ED6\u6302\u8F7D\u70B9"),
96
+ en: "The mount point ".concat(params.pathPrefix, " already exist, please use another mount point")
97
+ }[locale];
98
+ }
99
+ }
100
+ const blocklet = blocklets.find(item => item.meta.did === params.did);
101
+ if (!blocklet) {
102
+ return '';
103
+ }
104
+ const selected = blocklet.meta.interfaces.find(x => x.type === 'web');
105
+ if (!selected) {
106
+ return '';
107
+ }
108
+ if (selected.prefix !== _constant2.BLOCKLET_DYNAMIC_PATH_PREFIX && params.pathPrefix !== selected.prefix) {
109
+ return {
110
+ zh: "\u8BE5 blocklet \u53EA\u80FD\u6302\u8F7D\u5728 ".concat(selected.prefix),
111
+ en: "This blocklet can only be mounted on ".concat(selected.prefix)
112
+ }[locale];
113
+ }
114
+ return '';
115
+ };
116
+
117
+ /**
118
+ * get initial blocklet did when add rule / update rule / add domain
119
+ * @param {array} blocklets
120
+ */
121
+ exports.validatePathPrefix = validatePathPrefix;
122
+ const getInitialBlockletDid = blocklets => {
123
+ if (blocklets.length === 0) {
124
+ return '';
125
+ }
126
+ const {
127
+ searchParams
128
+ } = new URL(window.location.href);
129
+ const fromDid = searchParams.get('fromDid');
130
+ if (fromDid) {
131
+ const blocklet = blocklets.find(x => x.meta.did === fromDid);
132
+ if (blocklet) {
133
+ return blocklet.meta.did;
134
+ }
135
+ }
136
+ return blocklets[0].meta.did;
137
+ };
138
+ exports.getInitialBlockletDid = getInitialBlockletDid;
139
+ const isSpecialDomain = name => {
140
+ const specialDomains = [_constant.DOMAIN_FOR_IP_SITE_REGEXP, _constant.DOMAIN_FOR_DEFAULT_SITE, _constant.DOMAIN_FOR_IP_SITE];
141
+ if (typeof window !== 'undefined' && typeof window.location !== 'undefined') {
142
+ specialDomains.push(window.location.hostname);
143
+ }
144
+ return specialDomains.includes(name);
145
+ };
146
+ exports.isSpecialDomain = isSpecialDomain;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BlockletRuntimeInfo;
7
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
10
+ var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
11
+ var _cpu = _interopRequireDefault(require("../monitor/cpu"));
12
+ var _memory = _interopRequireDefault(require("../monitor/memory"));
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ var _templateObject;
15
+ const _excluded = ["blocklet", "cpuHistory", "memoryHistory"];
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
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
+ 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
+ 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; }
21
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
22
+ 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); }
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 BlockletRuntimeInfo(_ref) {
26
+ let {
27
+ blocklet,
28
+ cpuHistory,
29
+ memoryHistory
30
+ } = _ref,
31
+ rest = _objectWithoutProperties(_ref, _excluded);
32
+ const runtimeInfo = blocklet.appRuntimeInfo || {};
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({
34
+ component: "div"
35
+ }, rest), {}, {
36
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Grid.default, {
37
+ className: "page-metrics",
38
+ container: true,
39
+ spacing: 5,
40
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
41
+ item: true,
42
+ lg: 4,
43
+ md: 6,
44
+ sm: 6,
45
+ xs: 12,
46
+ children: !!cpuHistory.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_cpu.default, {
47
+ currentLoad: runtimeInfo.cpuUsage || 0,
48
+ history: cpuHistory,
49
+ style: {
50
+ height: 150
51
+ },
52
+ hideDescription: true
53
+ })
54
+ }, "cpu"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
55
+ item: true,
56
+ lg: 4,
57
+ md: 6,
58
+ sm: 6,
59
+ xs: 12,
60
+ children: !!memoryHistory.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_memory.default, {
61
+ used: runtimeInfo.memoryUsage || 0,
62
+ history: memoryHistory,
63
+ style: {
64
+ height: 150
65
+ },
66
+ hideDescription: true
67
+ })
68
+ }, "memory")]
69
+ })
70
+ }));
71
+ }
72
+ BlockletRuntimeInfo.propTypes = {
73
+ blocklet: _propTypes.default.object.isRequired,
74
+ cpuHistory: _propTypes.default.arrayOf(_propTypes.default.shape({
75
+ date: _propTypes.default.number,
76
+ value: _propTypes.default.number
77
+ })),
78
+ memoryHistory: _propTypes.default.arrayOf(_propTypes.default.shape({
79
+ date: _propTypes.default.number,
80
+ value: _propTypes.default.number
81
+ }))
82
+ };
83
+ BlockletRuntimeInfo.defaultProps = {
84
+ cpuHistory: [],
85
+ memoryHistory: []
86
+ };
87
+ const Div = (0, _styled.default)(_Typography.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));