@abtnode/ux 1.8.32 → 1.8.34

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.
@@ -47,6 +47,9 @@ var _avatar = _interopRequireDefault(require("../avatar"));
47
47
  var _mode = _interopRequireDefault(require("../mode"));
48
48
  var _configuration = _interopRequireDefault(require("./configuration"));
49
49
  var _delete = _interopRequireDefault(require("./delete"));
50
+ var _line = _interopRequireDefault(require("./line"));
51
+ var _addRule = _interopRequireDefault(require("../router/action/add-rule"));
52
+ var _ruleList = _interopRequireDefault(require("../router/rule-list"));
50
53
  var _jsxRuntime = require("react/jsx-runtime");
51
54
  const _excluded = ["blocklet", "onUpdate", "getComponentUrl", "AddComponent"];
52
55
  var _templateObject, _templateObject2;
@@ -357,13 +360,9 @@ function ComponentItem(_ref) {
357
360
  tip: deleteDisabledTip
358
361
  })]
359
362
  }, "actions")]
360
- }, "group-not-gateway-box"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
361
- ml: Math.max((depth - 1) * 2, 0),
362
- sx: {
363
- borderBottom: 1,
364
- borderColor: 'rgba(0,0,0,0.12)'
365
- }
366
- }, "group-collapse-box"), (_blocklet$children = blocklet.children) !== null && _blocklet$children !== void 0 && _blocklet$children.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Collapse.default, {
363
+ }, "group-not-gateway-box"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_line.default, {
364
+ depth: depth
365
+ }), (_blocklet$children = blocklet.children) !== null && _blocklet$children !== void 0 && _blocklet$children.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Collapse.default, {
367
366
  in: expand,
368
367
  children: blocklet.children.map(x => /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentItem, {
369
368
  blocklet: x,
@@ -618,34 +617,58 @@ function BlockletComponent(_ref4) {
618
617
  })
619
618
  })]
620
619
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_permission.default, {
621
- permission: "mutate_blocklet",
622
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(AddComponent, {
623
- blocklet: blocklet,
624
- children: _ref6 => {
625
- let {
626
- open
627
- } = _ref6;
628
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
629
- disabled: loading || (0, _util2.isInProgress)(blocklet.status),
630
- variant: "text",
631
- color: "primary",
632
- "data-cy": "add-component",
633
- onClick: open,
634
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
635
- style: {
636
- fontSize: '1.3em',
637
- marginRight: 4
638
- }
639
- }), t('blocklet.component.add')]
640
- });
641
- }
620
+ permission: inService ? '' : 'mutate_blocklet',
621
+ role: inService ? _util2.BlockletAdminRoles : [],
622
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
623
+ display: "flex",
624
+ alignItems: "center",
625
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_addRule.default, {
626
+ children: _ref6 => {
627
+ let {
628
+ open
629
+ } = _ref6;
630
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
631
+ disabled: loading || (0, _util2.isInProgress)(blocklet.status),
632
+ variant: "text",
633
+ color: "primary",
634
+ "data-cy": "add-rule",
635
+ onClick: open,
636
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
637
+ style: {
638
+ fontSize: '1.3em',
639
+ marginRight: 4
640
+ }
641
+ }), t('router.rule.add.title')]
642
+ });
643
+ }
644
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(AddComponent, {
645
+ blocklet: blocklet,
646
+ children: _ref7 => {
647
+ let {
648
+ open
649
+ } = _ref7;
650
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
651
+ disabled: loading || (0, _util2.isInProgress)(blocklet.status),
652
+ variant: "text",
653
+ color: "primary",
654
+ "data-cy": "add-component",
655
+ onClick: open,
656
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
657
+ style: {
658
+ fontSize: '1.3em',
659
+ marginRight: 4
660
+ }
661
+ }), t('blocklet.component.add')]
662
+ });
663
+ }
664
+ })]
642
665
  })
643
666
  })]
644
667
  }), components && components.length ? [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
645
668
  mt: 2,
646
669
  ml: {
647
- xs: '-16px',
648
- md: '-28px'
670
+ xs: '-12px',
671
+ md: '-24px'
649
672
  },
650
673
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ComponentItem, {
651
674
  blocklet: blocklet,
@@ -657,6 +680,13 @@ function BlockletComponent(_ref4) {
657
680
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {
658
681
  children: t('blocklet.component.noComponent')
659
682
  })
683
+ }), !!blocklet.site.rules.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
684
+ mt: 0,
685
+ ml: {
686
+ xs: '-16px',
687
+ md: '-28px'
688
+ },
689
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ruleList.default, {})
660
690
  }), !!updateConfirm && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dialog.default, {
661
691
  open: true,
662
692
  fullWidth: true,
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Line;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function Line(_ref) {
12
+ let {
13
+ depth
14
+ } = _ref;
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
16
+ ml: Math.max((depth - 1) * 2, 0),
17
+ sx: {
18
+ borderBottom: 1,
19
+ borderColor: 'rgba(0,0,0,0.12)'
20
+ }
21
+ }, "group-collapse-box");
22
+ }
23
+ Line.propTypes = {
24
+ depth: _propTypes.default.number
25
+ };
26
+ Line.defaultProps = {
27
+ depth: 1
28
+ };
@@ -9,21 +9,32 @@ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _get = _interopRequireDefault(require("lodash/get"));
11
11
  var _omit = _interopRequireDefault(require("lodash/omit"));
12
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
12
13
  var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
14
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
14
15
  var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
15
16
  var _useTheme = _interopRequireDefault(require("@mui/material/styles/useTheme"));
16
17
  var _Switch = _interopRequireDefault(require("@mui/material/Switch"));
17
18
  var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
19
+ var _Add = _interopRequireDefault(require("@mui/icons-material/Add"));
20
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
21
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
18
22
  var _context = require("@arcblock/ux/lib/Locale/context");
23
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
24
+ var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
25
+ var _LockIcon = _interopRequireDefault(require("@arcblock/icons/lib/LockIcon"));
19
26
  var _constant = require("@blocklet/constant");
20
27
  var _util = require("@blocklet/meta/lib/util");
21
28
  var _toast = _interopRequireDefault(require("../toast"));
22
29
  var _schemaForm = _interopRequireDefault(require("../schema-form"));
30
+ var _formTextInput = _interopRequireDefault(require("../form/form-text-input"));
23
31
  var _config = _interopRequireDefault(require("../who-can-access/config"));
24
32
  var _node = require("../contexts/node");
25
33
  var _util2 = require("../util");
26
34
  var _permission = require("../permission");
35
+ var _addDomainAlias = _interopRequireDefault(require("./router/action/add-domain-alias"));
36
+ var _domainStatus = _interopRequireDefault(require("./router/domain-status"));
37
+ var _domainActions = _interopRequireDefault(require("./router/domain-actions"));
27
38
  var _jsxRuntime = require("react/jsx-runtime");
28
39
  var _templateObject, _templateObject2;
29
40
  const _excluded = ["blocklet", "onUpdate", "hasPermission"],
@@ -61,6 +72,15 @@ function BlockletEnvironment(_ref) {
61
72
  useSubscription
62
73
  }
63
74
  } = node;
75
+ const {
76
+ did
77
+ } = blocklet.meta;
78
+ const {
79
+ site
80
+ } = blocklet;
81
+ const {
82
+ domainAliases
83
+ } = site;
64
84
  const clusterMode = (0, _get.default)(blocklet.meta, 'capabilities.clusterMode', false);
65
85
  useSubscription('system.info', res => {
66
86
  if (clusterMode) {
@@ -273,6 +293,29 @@ function BlockletEnvironment(_ref) {
273
293
  setLoading(false);
274
294
  }
275
295
  };
296
+ const onUpdateCors = async value => {
297
+ const oldValue = site.corsAllowedOrigins || [];
298
+ const newValue = value.split(',').map(x => x.trim()).filter(Boolean);
299
+ if ((0, _isEqual.default)(oldValue, newValue)) {
300
+ return false;
301
+ }
302
+ try {
303
+ setLoading(true);
304
+ await node.api.updateRoutingSite({
305
+ input: {
306
+ id: site.id,
307
+ corsAllowedOrigins: value.split(',').map(x => x.trim()),
308
+ teamDid: blocklet.meta.did
309
+ }
310
+ });
311
+ setLoading(false);
312
+ } catch (err) {
313
+ _toast.default.error(err.message);
314
+ setLoading(false);
315
+ return false;
316
+ }
317
+ return true;
318
+ };
276
319
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({}, rest), {}, {
277
320
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_schemaForm.default, {
278
321
  disabled: disabled,
@@ -378,6 +421,138 @@ function BlockletEnvironment(_ref) {
378
421
  className: "config-form",
379
422
  component: _Divider.default,
380
423
  my: 3
424
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
425
+ className: "config-form",
426
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
427
+ display: "flex",
428
+ justifyContent: "space-between",
429
+ alignItems: "center",
430
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
431
+ className: "config-label",
432
+ children: t('common.domain')
433
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
434
+ display: "flex",
435
+ alignItems: "center",
436
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_addDomainAlias.default, {
437
+ id: site.id,
438
+ title: t('router.domain.add.title'),
439
+ teamDid: did,
440
+ children: _ref3 => {
441
+ let {
442
+ open
443
+ } = _ref3;
444
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
445
+ style: {
446
+ marginLeft: 16
447
+ },
448
+ variant: "contained",
449
+ color: "primary",
450
+ "data-cy": "add-domain-alias",
451
+ onClick: open,
452
+ disabled: (0, _util2.isInProgress)(blocklet.status),
453
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Add.default, {
454
+ style: {
455
+ fontSize: '1.3em',
456
+ marginRight: 4
457
+ }
458
+ }), t('common.add')]
459
+ });
460
+ }
461
+ })
462
+ })]
463
+ }), domainAliases.map((domain, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
464
+ display: "flex",
465
+ alignItems: "center",
466
+ justifyContent: "space-between",
467
+ mt: index ? 0 : 1,
468
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
469
+ display: "flex",
470
+ alignItems: "center",
471
+ justifyContent: "space-between",
472
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_domainStatus.default, {
473
+ domain: domain,
474
+ filters: ['domain']
475
+ }, "".concat(domain.value, "-domain")), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
476
+ ml: 2,
477
+ mr: 0.5,
478
+ children: domain.value
479
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_domainStatus.default, {
480
+ domain: domain,
481
+ filters: ['http']
482
+ }, "".concat(domain.value, "-http")), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
483
+ style: {
484
+ marginLeft: 12
485
+ }
486
+ })]
487
+ }), hasPermission && !domain.isProtected ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_domainActions.default, {
488
+ site: site,
489
+ domain: domain,
490
+ blocklet: blocklet
491
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
492
+ title: t('blocklet.router.domainLockTooltip'),
493
+ placement: "top",
494
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
495
+ disabled: true,
496
+ size: "large",
497
+ style: {
498
+ pointerEvents: 'auto',
499
+ // padding replace to margin, fix the tooltip position
500
+ paddingTop: 0,
501
+ paddingBottom: 0,
502
+ margin: '12px 0'
503
+ },
504
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LockIcon.default, {
505
+ style: {
506
+ fill: theme.palette.text.disabled
507
+ }
508
+ })
509
+ })
510
+ })]
511
+ }, domain.value)), !domainAliases.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
512
+ mt: 4,
513
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {
514
+ children: t('common.empty')
515
+ })
516
+ })]
517
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
518
+ className: "config-form",
519
+ component: _Divider.default,
520
+ my: 3
521
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
522
+ className: "config-form",
523
+ mt: 2,
524
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
525
+ className: "config-label",
526
+ mb: 0,
527
+ children: t('common.security')
528
+ })
529
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
530
+ className: "config-form",
531
+ mt: 2,
532
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
533
+ className: "config-label",
534
+ fontSize: 14,
535
+ mb: 0,
536
+ children: t('router.domainSecurity.cors.title')
537
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
538
+ mb: 1.5,
539
+ className: "config-desc",
540
+ children: t('router.domainSecurity.cors.description', {
541
+ name: 'the blocklet'
542
+ })
543
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_formTextInput.default, {
544
+ style: {
545
+ marginTop: 0
546
+ },
547
+ disabled: loading || disabled,
548
+ loading: loading,
549
+ initialValue: (site.corsAllowedOrigins || []).join(', '),
550
+ onSubmit: onUpdateCors
551
+ })]
552
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
553
+ className: "config-form",
554
+ component: _Divider.default,
555
+ my: 3
381
556
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
382
557
  className: "config-form",
383
558
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
@@ -427,11 +602,11 @@ function BlockletEnvironment(_ref) {
427
602
  defaultValue: {
428
603
  [_constant.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SK]: blocklet.environments.find(x => x.key === 'BLOCKLET_APP_SK').value
429
604
  },
430
- onChange: (changeValue, _ref3) => {
605
+ onChange: (changeValue, _ref4) => {
431
606
  let {
432
607
  action,
433
608
  currentItem
434
- } = _ref3;
609
+ } = _ref4;
435
610
  if (action === 'edit') {
436
611
  setEditingItem(currentItem);
437
612
  } else if (['cancel', 'confirm'].includes(action)) {
@@ -464,5 +639,5 @@ BlockletEnvironment.defaultProps = {
464
639
  onUpdate: () => {},
465
640
  hasPermission: false
466
641
  };
467
- const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .config-form {\n width: 80%;\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"])), props => props.theme.breakpoints.down('md'));
642
+ const Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .config-form {\n width: 80%;\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'));
468
643
  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);
@@ -7,28 +7,87 @@ exports.default = BlockletOverview;
7
7
  var _react = require("react");
8
8
  var _styled = _interopRequireDefault(require("@emotion/styled"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
11
+ var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
12
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
13
+ var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
10
14
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
11
15
  var _Tag = _interopRequireDefault(require("@arcblock/ux/lib/Tag"));
12
16
  var _InfoRow = _interopRequireDefault(require("@arcblock/ux/lib/InfoRow"));
13
17
  var _util = require("@blocklet/meta/lib/util");
14
18
  var _context = require("@arcblock/ux/lib/Locale/context");
19
+ var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
20
+ var _blocklet = require("../contexts/blocklet");
21
+ var _util2 = require("../util");
15
22
  var _didAddress = _interopRequireDefault(require("../did-address"));
16
23
  var _blockletSource = _interopRequireDefault(require("./blocklet-source"));
17
24
  var _runtimeInfo = _interopRequireDefault(require("./runtime-info"));
18
25
  var _diskInfo = _interopRequireDefault(require("./disk-info"));
19
26
  var _status = _interopRequireDefault(require("./status"));
20
27
  var _version = _interopRequireDefault(require("./version"));
21
- var _util2 = require("../util");
28
+ var _domainStatus = _interopRequireDefault(require("./router/domain-status"));
29
+ var _types = require("./types");
22
30
  var _jsxRuntime = require("react/jsx-runtime");
23
- var _templateObject;
24
31
  const _excluded = ["blocklet"];
32
+ var _templateObject, _templateObject2;
25
33
  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
34
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28
35
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
36
  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; }
30
37
  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; }
31
38
  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; }
39
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
40
+ function DomainLink(_ref) {
41
+ let {
42
+ domain,
43
+ children
44
+ } = _ref;
45
+ const {
46
+ t
47
+ } = (0, _react.useContext)(_context.LocaleContext);
48
+ const {
49
+ href,
50
+ accessibility
51
+ } = domain;
52
+ if (!accessibility || accessibility.loading) {
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(LinkDiv, {
54
+ children: [children, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
55
+ title: t('blocklet.router.checkUrlAccessible'),
56
+ placement: "top-end",
57
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
58
+ className: "status",
59
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
60
+ size: 12
61
+ })
62
+ })
63
+ })]
64
+ });
65
+ }
66
+ if (!accessibility.accessible) {
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkDiv, {
68
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
69
+ title: t('blocklet.router.urlInaccessible'),
70
+ placement: "top-end",
71
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
72
+ children: children
73
+ })
74
+ })
75
+ });
76
+ }
77
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinkDiv, {
78
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
79
+ href: href,
80
+ target: "_blank",
81
+ rel: "noopener noreferrer",
82
+ children: children
83
+ })
84
+ });
85
+ }
86
+ DomainLink.propTypes = {
87
+ domain: _types.DomainType.isRequired,
88
+ children: _propTypes.default.any.isRequired
89
+ };
90
+ const LinkDiv = _styled.default.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &,\n & > * {\n color: #222;\n font-size: 18px;\n }\n\n .status {\n margin-left: 8px;\n }\n"])));
32
91
  const getEngineRows = (engine, t) => {
33
92
  if (!engine) {
34
93
  return [];
@@ -46,15 +105,18 @@ const getEngineRows = (engine, t) => {
46
105
  })
47
106
  }];
48
107
  };
49
- function BlockletOverview(_ref) {
108
+ function BlockletOverview(_ref2) {
50
109
  var _blocklet$settings;
51
110
  let {
52
111
  blocklet
53
- } = _ref,
54
- rest = _objectWithoutProperties(_ref, _excluded);
112
+ } = _ref2,
113
+ rest = _objectWithoutProperties(_ref2, _excluded);
55
114
  const {
56
115
  t
57
116
  } = (0, _react.useContext)(_context.LocaleContext);
117
+ const {
118
+ loadingRuntimeInfo
119
+ } = (0, _blocklet.useBlockletContext)();
58
120
  const {
59
121
  value: appDid
60
122
  } = (blocklet.environments || []).find(x => x.key === 'BLOCKLET_APP_ID') || {};
@@ -139,10 +201,65 @@ function BlockletOverview(_ref) {
139
201
  children: row.value
140
202
  }, row.name);
141
203
  });
204
+ const {
205
+ site
206
+ } = blocklet;
207
+ const {
208
+ domainAliases = []
209
+ } = site || {};
142
210
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Div, _objectSpread(_objectSpread({
143
211
  component: "div"
144
212
  }, rest), {}, {
145
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
213
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
214
+ display: "flex",
215
+ justifyContent: "space-between",
216
+ alignItems: "center",
217
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
218
+ className: "title first",
219
+ mb: 0,
220
+ children: t('common.domain')
221
+ })
222
+ }), blocklet.status !== 'running' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
223
+ mt: -2,
224
+ mb: 1.5,
225
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
226
+ severity: "warning",
227
+ children: t('blocklet.router.noRunning')
228
+ })
229
+ }), domainAliases.map((domain, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
230
+ display: "flex",
231
+ alignItems: "center",
232
+ justifyContent: "space-between",
233
+ mt: index ? 3 : 0,
234
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
235
+ display: "flex",
236
+ alignItems: "center",
237
+ justifyContent: "space-between",
238
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_domainStatus.default, {
239
+ domain: domain,
240
+ filters: ['domain']
241
+ }, "".concat(domain.value, "-domain")), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
242
+ ml: 2,
243
+ mr: 0.5,
244
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DomainLink, {
245
+ domain: domain,
246
+ target: "_blank",
247
+ children: domain.value
248
+ })
249
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_domainStatus.default, {
250
+ domain: domain,
251
+ filters: ['http']
252
+ }, "".concat(domain.value, "-http")), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
253
+ style: {
254
+ marginLeft: 12
255
+ }
256
+ })]
257
+ })
258
+ }, domain.value)), !domainAliases.length && (loadingRuntimeInfo ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {
259
+ size: 16
260
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Empty.default, {
261
+ children: t('common.empty')
262
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
146
263
  className: "title",
147
264
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
148
265
  children: t('common.basicInfo')
@@ -159,11 +276,11 @@ function BlockletOverview(_ref) {
159
276
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
160
277
  className: "title",
161
278
  children: t('common.engine')
162
- }), engineRows.map(_ref2 => {
279
+ }), engineRows.map(_ref3 => {
163
280
  let {
164
281
  name,
165
282
  value
166
- } = _ref2;
283
+ } = _ref3;
167
284
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InfoRow.default, {
168
285
  nameWidth: 120,
169
286
  name: name,
@@ -181,4 +298,4 @@ function BlockletOverview(_ref) {
181
298
  BlockletOverview.propTypes = {
182
299
  blocklet: _propTypes.default.object.isRequired
183
300
  };
184
- const Div = (0, _styled.default)(_Typography.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .title {\n font-size: 1.2rem;\n font-weight: bold;\n margin-top: ", ";\n margin-bottom: ", ";\n }\n"])), props => props.theme.spacing(5), props => props.theme.spacing(3));
301
+ const Div = (0, _styled.default)(_Typography.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .title {\n font-size: 1.2rem;\n font-weight: bold;\n margin-top: ", ";\n margin-bottom: ", ";\n &.first {\n margin-top: 0;\n }\n }\n"])), props => props.theme.spacing(5), props => props.theme.spacing(3));