@abtnode/ux 1.16.18-beta-adeeb0b3 → 1.16.18-beta-aa01bd8e

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.
@@ -15,7 +15,7 @@ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
15
15
  var _ArrowDropDown = _interopRequireDefault(require("@mui/icons-material/ArrowDropDown"));
16
16
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
17
17
  var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
18
- var _constants = require("../../util/constants");
18
+ var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
19
19
  var _node = require("../../contexts/node");
20
20
  var _blocklet = require("../../contexts/blocklet");
21
21
  var _add = _interopRequireDefault(require("../../store/add"));
@@ -25,12 +25,19 @@ var _jsxRuntime = require("react/jsx-runtime");
25
25
  var _templateObject;
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
27
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
28
+ 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; }
29
+ 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; }
30
+ 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; }
31
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
32
+ 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); }
28
33
  function SelectStore(_ref) {
29
34
  let {
30
35
  onChange: _onChange,
31
36
  loading,
32
37
  children,
33
- extra
38
+ extra,
39
+ stores: customStores,
40
+ storageKey
34
41
  } = _ref;
35
42
  const {
36
43
  t
@@ -44,16 +51,20 @@ function SelectStore(_ref) {
44
51
  } = (0, _blocklet.useBlockletContext)();
45
52
  const [open, setOpen] = (0, _react.useState)(false);
46
53
  const storeSelectRef = (0, _react.useRef)(null);
47
- const storageKey = inService ? _constants.STORAGE_KEY_STORE_BLOCKLET : _constants.STORAGE_KEY_STORE_SERVER;
48
- const [storeUrl, setStoreUrl] = (0, _useLocalStorage.default)(storageKey);
54
+ const [storeUrlMem, setStoreUrlMem] = (0, _react.useState)();
55
+ const [storeUrlLs, setStoreUrlLs] = (0, _useLocalStorage.default)(storageKey || 'tmp');
56
+ const [storeUrl, setStoreUrl] = storageKey ? [storeUrlLs, setStoreUrlLs] : [storeUrlMem, setStoreUrlMem];
49
57
  const {
50
- storeList,
58
+ storeList: appStoreList,
51
59
  teamDid
52
60
  } = (0, _util.getStoreList)({
53
61
  fromBlocklet: inService,
54
62
  blocklet,
55
63
  nodeInfo
56
64
  });
65
+ const storeList = (0, _uniqBy.default)([...customStores.map(x => _objectSpread(_objectSpread({}, x), {}, {
66
+ protected: true
67
+ })), ...appStoreList], 'url');
57
68
  const currentRegistry = storeUrl && storeList.find(x => storeUrl === x.url) || storeList[0];
58
69
  const isServerlessMode = nodeInfo.mode === _constant.NODE_MODES.SERVERLESS;
59
70
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -143,11 +154,18 @@ SelectStore.propTypes = {
143
154
  onChange: _propTypes.default.func,
144
155
  loading: _propTypes.default.bool,
145
156
  children: _propTypes.default.any.isRequired,
146
- extra: _propTypes.default.node
157
+ extra: _propTypes.default.node,
158
+ storageKey: _propTypes.default.string,
159
+ stores: _propTypes.default.arrayOf(_propTypes.default.shape({
160
+ name: _propTypes.default.string.isRequired,
161
+ url: _propTypes.default.string.isRequired
162
+ }))
147
163
  };
148
164
  SelectStore.defaultProps = {
149
165
  onChange: () => {},
150
166
  loading: false,
151
- extra: ''
167
+ extra: '',
168
+ stores: [],
169
+ storageKey: ''
152
170
  };
153
171
  const SelectStoreTitle = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n\n span {\n font-size: 16px;\n color: ", ";\n // font-weight: bold;\n }\n"])), props => props.theme.palette.common.black);
@@ -21,7 +21,7 @@ var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
21
21
  var _util2 = require("../../util");
22
22
  var _jsxRuntime = require("react/jsx-runtime");
23
23
  var _templateObject;
24
- const _excluded = ["handleButtonClick", "handleSearchSelect", "storeUrl", "handleBlockletRender", "extraFilter", "serverVersion"];
24
+ const _excluded = ["handleButtonClick", "handleSearchSelect", "storeUrl", "handleBlockletRender", "extraFilter", "serverVersion", "resourceType"];
25
25
  /* eslint-disable react/no-unstable-nested-components */
26
26
  /* eslint-disable react/jsx-wrap-multilines */
27
27
  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); }
@@ -153,25 +153,36 @@ function BlockletList(_ref3) {
153
153
  storeUrl,
154
154
  handleBlockletRender,
155
155
  extraFilter,
156
- serverVersion
156
+ serverVersion,
157
+ resourceType
157
158
  } = _ref3,
158
159
  rest = _objectWithoutProperties(_ref3, _excluded);
159
160
  const {
160
161
  locale
161
162
  } = (0, _context.useLocaleContext)();
163
+ const [initialized, setInitialized] = (0, _react.useState)(false);
162
164
  const [filters, setFilters] = (0, _react.useState)({});
163
165
  const handleChange = changeData => {
164
166
  setFilters(changeData);
165
167
  };
166
168
  const endpoint = storeUrl;
167
169
  (0, _react.useEffect)(() => {
168
- setFilters({});
169
- }, [endpoint]);
170
+ setFilters({
171
+ resourceType
172
+ });
173
+ }, [endpoint, resourceType]);
174
+ (0, _react.useEffect)(() => {
175
+ setInitialized(true);
176
+ setFilters({
177
+ resourceType
178
+ });
179
+ // eslint-disable-next-line react-hooks/exhaustive-deps
180
+ }, []);
170
181
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
171
182
  FallbackComponent: _ErrorBoundary.ErrorFallback,
172
183
  resetKeys: [endpoint],
173
184
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
174
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_list.default, {
185
+ children: initialized && /*#__PURE__*/(0, _jsxRuntime.jsx)(_list.default, {
175
186
  blockletRender: blockletRenderProps => {
176
187
  const defaultProps = _objectSpread(_objectSpread({}, blockletRenderProps), {}, {
177
188
  handleButtonClick,
@@ -188,7 +199,8 @@ function BlockletList(_ref3) {
188
199
  onSearchSelect: handleSearchSelect,
189
200
  filters: filters,
190
201
  extraFilter: extraFilter,
191
- serverVersion: serverVersion
202
+ serverVersion: serverVersion,
203
+ fetchCategoryDelay: 500
192
204
  })
193
205
  }))
194
206
  });
@@ -199,13 +211,15 @@ BlockletList.propTypes = {
199
211
  handleSearchSelect: _propTypes.default.func,
200
212
  handleBlockletRender: _propTypes.default.func,
201
213
  extraFilter: _propTypes.default.func,
202
- serverVersion: _propTypes.default.string
214
+ serverVersion: _propTypes.default.string,
215
+ resourceType: _propTypes.default.string
203
216
  };
204
217
  BlockletList.defaultProps = {
205
218
  handleButtonClick: null,
206
219
  handleSearchSelect: null,
207
220
  handleBlockletRender: null,
208
221
  extraFilter: undefined,
209
- serverVersion: ''
222
+ serverVersion: '',
223
+ resourceType: ''
210
224
  };
211
225
  const StyledBlocklet = (0, _styled.default)(_Blocklet.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .ms-highlight {\n color: ", ";\n }\n"])), props => props.theme.palette.primary.main);
@@ -65,6 +65,9 @@ function CreateProject(_ref) {
65
65
  } = (0, _node.useNodeContext)();
66
66
  const [blockletDid, setBlockletDid] = (0, _react.useState)();
67
67
  const [openConnect, setOpenConnect] = (0, _react.useState)(false);
68
+ const {
69
+ componentDid
70
+ } = (0, _reactRouterDom.useParams)();
68
71
  const handleCreateBlockletDidError = err => {
69
72
  _Toast.default.error(err.message);
70
73
  setOpenConnect(false);
@@ -94,7 +97,8 @@ function CreateProject(_ref) {
94
97
  did: blocklet.meta.did,
95
98
  blockletTitle: blockletTitle || '',
96
99
  blockletDid,
97
- type
100
+ type,
101
+ componentDid
98
102
  }
99
103
  }).then(() => {
100
104
  setLoading(false);
@@ -124,7 +124,8 @@ function CreateRelease(_ref2) {
124
124
  const navigate = (0, _reactRouterDom.useNavigate)();
125
125
  const {
126
126
  projectId,
127
- releaseId: inputReleaseId
127
+ releaseId: inputReleaseId,
128
+ componentDid
128
129
  } = (0, _reactRouterDom.useParams)();
129
130
  const {
130
131
  t
@@ -144,7 +145,7 @@ function CreateRelease(_ref2) {
144
145
  const releaseId = inputReleaseId === 'create' ? '' : inputReleaseId;
145
146
  const mode = inputReleaseId === 'create' ? 'create' : 'edit';
146
147
  const tabs = [];
147
- const resourceComponents = ((blocklet === null || blocklet === void 0 ? void 0 : blocklet.children) || []).filter(x => x.meta.capabilities.resourceExportApi);
148
+ const resourceComponents = ((blocklet === null || blocklet === void 0 ? void 0 : blocklet.children) || []).filter(x => x.meta.capabilities.resourceExportApi).filter(x => !componentDid || x.meta.did === componentDid);
148
149
  resourceComponents.forEach(item => {
149
150
  addComponentTabs({
150
151
  tabs,
@@ -4,10 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = BlockletPublish;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactRouterDom = require("react-router-dom");
9
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
11
+ var _blocklet = require("../../contexts/blocklet");
11
12
  var _projectList = _interopRequireDefault(require("./project-list"));
12
13
  var _createProject = _interopRequireDefault(require("./create-project"));
13
14
  var _releaseList = _interopRequireDefault(require("./release-list"));
@@ -15,8 +16,33 @@ var _createRelease = _interopRequireDefault(require("./create-release"));
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
17
  var _templateObject;
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ 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); }
20
+ 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; }
18
21
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
19
22
  function BlockletPublish() {
23
+ const {
24
+ blocklet
25
+ } = (0, _blocklet.useBlockletContext)();
26
+ const location = (0, _reactRouterDom.useLocation)();
27
+
28
+ // post message to parent window when route changed
29
+ const {
30
+ componentDid
31
+ } = (0, _reactRouterDom.useParams)();
32
+ (0, _react.useEffect)(() => {
33
+ if (componentDid && window.parent) {
34
+ const path = "".concat(location.pathname).concat(location.search);
35
+ window.parent.postMessage({
36
+ event: 'popstate',
37
+ page: 'publish',
38
+ componentDid,
39
+ path
40
+ }, '*');
41
+ }
42
+ }, [componentDid, location]);
43
+ if (!blocklet) {
44
+ return null;
45
+ }
20
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Main, {
21
47
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactRouterDom.Routes, {
22
48
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
@@ -41,11 +41,15 @@ function ProjectList() {
41
41
  blocklet
42
42
  } = (0, _blocklet.useBlockletContext)();
43
43
  const [deleteConfirm, setDeleteConfirm] = (0, _react.useState)(null);
44
+ const {
45
+ componentDid = ''
46
+ } = (0, _reactRouterDom.useParams)();
44
47
  const [projects, setProjects] = (0, _react.useState)(null);
45
48
  const getProjects = () => {
46
49
  api.getProjects({
47
50
  input: {
48
- did: blocklet.meta.did
51
+ did: blocklet.meta.did,
52
+ componentDid
49
53
  }
50
54
  }).then(res => {
51
55
  const list = (res === null || res === void 0 ? void 0 : res.projects) || [];
@@ -40,7 +40,7 @@ const injectNavigationData = {
40
40
  from: 'tmpl'
41
41
  }],
42
42
  dashboard: [{
43
- id: '/access',
43
+ id: '/team',
44
44
  title: {
45
45
  en: 'Access',
46
46
  zh: '访问控制'
package/lib/locales/en.js CHANGED
@@ -570,6 +570,7 @@ module.exports = {
570
570
  fromUrl: 'Add Component From Url'
571
571
  },
572
572
  addNext: 'Add {name}',
573
+ upgradeNext: 'Upgrade {name}',
573
574
  setting: 'Settings'
574
575
  },
575
576
  router: {
package/lib/locales/zh.js CHANGED
@@ -577,6 +577,7 @@ module.exports = {
577
577
  fromUrl: '通过 URL 选择组件'
578
578
  },
579
579
  addNext: '添加 {name}',
580
+ upgradeNext: '升级 {name}',
580
581
  setting: '参数设置'
581
582
  },
582
583
  router: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abtnode/ux",
3
- "version": "1.16.18-beta-adeeb0b3",
3
+ "version": "1.16.18-beta-aa01bd8e",
4
4
  "description": "UX components shared across abtnode packages",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -27,24 +27,24 @@
27
27
  "author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
- "@abtnode/auth": "1.16.18-beta-adeeb0b3",
31
- "@abtnode/constant": "1.16.18-beta-adeeb0b3",
32
- "@abtnode/util": "1.16.18-beta-adeeb0b3",
30
+ "@abtnode/auth": "1.16.18-beta-aa01bd8e",
31
+ "@abtnode/constant": "1.16.18-beta-aa01bd8e",
32
+ "@abtnode/util": "1.16.18-beta-aa01bd8e",
33
33
  "@ahooksjs/use-url-state": "^3.5.1",
34
- "@arcblock/did": "^1.18.93",
35
- "@arcblock/did-connect": "^2.8.5",
34
+ "@arcblock/did": "^1.18.95",
35
+ "@arcblock/did-connect": "^2.8.8",
36
36
  "@arcblock/did-motif": "^1.1.13",
37
- "@arcblock/icons": "^2.8.5",
38
- "@arcblock/nft-display": "2.8.5",
39
- "@arcblock/react-hooks": "^2.8.5",
40
- "@arcblock/terminal": "^2.8.5",
41
- "@arcblock/ux": "^2.8.5",
42
- "@blocklet/constant": "1.16.18-beta-adeeb0b3",
43
- "@blocklet/launcher-layout": "2.2.22",
44
- "@blocklet/list": "^0.12.46",
45
- "@blocklet/meta": "1.16.18-beta-adeeb0b3",
46
- "@blocklet/ui-react": "^2.8.5",
47
- "@blocklet/uploader": "^0.0.32",
37
+ "@arcblock/icons": "^2.8.8",
38
+ "@arcblock/nft-display": "2.8.8",
39
+ "@arcblock/react-hooks": "^2.8.8",
40
+ "@arcblock/terminal": "^2.8.8",
41
+ "@arcblock/ux": "^2.8.8",
42
+ "@blocklet/constant": "1.16.18-beta-aa01bd8e",
43
+ "@blocklet/launcher-layout": "2.2.27",
44
+ "@blocklet/list": "^0.12.50",
45
+ "@blocklet/meta": "1.16.18-beta-aa01bd8e",
46
+ "@blocklet/ui-react": "^2.8.8",
47
+ "@blocklet/uploader": "^0.0.34",
48
48
  "@emotion/react": "^11.10.4",
49
49
  "@emotion/styled": "^11.10.4",
50
50
  "@iconify/react": "^4.0.0",
@@ -54,7 +54,7 @@
54
54
  "@mui/material": "^5.14.10",
55
55
  "@mui/styles": "^5.14.10",
56
56
  "@mui/x-date-pickers": "^6.14.0",
57
- "@ocap/client": "1.18.93",
57
+ "@ocap/client": "1.18.95",
58
58
  "@uiw/react-markdown-preview": "4.0.6",
59
59
  "ahooks": "^3.7.1",
60
60
  "axios": "^0.27.2",
@@ -100,7 +100,7 @@
100
100
  "babel-plugin-inline-react-svg": "^1.1.2",
101
101
  "glob": "^10.3.3"
102
102
  },
103
- "gitHead": "1bef55d8f6ec840d5336e5a8c113771535a1416f",
103
+ "gitHead": "2bfa63d05ad290f13eee359661e4175b857d9f9d",
104
104
  "exports": {
105
105
  ".": {
106
106
  "import": "./es/index.js",