@antv/dumi-theme-antv 0.5.2 → 0.5.4-beta.0
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/common/Link.js +78 -0
- package/dist/common/SEO.js +61 -0
- package/dist/hooks/useMenu.js +117 -0
- package/dist/layouts/DocLayout.js +6 -7
- package/dist/layouts/entry/API.js +1 -0
- package/dist/layouts/entry/Index.js +9 -22
- package/dist/layouts/entry/Manual.js +6 -4
- package/dist/locales/en.json +49 -1
- package/dist/locales/zh.json +48 -1
- package/dist/pages/404.js +1 -2
- package/dist/pages/Example/index.js +2 -3
- package/dist/pages/Examples/index.js +4 -3
- package/dist/slots/ManualContent/Main.js +90 -0
- package/dist/slots/ManualContent/Sidebar.js +77 -0
- package/dist/slots/ManualContent/index.js +8 -305
- package/dist/slots/ManualContent/index.module.less +63 -29
- package/dist/slots/ManualContent/utils.js +19 -15
- package/dist/slots/utils.js +7 -0
- package/dist/utils/menu.js +46 -0
- package/package.json +56 -56
- package/dist/builtins/Playground/index.d.ts +0 -21
- package/dist/context.d.ts +0 -6
- package/dist/layouts/DocLayout.d.ts +0 -8
- package/dist/layouts/entry/API.d.ts +0 -10
- package/dist/layouts/entry/Index.d.ts +0 -7
- package/dist/layouts/entry/Manual.d.ts +0 -8
- package/dist/model/index.d.ts +0 -5
- package/dist/pages/404.d.ts +0 -6
- package/dist/pages/Example/components/CollapsedIcon/index.d.ts +0 -8
- package/dist/pages/Example/index.d.ts +0 -6
- package/dist/pages/Example/utils.d.ts +0 -1
- package/dist/pages/Examples/components/Accouncement/index.d.ts +0 -6
- package/dist/pages/Examples/components/Article/index.d.ts +0 -2
- package/dist/pages/Examples/components/ExampleTopicMenu/components/LeftMenu/index.d.ts +0 -10
- package/dist/pages/Examples/components/ExampleTopicMenu/index.d.ts +0 -9
- package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.d.ts +0 -10
- package/dist/pages/Examples/components/GalleryPageContent/index.d.ts +0 -10
- package/dist/pages/Examples/index.d.ts +0 -8
- package/dist/pages/Examples/types.d.ts +0 -34
- package/dist/pages/Examples/utils.d.ts +0 -1
- package/dist/plugin/api.d.ts +0 -7
- package/dist/plugin/examples.d.ts +0 -21
- package/dist/plugin/index.d.ts +0 -3
- package/dist/plugin/rehypeObservable.d.ts +0 -1
- package/dist/slots/404.d.ts +0 -2
- package/dist/slots/API/index.d.ts +0 -15
- package/dist/slots/Article/index.d.ts +0 -3
- package/dist/slots/Banner/Notification.d.ts +0 -10
- package/dist/slots/Banner/index.d.ts +0 -26
- package/dist/slots/Cases/index.d.ts +0 -19
- package/dist/slots/CodeEditor/Toolbar.d.ts +0 -72
- package/dist/slots/CodeEditor/index.d.ts +0 -62
- package/dist/slots/CodeEditor/utils.d.ts +0 -42
- package/dist/slots/CodePreview/CodeHeader.d.ts +0 -19
- package/dist/slots/CodePreview/index.d.ts +0 -25
- package/dist/slots/CodeRunner/index.d.ts +0 -17
- package/dist/slots/CodeRunner/utils.d.ts +0 -11
- package/dist/slots/Companies/index.d.ts +0 -13
- package/dist/slots/ContentTable/index.d.ts +0 -6
- package/dist/slots/Detail/News.d.ts +0 -12
- package/dist/slots/Detail/index.d.ts +0 -30
- package/dist/slots/ExampleSider/index.d.ts +0 -21
- package/dist/slots/Features/FeatureCard.d.ts +0 -9
- package/dist/slots/Features/index.d.ts +0 -15
- package/dist/slots/Footer/index.d.ts +0 -18
- package/dist/slots/Header/Navs.d.ts +0 -27
- package/dist/slots/Header/Products/NavigatorBanner.d.ts +0 -10
- package/dist/slots/Header/Products/Product.d.ts +0 -14
- package/dist/slots/Header/Products/getProducts.d.ts +0 -48
- package/dist/slots/Header/Products/index.d.ts +0 -10
- package/dist/slots/Header/Search/SearchResult.d.ts +0 -21
- package/dist/slots/Header/Search/helper.d.ts +0 -8
- package/dist/slots/Header/Search/index.d.ts +0 -2
- package/dist/slots/Header/index.d.ts +0 -84
- package/dist/slots/Header/utils.d.ts +0 -10
- package/dist/slots/Loading/index.d.ts +0 -6
- package/dist/slots/ManualContent/NavigatorBanner.d.ts +0 -9
- package/dist/slots/ManualContent/Preview.d.ts +0 -7
- package/dist/slots/ManualContent/ReadingTime.d.ts +0 -3
- package/dist/slots/ManualContent/index.d.ts +0 -9
- package/dist/slots/ManualContent/usePreview.d.ts +0 -1
- package/dist/slots/ManualContent/utils.d.ts +0 -19
- package/dist/slots/SEO.d.ts +0 -10
- package/dist/slots/SEO.js +0 -57
- package/dist/slots/global.d.ts +0 -1
- package/dist/slots/hooks.d.ts +0 -16
- package/dist/slots/utils.d.ts +0 -5
- package/dist/types.d.ts +0 -86
|
@@ -0,0 +1,90 @@
|
|
|
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 { VerticalAlignTopOutlined } from '@ant-design/icons';
|
|
8
|
+
import { BackTop, Layout } from 'antd';
|
|
9
|
+
import { useRouteMeta } from 'dumi';
|
|
10
|
+
import React, { useMemo } from 'react';
|
|
11
|
+
import { useMedia } from 'react-use';
|
|
12
|
+
import readingTime from 'reading-time';
|
|
13
|
+
import { useMenu } from "../../hooks/useMenu";
|
|
14
|
+
import { ContentTable } from "dumi/theme/slots/ContentTable";
|
|
15
|
+
import { NavigatorBanner } from "./NavigatorBanner";
|
|
16
|
+
import ReadingTime from "./ReadingTime";
|
|
17
|
+
import styles from "./index.module.less";
|
|
18
|
+
import { usePreview } from "./usePreview";
|
|
19
|
+
export var Main = function Main(_ref) {
|
|
20
|
+
var children = _ref.children;
|
|
21
|
+
var meta = useRouteMeta();
|
|
22
|
+
var text = meta.texts.reduce(function (prev, next) {
|
|
23
|
+
return prev + next.value;
|
|
24
|
+
}, '');
|
|
25
|
+
var _readingTime = readingTime(text),
|
|
26
|
+
time = _readingTime.time;
|
|
27
|
+
var _useMenu = useMenu(),
|
|
28
|
+
_useMenu2 = _slicedToArray(_useMenu, 3),
|
|
29
|
+
selectedKey = _useMenu2[1],
|
|
30
|
+
flattenMenuItems = _useMenu2[2];
|
|
31
|
+
var _useMemo = useMemo(function () {
|
|
32
|
+
if (!flattenMenuItems) {
|
|
33
|
+
return [undefined, undefined];
|
|
34
|
+
}
|
|
35
|
+
var activeMenuItemIndex = -1;
|
|
36
|
+
flattenMenuItems.forEach(function (menuItem, i) {
|
|
37
|
+
if (menuItem && menuItem.key === selectedKey) {
|
|
38
|
+
activeMenuItemIndex = i;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
var prevItem = flattenMenuItems[activeMenuItemIndex - 1];
|
|
42
|
+
var nextItem = flattenMenuItems[activeMenuItemIndex + 1];
|
|
43
|
+
return [prevItem ? {
|
|
44
|
+
slug: prevItem.link,
|
|
45
|
+
title: prevItem.title
|
|
46
|
+
} : undefined, nextItem ? {
|
|
47
|
+
slug: nextItem.link,
|
|
48
|
+
title: nextItem.title
|
|
49
|
+
} : undefined];
|
|
50
|
+
}, [flattenMenuItems, selectedKey]),
|
|
51
|
+
_useMemo2 = _slicedToArray(_useMemo, 2),
|
|
52
|
+
prev = _useMemo2[0],
|
|
53
|
+
next = _useMemo2[1];
|
|
54
|
+
var is991Wide = useMedia('(min-width: 991.99px)', true);
|
|
55
|
+
var showToc = is991Wide && meta.frontmatter.showToc !== false;
|
|
56
|
+
usePreview({}, selectedKey);
|
|
57
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Layout.Content, {
|
|
58
|
+
className: styles.content
|
|
59
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
60
|
+
className: styles.main
|
|
61
|
+
}, /*#__PURE__*/React.createElement("h1", {
|
|
62
|
+
className: styles.contentTitle
|
|
63
|
+
}, meta.frontmatter.title), /*#__PURE__*/React.createElement("div", {
|
|
64
|
+
className: styles.readtimeContainer
|
|
65
|
+
}, /*#__PURE__*/React.createElement(ReadingTime, {
|
|
66
|
+
readingTime: time,
|
|
67
|
+
className: styles.readtime
|
|
68
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
className: styles.markdown
|
|
70
|
+
}, children), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
71
|
+
className: styles.preandnext
|
|
72
|
+
}, /*#__PURE__*/React.createElement(NavigatorBanner, {
|
|
73
|
+
type: "prev",
|
|
74
|
+
post: prev
|
|
75
|
+
}), /*#__PURE__*/React.createElement(NavigatorBanner, {
|
|
76
|
+
type: "next",
|
|
77
|
+
post: next
|
|
78
|
+
}), /*#__PURE__*/React.createElement(BackTop, {
|
|
79
|
+
style: {
|
|
80
|
+
right: 32
|
|
81
|
+
}
|
|
82
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
83
|
+
className: styles.backTop
|
|
84
|
+
}, /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null))))))), showToc && /*#__PURE__*/React.createElement(Layout.Sider, {
|
|
85
|
+
theme: "light",
|
|
86
|
+
width: 260
|
|
87
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
88
|
+
className: styles.toc
|
|
89
|
+
}, /*#__PURE__*/React.createElement(ContentTable, null))));
|
|
90
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
4
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
5
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
+
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."); }
|
|
7
|
+
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); }
|
|
8
|
+
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; }
|
|
9
|
+
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; } }
|
|
10
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
11
|
+
import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons';
|
|
12
|
+
import { Affix, Drawer, Layout, Menu } from 'antd';
|
|
13
|
+
import React, { useEffect, useState } from 'react';
|
|
14
|
+
import { useMedia } from 'react-use';
|
|
15
|
+
import { useMenu } from "../../hooks/useMenu";
|
|
16
|
+
import { getAncestorMenuItems } from "../../utils/menu";
|
|
17
|
+
import styles from "./index.module.less";
|
|
18
|
+
export var Sidebar = function Sidebar() {
|
|
19
|
+
var _useState = useState(false),
|
|
20
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
21
|
+
drawOpen = _useState2[0],
|
|
22
|
+
setDrawOpen = _useState2[1];
|
|
23
|
+
var _useMenu = useMenu(),
|
|
24
|
+
_useMenu2 = _slicedToArray(_useMenu, 2),
|
|
25
|
+
menuItems = _useMenu2[0],
|
|
26
|
+
selectedKey = _useMenu2[1];
|
|
27
|
+
var is767Wide = useMedia('(min-width: 767.99px)', true);
|
|
28
|
+
var _useState3 = useState([]),
|
|
29
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
30
|
+
openKeys = _useState4[0],
|
|
31
|
+
setOpenKeys = _useState4[1];
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
var items = getAncestorMenuItems(menuItems, selectedKey);
|
|
34
|
+
setOpenKeys(function (prev) {
|
|
35
|
+
return _toConsumableArray(new Set([].concat(_toConsumableArray(prev), _toConsumableArray(items.map(function (item) {
|
|
36
|
+
return item.key;
|
|
37
|
+
})))));
|
|
38
|
+
});
|
|
39
|
+
}, [menuItems, selectedKey]);
|
|
40
|
+
var menu = /*#__PURE__*/React.createElement(Menu, {
|
|
41
|
+
key: "sider-menu",
|
|
42
|
+
openKeys: openKeys,
|
|
43
|
+
onOpenChange: function onOpenChange(openKeys) {
|
|
44
|
+
return setOpenKeys(openKeys);
|
|
45
|
+
},
|
|
46
|
+
selectedKeys: [selectedKey],
|
|
47
|
+
mode: "inline",
|
|
48
|
+
items: menuItems,
|
|
49
|
+
inlineIndent: 16,
|
|
50
|
+
style: {
|
|
51
|
+
height: '100%'
|
|
52
|
+
},
|
|
53
|
+
triggerSubMenuAction: "click",
|
|
54
|
+
forceSubMenuRender: true
|
|
55
|
+
});
|
|
56
|
+
var Icon = drawOpen ? MenuFoldOutlined : MenuUnfoldOutlined;
|
|
57
|
+
return /*#__PURE__*/React.createElement(Affix, {
|
|
58
|
+
offsetTop: 0,
|
|
59
|
+
className: styles.affix,
|
|
60
|
+
style: {
|
|
61
|
+
height: is767Wide ? '100vh' : 'inherit'
|
|
62
|
+
}
|
|
63
|
+
}, is767Wide ? /*#__PURE__*/React.createElement(Layout.Sider, {
|
|
64
|
+
width: "auto",
|
|
65
|
+
theme: "light",
|
|
66
|
+
className: styles.sider
|
|
67
|
+
}, menu) : /*#__PURE__*/React.createElement(Drawer, {
|
|
68
|
+
handler: /*#__PURE__*/React.createElement(Icon, {
|
|
69
|
+
className: styles.menuSwitch
|
|
70
|
+
}),
|
|
71
|
+
wrapperClassName: styles.menuDrawer,
|
|
72
|
+
onChange: function onChange(open) {
|
|
73
|
+
return setDrawOpen(!!open);
|
|
74
|
+
},
|
|
75
|
+
width: 280
|
|
76
|
+
}, menu));
|
|
77
|
+
};
|
|
@@ -1,311 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
-
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; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
9
|
-
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."); }
|
|
10
|
-
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); }
|
|
11
|
-
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; }
|
|
12
|
-
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; } }
|
|
13
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
-
import { MenuFoldOutlined, MenuUnfoldOutlined, VerticalAlignTopOutlined } from '@ant-design/icons';
|
|
15
|
-
import { get } from 'lodash';
|
|
16
|
-
import { Affix, BackTop, Layout, Menu } from 'antd';
|
|
17
|
-
import { useFullSidebarData, useLocale, useRouteMeta, useSiteData } from 'dumi';
|
|
18
|
-
import Drawer from 'rc-drawer';
|
|
19
|
-
import React, { useEffect, useState } from 'react';
|
|
20
|
-
import { useNavigate } from 'react-router-dom';
|
|
21
|
-
import { useMedia } from 'react-use';
|
|
22
|
-
import readingTime from 'reading-time';
|
|
23
|
-
import URI from 'uri-parse';
|
|
24
|
-
import { ContentTable } from "dumi/theme/slots/ContentTable";
|
|
25
|
-
import { SEO } from "dumi/theme/slots/SEO";
|
|
26
|
-
import { useScrollToTop } from "../hooks";
|
|
27
|
-
import { NavigatorBanner } from "./NavigatorBanner";
|
|
28
|
-
import ReadingTime from "./ReadingTime";
|
|
29
|
-
import { usePreview } from "./usePreview";
|
|
30
|
-
import { getBaseRoute, getIndexRoute, getNavigateUrl, getOpenKeys } from "./utils";
|
|
31
|
-
import 'rc-drawer/assets/index.css';
|
|
1
|
+
import { Layout } from 'antd';
|
|
2
|
+
import React, { Suspense } from 'react';
|
|
32
3
|
import styles from "./index.module.less";
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
*/
|
|
4
|
+
import { Main } from "./Main";
|
|
5
|
+
import { Sidebar } from "./Sidebar";
|
|
36
6
|
export var ManualContent = function ManualContent(_ref) {
|
|
37
7
|
var children = _ref.children;
|
|
38
|
-
|
|
39
|
-
var currentLocale = locale.id;
|
|
40
|
-
var _useSiteData = useSiteData(),
|
|
41
|
-
_useSiteData$themeCon = _useSiteData.themeConfig,
|
|
42
|
-
githubUrl = _useSiteData$themeCon.githubUrl,
|
|
43
|
-
relativePath = _useSiteData$themeCon.relativePath,
|
|
44
|
-
docs = _useSiteData$themeCon.docs;
|
|
45
|
-
var sidebar = useFullSidebarData();
|
|
46
|
-
var is767Wide = useMedia('(min-width: 767.99px)', true);
|
|
47
|
-
var is991Wide = useMedia('(min-width: 991.99px)', true);
|
|
48
|
-
var _useState = useState(false),
|
|
49
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
50
|
-
drawOpen = _useState2[0],
|
|
51
|
-
setDrawOpen = _useState2[1];
|
|
52
|
-
var navigate = useNavigate();
|
|
53
|
-
|
|
54
|
-
// 获取阅读时间
|
|
55
|
-
var mdInfo = useRouteMeta();
|
|
56
|
-
var text = mdInfo.texts.reduce(function (prev, next) {
|
|
57
|
-
return prev + next.value;
|
|
58
|
-
}, '');
|
|
59
|
-
var _readingTime = readingTime(text),
|
|
60
|
-
time = _readingTime.time;
|
|
61
|
-
|
|
62
|
-
// linkoTitle用来映射路由和Title
|
|
63
|
-
var linkoTitle = {};
|
|
64
|
-
for (var _i = 0, _Object$values = Object.values(sidebar); _i < _Object$values.length; _i++) {
|
|
65
|
-
var route = _Object$values[_i];
|
|
66
|
-
route[0].children.forEach(function (item) {
|
|
67
|
-
linkoTitle[item.link] = item.title;
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* /api/xxx --> /api
|
|
72
|
-
* /en/api --> /en/api
|
|
73
|
-
*/
|
|
74
|
-
var baseRoute = getBaseRoute();
|
|
75
|
-
|
|
76
|
-
// 获取最终的 MenuData
|
|
77
|
-
var renderSidebar = getMenuData(sidebar, docs, baseRoute, []);
|
|
78
|
-
function getMenuData(funllSidebarData, rootList, hrefId, list) {
|
|
79
|
-
function fullSidebarDataToMenuData(rootList, hrefId, list) {
|
|
80
|
-
// 递归
|
|
81
|
-
rootList.forEach(function (item) {
|
|
82
|
-
var href = (!baseRoute.startsWith('/en') ? "/".concat(item.slug) : "/en/".concat(item.slug)).toLocaleLowerCase();
|
|
83
|
-
var id = href.split('/').slice(0, href.split('/').length - 1).join('/');
|
|
84
|
-
if (href.includes(baseRoute)) {
|
|
85
|
-
if (id === hrefId) {
|
|
86
|
-
list.push(_objectSpread(_objectSpread({}, item), {}, {
|
|
87
|
-
key: href,
|
|
88
|
-
label: item.title[currentLocale]
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
var _iterator = _createForOfIteratorHelper(list),
|
|
94
|
-
_step;
|
|
95
|
-
try {
|
|
96
|
-
var _loop = function _loop() {
|
|
97
|
-
var _funllSidebarData$ite;
|
|
98
|
-
var item = _step.value;
|
|
99
|
-
item.children = [];
|
|
100
|
-
fullSidebarDataToMenuData(rootList, item.key, item.children);
|
|
101
|
-
funllSidebarData[item.key] && ((_funllSidebarData$ite = funllSidebarData[item.key][0].children) === null || _funllSidebarData$ite === void 0 ? void 0 : _funllSidebarData$ite.forEach(function (itemChild) {
|
|
102
|
-
var label = itemChild.title;
|
|
103
|
-
var key = itemChild.link;
|
|
104
|
-
var tag = get(itemChild, ['frontmatter', 'tag']);
|
|
105
|
-
item.children.push(_objectSpread(_objectSpread({}, itemChild), {}, {
|
|
106
|
-
label: tag ? /*#__PURE__*/React.createElement("div", {
|
|
107
|
-
className: styles.memuLabel
|
|
108
|
-
}, label, /*#__PURE__*/React.createElement("div", {
|
|
109
|
-
className: styles.tag
|
|
110
|
-
}, tag)) : label,
|
|
111
|
-
key: key
|
|
112
|
-
}));
|
|
113
|
-
}));
|
|
114
|
-
// children 的 order 排序
|
|
115
|
-
item.children.sort(function (a, b) {
|
|
116
|
-
return a.order - b.order;
|
|
117
|
-
});
|
|
118
|
-
if (item.children.length == 0) {
|
|
119
|
-
delete item.children;
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
123
|
-
_loop();
|
|
124
|
-
}
|
|
125
|
-
} catch (err) {
|
|
126
|
-
_iterator.e(err);
|
|
127
|
-
} finally {
|
|
128
|
-
_iterator.f();
|
|
129
|
-
}
|
|
130
|
-
if (hrefId == baseRoute) {
|
|
131
|
-
var _funllSidebarData$bas;
|
|
132
|
-
funllSidebarData[baseRoute] && ((_funllSidebarData$bas = funllSidebarData[baseRoute][0].children) === null || _funllSidebarData$bas === void 0 ? void 0 : _funllSidebarData$bas.forEach(function (itemChild) {
|
|
133
|
-
var key = itemChild.link;
|
|
134
|
-
var label = itemChild.title;
|
|
135
|
-
list.push(_objectSpread(_objectSpread({}, itemChild), {}, {
|
|
136
|
-
label: label,
|
|
137
|
-
key: key
|
|
138
|
-
}));
|
|
139
|
-
}));
|
|
140
|
-
list.sort(function (a, b) {
|
|
141
|
-
return a.order - b.order;
|
|
142
|
-
});
|
|
143
|
-
return list;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return fullSidebarDataToMenuData(rootList, hrefId, list);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// 获取打开的菜单栏
|
|
150
|
-
var _useState3 = useState(function () {
|
|
151
|
-
return getOpenKeys();
|
|
152
|
-
}),
|
|
153
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
154
|
-
defaultOpenKeys = _useState4[0],
|
|
155
|
-
setDefaultOpenKeys = _useState4[1];
|
|
156
|
-
|
|
157
|
-
// 获取第一个md文件的路由
|
|
158
|
-
var indexRoute = getIndexRoute(renderSidebar);
|
|
159
|
-
|
|
160
|
-
// 点击菜单栏
|
|
161
|
-
var onClick = function onClick(e) {
|
|
162
|
-
navigate(e.key);
|
|
163
|
-
useScrollToTop();
|
|
164
|
-
};
|
|
165
|
-
var _useState5 = useState(),
|
|
166
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
167
|
-
defaultSelectedKey = _useState6[0],
|
|
168
|
-
setDefaultSelectedKey = _useState6[1];
|
|
169
|
-
//上一夜下一页
|
|
170
|
-
var _useState7 = useState(undefined),
|
|
171
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
172
|
-
prev = _useState8[0],
|
|
173
|
-
setPrev = _useState8[1];
|
|
174
|
-
var _useState9 = useState(undefined),
|
|
175
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
176
|
-
next = _useState10[0],
|
|
177
|
-
setNext = _useState10[1];
|
|
178
|
-
|
|
179
|
-
// 所有的 sidebar 路由
|
|
180
|
-
var sidebarRoutes = [];
|
|
181
|
-
for (var _i2 = 0, _Object$keys = Object.keys(linkoTitle); _i2 < _Object$keys.length; _i2++) {
|
|
182
|
-
var _route = _Object$keys[_i2];
|
|
183
|
-
sidebarRoutes.push(_route);
|
|
184
|
-
}
|
|
185
|
-
var uri = new URI(location.href);
|
|
186
|
-
uri.path = getNavigateUrl("/".concat(uri.path), indexRoute, sidebarRoutes);
|
|
187
|
-
if ("".concat(uri.path) !== window.location.pathname) {
|
|
188
|
-
uri.path = uri.path.slice(1);
|
|
189
|
-
navigate(uri.toURI().replace(location.origin, ''));
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// 改变菜单栏选中和 openKeys 状态
|
|
193
|
-
useEffect(function () {
|
|
194
|
-
if (window.location.pathname == indexRoute) {
|
|
195
|
-
setDefaultOpenKeys(getOpenKeys());
|
|
196
|
-
}
|
|
197
|
-
setDefaultSelectedKey(window.location.pathname);
|
|
198
|
-
}, [window.location.pathname]);
|
|
199
|
-
useEffect(function () {
|
|
200
|
-
// 监听选中的menu-item 拿到 prev and next
|
|
201
|
-
getPreAndNext();
|
|
202
|
-
}, [defaultSelectedKey]);
|
|
203
|
-
usePreview({}, defaultSelectedKey);
|
|
204
|
-
function getPreAndNext() {
|
|
205
|
-
var menuNodes = document.querySelectorAll('aside .ant-menu-item');
|
|
206
|
-
var currentMenuNode = document.querySelector('aside .ant-menu-item-selected');
|
|
207
|
-
// @ts-ignore
|
|
208
|
-
var currentIndex = Array.from(menuNodes).findIndex(function (node) {
|
|
209
|
-
return node === currentMenuNode;
|
|
210
|
-
});
|
|
211
|
-
var prevNode = currentIndex - 1 >= 0 ? menuNodes[currentIndex - 1] : undefined;
|
|
212
|
-
var nextNode = currentIndex + 1 < menuNodes.length ? menuNodes[currentIndex + 1] : undefined;
|
|
213
|
-
setPrev(prevNode ? {
|
|
214
|
-
slug: prevNode.getAttribute('link') || undefined,
|
|
215
|
-
title: prevNode.textContent || undefined
|
|
216
|
-
} : undefined);
|
|
217
|
-
setNext(nextNode ? {
|
|
218
|
-
slug: nextNode.getAttribute('link') || undefined,
|
|
219
|
-
title: nextNode.textContent || undefined
|
|
220
|
-
} : undefined);
|
|
221
|
-
}
|
|
222
|
-
var getGithubSourceUrl = function getGithubSourceUrl(_ref2) {
|
|
223
|
-
var githubUrl = _ref2.githubUrl,
|
|
224
|
-
relativePath = _ref2.relativePath,
|
|
225
|
-
prefix = _ref2.prefix;
|
|
226
|
-
// https://github.com/antvis/x6/tree/master/packages/x6-sites
|
|
227
|
-
if (githubUrl.includes('/tree/master/')) {
|
|
228
|
-
return "".concat(githubUrl.replace('/tree/master/', '/edit/master/'), "/").concat(prefix, "/").concat(relativePath);
|
|
229
|
-
}
|
|
230
|
-
return "".concat(githubUrl, "/edit/master/").concat(prefix, "/").concat(relativePath);
|
|
231
|
-
};
|
|
232
|
-
var menu = /*#__PURE__*/React.createElement(Menu, {
|
|
233
|
-
onClick: onClick,
|
|
234
|
-
onOpenChange: function onOpenChange(openKeys) {
|
|
235
|
-
setDefaultOpenKeys(openKeys);
|
|
236
|
-
},
|
|
237
|
-
selectedKeys: [defaultSelectedKey],
|
|
238
|
-
openKeys: defaultOpenKeys,
|
|
239
|
-
mode: "inline",
|
|
240
|
-
items: renderSidebar,
|
|
241
|
-
inlineIndent: 16,
|
|
242
|
-
style: {
|
|
243
|
-
height: '100%'
|
|
244
|
-
},
|
|
245
|
-
forceSubMenuRender: true,
|
|
246
|
-
triggerSubMenuAction: "click"
|
|
247
|
-
});
|
|
248
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SEO, {
|
|
249
|
-
title: linkoTitle[window.location.pathname],
|
|
250
|
-
lang: locale.id
|
|
251
|
-
}), /*#__PURE__*/React.createElement(Layout, {
|
|
252
|
-
style: {
|
|
253
|
-
background: '#fff'
|
|
254
|
-
},
|
|
8
|
+
return /*#__PURE__*/React.createElement(Layout, {
|
|
255
9
|
hasSider: true,
|
|
256
10
|
className: styles.layout
|
|
257
|
-
}, /*#__PURE__*/React.createElement(
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
style: {
|
|
261
|
-
height: is767Wide ? '100vh' : 'inherit'
|
|
262
|
-
}
|
|
263
|
-
}, is767Wide ? /*#__PURE__*/React.createElement(Layout.Sider, {
|
|
264
|
-
width: "auto",
|
|
265
|
-
theme: "light",
|
|
266
|
-
className: styles.sider
|
|
267
|
-
}, menu) : /*#__PURE__*/React.createElement(Drawer, {
|
|
268
|
-
handler: drawOpen ? /*#__PURE__*/React.createElement(MenuFoldOutlined, {
|
|
269
|
-
className: styles.menuSwitch
|
|
270
|
-
}) : /*#__PURE__*/React.createElement(MenuUnfoldOutlined, {
|
|
271
|
-
className: styles.menuSwitch
|
|
272
|
-
}),
|
|
273
|
-
wrapperClassName: styles.menuDrawer,
|
|
274
|
-
onChange: function onChange(open) {
|
|
275
|
-
return setDrawOpen(!!open);
|
|
276
|
-
},
|
|
277
|
-
width: 280
|
|
278
|
-
}, menu)), /*#__PURE__*/React.createElement(Layout.Content, {
|
|
279
|
-
className: styles.content
|
|
280
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
281
|
-
className: styles.main
|
|
282
|
-
}, /*#__PURE__*/React.createElement("h1", {
|
|
283
|
-
className: styles.contentTitle
|
|
284
|
-
}, linkoTitle[window.location.pathname]), /*#__PURE__*/React.createElement("div", {
|
|
285
|
-
className: styles.readtimeContainer
|
|
286
|
-
}, /*#__PURE__*/React.createElement(ReadingTime, {
|
|
287
|
-
readingTime: time,
|
|
288
|
-
className: styles.readtime
|
|
289
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
290
|
-
className: styles.markdown
|
|
291
|
-
}, children), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
|
|
292
|
-
className: styles.preandnext
|
|
293
|
-
}, /*#__PURE__*/React.createElement(NavigatorBanner, {
|
|
294
|
-
type: "prev",
|
|
295
|
-
post: prev
|
|
296
|
-
}), /*#__PURE__*/React.createElement(NavigatorBanner, {
|
|
297
|
-
type: "next",
|
|
298
|
-
post: next
|
|
299
|
-
}), /*#__PURE__*/React.createElement(BackTop, {
|
|
300
|
-
style: {
|
|
301
|
-
right: 32
|
|
302
|
-
}
|
|
303
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
304
|
-
className: styles.backTop
|
|
305
|
-
}, /*#__PURE__*/React.createElement(VerticalAlignTopOutlined, null))))))), is991Wide ? /*#__PURE__*/React.createElement(Layout.Sider, {
|
|
306
|
-
theme: "light",
|
|
307
|
-
width: 260
|
|
308
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
309
|
-
className: styles.toc
|
|
310
|
-
}, /*#__PURE__*/React.createElement(ContentTable, null))) : /*#__PURE__*/React.createElement("div", null)));
|
|
11
|
+
}, /*#__PURE__*/React.createElement(Sidebar, null), /*#__PURE__*/React.createElement(Suspense, {
|
|
12
|
+
fallback: null
|
|
13
|
+
}, /*#__PURE__*/React.createElement(Main, null, children)));
|
|
311
14
|
};
|