@blocklet/launcher-layout 2.3.18 → 2.3.20
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/es/markdown-body.js +52 -0
- package/es/wizard/wizard-desc.js +102 -8
- package/lib/compact-layout.js +2 -2
- package/lib/content.js +2 -2
- package/lib/context/step.js +1 -1
- package/lib/header.js +2 -2
- package/lib/index.js +5 -5
- package/lib/launch-result-message.js +5 -5
- package/lib/markdown-body.js +28 -0
- package/lib/nav.js +2 -2
- package/lib/page-header.js +5 -5
- package/lib/theme-provider.js +1 -1
- package/lib/wizard/server-eula.js +2 -2
- package/lib/wizard/wizard-desc.js +94 -18
- package/package.json +17 -15
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import styled from '@emotion/styled';
|
|
3
|
+
import { Box } from '@mui/material';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
function MarkdownBody({
|
|
6
|
+
children
|
|
7
|
+
}) {
|
|
8
|
+
return /*#__PURE__*/_jsx(Root, {
|
|
9
|
+
children: children
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
const codeFont = 'source-code-pro, Menlo, Monaco, Consolas, Courier New, monospace !important';
|
|
13
|
+
const Root = styled(Box)`
|
|
14
|
+
.highlight pre,
|
|
15
|
+
pre {
|
|
16
|
+
border-radius: 5px;
|
|
17
|
+
}
|
|
18
|
+
code {
|
|
19
|
+
font-family: ${codeFont};
|
|
20
|
+
}
|
|
21
|
+
pre code {
|
|
22
|
+
font-size: 14px;
|
|
23
|
+
font-family: ${codeFont};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
h1,
|
|
27
|
+
h2,
|
|
28
|
+
h3,
|
|
29
|
+
h4,
|
|
30
|
+
h5,
|
|
31
|
+
h6 {
|
|
32
|
+
font-weight: 700 !important;
|
|
33
|
+
font-size: 1.2rem !important;
|
|
34
|
+
line-height: 1.5 !important;
|
|
35
|
+
margin-bottom: 16px;
|
|
36
|
+
margin-top: 24px;
|
|
37
|
+
border-bottom: initial !important;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.CodeMirror pre {
|
|
41
|
+
background: #f6f8fa !important;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.anchor {
|
|
45
|
+
display: none;
|
|
46
|
+
}
|
|
47
|
+
`;
|
|
48
|
+
MarkdownBody.propTypes = {
|
|
49
|
+
children: PropTypes.any.isRequired
|
|
50
|
+
};
|
|
51
|
+
MarkdownBody.defaultProps = {};
|
|
52
|
+
export default MarkdownBody;
|
package/es/wizard/wizard-desc.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { createElement } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { getDisplayName } from '@blocklet/meta/lib/util';
|
|
4
|
+
import DID from '@arcblock/ux/lib/DID';
|
|
4
5
|
import get from 'lodash/get';
|
|
5
6
|
import styled from '@emotion/styled';
|
|
7
|
+
import MarkdownPreview from '@uiw/react-markdown-preview';
|
|
8
|
+
import { Box, Table, TableBody, TableCell, TableContainer, TableRow, Typography } from '@mui/material';
|
|
6
9
|
import RehypeReact from 'rehype-react';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import TableContainer from '@mui/material/TableContainer';
|
|
11
|
-
import TableRow from '@mui/material/TableRow';
|
|
10
|
+
import joinURL from 'url-join';
|
|
11
|
+
import { useCreation, useRequest } from 'ahooks';
|
|
12
|
+
import MarkdownBody from '../markdown-body';
|
|
12
13
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
14
|
const isFreeBlocklet = meta => {
|
|
14
15
|
if (!meta.payment) {
|
|
@@ -56,11 +57,61 @@ function WizardDesc({
|
|
|
56
57
|
const {
|
|
57
58
|
data
|
|
58
59
|
} = blockletMeta;
|
|
60
|
+
|
|
61
|
+
// FIXME: @zhanghan 暂且假定这里是有 registryUrl 的值的,后续需要更好的方式来判断一个 blocklet 来源于哪个 registryUrl
|
|
62
|
+
const {
|
|
63
|
+
registryUrl,
|
|
64
|
+
did
|
|
65
|
+
} = data;
|
|
59
66
|
const name = getDisplayName({
|
|
60
67
|
meta: data
|
|
61
68
|
});
|
|
69
|
+
const readmeState = useRequest(() => {
|
|
70
|
+
if (registryUrl && did) {
|
|
71
|
+
return fetch(joinURL(registryUrl, '/api/blocklets', did, 'readme')).then(res => res.json());
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}, {
|
|
75
|
+
refreshDeps: [registryUrl, did]
|
|
76
|
+
});
|
|
77
|
+
const markdownSource = useCreation(() => {
|
|
78
|
+
if (!readmeState.data) {
|
|
79
|
+
return '';
|
|
80
|
+
}
|
|
81
|
+
return readmeState.data[locale] || readmeState.data.en || readmeState.data[Object.keys(readmeState.data)[0]];
|
|
82
|
+
}, [readmeState]);
|
|
62
83
|
const blockletDesc = data && data.htmlAst ? renderAst(data.htmlAst) : '';
|
|
63
84
|
const isFree = isFreeBlocklet(data);
|
|
85
|
+
let authorInfo = get(data, 'owner.fullName');
|
|
86
|
+
if (authorInfo) {
|
|
87
|
+
const ownerDid = get(data, 'owner.did');
|
|
88
|
+
if (ownerDid) {
|
|
89
|
+
authorInfo = /*#__PURE__*/_jsxs(Box, {
|
|
90
|
+
sx: {
|
|
91
|
+
display: 'flex',
|
|
92
|
+
alignItems: 'center',
|
|
93
|
+
gap: 1
|
|
94
|
+
},
|
|
95
|
+
children: [authorInfo, /*#__PURE__*/_jsx(DID, {
|
|
96
|
+
sx: {
|
|
97
|
+
lineHeight: 'initial',
|
|
98
|
+
'&::before': {
|
|
99
|
+
content: '"("'
|
|
100
|
+
},
|
|
101
|
+
'&::after': {
|
|
102
|
+
content: '")"'
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
did: ownerDid,
|
|
106
|
+
compact: true,
|
|
107
|
+
size: 14,
|
|
108
|
+
locale: locale
|
|
109
|
+
})]
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
} else {
|
|
113
|
+
authorInfo = get(data, 'author.name');
|
|
114
|
+
}
|
|
64
115
|
const infos = [{
|
|
65
116
|
key: get(localeData[locale], 'appinfo.name'),
|
|
66
117
|
value: getDisplayName({
|
|
@@ -71,7 +122,7 @@ function WizardDesc({
|
|
|
71
122
|
value: data.version
|
|
72
123
|
}, {
|
|
73
124
|
key: get(localeData[locale], 'appinfo.author'),
|
|
74
|
-
value:
|
|
125
|
+
value: authorInfo
|
|
75
126
|
}, {
|
|
76
127
|
type: 'description',
|
|
77
128
|
key: get(localeData[locale], 'appinfo.description'),
|
|
@@ -190,12 +241,55 @@ function WizardDesc({
|
|
|
190
241
|
})
|
|
191
242
|
})
|
|
192
243
|
})
|
|
193
|
-
}), /*#__PURE__*/
|
|
244
|
+
}), markdownSource ? /*#__PURE__*/_jsxs("div", {
|
|
245
|
+
className: "app-overview",
|
|
246
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
247
|
+
variant: "h5",
|
|
248
|
+
gutterBottom: true,
|
|
249
|
+
children: get(localeData[locale], 'appinfo.overview')
|
|
250
|
+
}), /*#__PURE__*/_jsx(MarkdownBody, {
|
|
251
|
+
children: /*#__PURE__*/_jsx(PostContent, {
|
|
252
|
+
component: "div",
|
|
253
|
+
className: "content-wrapper post-content",
|
|
254
|
+
children: /*#__PURE__*/_jsx(MarkdownPreview, {
|
|
255
|
+
source: markdownSource
|
|
256
|
+
// 先保留后面两个参数,可用于精细判断
|
|
257
|
+
// eslint-disable-next-line no-unused-vars
|
|
258
|
+
,
|
|
259
|
+
urlTransform: (url, key, node) => {
|
|
260
|
+
if (url.startsWith('/')) {
|
|
261
|
+
return joinURL(registryUrl, url);
|
|
262
|
+
}
|
|
263
|
+
return url;
|
|
264
|
+
}
|
|
265
|
+
})
|
|
266
|
+
})
|
|
267
|
+
})]
|
|
268
|
+
}) : blockletDesc ? /*#__PURE__*/_jsx("div", {
|
|
194
269
|
className: "app-overview",
|
|
195
270
|
children: blockletDesc
|
|
196
|
-
})]
|
|
271
|
+
}) : null]
|
|
197
272
|
});
|
|
198
273
|
}
|
|
274
|
+
const PostContent = styled(Typography)`
|
|
275
|
+
width: 100%;
|
|
276
|
+
word-wrap: break-word;
|
|
277
|
+
word-break: break-word;
|
|
278
|
+
line-height: 1.5em;
|
|
279
|
+
min-height: 10vh;
|
|
280
|
+
margin-bottom: 40px !important;
|
|
281
|
+
|
|
282
|
+
.alert-content {
|
|
283
|
+
max-width: 100%;
|
|
284
|
+
p:last-of-type {
|
|
285
|
+
margin-bottom: 0;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
iframe {
|
|
290
|
+
width: 100% !important;
|
|
291
|
+
}
|
|
292
|
+
`;
|
|
199
293
|
const Container = styled.div`
|
|
200
294
|
.info-table {
|
|
201
295
|
a {
|
package/lib/compact-layout.js
CHANGED
|
@@ -9,8 +9,8 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
11
|
var _templateObject;
|
|
12
|
-
function _interopRequireDefault(
|
|
13
|
-
function _taggedTemplateLiteral(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
14
14
|
function CompactLayout(_ref) {
|
|
15
15
|
let {
|
|
16
16
|
children,
|
package/lib/content.js
CHANGED
|
@@ -8,8 +8,8 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
10
|
var _templateObject;
|
|
11
|
-
function _interopRequireDefault(
|
|
12
|
-
function _taggedTemplateLiteral(
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
13
13
|
function Content(_ref) {
|
|
14
14
|
let {
|
|
15
15
|
children
|
package/lib/context/step.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.useStepContext = useStepContext;
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
-
function _interopRequireDefault(
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
const StepContext = /*#__PURE__*/(0, _react.createContext)();
|
|
13
13
|
const {
|
|
14
14
|
Provider
|
package/lib/header.js
CHANGED
|
@@ -17,8 +17,8 @@ var _blockletDefaultLogo = _interopRequireDefault(require("./assets/blocklet-def
|
|
|
17
17
|
var _locale = require("./locale");
|
|
18
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
19
|
var _templateObject, _templateObject2, _templateObject3;
|
|
20
|
-
function _interopRequireDefault(
|
|
21
|
-
function _taggedTemplateLiteral(
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
22
22
|
function AppHeader(_ref) {
|
|
23
23
|
let {
|
|
24
24
|
blockletMeta,
|
package/lib/index.js
CHANGED
|
@@ -24,15 +24,15 @@ var _nav = _interopRequireDefault(require("./nav"));
|
|
|
24
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
25
|
const _excluded = ["blockletMeta", "loading", "children", "logoUrl", "locale", "header", "headerEndAddons", "pcWidth", "pcHeight", "navLogo", "useOfSkeleton", "stepTip", "navSubTitle", "contentMaxWidth", "theme"];
|
|
26
26
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
27
|
-
function _interopRequireDefault(
|
|
27
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
28
28
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
29
29
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
30
|
-
function _defineProperty(
|
|
30
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
31
31
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
32
32
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
33
|
-
function _objectWithoutProperties(
|
|
34
|
-
function _objectWithoutPropertiesLoose(
|
|
35
|
-
function _taggedTemplateLiteral(
|
|
33
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
34
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
|
35
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
36
36
|
const HEADER_HEIGHT_MD = '72px';
|
|
37
37
|
const MobileContent = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n box-sizing: border-box;\n display: flex;\n overflow: hidden;\n width: 100%;\n height: 100%;\n padding-top: ", ";\n"])), HEADER_HEIGHT_MD);
|
|
38
38
|
const PcContent = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n min-width: 900px;\n max-width: ", ";\n max-height: 880px;\n border-radius: 8px;\n background-color: #fff;\n width: ", ";\n height: ", ";\n\n @media (max-height: 1200px) {\n margin-top: ", ";\n height: 100%;\n max-height: 100%;\n }\n"])), props => props.contentMaxWidth, props => props.width || '80%', props => props.height || '80%', HEADER_HEIGHT_MD);
|
|
@@ -13,15 +13,15 @@ var _PriorityHigh = _interopRequireDefault(require("@mui/icons-material/Priority
|
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
var _templateObject;
|
|
15
15
|
const _excluded = ["variant", "title", "subTitle", "footer"];
|
|
16
|
-
function _interopRequireDefault(
|
|
17
|
-
function _taggedTemplateLiteral(
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
18
18
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
19
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
20
|
-
function _defineProperty(
|
|
20
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
21
21
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
22
22
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
23
|
-
function _objectWithoutProperties(
|
|
24
|
-
function _objectWithoutPropertiesLoose(
|
|
23
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
24
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
|
25
25
|
function LaunchResultMessage(_ref) {
|
|
26
26
|
let {
|
|
27
27
|
variant,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
9
|
+
var _material = require("@mui/material");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
var _templateObject;
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
14
|
+
function MarkdownBody(_ref) {
|
|
15
|
+
let {
|
|
16
|
+
children
|
|
17
|
+
} = _ref;
|
|
18
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, {
|
|
19
|
+
children: children
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const codeFont = 'source-code-pro, Menlo, Monaco, Consolas, Courier New, monospace !important';
|
|
23
|
+
const Root = (0, _styled.default)(_material.Box)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .highlight pre,\n pre {\n border-radius: 5px;\n }\n code {\n font-family: ", ";\n }\n pre code {\n font-size: 14px;\n font-family: ", ";\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-weight: 700 !important;\n font-size: 1.2rem !important;\n line-height: 1.5 !important;\n margin-bottom: 16px;\n margin-top: 24px;\n border-bottom: initial !important;\n }\n\n .CodeMirror pre {\n background: #f6f8fa !important;\n }\n\n .anchor {\n display: none;\n }\n"])), codeFont, codeFont);
|
|
24
|
+
MarkdownBody.propTypes = {
|
|
25
|
+
children: _propTypes.default.any.isRequired
|
|
26
|
+
};
|
|
27
|
+
MarkdownBody.defaultProps = {};
|
|
28
|
+
var _default = exports.default = MarkdownBody;
|
package/lib/nav.js
CHANGED
|
@@ -12,8 +12,8 @@ var _step = require("./context/step");
|
|
|
12
12
|
var _header = _interopRequireDefault(require("./header"));
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
var _templateObject, _templateObject2;
|
|
15
|
-
function _interopRequireDefault(
|
|
16
|
-
function _taggedTemplateLiteral(
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
17
17
|
function Nav(_ref) {
|
|
18
18
|
let {
|
|
19
19
|
blockletMeta,
|
package/lib/page-header.js
CHANGED
|
@@ -10,15 +10,15 @@ var _ArrowBackIos = _interopRequireDefault(require("@mui/icons-material/ArrowBac
|
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
11
|
var _templateObject;
|
|
12
12
|
const _excluded = ["title", "subTitle", "onClickBack"];
|
|
13
|
-
function _interopRequireDefault(
|
|
14
|
-
function _taggedTemplateLiteral(
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
15
15
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
16
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
-
function _defineProperty(
|
|
17
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18
18
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
19
19
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
-
function _objectWithoutProperties(
|
|
21
|
-
function _objectWithoutPropertiesLoose(
|
|
20
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
21
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
|
|
22
22
|
function PageHeader(_ref) {
|
|
23
23
|
let {
|
|
24
24
|
title,
|
package/lib/theme-provider.js
CHANGED
|
@@ -10,7 +10,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
10
10
|
var _react2 = require("@emotion/react");
|
|
11
11
|
var _Theme = require("@arcblock/ux/lib/Theme");
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
function _interopRequireDefault(
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
const defaultTheme = (0, _Theme.create)({});
|
|
15
15
|
const ThemeContext = /*#__PURE__*/(0, _react.createContext)({});
|
|
16
16
|
function ThemeProvider() {
|
|
@@ -14,8 +14,8 @@ var _submit = _interopRequireDefault(require("@blocklet/launcher-ux/lib/hot-key/
|
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
var _templateObject;
|
|
16
16
|
/* eslint-disable react/jsx-wrap-multilines */
|
|
17
|
-
function _interopRequireDefault(
|
|
18
|
-
function _taggedTemplateLiteral(
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
19
19
|
function ServerEula(_ref) {
|
|
20
20
|
let {
|
|
21
21
|
onContinue,
|
|
@@ -7,18 +7,19 @@ exports.default = void 0;
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _util = require("@blocklet/meta/lib/util");
|
|
10
|
+
var _DID = _interopRequireDefault(require("@arcblock/ux/lib/DID"));
|
|
10
11
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
11
12
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
|
+
var _reactMarkdownPreview = _interopRequireDefault(require("@uiw/react-markdown-preview"));
|
|
14
|
+
var _material = require("@mui/material");
|
|
12
15
|
var _rehypeReact = _interopRequireDefault(require("rehype-react"));
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var _TableContainer = _interopRequireDefault(require("@mui/material/TableContainer"));
|
|
17
|
-
var _TableRow = _interopRequireDefault(require("@mui/material/TableRow"));
|
|
16
|
+
var _urlJoin = _interopRequireDefault(require("url-join"));
|
|
17
|
+
var _ahooks = require("ahooks");
|
|
18
|
+
var _markdownBody = _interopRequireDefault(require("../markdown-body"));
|
|
18
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
-
var _templateObject;
|
|
20
|
-
function _interopRequireDefault(
|
|
21
|
-
function _taggedTemplateLiteral(
|
|
20
|
+
var _templateObject, _templateObject2;
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
22
23
|
const isFreeBlocklet = meta => {
|
|
23
24
|
if (!meta.payment) {
|
|
24
25
|
return true;
|
|
@@ -66,11 +67,61 @@ function WizardDesc(_ref) {
|
|
|
66
67
|
const {
|
|
67
68
|
data
|
|
68
69
|
} = blockletMeta;
|
|
70
|
+
|
|
71
|
+
// FIXME: @zhanghan 暂且假定这里是有 registryUrl 的值的,后续需要更好的方式来判断一个 blocklet 来源于哪个 registryUrl
|
|
72
|
+
const {
|
|
73
|
+
registryUrl,
|
|
74
|
+
did
|
|
75
|
+
} = data;
|
|
69
76
|
const name = (0, _util.getDisplayName)({
|
|
70
77
|
meta: data
|
|
71
78
|
});
|
|
79
|
+
const readmeState = (0, _ahooks.useRequest)(() => {
|
|
80
|
+
if (registryUrl && did) {
|
|
81
|
+
return fetch((0, _urlJoin.default)(registryUrl, '/api/blocklets', did, 'readme')).then(res => res.json());
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}, {
|
|
85
|
+
refreshDeps: [registryUrl, did]
|
|
86
|
+
});
|
|
87
|
+
const markdownSource = (0, _ahooks.useCreation)(() => {
|
|
88
|
+
if (!readmeState.data) {
|
|
89
|
+
return '';
|
|
90
|
+
}
|
|
91
|
+
return readmeState.data[locale] || readmeState.data.en || readmeState.data[Object.keys(readmeState.data)[0]];
|
|
92
|
+
}, [readmeState]);
|
|
72
93
|
const blockletDesc = data && data.htmlAst ? renderAst(data.htmlAst) : '';
|
|
73
94
|
const isFree = isFreeBlocklet(data);
|
|
95
|
+
let authorInfo = (0, _get.default)(data, 'owner.fullName');
|
|
96
|
+
if (authorInfo) {
|
|
97
|
+
const ownerDid = (0, _get.default)(data, 'owner.did');
|
|
98
|
+
if (ownerDid) {
|
|
99
|
+
authorInfo = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
|
|
100
|
+
sx: {
|
|
101
|
+
display: 'flex',
|
|
102
|
+
alignItems: 'center',
|
|
103
|
+
gap: 1
|
|
104
|
+
},
|
|
105
|
+
children: [authorInfo, /*#__PURE__*/(0, _jsxRuntime.jsx)(_DID.default, {
|
|
106
|
+
sx: {
|
|
107
|
+
lineHeight: 'initial',
|
|
108
|
+
'&::before': {
|
|
109
|
+
content: '"("'
|
|
110
|
+
},
|
|
111
|
+
'&::after': {
|
|
112
|
+
content: '")"'
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
did: ownerDid,
|
|
116
|
+
compact: true,
|
|
117
|
+
size: 14,
|
|
118
|
+
locale: locale
|
|
119
|
+
})]
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
} else {
|
|
123
|
+
authorInfo = (0, _get.default)(data, 'author.name');
|
|
124
|
+
}
|
|
74
125
|
const infos = [{
|
|
75
126
|
key: (0, _get.default)(localeData[locale], 'appinfo.name'),
|
|
76
127
|
value: (0, _util.getDisplayName)({
|
|
@@ -81,7 +132,7 @@ function WizardDesc(_ref) {
|
|
|
81
132
|
value: data.version
|
|
82
133
|
}, {
|
|
83
134
|
key: (0, _get.default)(localeData[locale], 'appinfo.author'),
|
|
84
|
-
value:
|
|
135
|
+
value: authorInfo
|
|
85
136
|
}, {
|
|
86
137
|
type: 'description',
|
|
87
138
|
key: (0, _get.default)(localeData[locale], 'appinfo.description'),
|
|
@@ -173,13 +224,13 @@ function WizardDesc(_ref) {
|
|
|
173
224
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Container, {
|
|
174
225
|
children: [handleDescEle || descEle, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
175
226
|
className: "info-table",
|
|
176
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
177
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
227
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableContainer, {
|
|
228
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Table, {
|
|
178
229
|
size: "small",
|
|
179
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
230
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableBody, {
|
|
180
231
|
children: infos.map(e => {
|
|
181
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
182
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
232
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.TableRow, {
|
|
233
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
|
|
183
234
|
component: "th",
|
|
184
235
|
scope: "row",
|
|
185
236
|
style: {
|
|
@@ -192,7 +243,7 @@ function WizardDesc(_ref) {
|
|
|
192
243
|
},
|
|
193
244
|
children: e.key
|
|
194
245
|
})
|
|
195
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
246
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TableCell, {
|
|
196
247
|
children: e.value
|
|
197
248
|
})]
|
|
198
249
|
}, e.key);
|
|
@@ -200,13 +251,38 @@ function WizardDesc(_ref) {
|
|
|
200
251
|
})
|
|
201
252
|
})
|
|
202
253
|
})
|
|
203
|
-
}), /*#__PURE__*/(0, _jsxRuntime.
|
|
254
|
+
}), markdownSource ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
255
|
+
className: "app-overview",
|
|
256
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
|
|
257
|
+
variant: "h5",
|
|
258
|
+
gutterBottom: true,
|
|
259
|
+
children: (0, _get.default)(localeData[locale], 'appinfo.overview')
|
|
260
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_markdownBody.default, {
|
|
261
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PostContent, {
|
|
262
|
+
component: "div",
|
|
263
|
+
className: "content-wrapper post-content",
|
|
264
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactMarkdownPreview.default, {
|
|
265
|
+
source: markdownSource
|
|
266
|
+
// 先保留后面两个参数,可用于精细判断
|
|
267
|
+
// eslint-disable-next-line no-unused-vars
|
|
268
|
+
,
|
|
269
|
+
urlTransform: (url, key, node) => {
|
|
270
|
+
if (url.startsWith('/')) {
|
|
271
|
+
return (0, _urlJoin.default)(registryUrl, url);
|
|
272
|
+
}
|
|
273
|
+
return url;
|
|
274
|
+
}
|
|
275
|
+
})
|
|
276
|
+
})
|
|
277
|
+
})]
|
|
278
|
+
}) : blockletDesc ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
204
279
|
className: "app-overview",
|
|
205
280
|
children: blockletDesc
|
|
206
|
-
})]
|
|
281
|
+
}) : null]
|
|
207
282
|
});
|
|
208
283
|
}
|
|
209
|
-
const
|
|
284
|
+
const PostContent = (0, _styled.default)(_material.Typography)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n word-wrap: break-word;\n word-break: break-word;\n line-height: 1.5em;\n min-height: 10vh;\n margin-bottom: 40px !important;\n\n .alert-content {\n max-width: 100%;\n p:last-of-type {\n margin-bottom: 0;\n }\n }\n\n iframe {\n width: 100% !important;\n }\n"])));
|
|
285
|
+
const Container = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .info-table {\n a {\n word-break: break-all;\n }\n }\n .app-overview {\n font-size: 16px;\n margin: 16px 0 0 16px;\n h1 {\n margin: 8px 0;\n font-size: 20px;\n }\n h2 {\n margin: 8px 0;\n font-size: 18px;\n }\n ul {\n display: block;\n list-style-type: disc;\n padding-left: 2em;\n li {\n display: list-item;\n list-style: disc;\n }\n }\n blockquote {\n margin-left: 2em;\n }\n }\n"])));
|
|
210
286
|
WizardDesc.propTypes = {
|
|
211
287
|
blockletMeta: _propTypes.default.object.isRequired,
|
|
212
288
|
locale: _propTypes.default.string.isRequired,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocklet/launcher-layout",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.20",
|
|
4
4
|
"description": "Common ux components of launcher",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -39,19 +39,21 @@
|
|
|
39
39
|
"url": "https://github.com/blocklet/launcher/issues"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"react": ">=18.1.0"
|
|
43
|
-
},
|
|
44
|
-
"dependencies": {
|
|
45
42
|
"@arcblock/did-connect": "^2.9.76",
|
|
46
|
-
"@arcblock/icons": "^2.9.76",
|
|
47
43
|
"@arcblock/ux": "^2.9.76",
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
44
|
+
"@mui/icons-material": "^5.15.15",
|
|
45
|
+
"@mui/material": "^5.15.15",
|
|
46
|
+
"react": "^18.2.0"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@arcblock/icons": "^2.9.88",
|
|
50
|
+
"@blocklet/launcher-util": "2.3.20",
|
|
51
|
+
"@blocklet/launcher-ux": "2.3.20",
|
|
50
52
|
"@blocklet/meta": "^1.16.26",
|
|
51
53
|
"@emotion/react": "^11.11.4",
|
|
52
54
|
"@emotion/styled": "^11.11.5",
|
|
53
|
-
"@
|
|
54
|
-
"
|
|
55
|
+
"@uiw/react-markdown-preview": "^5.1.1",
|
|
56
|
+
"ahooks": "^3.8.0",
|
|
55
57
|
"is-empty": "^1.2.0",
|
|
56
58
|
"lodash": "^4.17.21",
|
|
57
59
|
"prop-types": "^15.8.1",
|
|
@@ -59,13 +61,13 @@
|
|
|
59
61
|
"url-join": "^4.0.1"
|
|
60
62
|
},
|
|
61
63
|
"devDependencies": {
|
|
62
|
-
"@babel/cli": "^7.24.
|
|
63
|
-
"@babel/core": "^7.24.
|
|
64
|
-
"@babel/preset-env": "^7.24.
|
|
65
|
-
"@babel/preset-react": "^7.24.
|
|
64
|
+
"@babel/cli": "^7.24.6",
|
|
65
|
+
"@babel/core": "^7.24.6",
|
|
66
|
+
"@babel/preset-env": "^7.24.6",
|
|
67
|
+
"@babel/preset-react": "^7.24.6",
|
|
66
68
|
"@storybook/react": "^6.5.16",
|
|
67
69
|
"babel-plugin-inline-react-svg": "^2.0.2",
|
|
68
|
-
"glob": "^10.
|
|
70
|
+
"glob": "^10.4.1"
|
|
69
71
|
},
|
|
70
72
|
"exports": {
|
|
71
73
|
".": {
|
|
@@ -77,5 +79,5 @@
|
|
|
77
79
|
"require": "./lib/"
|
|
78
80
|
}
|
|
79
81
|
},
|
|
80
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "f066eec3d7942533b3dbc88419840e3ce06a05d1"
|
|
81
83
|
}
|