@abtnode/ux 1.16.0-beta-1d6c582e → 1.16.0-beta-99e016c7

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.
@@ -88,13 +88,9 @@ function BlockletActions(_ref) {
88
88
  let isRemoved = false;
89
89
  try {
90
90
  var _blocklet$settings;
91
- const input = {
92
- did: blocklet.meta.did
93
- };
94
91
  if (action === 'remove') {
95
- input.keepData = params.removeType === 'keepData';
96
- }
97
- if (action === 'start' && !inService && !skipSetup && !((_blocklet$settings = blocklet.settings) !== null && _blocklet$settings !== void 0 && _blocklet$settings.initialized)) {
92
+ await fn(params);
93
+ } else if (action === 'start' && !inService && !skipSetup && !((_blocklet$settings = blocklet.settings) !== null && _blocklet$settings !== void 0 && _blocklet$settings.initialized)) {
98
94
  // 启动 blocklet 并跳转到 setup 流程界面时携带 serverUrl 查询参数
99
95
  const serverUrl = (0, _util3.getServerUrl)(node.info);
100
96
  const url = new URL(recommendedUrl);
@@ -105,10 +101,14 @@ function BlockletActions(_ref) {
105
101
  blocklet
106
102
  });
107
103
  return;
104
+ } else {
105
+ const input = {
106
+ did: blocklet.meta.did
107
+ };
108
+ await fn({
109
+ input
110
+ });
108
111
  }
109
- await fn({
110
- input
111
- });
112
112
  if (action === 'remove') {
113
113
  isRemoved = true; // Deleted send request and succeeded
114
114
  } else {
@@ -140,25 +140,12 @@ function BlockletActions(_ref) {
140
140
  setConfirmSetting(null);
141
141
  };
142
142
  const name = (0, _util.getDisplayName)(blocklet, true);
143
- const removeSetting = blocklet.source === (0, _constant.fromBlockletSource)(_constant.BlockletSource.custom) ? {
144
- description: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
145
- component: "div",
146
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
147
- gutterBottom: true,
148
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("b", {
149
- children: t('blocklet.action.forceRemoveDescription')
150
- })
151
- })
152
- }),
153
- params: {
154
- removeType: 'complete'
155
- }
156
- } : {
143
+ const removeSetting = {
157
144
  description: (params, setParams) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
158
145
  component: "div",
159
146
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
160
147
  gutterBottom: true,
161
- children: t('blocklet.action.removeDescription')
148
+ children: t('blocklet.action.removeApplicationDescription')
162
149
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_RadioGroup.default, {
163
150
  name: "removeType",
164
151
  value: params.removeType,
@@ -166,18 +153,18 @@ function BlockletActions(_ref) {
166
153
  removeType: e.target.value
167
154
  })),
168
155
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {
169
- value: "keepData",
156
+ value: "backup",
170
157
  control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Radio.default, {}),
171
- label: t('blocklet.action.removeKeepData')
158
+ label: t('blocklet.action.removeApplicationAfterBackup')
172
159
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControlLabel.default, {
173
160
  value: "complete",
174
161
  control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Radio.default, {}),
175
- label: t('blocklet.action.removeComplete')
162
+ label: t('blocklet.action.removeApplicationComplete')
176
163
  })]
177
164
  })]
178
165
  }),
179
166
  params: {
180
- removeType: 'keepData'
167
+ removeType: 'backup'
181
168
  }
182
169
  };
183
170
  const confirmSettings = {
@@ -263,7 +250,25 @@ function BlockletActions(_ref) {
263
250
  action: 'remove',
264
251
  icon: _icons.default.Remove,
265
252
  name: t('common.remove'),
266
- handler: createHandler('remove', node.api.deleteBlocklet, true),
253
+ handler: createHandler('remove', async _ref2 => {
254
+ let {
255
+ removeType
256
+ } = _ref2;
257
+ if (removeType === 'backup') {
258
+ await node.api.backupBlocklet({
259
+ input: {
260
+ appDid: blocklet.appDid,
261
+ to: 'disk'
262
+ }
263
+ });
264
+ }
265
+ await node.api.deleteBlocklet({
266
+ input: {
267
+ did: blocklet.meta.did,
268
+ keepData: false
269
+ }
270
+ });
271
+ }, true),
267
272
  disabled: inProgress
268
273
  } : null;
269
274
  const cancelDownloadAction = !inService ? {
@@ -9,7 +9,13 @@ var _ahooks = require("ahooks");
9
9
  var _lodash = require("lodash");
10
10
  var _react = require("react");
11
11
  var _react2 = require("@iconify/react");
12
- var _material = require("@mui/material");
12
+ var _Tabs = _interopRequireDefault(require("@mui/material/Tabs"));
13
+ var _Tab = _interopRequireDefault(require("@mui/material/Tab"));
14
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
15
+ var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
16
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
17
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
18
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
13
19
  var _context = require("@arcblock/ux/lib/Locale/context");
14
20
  var _simpleSelect = _interopRequireDefault(require("./simple-select"));
15
21
  var _locales = _interopRequireDefault(require("../../../util/locales"));
@@ -115,21 +121,21 @@ function LocaleTabs(_ref) {
115
121
  state.inputLocale = value;
116
122
  }
117
123
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
118
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Tabs, {
124
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Tabs.default, {
119
125
  sx: sx,
120
126
  value: state.currentLocale,
121
127
  onChange: (e, value) => {
122
128
  state.currentLocale = value;
123
129
  },
124
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tab, {
130
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tab.default, {
125
131
  label: "Default (".concat(_locales.default[defaultLocale], ")"),
126
132
  value: "en"
127
- }), state.localeList.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tab, {
133
+ }), state.localeList.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tab.default, {
128
134
  sx: {
129
135
  position: 'relative'
130
136
  },
131
137
  label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
132
- children: [_locales.default[item], /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
138
+ children: [_locales.default[item], /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
133
139
  size: "small",
134
140
  color: "inherit",
135
141
  sx: {
@@ -147,7 +153,7 @@ function LocaleTabs(_ref) {
147
153
  })]
148
154
  }),
149
155
  value: item
150
- }, item)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
156
+ }, item)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
151
157
  color: "primary",
152
158
  disableFocusRipple: true,
153
159
  sx: {
@@ -160,7 +166,7 @@ function LocaleTabs(_ref) {
160
166
  icon: "mdi:plus"
161
167
  })
162
168
  })]
163
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Popover, {
169
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
164
170
  open: openChooseLocale,
165
171
  anchorEl: addLocaleButtonEl,
166
172
  onClose: close,
@@ -168,15 +174,15 @@ function LocaleTabs(_ref) {
168
174
  vertical: 'bottom',
169
175
  horizontal: 'left'
170
176
  },
171
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
177
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
172
178
  sx: {
173
179
  p: 2,
174
180
  width: '270px'
175
181
  },
176
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
182
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
177
183
  variant: "subtitle2",
178
184
  children: t('navigation.form.localePlaceholder')
179
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
185
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
180
186
  mt: 1,
181
187
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_simpleSelect.default, {
182
188
  required: true,
@@ -188,10 +194,10 @@ function LocaleTabs(_ref) {
188
194
  error: !!state.localeError,
189
195
  helperText: state.localeError || ' '
190
196
  })
191
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
197
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
192
198
  display: "flex",
193
199
  justifyContent: "flex-end",
194
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, {
200
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
195
201
  size: "small",
196
202
  variant: "contained",
197
203
  onClick: handleAddLocale,
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _react = require("@iconify/react");
9
- var _material = require("@mui/material");
9
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
10
10
  var _react2 = require("react");
11
11
  var _context = require("@arcblock/ux/lib/Locale/context");
12
12
  var _jsxRuntime = require("react/jsx-runtime");
@@ -50,7 +50,7 @@ function NavigationActions(_ref) {
50
50
  className: className,
51
51
  children: [!data.parent && ['header', 'footer', 'dashboard'].includes(section) && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
52
52
  title: isUninstalled ? t('navigation.action.noAddSub') : t('navigation.action.addSub'),
53
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
54
54
  size: "small",
55
55
  color: "success",
56
56
  onClick: handleClickAdd,
@@ -61,7 +61,7 @@ function NavigationActions(_ref) {
61
61
  })
62
62
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
63
63
  title: isUninstalled ? t('navigation.action.noEdit') : t('navigation.action.edit'),
64
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
64
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
65
65
  size: "small",
66
66
  color: "primary",
67
67
  onClick: handleClickEdit,
@@ -74,7 +74,7 @@ function NavigationActions(_ref) {
74
74
  title:
75
75
  // eslint-disable-next-line no-nested-ternary
76
76
  isUninstalled ? t('navigation.action.noEdit') : data.visible ? t('navigation.action.hide') : t('navigation.action.show'),
77
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
77
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
78
78
  size: "small",
79
79
  color: "warning",
80
80
  onClick: handleClickToggle,
@@ -87,7 +87,7 @@ function NavigationActions(_ref) {
87
87
  })
88
88
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
89
89
  title: isDisabled && !isUninstalled ? t('navigation.action.noDel') : t('navigation.action.del'),
90
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
90
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
91
91
  disabled: isDisabled && !isUninstalled,
92
92
  size: "small",
93
93
  color: "error",
@@ -8,7 +8,13 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
9
9
  var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
10
10
  var _context = require("@arcblock/ux/lib/Locale/context");
11
- var _material = require("@mui/material");
11
+ var _Autocomplete = _interopRequireDefault(require("@mui/material/Autocomplete"));
12
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
+ var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
14
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
15
+ var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
16
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
17
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
12
18
  var _ahooks = require("ahooks");
13
19
  var _omit = _interopRequireDefault(require("lodash/omit"));
14
20
  var _pick = _interopRequireDefault(require("lodash/pick"));
@@ -428,7 +434,7 @@ const NavigationDialog = /*#__PURE__*/(0, _react.forwardRef)(function Navigation
428
434
  let {
429
435
  field
430
436
  } = _ref3;
431
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, _objectSpread({
437
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, _objectSpread({
432
438
  fullWidth: true,
433
439
  variant: "outlined",
434
440
  margin: "dense",
@@ -451,16 +457,16 @@ const NavigationDialog = /*#__PURE__*/(0, _react.forwardRef)(function Navigation
451
457
  let {
452
458
  field
453
459
  } = _ref4;
454
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, _objectSpread(_objectSpread({
460
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, _objectSpread(_objectSpread({
455
461
  fullWidth: true,
456
462
  variant: "outlined",
457
463
  margin: "dense",
458
464
  placeholder: t('navigation.form.iconPlaceholder'),
459
465
  label: t('navigation.form.icon'),
460
466
  error: !!(errors !== null && errors !== void 0 && (_errors$icon = errors.icon) !== null && _errors$icon !== void 0 && _errors$icon.message),
461
- helperText: (errors === null || errors === void 0 ? void 0 : (_errors$icon2 = errors.icon) === null || _errors$icon2 === void 0 ? void 0 : _errors$icon2.message) || /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
467
+ helperText: (errors === null || errors === void 0 ? void 0 : (_errors$icon2 = errors.icon) === null || _errors$icon2 === void 0 ? void 0 : _errors$icon2.message) || /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
462
468
  display: "flex",
463
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
469
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
464
470
  component: "a",
465
471
  href: "https://icones.js.org",
466
472
  target: "_blank",
@@ -476,9 +482,9 @@ const NavigationDialog = /*#__PURE__*/(0, _react.forwardRef)(function Navigation
476
482
  })
477
483
  }, field), {}, {
478
484
  InputProps: {
479
- endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputAdornment, {
485
+ endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputAdornment.default, {
480
486
  position: "end",
481
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
487
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
482
488
  sx: {
483
489
  cursor: 'default'
484
490
  },
@@ -526,10 +532,10 @@ const NavigationDialog = /*#__PURE__*/(0, _react.forwardRef)(function Navigation
526
532
  let {
527
533
  field
528
534
  } = _ref6;
529
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControl, {
535
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormControl.default, {
530
536
  fullWidth: true,
531
537
  margin: "dense",
532
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Autocomplete, _objectSpread(_objectSpread({
538
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Autocomplete.default, _objectSpread(_objectSpread({
533
539
  disablePortal: true,
534
540
  freeSolo: true,
535
541
  blurOnSelect: true,
@@ -540,7 +546,7 @@ const NavigationDialog = /*#__PURE__*/(0, _react.forwardRef)(function Navigation
540
546
  options: autocompleteOptions,
541
547
  renderInput: params => {
542
548
  var _errors$link, _errors$link2;
543
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, _objectSpread(_objectSpread({}, params), {}, {
549
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, _objectSpread(_objectSpread({}, params), {}, {
544
550
  placeholder: t('navigation.form.linkPlaceholder'),
545
551
  label: t('navigation.form.link'),
546
552
  error: !!(errors !== null && errors !== void 0 && (_errors$link = errors.link) !== null && _errors$link !== void 0 && _errors$link.message),
@@ -548,7 +554,7 @@ const NavigationDialog = /*#__PURE__*/(0, _react.forwardRef)(function Navigation
548
554
  // FIXME: 添加了 startAdornment 后,autocomplete 选项无法显示,之后换成 antd 的 autocomplete 可以解决这个问题
549
555
  ,
550
556
  InputProps: {
551
- startAdornment: linkPrefix ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputAdornment, {
557
+ startAdornment: linkPrefix ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputAdornment.default, {
552
558
  position: "start",
553
559
  sx: {
554
560
  textDecoration: (0, _isAbsoluteUrl.default)(watchLink || '') ? 'line-through' : ''
@@ -558,10 +564,10 @@ const NavigationDialog = /*#__PURE__*/(0, _react.forwardRef)(function Navigation
558
564
  }
559
565
  }));
560
566
  },
561
- renderOption: (props, option) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, _objectSpread(_objectSpread({
567
+ renderOption: (props, option) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, _objectSpread(_objectSpread({
562
568
  component: "li"
563
569
  }, props), {}, {
564
- children: [option.label, /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
570
+ children: [option.label, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
565
571
  marginLeft: 1,
566
572
  component: "span",
567
573
  variant: "body2",
@@ -9,7 +9,9 @@ var _Header = _interopRequireDefault(require("@blocklet/ui-react/lib/Header"));
9
9
  var _Footer = _interopRequireDefault(require("@blocklet/ui-react/lib/Footer"));
10
10
  var _Dashboard = _interopRequireDefault(require("@blocklet/ui-react/lib/Dashboard"));
11
11
  var _linkBlocker = _interopRequireDefault(require("@blocklet/ui-react/lib/common/link-blocker"));
12
- var _material = require("@mui/material");
12
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
+ var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
14
+ var _Skeleton = _interopRequireDefault(require("@mui/material/Skeleton"));
13
15
  var _styled = _interopRequireDefault(require("@emotion/styled"));
14
16
  var _blocklet = require("../../../contexts/blocklet");
15
17
  var _useAppLogo = _interopRequireDefault(require("../../../hooks/use-app-logo"));
@@ -39,11 +41,11 @@ function NavigationPreview(_ref) {
39
41
  navigation
40
42
  };
41
43
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_linkBlocker.default, {
42
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
44
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
43
45
  className: className,
44
46
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Header.default, {
45
47
  meta: blockletInfo
46
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
48
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
47
49
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dashboard.default, {
48
50
  meta: blockletInfo,
49
51
  invalidPathFallback: () => {},
@@ -52,28 +54,28 @@ function NavigationPreview(_ref) {
52
54
  display: 'none'
53
55
  }
54
56
  },
55
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, {
57
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Grid.default, {
56
58
  container: true,
57
59
  spacing: 2,
58
60
  children: new Array(6).fill().map((item, index) => {
59
61
  return (
60
62
  /*#__PURE__*/
61
63
  // eslint-disable-next-line react/no-array-index-key
62
- (0, _jsxRuntime.jsxs)(_material.Grid, {
64
+ (0, _jsxRuntime.jsxs)(_Grid.default, {
63
65
  item: true,
64
66
  xs: 4,
65
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
67
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
66
68
  animation: false,
67
69
  variant: "rectangular",
68
70
  width: "100%",
69
71
  height: 120
70
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
72
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
71
73
  sx: {
72
74
  pt: 0.5
73
75
  },
74
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
76
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
75
77
  animation: false
76
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
78
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
77
79
  width: "60%",
78
80
  animation: false
79
81
  })]
@@ -5,7 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
- var _material = require("@mui/material");
8
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
+ var _Chip = _interopRequireDefault(require("@mui/material/Chip"));
10
+ var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
11
+ var _FormHelperText = _interopRequireDefault(require("@mui/material/FormHelperText"));
12
+ var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
13
+ var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
14
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
15
+ var _OutlinedInput = _interopRequireDefault(require("@mui/material/OutlinedInput"));
16
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
17
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
9
18
  var _jsxRuntime = require("react/jsx-runtime");
10
19
  const _excluded = ["fullWidth", "multiple", "required", "label", "placeholer", "options", "helperText", "error", "margin"];
11
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -31,15 +40,15 @@ function SimpleSelect(_ref) {
31
40
  rest = _objectWithoutProperties(_ref, _excluded);
32
41
  const defaultOption = options.find(item => item.value === rest.value);
33
42
  const defaultValue = defaultOption === null || defaultOption === void 0 ? void 0 : defaultOption.title;
34
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, {
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_FormControl.default, {
35
44
  margin: margin,
36
45
  fullWidth: fullWidth,
37
46
  error: error,
38
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, {
47
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, {
39
48
  children: "".concat(label).concat(required ? '*' : '')
40
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Select, _objectSpread(_objectSpread({
49
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Select.default, _objectSpread(_objectSpread({
41
50
  multiple: multiple,
42
- input: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.OutlinedInput, {
51
+ input: /*#__PURE__*/(0, _jsxRuntime.jsx)(_OutlinedInput.default, {
43
52
  defaultValue: defaultValue,
44
53
  sx: {
45
54
  flex: 1
@@ -52,7 +61,7 @@ function SimpleSelect(_ref) {
52
61
  }),
53
62
  renderValue: selected => {
54
63
  if (multiple) {
55
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
64
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
56
65
  sx: {
57
66
  display: 'flex',
58
67
  flexWrap: 'wrap',
@@ -60,7 +69,7 @@ function SimpleSelect(_ref) {
60
69
  },
61
70
  children: selected.map(value => {
62
71
  const option = options.find(item => item.value === value);
63
- return option && option.title && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Chip, {
72
+ return option && option.title && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip.default, {
64
73
  size: "small",
65
74
  label: option.title
66
75
  }, value);
@@ -68,11 +77,11 @@ function SimpleSelect(_ref) {
68
77
  });
69
78
  }
70
79
  const option = options.find(item => item.value === selected);
71
- return option && option.title && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
72
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
80
+ return option && option.title && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
81
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
73
82
  component: "span",
74
83
  children: option.title
75
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
84
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
76
85
  marginLeft: 1,
77
86
  component: "span",
78
87
  variant: "body2",
@@ -82,25 +91,25 @@ function SimpleSelect(_ref) {
82
91
  });
83
92
  }
84
93
  }, rest), {}, {
85
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, {
94
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
86
95
  disabled: true,
87
96
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("em", {
88
97
  children: placeholer
89
98
  })
90
- }), !multiple && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, {
99
+ }), !multiple && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
91
100
  value: "",
92
101
  children: "None"
93
- }), options.map(option => option && option.value && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.MenuItem, {
102
+ }), options.map(option => option && option.value && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
94
103
  value: option.value,
95
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItemText, {
104
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
96
105
  children: option.title
97
- }), option.description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
106
+ }), option.description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
98
107
  variant: "body2",
99
108
  color: "text.secondary",
100
109
  children: option.description
101
110
  })]
102
111
  }, option.value))]
103
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormHelperText, {
112
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormHelperText.default, {
104
113
  children: helperText
105
114
  })]
106
115
  });
@@ -12,7 +12,8 @@ var _react2 = require("@iconify/react");
12
12
  var _isObject = _interopRequireDefault(require("lodash/isObject"));
13
13
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
14
14
  var _context = require("@arcblock/ux/lib/Locale/context");
15
- var _material = require("@mui/material");
15
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
16
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
16
17
  var _reactDndHtml5Backend = require("react-dnd-html5-backend");
17
18
  var _reactDnd = require("react-dnd");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
@@ -56,14 +57,14 @@ function TreeTitle(_ref2) {
56
57
  if (! /*#__PURE__*/(0, _react.isValidElement)(subtitle) && (0, _isObject.default)(subtitle)) {
57
58
  subtitleShow = subtitle[locale];
58
59
  }
59
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
60
61
  display: "flex",
61
62
  alignItems: "center",
62
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
63
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
63
64
  variant: "subtitle1",
64
65
  fontSize: 16,
65
66
  children: titleShow
66
- }), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
67
+ }), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
67
68
  variant: "body2",
68
69
  color: "gray",
69
70
  ml: 1.5,
@@ -5,8 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
- var _material = require("@mui/material");
9
- var _lab = require("@mui/lab");
8
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
10
+ var _ButtonGroup = _interopRequireDefault(require("@mui/material/ButtonGroup"));
11
+ var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
12
+ var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
13
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
14
+ var _Paper = _interopRequireDefault(require("@mui/material/Paper"));
15
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
16
+ var _Toolbar = _interopRequireDefault(require("@mui/material/Toolbar"));
17
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
18
+ var _LoadingButton = _interopRequireDefault(require("@mui/lab/LoadingButton"));
10
19
  var _react2 = require("@iconify/react");
11
20
  var _notistack = require("notistack");
12
21
  var _ahooks = require("ahooks");
@@ -113,11 +122,11 @@ function ConfigNavigation() {
113
122
  variant: 'success'
114
123
  });
115
124
  } catch (e) {
116
- enqueueSnackbar( /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
117
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
125
+ enqueueSnackbar( /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
126
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
118
127
  variant: "subtitle2",
119
128
  children: t('navigation.actionFailed')
120
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
129
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
121
130
  variant: "body1",
122
131
  children: (0, _util.formatError)(e) || e.error
123
132
  })]
@@ -136,11 +145,11 @@ function ConfigNavigation() {
136
145
  variant: 'success'
137
146
  });
138
147
  } catch (e) {
139
- enqueueSnackbar( /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
140
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
148
+ enqueueSnackbar( /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
149
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
141
150
  variant: "subtitle2",
142
151
  children: t('navigation.actionFailed')
143
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
152
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
144
153
  variant: "body1",
145
154
  children: (0, _util.formatError)(e) || e.error
146
155
  })]
@@ -163,32 +172,32 @@ function ConfigNavigation() {
163
172
  };
164
173
  }, [blocklet.appDid, pageState.mockRole]);
165
174
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
166
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ButtonGroup, {
175
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonGroup.default, {
167
176
  variant: "outlined",
168
177
  children: Object.keys(navigationTypeMap).map(key => {
169
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Button, {
178
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
170
179
  variant: navigationState.activeSection === key ? 'contained' : undefined,
171
180
  onClick: () => updateActiveSection(key),
172
181
  children: [navigationTypeMap[key], " (".concat(getNavigation(key).length, ")")]
173
182
  }, key);
174
183
  })
175
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Toolbar, {
184
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Toolbar.default, {
176
185
  variant: "dense",
177
186
  sx: {
178
187
  paddingLeft: '0px !important',
179
188
  paddingRight: '0px !important',
180
189
  mt: 2
181
190
  },
182
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
191
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
183
192
  variant: "h6",
184
193
  component: "div",
185
194
  sx: {
186
195
  flexGrow: 1
187
196
  },
188
197
  children: "Config"
189
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ButtonGroup, {
198
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonGroup.default, {
190
199
  variant: "outlined",
191
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_lab.LoadingButton, {
200
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingButton.default, {
192
201
  size: "small",
193
202
  variant: "outlined",
194
203
  color: "error",
@@ -205,9 +214,9 @@ function ConfigNavigation() {
205
214
  },
206
215
  children: "\u91CD\u7F6E"
207
216
  })
208
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.ButtonGroup, {
217
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ButtonGroup.default, {
209
218
  variant: "outlined",
210
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, {
219
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
211
220
  size: "small",
212
221
  variant: "outlined",
213
222
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Icon, {
@@ -215,7 +224,7 @@ function ConfigNavigation() {
215
224
  }),
216
225
  onClick: () => handleAddNavigation(),
217
226
  children: "\u65B0\u5EFA"
218
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_lab.LoadingButton, {
227
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingButton.default, {
219
228
  size: "small",
220
229
  variant: "contained",
221
230
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.Icon, {
@@ -227,14 +236,14 @@ function ConfigNavigation() {
227
236
  children: "\u4FDD\u5B58"
228
237
  })]
229
238
  })]
230
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, {
239
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Paper.default, {
231
240
  variant: "outlined",
232
241
  sx: {
233
242
  display: 'flex',
234
243
  height: 280,
235
244
  overflow: 'hidden'
236
245
  },
237
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, {
246
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Paper.default, {
238
247
  elevation: 0,
239
248
  sx: {
240
249
  flex: 1,
@@ -277,41 +286,41 @@ function ConfigNavigation() {
277
286
  }
278
287
  })
279
288
  })
280
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Toolbar, {
289
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Toolbar.default, {
281
290
  variant: "dense",
282
291
  sx: {
283
292
  paddingLeft: '0px !important',
284
293
  paddingRight: '0px !important',
285
294
  mt: 3
286
295
  },
287
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
296
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
288
297
  variant: "h6",
289
298
  component: "div",
290
299
  sx: {
291
300
  flexGrow: 1
292
301
  },
293
302
  children: "Preview"
294
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.FormControl, {
303
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_FormControl.default, {
295
304
  sx: {
296
305
  m: 1,
297
306
  minWidth: 120
298
307
  },
299
308
  size: "small",
300
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.InputLabel, {
309
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, {
301
310
  children: "Role"
302
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Select, {
311
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, {
303
312
  value: pageState.mockRole,
304
313
  label: "Role",
305
314
  onChange: e => {
306
315
  pageState.mockRole = e.target.value;
307
316
  },
308
- children: roles.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, {
317
+ children: roles.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
309
318
  value: item.name,
310
319
  children: item.title
311
320
  }, item.name))
312
321
  })]
313
322
  })]
314
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, {
323
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Paper.default, {
315
324
  variant: "outlined",
316
325
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Session.SessionContext.Provider, {
317
326
  value: sessionCtxValue,
@@ -0,0 +1,162 @@
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 _pick = _interopRequireDefault(require("lodash/pick"));
9
+ var _ahooks = require("ahooks");
10
+ var _reactHookForm = require("react-hook-form");
11
+ var _context = require("@arcblock/ux/lib/Locale/context");
12
+ var _node = require("../../contexts/node");
13
+ var _blocklet = require("../../contexts/blocklet");
14
+ var _toast = _interopRequireDefault(require("../../toast"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ 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; }
18
+ 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; }
19
+ 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; }
20
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
21
+ 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); }
22
+ function OAuthAuth0() {
23
+ var _blocklet$meta, _blocklet$settings, _blocklet$settings$oa;
24
+ const {
25
+ api
26
+ } = (0, _node.useNodeContext)();
27
+ const {
28
+ blocklet
29
+ } = (0, _blocklet.useBlockletContext)();
30
+ const {
31
+ t
32
+ } = (0, _context.useLocaleContext)();
33
+ // TODO: @zhanghan 将来需要换成 permanent did
34
+ const did = blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$meta = blocklet.meta) === null || _blocklet$meta === void 0 ? void 0 : _blocklet$meta.did;
35
+ const auth0 = Object.assign({
36
+ enabled: false,
37
+ domain: '',
38
+ clientId: ''
39
+ }, (blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$settings = blocklet.settings) === null || _blocklet$settings === void 0 ? void 0 : (_blocklet$settings$oa = _blocklet$settings.oauth) === null || _blocklet$settings$oa === void 0 ? void 0 : _blocklet$settings$oa.auth0) || {});
40
+ const {
41
+ handleSubmit,
42
+ control,
43
+ formState,
44
+ watch,
45
+ reset
46
+ } = (0, _reactHookForm.useForm)({
47
+ defaultValues: (0, _pick.default)(auth0, ['domain', 'clientId', 'enabled'])
48
+ });
49
+ const enabled = watch('enabled');
50
+ const onSubmit = (0, _ahooks.useMemoizedFn)(async data => {
51
+ try {
52
+ var _blockletChanged$sett, _blockletChanged$sett2;
53
+ const {
54
+ blocklet: blockletChanged
55
+ } = await api.configOAuth({
56
+ input: {
57
+ did,
58
+ oauth: JSON.stringify({
59
+ auth0: data
60
+ })
61
+ }
62
+ });
63
+ const defaultValues = Object.assign({
64
+ enabled: false,
65
+ domain: '',
66
+ clientId: ''
67
+ }, (blockletChanged === null || blockletChanged === void 0 ? void 0 : (_blockletChanged$sett = blockletChanged.settings) === null || _blockletChanged$sett === void 0 ? void 0 : (_blockletChanged$sett2 = _blockletChanged$sett.oauth) === null || _blockletChanged$sett2 === void 0 ? void 0 : _blockletChanged$sett2.auth0) || {});
68
+ // 将当前表单的默认值重置为新的数据,这样能够修正页面的 isDirty 数据
69
+ reset(defaultValues);
70
+ _toast.default.success(t('oauth.saveSuccess'));
71
+ } catch (err) {
72
+ _toast.default.success(err.message || t('oauth.saveFailed'));
73
+ }
74
+ });
75
+ const validateDomain = (0, _ahooks.useMemoizedFn)(val => {
76
+ if (!(val !== null && val !== void 0 && val.trim())) {
77
+ return t('oauth.auth0.domainDescribe');
78
+ }
79
+ return true;
80
+ });
81
+ const validateClientId = (0, _ahooks.useMemoizedFn)(val => {
82
+ if (!(val !== null && val !== void 0 && val.trim())) {
83
+ return t('oauth.auth0.clientIdDescribe');
84
+ }
85
+ return true;
86
+ });
87
+ const noop = (0, _ahooks.useMemoizedFn)(() => true);
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
89
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("form", {
90
+ onSubmit: handleSubmit(onSubmit),
91
+ disabled: true,
92
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
93
+ name: "enabled",
94
+ control: control,
95
+ render: _ref => {
96
+ let {
97
+ field
98
+ } = _ref;
99
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControlLabel, {
100
+ control: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Switch, _objectSpread({
101
+ checked: field.value
102
+ }, field)),
103
+ label: t('oauth.auth0.enable'),
104
+ sx: {
105
+ marginBottom: '8px'
106
+ }
107
+ });
108
+ }
109
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
110
+ name: "domain",
111
+ control: control,
112
+ rules: {
113
+ validate: enabled ? validateDomain : noop
114
+ },
115
+ render: _ref2 => {
116
+ var _formState$errors$fie;
117
+ let {
118
+ field
119
+ } = _ref2;
120
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControl, {
121
+ fullWidth: true,
122
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, _objectSpread(_objectSpread({}, field), {}, {
123
+ label: t('oauth.auth0.domain'),
124
+ error: !!formState.errors[field.name],
125
+ helperText: ((_formState$errors$fie = formState.errors[field.name]) === null || _formState$errors$fie === void 0 ? void 0 : _formState$errors$fie.message) || ' ',
126
+ disabled: !enabled
127
+ }))
128
+ });
129
+ }
130
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHookForm.Controller, {
131
+ name: "clientId",
132
+ control: control,
133
+ rules: {
134
+ validate: enabled ? validateClientId : noop
135
+ },
136
+ render: _ref3 => {
137
+ var _formState$errors$fie2;
138
+ let {
139
+ field
140
+ } = _ref3;
141
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.FormControl, {
142
+ fullWidth: true,
143
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.TextField, _objectSpread(_objectSpread({}, field), {}, {
144
+ error: !!formState.errors[field.name],
145
+ label: t('oauth.auth0.clientId'),
146
+ helperText: ((_formState$errors$fie2 = formState.errors[field.name]) === null || _formState$errors$fie2 === void 0 ? void 0 : _formState$errors$fie2.message) || ' ',
147
+ disabled: !enabled
148
+ }))
149
+ });
150
+ }
151
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, {
152
+ type: "submit",
153
+ variant: "contained",
154
+ onSubmit: handleSubmit(onSubmit),
155
+ disabled: !formState.isDirty,
156
+ children: t('oauth.save')
157
+ })]
158
+ })
159
+ });
160
+ }
161
+ var _default = OAuthAuth0;
162
+ exports.default = _default;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _Tabs = _interopRequireDefault(require("@arcblock/ux/lib/Tabs"));
8
+ var _material = require("@mui/material");
9
+ var _ahooks = require("ahooks");
10
+ var _react = require("react");
11
+ var _auth = _interopRequireDefault(require("./auth0"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function OAuth() {
15
+ const tabs = [{
16
+ label: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
17
+ textAlign: "center",
18
+ width: "100%",
19
+ children: "Auth0"
20
+ }),
21
+ value: 'auth0'
22
+ }, {
23
+ label: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
24
+ textAlign: "center",
25
+ width: "100%",
26
+ children: "More"
27
+ }),
28
+ value: 'more'
29
+ }];
30
+ const [currentTab, setCurrentTab] = (0, _react.useState)(tabs[0].value);
31
+ const contents = (0, _ahooks.useCreation)(() => ({
32
+ auth0: /*#__PURE__*/(0, _jsxRuntime.jsx)(_auth.default, {}),
33
+ more: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
34
+ children: "TBD"
35
+ })
36
+ }), []);
37
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
38
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tabs.default, {
39
+ tabs: tabs,
40
+ current: currentTab,
41
+ onChange: setCurrentTab
42
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
43
+ marginTop: "10px",
44
+ children: contents[currentTab]
45
+ })]
46
+ });
47
+ }
48
+ var _default = OAuth;
49
+ exports.default = _default;
@@ -13,6 +13,7 @@ var _constant = require("@abtnode/constant");
13
13
  var _material = require("@mui/material");
14
14
  var _TuneRounded = _interopRequireDefault(require("@mui/icons-material/TuneRounded"));
15
15
  var _Key = _interopRequireDefault(require("@mui/icons-material/Key"));
16
+ var _Login = _interopRequireDefault(require("@mui/icons-material/Login"));
16
17
  var _SettingsOutlined = _interopRequireDefault(require("@mui/icons-material/SettingsOutlined"));
17
18
  var _ChevronRight = _interopRequireDefault(require("@mui/icons-material/ChevronRight"));
18
19
  var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
@@ -23,6 +24,7 @@ var _bundleAvatar = _interopRequireDefault(require("../bundle-avatar"));
23
24
  var _configuration = _interopRequireDefault(require("../configuration"));
24
25
  var _index = _interopRequireDefault(require("../access/index"));
25
26
  var _node = require("../../contexts/node");
27
+ var _oauth = _interopRequireDefault(require("../oauth"));
26
28
  var _jsxRuntime = require("react/jsx-runtime");
27
29
  var _templateObject;
28
30
  const _excluded = ["blocklet", "onUpdate"];
@@ -124,6 +126,26 @@ function BlockletPreferences(_ref) {
124
126
  })]
125
127
  }, "access"),
126
128
  value: 'access'
129
+ }, {
130
+ label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
131
+ display: "flex",
132
+ alignItems: "center",
133
+ "data-cy": "configuration-tab-oauth",
134
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Login.default, {
135
+ sx: {
136
+ fontSize: 24
137
+ }
138
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
139
+ ml: "16px",
140
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
141
+ style: {
142
+ color: '#222'
143
+ },
144
+ children: t('common.login')
145
+ })
146
+ })]
147
+ }, "oauth"),
148
+ value: 'oauth'
127
149
  }, {
128
150
  label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
129
151
  display: "flex",
@@ -173,6 +195,8 @@ function BlockletPreferences(_ref) {
173
195
  });
174
196
  } else if (current === 'access') {
175
197
  content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.default, {});
198
+ } else if (current === 'oauth') {
199
+ content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_oauth.default, {});
176
200
  } else {
177
201
  // eslint-disable-next-line no-nested-ternary
178
202
  const pathPrefix = inService ? _constant.WELLKNOWN_SERVICE_PATH_PREFIX : process.env.NODE_ENV === 'production' ? info.routing.adminPath : '';
@@ -83,9 +83,10 @@ function Storage() {
83
83
  return;
84
84
  }
85
85
  setIsLoading(true);
86
- await api.backupToSpaces({
86
+ await api.backupBlocklet({
87
87
  input: {
88
- appDid: blocklet.appDid
88
+ appDid: blocklet.appDid,
89
+ to: 'spaces'
89
90
  }
90
91
  });
91
92
  _toast.default.success(t('storage.spaces.backupSuccessfully'));
@@ -32,9 +32,17 @@ function InvitationReceive(_ref) {
32
32
  const {
33
33
  getPassportId
34
34
  } = (0, _usePassportId.default)();
35
+ let componentId;
36
+ if (typeof window !== 'undefined') {
37
+ var _window, _window$blocklet;
38
+ componentId = (_window = window) === null || _window === void 0 ? void 0 : (_window$blocklet = _window.blocklet) === null || _window$blocklet === void 0 ? void 0 : _window$blocklet.componentId;
39
+ }
35
40
  const extraParams = {
36
41
  passportId: getPassportId(),
37
- inviteId: invitation.inviteId
42
+ inviteId: invitation.inviteId,
43
+ // 生成 passport 信息需要 baseUrl 字段
44
+ baseUrl: window.location.origin,
45
+ componentId
38
46
  };
39
47
  const onClose = (0, _react.useCallback)(() => {
40
48
  setOpen(false);
package/lib/locales/en.js CHANGED
@@ -290,6 +290,7 @@ module.exports = {
290
290
  installFromMarket: 'Install New Blocklets',
291
291
  installFromUrl: 'Install From Url',
292
292
  installFromCreate: 'Create Blocklet',
293
+ installFromDiskBackup: 'Restore from this server',
293
294
  installedAt: 'Installed At',
294
295
  internal: 'Internal',
295
296
  startedAt: 'Started At',
@@ -319,14 +320,13 @@ module.exports = {
319
320
  stopDescription: 'Stopping the blocklet will make its public interfaces unaccessible, which may cause end user failures',
320
321
  confirmStop: 'Yes, Stop It',
321
322
  cancelDownloadDescription: 'Cancel download {name} ?',
322
- removeDescription: 'Removing the blocklet will erase code and data generated by this blocklet, which is not recoverable if you do not have any backups',
323
+ removeApplicationDescription: 'Removing the application will erase code and data generated by this application, which is not recoverable if you do not have any backups',
324
+ removeApplicationAfterBackup: 'Backup and delete the application. You can restore the application from this server if you need',
325
+ removeApplicationComplete: 'Delete the application directly',
323
326
  removeComponentDescription: 'Removing the component will erase code and data generated by this component, which is not recoverable if you do not have any backups',
324
- forceRemoveDescription: 'Deleting this Blocklet will delete all data',
325
- removeKeepData: 'Keep data for this blocklet, only remove code',
326
327
  removeComponentKeepData: 'Keep data for this component, only remove code',
327
- removeComplete: 'Remove both code and data for this blocklet',
328
- confirmRemove: 'Yes, Remove It',
329
328
  removeComponentComplete: 'Remove both code and data for this component',
329
+ confirmRemove: 'Yes, Remove It',
330
330
  confirmComponentRemove: 'Yes, Remove It',
331
331
  upgradeDescription: 'Upgrading the blocklet will make it temporarily unavailable, are you sure to continue?',
332
332
  confirmUpgrade: 'Yes, Upgrade It',
@@ -921,6 +921,9 @@ module.exports = {
921
921
  passports: 'Passports',
922
922
  lastLogin: 'Last Login',
923
923
  lastLoginIp: 'Last Login IP',
924
+ source: 'Register Source',
925
+ source_derived: 'Derived from oauth',
926
+ source_wallet: 'DID Wallet',
924
927
  filter: 'Filter by',
925
928
  forbidLogin: 'Forbid Login',
926
929
  forbidLoginDescription: 'The user will not be able to connect to this application',
@@ -1243,5 +1246,18 @@ module.exports = {
1243
1246
  1: 'Last 1 Day',
1244
1247
  7: 'Last 1 Week'
1245
1248
  }
1249
+ },
1250
+ oauth: {
1251
+ save: 'Save',
1252
+ saveSuccess: 'Save successfully',
1253
+ saveFailed: 'Save failed',
1254
+ issued: 'Issued',
1255
+ auth0: {
1256
+ enable: 'Enable Auth0 login',
1257
+ domain: 'Domain',
1258
+ domainDescription: "Auth0's domain is required",
1259
+ clientId: 'ClientID',
1260
+ clientIdDescribe: "Auth0's clientId is required"
1261
+ }
1246
1262
  }
1247
1263
  };
package/lib/locales/zh.js CHANGED
@@ -296,6 +296,7 @@ module.exports = {
296
296
  installFromMarket: '从应用商店安装',
297
297
  installFromUrl: '通过 URL 安装',
298
298
  installFromCreate: '创建基石程序',
299
+ installFromDiskBackup: '从此 Server 还原',
299
300
  installedAt: '安装时间',
300
301
  internal: '内部',
301
302
  startedAt: '启动时间',
@@ -315,11 +316,10 @@ module.exports = {
315
316
  stopDescription: '停止该基石程序将会使页面不可以访问,可能会导致使用它的用户出现错误',
316
317
  confirmStop: '是的,停止',
317
318
  cancelDownloadDescription: '取消下载 {name} ?',
318
- removeDescription: '如果没有备份数据,删除该基石程序将会删除所有数据,包括基石程序运行时产生的所有数据',
319
+ removeApplicationDescription: '如果没有备份数据,删除应用将会删除所有数据,包括应用运行时产生的所有数据',
320
+ removeApplicationAfterBackup: '备份和删除该应用。 需要时您可以从此服务器恢复该应用',
321
+ removeApplicationComplete: '直接删除该应用',
319
322
  removeComponentDescription: '如果没有备份数据,删除该组件将会删除所有数据,包括组件运行时产生的所有数据',
320
- forceRemoveDescription: '删除该基石程序将会删除所有数据',
321
- removeKeepData: '保留该基石程序的数据,只删除基石程序',
322
- removeComplete: '删除基石程序和数据',
323
323
  removeComponentKeepData: '保留该组件的数据,只删除组件',
324
324
  removeComponentComplete: '删除组件和数据',
325
325
  confirmRemove: '是的, 删除',
@@ -924,6 +924,9 @@ module.exports = {
924
924
  passports: '通行证',
925
925
  lastLogin: '上次登录',
926
926
  lastLoginIp: '上次登陆 IP',
927
+ source: '注册来源',
928
+ source_derived: 'OAuth 账户派生',
929
+ source_wallet: 'DID Wallet',
927
930
  filter: '条件筛选',
928
931
  forbidLogin: '禁止登录',
929
932
  forbidLoginDescription: '该成员将无法登录此应用',
@@ -1248,5 +1251,18 @@ module.exports = {
1248
1251
  1: '最近 1 天',
1249
1252
  7: '最近 1 周'
1250
1253
  }
1254
+ },
1255
+ oauth: {
1256
+ save: '保存',
1257
+ saveSuccess: '保存成功',
1258
+ saveFailed: '保存失败',
1259
+ issued: '颁发',
1260
+ auth0: {
1261
+ enable: '是否开启 Auth0 登录',
1262
+ domain: 'Domain',
1263
+ domainDescription: '请输入 Auth0 的 Domain',
1264
+ clientId: 'ClientID',
1265
+ clientIdDescribe: '请输入 Auth0 的 ClientID'
1266
+ }
1251
1267
  }
1252
1268
  };
@@ -272,6 +272,15 @@ function MemberList(_ref2) {
272
272
  return e || '-';
273
273
  }
274
274
  }
275
+ }, {
276
+ label: t('team.member.source'),
277
+ name: 'source',
278
+ options: {
279
+ customBodyRender: e => {
280
+ const source = e || _constant.USER_TYPE.WALLET;
281
+ return t("team.member.source_".concat(source)) || '-';
282
+ }
283
+ }
275
284
  }, {
276
285
  label: t('common.actions'),
277
286
  name: '',
@@ -14,6 +14,7 @@ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
14
14
  var _Select = _interopRequireDefault(require("@mui/material/Select"));
15
15
  var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
16
16
  var _FormControl = _interopRequireDefault(require("@mui/material/FormControl"));
17
+ var _constant = require("@abtnode/constant");
17
18
  var _context = require("@arcblock/ux/lib/Locale/context");
18
19
  var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
19
20
  var _Alert = _interopRequireDefault(require("@arcblock/ux/lib/Alert"));
@@ -25,6 +26,7 @@ function IssuePassport(_ref) {
25
26
  let {
26
27
  teamDid,
27
28
  ownerDid,
29
+ ownerSource,
28
30
  roles,
29
31
  onCancel,
30
32
  onSuccess,
@@ -92,7 +94,7 @@ function IssuePassport(_ref) {
92
94
  "data-cy": "issue-passport-create-btn",
93
95
  children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
94
96
  size: 16
95
- }), t('team.passport.issuance.create.title')]
97
+ }), ownerSource === _constant.USER_TYPE.DERIVED ? t('oauth.issued') : t('team.passport.issuance.create.title')]
96
98
  })]
97
99
  }),
98
100
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContentText.default, {
@@ -142,6 +144,7 @@ function IssuePassport(_ref) {
142
144
  IssuePassport.propTypes = {
143
145
  teamDid: _propTypes.default.string.isRequired,
144
146
  ownerDid: _propTypes.default.string.isRequired,
147
+ ownerSource: _propTypes.default.oneOf([_constant.USER_TYPE.WALLET, _constant.USER_TYPE.DERIVED, undefined]),
145
148
  onCancel: _propTypes.default.func.isRequired,
146
149
  onSuccess: _propTypes.default.func.isRequired,
147
150
  onError: _propTypes.default.func,
@@ -151,5 +154,6 @@ IssuePassport.propTypes = {
151
154
  IssuePassport.defaultProps = {
152
155
  onError: () => {},
153
156
  roles: [],
154
- showOwnerPassport: false
157
+ showOwnerPassport: false,
158
+ ownerSource: _constant.USER_TYPE.WALLET
155
159
  };
@@ -307,6 +307,7 @@ function Passports(_ref2) {
307
307
  }), showIssueDialog && /*#__PURE__*/(0, _jsxRuntime.jsx)(_issuePassport.default, {
308
308
  teamDid: teamDid,
309
309
  ownerDid: user.did,
310
+ ownerSource: user.source,
310
311
  roles: roles,
311
312
  onCancel: () => setShowIssueDialog(false),
312
313
  onSuccess: () => {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.16.0-beta-1d6c582e",
6
+ "version": "1.16.0-beta-99e016c7",
7
7
  "description": "UX components shared across abtnode packages",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -21,20 +21,20 @@
21
21
  "author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@abtnode/auth": "1.16.0-beta-1d6c582e",
25
- "@abtnode/constant": "1.16.0-beta-1d6c582e",
26
- "@abtnode/util": "1.16.0-beta-1d6c582e",
27
- "@arcblock/did-connect": "^2.5.14",
24
+ "@abtnode/auth": "1.16.0-beta-99e016c7",
25
+ "@abtnode/constant": "1.16.0-beta-99e016c7",
26
+ "@abtnode/util": "1.16.0-beta-99e016c7",
27
+ "@arcblock/did-connect": "^2.5.15",
28
28
  "@arcblock/did-motif": "^1.1.10",
29
- "@arcblock/icons": "^2.5.14",
30
- "@arcblock/react-hooks": "^2.5.14",
31
- "@arcblock/terminal": "^2.5.14",
32
- "@arcblock/ux": "^2.5.14",
33
- "@blocklet/constant": "1.16.0-beta-1d6c582e",
29
+ "@arcblock/icons": "^2.5.15",
30
+ "@arcblock/react-hooks": "^2.5.15",
31
+ "@arcblock/terminal": "^2.5.15",
32
+ "@arcblock/ux": "^2.5.15",
33
+ "@blocklet/constant": "1.16.0-beta-99e016c7",
34
34
  "@blocklet/launcher-layout": "1.9.65",
35
- "@blocklet/list": "^0.11.6",
36
- "@blocklet/meta": "1.16.0-beta-1d6c582e",
37
- "@blocklet/ui-react": "^2.5.14",
35
+ "@blocklet/list": "^0.11.10",
36
+ "@blocklet/meta": "1.16.0-beta-99e016c7",
37
+ "@blocklet/ui-react": "^2.5.15",
38
38
  "@emotion/react": "^11.10.4",
39
39
  "@emotion/styled": "^11.10.4",
40
40
  "@iconify/react": "^4.0.0",
@@ -88,5 +88,5 @@
88
88
  "@babel/preset-react": "^7.18.6",
89
89
  "babel-plugin-inline-react-svg": "^1.1.2"
90
90
  },
91
- "gitHead": "209fa1413ae05d8961942b2c21f2d83df66f4b68"
91
+ "gitHead": "6dcb70e4613c92752d7b5f2662ac4b0e3bc9050b"
92
92
  }