@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.
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = RuleListWithPermission;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _isUrl = _interopRequireDefault(require("is-url"));
9
+ var _useTheme = _interopRequireDefault(require("@mui/material/styles/useTheme"));
10
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
11
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
12
+ var _Link = _interopRequireDefault(require("@mui/material/Link"));
13
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
14
+ var _Avatar = _interopRequireDefault(require("@mui/material/Avatar"));
15
+ var _LockIcon = _interopRequireDefault(require("@arcblock/icons/lib/LockIcon"));
16
+ var _context = require("@arcblock/ux/lib/Locale/context");
17
+ var _constant = require("@abtnode/constant");
18
+ var _util = require("../../util");
19
+ var _blocklet = require("../../contexts/blocklet");
20
+ var _node = require("../../contexts/node");
21
+ var _permission = require("../../permission");
22
+ var _line = _interopRequireDefault(require("../component/line"));
23
+ var _ruleActions = _interopRequireDefault(require("./rule-actions"));
24
+ var _jsxRuntime = require("react/jsx-runtime");
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) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
+ function RedirectRule(_ref) {
30
+ let {
31
+ domain,
32
+ isHttps,
33
+ toUrl
34
+ } = _ref;
35
+ const scheme = isHttps ? 'https' : 'http';
36
+ let tmpToUrl = toUrl;
37
+ if (!(0, _isUrl.default)(tmpToUrl)) {
38
+ tmpToUrl = "".concat(scheme, "://").concat(domain).concat(toUrl);
39
+ }
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
41
+ href: tmpToUrl,
42
+ target: "_blank",
43
+ style: {
44
+ fontSize: 14
45
+ },
46
+ underline: "hover",
47
+ children: toUrl
48
+ }, tmpToUrl);
49
+ }
50
+ RedirectRule.propTypes = {
51
+ domain: _propTypes.default.string.isRequired,
52
+ toUrl: _propTypes.default.string.isRequired,
53
+ isHttps: _propTypes.default.bool
54
+ };
55
+ RedirectRule.defaultProps = {
56
+ isHttps: false
57
+ };
58
+ function RuleList(_ref2) {
59
+ let {
60
+ hasPermission
61
+ } = _ref2;
62
+ const {
63
+ t,
64
+ locale
65
+ } = (0, _context.useLocaleContext)();
66
+ const theme = (0, _useTheme.default)();
67
+ const {
68
+ blocklet,
69
+ recommendedDomain: domain
70
+ } = (0, _blocklet.useBlockletContext)();
71
+ const rules = blocklet.site.rules.filter(rule => rule.to.did !== blocklet.meta.did).filter(rule => rule.to.type !== _constant.ROUTING_RULE_TYPES.BLOCKLET);
72
+ return rules.map(rule => {
73
+ let avatarName = '';
74
+ if (rule.to.type === _constant.ROUTING_RULE_TYPES.NONE) {
75
+ avatarName = '404';
76
+ } else if (rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT) {
77
+ avatarName = rule.to.redirectCode;
78
+ }
79
+ const action = rule.isProtected ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
80
+ title: t('blocklet.router.urlLockTooltip'),
81
+ placement: "top",
82
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
83
+ disabled: true,
84
+ size: "large",
85
+ style: {
86
+ pointerEvents: 'auto',
87
+ // padding replace to margin, fix the tooltip position
88
+ paddingTop: 0,
89
+ paddingBottom: 0,
90
+ margin: '12px 0'
91
+ },
92
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LockIcon.default, {
93
+ style: {
94
+ fill: theme.palette.text.disabled
95
+ }
96
+ })
97
+ })
98
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ruleActions.default, _objectSpread({}, rule));
99
+ return [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
100
+ display: "flex",
101
+ py: 2,
102
+ className: "component-item",
103
+ justifyContent: "space-between",
104
+ alignItems: "center",
105
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
106
+ width: {
107
+ xs: 300,
108
+ md: 400
109
+ },
110
+ display: "flex",
111
+ alignItems: "center",
112
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
113
+ width: 28
114
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
115
+ children: avatarName
116
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
117
+ ml: "16px",
118
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
119
+ style: {
120
+ color: '#222',
121
+ fontSize: 18
122
+ },
123
+ children: [rule.to.type === _constant.ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT && t('common.redirect')]
124
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
125
+ display: "flex",
126
+ alignItems: "center",
127
+ children: rule.to.type === _constant.ROUTING_RULE_TYPES.REDIRECT && /*#__PURE__*/(0, _jsxRuntime.jsx)(RedirectRule, {
128
+ domain: domain,
129
+ toUrl: rule.to.url
130
+ })
131
+ })]
132
+ })]
133
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
134
+ px: 2,
135
+ sx: {
136
+ display: {
137
+ xs: 'none',
138
+ md: 'flex'
139
+ }
140
+ },
141
+ alignItems: "center",
142
+ flexGrow: "1",
143
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Link.default, {
144
+ href: (0, _util.getAccessUrl)(domain, rule.from.pathPrefix, (0, _util.getBlockletUrlParams)(blocklet, locale)),
145
+ target: "_blank",
146
+ style: {
147
+ fontSize: 18
148
+ },
149
+ underline: "hover",
150
+ children: rule.from.pathPrefix
151
+ })
152
+ }, rule.from.pathPrefix), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
153
+ children: hasPermission && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
154
+ style: {
155
+ textAlign: 'right'
156
+ },
157
+ children: action
158
+ })
159
+ }, "actions")]
160
+ }, "group-not-gateway-box"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_line.default, {})];
161
+ });
162
+ }
163
+ RuleList.propTypes = {
164
+ hasPermission: _propTypes.default.bool
165
+ };
166
+ RuleList.defaultProps = {
167
+ hasPermission: false
168
+ };
169
+ const RuleListInDaemon = (0, _permission.withPermission)(RuleList, 'mutate_blocklet');
170
+ const RuleListInService = (0, _permission.withPermission)(RuleList, '', _util.BlockletAdminRoles);
171
+ function RuleListWithPermission(props) {
172
+ const {
173
+ inService
174
+ } = (0, _node.useNodeContext)();
175
+ if (inService) {
176
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RuleListInService, _objectSpread({}, props));
177
+ }
178
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RuleListInDaemon, _objectSpread({}, props));
179
+ }
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateSite = exports.validateRule = exports.validatePathPrefix = exports.validateDomain = exports.isSpecialDomain = exports.getInitialBlockletDid = void 0;
7
+ var _constant = require("@abtnode/constant");
8
+ var _isPathPrefixEqual = _interopRequireDefault(require("@abtnode/util/lib/is-path-prefix-equal"));
9
+ var _constant2 = require("@blocklet/constant");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ /* eslint-disable import/prefer-default-export */
12
+
13
+ const validateRuleByServiceType = (params, localeContext) => {
14
+ if (params.type === _constant.ROUTING_RULE_TYPES.REDIRECT) {
15
+ if (!params.url) {
16
+ return new Error("".concat(localeContext('router.validation.redirectUrlRequired')));
17
+ }
18
+ if (!params.redirectCode) {
19
+ return new Error("redirect ".concat(localeContext('router.validation.redirectCodeRequired')));
20
+ }
21
+ } else if (params.type === _constant.ROUTING_RULE_TYPES.BLOCKLET) {
22
+ if (!params.did) {
23
+ return new Error(localeContext('router.validation.didRequired'));
24
+ }
25
+ }
26
+ return null;
27
+ };
28
+ const validateDomain = (domain, localeContext) => {
29
+ if (!domain) {
30
+ return localeContext('router.domain.validate.emptyTip');
31
+ }
32
+ if (domain.endsWith(_constant.DEFAULT_IP_DOMAIN_SUFFIX)) {
33
+ return localeContext('router.domain.validate.suffixTip', {
34
+ suffix: _constant.DEFAULT_IP_DOMAIN_SUFFIX
35
+ });
36
+ }
37
+ return null;
38
+ };
39
+
40
+ /**
41
+ * form validator of add site(add domain)
42
+ * @param {Object} params form params
43
+ * @param {Function} localeContext error message
44
+ */
45
+ exports.validateDomain = validateDomain;
46
+ const validateSite = (params, localeContext) => {
47
+ const validateResult = validateRuleByServiceType(params, localeContext);
48
+ if (validateResult) {
49
+ return validateResult;
50
+ }
51
+ const errMsg = validateDomain(params.domain, localeContext);
52
+ if (errMsg) {
53
+ return new Error(errMsg);
54
+ }
55
+ return null;
56
+ };
57
+
58
+ /**
59
+ * form validator of add_rule and update_rule
60
+ * @param {Object} params form params
61
+ * @param {Function} localeContext error message
62
+ */
63
+ exports.validateSite = validateSite;
64
+ const validateRule = (params, localeContext) => {
65
+ const validateResult = validateRuleByServiceType(params, localeContext);
66
+ if (validateResult) {
67
+ return validateResult;
68
+ }
69
+ if (!params.pathPrefix.length) {
70
+ return new Error(localeContext('router.validation.pathPrefixCannotBeEmpty'));
71
+ }
72
+ if (params.pathPrefix.length > 150) {
73
+ return new Error(localeContext('router.validation.pathPrefixTooLong', {
74
+ length: 150
75
+ }));
76
+ }
77
+ return null;
78
+ };
79
+ exports.validateRule = validateRule;
80
+ const validatePathPrefix = _ref => {
81
+ let {
82
+ params,
83
+ blocklets,
84
+ blocklet: curBlocklet,
85
+ locale = 'en'
86
+ } = _ref;
87
+ // validate children
88
+ if (curBlocklet) {
89
+ let exist = (curBlocklet.children || []).find(x => (0, _isPathPrefixEqual.default)(x.mountPoint, params.pathPrefix));
90
+ if (curBlocklet.meta.group !== 'gateway' && params.pathPrefix === '/') {
91
+ exist = '/';
92
+ }
93
+ if (exist) {
94
+ return {
95
+ zh: "\u6302\u8F7D\u70B9 ".concat(params.pathPrefix, " \u5DF2\u5B58\u5728\uFF0C\u8BF7\u4F7F\u7528\u5176\u4ED6\u6302\u8F7D\u70B9"),
96
+ en: "The mount point ".concat(params.pathPrefix, " already exist, please use another mount point")
97
+ }[locale];
98
+ }
99
+ }
100
+ const blocklet = blocklets.find(item => item.meta.did === params.did);
101
+ if (!blocklet) {
102
+ return '';
103
+ }
104
+ const selected = blocklet.meta.interfaces.find(x => x.type === 'web');
105
+ if (!selected) {
106
+ return '';
107
+ }
108
+ if (selected.prefix !== _constant2.BLOCKLET_DYNAMIC_PATH_PREFIX && params.pathPrefix !== selected.prefix) {
109
+ return {
110
+ zh: "\u8BE5 blocklet \u53EA\u80FD\u6302\u8F7D\u5728 ".concat(selected.prefix),
111
+ en: "This blocklet can only be mounted on ".concat(selected.prefix)
112
+ }[locale];
113
+ }
114
+ return '';
115
+ };
116
+
117
+ /**
118
+ * get initial blocklet did when add rule / update rule / add domain
119
+ * @param {array} blocklets
120
+ */
121
+ exports.validatePathPrefix = validatePathPrefix;
122
+ const getInitialBlockletDid = blocklets => {
123
+ if (blocklets.length === 0) {
124
+ return '';
125
+ }
126
+ const {
127
+ searchParams
128
+ } = new URL(window.location.href);
129
+ const fromDid = searchParams.get('fromDid');
130
+ if (fromDid) {
131
+ const blocklet = blocklets.find(x => x.meta.did === fromDid);
132
+ if (blocklet) {
133
+ return blocklet.meta.did;
134
+ }
135
+ }
136
+ return blocklets[0].meta.did;
137
+ };
138
+ exports.getInitialBlockletDid = getInitialBlockletDid;
139
+ const isSpecialDomain = name => {
140
+ const specialDomains = [_constant.DOMAIN_FOR_IP_SITE_REGEXP, _constant.DOMAIN_FOR_DEFAULT_SITE, _constant.DOMAIN_FOR_IP_SITE];
141
+ if (typeof window !== 'undefined' && typeof window.location !== 'undefined') {
142
+ specialDomains.push(window.location.hostname);
143
+ }
144
+ return specialDomains.includes(name);
145
+ };
146
+ exports.isSpecialDomain = isSpecialDomain;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DomainType = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ // eslint-disable-next-line import/prefer-default-export
10
+ const DomainType = _propTypes.default.shape({
11
+ href: _propTypes.default.string,
12
+ accessibility: _propTypes.default.shape({
13
+ loading: _propTypes.default.bool,
14
+ accessible: _propTypes.default.bool
15
+ }),
16
+ domainStatus: _propTypes.default.shape({
17
+ isHttps: _propTypes.default.bool,
18
+ matchedCert: _propTypes.default.object
19
+ }),
20
+ dns: _propTypes.default.shape({
21
+ resolved: _propTypes.default.bool,
22
+ ip: _propTypes.default.string
23
+ })
24
+ });
25
+ exports.DomainType = DomainType;
@@ -4,18 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.downloadExportedSource = downloadExportedSource;
7
+ exports.fixBlocklet = exports.ensureDomainAliases = void 0;
7
8
  exports.genExportedMeta = genExportedMeta;
8
9
  exports.getLaunchURL = exports.getLaunchAgreementUrl = void 0;
9
10
  exports.getNameByTitle = getNameByTitle;
10
11
  exports.getServerUrl = void 0;
11
12
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
12
13
  var _pickBy = _interopRequireDefault(require("lodash/pickBy"));
14
+ var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
13
15
  var _jszip = _interopRequireDefault(require("jszip"));
14
16
  var _jsYaml = _interopRequireDefault(require("js-yaml"));
15
17
  var _fileSaver = _interopRequireDefault(require("file-saver"));
16
18
  var _urlJoin = _interopRequireDefault(require("url-join"));
17
- var _did = _interopRequireDefault(require("@blocklet/meta/lib/did"));
18
19
  var _didMotif = require("@arcblock/did-motif");
20
+ var _normalizePathPrefix = _interopRequireDefault(require("@abtnode/util/lib/normalize-path-prefix"));
21
+ var _did = _interopRequireDefault(require("@blocklet/meta/lib/did"));
22
+ var _util = require("@blocklet/meta/lib/util");
23
+ var _constant = require("@abtnode/constant");
19
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
25
  const base64ToArrayBuffer = base64 => {
21
26
  const bufStr = window.atob(base64);
@@ -122,4 +127,84 @@ const getLaunchAgreementUrl = (meta, info) => {
122
127
  url.searchParams.set('from', window.location.href);
123
128
  return url.href;
124
129
  };
125
- exports.getLaunchAgreementUrl = getLaunchAgreementUrl;
130
+ exports.getLaunchAgreementUrl = getLaunchAgreementUrl;
131
+ const ensureDomainAliases = async function ensureDomainAliases(domainAliases) {
132
+ let {
133
+ getIP
134
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
135
+ if (!domainAliases || !domainAliases.length) {
136
+ return [];
137
+ }
138
+ if (!getIP) {
139
+ return domainAliases;
140
+ }
141
+ if (!domainAliases.some(x => x.value.includes(_constant.SLOT_FOR_IP_DNS_SITE))) {
142
+ return domainAliases;
143
+ }
144
+ const ip = await getIP();
145
+ if (!ip) {
146
+ return domainAliases;
147
+ }
148
+ return domainAliases.map(x => {
149
+ try {
150
+ x.value = (0, _util.replaceSlotToIp)(x.value, ip);
151
+ return x;
152
+ } catch (_unused) {
153
+ return x;
154
+ }
155
+ }).filter(Boolean);
156
+ };
157
+
158
+ /**
159
+ * @param {object} blocklet
160
+ * @param {{
161
+ * fixRuntime:boolean|string // true, 'merge-old'
162
+ * oldBlocklet: object
163
+ * getIP: function
164
+ * }}
165
+ */
166
+ exports.ensureDomainAliases = ensureDomainAliases;
167
+ const fixBlocklet = async function fixBlocklet(blocklet) {
168
+ let {
169
+ fixRuntime = true,
170
+ oldBlocklet,
171
+ getIP
172
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
173
+ blocklet.site.rules.forEach(rule => {
174
+ rule.from.pathPrefix = (0, _normalizePathPrefix.default)(rule.from.pathPrefix || '/');
175
+ });
176
+ blocklet.site.rules = (0, _sortBy.default)(blocklet.site.rules, i => i.from.pathPrefix);
177
+ if (fixRuntime === true) {
178
+ blocklet.site.domainAliases = await ensureDomainAliases(blocklet.site.domainAliases, {
179
+ getIP
180
+ });
181
+ (0, _util.forEachBlockletSync)(blocklet, b => {
182
+ if (b.runtimeInfo) {
183
+ b.runtimeInfo.startAt = new Date() - b.runtimeInfo.uptime;
184
+ }
185
+ });
186
+ } else if (fixRuntime === 'merge-old' && oldBlocklet) {
187
+ blocklet.site.domainAliases = oldBlocklet.site.domainAliases;
188
+ const oldComponents = {};
189
+ (0, _util.forEachBlockletSync)(oldBlocklet, (component, _ref) => {
190
+ let {
191
+ id
192
+ } = _ref;
193
+ oldComponents[id] = component;
194
+ });
195
+ (0, _util.forEachBlockletSync)(blocklet, (component, _ref2) => {
196
+ let {
197
+ id
198
+ } = _ref2;
199
+ const oldComponent = oldComponents[id];
200
+ if (oldComponent) {
201
+ component.runtimeInfo = oldComponent.runtimeInfo;
202
+ component.diskInfo = oldComponent.diskInfo;
203
+ component.engine = oldComponent.engine;
204
+ }
205
+ });
206
+ } else {
207
+ blocklet.site.domainAliases = [];
208
+ }
209
+ };
210
+ exports.fixBlocklet = fixBlocklet;
@@ -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.prefix, "/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,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BlockletProvider = exports.BlockletContext = exports.BlockletConsumer = void 0;
7
+ exports.useBlockletContext = useBlockletContext;
8
+ var _react = require("react");
9
+ const BlockletContext = /*#__PURE__*/(0, _react.createContext)({});
10
+ exports.BlockletContext = BlockletContext;
11
+ const {
12
+ Provider,
13
+ Consumer
14
+ } = BlockletContext;
15
+ exports.BlockletConsumer = Consumer;
16
+ exports.BlockletProvider = Provider;
17
+ function useBlockletContext() {
18
+ return (0, _react.useContext)(BlockletContext);
19
+ }