@abtnode/ux 1.8.0 → 1.8.3
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/card-selector.js +28 -28
- package/lib/invitation/invitation-app.js +26 -15
- package/lib/invitation/invitation-passport.js +69 -57
- package/lib/invitation/invitation-receive.js +39 -35
- package/lib/invitation/invitation-user.js +23 -22
- package/lib/invitation/invitation.js +23 -21
- package/lib/issue-passport.js +54 -47
- package/lib/launch-blocklet/content-layout.js +11 -3
- package/lib/launch-blocklet/page-header.js +11 -7
- package/lib/layout/addon.js +29 -27
- package/lib/locales/en.js +43 -5
- package/lib/locales/index.js +4 -2
- package/lib/locales/zh.js +45 -6
- package/lib/lost-passport.js +135 -110
- package/lib/nav-logo.js +63 -39
- package/lib/schema-form/color-input.js +57 -61
- package/lib/schema-form/index.js +104 -80
- package/lib/schema-form/passport-input.js +25 -24
- package/lib/schema-form/text-input.js +12 -7
- package/lib/toast.js +17 -14
- package/lib/util/index.js +2 -1
- package/lib/who-can-access/config.js +52 -0
- package/lib/wrap-locale.js +12 -8
- package/package.json +9 -8
package/lib/issue-passport.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = require("react");
|
|
9
9
|
|
|
10
10
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
11
|
|
|
@@ -31,11 +31,9 @@ var _wrapLocale = _interopRequireDefault(require("./wrap-locale"));
|
|
|
31
31
|
|
|
32
32
|
var _usePassportId = _interopRequireDefault(require("./hooks/use-passport-id"));
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
34
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
37
35
|
|
|
38
|
-
function
|
|
36
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
37
|
|
|
40
38
|
/* eslint-disable react/jsx-one-expression-per-line, no-undef */
|
|
41
39
|
// eslint-disable-next-line react/prop-types
|
|
@@ -92,48 +90,57 @@ function IssuePassport(_ref) {
|
|
|
92
90
|
history.replace('/');
|
|
93
91
|
};
|
|
94
92
|
|
|
95
|
-
return /*#__PURE__*/
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
93
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, {
|
|
94
|
+
children: success ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
95
|
+
className: "login",
|
|
96
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
97
|
+
className: "connect",
|
|
98
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
99
|
+
textAlign: "center",
|
|
100
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
101
|
+
mb: 3,
|
|
102
|
+
color: "success.main",
|
|
103
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CheckCircle.default, {
|
|
104
|
+
style: {
|
|
105
|
+
fontSize: 60
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
109
|
+
component: "p",
|
|
110
|
+
variant: "body1",
|
|
111
|
+
className: "subheader",
|
|
112
|
+
children: t('issuePassport.dialog.success')
|
|
113
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
114
|
+
mt: 3,
|
|
115
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
116
|
+
variant: "contained",
|
|
117
|
+
color: "primary",
|
|
118
|
+
onClick: onUsePassport,
|
|
119
|
+
children: t('issuePassport.dialog.loginWithPassport')
|
|
120
|
+
})
|
|
121
|
+
})]
|
|
122
|
+
})
|
|
123
|
+
})
|
|
124
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Connect.default, {
|
|
125
|
+
className: "connect",
|
|
126
|
+
action: "issue-passport",
|
|
127
|
+
checkFn: api.get,
|
|
128
|
+
checkTimeout: 10 * 60 * 1000,
|
|
129
|
+
socketUrl: api.socketUrl,
|
|
130
|
+
webWalletUrl: webWalletUrl,
|
|
131
|
+
onSuccess: onReceivePassport,
|
|
132
|
+
locale: locale,
|
|
133
|
+
messages: {
|
|
134
|
+
title: t('issuePassport.title'),
|
|
135
|
+
scan: t('issuePassport.description', {
|
|
136
|
+
name: window.env.appName
|
|
137
|
+
}),
|
|
138
|
+
confirm: t('issuePassport.dialog.confirm'),
|
|
139
|
+
success: t('issuePassport.dialog.success')
|
|
140
|
+
},
|
|
141
|
+
extraParams: extraParams
|
|
142
|
+
})
|
|
143
|
+
});
|
|
137
144
|
}
|
|
138
145
|
|
|
139
146
|
const Div = (0, _styledComponents.default)(_Center.default).withConfig({
|
|
@@ -5,16 +5,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = ContentLayout;
|
|
7
7
|
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
9
|
|
|
12
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
11
|
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
|
|
14
14
|
const _excluded = ["children"];
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
+
|
|
22
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
+
|
|
18
24
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
19
25
|
|
|
20
26
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
@@ -25,7 +31,9 @@ function ContentLayout(_ref) {
|
|
|
25
31
|
} = _ref,
|
|
26
32
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
27
33
|
|
|
28
|
-
return /*#__PURE__*/
|
|
34
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, _objectSpread(_objectSpread({}, props), {}, {
|
|
35
|
+
children: children
|
|
36
|
+
}));
|
|
29
37
|
}
|
|
30
38
|
|
|
31
39
|
ContentLayout.propTypes = {
|
|
@@ -5,12 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
9
|
|
|
12
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
11
|
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
|
|
16
16
|
function PageHeader(_ref) {
|
|
@@ -18,11 +18,15 @@ function PageHeader(_ref) {
|
|
|
18
18
|
title,
|
|
19
19
|
subTitle
|
|
20
20
|
} = _ref;
|
|
21
|
-
return /*#__PURE__*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Content, {
|
|
22
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
23
|
+
className: "title",
|
|
24
|
+
children: title
|
|
25
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
26
|
+
className: "sub-title",
|
|
27
|
+
children: subTitle
|
|
28
|
+
})]
|
|
29
|
+
});
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
const Content = _styledComponents.default.div.withConfig({
|
package/lib/layout/addon.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = HeaderAddon;
|
|
7
7
|
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = require("react");
|
|
9
9
|
|
|
10
10
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
11
|
|
|
@@ -13,8 +13,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
13
13
|
|
|
14
14
|
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
15
15
|
|
|
16
|
-
var _HelpOutline = _interopRequireDefault(require("@mui/icons-material/HelpOutline"));
|
|
17
|
-
|
|
18
16
|
var _reactRouterDom = require("react-router-dom");
|
|
19
17
|
|
|
20
18
|
var _SessionManager = _interopRequireDefault(require("@arcblock/did-connect/lib/SessionManager"));
|
|
@@ -23,19 +21,23 @@ var _selector = _interopRequireDefault(require("@arcblock/ux/lib/Locale/selector
|
|
|
23
21
|
|
|
24
22
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
25
23
|
|
|
26
|
-
var
|
|
24
|
+
var _Globe = _interopRequireDefault(require("@arcblock/icons/lib/Globe"));
|
|
25
|
+
|
|
26
|
+
var _QuestionMarkCircle = _interopRequireDefault(require("@arcblock/icons/lib/QuestionMarkCircle"));
|
|
27
|
+
|
|
28
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
29
|
|
|
28
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
31
|
|
|
30
|
-
function
|
|
32
|
+
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; }
|
|
31
33
|
|
|
32
|
-
function
|
|
34
|
+
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; }
|
|
35
|
+
|
|
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; }
|
|
33
37
|
|
|
34
|
-
/* eslint-disable react/jsx-one-expression-per-line */
|
|
35
38
|
function HeaderAddon(_ref) {
|
|
36
39
|
let {
|
|
37
40
|
SessionContext,
|
|
38
|
-
webWalletUrl,
|
|
39
41
|
extraItems,
|
|
40
42
|
showLocale,
|
|
41
43
|
showHelper,
|
|
@@ -49,7 +51,6 @@ function HeaderAddon(_ref) {
|
|
|
49
51
|
locale
|
|
50
52
|
} = (0, _react.useContext)(_context.LocaleContext);
|
|
51
53
|
const location = (0, _reactRouterDom.useLocation)();
|
|
52
|
-
const walletUrl = webWalletUrl || (0, _utils.getWebWalletUrl)();
|
|
53
54
|
const docPaths = {
|
|
54
55
|
'/dashboard': '/introduction/abtnode-overview',
|
|
55
56
|
'/store': '/marketplace',
|
|
@@ -76,23 +77,24 @@ function HeaderAddon(_ref) {
|
|
|
76
77
|
window.open("https://docs.arcblock.io/abtnode/".concat(locale).concat(path), '_blank');
|
|
77
78
|
};
|
|
78
79
|
|
|
79
|
-
return /*#__PURE__*/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
80
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, {
|
|
81
|
+
children: [extraItems.map((x, index) => /*#__PURE__*/(0, _react.cloneElement)(x, {
|
|
82
|
+
key: index
|
|
83
|
+
})), showLocale && /*#__PURE__*/(0, _jsxRuntime.jsx)(_selector.default, {
|
|
84
|
+
"data-cy": "locale-addon",
|
|
85
|
+
icon: _Globe.default,
|
|
86
|
+
size: 23,
|
|
87
|
+
showText: false,
|
|
88
|
+
className: "locale-addon"
|
|
89
|
+
}), showHelper && /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
|
|
90
|
+
onClick: onHelpClick,
|
|
91
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_QuestionMarkCircle.default, {})
|
|
92
|
+
}), showSessionManager && /*#__PURE__*/(0, _jsxRuntime.jsx)(_SessionManager.default, _objectSpread({
|
|
93
|
+
session: session,
|
|
94
|
+
size: 24,
|
|
95
|
+
showRole: true
|
|
96
|
+
}, sessionManagerProps))]
|
|
97
|
+
});
|
|
96
98
|
}
|
|
97
99
|
|
|
98
100
|
HeaderAddon.propTypes = {
|
|
@@ -116,4 +118,4 @@ HeaderAddon.defaultProps = {
|
|
|
116
118
|
const Div = _styledComponents.default.div.withConfig({
|
|
117
119
|
displayName: "addon__Div",
|
|
118
120
|
componentId: "sc-5tyqcw-0"
|
|
119
|
-
})(["display:flex;justify-content:center;align-items:center;.user-addon{.user-avatar{width:28px;border-radius:14px;height:auto;}}", "{> button,> a{padding-left:8px;padding-right:8px;}}"], props => props.theme.breakpoints.down('md'));
|
|
121
|
+
})(["display:flex;justify-content:center;align-items:center;.MuiIconButton-root svg{width:26px;height:26px;}.user-addon{.user-avatar{width:28px;border-radius:14px;height:auto;}}", "{> button,> a{padding-left:8px;padding-right:8px;}}"], props => props.theme.breakpoints.down('md'));
|
package/lib/locales/en.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const flat = require('flat');
|
|
5
|
-
|
|
6
|
-
module.exports = flat({
|
|
3
|
+
module.exports = {
|
|
7
4
|
issuePassport: {
|
|
8
5
|
title: 'Receive Passport',
|
|
9
6
|
description: 'Use DID Wallet to receive the passport issued by {name}',
|
|
@@ -50,5 +47,46 @@ module.exports = flat({
|
|
|
50
47
|
confirm: 'Confirm on your DID Wallet',
|
|
51
48
|
success: 'You are successfully connected'
|
|
52
49
|
}
|
|
50
|
+
},
|
|
51
|
+
blocklet: {
|
|
52
|
+
config: {
|
|
53
|
+
name: 'Blocklet Name',
|
|
54
|
+
description: 'Blocklet Nescription',
|
|
55
|
+
sk: 'Secret key for the blocklet wallet',
|
|
56
|
+
clusterSize: 'Instance count when run this blocklet in cluster mode',
|
|
57
|
+
deletable: {
|
|
58
|
+
name: 'Delete Protection',
|
|
59
|
+
enable: 'This blocklet can NOT currently be deleted',
|
|
60
|
+
disable: 'This blocklet can currently be deleted'
|
|
61
|
+
},
|
|
62
|
+
walletType: {
|
|
63
|
+
name: 'Wallet Type',
|
|
64
|
+
description: 'Blocklet instance wallet type, will change the derived DID'
|
|
65
|
+
},
|
|
66
|
+
passportColor: 'Passport Color',
|
|
67
|
+
appUrl: 'Blocklet URL',
|
|
68
|
+
access: {
|
|
69
|
+
title: 'Who Can Access',
|
|
70
|
+
description: 'Who can access the blocklet',
|
|
71
|
+
useDefault: 'Use default',
|
|
72
|
+
defaultDescription: "Use the application's default configuration",
|
|
73
|
+
whoCanAccess: {
|
|
74
|
+
all: {
|
|
75
|
+
title: 'Accessible to all',
|
|
76
|
+
description: 'Open to the world anyone can access without passport'
|
|
77
|
+
},
|
|
78
|
+
owner: {
|
|
79
|
+
title: 'Only me can access',
|
|
80
|
+
description: 'You must provide owner passport to access this application'
|
|
81
|
+
},
|
|
82
|
+
invited: {
|
|
83
|
+
title: 'Only invited people can access',
|
|
84
|
+
description: 'You can invite members later in the admin page'
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
publicToStore: 'Public On Store',
|
|
88
|
+
publicInstanceTip: 'The access address of this blocklet will be displayed in the Store (along with your DID for accepting donations)'
|
|
89
|
+
}
|
|
90
|
+
}
|
|
53
91
|
}
|
|
54
|
-
}
|
|
92
|
+
};
|
package/lib/locales/index.js
CHANGED
package/lib/locales/zh.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
const flat = require('flat');
|
|
5
|
-
|
|
6
|
-
module.exports = flat({
|
|
3
|
+
module.exports = {
|
|
7
4
|
issuePassport: {
|
|
8
5
|
title: '领取通行证',
|
|
9
6
|
description: '使用 DID 钱包领取 {name} 颁发的通行证',
|
|
@@ -37,7 +34,7 @@ module.exports = flat({
|
|
|
37
34
|
emptyPermission: '没有权限',
|
|
38
35
|
open: '打开',
|
|
39
36
|
description: {
|
|
40
|
-
step1: '
|
|
37
|
+
step1: '下载并设置好您的 {wallet}',
|
|
41
38
|
step2: '点击上面的按钮领取通行证',
|
|
42
39
|
step3: '使用通行证登录 {dapp}'
|
|
43
40
|
}
|
|
@@ -49,5 +46,47 @@ module.exports = flat({
|
|
|
49
46
|
confirm: '在您的 DID 钱包上确认',
|
|
50
47
|
success: '连接成功'
|
|
51
48
|
}
|
|
49
|
+
},
|
|
50
|
+
blocklet: {
|
|
51
|
+
config: {
|
|
52
|
+
name: '应用名称',
|
|
53
|
+
description: '应用描述',
|
|
54
|
+
sk: '应用账户私钥',
|
|
55
|
+
clusterSize: '以 Cluster 模式启动时的实例数量',
|
|
56
|
+
deletable: {
|
|
57
|
+
name: '删除保护',
|
|
58
|
+
enable: '此 Blocklet 当前不可被删除',
|
|
59
|
+
disable: '此 Blocklet 当前可以被删除'
|
|
60
|
+
},
|
|
61
|
+
walletType: {
|
|
62
|
+
name: '钱包类型',
|
|
63
|
+
description: '应用钱包类型,会影响派生出来的 DID'
|
|
64
|
+
},
|
|
65
|
+
passportColor: '通行证颜色',
|
|
66
|
+
appUrl: '应用访问地址',
|
|
67
|
+
access: {
|
|
68
|
+
title: '谁可以访问',
|
|
69
|
+
description: '谁可以访问应用',
|
|
70
|
+
useDefault: '使用该应用默认配置',
|
|
71
|
+
invitedTip: '稍后您可以在管理页面中邀请和管理成员',
|
|
72
|
+
defaultDescription: '使用应用的默认配置',
|
|
73
|
+
whoCanAccess: {
|
|
74
|
+
all: {
|
|
75
|
+
title: '所有人可访问',
|
|
76
|
+
description: '向所有人开放,无需通行证即可访问应用'
|
|
77
|
+
},
|
|
78
|
+
owner: {
|
|
79
|
+
title: '只有我自己可访问',
|
|
80
|
+
description: '必须提供所有者通行证才能访问应用'
|
|
81
|
+
},
|
|
82
|
+
invited: {
|
|
83
|
+
title: '只有被邀请的人可以访问',
|
|
84
|
+
description: '稍后您可以在管理页面中邀请成员'
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
publicToStore: '在 Store 公开',
|
|
88
|
+
publicInstanceTip: '此应用的访问地址将展示在 Store 中(同时也会展示你的 DID,用于接受捐赠)'
|
|
89
|
+
}
|
|
90
|
+
}
|
|
52
91
|
}
|
|
53
|
-
}
|
|
92
|
+
};
|