@abtnode/ux 1.16.16 → 1.16.17-beta-7ec31a60

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.
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ProjectList;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactRouterDom = require("react-router-dom");
9
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
+ var _context = require("@arcblock/ux/lib/Locale/context");
11
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
12
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
13
+ var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
14
+ var _Datatable = _interopRequireDefault(require("@arcblock/ux/lib/Datatable"));
15
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
16
+ var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
17
+ var _blocklet = require("../../contexts/blocklet");
18
+ var _node = require("../../contexts/node");
19
+ var _emptySpinner = _interopRequireDefault(require("../../empty-spinner"));
20
+ var _didAddress = _interopRequireDefault(require("../../did-address"));
21
+ var _confirm = _interopRequireDefault(require("../../confirm"));
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ var _templateObject;
24
+ /* eslint-disable react/no-unstable-nested-components */
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+ 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); }
27
+ 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; }
28
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
29
+ function ProjectList() {
30
+ const {
31
+ t,
32
+ locale
33
+ } = (0, _context.useLocaleContext)();
34
+ const {
35
+ api
36
+ } = (0, _node.useNodeContext)();
37
+ const [loading, setLoading] = (0, _react.useState)(true);
38
+ const {
39
+ blocklet
40
+ } = (0, _blocklet.useBlockletContext)();
41
+ const [deleteConfirm, setDeleteConfirm] = (0, _react.useState)(null);
42
+ const [projects, setProjects] = (0, _react.useState)(null);
43
+ const getProjects = () => {
44
+ api.getProjects({
45
+ input: {
46
+ did: blocklet.meta.did
47
+ }
48
+ }).then(res => {
49
+ const list = (res === null || res === void 0 ? void 0 : res.projects) || [];
50
+ setLoading(false);
51
+ setProjects(list);
52
+ }).catch(err => {
53
+ setLoading(false);
54
+ _Toast.default.error(err.message);
55
+ });
56
+ };
57
+ const onDeleteProject = project => {
58
+ setDeleteConfirm(project);
59
+ };
60
+ const deleteProject = () => {
61
+ setLoading(false);
62
+ const projectId = deleteConfirm.id;
63
+ api.deleteProject({
64
+ input: {
65
+ did: blocklet.meta.did,
66
+ projectId
67
+ }
68
+ }).then(() => {
69
+ setLoading(false);
70
+ getProjects();
71
+ _Toast.default.success(t('common.removeSuccess'));
72
+ }).catch(err => {
73
+ setLoading(false);
74
+ _Toast.default.error(err.message);
75
+ });
76
+ };
77
+ (0, _react.useEffect)(() => {
78
+ getProjects();
79
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
80
+
81
+ if (!projects && loading) {
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_emptySpinner.default, {});
83
+ }
84
+ if (!projects) {
85
+ return null;
86
+ }
87
+ if (!projects.length) {
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
89
+ display: "flex",
90
+ flexDirection: "column",
91
+ alignItems: "center",
92
+ pt: 10,
93
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
94
+ sx: {
95
+ fontSize: 20,
96
+ fontWeight: 'bold',
97
+ mb: 3
98
+ },
99
+ children: t('blocklet.publish.blockletEmptyTip')
100
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
101
+ sx: {
102
+ fontSize: 14,
103
+ color: 'text.secondary',
104
+ mb: 3
105
+ },
106
+ children: t('blocklet.publish.createBlockletTip')
107
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
108
+ to: "create",
109
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
110
+ variant: "contained",
111
+ children: t('blocklet.publish.createBlocklet')
112
+ })
113
+ })]
114
+ });
115
+ }
116
+ const columns = [{
117
+ label: t('common.name'),
118
+ name: 'blockletTitle',
119
+ options: {
120
+ customBodyRenderLite: rawIndex => {
121
+ const project = projects[rawIndex];
122
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
123
+ to: "".concat(project.id),
124
+ children: project.blockletTitle || '/'
125
+ });
126
+ }
127
+ }
128
+ }, {
129
+ label: t('common.address'),
130
+ name: 'blockletDid',
131
+ options: {
132
+ customBodyRender: e => {
133
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {
134
+ size: 14,
135
+ responsive: true,
136
+ did: e
137
+ });
138
+ }
139
+ }
140
+ }, {
141
+ label: t('common.actions'),
142
+ name: 'actions',
143
+ options: {
144
+ customBodyRenderLite: rawIndex => {
145
+ const project = projects[rawIndex];
146
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
147
+ display: "flex",
148
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
149
+ color: "error",
150
+ "aria-label": "delete",
151
+ onClick: () => onDeleteProject(project),
152
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {
153
+ sx: {
154
+ fontSize: 18
155
+ }
156
+ })
157
+ })
158
+ });
159
+ }
160
+ }
161
+ }];
162
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Main, {
163
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
164
+ sx: {
165
+ textAlign: 'right'
166
+ },
167
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
168
+ to: "create",
169
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
170
+ variant: "contained",
171
+ children: t('blocklet.publish.createBlocklet')
172
+ })
173
+ })
174
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Datatable.default, {
175
+ className: "main-table",
176
+ locale: locale,
177
+ data: projects,
178
+ columns: columns,
179
+ options: {
180
+ sort: false,
181
+ download: false,
182
+ filter: false,
183
+ print: false,
184
+ search: false
185
+ }
186
+ }), deleteConfirm && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
187
+ title: "".concat(t('common.delete'), " ").concat(deleteConfirm.blockletTitle),
188
+ description: t('blocklet.publish.deleteBlockletTip'),
189
+ confirm: t('common.confirm'),
190
+ onConfirm: deleteProject,
191
+ onCancel: () => setDeleteConfirm(null)
192
+ })]
193
+ });
194
+ }
195
+ ProjectList.propTypes = {};
196
+ const Main = (0, _styled.default)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .main-table > div:first-child {\n display: none;\n }\n"])));
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ReleaseList;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactRouterDom = require("react-router-dom");
9
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
+ var _urlJoin = _interopRequireDefault(require("url-join"));
11
+ var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
12
+ var _context = require("@arcblock/ux/lib/Locale/context");
13
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
14
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
15
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
16
+ var _Breadcrumbs = _interopRequireDefault(require("@mui/material/Breadcrumbs"));
17
+ var _Download = _interopRequireDefault(require("@mui/icons-material/Download"));
18
+ var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
19
+ var _Datatable = _interopRequireDefault(require("@arcblock/ux/lib/Datatable"));
20
+ var _constant = require("@abtnode/constant");
21
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
22
+ var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
23
+ var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
24
+ var _blocklet = require("../../contexts/blocklet");
25
+ var _node = require("../../contexts/node");
26
+ var _emptySpinner = _interopRequireDefault(require("../../empty-spinner"));
27
+ var _confirm = _interopRequireDefault(require("../../confirm"));
28
+ var _jsxRuntime = require("react/jsx-runtime");
29
+ var _templateObject;
30
+ /* eslint-disable react/no-unstable-nested-components */
31
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
+ 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; }
34
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
35
+ function ReleaseList() {
36
+ const {
37
+ t,
38
+ locale
39
+ } = (0, _context.useLocaleContext)();
40
+ const {
41
+ projectId
42
+ } = (0, _reactRouterDom.useParams)();
43
+ const {
44
+ api
45
+ } = (0, _node.useNodeContext)();
46
+ const [loading, setLoading] = (0, _react.useState)(true);
47
+ const {
48
+ blocklet
49
+ } = (0, _blocklet.useBlockletContext)();
50
+ const [releases, setReleases] = (0, _react.useState)(null);
51
+ const [project, setProject] = (0, _react.useState)(null);
52
+ const [deleteConfirm, setDeleteConfirm] = (0, _react.useState)(null);
53
+ const getReleases = () => {
54
+ api.getReleases({
55
+ input: {
56
+ did: blocklet.meta.did,
57
+ projectId
58
+ }
59
+ }).then(res => {
60
+ const list = (res === null || res === void 0 ? void 0 : res.releases) || [];
61
+ setLoading(false);
62
+ setReleases(list);
63
+ }).catch(err => {
64
+ setLoading(false);
65
+ _Toast.default.error(err.message);
66
+ });
67
+ };
68
+ const getData = () => {
69
+ api.doBatchQuery({
70
+ getProject: {
71
+ input: {
72
+ did: blocklet.meta.did,
73
+ projectId
74
+ }
75
+ },
76
+ getReleases: {
77
+ input: {
78
+ did: blocklet.meta.did,
79
+ projectId
80
+ }
81
+ }
82
+ }).then(res => {
83
+ setProject(res.getProject.project || {});
84
+ setReleases(res.getReleases.releases || []);
85
+ setLoading(false);
86
+ }).catch(err => {
87
+ setLoading(false);
88
+ _Toast.default.error(err.message);
89
+ });
90
+ };
91
+ (0, _react.useEffect)(() => {
92
+ getData();
93
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
94
+
95
+ const deleteRelease = () => {
96
+ setLoading(false);
97
+ const releaseId = deleteConfirm.id;
98
+ api.deleteRelease({
99
+ input: {
100
+ did: blocklet.meta.did,
101
+ projectId,
102
+ releaseId
103
+ }
104
+ }).then(() => {
105
+ setLoading(false);
106
+ getReleases();
107
+ _Toast.default.success(t('common.removeSuccess'));
108
+ }).catch(err => {
109
+ setLoading(false);
110
+ _Toast.default.error(err.message);
111
+ });
112
+ };
113
+ const onDeleteRelease = release => {
114
+ setDeleteConfirm(release);
115
+ };
116
+ if (!releases && loading) {
117
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_emptySpinner.default, {});
118
+ }
119
+ if (!releases) {
120
+ return null;
121
+ }
122
+ const breadcrumbs = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Breadcrumbs.default, {
123
+ className: "breadcrumbs",
124
+ "aria-label": "breadcrumb",
125
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
126
+ to: "..",
127
+ children: t('common.publish')
128
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
129
+ color: "text.primary",
130
+ children: project.blockletTitle
131
+ })]
132
+ });
133
+ if (!releases.length) {
134
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
135
+ children: [breadcrumbs, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
136
+ display: "flex",
137
+ flexDirection: "column",
138
+ alignItems: "center",
139
+ pt: 10,
140
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
141
+ sx: {
142
+ fontSize: 20,
143
+ fontWeight: 'bold',
144
+ mb: 3
145
+ },
146
+ children: t('blocklet.publish.releaseEmptyTip')
147
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
148
+ sx: {
149
+ fontSize: 14,
150
+ color: 'text.secondary',
151
+ mb: 3
152
+ },
153
+ children: t('blocklet.publish.createReleaseTip')
154
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
155
+ to: "create",
156
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
157
+ variant: "contained",
158
+ children: t('blocklet.publish.createRelease')
159
+ })
160
+ })]
161
+ })]
162
+ });
163
+ }
164
+ const columns = [{
165
+ label: t('common.version'),
166
+ name: 'blockletVersion',
167
+ options: {
168
+ customBodyRenderLite: rawIndex => {
169
+ const release = releases[rawIndex];
170
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
171
+ to: "".concat(release.id),
172
+ children: release.blockletVersion || '/'
173
+ });
174
+ }
175
+ }
176
+ }, {
177
+ label: t('blocklet.publish.releaseNote'),
178
+ name: 'note',
179
+ options: {
180
+ customBodyRenderLite: rawIndex => {
181
+ const release = releases[rawIndex];
182
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
183
+ className: "note",
184
+ children: release.note || ''
185
+ });
186
+ }
187
+ }
188
+ }, {
189
+ label: t('common.status'),
190
+ name: 'status',
191
+ options: {
192
+ customBodyRender: value => {
193
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, {
194
+ type: value === 'published' ? 'success' : 'warning',
195
+ children: (0, _upperFirst.default)(value)
196
+ });
197
+ }
198
+ }
199
+ }, {
200
+ label: t('common.actions'),
201
+ name: 'actions',
202
+ options: {
203
+ customBodyRenderLite: rawIndex => {
204
+ const release = releases[rawIndex];
205
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
206
+ display: "flex",
207
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
208
+ color: "primary",
209
+ "aria-label": "download",
210
+ disabled: release.status !== 'published',
211
+ children: release.status === 'published' ? /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
212
+ href: (0, _urlJoin.default)("".concat(_constant.WELLKNOWN_SERVICE_PATH_PREFIX, "/api/project/").concat(blocklet.meta.did, "/").concat(project.id, "/").concat(release.id, "/download/").concat((release.files || [])[0])),
213
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Download.default, {
214
+ sx: {
215
+ fontSize: 18
216
+ }
217
+ })
218
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Download.default, {
219
+ sx: {
220
+ fontSize: 18
221
+ }
222
+ })
223
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
224
+ color: "error",
225
+ "aria-label": "delete",
226
+ onClick: () => onDeleteRelease(release),
227
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Delete.default, {
228
+ sx: {
229
+ fontSize: 18
230
+ }
231
+ })
232
+ })]
233
+ });
234
+ }
235
+ }
236
+ }];
237
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Main, {
238
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
239
+ className: "header",
240
+ children: [breadcrumbs, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Link, {
241
+ to: "create",
242
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
243
+ variant: "contained",
244
+ children: t('blocklet.publish.createRelease')
245
+ })
246
+ })]
247
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Datatable.default, {
248
+ className: "main-table",
249
+ verticalKeyWidth: 100,
250
+ locale: locale,
251
+ data: releases,
252
+ columns: columns,
253
+ options: {
254
+ sort: false,
255
+ download: false,
256
+ filter: false,
257
+ print: false,
258
+ search: false
259
+ }
260
+ }), deleteConfirm && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
261
+ title: t("".concat(t('common.delete'), " ").concat(deleteConfirm.blockletVersion)),
262
+ description: t('blocklet.publish.deleteReleaseTip'),
263
+ confirm: t('common.confirm'),
264
+ onConfirm: deleteRelease,
265
+ onCancel: () => setDeleteConfirm(null)
266
+ })]
267
+ });
268
+ }
269
+ ReleaseList.propTypes = {};
270
+ const Main = (0, _styled.default)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n .main-table > div:first-child {\n display: none;\n }\n .note {\n word-break: break-all;\n white-space: pre-line;\n }\n"])));
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Resource;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
11
+ var _urlJoin = _interopRequireDefault(require("url-join"));
12
+ var _context = require("@arcblock/ux/lib/Locale/context");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ var _templateObject;
15
+ /* eslint-disable no-unused-vars */
16
+ /* eslint-disable react/no-unstable-nested-components */
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
19
+ function Resource(_ref) {
20
+ let {
21
+ app,
22
+ component,
23
+ projectId,
24
+ release
25
+ } = _ref;
26
+ const {
27
+ t,
28
+ locale
29
+ } = (0, _context.useLocaleContext)();
30
+ const iframeRef = (0, _react.useRef)(null);
31
+ const releaseId = release.id;
32
+ const readonly = release.status === 'published';
33
+ const {
34
+ resourceExportPage = '/'
35
+ } = (component === null || component === void 0 ? void 0 : component.meta.capabilities) || {};
36
+ const url = new URL((0, _urlJoin.default)('http://127.0.0.1', component.mountPoint, resourceExportPage).replace(/\/+/g, '/'));
37
+ url.searchParams.set('projectId', projectId);
38
+ url.searchParams.set('releaseId', releaseId);
39
+ url.searchParams.set('local', locale);
40
+ if (readonly) {
41
+ url.searchParams.set('readonly', '1');
42
+ }
43
+ const src = "".concat(url.pathname).concat(url.search);
44
+ if (component.status !== 'running') {
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, {
46
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
47
+ pt: 6,
48
+ children: t('blocklet.publish.componentNotRunning', {
49
+ name: component.meta.title
50
+ })
51
+ })
52
+ });
53
+ }
54
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, {
55
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("iframe", {
56
+ ref: iframeRef,
57
+ title: component.meta.title,
58
+ src: src,
59
+ width: "100%",
60
+ height: "600px"
61
+ })
62
+ });
63
+ }
64
+ Resource.propTypes = {
65
+ component: _propTypes.default.object.isRequired,
66
+ app: _propTypes.default.object.isRequired,
67
+ projectId: _propTypes.default.string.isRequired,
68
+ release: _propTypes.default.shape({
69
+ id: _propTypes.default.string.isRequired,
70
+ status: _propTypes.default.string
71
+ })
72
+ };
73
+ Resource.defaultProps = {
74
+ release: {
75
+ id: ''
76
+ }
77
+ };
78
+ const Container = (0, _styled.default)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n iframe {\n border: none;\n }\n"])));
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = EmptySpinner;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
10
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ const _excluded = ["size"];
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
+ 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); }
19
+ 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; }
20
+ 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; }
21
+ function EmptySpinner(_ref) {
22
+ let {
23
+ size
24
+ } = _ref,
25
+ rest = _objectWithoutProperties(_ref, _excluded);
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, _objectSpread(_objectSpread({
27
+ display: "flex",
28
+ mt: 4
29
+ }, rest), {}, {
30
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
31
+ size: size
32
+ })
33
+ }));
34
+ }
35
+ EmptySpinner.propTypes = {
36
+ size: _propTypes.default.number
37
+ };
38
+ EmptySpinner.defaultProps = {
39
+ size: 24
40
+ };
package/lib/locales/en.js CHANGED
@@ -179,6 +179,7 @@ module.exports = {
179
179
  installSuccess: 'Successfully installed',
180
180
  installing: 'Installing',
181
181
  internalIp: 'Internal IP',
182
+ introduction: 'Introduction',
182
183
  invite: 'Invite',
183
184
  inviting: 'Inviting',
184
185
  ip: 'IP',
@@ -230,6 +231,7 @@ module.exports = {
230
231
  preferences: 'Preferences',
231
232
  protected: 'Protected',
232
233
  protocol: 'Protocol',
234
+ publish: 'Publish',
233
235
  published: 'published',
234
236
  purchase: 'Purchase',
235
237
  readMore: 'More',
@@ -239,11 +241,13 @@ module.exports = {
239
241
  redirectTemporary: 'Temporary Redirect',
240
242
  redirectUrl: 'Redirect URL',
241
243
  rewrite: 'Rewrite',
244
+ release: 'Release',
242
245
  rewriteUrl: 'Rewrite URL',
243
246
  reject: 'Reject',
244
247
  reload: 'Reload',
245
248
  remark: 'Remark',
246
249
  remove: 'Remove',
250
+ removeSuccess: 'Remove successfully',
247
251
  renew: 'Renew',
248
252
  reportIssue: 'Report an issue',
249
253
  required: 'Required',
@@ -261,6 +265,7 @@ module.exports = {
261
265
  saveSuccess: 'Saved successfully',
262
266
  scheduleFailed: 'schedule failed',
263
267
  scheduleSuccess: 'successfully scheduled',
268
+ screenshot: 'Screenshot',
264
269
  search: 'Search',
265
270
  security: 'Security',
266
271
  serverDid: 'Server DID',
@@ -604,6 +609,36 @@ module.exports = {
604
609
  error: {
605
610
  isRunning: 'Blocklet is running, please stop it first',
606
611
  isInProgress: 'Blocklet is in progress, please wait for it to finish'
612
+ },
613
+ publish: {
614
+ productTitle: 'Product',
615
+ versionTitle: 'Version',
616
+ imgTitle: 'Images',
617
+ resourceTitle: 'Resources',
618
+ blockletEmptyTip: 'There aren’t any blocklets here',
619
+ createBlockletTip: 'You can create new blocklet through existing resources, components, and configuration in this application',
620
+ createBlocklet: 'Create a new blocklet',
621
+ deleteBlockletTip: 'The blocklet cannot be recovered after deletion, please confirm',
622
+ componentNotRunning: 'Component {name} is not running, please start it first',
623
+ releaseEmptyTip: 'There aren’t any releases here',
624
+ createReleaseTip: 'You can create a release of the blocklet, along with release notes and resources, for other people to use',
625
+ createRelease: 'Create a new release',
626
+ deleteReleaseTip: 'The release cannot be recovered after deletion',
627
+ createBlockletDid: 'Create from DID Wallet',
628
+ connect: {
629
+ title: 'Create Blocklet DID',
630
+ scan: 'Scan the QR code below to generate Blocklet DID',
631
+ confirm: 'Confirm using DID Wallet',
632
+ success: 'Blocklet DID has been generated, please continue your operation'
633
+ },
634
+ saveDraft: 'Save Draft',
635
+ releaseNote: 'Release Note',
636
+ errorTip: {
637
+ noTitle: 'Blocklet Title is required',
638
+ noVersion: 'Blocklet Version is required',
639
+ noDescription: 'Blocklet Description is required',
640
+ noNote: 'Release Note is required'
641
+ }
607
642
  }
608
643
  },
609
644
  dashboard: {