@antv/dumi-theme-antv 0.6.4-beta.3 → 0.6.4-beta.4
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/dist/builtins/Playground/index.js +1 -1
- package/dist/common/ClientOnly.js +21 -0
- package/dist/common/CommonHelmet.js +85 -0
- package/dist/common/InViewSuspense.js +29 -0
- package/dist/hooks/useLocale.js +11 -0
- package/dist/hooks/useMenu.js +68 -73
- package/dist/layouts/DocLayout.js +32 -23
- package/dist/layouts/IndexLayout/index.js +16 -0
- package/dist/layouts/{entry/Manual.js → ManualLayout/index.js} +6 -6
- package/dist/pages/404.js +5 -4
- package/dist/pages/Example/index.js +76 -53
- package/dist/pages/Examples/components/ExampleTopicMenu/index.js +3 -2
- package/dist/pages/Examples/index.js +28 -32
- package/dist/{slots → pages/Index/components}/Cases/index.js +1 -1
- package/dist/{slots → pages/Index/components}/Detail/News.js +1 -1
- package/dist/{slots → pages/Index/components}/Detail/index.js +1 -1
- package/dist/{slots → pages/Index/components}/Features/FeatureCard.js +1 -1
- package/dist/{slots → pages/Index/components}/Features/index.js +1 -1
- package/dist/pages/Index/components/_.less +119 -0
- package/dist/{layouts/entry/Index.js → pages/Index/index.js} +18 -22
- package/dist/plugin/index.js +52 -43
- package/dist/slots/CodeEditor/index.js +4 -3
- package/dist/slots/CodePreview/CodeHeader.js +3 -2
- package/dist/slots/CodePreview/index.js +3 -2
- package/dist/slots/CodeRunner/index.js +34 -29
- package/dist/slots/ExampleSider/index.js +3 -2
- package/dist/slots/Feedback/Contributors.js +3 -2
- package/dist/slots/Feedback/EditButton.js +3 -2
- package/dist/slots/Feedback/PageFeedback.js +4 -3
- package/dist/slots/Feedback/SectionFeedback.js +3 -2
- package/dist/slots/Feedback/index.js +12 -10
- package/dist/slots/Footer/index.js +3 -2
- package/dist/slots/Header/Navs.js +66 -6
- package/dist/slots/Header/Search/index.js +1 -1
- package/dist/slots/Header/index.js +64 -105
- package/dist/slots/ManualContent/Main.js +16 -17
- package/dist/slots/ManualContent/NavigatorBanner.js +4 -2
- package/dist/slots/ManualContent/ObPreview.js +17 -0
- package/dist/slots/ManualContent/index.js +11 -4
- package/dist/slots/ManualContent/usePreview.js +6 -1
- package/dist/slots/ManualContent/utils.js +3 -13
- package/dist/slots/global.js +4 -4
- package/dist/slots/hooks.js +0 -25
- package/dist/slots/utils.js +0 -7
- package/dist/utils/env.js +10 -0
- package/dist/utils/location.js +6 -0
- package/dist/utils/user.js +13 -25
- package/package.json +5 -4
- package/dist/common/SEO.js +0 -61
- package/dist/layouts/entry/API.js +0 -12
- package/dist/pages/Example/utils.js +0 -9
- package/dist/slots/Article/index.js +0 -9
- package/dist/slots/Article/index.module.less +0 -8
- package/dist/slots/CodePreview/CodeHeader.module.less +0 -0
- package/dist/slots/Header/Products/NavigatorBanner.js +0 -29
- package/dist/slots/Header/Products/NavigatorBanner.module.less +0 -39
- /package/dist/{slots → pages/Index/components}/Cases/index.module.less +0 -0
- /package/dist/{slots → pages/Index/components}/Companies/index.js +0 -0
- /package/dist/{slots → pages/Index/components}/Companies/index.module.less +0 -0
- /package/dist/{slots → pages/Index/components}/Detail/News.module.less +0 -0
- /package/dist/{slots → pages/Index/components}/Detail/index.module.less +0 -0
- /package/dist/{slots → pages/Index/components}/Features/FeatureCard.module.less +0 -0
- /package/dist/{slots → pages/Index/components}/Features/index.module.less +0 -0
|
@@ -13,21 +13,22 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
13
13
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
14
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
15
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
-
import { CaretDownFilled,
|
|
16
|
+
import { CaretDownFilled, DownOutlined, GithubOutlined, LinkOutlined, MenuOutlined, WechatOutlined } from '@ant-design/icons';
|
|
17
17
|
import { Alert, Button, Dropdown, Menu, Modal, Popover, Select } from 'antd';
|
|
18
18
|
import cx from 'classnames';
|
|
19
|
-
import { FormattedMessage, useLocale, useSiteData } from 'dumi';
|
|
20
|
-
import { get,
|
|
21
|
-
import React, { useEffect,
|
|
22
|
-
import { useNavigate } from 'react-router-dom';
|
|
19
|
+
import { FormattedMessage, Link, useLocale, useSiteData } from 'dumi';
|
|
20
|
+
import { get, map, size } from 'lodash-es';
|
|
21
|
+
import React, { useEffect, useState } from 'react';
|
|
23
22
|
import { useMedia } from 'react-use';
|
|
24
|
-
import {
|
|
23
|
+
import { getPurePathname } from "../../utils/location";
|
|
24
|
+
import { ic, icWithLocale } from "../hooks";
|
|
25
25
|
import { Navs } from "./Navs";
|
|
26
26
|
import { Products } from "./Products";
|
|
27
27
|
import { Search } from "./Search";
|
|
28
|
-
import { findVersion
|
|
28
|
+
import { findVersion } from "./utils";
|
|
29
29
|
import { Assistant } from '@petercatai/assistant';
|
|
30
30
|
import '@petercatai/assistant/style';
|
|
31
|
+
import { useLocation } from 'react-router-dom';
|
|
31
32
|
import { determineUserType } from "../../utils/user";
|
|
32
33
|
import styles from "./index.module.less";
|
|
33
34
|
function redirectChinaMirror(chinaMirrorOrigin) {
|
|
@@ -39,6 +40,7 @@ var ANNOUNCEMENT_LOCALSTORAGE_ID = 'ANNOUNCEMENT_LOCALSTORAGE_ID';
|
|
|
39
40
|
* 头部菜单
|
|
40
41
|
*/
|
|
41
42
|
var HeaderComponent = function HeaderComponent(_ref) {
|
|
43
|
+
var _announcement$link;
|
|
42
44
|
var _ref$subTitle = _ref.subTitle,
|
|
43
45
|
subTitle = _ref$subTitle === void 0 ? '' : _ref$subTitle,
|
|
44
46
|
_ref$navs = _ref.navs,
|
|
@@ -82,6 +84,8 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
82
84
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
83
85
|
chinaMirrorHintVisible = _useState4[0],
|
|
84
86
|
updateChinaMirrorHintVisible = _useState4[1];
|
|
87
|
+
var locale = useLocale();
|
|
88
|
+
var lang = locale.id;
|
|
85
89
|
useEffect(function () {
|
|
86
90
|
var timeout = setTimeout(function () {
|
|
87
91
|
if (showChinaMirror && lang === 'zh' && !localStorage.getItem('china-mirror-no-more-hint') && window.location.host.includes('antv.vision')) {
|
|
@@ -92,18 +96,8 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
92
96
|
clearTimeout(timeout);
|
|
93
97
|
};
|
|
94
98
|
});
|
|
95
|
-
var
|
|
96
|
-
var
|
|
97
|
-
var _useState5 = useState(locale.id),
|
|
98
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
99
|
-
lang = _useState6[0],
|
|
100
|
-
setLang = _useState6[1];
|
|
101
|
-
var announcementTitle = useMemo(function () {
|
|
102
|
-
return get(announcement, ['title', lang]);
|
|
103
|
-
}, [announcement, lang]);
|
|
104
|
-
var announcementLinkTitle = useMemo(function () {
|
|
105
|
-
return get(announcement, ['link', 'text', lang]);
|
|
106
|
-
}, [announcement, lang]);
|
|
99
|
+
var announcementTitle = icWithLocale(announcement === null || announcement === void 0 ? void 0 : announcement.title, lang);
|
|
100
|
+
var announcementLinkTitle = icWithLocale(announcement === null || announcement === void 0 || (_announcement$link = announcement.link) === null || _announcement$link === void 0 ? void 0 : _announcement$link.text, lang);
|
|
107
101
|
useEffect(function () {
|
|
108
102
|
setBannerVisible(!!announcementTitle && localStorage.getItem(ANNOUNCEMENT_LOCALSTORAGE_ID) !== 'true');
|
|
109
103
|
}, [announcementTitle]);
|
|
@@ -111,10 +105,10 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
111
105
|
localStorage.setItem(ANNOUNCEMENT_LOCALSTORAGE_ID, 'true');
|
|
112
106
|
setBannerVisible(false);
|
|
113
107
|
}
|
|
114
|
-
var
|
|
115
|
-
|
|
116
|
-
productMenuVisible =
|
|
117
|
-
setProductMenuVisible =
|
|
108
|
+
var _useState5 = useState(false),
|
|
109
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
110
|
+
productMenuVisible = _useState6[0],
|
|
111
|
+
setProductMenuVisible = _useState6[1];
|
|
118
112
|
var productMenuHovering = false;
|
|
119
113
|
var onProductMouseEnter = function onProductMouseEnter(e) {
|
|
120
114
|
productMenuHovering = true;
|
|
@@ -138,10 +132,10 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
138
132
|
var onToggleProductMenuVisible = function onToggleProductMenuVisible() {
|
|
139
133
|
setProductMenuVisible(!productMenuVisible);
|
|
140
134
|
};
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
popupMenuVisible =
|
|
144
|
-
setPopupMenuVisible =
|
|
135
|
+
var _useState7 = useState(false),
|
|
136
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
137
|
+
popupMenuVisible = _useState8[0],
|
|
138
|
+
setPopupMenuVisible = _useState8[1];
|
|
145
139
|
var onTogglePopupMenuVisible = function onTogglePopupMenuVisible() {
|
|
146
140
|
setPopupMenuVisible(!popupMenuVisible);
|
|
147
141
|
};
|
|
@@ -154,11 +148,13 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
154
148
|
}, logo),
|
|
155
149
|
img = _img$link$logo.img,
|
|
156
150
|
link = _img$link$logo.link;
|
|
151
|
+
var _useLocation = useLocation(),
|
|
152
|
+
pathname = _useLocation.pathname;
|
|
157
153
|
useEffect(function () {
|
|
158
154
|
if (popupMenuVisible) {
|
|
159
155
|
setPopupMenuVisible(false);
|
|
160
156
|
}
|
|
161
|
-
}, [
|
|
157
|
+
}, [pathname]);
|
|
162
158
|
|
|
163
159
|
// 移动端下弹出菜单时,禁止页面滚动
|
|
164
160
|
useEffect(function () {
|
|
@@ -183,12 +179,15 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
183
179
|
} : {
|
|
184
180
|
onClick: onToggleProductMenuVisible
|
|
185
181
|
};
|
|
182
|
+
var handleSwitchLanguage = function handleSwitchLanguage() {
|
|
183
|
+
onLanguageChange === null || onLanguageChange === void 0 || onLanguageChange(lang);
|
|
184
|
+
};
|
|
186
185
|
var menu = /*#__PURE__*/React.createElement("ul", {
|
|
187
186
|
className: cx(styles.menu, _defineProperty(_defineProperty({}, styles.popup, !isWide), styles.popupHidden, !popupMenuVisible))
|
|
188
187
|
}, /** 最左侧的菜单,一般是 教程、API、示例,或者其他自定义,有配置文件中的 `navs` 决定 */
|
|
189
188
|
size(navs) ? /*#__PURE__*/React.createElement(Navs, {
|
|
190
189
|
navs: navs,
|
|
191
|
-
path:
|
|
190
|
+
path: pathname
|
|
192
191
|
}) : null, /** 生态产品 */
|
|
193
192
|
size(ecosystems) ? /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement(Dropdown, {
|
|
194
193
|
className: styles.ecoSystems,
|
|
@@ -242,7 +241,7 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
242
241
|
updateChinaMirrorHintVisible(false);
|
|
243
242
|
}
|
|
244
243
|
}, "\u4E0D\u518D\u63D0\u9192"))),
|
|
245
|
-
|
|
244
|
+
open: chinaMirrorHintVisible,
|
|
246
245
|
placement: "bottomRight",
|
|
247
246
|
align: {
|
|
248
247
|
offset: [-12, -16]
|
|
@@ -258,7 +257,7 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
258
257
|
marginLeft: '6px'
|
|
259
258
|
}
|
|
260
259
|
})))) : null, showChinaMirror && !isWide && /*#__PURE__*/React.createElement(Modal, {
|
|
261
|
-
|
|
260
|
+
open: chinaMirrorHintVisible,
|
|
262
261
|
cancelText: "\u4E0D\u518D\u63D0\u9192",
|
|
263
262
|
okText: "\u7ACB\u5373\u524D\u5F80",
|
|
264
263
|
onCancel: function onCancel() {
|
|
@@ -332,45 +331,9 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
332
331
|
}))), /** 切换网站语言 */
|
|
333
332
|
showLanguageSwitcher && /*#__PURE__*/React.createElement("li", {
|
|
334
333
|
className: cx(styles.navIcon, styles.languageSwitcher)
|
|
335
|
-
}, /*#__PURE__*/React.createElement(
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
defaultSelectedKeys: [lang],
|
|
339
|
-
selectable: true,
|
|
340
|
-
onSelect: function onSelect(_ref3) {
|
|
341
|
-
var key = _ref3.key;
|
|
342
|
-
if (key === lang) {
|
|
343
|
-
return;
|
|
344
|
-
}
|
|
345
|
-
setLang(key);
|
|
346
|
-
if (onLanguageChange) {
|
|
347
|
-
onLanguageChange(key.toString());
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
var newUrl = getLangUrl(window.location.href, key);
|
|
351
|
-
nav(newUrl.replace(window.location.origin, ''));
|
|
352
|
-
}
|
|
353
|
-
}, /*#__PURE__*/React.createElement(Menu.Item, {
|
|
354
|
-
key: "en"
|
|
355
|
-
}, /*#__PURE__*/React.createElement(CheckOutlined, {
|
|
356
|
-
style: {
|
|
357
|
-
visibility: lang === 'en' ? 'visible' : 'hidden',
|
|
358
|
-
color: '#52c41a'
|
|
359
|
-
}
|
|
360
|
-
}), "English"), /*#__PURE__*/React.createElement(Menu.Item, {
|
|
361
|
-
key: "zh"
|
|
362
|
-
}, /*#__PURE__*/React.createElement(CheckOutlined, {
|
|
363
|
-
style: {
|
|
364
|
-
visibility: lang === 'zh' ? 'visible' : 'hidden',
|
|
365
|
-
color: '#52c41a'
|
|
366
|
-
}
|
|
367
|
-
}), "\u7B80\u4F53\u4E2D\u6587")),
|
|
368
|
-
className: styles.translation
|
|
369
|
-
}, /*#__PURE__*/React.createElement("a", {
|
|
370
|
-
className: "ant-dropdown-link",
|
|
371
|
-
onClick: function onClick(e) {
|
|
372
|
-
return e.preventDefault();
|
|
373
|
-
}
|
|
334
|
+
}, /*#__PURE__*/React.createElement(Link, {
|
|
335
|
+
to: lang === 'zh' ? '/en' : '/',
|
|
336
|
+
onClick: handleSwitchLanguage
|
|
374
337
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
375
338
|
className: styles.translation,
|
|
376
339
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -379,7 +342,7 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
379
342
|
viewBox: "0 0 24 24"
|
|
380
343
|
}, /*#__PURE__*/React.createElement("path", {
|
|
381
344
|
d: "M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"
|
|
382
|
-
}))))
|
|
345
|
+
})))), /** 微信公众号 */
|
|
383
346
|
showWxQrcode && /*#__PURE__*/React.createElement("li", {
|
|
384
347
|
className: cx(styles.navIcon, styles.wxQrcode)
|
|
385
348
|
}, /*#__PURE__*/React.createElement(Popover, {
|
|
@@ -412,10 +375,10 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
412
375
|
className: styles.banner,
|
|
413
376
|
message: /*#__PURE__*/React.createElement("div", {
|
|
414
377
|
className: styles.topAlert
|
|
415
|
-
}, announcement.icon && /*#__PURE__*/React.createElement("img", {
|
|
378
|
+
}, (announcement === null || announcement === void 0 ? void 0 : announcement.icon) && /*#__PURE__*/React.createElement("img", {
|
|
416
379
|
src: announcement.icon
|
|
417
380
|
}), /*#__PURE__*/React.createElement("div", null, announcementTitle), announcementLinkTitle && /*#__PURE__*/React.createElement("a", {
|
|
418
|
-
href: announcement.link.url
|
|
381
|
+
href: announcement === null || announcement === void 0 ? void 0 : announcement.link.url
|
|
419
382
|
}, announcementLinkTitle)),
|
|
420
383
|
type: "info",
|
|
421
384
|
banner: true,
|
|
@@ -433,14 +396,14 @@ var HeaderComponent = function HeaderComponent(_ref) {
|
|
|
433
396
|
}), /*#__PURE__*/React.createElement("h2", {
|
|
434
397
|
className: styles.subProduceName
|
|
435
398
|
}, /*#__PURE__*/React.createElement("a", {
|
|
436
|
-
href:
|
|
399
|
+
href: pathname.startsWith('/en') ? '/en' : '/'
|
|
437
400
|
}, subTitle))), showSearch && !isAntVHome && /*#__PURE__*/React.createElement(Search, null)), /*#__PURE__*/React.createElement("nav", {
|
|
438
401
|
className: styles.nav
|
|
439
402
|
}, menu, menuIcon)));
|
|
440
403
|
};
|
|
441
|
-
|
|
442
|
-
var
|
|
443
|
-
themeConfig =
|
|
404
|
+
var Header = function Header(props) {
|
|
405
|
+
var _ref3 = useSiteData(),
|
|
406
|
+
themeConfig = _ref3.themeConfig;
|
|
444
407
|
var title = themeConfig.title,
|
|
445
408
|
siteUrl = themeConfig.siteUrl,
|
|
446
409
|
githubUrl = themeConfig.githubUrl,
|
|
@@ -461,15 +424,16 @@ export var Header = function Header(props) {
|
|
|
461
424
|
docsearchOptions = themeConfig.docsearchOptions,
|
|
462
425
|
announcement = themeConfig.announcement,
|
|
463
426
|
petercat = themeConfig.petercat,
|
|
464
|
-
|
|
427
|
+
links = themeConfig.links;
|
|
465
428
|
var searchOptions = {
|
|
466
429
|
docsearchOptions: docsearchOptions
|
|
467
430
|
};
|
|
468
|
-
var
|
|
469
|
-
|
|
470
|
-
var isHomePage =
|
|
431
|
+
var _useLocation2 = useLocation(),
|
|
432
|
+
pathname = _useLocation2.pathname;
|
|
433
|
+
var isHomePage = ['/', ''].includes(getPurePathname(pathname));
|
|
434
|
+
var lang = useLocale().id;
|
|
471
435
|
var headerProps = {
|
|
472
|
-
subTitle: title,
|
|
436
|
+
subTitle: icWithLocale(title, lang),
|
|
473
437
|
subTitleHref: subTitleHref,
|
|
474
438
|
githubUrl: githubUrl,
|
|
475
439
|
isAntVSite: isAntVSite,
|
|
@@ -492,10 +456,11 @@ export var Header = function Header(props) {
|
|
|
492
456
|
announcement: announcement,
|
|
493
457
|
petercat: petercat
|
|
494
458
|
};
|
|
495
|
-
var
|
|
496
|
-
|
|
497
|
-
isInternalUser =
|
|
498
|
-
setIsInternalUser =
|
|
459
|
+
var _useState9 = useState(undefined),
|
|
460
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
461
|
+
isInternalUser = _useState10[0],
|
|
462
|
+
setIsInternalUser = _useState10[1];
|
|
463
|
+
var isPetercatShow = petercat === null || petercat === void 0 ? void 0 : petercat.show;
|
|
499
464
|
useEffect(function () {
|
|
500
465
|
var checkUserType = /*#__PURE__*/function () {
|
|
501
466
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
@@ -521,28 +486,22 @@ export var Header = function Header(props) {
|
|
|
521
486
|
checkUserType();
|
|
522
487
|
}, []);
|
|
523
488
|
useEffect(function () {
|
|
524
|
-
var
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
document.body.appendChild(script);
|
|
533
|
-
}
|
|
534
|
-
} else {
|
|
489
|
+
var script = null;
|
|
490
|
+
if (isInternalUser && links) {
|
|
491
|
+
script = document.createElement('script');
|
|
492
|
+
script.src = 'https://links.alipay.com/widgetInit/67a96a296b6fa80490bdf892';
|
|
493
|
+
script.async = true;
|
|
494
|
+
document.body.appendChild(script);
|
|
495
|
+
}
|
|
496
|
+
return function () {
|
|
535
497
|
if (script) {
|
|
536
498
|
document.body.removeChild(script);
|
|
537
499
|
}
|
|
538
|
-
}
|
|
539
|
-
}, [isInternalUser
|
|
540
|
-
|
|
541
|
-
// 当 petercat.show 为 true 且以下任一条件满足时展示 Petercat Assistant:
|
|
542
|
-
// 1. 外部用户访问
|
|
543
|
-
// 2. 不显示 links 研发小蜜
|
|
544
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HeaderComponent, Object.assign({}, headerProps, props)), (petercat === null || petercat === void 0 ? void 0 : petercat.show) && (isBoolean(isInternalUser) && !isInternalUser || !isLinksShow) && /*#__PURE__*/React.createElement(Assistant, {
|
|
500
|
+
};
|
|
501
|
+
}, [isInternalUser]);
|
|
502
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(HeaderComponent, Object.assign({}, headerProps, props)), isPetercatShow && isInternalUser === false && /*#__PURE__*/React.createElement(Assistant, {
|
|
545
503
|
token: petercat === null || petercat === void 0 ? void 0 : petercat.token,
|
|
546
504
|
apiDomain: "https://api.petercat.ai"
|
|
547
505
|
}));
|
|
548
|
-
};
|
|
506
|
+
};
|
|
507
|
+
export default Header;
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
1
|
import { VerticalAlignTopOutlined } from '@ant-design/icons';
|
|
8
2
|
import { BackTop, Layout } from 'antd';
|
|
9
3
|
import { useRouteMeta } from 'dumi';
|
|
10
|
-
import React from 'react';
|
|
4
|
+
import React, { lazy } from 'react';
|
|
11
5
|
import { useMedia } from 'react-use';
|
|
12
6
|
import readingTime from 'reading-time';
|
|
13
|
-
import
|
|
7
|
+
import ClientOnly from "../../common/ClientOnly";
|
|
8
|
+
import InViewSuspense from "../../common/InViewSuspense";
|
|
14
9
|
import { ContentTable } from "dumi/theme/slots/ContentTable";
|
|
15
10
|
import { Feedback } from "dumi/theme/slots/Feedback";
|
|
16
|
-
import { PageFeedback } from "../Feedback/PageFeedback";
|
|
17
11
|
import styles from "./index.module.less";
|
|
18
12
|
import { PrevAndNext } from "./PrevAndNext";
|
|
19
13
|
import ReadingTime from "./ReadingTime";
|
|
20
|
-
|
|
14
|
+
var PageFeedback = /*#__PURE__*/lazy(function () {
|
|
15
|
+
return import("../Feedback/PageFeedback");
|
|
16
|
+
});
|
|
17
|
+
var ObPreview = /*#__PURE__*/lazy(function () {
|
|
18
|
+
return import("./ObPreview");
|
|
19
|
+
});
|
|
21
20
|
export var Main = function Main(_ref) {
|
|
22
21
|
var children = _ref.children;
|
|
23
22
|
var meta = useRouteMeta();
|
|
@@ -26,13 +25,9 @@ export var Main = function Main(_ref) {
|
|
|
26
25
|
}, '');
|
|
27
26
|
var _readingTime = readingTime(text),
|
|
28
27
|
time = _readingTime.time;
|
|
29
|
-
var _useMenu = useMenu(),
|
|
30
|
-
_useMenu2 = _slicedToArray(_useMenu, 2),
|
|
31
|
-
selectedKey = _useMenu2[1];
|
|
32
28
|
var is991Wide = useMedia('(min-width: 991.99px)', true);
|
|
33
29
|
var showToc = is991Wide && meta.frontmatter.showToc !== false;
|
|
34
|
-
|
|
35
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Layout.Content, {
|
|
30
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ClientOnly, null, /*#__PURE__*/React.createElement(ObPreview, null)), /*#__PURE__*/React.createElement(Layout.Content, {
|
|
36
31
|
className: styles.content
|
|
37
32
|
}, /*#__PURE__*/React.createElement("div", {
|
|
38
33
|
className: styles.main
|
|
@@ -45,7 +40,11 @@ export var Main = function Main(_ref) {
|
|
|
45
40
|
className: styles.readtime
|
|
46
41
|
})), /*#__PURE__*/React.createElement("div", {
|
|
47
42
|
className: styles.markdown
|
|
48
|
-
}, children), /*#__PURE__*/React.createElement(
|
|
43
|
+
}, children), /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
style: {
|
|
45
|
+
marginTop: '40px'
|
|
46
|
+
}
|
|
47
|
+
}, /*#__PURE__*/React.createElement(Feedback, null)), /*#__PURE__*/React.createElement(PrevAndNext, null)), /*#__PURE__*/React.createElement(BackTop, {
|
|
49
48
|
style: {
|
|
50
49
|
right: 24
|
|
51
50
|
}
|
|
@@ -56,5 +55,5 @@ export var Main = function Main(_ref) {
|
|
|
56
55
|
width: 260
|
|
57
56
|
}, /*#__PURE__*/React.createElement("div", {
|
|
58
57
|
className: styles.toc
|
|
59
|
-
}, /*#__PURE__*/React.createElement(PageFeedback, null), /*#__PURE__*/React.createElement(ContentTable, null))));
|
|
58
|
+
}, /*#__PURE__*/React.createElement(InViewSuspense, null, /*#__PURE__*/React.createElement(PageFeedback, null)), /*#__PURE__*/React.createElement(ContentTable, null))));
|
|
60
59
|
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import classNames from 'classnames';
|
|
2
|
-
import {
|
|
2
|
+
import { history, useIntl } from 'dumi';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { useScrollToTop } from "../hooks";
|
|
5
5
|
import styles from "./NavigatorBanner.module.less";
|
|
6
6
|
export var NavigatorBanner = function NavigatorBanner(_ref) {
|
|
7
7
|
var post = _ref.post,
|
|
8
8
|
type = _ref.type;
|
|
9
|
+
var _useIntl = useIntl(),
|
|
10
|
+
formatMessage = _useIntl.formatMessage;
|
|
9
11
|
if (!post) {
|
|
10
12
|
return /*#__PURE__*/React.createElement("div", {
|
|
11
13
|
className: classNames(styles.button, styles.hidden)
|
|
@@ -25,7 +27,7 @@ export var NavigatorBanner = function NavigatorBanner(_ref) {
|
|
|
25
27
|
onClick: go
|
|
26
28
|
}, /*#__PURE__*/React.createElement("div", {
|
|
27
29
|
className: styles.label
|
|
28
|
-
},
|
|
30
|
+
}, formatMessage({
|
|
29
31
|
id: type === 'prev' ? '上一篇' : '下一篇'
|
|
30
32
|
})), /*#__PURE__*/React.createElement("div", {
|
|
31
33
|
className: styles.title
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { useMenu } from "../../hooks/useMenu";
|
|
9
|
+
import { usePreview } from "./usePreview";
|
|
10
|
+
var ObPreview = function ObPreview() {
|
|
11
|
+
var _useMenu = useMenu(),
|
|
12
|
+
_useMenu2 = _slicedToArray(_useMenu, 2),
|
|
13
|
+
selectedKey = _useMenu2[1];
|
|
14
|
+
usePreview({}, selectedKey);
|
|
15
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
16
|
+
};
|
|
17
|
+
export default ObPreview;
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { Layout } from 'antd';
|
|
2
|
-
import
|
|
2
|
+
import { useRouteMeta } from 'dumi';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import CommonHelmet from "../../common/CommonHelmet";
|
|
3
5
|
import styles from "./index.module.less";
|
|
4
6
|
import { Main } from "./Main";
|
|
5
7
|
import { Sidebar } from "./Sidebar";
|
|
6
8
|
export var ManualContent = function ManualContent(_ref) {
|
|
7
9
|
var children = _ref.children;
|
|
10
|
+
var meta = useRouteMeta();
|
|
11
|
+
var _meta$frontmatter = meta.frontmatter,
|
|
12
|
+
title = _meta$frontmatter.title,
|
|
13
|
+
description = _meta$frontmatter.description;
|
|
8
14
|
return /*#__PURE__*/React.createElement(Layout, {
|
|
9
15
|
hasSider: true,
|
|
10
16
|
className: styles.layout
|
|
11
|
-
}, /*#__PURE__*/React.createElement(
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
}, /*#__PURE__*/React.createElement(CommonHelmet, {
|
|
18
|
+
title: title,
|
|
19
|
+
description: description
|
|
20
|
+
}), /*#__PURE__*/React.createElement(Sidebar, null), /*#__PURE__*/React.createElement(Main, null, children));
|
|
14
21
|
};
|
|
@@ -2,6 +2,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
2
2
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
3
3
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
4
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
5
6
|
import React, { useEffect } from 'react';
|
|
6
7
|
import { createRoot } from 'react-dom/client';
|
|
7
8
|
import { Preview } from "./Preview";
|
|
@@ -28,7 +29,11 @@ function sourceOf(block) {
|
|
|
28
29
|
return cloned.textContent;
|
|
29
30
|
}
|
|
30
31
|
function blockOf() {
|
|
31
|
-
|
|
32
|
+
if ((typeof document === "undefined" ? "undefined" : _typeof(document)) !== undefined && document) {
|
|
33
|
+
var blocks = Array.from(document.querySelectorAll('.ob-codeblock .dumi-default-source-code'));
|
|
34
|
+
return blocks;
|
|
35
|
+
}
|
|
36
|
+
return [];
|
|
32
37
|
}
|
|
33
38
|
export function usePreview() {
|
|
34
39
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -1,27 +1,17 @@
|
|
|
1
1
|
import { isEmpty } from 'lodash-es';
|
|
2
|
-
export function getOpenKeys() {
|
|
3
|
-
var pathname = window.location.pathname.replace('/docs/', '/').replace('/zh/', '/');
|
|
4
|
-
var pathArr = pathname.split('/');
|
|
5
|
-
var openKeys = [];
|
|
6
|
-
for (var i = pathArr.length; i > 0; i--) {
|
|
7
|
-
var tem = pathArr.slice(0, i);
|
|
8
|
-
openKeys.push(tem.join('/'));
|
|
9
|
-
}
|
|
10
|
-
return openKeys;
|
|
11
|
-
}
|
|
12
2
|
|
|
13
3
|
/**
|
|
14
4
|
* /api/xxx --> /api
|
|
15
5
|
* /en/api --> /en/api
|
|
16
6
|
*/
|
|
17
|
-
export function getBaseRoute() {
|
|
18
|
-
var matchRoute =
|
|
7
|
+
export function getBaseRoute(pathname) {
|
|
8
|
+
var matchRoute = pathname;
|
|
19
9
|
// 兼容 zh
|
|
20
10
|
matchRoute = matchRoute.replace('/zh/', '/');
|
|
21
11
|
// 兼容带有docs的route
|
|
22
12
|
matchRoute = matchRoute.replace('/docs', '');
|
|
23
13
|
// 查找 baseRoute
|
|
24
|
-
var reg =
|
|
14
|
+
var reg = pathname.startsWith('/en') ? /(\/[A-z]*\/?\/[A-z]*)\/?/ : /(\/[A-z]*)\/?/;
|
|
25
15
|
var mainRoute = matchRoute.match(reg);
|
|
26
16
|
return mainRoute[1];
|
|
27
17
|
}
|
package/dist/slots/global.js
CHANGED
package/dist/slots/hooks.js
CHANGED
|
@@ -49,31 +49,6 @@ export var useLogoLink = function useLogoLink(_ref) {
|
|
|
49
49
|
}, []);
|
|
50
50
|
return [giteeLogoLink || defaultLogoLink];
|
|
51
51
|
};
|
|
52
|
-
export var usePrevAndNext = function usePrevAndNext() {
|
|
53
|
-
var _useState5 = useState([]),
|
|
54
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
55
|
-
prevAndNext = _useState6[0],
|
|
56
|
-
setPrevAndNext = _useState6[1];
|
|
57
|
-
useEffect(function () {
|
|
58
|
-
var menuNodes = document.querySelectorAll('aside .ant-menu-item a');
|
|
59
|
-
var currentMenuNode = document.querySelector('aside .ant-menu-item-selected a');
|
|
60
|
-
var currentIndex = Array.from(menuNodes).findIndex(function (node) {
|
|
61
|
-
return node === currentMenuNode;
|
|
62
|
-
});
|
|
63
|
-
var prevNode = currentIndex - 1 >= 0 ? menuNodes[currentIndex - 1] : undefined;
|
|
64
|
-
var nextNode = currentIndex + 1 < menuNodes.length ? menuNodes[currentIndex + 1] : undefined;
|
|
65
|
-
var prev = prevNode ? {
|
|
66
|
-
slug: prevNode.getAttribute('href') || undefined,
|
|
67
|
-
title: prevNode.textContent || undefined
|
|
68
|
-
} : undefined;
|
|
69
|
-
var next = nextNode ? {
|
|
70
|
-
slug: nextNode.getAttribute('href') || undefined,
|
|
71
|
-
title: nextNode.textContent || undefined
|
|
72
|
-
} : undefined;
|
|
73
|
-
setPrevAndNext([prev, next]);
|
|
74
|
-
}, []);
|
|
75
|
-
return prevAndNext;
|
|
76
|
-
};
|
|
77
52
|
|
|
78
53
|
/**
|
|
79
54
|
* i18n .umirc config
|
package/dist/slots/utils.js
CHANGED
|
@@ -9,13 +9,6 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
9
9
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
10
10
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
11
11
|
import { icWithLocale } from "./hooks";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* 统一去掉中英文前缀
|
|
15
|
-
*/
|
|
16
|
-
export function getCurrentPathname() {
|
|
17
|
-
return window.location.pathname.replace('/zh/', '/').replace('/en/', '/');
|
|
18
|
-
}
|
|
19
12
|
export function ping() {
|
|
20
13
|
return _ping.apply(this, arguments);
|
|
21
14
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// 判断是否在浏览器环境
|
|
2
|
+
export var isBrowser = function isBrowser() {
|
|
3
|
+
return typeof window !== 'undefined' && window;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
// 安全访问浏览器 API
|
|
7
|
+
// eslint-disable-next-line no-unused-vars
|
|
8
|
+
export var safeWindow = function safeWindow(fn) {
|
|
9
|
+
if (isBrowser()) fn(window);
|
|
10
|
+
};
|