@blocklet/ui-react 2.5.58 → 2.5.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Dashboard/index.js +31 -57
- package/lib/Footer/brand.js +8 -23
- package/lib/Footer/copyright.js +7 -20
- package/lib/Footer/index.js +10 -38
- package/lib/Footer/internal-footer.js +12 -42
- package/lib/Footer/layout/plain.js +10 -26
- package/lib/Footer/layout/row.js +7 -23
- package/lib/Footer/layout/standard.js +10 -27
- package/lib/Footer/links.js +14 -37
- package/lib/Footer/social-media.js +6 -22
- package/lib/Header/index.js +11 -55
- package/lib/Icon/index.js +15 -35
- package/lib/blocklets.js +23 -61
- package/lib/common/header-addons.js +11 -34
- package/lib/common/link-blocker.js +4 -12
- package/lib/common/overridable-theme-provider.js +1 -7
- package/lib/common/wallet-hidden-topbar.js +0 -6
- package/lib/types.js +1 -6
- package/lib/utils.js +16 -36
- package/package.json +4 -4
package/lib/Dashboard/index.js
CHANGED
|
@@ -4,60 +4,42 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _Session = require("@arcblock/did-connect/lib/Session");
|
|
13
|
-
|
|
14
10
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
15
|
-
|
|
16
11
|
var _dashboard = _interopRequireDefault(require("@arcblock/ux/lib/Layout/dashboard"));
|
|
17
|
-
|
|
18
12
|
var _types = require("../types");
|
|
19
|
-
|
|
20
13
|
var _utils = require("../utils");
|
|
21
|
-
|
|
22
14
|
var _blocklets = require("../blocklets");
|
|
23
|
-
|
|
24
15
|
var _headerAddons2 = _interopRequireDefault(require("../common/header-addons"));
|
|
25
|
-
|
|
26
16
|
var _walletHiddenTopbar = require("../common/wallet-hidden-topbar");
|
|
27
|
-
|
|
28
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
-
|
|
30
18
|
const _excluded = ["meta", "fallbackUrl", "invalidPathFallback", "headerAddons", "sessionManagerProps", "links"];
|
|
31
|
-
|
|
19
|
+
/* eslint-disable no-shadow */
|
|
20
|
+
/**
|
|
21
|
+
* 专门用于 (composable) blocklet 的 Dashboard 组件, 解析 blocklet meta 中 section 为 dashboard 的 navigation 数据, 渲染一个 UX Dashboard
|
|
22
|
+
*/
|
|
23
|
+
// eslint-disable-next-line no-shadow
|
|
32
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
25
|
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; }
|
|
35
|
-
|
|
36
26
|
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; }
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
27
|
+
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; }
|
|
28
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
29
|
+
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); }
|
|
40
30
|
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; }
|
|
41
|
-
|
|
42
31
|
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; }
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* 专门用于 (composable) blocklet 的 Dashboard 组件, 解析 blocklet meta 中 section 为 dashboard 的 navigation 数据, 渲染一个 UX Dashboard
|
|
46
|
-
*/
|
|
47
|
-
// eslint-disable-next-line no-shadow
|
|
48
32
|
function Dashboard(_ref) {
|
|
49
33
|
var _sessionCtx$session;
|
|
50
|
-
|
|
51
34
|
let {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
35
|
+
meta,
|
|
36
|
+
fallbackUrl,
|
|
37
|
+
invalidPathFallback,
|
|
38
|
+
headerAddons,
|
|
39
|
+
sessionManagerProps,
|
|
40
|
+
links
|
|
41
|
+
} = _ref,
|
|
42
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
61
43
|
(0, _walletHiddenTopbar.useWalletHiddenTopbar)();
|
|
62
44
|
const sessionCtx = (0, _react.useContext)(_Session.SessionContext);
|
|
63
45
|
const user = sessionCtx === null || sessionCtx === void 0 ? void 0 : (_sessionCtx$session = sessionCtx.session) === null || _sessionCtx$session === void 0 ? void 0 : _sessionCtx$session.user;
|
|
@@ -67,7 +49,6 @@ function Dashboard(_ref) {
|
|
|
67
49
|
} = (0, _context.useLocaleContext)() || {};
|
|
68
50
|
const formattedBlocklet = (0, _react.useMemo)(() => {
|
|
69
51
|
const blocklet = Object.assign({}, window.blocklet, meta);
|
|
70
|
-
|
|
71
52
|
try {
|
|
72
53
|
return (0, _blocklets.formatBlockletInfo)(blocklet);
|
|
73
54
|
} catch (e) {
|
|
@@ -81,11 +62,10 @@ function Dashboard(_ref) {
|
|
|
81
62
|
matchedIndex
|
|
82
63
|
} = (0, _react.useMemo)(() => {
|
|
83
64
|
var _formattedBlocklet$na;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
65
|
+
let localizedNav = (0, _blocklets.getLocalizedNavigation)(formattedBlocklet === null || formattedBlocklet === void 0 ? void 0 : (_formattedBlocklet$na = formattedBlocklet.navigation) === null || _formattedBlocklet$na === void 0 ? void 0 : _formattedBlocklet$na.dashboard, locale) || [];
|
|
66
|
+
// 根据 role 筛选 nav 数据
|
|
67
|
+
localizedNav = (0, _blocklets.filterNavByRole)(localizedNav, userRole);
|
|
68
|
+
// 将 nav 数据处理成 ux dashboard 需要的格式
|
|
89
69
|
localizedNav = (0, _utils.mapRecursive)(localizedNav, item => ({
|
|
90
70
|
title: item.title,
|
|
91
71
|
url: item.link,
|
|
@@ -96,60 +76,55 @@ function Dashboard(_ref) {
|
|
|
96
76
|
// https://github.com/ArcBlock/ux/issues/755#issuecomment-1208692620
|
|
97
77
|
external: true,
|
|
98
78
|
children: item.items
|
|
99
|
-
}), 'items');
|
|
100
|
-
|
|
79
|
+
}), 'items');
|
|
80
|
+
// 展平后使用 matchPaths 检测 link#active 状态
|
|
101
81
|
const flattened = (0, _utils.flatRecursive)(localizedNav).filter(item => !!item.url);
|
|
102
82
|
const matchedIndex = (0, _utils.matchPaths)(flattened.map(item => item.url));
|
|
103
|
-
|
|
104
83
|
if (matchedIndex !== -1) {
|
|
105
84
|
flattened[matchedIndex].active = true;
|
|
106
85
|
}
|
|
107
|
-
|
|
108
86
|
return {
|
|
109
87
|
localizedNav,
|
|
110
88
|
flattened,
|
|
111
89
|
matchedIndex
|
|
112
90
|
};
|
|
113
91
|
}, [formattedBlocklet, locale, userRole]);
|
|
114
|
-
const allLinks = typeof links === 'function' ? links(localizedNav) : [...localizedNav, ...links];
|
|
115
|
-
// 未认证 (user 为空) 时不做处理, 这种情况的页面跳转逻辑一般由应用自行处理
|
|
92
|
+
const allLinks = typeof links === 'function' ? links(localizedNav) : [...localizedNav, ...links];
|
|
116
93
|
|
|
94
|
+
// 页面初始化时, 如果当前用户没有权限访问任何导航菜单 (比如登录时未提供 VC 导致无权限), 则跳转到 fallbackUrl
|
|
95
|
+
// 未认证 (user 为空) 时不做处理, 这种情况的页面跳转逻辑一般由应用自行处理
|
|
117
96
|
(0, _react.useLayoutEffect)(() => {
|
|
118
97
|
if (!!user && !(flattened !== null && flattened !== void 0 && flattened.length) && fallbackUrl) {
|
|
119
98
|
window.location.href = fallbackUrl;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
}, [fallbackUrl]);
|
|
99
|
+
}
|
|
100
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
101
|
+
}, [fallbackUrl]);
|
|
123
102
|
|
|
103
|
+
// 导航菜单变动且存在可用菜单但无匹配项时 (如切换 passport), 跳转到首个菜单项
|
|
124
104
|
(0, _react.useLayoutEffect)(() => {
|
|
125
105
|
if (!!user && !!(flattened !== null && flattened !== void 0 && flattened.length) && matchedIndex === -1) {
|
|
126
106
|
if (invalidPathFallback) {
|
|
127
107
|
invalidPathFallback();
|
|
128
108
|
} else {
|
|
129
109
|
var _flattened$;
|
|
130
|
-
|
|
131
110
|
window.location.href = ((_flattened$ = flattened[0]) === null || _flattened$ === void 0 ? void 0 : _flattened$.url) || _blocklets.publicPath;
|
|
132
111
|
}
|
|
133
|
-
}
|
|
134
|
-
|
|
112
|
+
}
|
|
113
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
135
114
|
}, [invalidPathFallback, flattened, matchedIndex]);
|
|
136
|
-
|
|
137
115
|
if (!formattedBlocklet.appName) {
|
|
138
116
|
return null;
|
|
139
117
|
}
|
|
140
|
-
|
|
141
118
|
const {
|
|
142
119
|
appLogo,
|
|
143
120
|
appLogoRect,
|
|
144
121
|
appName
|
|
145
122
|
} = formattedBlocklet;
|
|
146
|
-
|
|
147
123
|
const _headerAddons = /*#__PURE__*/(0, _jsxRuntime.jsx)(_headerAddons2.default, {
|
|
148
124
|
formattedBlocklet: formattedBlocklet,
|
|
149
125
|
addons: headerAddons,
|
|
150
126
|
sessionManagerProps: sessionManagerProps
|
|
151
127
|
});
|
|
152
|
-
|
|
153
128
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_dashboard.default, _objectSpread(_objectSpread({
|
|
154
129
|
title: appName,
|
|
155
130
|
fullWidth: true,
|
|
@@ -167,7 +142,6 @@ function Dashboard(_ref) {
|
|
|
167
142
|
}, rest.headerProps)
|
|
168
143
|
}));
|
|
169
144
|
}
|
|
170
|
-
|
|
171
145
|
Dashboard.propTypes = {
|
|
172
146
|
meta: _types.blockletMetaProps,
|
|
173
147
|
// 如果当前用户没有权限访问任何导航菜单, 则自动跳转到 fallbackUrl, 默认值为 publicPath, 设置为 null 表示禁用自动跳转
|
package/lib/Footer/brand.js
CHANGED
|
@@ -4,45 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = Brand;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _Theme = require("@arcblock/ux/lib/Theme");
|
|
13
|
-
|
|
14
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
-
|
|
16
11
|
var _templateObject;
|
|
17
|
-
|
|
18
12
|
const _excluded = ["name", "logo", "description"];
|
|
19
|
-
|
|
20
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
14
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
23
|
-
|
|
24
15
|
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; }
|
|
25
|
-
|
|
26
16
|
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; }
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
17
|
+
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; }
|
|
18
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
19
|
+
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); }
|
|
30
20
|
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
|
-
|
|
32
21
|
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
|
-
|
|
34
22
|
function Brand(_ref) {
|
|
35
23
|
let {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
24
|
+
name,
|
|
25
|
+
logo,
|
|
26
|
+
description
|
|
27
|
+
} = _ref,
|
|
28
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
42
29
|
if (!name && !logo && !description) {
|
|
43
30
|
return null;
|
|
44
31
|
}
|
|
45
|
-
|
|
46
32
|
const logoElement = /*#__PURE__*/(0, _react.isValidElement)(logo) ? logo : /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
|
47
33
|
src: logo,
|
|
48
34
|
alt: name
|
|
@@ -62,7 +48,6 @@ function Brand(_ref) {
|
|
|
62
48
|
})]
|
|
63
49
|
}));
|
|
64
50
|
}
|
|
65
|
-
|
|
66
51
|
Brand.propTypes = {
|
|
67
52
|
name: _propTypes.default.node,
|
|
68
53
|
logo: _propTypes.default.node,
|
package/lib/Footer/copyright.js
CHANGED
|
@@ -4,43 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = Copyright;
|
|
7
|
-
|
|
8
7
|
var _Theme = require("@arcblock/ux/lib/Theme");
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
|
|
14
10
|
var _templateObject;
|
|
15
|
-
|
|
16
11
|
const _excluded = ["owner", "year"];
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
21
|
-
|
|
22
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; }
|
|
23
|
-
|
|
24
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; }
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
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); }
|
|
28
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; }
|
|
29
|
-
|
|
30
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; }
|
|
31
|
-
|
|
32
21
|
function Copyright(_ref) {
|
|
33
22
|
let {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
23
|
+
owner,
|
|
24
|
+
year
|
|
25
|
+
} = _ref,
|
|
26
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
39
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Root, _objectSpread(_objectSpread({}, rest), {}, {
|
|
40
28
|
children: ["Copyright \xA9 ", year, " ", owner]
|
|
41
29
|
}));
|
|
42
30
|
}
|
|
43
|
-
|
|
44
31
|
Copyright.propTypes = {
|
|
45
32
|
owner: _propTypes.default.string,
|
|
46
33
|
year: _propTypes.default.string
|
package/lib/Footer/index.js
CHANGED
|
@@ -4,67 +4,44 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _Theme = require("@arcblock/ux/lib/Theme");
|
|
13
|
-
|
|
14
10
|
var _reactErrorBoundary = require("react-error-boundary");
|
|
15
|
-
|
|
16
11
|
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
17
|
-
|
|
18
12
|
var _ErrorBoundary = require("@arcblock/ux/lib/ErrorBoundary");
|
|
19
|
-
|
|
20
13
|
var _overridableThemeProvider = _interopRequireDefault(require("../common/overridable-theme-provider"));
|
|
21
|
-
|
|
22
14
|
var _internalFooter = _interopRequireDefault(require("./internal-footer"));
|
|
23
|
-
|
|
24
15
|
var _utils = require("../utils");
|
|
25
|
-
|
|
26
16
|
var _blocklets = require("../blocklets");
|
|
27
|
-
|
|
28
17
|
var _types = require("../types");
|
|
29
|
-
|
|
30
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
31
|
-
|
|
32
19
|
var _templateObject;
|
|
33
|
-
|
|
34
20
|
const _excluded = ["meta", "theme"];
|
|
35
|
-
|
|
21
|
+
/**
|
|
22
|
+
* 专门用于 (composable) blocklet 的 Footer 组件, 基于 blocklet meta 中的数据渲染
|
|
23
|
+
*/
|
|
36
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
|
-
|
|
38
25
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
39
|
-
|
|
40
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; }
|
|
41
|
-
|
|
42
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; }
|
|
43
|
-
|
|
44
|
-
function
|
|
45
|
-
|
|
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); }
|
|
46
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; }
|
|
47
|
-
|
|
48
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; }
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* 专门用于 (composable) blocklet 的 Footer 组件, 基于 blocklet meta 中的数据渲染
|
|
52
|
-
*/
|
|
53
33
|
function Footer(_ref) {
|
|
54
34
|
var _formattedBlocklet$na, _formattedBlocklet$na2, _formattedBlocklet$na3, _theme$background;
|
|
55
|
-
|
|
56
35
|
let {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
36
|
+
meta,
|
|
37
|
+
theme: themeOverrides
|
|
38
|
+
} = _ref,
|
|
39
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
62
40
|
const {
|
|
63
41
|
locale
|
|
64
42
|
} = (0, _context.useLocaleContext)() || {};
|
|
65
43
|
const formattedBlocklet = (0, _react.useMemo)(() => {
|
|
66
44
|
const blocklet = Object.assign({}, window.blocklet, meta);
|
|
67
|
-
|
|
68
45
|
try {
|
|
69
46
|
return (0, _blocklets.formatBlockletInfo)(blocklet);
|
|
70
47
|
} catch (e) {
|
|
@@ -72,11 +49,9 @@ function Footer(_ref) {
|
|
|
72
49
|
return blocklet;
|
|
73
50
|
}
|
|
74
51
|
}, [meta]);
|
|
75
|
-
|
|
76
52
|
if (!formattedBlocklet.appName) {
|
|
77
53
|
return null;
|
|
78
54
|
}
|
|
79
|
-
|
|
80
55
|
const {
|
|
81
56
|
appLogo,
|
|
82
57
|
appLogoRect,
|
|
@@ -114,7 +89,6 @@ function Footer(_ref) {
|
|
|
114
89
|
}))
|
|
115
90
|
});
|
|
116
91
|
}
|
|
117
|
-
|
|
118
92
|
Footer.propTypes = {
|
|
119
93
|
meta: _types.blockletMetaProps,
|
|
120
94
|
// 允许覆盖 footer 内置的 theme
|
|
@@ -130,9 +104,7 @@ const StyledInternalFooter = (0, _Theme.styled)(_internalFooter.default)(_templa
|
|
|
130
104
|
} = _ref2;
|
|
131
105
|
return $bgcolor && "background-color: ".concat($bgcolor, ";");
|
|
132
106
|
});
|
|
133
|
-
|
|
134
107
|
var _default = (0, _reactErrorBoundary.withErrorBoundary)(Footer, {
|
|
135
108
|
FallbackComponent: _ErrorBoundary.ErrorFallback
|
|
136
109
|
});
|
|
137
|
-
|
|
138
110
|
exports.default = _default;
|
|
@@ -4,45 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
|
|
10
8
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
11
|
-
|
|
12
9
|
var _brand = _interopRequireDefault(require("./brand"));
|
|
13
|
-
|
|
14
10
|
var _links = _interopRequireDefault(require("./links"));
|
|
15
|
-
|
|
16
11
|
var _socialMedia = _interopRequireDefault(require("./social-media"));
|
|
17
|
-
|
|
18
12
|
var _copyright = _interopRequireDefault(require("./copyright"));
|
|
19
|
-
|
|
20
13
|
var _standard = _interopRequireDefault(require("./layout/standard"));
|
|
21
|
-
|
|
22
14
|
var _plain = _interopRequireDefault(require("./layout/plain"));
|
|
23
|
-
|
|
24
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
|
-
|
|
26
16
|
const _excluded = ["brand", "navigation", "socialMedia", "copyright", "links", "layout"];
|
|
27
|
-
|
|
28
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
-
|
|
30
18
|
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
|
-
|
|
32
19
|
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
|
-
|
|
34
20
|
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; }
|
|
35
|
-
|
|
36
21
|
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; }
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
22
|
+
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; }
|
|
23
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
24
|
+
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); }
|
|
40
25
|
const layouts = [{
|
|
41
26
|
name: 'plain',
|
|
42
27
|
// navigation 数据为空时, 使用简单布局
|
|
43
28
|
support: (_, data) => {
|
|
44
29
|
var _data$navigation, _data$socialMedia;
|
|
45
|
-
|
|
46
30
|
return !((_data$navigation = data.navigation) !== null && _data$navigation !== void 0 && _data$navigation.length) && !((_data$socialMedia = data.socialMedia) !== null && _data$socialMedia !== void 0 && _data$socialMedia.length);
|
|
47
31
|
},
|
|
48
32
|
component: _plain.default
|
|
@@ -55,60 +39,51 @@ const layouts = [{
|
|
|
55
39
|
const layoutsKeyByName = layouts.reduce((acc, cur) => _objectSpread(_objectSpread({}, acc), {}, {
|
|
56
40
|
[cur.name]: cur
|
|
57
41
|
}), {});
|
|
42
|
+
|
|
58
43
|
/**
|
|
59
44
|
* 通用的内部 footer 组件, 定义并渲染常见的几种 footer 元素: brand/navigation/social medial 等
|
|
60
45
|
*/
|
|
61
|
-
|
|
62
46
|
function InternalFooter(props) {
|
|
63
47
|
var _window, _window$blocklet;
|
|
64
|
-
|
|
65
48
|
const {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
49
|
+
brand,
|
|
50
|
+
navigation,
|
|
51
|
+
socialMedia,
|
|
52
|
+
copyright,
|
|
53
|
+
links,
|
|
54
|
+
layout
|
|
55
|
+
} = props,
|
|
56
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
75
57
|
const renderBrand = () => {
|
|
76
58
|
return brand ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_brand.default, _objectSpread({}, brand)) : null;
|
|
77
59
|
};
|
|
78
|
-
|
|
79
60
|
const renderNavigation = () => {
|
|
80
61
|
return navigation !== null && navigation !== void 0 && navigation.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_links.default, {
|
|
81
62
|
links: navigation
|
|
82
63
|
}) : null;
|
|
83
64
|
};
|
|
84
|
-
|
|
85
65
|
const renderSocialMedia = () => {
|
|
86
66
|
return socialMedia !== null && socialMedia !== void 0 && socialMedia.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_socialMedia.default, {
|
|
87
67
|
items: socialMedia
|
|
88
68
|
}) : null;
|
|
89
69
|
};
|
|
90
|
-
|
|
91
70
|
const renderCopyright = () => {
|
|
92
71
|
// 如果 copyright.owner 不存在, 则使用 brand.name, 如果 brand.name 也不存在, copyright 元素为空
|
|
93
72
|
const copyrightOwner = (copyright === null || copyright === void 0 ? void 0 : copyright.owner) || (brand === null || brand === void 0 ? void 0 : brand.name);
|
|
94
|
-
|
|
95
73
|
if (!copyrightOwner) {
|
|
96
74
|
return null;
|
|
97
75
|
}
|
|
98
|
-
|
|
99
76
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_copyright.default, {
|
|
100
77
|
owner: copyrightOwner,
|
|
101
78
|
year: (copyright === null || copyright === void 0 ? void 0 : copyright.year) || undefined
|
|
102
79
|
});
|
|
103
80
|
};
|
|
104
|
-
|
|
105
81
|
const renderLinks = () => {
|
|
106
82
|
return links !== null && links !== void 0 && links.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_links.default, {
|
|
107
83
|
flowLayout: true,
|
|
108
84
|
links: links
|
|
109
85
|
}) : null;
|
|
110
86
|
};
|
|
111
|
-
|
|
112
87
|
const elements = {
|
|
113
88
|
brand: renderBrand(),
|
|
114
89
|
navigation: renderNavigation(),
|
|
@@ -117,19 +92,15 @@ function InternalFooter(props) {
|
|
|
117
92
|
links: renderLinks()
|
|
118
93
|
};
|
|
119
94
|
let LayoutComponent = null;
|
|
120
|
-
|
|
121
95
|
if (layout === 'auto') {
|
|
122
96
|
LayoutComponent = layouts.find(item => item.support(elements, props)).component;
|
|
123
97
|
} else {
|
|
124
98
|
var _layoutsKeyByName$lay;
|
|
125
|
-
|
|
126
99
|
LayoutComponent = (_layoutsKeyByName$lay = layoutsKeyByName[layout]) === null || _layoutsKeyByName$lay === void 0 ? void 0 : _layoutsKeyByName$lay.component;
|
|
127
100
|
}
|
|
128
|
-
|
|
129
101
|
if (!LayoutComponent) {
|
|
130
102
|
throw new Error("layout ".concat(layout, " is not supported."));
|
|
131
103
|
}
|
|
132
|
-
|
|
133
104
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, _objectSpread(_objectSpread({
|
|
134
105
|
position: "relative"
|
|
135
106
|
}, rest), {}, {
|
|
@@ -152,7 +123,6 @@ function InternalFooter(props) {
|
|
|
152
123
|
})]
|
|
153
124
|
}));
|
|
154
125
|
}
|
|
155
|
-
|
|
156
126
|
InternalFooter.propTypes = {
|
|
157
127
|
brand: _propTypes.default.shape({
|
|
158
128
|
name: _propTypes.default.node,
|
|
@@ -4,47 +4,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _Container = _interopRequireDefault(require("@mui/material/Container"));
|
|
13
|
-
|
|
14
10
|
var _Theme = require("@arcblock/ux/lib/Theme");
|
|
15
|
-
|
|
16
11
|
var _row = _interopRequireDefault(require("./row"));
|
|
17
|
-
|
|
18
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
-
|
|
20
13
|
var _templateObject;
|
|
21
|
-
|
|
22
14
|
const _excluded = ["elements", "data"];
|
|
23
|
-
|
|
15
|
+
/**
|
|
16
|
+
* footer plain layout
|
|
17
|
+
*/
|
|
24
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
19
|
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
27
|
-
|
|
28
20
|
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; }
|
|
29
|
-
|
|
30
21
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
22
|
+
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; }
|
|
23
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
24
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
34
25
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
35
|
-
|
|
36
26
|
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; }
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* footer plain layout
|
|
40
|
-
*/
|
|
41
27
|
function PlainLayout(_ref) {
|
|
42
28
|
let {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
29
|
+
elements,
|
|
30
|
+
data
|
|
31
|
+
} = _ref,
|
|
32
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
48
33
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, _objectSpread(_objectSpread({}, rest), {}, {
|
|
49
34
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Container.default, {
|
|
50
35
|
className: "plain-layout-container",
|
|
@@ -63,7 +48,6 @@ function PlainLayout(_ref) {
|
|
|
63
48
|
})
|
|
64
49
|
}));
|
|
65
50
|
}
|
|
66
|
-
|
|
67
51
|
PlainLayout.propTypes = {
|
|
68
52
|
elements: _propTypes.default.shape({
|
|
69
53
|
brand: _propTypes.default.element,
|