@abtnode/ux 1.15.17 → 1.16.0-beta-b16cb035

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.
Files changed (154) hide show
  1. package/lib/actions.js +111 -0
  2. package/lib/blocklet/access/config-access.js +303 -0
  3. package/lib/blocklet/access/index.js +221 -0
  4. package/lib/blocklet/actions.js +438 -0
  5. package/lib/blocklet/add-cert.js +191 -0
  6. package/lib/blocklet/agreement-app.js +30 -0
  7. package/lib/blocklet/agreement.js +72 -0
  8. package/lib/blocklet/app-avatar.js +74 -0
  9. package/lib/blocklet/audit-logs.js +197 -0
  10. package/lib/blocklet/blocklet-source.js +56 -0
  11. package/lib/blocklet/bundle-avatar.js +80 -0
  12. package/lib/blocklet/component/add.js +1063 -0
  13. package/lib/blocklet/component/configuration.js +124 -0
  14. package/lib/blocklet/component/delete.js +117 -0
  15. package/lib/blocklet/component/environment.js +289 -0
  16. package/lib/blocklet/component/expiration.js +53 -0
  17. package/lib/blocklet/component/index.js +804 -0
  18. package/lib/blocklet/component/line.js +28 -0
  19. package/lib/blocklet/component/navigation/locale-tabs.js +218 -0
  20. package/lib/blocklet/component/navigation/navigation-actions.js +120 -0
  21. package/lib/blocklet/component/navigation/navigation-dialog.js +620 -0
  22. package/lib/blocklet/component/navigation/navigation-preview.js +102 -0
  23. package/lib/blocklet/component/navigation/simple-select.js +131 -0
  24. package/lib/blocklet/component/select-store.js +153 -0
  25. package/lib/blocklet/component/setting.js +151 -0
  26. package/lib/blocklet/component/sortable-tree.js +138 -0
  27. package/lib/blocklet/component/space-gateway-selector.js +174 -0
  28. package/lib/blocklet/component/store-blocklet-list.js +205 -0
  29. package/lib/blocklet/config-navigation.js +344 -0
  30. package/lib/blocklet/configuration.js +574 -0
  31. package/lib/blocklet/disk-info.js +91 -0
  32. package/lib/blocklet/icons.js +26 -0
  33. package/lib/blocklet/install-from-url.js +347 -0
  34. package/lib/blocklet/log.js +62 -0
  35. package/lib/blocklet/migration.js +153 -0
  36. package/lib/blocklet/mode.js +35 -0
  37. package/lib/blocklet/monitor.js +186 -0
  38. package/lib/blocklet/overview.js +236 -0
  39. package/lib/blocklet/preferences/app-sk.js +131 -0
  40. package/lib/blocklet/preferences/index.js +238 -0
  41. package/lib/blocklet/preferences/wallet-type.js +107 -0
  42. package/lib/blocklet/purchase/common.js +103 -0
  43. package/lib/blocklet/purchase/component-purchase.js +253 -0
  44. package/lib/blocklet/purchase/index.js +13 -0
  45. package/lib/blocklet/router/action/add-domain-alias.js +173 -0
  46. package/lib/blocklet/router/action/add-rule.js +204 -0
  47. package/lib/blocklet/router/action/config-routing-rule.js +129 -0
  48. package/lib/blocklet/router/action/delete-domain-alias.js +107 -0
  49. package/lib/blocklet/router/action/delete-rule.js +114 -0
  50. package/lib/blocklet/router/action/update-rule.js +203 -0
  51. package/lib/blocklet/router/domain-actions.js +71 -0
  52. package/lib/blocklet/router/domain-status.js +96 -0
  53. package/lib/blocklet/router/rule-actions.js +77 -0
  54. package/lib/blocklet/router/rule-list.js +181 -0
  55. package/lib/blocklet/router/util.js +146 -0
  56. package/lib/blocklet/runtime-info.js +87 -0
  57. package/lib/blocklet/status.js +105 -0
  58. package/lib/blocklet/storage.js +322 -0
  59. package/lib/blocklet/types.js +25 -0
  60. package/lib/blocklet/util.js +213 -0
  61. package/lib/blocklet/version.js +156 -0
  62. package/lib/card-selector.js +109 -0
  63. package/lib/certificate.js +110 -0
  64. package/lib/click-to-copy.js +38 -0
  65. package/lib/confirm.js +149 -0
  66. package/lib/contexts/audit-log.js +141 -0
  67. package/lib/contexts/blocklet.js +19 -0
  68. package/lib/contexts/deleting-blocklets.js +78 -0
  69. package/lib/contexts/node.js +30 -0
  70. package/lib/contexts/session.js +20 -0
  71. package/lib/contexts/team.js +19 -0
  72. package/lib/delete-confirm.js +127 -0
  73. package/lib/did-address.js +77 -0
  74. package/lib/dot.js +18 -0
  75. package/lib/form/form-text-input.js +266 -0
  76. package/lib/form/form-wrapper.js +13 -0
  77. package/lib/form/required.js +13 -0
  78. package/lib/hooks/blocklet.js +231 -0
  79. package/lib/hooks/mobile-width.js +19 -0
  80. package/lib/hooks/url-evaluation.js +168 -0
  81. package/lib/hooks/use-app-logo.js +25 -0
  82. package/lib/hooks/use-bundle-logo.js +36 -0
  83. package/lib/hooks/use-navigation.js +355 -0
  84. package/lib/hooks/use-passport-id.js +21 -0
  85. package/lib/hooks/use-subscription.js +28 -0
  86. package/lib/icons/long-arrow.svg +5 -0
  87. package/lib/index.js +0 -3
  88. package/lib/invitation/invitation-app.js +51 -0
  89. package/lib/invitation/invitation-login.js +47 -0
  90. package/lib/invitation/invitation-passport.js +130 -0
  91. package/lib/invitation/invitation-receive.js +108 -0
  92. package/lib/invitation/invitation-success.js +82 -0
  93. package/lib/invitation/invitation-user.js +79 -0
  94. package/lib/invitation/invitation.js +80 -0
  95. package/lib/issue-passport.js +84 -84
  96. package/lib/launch-blocklet/content-layout.js +33 -0
  97. package/lib/launch-blocklet/page-header.js +38 -0
  98. package/lib/layout/addon.js +100 -0
  99. package/lib/layout/feedback.js +55 -0
  100. package/lib/locales/en.js +1221 -10
  101. package/lib/locales/index.js +3 -4
  102. package/lib/locales/zh.js +1232 -15
  103. package/lib/logs/clock.js +19 -0
  104. package/lib/logs/download.js +139 -0
  105. package/lib/logs/log-terminal.js +183 -0
  106. package/lib/lost-passport.js +191 -195
  107. package/lib/monitor/card.js +73 -0
  108. package/lib/monitor/cpu.js +109 -0
  109. package/lib/monitor/disk.js +122 -0
  110. package/lib/monitor/memory.js +144 -0
  111. package/lib/nav-logo.js +120 -0
  112. package/lib/passport-tag.js +43 -0
  113. package/lib/permission.js +70 -0
  114. package/lib/relative-time.js +61 -0
  115. package/lib/schema-form/color-input.js +105 -0
  116. package/lib/schema-form/common-prop-types.js +21 -0
  117. package/lib/schema-form/index.js +229 -0
  118. package/lib/schema-form/passport-input.js +66 -0
  119. package/lib/schema-form/text-input.js +72 -0
  120. package/lib/store/add.js +185 -0
  121. package/lib/store/delete.js +102 -0
  122. package/lib/store/item.js +84 -0
  123. package/lib/table-icons.js +42 -0
  124. package/lib/table.js +13 -0
  125. package/lib/tag.js +37 -0
  126. package/lib/team/members/actions.js +99 -0
  127. package/lib/team/members/index.js +503 -0
  128. package/lib/team/members/invitations.js +196 -0
  129. package/lib/team/members/invite-member.js +212 -0
  130. package/lib/team/members/issue-passport.js +155 -0
  131. package/lib/team/members/member.js +300 -0
  132. package/lib/team/members/passport-issuances.js +154 -0
  133. package/lib/team/members/passports.js +336 -0
  134. package/lib/team/members/toggle-user-approval.js +128 -0
  135. package/lib/team/members/transfer-node.js +262 -0
  136. package/lib/team/members/util.js +20 -0
  137. package/lib/team/passports/color.js +132 -0
  138. package/lib/team/passports/detail.js +271 -0
  139. package/lib/team/passports/index.js +233 -0
  140. package/lib/team/passports/mutate-role.js +204 -0
  141. package/lib/team/passports/trusted-issuer.js +297 -0
  142. package/lib/team/passports/trusted-issuers.js +240 -0
  143. package/lib/team/search-input.js +38 -0
  144. package/lib/team/styles/dialog.js +13 -0
  145. package/lib/team/styles/list-header.js +13 -0
  146. package/lib/toast.js +86 -0
  147. package/lib/util/api.js +21 -0
  148. package/lib/util/constants.js +10 -0
  149. package/lib/util/index.js +703 -0
  150. package/lib/util/locales.js +28 -0
  151. package/lib/util/mode.js +11 -0
  152. package/lib/who-can-access/config.js +46 -0
  153. package/lib/wrap-locale.js +12 -13
  154. package/package.json +69 -17
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = BlockletVersion;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _notistack = require("notistack");
10
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
11
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
12
+ var _ArrowUpward = _interopRequireDefault(require("@mui/icons-material/ArrowUpward"));
13
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
14
+ var _Toast = _interopRequireDefault(require("@arcblock/ux/lib/Toast"));
15
+ var _context = require("@arcblock/ux/lib/Locale/context");
16
+ var _constant = require("@blocklet/constant");
17
+ var _util = require("@blocklet/meta/lib/util");
18
+ var _tag = _interopRequireDefault(require("../tag"));
19
+ var _confirm = _interopRequireDefault(require("../confirm"));
20
+ var _node = require("../contexts/node");
21
+ var _util2 = require("../util");
22
+ var _permission = require("../permission");
23
+ var _jsxRuntime = require("react/jsx-runtime");
24
+ const _excluded = ["blocklet", "checkUpgrade", "hasPermission"];
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
+ function Version(_ref) {
34
+ let {
35
+ blocklet,
36
+ checkUpgrade,
37
+ hasPermission
38
+ } = _ref,
39
+ rest = _objectWithoutProperties(_ref, _excluded);
40
+ const {
41
+ api
42
+ } = (0, _node.useNodeContext)();
43
+ const {
44
+ t
45
+ } = (0, _react.useContext)(_context.LocaleContext);
46
+ const [loading, setLoading] = (0, _react.useState)(false);
47
+ const [error, setError] = (0, _react.useState)('');
48
+ const [newVersionBlocklet, setNewVersionBlocklet] = (0, _react.useState)(null);
49
+ const [confirmSetting, setConfirmSetting] = (0, _react.useState)(null);
50
+ const {
51
+ enqueueSnackbar
52
+ } = (0, _notistack.useSnackbar)();
53
+ (0, _react.useEffect)(() => {
54
+ setNewVersionBlocklet(null);
55
+ if (checkUpgrade && blocklet.mode !== _constant.BLOCKLET_MODES.DEVELOPMENT) {
56
+ // The implementation was removed and will be restore in the further
57
+ }
58
+ }, [blocklet, checkUpgrade]); // eslint-disable-line
59
+
60
+ const onCancel = () => {
61
+ setLoading(false);
62
+ setConfirmSetting(null);
63
+ };
64
+ const onConfirm = async () => {
65
+ setLoading(true);
66
+ try {
67
+ const input = {
68
+ did: blocklet.meta.did,
69
+ version: newVersionBlocklet.version,
70
+ storeUrl: newVersionBlocklet.registryUrl || ''
71
+ };
72
+ await (0, _util2.sleep)(2000);
73
+ await api.upgradeBlocklet({
74
+ input
75
+ });
76
+ } catch (err) {
77
+ enqueueSnackbar("Blocklet upgrade failed: ".concat((0, _util2.formatError)(err)), {
78
+ autoHideDuration: 5000,
79
+ variant: 'error'
80
+ });
81
+ } finally {
82
+ setLoading(false);
83
+ setConfirmSetting(null);
84
+ }
85
+ };
86
+ const setting = {
87
+ title: "".concat(t('common.upgrade'), " ").concat(t('common.blocklet'), " ").concat((0, _util.getDisplayName)(blocklet)),
88
+ description: t('blocklet.action.upgradeDescription'),
89
+ confirm: t('blocklet.action.confirmUpgrade'),
90
+ cancel: t('common.cancel'),
91
+ onConfirm,
92
+ onCancel
93
+ };
94
+ if (hasPermission && newVersionBlocklet && !(0, _util2.isInProgress)(blocklet.status)) {
95
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
96
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, _objectSpread(_objectSpread({}, rest), {}, {
97
+ children: blocklet.meta.version
98
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
99
+ title: t('common.updateAvailable', {
100
+ version: newVersionBlocklet.version
101
+ }),
102
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
103
+ size: "small",
104
+ style: {
105
+ marginLeft: 8
106
+ },
107
+ disabled: loading,
108
+ onClick: () => setConfirmSetting(setting),
109
+ children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
110
+ size: 16
111
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowUpward.default, {
112
+ style: {
113
+ fontSize: 16,
114
+ color: 'red'
115
+ }
116
+ })
117
+ })
118
+ }), !!error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toast.default, {
119
+ variant: "error",
120
+ message: error,
121
+ onClose: () => setError('')
122
+ }), confirmSetting && /*#__PURE__*/(0, _jsxRuntime.jsx)(_confirm.default, {
123
+ title: confirmSetting.title,
124
+ description: confirmSetting.description,
125
+ confirm: confirmSetting.confirm,
126
+ cancel: confirmSetting.cancel,
127
+ params: confirmSetting.params,
128
+ onConfirm: confirmSetting.onConfirm,
129
+ onCancel: confirmSetting.onCancel
130
+ })]
131
+ });
132
+ }
133
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tag.default, _objectSpread(_objectSpread({}, rest), {}, {
134
+ children: blocklet.meta.version
135
+ }));
136
+ }
137
+ Version.propTypes = {
138
+ blocklet: _propTypes.default.object.isRequired,
139
+ checkUpgrade: _propTypes.default.bool,
140
+ hasPermission: _propTypes.default.bool
141
+ };
142
+ Version.defaultProps = {
143
+ checkUpgrade: false,
144
+ hasPermission: false
145
+ };
146
+ const BlockletVersionInDaemon = (0, _permission.withPermission)(Version, 'mutate_blocklets');
147
+ const BlockletVersionInService = (0, _permission.withPermission)(Version, '', _util2.BlockletAdminRoles);
148
+ function BlockletVersion(props) {
149
+ const {
150
+ inService
151
+ } = (0, _node.useNodeContext)();
152
+ if (inService) {
153
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockletVersionInService, _objectSpread({}, props));
154
+ }
155
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockletVersionInDaemon, _objectSpread({}, props));
156
+ }
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = CardSelector;
7
+ var _react = require("react");
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ var _templateObject;
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
14
+ function CardSelector(_ref) {
15
+ let {
16
+ list,
17
+ width,
18
+ height,
19
+ cardSpace,
20
+ onSelect,
21
+ defaultIndex
22
+ } = _ref;
23
+ const [selectedId, setSelectedId] = (0, _react.useState)(0);
24
+ const [translateX, setTranslateX] = (0, _react.useState)(0);
25
+ const outterCon = (0, _react.useRef)(null);
26
+
27
+ // 选择卡片
28
+ const selectedItem = i => {
29
+ if (i < 0 || i > list.length - 1) {
30
+ return;
31
+ }
32
+ setSelectedId(i);
33
+
34
+ // 外部容器大小
35
+ const outerWidth = outterCon.current.clientWidth;
36
+ setTranslateX(i * (width + cardSpace) - (outerWidth - width) / 2 + cardSpace * 0.5);
37
+ onSelect(i);
38
+ };
39
+ (0, _react.useEffect)(() => {
40
+ selectedItem(defaultIndex);
41
+ const func = e => e.preventDefault();
42
+ outterCon.current.addEventListener('touchmove', func, {
43
+ passive: false
44
+ });
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
+ }, []);
47
+ let startX;
48
+ const touchstart = e => {
49
+ const point = e.touches[0];
50
+ startX = point.clientX;
51
+ };
52
+ const touchend = e => {
53
+ const point = e.changedTouches[0];
54
+ const diffX = startX - point.clientX;
55
+ if (Math.abs(diffX) > 60) {
56
+ if (diffX > 0) {
57
+ selectedItem(selectedId + 1);
58
+ } else {
59
+ selectedItem(selectedId - 1);
60
+ }
61
+ }
62
+ };
63
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Contianer, {
64
+ ref: outterCon,
65
+ onTouchStart: touchstart,
66
+ onTouchEnd: touchend,
67
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
68
+ className: "card-container",
69
+ style: {
70
+ transform: "translate(".concat(-translateX, "px, 0)")
71
+ },
72
+ children: list.map((e, i) => {
73
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
74
+ className: "card-item ".concat(i === selectedId ? 'selected' : ''),
75
+ style: {
76
+ width,
77
+ height,
78
+ margin: cardSpace / 2
79
+ }
80
+ // eslint-disable-next-line react/no-array-index-key
81
+ ,
82
+
83
+ onClick: () => selectedItem(i),
84
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
85
+ src: e.src,
86
+ alt: e.name
87
+ })
88
+ }, i);
89
+ })
90
+ })
91
+ });
92
+ }
93
+ const Contianer = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n overflow: hidden;\n mask-image: linear-gradient(to left, transparent, black 3%, black 97%, transparent);\n overflow: hidden;\n .card-container {\n display: flex;\n white-space: nowrap;\n width: max-content;\n transition: all ease 0.3s;\n }\n .card-item {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n cursor: pointer;\n img {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n outline: #526ded solid 0;\n transition: all ease 0.2s;\n box-shadow: rgba(0, 0, 0, 0.2) 0 0 10px;\n }\n &.selected {\n cursor: default;\n img {\n outline: #526ded solid 5px;\n }\n }\n }\n"])));
94
+ CardSelector.propTypes = {
95
+ list: _propTypes.default.array,
96
+ width: _propTypes.default.number,
97
+ height: _propTypes.default.number,
98
+ cardSpace: _propTypes.default.number,
99
+ onSelect: _propTypes.default.func,
100
+ defaultIndex: _propTypes.default.number
101
+ };
102
+ CardSelector.defaultProps = {
103
+ list: '',
104
+ width: 300,
105
+ height: 400,
106
+ cardSpace: 40,
107
+ onSelect: () => {},
108
+ defaultIndex: 0
109
+ };
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Certificate;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _get = _interopRequireDefault(require("lodash/get"));
10
+ var _Https = _interopRequireDefault(require("@mui/icons-material/Https"));
11
+ var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
12
+ var _Card = _interopRequireDefault(require("@mui/material/Card"));
13
+ var _CardContent = _interopRequireDefault(require("@mui/material/CardContent"));
14
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
15
+ var _context = require("@arcblock/ux/lib/Locale/context");
16
+ var _util = require("./util");
17
+ var _node = require("./contexts/node");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+ function Certificate(_ref) {
21
+ let {
22
+ certificate
23
+ } = _ref;
24
+ const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
25
+ const node = (0, _node.useNodeContext)();
26
+ const {
27
+ t
28
+ } = (0, _context.useLocaleContext)();
29
+ const handlePopoverOpen = event => {
30
+ setAnchorEl(event.currentTarget);
31
+ };
32
+ const handlePopoverClose = () => {
33
+ setAnchorEl(null);
34
+ };
35
+ const open = Boolean(anchorEl);
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
37
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Https.default, {
38
+ "aria-owns": open ? 'mouse-over-popover' : undefined,
39
+ onMouseEnter: handlePopoverOpen,
40
+ onMouseLeave: handlePopoverClose,
41
+ style: {
42
+ color: '#44cdc6',
43
+ fontSize: 20,
44
+ marginLeft: 8,
45
+ cursor: 'pointer'
46
+ }
47
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
48
+ id: "mouse-over-popover",
49
+ style: {
50
+ pointerEvents: 'none'
51
+ },
52
+ open: open,
53
+ anchorEl: anchorEl,
54
+ anchorOrigin: {
55
+ vertical: 'bottom',
56
+ horizontal: 'left'
57
+ },
58
+ transformOrigin: {
59
+ vertical: 'top',
60
+ horizontal: 'left'
61
+ },
62
+ onClose: handlePopoverClose,
63
+ disableRestoreFocus: true,
64
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Card.default, {
65
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CardContent.default, {
66
+ style: {
67
+ display: 'flex'
68
+ },
69
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
70
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
71
+ src: "".concat(node.imgPrefix, "/https-certificate-icon.png"),
72
+ alt: "certificate icon",
73
+ style: {
74
+ maxHeight: '100%',
75
+ maxWidth: '100%'
76
+ }
77
+ })
78
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
79
+ component: "div",
80
+ style: {
81
+ marginLeft: '16px'
82
+ },
83
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
84
+ component: "div",
85
+ style: {
86
+ fontWeight: 'bold'
87
+ },
88
+ children: certificate.domain
89
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
90
+ component: "div",
91
+ children: "".concat(t('common.issuer'), ": ").concat((0, _get.default)(certificate, 'issuer.commonName', ''))
92
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
93
+ component: "div",
94
+ children: "".concat(t('router.cert.issuedOn'), ": ").concat((0, _util.formatToDate)(certificate.validFrom))
95
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
96
+ component: "div",
97
+ children: "".concat(t('router.cert.expiryOn'), ": ").concat((0, _util.formatToDate)(certificate.validTo))
98
+ })]
99
+ })]
100
+ })
101
+ })
102
+ })]
103
+ });
104
+ }
105
+ Certificate.propTypes = {
106
+ certificate: _propTypes.default.object
107
+ };
108
+ Certificate.defaultProps = {
109
+ certificate: {}
110
+ };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ClickToCopy;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _ClickToCopy = _interopRequireDefault(require("@arcblock/ux/lib/ClickToCopy"));
10
+ var _context = require("@arcblock/ux/lib/Locale/context");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ const _excluded = ["children"];
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
+ 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); }
19
+ 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; }
20
+ 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; }
21
+ function ClickToCopy(_ref) {
22
+ let {
23
+ children
24
+ } = _ref,
25
+ rest = _objectWithoutProperties(_ref, _excluded);
26
+ const {
27
+ t
28
+ } = (0, _react.useContext)(_context.LocaleContext);
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ClickToCopy.default, _objectSpread(_objectSpread({
30
+ tip: t('common.copyTip'),
31
+ copiedTip: t('common.copiedTip')
32
+ }, rest), {}, {
33
+ children: children
34
+ }));
35
+ }
36
+ ClickToCopy.propTypes = {
37
+ children: _propTypes.default.any.isRequired
38
+ };
package/lib/confirm.js ADDED
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ConfirmDialog;
7
+ var _react = require("react");
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
10
+ var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
11
+ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
12
+ var _DialogActions = _interopRequireDefault(require("@mui/material/DialogActions"));
13
+ var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent"));
14
+ var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
15
+ var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
16
+ var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
17
+ var _useTheme = _interopRequireDefault(require("@mui/material/styles/useTheme"));
18
+ var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
19
+ var _context = require("@arcblock/ux/lib/Locale/context");
20
+ var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
21
+ var _util = require("./util");
22
+ var _mobileWidth = _interopRequireDefault(require("./hooks/mobile-width"));
23
+ var _jsxRuntime = require("react/jsx-runtime");
24
+ var _templateObject;
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
27
+ function ConfirmDialog(_ref) {
28
+ let {
29
+ title,
30
+ description,
31
+ showCancel,
32
+ cancel,
33
+ confirm,
34
+ color,
35
+ params: initialParams,
36
+ onCancel,
37
+ onConfirm
38
+ } = _ref;
39
+ const [params, setParams] = (0, _react.useState)(initialParams);
40
+ const [open, setOpen] = (0, _react.useState)(true);
41
+ const [loading, setLoading] = (0, _react.useState)(false);
42
+ const [error, setError] = (0, _react.useState)('');
43
+ const {
44
+ t: changeLocale
45
+ } = (0, _context.useLocaleContext)();
46
+ const theme = (0, _useTheme.default)();
47
+ const onCallback = async cb => {
48
+ if (typeof cb === 'function') {
49
+ setLoading(true);
50
+ try {
51
+ await cb(params);
52
+ setOpen(false);
53
+ } catch (err) {
54
+ setError((0, _util.formatError)(err));
55
+ console.error(err);
56
+ } finally {
57
+ setLoading(false);
58
+ }
59
+ } else {
60
+ setOpen(false);
61
+ }
62
+ };
63
+ const t = typeof title === 'function' ? title() : title;
64
+ const d = typeof description === 'function' ? description(params, setParams, setError) : description;
65
+ const isBreakpointsDownSm = (0, _useMediaQuery.default)(theme.breakpoints.down('md'));
66
+ const handleClick = e => {
67
+ e.stopPropagation();
68
+ };
69
+ const {
70
+ minWidth
71
+ } = (0, _mobileWidth.default)();
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledDialog, {
73
+ onClick: handleClick,
74
+ fullScreen: isBreakpointsDownSm,
75
+ open: open,
76
+ style: {
77
+ minWidth
78
+ },
79
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogTitle.default, {
80
+ children: t
81
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_DialogContent.default, {
82
+ style: {
83
+ minWidth
84
+ },
85
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContentText.default, {
86
+ component: "div",
87
+ children: d
88
+ }), !!error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
89
+ severity: "error",
90
+ style: {
91
+ width: '100%',
92
+ marginTop: 8
93
+ },
94
+ children: error
95
+ })]
96
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_DialogActions.default, {
97
+ className: "delete-actions",
98
+ style: {
99
+ padding: '8px 24px 24px'
100
+ },
101
+ children: [showCancel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
102
+ onClick: e => {
103
+ e.stopPropagation();
104
+ onCallback(onCancel);
105
+ },
106
+ color: "inherit",
107
+ "data-cy": "cancel-confirm-dialog",
108
+ children: cancel || changeLocale('common.cancel')
109
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
110
+ onClick: e => {
111
+ e.stopPropagation();
112
+ onCallback(onConfirm);
113
+ },
114
+ color: color
115
+ // eslint-disable-next-line no-underscore-dangle
116
+ ,
117
+ disabled: params.__disableConfirm || loading,
118
+ variant: "contained",
119
+ "data-cy": "submit-confirm-dialog",
120
+ autoFocus: true,
121
+ children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
122
+ size: 16
123
+ }), confirm]
124
+ })]
125
+ })]
126
+ });
127
+ }
128
+ ConfirmDialog.propTypes = {
129
+ title: _propTypes.default.any.isRequired,
130
+ description: _propTypes.default.any.isRequired,
131
+ // can be a function that renders different content based on params
132
+ showCancel: _propTypes.default.bool,
133
+ cancel: _propTypes.default.string,
134
+ color: _propTypes.default.string,
135
+ confirm: _propTypes.default.string,
136
+ params: _propTypes.default.object,
137
+ // This object holds states managed in the dialog
138
+ onCancel: _propTypes.default.func,
139
+ onConfirm: _propTypes.default.func.isRequired
140
+ };
141
+ ConfirmDialog.defaultProps = {
142
+ onCancel: () => {},
143
+ showCancel: true,
144
+ cancel: '',
145
+ confirm: 'Confirm',
146
+ color: 'error',
147
+ params: {}
148
+ };
149
+ const StyledDialog = (0, _styled.default)(_Dialog.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .delete-actions .Mui-disabled {\n color: rgba(0, 0, 0, 0.26) !important;\n box-shadow: none;\n background-color: rgba(0, 0, 0, 0.12) !important;\n }\n"])));