@abtnode/ux 1.16.19-beta-7d3ef675 → 1.16.19-beta-ba354e01

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/es/blocklet/component/add-component-core.js +35 -27
  2. package/es/blocklet/component/button.js +12 -0
  3. package/es/blocklet/component/did-space/connect-to.js +355 -0
  4. package/es/blocklet/component/did-space/connected.js +42 -0
  5. package/es/blocklet/component/did-space/delete.js +104 -0
  6. package/es/blocklet/component/did-space/disconnect.js +230 -0
  7. package/es/blocklet/component/did-space/index.js +73 -0
  8. package/es/blocklet/component/did-space/item.js +233 -0
  9. package/es/blocklet/component/index.js +3 -3
  10. package/es/blocklet/component/step-actions.js +99 -0
  11. package/es/blocklet/publish/create-release.js +14 -13
  12. package/es/blocklet/publish/project-list.js +1 -0
  13. package/es/blocklet/publish/release-list.js +1 -0
  14. package/es/blocklet/publish/tree.js +4 -0
  15. package/es/blocklet/resource-type.js +34 -0
  16. package/es/blocklet/storage/connect-to.js +11 -15
  17. package/es/contexts/config-space.js +160 -0
  18. package/es/hooks/use-mobile.js +17 -0
  19. package/es/hooks/use-storage-endpoint.js +23 -0
  20. package/es/images.js +48 -0
  21. package/es/locales/en.js +2 -0
  22. package/es/locales/zh.js +2 -0
  23. package/es/util/index.js +5 -1
  24. package/es/util/spaces.js +66 -5
  25. package/lib/blocklet/component/add-component-core.js +44 -36
  26. package/lib/blocklet/component/button.js +23 -0
  27. package/lib/blocklet/component/did-space/connect-to.js +362 -0
  28. package/lib/blocklet/component/did-space/connected.js +49 -0
  29. package/lib/blocklet/component/did-space/delete.js +111 -0
  30. package/lib/blocklet/component/did-space/disconnect.js +241 -0
  31. package/lib/blocklet/component/did-space/index.js +82 -0
  32. package/lib/blocklet/component/did-space/item.js +197 -0
  33. package/lib/blocklet/component/index.js +3 -3
  34. package/lib/blocklet/component/step-actions.js +63 -0
  35. package/lib/blocklet/publish/create-release.js +14 -13
  36. package/lib/blocklet/publish/project-list.js +1 -0
  37. package/lib/blocklet/publish/release-list.js +1 -0
  38. package/lib/blocklet/publish/tree.js +45 -38
  39. package/lib/blocklet/resource-type.js +51 -0
  40. package/lib/blocklet/storage/connect-to.js +11 -15
  41. package/lib/contexts/config-space.js +169 -0
  42. package/lib/hooks/use-mobile.js +24 -0
  43. package/lib/hooks/use-storage-endpoint.js +28 -0
  44. package/lib/images.js +51 -0
  45. package/lib/locales/en.js +2 -0
  46. package/lib/locales/zh.js +2 -0
  47. package/lib/util/index.js +8 -2
  48. package/lib/util/spaces.js +69 -3
  49. package/package.json +11 -7
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _material = require("@mui/material");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _context = require("@arcblock/ux/lib/Locale/context");
10
+ var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
11
+ var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
12
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
13
+ var _propTypes = _interopRequireWildcard(require("prop-types"));
14
+ var _previewNft = _interopRequireDefault(require("../../storage/preview-nft"));
15
+ var _util = require("../../../util");
16
+ var _spaces = require("../../../util/spaces");
17
+ var _didAddress = _interopRequireDefault(require("../../../did-address"));
18
+ var _delete = _interopRequireDefault(require("./delete"));
19
+ var _useMobile = _interopRequireDefault(require("../../../hooks/use-mobile"));
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ var _templateObject;
22
+ const _excluded = ["spaceGateway", "connected", "onDisconnect"];
23
+ 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); }
24
+ 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; }
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
27
+ 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; }
28
+ 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; }
29
+ 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; }
30
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
31
+ 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); }
32
+ 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; }
33
+ 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; }
34
+ var SpacesConnected = function SpacesConnected(props) {
35
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", _objectSpread(_objectSpread({}, props), {}, {
36
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
37
+ cx: "4",
38
+ cy: "4",
39
+ r: "4",
40
+ fill: "#25C99B"
41
+ })
42
+ }));
43
+ };
44
+ SpacesConnected.defaultProps = {
45
+ width: "8",
46
+ height: "8",
47
+ viewBox: "0 0 8 8",
48
+ fill: "none",
49
+ xmlns: "http://www.w3.org/2000/svg"
50
+ };
51
+ /**
52
+ * @description
53
+ * @param {{
54
+ * spaceGateway: import('../../../contexts/config-space').SpaceGateway
55
+ * connected: boolean,
56
+ * onDisconnect: () => Promise<void>,
57
+ * }} { spaceGateway, connected, onDisconnect }
58
+ */
59
+ function SpaceItem(_ref) {
60
+ let {
61
+ spaceGateway,
62
+ connected,
63
+ onDisconnect
64
+ } = _ref,
65
+ rest = _objectWithoutProperties(_ref, _excluded);
66
+ const isMobile = (0, _useMobile.default)();
67
+ const {
68
+ t
69
+ } = (0, _context.useLocaleContext)();
70
+ const handleOnDisconnect = async () => {
71
+ try {
72
+ await onDisconnect();
73
+ _Toast.default.success(t('storage.spaces.gateway.delete.succeeded', {
74
+ name: spaceGateway.name
75
+ }));
76
+ } catch (error) {
77
+ console.error(error);
78
+ _Toast.default.error((0, _util.formatError)(error));
79
+ }
80
+ };
81
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(BoxContainer, {
82
+ style: {
83
+ position: 'relative'
84
+ },
85
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, _objectSpread(_objectSpread({
86
+ sx: {
87
+ backgroundColor: connected ? '#F0FDFF' : 'inherit',
88
+ '&:hover': {
89
+ backgroundColor: connected ? '#F0FDFF' : '#FBFBFB'
90
+ },
91
+ borderRadius: '8px'
92
+ },
93
+ display: "flex",
94
+ padding: "12px 20px"
95
+ }, rest), {}, {
96
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
97
+ display: "flex",
98
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_previewNft.default, {
99
+ alt: spaceGateway.did,
100
+ src: (0, _spaces.getSpaceNftDisplayUrlFromEndpoint)(spaceGateway.endpoint)
101
+ })
102
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
103
+ className: "spaces-info",
104
+ display: "flex",
105
+ flexGrow: 1,
106
+ flexDirection: "column",
107
+ sx: {
108
+ marginLeft: '20px',
109
+ padding: '0px 0px'
110
+ },
111
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
112
+ className: "spaces-info",
113
+ display: "flex",
114
+ maxWidth: "360px",
115
+ alignItems: "center",
116
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
117
+ color: connected ? 'primary' : 'inherit',
118
+ fontSize: "1rem",
119
+ fontWeight: "bold",
120
+ children: spaceGateway.name
121
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Chip, {
122
+ label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(SpacesConnected, {
124
+ style: {
125
+ marginRight: '4px'
126
+ }
127
+ }), t('storage.spaces.connected.tag')]
128
+ }),
129
+ variant: "outlined",
130
+ size: "small",
131
+ style: {
132
+ marginLeft: isMobile ? null : '20px',
133
+ fontWeight: 'bold'
134
+ }
135
+ })]
136
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
137
+ className: "spaces-address",
138
+ display: "flex",
139
+ color: "#9397A1",
140
+ marginTop: "8px",
141
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
142
+ sx: {
143
+ display: 'inline-flex',
144
+ alignItems: 'center',
145
+ fontSize: '14px'
146
+ },
147
+ color: "#9397A1",
148
+ children: spaceGateway.did && /*#__PURE__*/(0, _jsxRuntime.jsx)(_didAddress.default, {
149
+ copyable: false,
150
+ size: 14,
151
+ compact: true,
152
+ responsive: false,
153
+ did: spaceGateway.did
154
+ })
155
+ })
156
+ })]
157
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
158
+ className: "spaces-backup",
159
+ display: "flex",
160
+ alignItems: "center",
161
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
162
+ className: "backup-strategy",
163
+ display: "flex",
164
+ alignItems: "center",
165
+ width: "100%",
166
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_delete.default, {
167
+ spaceGateway: spaceGateway,
168
+ onDeleteSpace: handleOnDisconnect
169
+ })
170
+ })
171
+ })]
172
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
173
+ className: "selected-container selected",
174
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Check.default, {
175
+ className: "selected-icon"
176
+ })
177
+ })]
178
+ });
179
+ }
180
+ SpaceItem.propTypes = {
181
+ spaceGateway: _propTypes.default.shape({
182
+ did: _propTypes.default.string.isRequired,
183
+ name: _propTypes.default.string.isRequired,
184
+ url: _propTypes.default.string.isRequired,
185
+ endpoint: _propTypes.default.string.isRequired,
186
+ protected: _propTypes.default.bool
187
+ }).isRequired,
188
+ connected: _propTypes.bool,
189
+ onDisconnect: _propTypes.func
190
+ };
191
+ SpaceItem.defaultProps = {
192
+ connected: false,
193
+ onDisconnect: () => undefined
194
+ };
195
+ const BoxContainer = (0, _styled.default)(_material.Box)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .selected-container {\n position: absolute;\n right: 0px;\n bottom: 0px;\n display: flex;\n -webkit-box-pack: end;\n justify-content: flex-end;\n align-items: flex-end;\n width: 32px;\n height: 32px;\n border-radius: 0px 0px 8px;\n color: rgb(255, 255, 255);\n overflow: hidden;\n transition: all 0.4s ease 0s;\n\n &::after {\n position: absolute;\n z-index: 0;\n left: 60px;\n top: 60px;\n display: block;\n width: 0px;\n height: 0px;\n border-width: 16px;\n border-style: solid;\n border-color: transparent #1dc1c7 #1dc1c7 transparent;\n transition: all 0.1s ease 0s;\n content: '';\n }\n\n .selected-icon {\n visibility: hidden;\n width: 60%;\n height: 60%;\n position: relative;\n z-index: 2;\n margin: 0px 1px 1px 0px;\n font-size: 16px;\n transition: all 0.2s ease 0s;\n }\n }\n\n .selected-container.selected {\n &::after {\n left: 0px;\n top: 0px;\n }\n\n .selected-icon {\n visibility: visible;\n }\n }\n"])));
196
+ var _default = SpaceItem;
197
+ exports.default = _default;
@@ -44,6 +44,7 @@ var _tag = _interopRequireDefault(require("../../tag"));
44
44
  var _blockletSource = _interopRequireDefault(require("../blocklet-source"));
45
45
  var _status = _interopRequireDefault(require("../status"));
46
46
  var _version = _interopRequireDefault(require("../version"));
47
+ var _resourceType = _interopRequireDefault(require("../resource-type"));
47
48
  var _confirm = _interopRequireDefault(require("../../confirm"));
48
49
  var _node = require("../../contexts/node");
49
50
  var _util2 = require("../../util");
@@ -305,9 +306,8 @@ function ComponentItem(_ref) {
305
306
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
306
307
  display: "flex",
307
308
  alignItems: "center",
308
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_version.default, {
309
- blocklet: blocklet,
310
- checkUpgrade: false
309
+ children: [!(0, _util.hasStartEngine)(blocklet.meta) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_resourceType.default, {
310
+ blocklet: blocklet
311
311
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_mode.default, {
312
312
  style: {
313
313
  marginLeft: 4
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = StepActions;
7
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
10
+ var _context = require("@arcblock/ux/lib/Locale/context");
11
+ var _button = _interopRequireDefault(require("./button"));
12
+ var _useMobile = _interopRequireDefault(require("../../hooks/use-mobile"));
13
+ var _util = require("../../util");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ var _templateObject, _templateObject2;
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
18
+ function StepActions(_ref) {
19
+ let {
20
+ blocklet,
21
+ onStartNow,
22
+ children,
23
+ disabled
24
+ } = _ref;
25
+ const {
26
+ t
27
+ } = (0, _context.useLocaleContext)();
28
+ const isMobile = (0, _useMobile.default)();
29
+ if (!blocklet || (0, _util.hasRequiredSteps)(blocklet.meta)) {
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Center, {
31
+ children: children
32
+ });
33
+ }
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Between, {
35
+ isMobile: isMobile,
36
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_button.default, {
37
+ className: "start-now",
38
+ variant: "contained",
39
+ color: "primary",
40
+ disabled: disabled,
41
+ onClick: () => onStartNow(),
42
+ children: t('setup.startNow')
43
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
44
+ display: "flex",
45
+ alignItems: "center",
46
+ children: children
47
+ })]
48
+ });
49
+ }
50
+ StepActions.propTypes = {
51
+ blocklet: _propTypes.default.object,
52
+ onStartNow: _propTypes.default.func,
53
+ children: _propTypes.default.any,
54
+ disabled: _propTypes.default.bool
55
+ };
56
+ StepActions.defaultProps = {
57
+ blocklet: null,
58
+ onStartNow: () => {},
59
+ children: null,
60
+ disabled: false
61
+ };
62
+ const Center = (0, _styled.default)(_Box.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n margin-top: auto;\n padding-top: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n .bottom-button {\n min-width: 200px;\n }\n ", " {\n .bottom-button {\n width: 100%;\n }\n }\n"])), props => props.theme.breakpoints.down('md'));
63
+ const Between = (0, _styled.default)(_Box.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding-top: 24px;\n margin-top: auto;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n .start-now {\n min-width: 140px;\n }\n .bottom-button {\n min-width: 120px;\n }\n ", " {\n width: 100%;\n }\n\n ", " {\n .start-now {\n min-width: inherit;\n }\n .bottom-button {\n min-width: 100px;\n }\n }\n\n ", " {\n justify-content: space-between;\n gap: '32px',\n }}\n"])), props => props.theme.breakpoints.down('lg'), props => props.theme.breakpoints.down('md'), props => props.isMobile);
@@ -195,7 +195,7 @@ function CreateRelease(_ref2) {
195
195
  _Toast.default.error((0, _util.formatError)(err));
196
196
  });
197
197
  };
198
- const getData = () => {
198
+ const getData = (0, _react.useCallback)(() => {
199
199
  if (mode === 'edit') {
200
200
  if (!releaseId) {
201
201
  _Toast.default.error('Empty release id');
@@ -206,11 +206,11 @@ function CreateRelease(_ref2) {
206
206
  if (mode === 'create') {
207
207
  getProject();
208
208
  }
209
- };
209
+ // eslint-disable-next-line react-hooks/exhaustive-deps
210
+ }, [mode, releaseId]);
210
211
  (0, _react.useEffect)(() => {
211
212
  getData();
212
- }, []); // eslint-disable-line react-hooks/exhaustive-deps
213
-
213
+ }, [getData]);
214
214
  const onRelease = status => {
215
215
  const errors = validateParams(params, status, t);
216
216
  if (errors) {
@@ -246,16 +246,17 @@ function CreateRelease(_ref2) {
246
246
  setCreateLoading(false);
247
247
  setLoading(false);
248
248
  if (status === 'draft') {
249
- _Toast.default.success('Save draft success');
250
- if (mode === 'create') {
251
- var _res$release;
252
- const id = res === null || res === void 0 ? void 0 : (_res$release = res.release) === null || _res$release === void 0 ? void 0 : _res$release.id;
253
- navigate("../".concat(projectId, "/").concat(id), {
254
- replace: true
255
- });
256
- }
249
+ _Toast.default.success(t('blocklet.publish.saveDraftSuccess'));
250
+ } else {
251
+ _Toast.default.success(t('blocklet.publish.createReleaseSuccess'));
252
+ }
253
+ if (mode === 'create') {
254
+ var _res$release;
255
+ const id = res === null || res === void 0 ? void 0 : (_res$release = res.release) === null || _res$release === void 0 ? void 0 : _res$release.id;
256
+ navigate("../".concat(projectId, "/").concat(id), {
257
+ replace: true
258
+ });
257
259
  } else {
258
- _Toast.default.success('Create Release success');
259
260
  getRelease();
260
261
  }
261
262
  }).catch(err => {
@@ -76,6 +76,7 @@ function ProjectList() {
76
76
  setLoading(false);
77
77
  getProjects();
78
78
  _Toast.default.success(t('common.removeSuccess'));
79
+ setDeleteConfirm(null);
79
80
  }).catch(err => {
80
81
  setLoading(false);
81
82
  _Toast.default.error(err.message);
@@ -107,6 +107,7 @@ function ReleaseList() {
107
107
  setLoading(false);
108
108
  getReleases();
109
109
  _Toast.default.success(t('common.removeSuccess'));
110
+ setDeleteConfirm(null);
110
111
  }).catch(err => {
111
112
  setLoading(false);
112
113
  _Toast.default.error(err.message);
@@ -17,6 +17,7 @@ var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore
17
17
  var _ChevronRight = _interopRequireDefault(require("@mui/icons-material/ChevronRight"));
18
18
  var _OpenInNew = _interopRequireDefault(require("@mui/icons-material/OpenInNew"));
19
19
  var _react = require("@iconify/react");
20
+ var _images = _interopRequireDefault(require("../../images"));
20
21
  var _jsxRuntime = require("react/jsx-runtime");
21
22
  var _templateObject; // BFS algorithm to find node by his ID
22
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -126,45 +127,51 @@ function Tree(_ref2) {
126
127
  var _node$children;
127
128
  return ((_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.length) > 0;
128
129
  });
129
- const renderTree = node => /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem.default, {
130
- nodeId: node.id,
131
- label: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {
132
- onClick: stopExpand,
133
- control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.default, {
134
- size: "small",
135
- checked: selectedNodes.indexOf(node.id) !== -1,
136
- tabIndex: -1,
137
- disableRipple: true,
138
- onClick: event => handleNodeSelect(event, node.id),
139
- disabled: disabled
140
- }),
141
- label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
142
- className: "content",
143
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
144
- display: "flex",
145
- alignItems: "center",
146
- children: [node.icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResourceIcon, {
147
- icon: node.icon
148
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
149
- className: "name",
150
- children: node.name
151
- }), node.url && /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
152
- href: node.url,
153
- target: "_blank",
154
- rel: "noreferrer",
155
- className: "link",
156
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_OpenInNew.default, {
157
- className: "link-icon"
158
- })
130
+ const renderTree = node => {
131
+ var _node$images;
132
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem.default, {
133
+ nodeId: node.id,
134
+ label: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {
135
+ onClick: stopExpand,
136
+ control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.default, {
137
+ size: "small",
138
+ checked: selectedNodes.indexOf(node.id) !== -1,
139
+ tabIndex: -1,
140
+ disableRipple: true,
141
+ onClick: event => handleNodeSelect(event, node.id),
142
+ disabled: disabled
143
+ }),
144
+ label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
145
+ className: "content",
146
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
147
+ display: "flex",
148
+ alignItems: "center",
149
+ children: [node.icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(ResourceIcon, {
150
+ icon: node.icon
151
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
152
+ className: "name",
153
+ children: node.name
154
+ }), node.url && /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
155
+ href: node.url,
156
+ target: "_blank",
157
+ rel: "noreferrer",
158
+ className: "link",
159
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_OpenInNew.default, {
160
+ className: "link-icon"
161
+ })
162
+ })]
163
+ }), !!node.description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
164
+ className: "description",
165
+ children: node.description
166
+ }), !!((_node$images = node.images) !== null && _node$images !== void 0 && _node$images.length) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_images.default, {
167
+ className: "images",
168
+ data: node.images
159
169
  })]
160
- }), !!node.description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
161
- className: "description",
162
- children: node.description
163
- })]
164
- })
165
- }),
166
- children: Array.isArray(node.children) ? node.children.map(renderTree) : null
167
- }, node.id);
170
+ })
171
+ }),
172
+ children: Array.isArray(node.children) ? node.children.map(renderTree) : null
173
+ }, node.id);
174
+ };
168
175
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledTreeView, {
169
176
  className: (0, _classnames.default)(!hadChildren && 'no-children'),
170
177
  multiSelect: true,
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ResourceType;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _uniq = _interopRequireDefault(require("lodash/uniq"));
10
+ var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
11
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
12
+ var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ const _excluded = ["blocklet"];
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ 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; }
17
+ 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; }
18
+ 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; }
19
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
20
+ 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); }
21
+ 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; }
22
+ 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; }
23
+ function ResourceType(_ref) {
24
+ let {
25
+ blocklet
26
+ } = _ref,
27
+ rest = _objectWithoutProperties(_ref, _excluded);
28
+ const types = (0, _react.useMemo)(() => {
29
+ var _blocklet$meta;
30
+ return (0, _uniq.default)(((blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta = blocklet.meta) === null || _blocklet$meta === void 0 ? void 0 : _blocklet$meta.resources) || []).map(x => (0, _upperFirst.default)(x.split('.').slice(-1)[0])).filter(Boolean));
31
+ }, [blocklet]);
32
+ const style = {
33
+ color: '#FFF',
34
+ backgroundColor: '#5B9BD5',
35
+ marginRight: '4px'
36
+ };
37
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, _objectSpread(_objectSpread({
38
+ display: "flex",
39
+ mr: "-4px"
40
+ }, rest), {}, {
41
+ children: types.map(x => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tag.default, {
42
+ type: "custom",
43
+ style: style,
44
+ children: x
45
+ }, x))
46
+ }));
47
+ }
48
+ ResourceType.propTypes = {
49
+ blocklet: _propTypes.default.object.isRequired
50
+ };
51
+ ResourceType.defaultProps = {};
@@ -148,18 +148,14 @@ function ConnectTo(_ref) {
148
148
  * @returns {Promise<void>}
149
149
  */
150
150
  const addSpaceGatewayNow = async _ref2 => {
151
- var _endpoint$replace, _endpoint$replace$tri, _spaceGateway$name;
151
+ var _spaceGateway$name;
152
152
  let {
153
153
  endpoint,
154
154
  name,
155
155
  did
156
156
  } = _ref2;
157
- let normalizeUrl = endpoint === null || endpoint === void 0 ? void 0 : (_endpoint$replace = endpoint.replace(/\/api\/.+/, '')) === null || _endpoint$replace === void 0 ? void 0 : (_endpoint$replace$tri = _endpoint$replace.trim()) === null || _endpoint$replace$tri === void 0 ? void 0 : _endpoint$replace$tri.replace(/\/$/, '');
158
- if (!normalizeUrl.startsWith('http')) {
159
- // eslint-disable-next-line no-param-reassign
160
- normalizeUrl = "https://".concat(normalizeUrl);
161
- }
162
- if (!(await (0, _spaces.isValidSpaceGatewayUrl)(normalizeUrl))) {
157
+ const spaceGatewayUrl = await (0, _spaces.getSpaceGatewayUrl)(endpoint);
158
+ if (!(await (0, _spaces.isValidSpaceGatewayUrl)(spaceGatewayUrl))) {
163
159
  _Toast.default.error(t('storage.spaces.gateway.add.invalidUrl'));
164
160
  return;
165
161
  }
@@ -173,7 +169,7 @@ function ConnectTo(_ref) {
173
169
  const spaceGateway = {
174
170
  name,
175
171
  did,
176
- url: normalizeUrl,
172
+ url: spaceGatewayUrl,
177
173
  endpoint
178
174
  };
179
175
  await addSpaceGateway(spaceGateway, endpoint);
@@ -198,18 +194,18 @@ function ConnectTo(_ref) {
198
194
  const handleUseSpaceGatewayConnect = async () => {
199
195
  try {
200
196
  setLoading(true);
201
- const tempUrl = url.startsWith('http') ? url : "https://".concat(url);
202
- const fullUrl = (0, _spaces.extraDIDSpacesCoreUrl)(tempUrl);
203
- const spaceDid = new URL(tempUrl).searchParams.get('spaceDid');
204
- if (!(await (0, _spaces.isValidSpaceGatewayUrl)(fullUrl))) {
197
+ const spaceGatewayUrl = await (0, _spaces.getSpaceGatewayUrl)(url);
198
+ const didSpacesCoreUrl = (0, _spaces.extraDIDSpacesCoreUrl)(spaceGatewayUrl);
199
+ const spaceDid = new URL(spaceGatewayUrl).searchParams.get('spaceDid');
200
+ if (!(await (0, _spaces.isValidSpaceGatewayUrl)(didSpacesCoreUrl))) {
205
201
  throw new Error(t('storage.spaces.gateway.add.invalidUrl'));
206
202
  }
207
203
  setAuthorizeConnect(preValue => _objectSpread(_objectSpread({}, preValue), {}, {
208
204
  open: true,
209
- prefix: (0, _urlJoin.default)(fullUrl, 'space/api/did'),
210
- baseUrl: new URL(fullUrl).origin,
205
+ prefix: (0, _urlJoin.default)(didSpacesCoreUrl, 'space/api/did'),
206
+ baseUrl: new URL(didSpacesCoreUrl).origin,
211
207
  checkFn: _api.axios.create({
212
- baseURL: (0, _urlJoin.default)(fullUrl, 'space')
208
+ baseURL: (0, _urlJoin.default)(didSpacesCoreUrl, 'space')
213
209
  }).get,
214
210
  extraParams: {
215
211
  appDid: blockletInfo.appDid,