@abtnode/ux 1.15.17 → 1.16.0-beta-8ee536d7
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/actions.js +111 -0
- package/lib/blocklet/access/config-access.js +303 -0
- package/lib/blocklet/access/index.js +221 -0
- package/lib/blocklet/actions.js +438 -0
- package/lib/blocklet/add-cert.js +191 -0
- package/lib/blocklet/agreement-app.js +30 -0
- package/lib/blocklet/agreement.js +72 -0
- package/lib/blocklet/app-avatar.js +74 -0
- package/lib/blocklet/audit-logs.js +197 -0
- package/lib/blocklet/blocklet-source.js +56 -0
- package/lib/blocklet/bundle-avatar.js +80 -0
- package/lib/blocklet/component/add.js +1063 -0
- package/lib/blocklet/component/configuration.js +124 -0
- package/lib/blocklet/component/delete.js +117 -0
- package/lib/blocklet/component/environment.js +289 -0
- package/lib/blocklet/component/expiration.js +53 -0
- package/lib/blocklet/component/index.js +804 -0
- package/lib/blocklet/component/line.js +28 -0
- package/lib/blocklet/component/navigation/locale-tabs.js +218 -0
- package/lib/blocklet/component/navigation/navigation-actions.js +120 -0
- package/lib/blocklet/component/navigation/navigation-dialog.js +620 -0
- package/lib/blocklet/component/navigation/navigation-preview.js +102 -0
- package/lib/blocklet/component/navigation/simple-select.js +131 -0
- package/lib/blocklet/component/select-store.js +153 -0
- package/lib/blocklet/component/setting.js +151 -0
- package/lib/blocklet/component/sortable-tree.js +138 -0
- package/lib/blocklet/component/space-gateway-selector.js +174 -0
- package/lib/blocklet/component/store-blocklet-list.js +205 -0
- package/lib/blocklet/config-navigation.js +344 -0
- package/lib/blocklet/configuration.js +574 -0
- package/lib/blocklet/disk-info.js +91 -0
- package/lib/blocklet/icons.js +26 -0
- package/lib/blocklet/install-from-url.js +347 -0
- package/lib/blocklet/log.js +62 -0
- package/lib/blocklet/migration.js +153 -0
- package/lib/blocklet/mode.js +35 -0
- package/lib/blocklet/monitor.js +186 -0
- package/lib/blocklet/overview.js +236 -0
- package/lib/blocklet/preferences/app-sk.js +131 -0
- package/lib/blocklet/preferences/index.js +238 -0
- package/lib/blocklet/preferences/wallet-type.js +107 -0
- package/lib/blocklet/purchase/common.js +103 -0
- package/lib/blocklet/purchase/component-purchase.js +253 -0
- package/lib/blocklet/purchase/index.js +13 -0
- package/lib/blocklet/router/action/add-domain-alias.js +173 -0
- package/lib/blocklet/router/action/add-rule.js +204 -0
- package/lib/blocklet/router/action/config-routing-rule.js +129 -0
- package/lib/blocklet/router/action/delete-domain-alias.js +107 -0
- package/lib/blocklet/router/action/delete-rule.js +114 -0
- package/lib/blocklet/router/action/update-rule.js +203 -0
- package/lib/blocklet/router/domain-actions.js +71 -0
- package/lib/blocklet/router/domain-status.js +96 -0
- package/lib/blocklet/router/rule-actions.js +77 -0
- package/lib/blocklet/router/rule-list.js +181 -0
- package/lib/blocklet/router/util.js +146 -0
- package/lib/blocklet/runtime-info.js +87 -0
- package/lib/blocklet/status.js +105 -0
- package/lib/blocklet/storage.js +322 -0
- package/lib/blocklet/types.js +25 -0
- package/lib/blocklet/util.js +233 -0
- package/lib/blocklet/version.js +156 -0
- package/lib/card-selector.js +109 -0
- package/lib/certificate.js +110 -0
- package/lib/click-to-copy.js +38 -0
- package/lib/confirm.js +149 -0
- package/lib/contexts/audit-log.js +141 -0
- package/lib/contexts/blocklet.js +19 -0
- package/lib/contexts/deleting-blocklets.js +78 -0
- package/lib/contexts/node.js +30 -0
- package/lib/contexts/session.js +20 -0
- package/lib/contexts/team.js +19 -0
- package/lib/delete-confirm.js +127 -0
- package/lib/did-address.js +77 -0
- package/lib/dot.js +18 -0
- package/lib/form/form-text-input.js +266 -0
- package/lib/form/form-wrapper.js +13 -0
- package/lib/form/required.js +13 -0
- package/lib/hooks/blocklet.js +231 -0
- package/lib/hooks/mobile-width.js +19 -0
- package/lib/hooks/url-evaluation.js +168 -0
- package/lib/hooks/use-app-logo.js +25 -0
- package/lib/hooks/use-bundle-logo.js +36 -0
- package/lib/hooks/use-navigation.js +355 -0
- package/lib/hooks/use-passport-id.js +21 -0
- package/lib/hooks/use-subscription.js +28 -0
- package/lib/icons/long-arrow.svg +5 -0
- package/lib/index.js +0 -3
- package/lib/invitation/invitation-app.js +51 -0
- package/lib/invitation/invitation-login.js +47 -0
- package/lib/invitation/invitation-passport.js +130 -0
- package/lib/invitation/invitation-receive.js +108 -0
- package/lib/invitation/invitation-success.js +82 -0
- package/lib/invitation/invitation-user.js +79 -0
- package/lib/invitation/invitation.js +80 -0
- package/lib/issue-passport.js +84 -84
- package/lib/launch-blocklet/content-layout.js +33 -0
- package/lib/launch-blocklet/page-header.js +38 -0
- package/lib/layout/addon.js +100 -0
- package/lib/layout/feedback.js +55 -0
- package/lib/locales/en.js +1221 -10
- package/lib/locales/index.js +3 -4
- package/lib/locales/zh.js +1232 -15
- package/lib/logs/clock.js +19 -0
- package/lib/logs/download.js +139 -0
- package/lib/logs/log-terminal.js +183 -0
- package/lib/lost-passport.js +207 -192
- package/lib/monitor/card.js +73 -0
- package/lib/monitor/cpu.js +109 -0
- package/lib/monitor/disk.js +122 -0
- package/lib/monitor/memory.js +144 -0
- package/lib/nav-logo.js +120 -0
- package/lib/passport-tag.js +43 -0
- package/lib/permission.js +70 -0
- package/lib/relative-time.js +61 -0
- package/lib/schema-form/color-input.js +105 -0
- package/lib/schema-form/common-prop-types.js +21 -0
- package/lib/schema-form/index.js +229 -0
- package/lib/schema-form/passport-input.js +66 -0
- package/lib/schema-form/text-input.js +72 -0
- package/lib/store/add.js +185 -0
- package/lib/store/delete.js +102 -0
- package/lib/store/item.js +84 -0
- package/lib/table-icons.js +42 -0
- package/lib/table.js +13 -0
- package/lib/tag.js +37 -0
- package/lib/team/members/actions.js +99 -0
- package/lib/team/members/index.js +503 -0
- package/lib/team/members/invitations.js +196 -0
- package/lib/team/members/invite-member.js +212 -0
- package/lib/team/members/issue-passport.js +155 -0
- package/lib/team/members/member.js +300 -0
- package/lib/team/members/passport-issuances.js +154 -0
- package/lib/team/members/passports.js +336 -0
- package/lib/team/members/toggle-user-approval.js +128 -0
- package/lib/team/members/transfer-node.js +262 -0
- package/lib/team/members/util.js +20 -0
- package/lib/team/passports/color.js +132 -0
- package/lib/team/passports/detail.js +271 -0
- package/lib/team/passports/index.js +233 -0
- package/lib/team/passports/mutate-role.js +204 -0
- package/lib/team/passports/trusted-issuer.js +297 -0
- package/lib/team/passports/trusted-issuers.js +240 -0
- package/lib/team/search-input.js +38 -0
- package/lib/team/styles/dialog.js +13 -0
- package/lib/team/styles/list-header.js +13 -0
- package/lib/toast.js +86 -0
- package/lib/util/api.js +21 -0
- package/lib/util/constants.js +10 -0
- package/lib/util/index.js +703 -0
- package/lib/util/locales.js +28 -0
- package/lib/util/mode.js +11 -0
- package/lib/who-can-access/config.js +46 -0
- package/lib/wrap-locale.js +12 -13
- package/package.json +71 -17
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
10
|
+
var _urlJoin = _interopRequireDefault(require("url-join"));
|
|
11
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
12
|
+
var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage"));
|
|
13
|
+
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
14
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
15
|
+
var _material = require("@mui/material");
|
|
16
|
+
var _Autocomplete = _interopRequireWildcard(require("@mui/material/Autocomplete"));
|
|
17
|
+
var _session = require("../../../lib/contexts/session");
|
|
18
|
+
var _toast = _interopRequireDefault(require("../../toast"));
|
|
19
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
+
var _templateObject;
|
|
21
|
+
const _excluded = ["onSelect", "endpoint", "loading"];
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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 _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
26
|
+
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; }
|
|
27
|
+
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; }
|
|
28
|
+
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; }
|
|
29
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
30
|
+
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); }
|
|
31
|
+
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; }
|
|
32
|
+
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; }
|
|
33
|
+
const DEFAULT_GATEWAY_LIST = [{
|
|
34
|
+
value: 'https://www.didspaces.com/app',
|
|
35
|
+
label: 'Prod DID Spaces',
|
|
36
|
+
avatar: 'P'
|
|
37
|
+
}, {
|
|
38
|
+
value: 'https://storage.staging.abtnet.io/app',
|
|
39
|
+
label: 'Staging DID Spaces',
|
|
40
|
+
avatar: 'S'
|
|
41
|
+
}];
|
|
42
|
+
const filter = (0, _Autocomplete.createFilterOptions)();
|
|
43
|
+
function SpaceGatewaySelector(_ref) {
|
|
44
|
+
let {
|
|
45
|
+
onSelect,
|
|
46
|
+
endpoint,
|
|
47
|
+
loading
|
|
48
|
+
} = _ref,
|
|
49
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
50
|
+
const [gatewayList, setGatewayList] = (0, _useLocalStorage.default)('did-space-gateway-list', DEFAULT_GATEWAY_LIST);
|
|
51
|
+
const [gatewayUrl, setGatewayUrl] = (0, _useLocalStorage.default)('did-space-gateway-url', DEFAULT_GATEWAY_LIST[0].value);
|
|
52
|
+
const {
|
|
53
|
+
t
|
|
54
|
+
} = (0, _context.useLocaleContext)();
|
|
55
|
+
const {
|
|
56
|
+
api
|
|
57
|
+
} = (0, _session.useSessionContext)();
|
|
58
|
+
(0, _react.useEffect)(() => {
|
|
59
|
+
if (gatewayUrl && !gatewayList.find(x => x.value === gatewayUrl)) {
|
|
60
|
+
api.get((0, _urlJoin.default)(gatewayUrl, '/__blocklet__.js?type=json')).then(res => {
|
|
61
|
+
// FIXME: @wangshijun handle mountPoint
|
|
62
|
+
setGatewayList([...gatewayList, {
|
|
63
|
+
value: gatewayUrl,
|
|
64
|
+
label: res.data.appName
|
|
65
|
+
}]);
|
|
66
|
+
}).catch(err => {
|
|
67
|
+
console.error(err);
|
|
68
|
+
_toast.default.error('Can not add this gateway, please check the url and try again');
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}, [gatewayUrl]); // eslint-disable-line
|
|
72
|
+
|
|
73
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, _objectSpread(_objectSpread({}, rest), {}, {
|
|
74
|
+
freeSolo: true,
|
|
75
|
+
selectOnFocus: true,
|
|
76
|
+
clearOnBlur: true,
|
|
77
|
+
handleHomeEndKeys: true,
|
|
78
|
+
value: gatewayUrl,
|
|
79
|
+
options: gatewayList,
|
|
80
|
+
onChange: (e, v) => {
|
|
81
|
+
if (!v) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (typeof v === 'string') {
|
|
85
|
+
const x = gatewayList.find(o => o.label === v);
|
|
86
|
+
if (x) {
|
|
87
|
+
setGatewayUrl(x.value);
|
|
88
|
+
}
|
|
89
|
+
} else if (v.inputValue) {
|
|
90
|
+
// Create a new value from the user input
|
|
91
|
+
setGatewayUrl(v.inputValue);
|
|
92
|
+
} else if (v.value) {
|
|
93
|
+
setGatewayUrl(v.value);
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
getOptionLabel: x => {
|
|
97
|
+
// Value selected with enter, right from the input
|
|
98
|
+
if (typeof x === 'string') {
|
|
99
|
+
return x;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Add "xxx" x created dynamically
|
|
103
|
+
if (x.inputValue) {
|
|
104
|
+
return x.inputValue;
|
|
105
|
+
}
|
|
106
|
+
return x.label;
|
|
107
|
+
},
|
|
108
|
+
renderOption: (props, x) => {
|
|
109
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.ListItem, _objectSpread(_objectSpread({}, props), {}, {
|
|
110
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItemAvatar, {
|
|
111
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Avatar, {
|
|
112
|
+
children: x.avatar
|
|
113
|
+
})
|
|
114
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItemText, {
|
|
115
|
+
primary: x.label,
|
|
116
|
+
secondary: x.value
|
|
117
|
+
})]
|
|
118
|
+
}), x.value);
|
|
119
|
+
},
|
|
120
|
+
filterOptions: (options, params) => {
|
|
121
|
+
const filtered = filter(options, params);
|
|
122
|
+
|
|
123
|
+
// Suggest the creation of a new value if its a valid url
|
|
124
|
+
if (params.inputValue && (0, _isUrl.default)(params.inputValue)) {
|
|
125
|
+
const isExisting = options.some(x => params.inputValue === x.value);
|
|
126
|
+
if (!isExisting) {
|
|
127
|
+
filtered.push({
|
|
128
|
+
value: params.inputValue,
|
|
129
|
+
label: 'Add new gateway'
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return filtered;
|
|
134
|
+
},
|
|
135
|
+
renderInput: params => {
|
|
136
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, _objectSpread(_objectSpread({}, params), {}, {
|
|
137
|
+
label: t('storage.spaces.label'),
|
|
138
|
+
size: "small",
|
|
139
|
+
InputProps: _objectSpread(_objectSpread({}, params.InputProps), {}, {
|
|
140
|
+
type: 'search',
|
|
141
|
+
endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
142
|
+
variant: "contained",
|
|
143
|
+
onClick: () => onSelect(gatewayUrl),
|
|
144
|
+
size: "small",
|
|
145
|
+
loading: loading,
|
|
146
|
+
disable: loading,
|
|
147
|
+
sx: {
|
|
148
|
+
position: 'absolute',
|
|
149
|
+
right: 0,
|
|
150
|
+
display: 'flex',
|
|
151
|
+
justifyContent: 'center',
|
|
152
|
+
alignItems: 'center',
|
|
153
|
+
width: '100px',
|
|
154
|
+
height: '100%'
|
|
155
|
+
},
|
|
156
|
+
children: endpoint ? t('storage.spaces.reconnect') : t('storage.spaces.connect')
|
|
157
|
+
})
|
|
158
|
+
})
|
|
159
|
+
}));
|
|
160
|
+
}
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
const Container = (0, _styled.default)(_Autocomplete.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: 40px;\n width: 100%;\n max-width: 720px;\n ", " {\n width: 75%;\n }\n input.MuiInputBase-input {\n max-width: calc(100% - 80px);\n }\n"])), props => props.theme.breakpoints.down('md'));
|
|
164
|
+
SpaceGatewaySelector.propTypes = {
|
|
165
|
+
onSelect: _propTypes.default.func.isRequired,
|
|
166
|
+
endpoint: _propTypes.default.string,
|
|
167
|
+
loading: _propTypes.default.bool
|
|
168
|
+
};
|
|
169
|
+
SpaceGatewaySelector.defaultProps = {
|
|
170
|
+
endpoint: undefined,
|
|
171
|
+
loading: false
|
|
172
|
+
};
|
|
173
|
+
var _default = SpaceGatewaySelector;
|
|
174
|
+
exports.default = _default;
|
|
@@ -0,0 +1,205 @@
|
|
|
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 _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
|
|
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) { 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; }
|
|
32
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
33
|
+
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); }
|
|
34
|
+
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; }
|
|
35
|
+
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; }
|
|
36
|
+
const getStoreDetail = (meta, endpoint) => {
|
|
37
|
+
return (0, _urlJoin.default)(endpoint, "/blocklets/".concat(meta.did));
|
|
38
|
+
};
|
|
39
|
+
const displayAttributes = _ref => {
|
|
40
|
+
let {
|
|
41
|
+
blocklet,
|
|
42
|
+
attribute,
|
|
43
|
+
value
|
|
44
|
+
} = _ref;
|
|
45
|
+
if (blocklet._formatted) {
|
|
46
|
+
return blocklet._formatted[attribute];
|
|
47
|
+
}
|
|
48
|
+
return value;
|
|
49
|
+
};
|
|
50
|
+
const requirePurchase = meta => meta.inStore && (0, _util.isFreeBlocklet)(meta) === false;
|
|
51
|
+
function BlockletItem(_ref2) {
|
|
52
|
+
let {
|
|
53
|
+
blocklet,
|
|
54
|
+
blocklets,
|
|
55
|
+
handleButtonClick,
|
|
56
|
+
endpoint
|
|
57
|
+
} = _ref2;
|
|
58
|
+
const {
|
|
59
|
+
t
|
|
60
|
+
} = (0, _context.useLocaleContext)();
|
|
61
|
+
const logoUrl = (0, _urlJoin.default)(endpoint, (0, _util2.formatRegistryLogoPath)(blocklet.did, blocklet.logo || ''));
|
|
62
|
+
const [loading, setLoading] = (0, _react.useState)(false);
|
|
63
|
+
const onClickLink = e => {
|
|
64
|
+
if (!e.currentTarget.contains(e.target)) {
|
|
65
|
+
e.preventDefault();
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
};
|
|
70
|
+
const btnTxt = requirePurchase(blocklet) ? t('common.purchase') : t('blocklet.component.choose');
|
|
71
|
+
const onAction = async e => {
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
e.stopPropagation();
|
|
74
|
+
try {
|
|
75
|
+
setLoading(true);
|
|
76
|
+
await handleButtonClick({
|
|
77
|
+
meta: blocklet,
|
|
78
|
+
registryUrl: endpoint,
|
|
79
|
+
blocklets
|
|
80
|
+
});
|
|
81
|
+
} catch (err) {
|
|
82
|
+
_toast.default.error(err.message);
|
|
83
|
+
} finally {
|
|
84
|
+
setLoading(false);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
|
|
88
|
+
href: getStoreDetail(blocklet, endpoint),
|
|
89
|
+
style: {
|
|
90
|
+
color: 'initial',
|
|
91
|
+
textDecoration: 'none'
|
|
92
|
+
},
|
|
93
|
+
onClick: onClickLink,
|
|
94
|
+
target: "_blank",
|
|
95
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledBlocklet, {
|
|
96
|
+
title: displayAttributes({
|
|
97
|
+
blocklet,
|
|
98
|
+
attribute: 'title',
|
|
99
|
+
value: blocklet.title || blocklet.name
|
|
100
|
+
}),
|
|
101
|
+
did: blocklet.did,
|
|
102
|
+
description: displayAttributes({
|
|
103
|
+
blocklet,
|
|
104
|
+
attribute: 'description',
|
|
105
|
+
value: blocklet.description
|
|
106
|
+
}),
|
|
107
|
+
cover: blocklet.logo ? logoUrl : '',
|
|
108
|
+
version: blocklet.version,
|
|
109
|
+
button: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
110
|
+
style: {
|
|
111
|
+
display: 'flex',
|
|
112
|
+
alignItems: 'center'
|
|
113
|
+
},
|
|
114
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Blocklet.ActionButton, {
|
|
115
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
116
|
+
onClick: onAction,
|
|
117
|
+
size: "small",
|
|
118
|
+
disabled: loading,
|
|
119
|
+
variant: "outlined",
|
|
120
|
+
color: "primary",
|
|
121
|
+
"data-cy": "install-blocklet",
|
|
122
|
+
children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
123
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
|
|
124
|
+
size: 16,
|
|
125
|
+
style: {
|
|
126
|
+
marginRight: 3
|
|
127
|
+
}
|
|
128
|
+
}), btnTxt]
|
|
129
|
+
}) : btnTxt
|
|
130
|
+
}, blocklet.did)
|
|
131
|
+
})
|
|
132
|
+
})
|
|
133
|
+
})
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
BlockletItem.propTypes = {
|
|
137
|
+
blocklet: _propTypes.default.object.isRequired,
|
|
138
|
+
blocklets: _propTypes.default.array,
|
|
139
|
+
handleButtonClick: _propTypes.default.func,
|
|
140
|
+
endpoint: _propTypes.default.string
|
|
141
|
+
};
|
|
142
|
+
BlockletItem.defaultProps = {
|
|
143
|
+
handleButtonClick: null,
|
|
144
|
+
endpoint: '',
|
|
145
|
+
blocklets: []
|
|
146
|
+
};
|
|
147
|
+
function BlockletList(_ref3) {
|
|
148
|
+
let {
|
|
149
|
+
handleButtonClick,
|
|
150
|
+
handleSearchSelect,
|
|
151
|
+
storeUrl,
|
|
152
|
+
handleBlockletRender,
|
|
153
|
+
extraFilter
|
|
154
|
+
} = _ref3,
|
|
155
|
+
rest = _objectWithoutProperties(_ref3, _excluded);
|
|
156
|
+
const {
|
|
157
|
+
locale
|
|
158
|
+
} = (0, _context.useLocaleContext)();
|
|
159
|
+
const [filters, setFilters] = (0, _react.useState)({});
|
|
160
|
+
const handleChange = changeData => {
|
|
161
|
+
setFilters(changeData);
|
|
162
|
+
};
|
|
163
|
+
const endpoint = storeUrl;
|
|
164
|
+
(0, _react.useEffect)(() => {
|
|
165
|
+
setFilters({});
|
|
166
|
+
}, [endpoint]);
|
|
167
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
|
|
168
|
+
FallbackComponent: _ErrorBoundary.ErrorFallback,
|
|
169
|
+
resetKeys: [endpoint],
|
|
170
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
|
|
171
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_list.default, {
|
|
172
|
+
blockletRender: blockletRenderProps => {
|
|
173
|
+
const defaultProps = _objectSpread(_objectSpread({}, blockletRenderProps), {}, {
|
|
174
|
+
handleButtonClick,
|
|
175
|
+
endpoint
|
|
176
|
+
});
|
|
177
|
+
return handleBlockletRender(_objectSpread(_objectSpread({}, blockletRenderProps), {}, {
|
|
178
|
+
defaultRender: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockletItem, _objectSpread({}, defaultProps))
|
|
179
|
+
}));
|
|
180
|
+
},
|
|
181
|
+
baseSearch: true,
|
|
182
|
+
endpoint: endpoint,
|
|
183
|
+
locale: locale,
|
|
184
|
+
onFilterChange: handleChange,
|
|
185
|
+
onSearchSelect: handleSearchSelect,
|
|
186
|
+
filters: filters,
|
|
187
|
+
extraFilter: extraFilter
|
|
188
|
+
})
|
|
189
|
+
}))
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
BlockletList.propTypes = {
|
|
193
|
+
storeUrl: _propTypes.default.string.isRequired,
|
|
194
|
+
handleButtonClick: _propTypes.default.func,
|
|
195
|
+
handleSearchSelect: _propTypes.default.func,
|
|
196
|
+
handleBlockletRender: _propTypes.default.func,
|
|
197
|
+
extraFilter: _propTypes.default.func
|
|
198
|
+
};
|
|
199
|
+
BlockletList.defaultProps = {
|
|
200
|
+
handleButtonClick: null,
|
|
201
|
+
handleSearchSelect: null,
|
|
202
|
+
handleBlockletRender: null,
|
|
203
|
+
extraFilter: undefined
|
|
204
|
+
};
|
|
205
|
+
const StyledBlocklet = (0, _styled.default)(_Blocklet.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .ms-highlight {\n color: ", ";\n }\n"])), props => props.theme.palette.primary.main);
|