@abtnode/ux 1.8.36 → 1.8.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/blocklet/access/config-access.js +299 -0
- package/lib/blocklet/access/index.js +220 -0
- package/lib/blocklet/actions.js +1 -3
- package/lib/blocklet/agreement-app.js +28 -0
- package/lib/blocklet/agreement.js +72 -0
- package/lib/blocklet/avatar.js +9 -18
- package/lib/blocklet/component/add.js +1083 -0
- package/lib/blocklet/component/configuration.js +1 -1
- package/lib/blocklet/component/environment.js +1 -1
- package/lib/blocklet/component/index.js +7 -9
- package/lib/blocklet/component/select-store.js +151 -0
- package/lib/blocklet/component/store-blocklet-list.js +203 -0
- package/lib/blocklet/configuration.js +5 -87
- package/lib/blocklet/install-from-url.js +362 -0
- package/lib/blocklet/overview.js +21 -12
- package/lib/blocklet/preferences/index.js +233 -0
- package/lib/blocklet/purchase/common.js +103 -0
- package/lib/blocklet/purchase/component-purchase.js +251 -0
- package/lib/blocklet/purchase/index.js +13 -0
- package/lib/blocklet/runtime-info.js +1 -0
- package/lib/blocklet/util.js +4 -16
- package/lib/blocklet/version.js +1 -1
- package/lib/hooks/blocklet.js +26 -10
- package/lib/layout/feedback.js +8 -10
- package/lib/locales/en.js +9 -2
- package/lib/locales/zh.js +9 -2
- package/lib/schema-form/index.js +1 -1
- package/lib/store/add.js +185 -0
- package/lib/store/delete.js +102 -0
- package/lib/store/item.js +84 -0
- package/lib/team/passports/color.js +1 -1
- package/lib/team/passports/detail.js +39 -31
- package/lib/util/api.js +21 -0
- package/lib/util/constants.js +10 -0
- package/lib/util/index.js +24 -8
- package/lib/who-can-access/config.js +13 -13
- package/package.json +11 -8
|
@@ -30,7 +30,7 @@ function ComponentConfiguration(_ref) {
|
|
|
30
30
|
const [showDialog, setShowDialog] = (0, _react.useState)('');
|
|
31
31
|
const {
|
|
32
32
|
t
|
|
33
|
-
} = (0,
|
|
33
|
+
} = (0, _context.useLocaleContext)();
|
|
34
34
|
const isRoot = !ancestors.map(x => x.meta.did)[0];
|
|
35
35
|
const isDynamic = blocklet.dynamic;
|
|
36
36
|
const [tab, setTab] = (0, _react.useState)('settings');
|
|
@@ -54,7 +54,7 @@ function ComponentEnvironment(_ref) {
|
|
|
54
54
|
_toast.default.error(t('blocklet.config.environment.keyValueRequired'));
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
|
-
if (data.key.startsWith('BLOCKLET_')) {
|
|
57
|
+
if (data.key.startsWith('BLOCKLET_') || data.key.startsWith('COMPONENT_')) {
|
|
58
58
|
_toast.default.error(t('blocklet.config.environment.invalidKey'));
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
@@ -48,10 +48,11 @@ var _mode = _interopRequireDefault(require("../mode"));
|
|
|
48
48
|
var _configuration = _interopRequireDefault(require("./configuration"));
|
|
49
49
|
var _delete = _interopRequireDefault(require("./delete"));
|
|
50
50
|
var _line = _interopRequireDefault(require("./line"));
|
|
51
|
+
var _add = _interopRequireDefault(require("./add"));
|
|
51
52
|
var _addRule = _interopRequireDefault(require("../router/action/add-rule"));
|
|
52
53
|
var _ruleList = _interopRequireDefault(require("../router/rule-list"));
|
|
53
54
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
54
|
-
const _excluded = ["blocklet", "onUpdate", "getComponentUrl"
|
|
55
|
+
const _excluded = ["blocklet", "onUpdate", "getComponentUrl"];
|
|
55
56
|
var _templateObject, _templateObject2;
|
|
56
57
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
57
58
|
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; }
|
|
@@ -407,8 +408,7 @@ function BlockletComponent(_ref4) {
|
|
|
407
408
|
let {
|
|
408
409
|
blocklet,
|
|
409
410
|
onUpdate,
|
|
410
|
-
getComponentUrl
|
|
411
|
-
AddComponent
|
|
411
|
+
getComponentUrl
|
|
412
412
|
} = _ref4,
|
|
413
413
|
rest = _objectWithoutProperties(_ref4, _excluded);
|
|
414
414
|
const {
|
|
@@ -538,7 +538,7 @@ function BlockletComponent(_ref4) {
|
|
|
538
538
|
input = {
|
|
539
539
|
did: blocklet.meta.did,
|
|
540
540
|
version: updateConfirm.params.version,
|
|
541
|
-
|
|
541
|
+
storeUrl: updateConfirm.params.registryUrl || ''
|
|
542
542
|
};
|
|
543
543
|
} else {
|
|
544
544
|
fn = api.upgradeComponents.bind(api);
|
|
@@ -641,7 +641,7 @@ function BlockletComponent(_ref4) {
|
|
|
641
641
|
}), t('router.rule.add.title')]
|
|
642
642
|
});
|
|
643
643
|
}
|
|
644
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
644
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_add.default, {
|
|
645
645
|
blocklet: blocklet,
|
|
646
646
|
children: _ref7 => {
|
|
647
647
|
let {
|
|
@@ -761,12 +761,10 @@ function BlockletComponent(_ref4) {
|
|
|
761
761
|
BlockletComponent.propTypes = {
|
|
762
762
|
blocklet: _propTypes.default.object.isRequired,
|
|
763
763
|
onUpdate: _propTypes.default.func,
|
|
764
|
-
getComponentUrl: _propTypes.default.func
|
|
765
|
-
AddComponent: _propTypes.default.element
|
|
764
|
+
getComponentUrl: _propTypes.default.func
|
|
766
765
|
};
|
|
767
766
|
BlockletComponent.defaultProps = {
|
|
768
767
|
onUpdate: () => {},
|
|
769
|
-
getComponentUrl: () => window.location.origin
|
|
770
|
-
AddComponent: () => {}
|
|
768
|
+
getComponentUrl: () => window.location.origin
|
|
771
769
|
};
|
|
772
770
|
const Div = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .title {\n font-size: 1.2rem;\n font-weight: bold;\n margin-bottom: ", ";\n }\n\n @keyframes showDelay {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n }\n\n .component-item {\n animation: showDelay 0.75s ease 1;\n }\n"])), props => props.theme.spacing(1));
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = SelectStore;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
10
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
11
|
+
var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
|
|
12
|
+
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
13
|
+
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
14
|
+
var _ArrowDropDown = _interopRequireDefault(require("@mui/icons-material/ArrowDropDown"));
|
|
15
|
+
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
16
|
+
var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
|
|
17
|
+
var _constants = require("../../util/constants");
|
|
18
|
+
var _node = require("../../contexts/node");
|
|
19
|
+
var _blocklet = require("../../contexts/blocklet");
|
|
20
|
+
var _add = _interopRequireDefault(require("../../store/add"));
|
|
21
|
+
var _item = _interopRequireDefault(require("../../store/item"));
|
|
22
|
+
var _util = require("../../util");
|
|
23
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
|
+
var _templateObject;
|
|
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 SelectStore(_ref) {
|
|
28
|
+
let {
|
|
29
|
+
onChange: _onChange,
|
|
30
|
+
loading,
|
|
31
|
+
children,
|
|
32
|
+
extra
|
|
33
|
+
} = _ref;
|
|
34
|
+
const {
|
|
35
|
+
t
|
|
36
|
+
} = (0, _context.useLocaleContext)();
|
|
37
|
+
const {
|
|
38
|
+
info: nodeInfo,
|
|
39
|
+
inService
|
|
40
|
+
} = (0, _node.useNodeContext)();
|
|
41
|
+
const {
|
|
42
|
+
blocklet
|
|
43
|
+
} = (0, _blocklet.useBlockletContext)();
|
|
44
|
+
const [open, setOpen] = (0, _react.useState)(false);
|
|
45
|
+
const storeSelectRef = (0, _react.useRef)(null);
|
|
46
|
+
const storageKey = inService ? _constants.STORAGE_KEY_STORE_BLOCKLET : _constants.STORAGE_KEY_STORE_SERVER;
|
|
47
|
+
const [storeUrl, setStoreUrl] = (0, _useLocalStorage.default)(storageKey);
|
|
48
|
+
const {
|
|
49
|
+
storeList,
|
|
50
|
+
teamDid
|
|
51
|
+
} = (0, _util.getStoreList)({
|
|
52
|
+
fromBlocklet: inService,
|
|
53
|
+
blocklet,
|
|
54
|
+
nodeInfo
|
|
55
|
+
});
|
|
56
|
+
const currentRegistry = storeUrl && storeList.find(x => storeUrl === x.url) || storeList[0];
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
58
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(SelectStoreTitle, {
|
|
59
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
60
|
+
ref: storeSelectRef,
|
|
61
|
+
color: "secondary",
|
|
62
|
+
"data-cy": "add-component-select-store",
|
|
63
|
+
endIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowDropDown.default, {
|
|
64
|
+
color: "secondary"
|
|
65
|
+
}),
|
|
66
|
+
onClick: () => {
|
|
67
|
+
setOpen(true);
|
|
68
|
+
},
|
|
69
|
+
style: {
|
|
70
|
+
padding: '0 2px'
|
|
71
|
+
},
|
|
72
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
73
|
+
color: "secondary",
|
|
74
|
+
children: currentRegistry.name
|
|
75
|
+
})
|
|
76
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
|
|
77
|
+
color: "secondary",
|
|
78
|
+
children: extra
|
|
79
|
+
})]
|
|
80
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_TextField.default, {
|
|
81
|
+
id: "mui-registry-select",
|
|
82
|
+
select: true,
|
|
83
|
+
autoComplete: "off",
|
|
84
|
+
variant: "outlined",
|
|
85
|
+
name: "did",
|
|
86
|
+
helperText: t('blocklet.component.selectRegistryTip'),
|
|
87
|
+
"data-cy": "component-registry-select",
|
|
88
|
+
fullWidth: true,
|
|
89
|
+
value: currentRegistry,
|
|
90
|
+
autoFocus: true,
|
|
91
|
+
onChange: e => {
|
|
92
|
+
const newRegistry = e.target.value;
|
|
93
|
+
setStoreUrl(newRegistry.url);
|
|
94
|
+
_onChange(newRegistry);
|
|
95
|
+
},
|
|
96
|
+
SelectProps: {
|
|
97
|
+
open,
|
|
98
|
+
MenuProps: {
|
|
99
|
+
anchorEl: storeSelectRef.current
|
|
100
|
+
},
|
|
101
|
+
renderValue: item => {
|
|
102
|
+
return item === null || item === void 0 ? void 0 : item.name;
|
|
103
|
+
},
|
|
104
|
+
onClose: () => {
|
|
105
|
+
setOpen(false);
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
style: {
|
|
109
|
+
display: 'none'
|
|
110
|
+
},
|
|
111
|
+
margin: "normal",
|
|
112
|
+
children: [storeList === null || storeList === void 0 ? void 0 : storeList.map(x => {
|
|
113
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
|
|
114
|
+
value: x,
|
|
115
|
+
"data-cy": x.url,
|
|
116
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.default, {
|
|
117
|
+
teamDid: teamDid,
|
|
118
|
+
store: x,
|
|
119
|
+
onDelete: () => {
|
|
120
|
+
if (storeUrl === x.url) {
|
|
121
|
+
var _storeList$;
|
|
122
|
+
setStoreUrl((_storeList$ = storeList[0]) === null || _storeList$ === void 0 ? void 0 : _storeList$.url);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
})
|
|
126
|
+
}, x.url);
|
|
127
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_add.default, {
|
|
128
|
+
disabled: loading,
|
|
129
|
+
storeList: storeList,
|
|
130
|
+
teamDid: teamDid,
|
|
131
|
+
onAdd: url => {
|
|
132
|
+
setStoreUrl(url);
|
|
133
|
+
}
|
|
134
|
+
})]
|
|
135
|
+
}), children({
|
|
136
|
+
currentRegistry
|
|
137
|
+
})]
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
SelectStore.propTypes = {
|
|
141
|
+
onChange: _propTypes.default.func,
|
|
142
|
+
loading: _propTypes.default.bool,
|
|
143
|
+
children: _propTypes.default.any.isRequired,
|
|
144
|
+
extra: _propTypes.default.node
|
|
145
|
+
};
|
|
146
|
+
SelectStore.defaultProps = {
|
|
147
|
+
onChange: () => {},
|
|
148
|
+
loading: false,
|
|
149
|
+
extra: ''
|
|
150
|
+
};
|
|
151
|
+
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);
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = BlockletList;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _urlJoin = _interopRequireDefault(require("url-join"));
|
|
11
|
+
var _Link = _interopRequireDefault(require("@mui/material/Link"));
|
|
12
|
+
var _ErrorBoundary = require("@arcblock/ux/lib/ErrorBoundary");
|
|
13
|
+
var _reactErrorBoundary = require("react-error-boundary");
|
|
14
|
+
var _list = _interopRequireDefault(require("@blocklet/list"));
|
|
15
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
16
|
+
var _Blocklet = _interopRequireWildcard(require("@arcblock/ux/lib/Blocklet"));
|
|
17
|
+
var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
|
|
18
|
+
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
19
|
+
var _util = require("@blocklet/meta/lib/util");
|
|
20
|
+
var _toast = _interopRequireDefault(require("../../toast"));
|
|
21
|
+
var _util2 = require("../../util");
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
var _templateObject;
|
|
24
|
+
const _excluded = ["handleButtonClick", "handleSearchSelect", "storeUrl", "handleBlockletRender", "extraFilter"];
|
|
25
|
+
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); }
|
|
26
|
+
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; }
|
|
27
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
29
|
+
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; }
|
|
30
|
+
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; }
|
|
31
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
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
|
+
const getStoreDetail = (meta, endpoint) => {
|
|
35
|
+
return (0, _urlJoin.default)(endpoint, "/blocklets/".concat(meta.did));
|
|
36
|
+
};
|
|
37
|
+
const displayAttributes = _ref => {
|
|
38
|
+
let {
|
|
39
|
+
blocklet,
|
|
40
|
+
attribute,
|
|
41
|
+
value
|
|
42
|
+
} = _ref;
|
|
43
|
+
if (blocklet._formatted) {
|
|
44
|
+
return blocklet._formatted[attribute];
|
|
45
|
+
}
|
|
46
|
+
return value;
|
|
47
|
+
};
|
|
48
|
+
const requirePurchase = meta => meta.inStore && (0, _util.isFreeBlocklet)(meta) === false;
|
|
49
|
+
function BlockletItem(_ref2) {
|
|
50
|
+
let {
|
|
51
|
+
blocklet,
|
|
52
|
+
blocklets,
|
|
53
|
+
handleButtonClick,
|
|
54
|
+
endpoint
|
|
55
|
+
} = _ref2;
|
|
56
|
+
const {
|
|
57
|
+
t
|
|
58
|
+
} = (0, _context.useLocaleContext)();
|
|
59
|
+
const logoUrl = (0, _urlJoin.default)(endpoint, (0, _util2.formatRegistryLogoPath)(blocklet.did, blocklet.logo || ''));
|
|
60
|
+
const [loading, setLoading] = (0, _react.useState)(false);
|
|
61
|
+
const onClickLink = e => {
|
|
62
|
+
if (!e.currentTarget.contains(e.target)) {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
};
|
|
68
|
+
const btnTxt = requirePurchase(blocklet) ? t('common.purchase') : t('blocklet.component.choose');
|
|
69
|
+
const onAction = async e => {
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
e.stopPropagation();
|
|
72
|
+
try {
|
|
73
|
+
setLoading(true);
|
|
74
|
+
await handleButtonClick({
|
|
75
|
+
meta: blocklet,
|
|
76
|
+
registryUrl: endpoint,
|
|
77
|
+
blocklets
|
|
78
|
+
});
|
|
79
|
+
} catch (err) {
|
|
80
|
+
_toast.default.error(err.message);
|
|
81
|
+
} finally {
|
|
82
|
+
setLoading(false);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
|
|
86
|
+
href: getStoreDetail(blocklet, endpoint),
|
|
87
|
+
style: {
|
|
88
|
+
color: 'initial',
|
|
89
|
+
textDecoration: 'none'
|
|
90
|
+
},
|
|
91
|
+
onClick: onClickLink,
|
|
92
|
+
target: "_blank",
|
|
93
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledBlocklet, {
|
|
94
|
+
title: displayAttributes({
|
|
95
|
+
blocklet,
|
|
96
|
+
attribute: 'title',
|
|
97
|
+
value: blocklet.title || blocklet.name
|
|
98
|
+
}),
|
|
99
|
+
did: blocklet.did,
|
|
100
|
+
description: displayAttributes({
|
|
101
|
+
blocklet,
|
|
102
|
+
attribute: 'description',
|
|
103
|
+
value: blocklet.description
|
|
104
|
+
}),
|
|
105
|
+
cover: blocklet.logo ? logoUrl : '',
|
|
106
|
+
version: blocklet.version,
|
|
107
|
+
button: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
108
|
+
style: {
|
|
109
|
+
display: 'flex',
|
|
110
|
+
alignItems: 'center'
|
|
111
|
+
},
|
|
112
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Blocklet.ActionButton, {
|
|
113
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
114
|
+
onClick: onAction,
|
|
115
|
+
size: "small",
|
|
116
|
+
disabled: loading,
|
|
117
|
+
variant: "outlined",
|
|
118
|
+
color: "primary",
|
|
119
|
+
"data-cy": "install-blocklet",
|
|
120
|
+
children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
121
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
|
|
122
|
+
size: [16, 10],
|
|
123
|
+
style: {
|
|
124
|
+
marginRight: 3
|
|
125
|
+
}
|
|
126
|
+
}), btnTxt]
|
|
127
|
+
}) : btnTxt
|
|
128
|
+
}, blocklet.did)
|
|
129
|
+
})
|
|
130
|
+
})
|
|
131
|
+
})
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
BlockletItem.propTypes = {
|
|
135
|
+
blocklet: _propTypes.default.object.isRequired,
|
|
136
|
+
blocklets: _propTypes.default.array,
|
|
137
|
+
handleButtonClick: _propTypes.default.func,
|
|
138
|
+
endpoint: _propTypes.default.string
|
|
139
|
+
};
|
|
140
|
+
BlockletItem.defaultProps = {
|
|
141
|
+
handleButtonClick: null,
|
|
142
|
+
endpoint: '',
|
|
143
|
+
blocklets: []
|
|
144
|
+
};
|
|
145
|
+
function BlockletList(_ref3) {
|
|
146
|
+
let {
|
|
147
|
+
handleButtonClick,
|
|
148
|
+
handleSearchSelect,
|
|
149
|
+
storeUrl,
|
|
150
|
+
handleBlockletRender,
|
|
151
|
+
extraFilter
|
|
152
|
+
} = _ref3,
|
|
153
|
+
rest = _objectWithoutProperties(_ref3, _excluded);
|
|
154
|
+
const {
|
|
155
|
+
locale
|
|
156
|
+
} = (0, _context.useLocaleContext)();
|
|
157
|
+
const [filters, setFilters] = (0, _react.useState)({});
|
|
158
|
+
const handleChange = changeData => {
|
|
159
|
+
setFilters(changeData);
|
|
160
|
+
};
|
|
161
|
+
const endpoint = storeUrl;
|
|
162
|
+
(0, _react.useEffect)(() => {
|
|
163
|
+
setFilters({});
|
|
164
|
+
}, [endpoint]);
|
|
165
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
|
|
166
|
+
FallbackComponent: _ErrorBoundary.ErrorFallback,
|
|
167
|
+
resetKeys: [endpoint],
|
|
168
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
169
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_list.default, {
|
|
170
|
+
blockletRender: blockletRenderProps => {
|
|
171
|
+
const defaultProps = _objectSpread(_objectSpread({}, blockletRenderProps), {}, {
|
|
172
|
+
handleButtonClick,
|
|
173
|
+
endpoint
|
|
174
|
+
});
|
|
175
|
+
return handleBlockletRender(_objectSpread(_objectSpread({}, blockletRenderProps), {}, {
|
|
176
|
+
defaultRender: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockletItem, _objectSpread({}, defaultProps))
|
|
177
|
+
}));
|
|
178
|
+
},
|
|
179
|
+
baseSearch: true,
|
|
180
|
+
endpoint: endpoint,
|
|
181
|
+
locale: locale,
|
|
182
|
+
onFilterChange: handleChange,
|
|
183
|
+
onSearchSelect: handleSearchSelect,
|
|
184
|
+
filters: filters,
|
|
185
|
+
extraFilter: extraFilter
|
|
186
|
+
})
|
|
187
|
+
}))
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
BlockletList.propTypes = {
|
|
191
|
+
storeUrl: _propTypes.default.string.isRequired,
|
|
192
|
+
handleButtonClick: _propTypes.default.func,
|
|
193
|
+
handleSearchSelect: _propTypes.default.func,
|
|
194
|
+
handleBlockletRender: _propTypes.default.func,
|
|
195
|
+
extraFilter: _propTypes.default.func
|
|
196
|
+
};
|
|
197
|
+
BlockletList.defaultProps = {
|
|
198
|
+
handleButtonClick: null,
|
|
199
|
+
handleSearchSelect: null,
|
|
200
|
+
handleBlockletRender: null,
|
|
201
|
+
extraFilter: undefined
|
|
202
|
+
};
|
|
203
|
+
const StyledBlocklet = (0, _styled.default)(_Blocklet.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .ms-highlight {\n color: ", ";\n }\n"])), props => props.theme.palette.primary.main);
|
|
@@ -28,7 +28,6 @@ var _util = require("@blocklet/meta/lib/util");
|
|
|
28
28
|
var _toast = _interopRequireDefault(require("../toast"));
|
|
29
29
|
var _schemaForm = _interopRequireDefault(require("../schema-form"));
|
|
30
30
|
var _formTextInput = _interopRequireDefault(require("../form/form-text-input"));
|
|
31
|
-
var _config = _interopRequireDefault(require("../who-can-access/config"));
|
|
32
31
|
var _node = require("../contexts/node");
|
|
33
32
|
var _util2 = require("../util");
|
|
34
33
|
var _permission = require("../permission");
|
|
@@ -56,8 +55,7 @@ function BlockletEnvironment(_ref) {
|
|
|
56
55
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
57
56
|
const node = (0, _node.useNodeContext)();
|
|
58
57
|
const {
|
|
59
|
-
t
|
|
60
|
-
locale
|
|
58
|
+
t
|
|
61
59
|
} = (0, _react.useContext)(_context.LocaleContext);
|
|
62
60
|
const [cpuCores, setCpuCores] = (0, _react.useState)('');
|
|
63
61
|
const [loading, setLoading] = (0, _react.useState)('');
|
|
@@ -145,30 +143,6 @@ function BlockletEnvironment(_ref) {
|
|
|
145
143
|
defaultValue[item.key] = value;
|
|
146
144
|
return _objectSpread({}, props);
|
|
147
145
|
});
|
|
148
|
-
const onWhoCanAccessChange = async e => {
|
|
149
|
-
if (loading) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
setLoading(true);
|
|
153
|
-
try {
|
|
154
|
-
const {
|
|
155
|
-
value
|
|
156
|
-
} = e.target;
|
|
157
|
-
const {
|
|
158
|
-
blocklet: data
|
|
159
|
-
} = await node.api.updateWhoCanAccess({
|
|
160
|
-
input: {
|
|
161
|
-
did: blocklet.meta.did,
|
|
162
|
-
whoCanAccess: value
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
onUpdate(data);
|
|
166
|
-
} catch (err) {
|
|
167
|
-
_toast.default.error(err.message);
|
|
168
|
-
} finally {
|
|
169
|
-
setLoading(false);
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
146
|
const onPublicToStoreChange = async e => {
|
|
173
147
|
if (loading) {
|
|
174
148
|
return;
|
|
@@ -193,12 +167,6 @@ function BlockletEnvironment(_ref) {
|
|
|
193
167
|
setLoading(false);
|
|
194
168
|
}
|
|
195
169
|
};
|
|
196
|
-
const iconStyle = {
|
|
197
|
-
marginRight: 4,
|
|
198
|
-
fontSize: 18,
|
|
199
|
-
verticalAlign: 'text-bottom',
|
|
200
|
-
color: theme.palette.text.secondary
|
|
201
|
-
};
|
|
202
170
|
const onSubmitConfig = async value => {
|
|
203
171
|
if (value.key === _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_CLUSTER_SIZE) {
|
|
204
172
|
const errMessage = (0, _util2.isValidClusterSize)(value);
|
|
@@ -208,8 +176,7 @@ function BlockletEnvironment(_ref) {
|
|
|
208
176
|
}
|
|
209
177
|
}
|
|
210
178
|
const params = [_objectSpread(_objectSpread({}, (0, _omit.default)(editingItem, ['childDid', 'componentType', 'componentProps'])), {}, {
|
|
211
|
-
value
|
|
212
|
-
custom: true
|
|
179
|
+
value
|
|
213
180
|
})];
|
|
214
181
|
try {
|
|
215
182
|
setLoading(true);
|
|
@@ -244,8 +211,7 @@ function BlockletEnvironment(_ref) {
|
|
|
244
211
|
did: blocklet.meta.did,
|
|
245
212
|
configs: [{
|
|
246
213
|
key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_DELETABLE,
|
|
247
|
-
value: checked ? 'no' : 'yes'
|
|
248
|
-
custom: true
|
|
214
|
+
value: checked ? 'no' : 'yes'
|
|
249
215
|
}]
|
|
250
216
|
}
|
|
251
217
|
});
|
|
@@ -333,54 +299,7 @@ function BlockletEnvironment(_ref) {
|
|
|
333
299
|
}
|
|
334
300
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
335
301
|
className: "config-form",
|
|
336
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
337
|
-
className: "config-item",
|
|
338
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
339
|
-
className: "config-label",
|
|
340
|
-
children: [t('blocklet.config.access.title'), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
341
|
-
className: "config-desc",
|
|
342
|
-
children: t('blocklet.config.access.description')
|
|
343
|
-
})]
|
|
344
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
|
|
345
|
-
disabled: disabled,
|
|
346
|
-
select: true,
|
|
347
|
-
size: "small",
|
|
348
|
-
value: whoCanAccess,
|
|
349
|
-
onChange: onWhoCanAccessChange,
|
|
350
|
-
SelectProps: {
|
|
351
|
-
renderValue: selected => {
|
|
352
|
-
const d = _config.default.find(x => x.value === selected);
|
|
353
|
-
return d ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
354
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(d.icon, {
|
|
355
|
-
style: iconStyle
|
|
356
|
-
}), d.title[locale]]
|
|
357
|
-
}) : null;
|
|
358
|
-
}
|
|
359
|
-
},
|
|
360
|
-
children: _config.default.map(d => {
|
|
361
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledMenuItem, {
|
|
362
|
-
value: d.value,
|
|
363
|
-
sx: {
|
|
364
|
-
display: 'block'
|
|
365
|
-
},
|
|
366
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
367
|
-
display: "flex",
|
|
368
|
-
alignItems: "center",
|
|
369
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(d.icon, {
|
|
370
|
-
style: iconStyle
|
|
371
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
372
|
-
children: d.title[locale]
|
|
373
|
-
})]
|
|
374
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
375
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
|
|
376
|
-
className: "tip",
|
|
377
|
-
children: d.description[locale]
|
|
378
|
-
})
|
|
379
|
-
})]
|
|
380
|
-
});
|
|
381
|
-
})
|
|
382
|
-
})]
|
|
383
|
-
}), whoCanAccess === 'all' && blocklet.source === 'registry' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
302
|
+
children: [whoCanAccess === 'all' && blocklet.source === 'registry' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
384
303
|
className: "config-item",
|
|
385
304
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
|
|
386
305
|
className: "config-label",
|
|
@@ -588,7 +507,6 @@ function BlockletEnvironment(_ref) {
|
|
|
588
507
|
key: _constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SK,
|
|
589
508
|
description: t('blocklet.config.sk'),
|
|
590
509
|
value: blocklet.environments.find(x => x.key === 'BLOCKLET_APP_SK').value,
|
|
591
|
-
custom: true,
|
|
592
510
|
secure: true
|
|
593
511
|
}],
|
|
594
512
|
defaultValue: {
|
|
@@ -631,5 +549,5 @@ BlockletEnvironment.defaultProps = {
|
|
|
631
549
|
onUpdate: () => {},
|
|
632
550
|
hasPermission: false
|
|
633
551
|
};
|
|
634
|
-
const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .config-form {\n
|
|
552
|
+
const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding-top: 24px;\n .config-form {\n flex-grow: 1;\n overflow-y: auto;\n ", " {\n width: 100%;\n flex-shrink: 0;\n padding: 0 24px;\n transform: translate(0, 0);\n max-height: 60vh;\n }\n }\n\n .config-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px 0;\n }\n\n .config-label {\n font-weight: bold;\n }\n\n .config-desc {\n font-weight: normal;\n font-size: 12px;\n color: #666;\n }\n\n .form-item {\n margin-top: 0;\n }\n"])), props => props.theme.breakpoints.down('md'));
|
|
635
553
|
const StyledMenuItem = (0, _styled.default)(_MenuItem.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .tip {\n font-size: 12px;\n color: ", ";\n }\n"])), props => props.theme.palette.text.secondary);
|