@blocklet/launcher-workflow 1.5.65 → 1.5.66
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/components/confirm.js +98 -0
- package/lib/components/instance-operation.js +3 -3
- package/lib/components/server-eula.js +100 -0
- package/lib/locales/en.js +11 -5
- package/lib/locales/zh.js +10 -4
- package/lib/prepare.js +7 -13
- package/package.json +5 -4
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = ConfirmDialog;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
13
|
+
|
|
14
|
+
var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
|
|
15
|
+
|
|
16
|
+
var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
|
|
17
|
+
|
|
18
|
+
var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
|
|
19
|
+
|
|
20
|
+
var _DialogContentText = _interopRequireDefault(require("@material-ui/core/DialogContentText"));
|
|
21
|
+
|
|
22
|
+
var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle"));
|
|
23
|
+
|
|
24
|
+
var _useTheme = _interopRequireDefault(require("@material-ui/core/styles/useTheme"));
|
|
25
|
+
|
|
26
|
+
var _useMediaQuery = _interopRequireDefault(require("@material-ui/core/useMediaQuery"));
|
|
27
|
+
|
|
28
|
+
var _locale = require("../contexts/locale");
|
|
29
|
+
|
|
30
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
|
+
|
|
32
|
+
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); }
|
|
33
|
+
|
|
34
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
+
|
|
36
|
+
function ConfirmDialog(_ref) {
|
|
37
|
+
let {
|
|
38
|
+
title,
|
|
39
|
+
description,
|
|
40
|
+
cancel,
|
|
41
|
+
confirm,
|
|
42
|
+
color,
|
|
43
|
+
params: initialParams,
|
|
44
|
+
onCancel,
|
|
45
|
+
onConfirm
|
|
46
|
+
} = _ref;
|
|
47
|
+
const {
|
|
48
|
+
t
|
|
49
|
+
} = (0, _react.useContext)(_locale.LocaleContext);
|
|
50
|
+
const [params, setParams] = (0, _react.useState)(initialParams);
|
|
51
|
+
const theme = (0, _useTheme.default)();
|
|
52
|
+
const isBreakpointsDownSm = (0, _useMediaQuery.default)(theme.breakpoints.down('sm'));
|
|
53
|
+
|
|
54
|
+
const onCallback = cb => {
|
|
55
|
+
if (typeof cb === 'function') {
|
|
56
|
+
cb(params);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
|
|
61
|
+
open: true,
|
|
62
|
+
fullScreen: isBreakpointsDownSm
|
|
63
|
+
}, /*#__PURE__*/_react.default.createElement(_DialogTitle.default, null, typeof title === 'function' ? title() : title), /*#__PURE__*/_react.default.createElement(_DialogContent.default, null, /*#__PURE__*/_react.default.createElement(_DialogContentText.default, null, typeof description === 'function' ? description(params, setParams) : description)), /*#__PURE__*/_react.default.createElement(_DialogActions.default, {
|
|
64
|
+
style: {
|
|
65
|
+
padding: '8px 24px 24px'
|
|
66
|
+
}
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
68
|
+
onClick: () => onCallback(onCancel),
|
|
69
|
+
color: "default",
|
|
70
|
+
rounded: true
|
|
71
|
+
}, cancel || t('common.cancel')), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
72
|
+
onClick: () => onCallback(onConfirm),
|
|
73
|
+
color: color,
|
|
74
|
+
variant: "outlined",
|
|
75
|
+
autoFocus: true,
|
|
76
|
+
rounded: true
|
|
77
|
+
}, confirm || t('common.confirm'))));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
ConfirmDialog.propTypes = {
|
|
81
|
+
title: _propTypes.default.any.isRequired,
|
|
82
|
+
description: _propTypes.default.any.isRequired,
|
|
83
|
+
// can be a function that renders different content based on params
|
|
84
|
+
cancel: _propTypes.default.string,
|
|
85
|
+
color: _propTypes.default.string,
|
|
86
|
+
confirm: _propTypes.default.string,
|
|
87
|
+
params: _propTypes.default.object,
|
|
88
|
+
// This object holds states managed in the dialog
|
|
89
|
+
onCancel: _propTypes.default.func,
|
|
90
|
+
onConfirm: _propTypes.default.func.isRequired
|
|
91
|
+
};
|
|
92
|
+
ConfirmDialog.defaultProps = {
|
|
93
|
+
onCancel: () => {},
|
|
94
|
+
cancel: '',
|
|
95
|
+
confirm: '',
|
|
96
|
+
color: 'danger',
|
|
97
|
+
params: {}
|
|
98
|
+
};
|
|
@@ -9,12 +9,12 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _reactRouterDom = require("react-router-dom");
|
|
11
11
|
|
|
12
|
-
var _reactUse = require("react-use");
|
|
13
|
-
|
|
14
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
13
|
|
|
16
14
|
var _lodash = _interopRequireDefault(require("lodash.get"));
|
|
17
15
|
|
|
16
|
+
var _useInterval = _interopRequireDefault(require("react-use/lib/useInterval"));
|
|
17
|
+
|
|
18
18
|
var _lodash2 = _interopRequireDefault(require("lodash.throttle"));
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
@@ -121,7 +121,7 @@ function OperationPage(_ref) {
|
|
|
121
121
|
};
|
|
122
122
|
|
|
123
123
|
const poll = (0, _lodash2.default)(getInstanceStatus, 5000);
|
|
124
|
-
(0,
|
|
124
|
+
(0, _useInterval.default)(poll, launchState.status === STATUS.launching && nftId ? 5000 : null);
|
|
125
125
|
(0, _react.useEffect)(() => {
|
|
126
126
|
if (!nftId) {
|
|
127
127
|
return;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = ServerEula;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
|
|
15
|
+
|
|
16
|
+
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
17
|
+
|
|
18
|
+
var _CheckCircleRounded = _interopRequireDefault(require("@material-ui/icons/CheckCircleRounded"));
|
|
19
|
+
|
|
20
|
+
var _CheckCircleOutlineRounded = _interopRequireDefault(require("@material-ui/icons/CheckCircleOutlineRounded"));
|
|
21
|
+
|
|
22
|
+
var _FormLabel = _interopRequireDefault(require("@material-ui/core/FormLabel"));
|
|
23
|
+
|
|
24
|
+
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
25
|
+
|
|
26
|
+
var _server = _interopRequireDefault(require("@arcblock/license/lib/server"));
|
|
27
|
+
|
|
28
|
+
var _locale = require("../contexts/locale");
|
|
29
|
+
|
|
30
|
+
var _confirm = _interopRequireDefault(require("./confirm"));
|
|
31
|
+
|
|
32
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
+
|
|
34
|
+
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); }
|
|
35
|
+
|
|
36
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
37
|
+
|
|
38
|
+
/* eslint-disable react/jsx-wrap-multilines */
|
|
39
|
+
function ServerEula(_ref) {
|
|
40
|
+
let {
|
|
41
|
+
onContinue,
|
|
42
|
+
nextDisabled
|
|
43
|
+
} = _ref;
|
|
44
|
+
const [agreed, setAgreed] = (0, _useLocalStorage.default)('server-eula-checked', false);
|
|
45
|
+
const [open, setOpen] = (0, _react.useState)(false);
|
|
46
|
+
const {
|
|
47
|
+
t
|
|
48
|
+
} = (0, _react.useContext)(_locale.LocaleContext);
|
|
49
|
+
|
|
50
|
+
const handleChecked = () => setAgreed(x => !x);
|
|
51
|
+
|
|
52
|
+
const handleOpen = () => setOpen(x => !x);
|
|
53
|
+
|
|
54
|
+
const handleCancel = () => setOpen(false);
|
|
55
|
+
|
|
56
|
+
const handleConfirm = () => {
|
|
57
|
+
setAgreed(true);
|
|
58
|
+
setOpen(false);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Div, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
62
|
+
className: "eula-checkbox"
|
|
63
|
+
}, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
|
|
64
|
+
checked: agreed,
|
|
65
|
+
onChange: handleChecked,
|
|
66
|
+
color: "primary",
|
|
67
|
+
checkedIcon: /*#__PURE__*/_react.default.createElement(_CheckCircleRounded.default, null),
|
|
68
|
+
icon: /*#__PURE__*/_react.default.createElement(_CheckCircleOutlineRounded.default, null)
|
|
69
|
+
}), /*#__PURE__*/_react.default.createElement(_FormLabel.default, {
|
|
70
|
+
className: "eula-trigger",
|
|
71
|
+
onClick: handleOpen
|
|
72
|
+
}, t('license.footer'))), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
73
|
+
disabled: !agreed || nextDisabled,
|
|
74
|
+
color: "primary",
|
|
75
|
+
variant: "contained",
|
|
76
|
+
className: "next-button",
|
|
77
|
+
onClick: onContinue
|
|
78
|
+
}, t('common.next'))), open && /*#__PURE__*/_react.default.createElement(_confirm.default, {
|
|
79
|
+
title: t('license.title'),
|
|
80
|
+
description: /*#__PURE__*/_react.default.createElement(_server.default, {
|
|
81
|
+
className: "eula-content"
|
|
82
|
+
}),
|
|
83
|
+
color: "primary",
|
|
84
|
+
onCancel: handleCancel,
|
|
85
|
+
onConfirm: handleConfirm
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
ServerEula.propTypes = {
|
|
90
|
+
onContinue: _propTypes.default.func.isRequired,
|
|
91
|
+
nextDisabled: _propTypes.default.bool
|
|
92
|
+
};
|
|
93
|
+
ServerEula.defaultProps = {
|
|
94
|
+
nextDisabled: false
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const Div = _styledComponents.default.div.withConfig({
|
|
98
|
+
displayName: "server-eula__Div",
|
|
99
|
+
componentId: "sc-16uy00s-0"
|
|
100
|
+
})(["width:90%;max-width:450px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;@media (max-width:", "px){flex-direction:column;}.eula-checkbox{display:flex;align-items:center;.eula-trigger{cursor:pointer;font-size:14px;&:hover{color:", ";}}}.next-button{width:120px;}"], props => props.theme.breakpoints.values.sm, props => props.theme.palette.primary.main);
|
package/lib/locales/en.js
CHANGED
|
@@ -17,11 +17,13 @@ module.exports = {
|
|
|
17
17
|
next: 'Next',
|
|
18
18
|
purchase: 'Purchase',
|
|
19
19
|
redeem: 'Redeem',
|
|
20
|
-
redirecting: 'Redirecting'
|
|
20
|
+
redirecting: 'Redirecting',
|
|
21
|
+
cancel: 'Cancel',
|
|
22
|
+
confirm: 'Confirm'
|
|
21
23
|
},
|
|
22
24
|
plan: {
|
|
23
|
-
title: 'Select Blocklet Server
|
|
24
|
-
subTitle: '
|
|
25
|
+
title: 'Select Blocklet Server Plan',
|
|
26
|
+
subTitle: 'Select payment method and plan',
|
|
25
27
|
loadListFailed: 'Plan list load error',
|
|
26
28
|
paymentCredit: {
|
|
27
29
|
status: {
|
|
@@ -35,9 +37,13 @@ module.exports = {
|
|
|
35
37
|
useFiat: 'Credit Card',
|
|
36
38
|
noPlan: 'No blocklet server available for purchase'
|
|
37
39
|
},
|
|
40
|
+
license: {
|
|
41
|
+
title: 'End User License Agreement',
|
|
42
|
+
footer: 'I agree to the Blocklet Server EULA'
|
|
43
|
+
},
|
|
38
44
|
prepare: {
|
|
39
45
|
title: 'Naming Blocklet Server',
|
|
40
|
-
subTitle: 'Please enter
|
|
46
|
+
subTitle: 'Please enter server name and description, they will appear in your server passport'
|
|
41
47
|
},
|
|
42
48
|
launch: {
|
|
43
49
|
title: 'Create Blocklet Server',
|
|
@@ -71,7 +77,7 @@ module.exports = {
|
|
|
71
77
|
},
|
|
72
78
|
redeem: {
|
|
73
79
|
title: 'Redeem Blocklet Server',
|
|
74
|
-
subTitle: 'Name
|
|
80
|
+
subTitle: 'Name the blocklet server you are going to redeem, the name will exist on server passport',
|
|
75
81
|
dialog: {
|
|
76
82
|
title: 'Redeem Blocklet Server',
|
|
77
83
|
scan: 'Scan the QR code below with your DID wallet to complete redeem',
|
package/lib/locales/zh.js
CHANGED
|
@@ -12,10 +12,12 @@ module.exports = {
|
|
|
12
12
|
description: '描述',
|
|
13
13
|
retry: '重试',
|
|
14
14
|
launch: '启动',
|
|
15
|
-
next: '
|
|
15
|
+
next: '继续',
|
|
16
16
|
redeem: '兑换',
|
|
17
17
|
purchase: '购买',
|
|
18
|
-
redirecting: '跳转中'
|
|
18
|
+
redirecting: '跳转中',
|
|
19
|
+
cancel: '取消',
|
|
20
|
+
confirm: '同意'
|
|
19
21
|
},
|
|
20
22
|
plan: {
|
|
21
23
|
title: '创建节点',
|
|
@@ -33,9 +35,13 @@ module.exports = {
|
|
|
33
35
|
useFiat: '信用卡支付',
|
|
34
36
|
noPlan: '没有可购买的节点类型'
|
|
35
37
|
},
|
|
38
|
+
license: {
|
|
39
|
+
title: '节点用户协议',
|
|
40
|
+
footer: '我已经阅读并同意节点的用户协议'
|
|
41
|
+
},
|
|
36
42
|
prepare: {
|
|
37
43
|
title: '命名节点',
|
|
38
|
-
subTitle: '
|
|
44
|
+
subTitle: '请输入要创建的节点名称和描述,它们将显示在您的节点通行证中'
|
|
39
45
|
},
|
|
40
46
|
launch: {
|
|
41
47
|
title: '创建节点',
|
|
@@ -69,7 +75,7 @@ module.exports = {
|
|
|
69
75
|
},
|
|
70
76
|
redeem: {
|
|
71
77
|
title: '启动节点',
|
|
72
|
-
subTitle: '
|
|
78
|
+
subTitle: '为你的节点起个名字吧,节点名字将会打印在节点通行证上',
|
|
73
79
|
dialog: {
|
|
74
80
|
title: '兑换节点',
|
|
75
81
|
scan: '用您的 DID 钱包扫描下面的二维码,提供 NFT',
|
package/lib/prepare.js
CHANGED
|
@@ -11,8 +11,6 @@ var _reactRouterDom = require("react-router-dom");
|
|
|
11
11
|
|
|
12
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
13
|
|
|
14
|
-
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
15
|
-
|
|
16
14
|
var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
|
|
17
15
|
|
|
18
16
|
var _utils = require("@arcblock/did-connect/lib/utils");
|
|
@@ -27,6 +25,8 @@ var _launcherConstant = require("@blocklet/launcher-constant");
|
|
|
27
25
|
|
|
28
26
|
var _pageHeader = _interopRequireDefault(require("./components/page-header"));
|
|
29
27
|
|
|
28
|
+
var _serverEula = _interopRequireDefault(require("./components/server-eula"));
|
|
29
|
+
|
|
30
30
|
var _request = _interopRequireDefault(require("./contexts/request"));
|
|
31
31
|
|
|
32
32
|
var _locale = require("./contexts/locale");
|
|
@@ -203,16 +203,10 @@ function PreparePage() {
|
|
|
203
203
|
labelWidth: 0
|
|
204
204
|
}), error.description && /*#__PURE__*/_react.default.createElement(_FormHelperText.default, null, error.description)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
205
205
|
className: "botton-container"
|
|
206
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
},
|
|
211
|
-
color: "primary",
|
|
212
|
-
variant: "contained",
|
|
213
|
-
rounded: true,
|
|
214
|
-
onClick: handleLaunch
|
|
215
|
-
}, t('common.next')))), /*#__PURE__*/_react.default.createElement(_Connect.default, {
|
|
206
|
+
}, /*#__PURE__*/_react.default.createElement(_serverEula.default, {
|
|
207
|
+
onContinue: handleLaunch,
|
|
208
|
+
nextDisabled: !name.trim() || !description.trim()
|
|
209
|
+
}))), /*#__PURE__*/_react.default.createElement(_Connect.default, {
|
|
216
210
|
open: showLaunchInstanceDialog,
|
|
217
211
|
popup: true,
|
|
218
212
|
action: "launch-instance",
|
|
@@ -240,4 +234,4 @@ function PreparePage() {
|
|
|
240
234
|
const Container = _styledComponents.default.div.withConfig({
|
|
241
235
|
displayName: "prepare__Container",
|
|
242
236
|
componentId: "sc-1ddofcz-0"
|
|
243
|
-
})(["display:flex;flex-direction:column;width:100%;height:100%;.page-logo{display:flex;justify-content:center;margin-top:62px;", "{margin-top:48px;}}.inputs{display:flex;align-items:center;flex-direction:column;text-align:center;}.input-item{margin-top:24px;width:90%;max-width:
|
|
237
|
+
})(["display:flex;flex-direction:column;width:100%;height:100%;.page-logo{display:flex;justify-content:center;margin-top:62px;", "{margin-top:48px;}}.inputs{display:flex;align-items:center;flex-direction:column;text-align:center;}.input-item{margin-top:24px;width:90%;max-width:450px;font-size:14px;input,textarea{font-size:14px;}}.botton-container{margin-top:24px;text-align:center;}"], props => props.theme.breakpoints.down('sm'));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocklet/launcher-workflow",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.66",
|
|
4
4
|
"description": "Purchase components for Launcher UI",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -39,9 +39,10 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@arcblock/did-connect": "^1.16.49",
|
|
41
41
|
"@arcblock/icons": "^1.16.49",
|
|
42
|
+
"@arcblock/license": "^1.16.49",
|
|
42
43
|
"@arcblock/ux": "^1.16.49",
|
|
43
|
-
"@blocklet/launcher-constant": "1.5.
|
|
44
|
-
"@blocklet/launcher-layout": "1.5.
|
|
44
|
+
"@blocklet/launcher-constant": "1.5.66",
|
|
45
|
+
"@blocklet/launcher-layout": "1.5.66",
|
|
45
46
|
"@material-ui/core": "^4.12.3",
|
|
46
47
|
"@material-ui/icons": "^4.11.2",
|
|
47
48
|
"@material-ui/lab": "^4.0.0-alpha.60",
|
|
@@ -67,5 +68,5 @@
|
|
|
67
68
|
"babel-plugin-inline-react-svg": "^2.0.1",
|
|
68
69
|
"babel-plugin-styled-components": "^1.10.7"
|
|
69
70
|
},
|
|
70
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "054ff34e86c6c725fc76bd94a62664c690f6df15"
|
|
71
72
|
}
|