@antv/dumi-theme-antv 0.3.0-beta.4 → 0.3.0-beta.6

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.
@@ -1,17 +1,21 @@
1
1
  import React from 'react';
2
- export var Loading = function Loading() {
2
+ import styles from "./index.module.less";
3
+ /**
4
+ * Loading
5
+ */
6
+
7
+ var Loading = function Loading() {
3
8
  return /*#__PURE__*/React.createElement("div", {
4
- style: {
5
- height: '100vh'
6
- }
7
- }, /*#__PURE__*/React.createElement("div", {
8
9
  style: {
9
10
  position: 'relative',
10
- height: '100%'
11
+ height: '100%',
12
+ width: '100%'
11
13
  }
12
14
  }, /*#__PURE__*/React.createElement("div", {
13
- className: "code-loading"
14
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
15
+ className: styles.loading
16
+ }, /*#__PURE__*/React.createElement("div", {
17
+ className: "container"
18
+ }, /*#__PURE__*/React.createElement("div", {
15
19
  className: "loader"
16
20
  }, /*#__PURE__*/React.createElement("svg", {
17
21
  viewBox: "0 0 80 80"
@@ -61,5 +65,15 @@ export var Loading = function Loading() {
61
65
  stroke: "url(#gradient)"
62
66
  }))), /*#__PURE__*/React.createElement("div", {
63
67
  className: "loading-text"
64
- }, /*#__PURE__*/React.createElement("p", null, "Loading..."))))));
65
- };
68
+ }, /*#__PURE__*/React.createElement("p", null, "Loading...")))));
69
+ };
70
+
71
+ var PageLoading = function PageLoading() {
72
+ return /*#__PURE__*/React.createElement("div", {
73
+ style: {
74
+ height: '100vh'
75
+ }
76
+ }, /*#__PURE__*/React.createElement(Loading, null));
77
+ };
78
+
79
+ export { Loading, PageLoading };
@@ -1,12 +1,279 @@
1
- @import '~antd/es/style/themes/default.less';
1
+ .loading {
2
+ position: absolute;
3
+ left: 0;
4
+ top: 0;
5
+ z-index: 9999;
6
+ width: 100%;
7
+ height: 100%;
8
+ background-color: #fff;
9
+ border: 1px solid #f0f0f0;
2
10
 
3
- .container {
4
- padding: 30vh 0 0;
5
- text-align: center;
11
+ :global {
12
+ .container {
13
+ display: inline-block;
14
+ position: absolute;
15
+ left: 50%;
16
+ top: 50%;
17
+ margin: -50px 0 0 -120px;
18
+ }
19
+ .loader {
20
+ --duration: 3s;
21
+ width: 44px;
22
+ height: 44px;
23
+ position: relative;
24
+ display: inline-block;
25
+ margin: 0 16px;
26
+ }
27
+
28
+ .loader:before {
29
+ content: ' ';
30
+ width: 6px;
31
+ height: 6px;
32
+ border-radius: 50%;
33
+ position: absolute;
34
+ display: block;
35
+ background: #ff700a;
36
+ top: 37px;
37
+ left: 19px;
38
+ -webkit-transform: translate(-18px, -18px);
39
+ transform: translate(-18px, -18px);
40
+ -webkit-animation: dotRect var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
41
+ animation: dotRect var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
42
+ }
43
+
44
+ .loader svg {
45
+ display: block;
46
+ width: 100%;
47
+ height: 100%;
48
+ }
49
+
50
+ .loader svg rect,
51
+ .loader svg polygon,
52
+ .loader svg circle {
53
+ fill: none;
54
+ stroke-width: 10px;
55
+ stroke-linejoin: round;
56
+ stroke-linecap: round;
57
+ }
58
+
59
+ .loader svg polygon {
60
+ stroke-dasharray: 145 76 145 76;
61
+ stroke-dashoffset: 0;
62
+ -webkit-animation: pathTriangle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
63
+ animation: pathTriangle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
64
+ }
65
+
66
+ .loader svg rect {
67
+ stroke-dasharray: 192 64 192 64;
68
+ stroke-dashoffset: 0;
69
+ -webkit-animation: pathRect 3s cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
70
+ animation: pathRect 3s cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
71
+ }
72
+
73
+ .loader svg circle {
74
+ stroke-dasharray: 150 50 150 50;
75
+ stroke-dashoffset: 75;
76
+ -webkit-animation: pathCircle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
77
+ animation: pathCircle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
78
+ }
79
+
80
+ .loader.triangle {
81
+ width: 48px;
82
+ }
83
+
84
+ .loader.triangle:before {
85
+ left: 21px;
86
+ -webkit-transform: translate(-10px, -18px);
87
+ transform: translate(-10px, -18px);
88
+ -webkit-animation: dotTriangle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
89
+ animation: dotTriangle var(--duration) cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
90
+ }
91
+
92
+ .loading-text {
93
+ text-align: center;
94
+ height: 40px;
95
+ line-height: 40px;
96
+ font-size: 12px;
97
+ letter-spacing: 0.1em;
98
+ color: #666;
99
+ }
100
+ }
101
+ }
102
+
103
+ @-webkit-keyframes ~":global(pathTriangle)" {
104
+ 33% {
105
+ stroke-dashoffset: 74;
106
+ }
107
+
108
+ 66% {
109
+ stroke-dashoffset: 147;
110
+ }
111
+
112
+ 100% {
113
+ stroke-dashoffset: 221;
114
+ }
115
+ }
116
+
117
+ @keyframes ~":global(pathTriangle)" {
118
+ 33% {
119
+ stroke-dashoffset: 74;
120
+ }
121
+
122
+ 66% {
123
+ stroke-dashoffset: 147;
124
+ }
125
+
126
+ 100% {
127
+ stroke-dashoffset: 221;
128
+ }
129
+ }
130
+
131
+ @-webkit-keyframes ~":global(dotTriangle)" {
132
+ 33% {
133
+ -webkit-transform: translate(0, 0);
134
+ transform: translate(0, 0);
135
+ }
136
+
137
+ 66% {
138
+ -webkit-transform: translate(10px, -18px);
139
+ transform: translate(10px, -18px);
140
+ }
141
+
142
+ 100% {
143
+ -webkit-transform: translate(-10px, -18px);
144
+ transform: translate(-10px, -18px);
145
+ }
146
+ }
147
+
148
+ @keyframes ~":global(dotTriangle)" {
149
+ 33% {
150
+ -webkit-transform: translate(0, 0);
151
+ transform: translate(0, 0);
152
+ }
153
+
154
+ 66% {
155
+ -webkit-transform: translate(10px, -18px);
156
+ transform: translate(10px, -18px);
157
+ }
158
+
159
+ 100% {
160
+ -webkit-transform: translate(-10px, -18px);
161
+ transform: translate(-10px, -18px);
162
+ }
163
+ }
164
+
165
+ @-webkit-keyframes ~":global(pathRect)" {
166
+ 25% {
167
+ stroke-dashoffset: 64;
168
+ }
169
+
170
+ 50% {
171
+ stroke-dashoffset: 128;
172
+ }
173
+
174
+ 75% {
175
+ stroke-dashoffset: 192;
176
+ }
177
+
178
+ 100% {
179
+ stroke-dashoffset: 256;
180
+ }
181
+ }
182
+
183
+ @keyframes ~":global(pathRect)" {
184
+ 25% {
185
+ stroke-dashoffset: 64;
186
+ }
187
+
188
+ 50% {
189
+ stroke-dashoffset: 128;
190
+ }
191
+
192
+ 75% {
193
+ stroke-dashoffset: 192;
194
+ }
195
+
196
+ 100% {
197
+ stroke-dashoffset: 256;
198
+ }
199
+ }
200
+
201
+ @-webkit-keyframes ~":global(dotRect)" {
202
+ 25% {
203
+ -webkit-transform: translate(0, 0);
204
+ transform: translate(0, 0);
205
+ }
206
+
207
+ 50% {
208
+ -webkit-transform: translate(18px, -18px);
209
+ transform: translate(18px, -18px);
210
+ }
211
+
212
+ 75% {
213
+ -webkit-transform: translate(0, -36px);
214
+ transform: translate(0, -36px);
215
+ }
216
+
217
+ 100% {
218
+ -webkit-transform: translate(-18px, -18px);
219
+ transform: translate(-18px, -18px);
220
+ }
221
+ }
222
+
223
+ @keyframes ~":global(dotRect)" {
224
+ 25% {
225
+ -webkit-transform: translate(0, 0);
226
+ transform: translate(0, 0);
227
+ }
228
+
229
+ 50% {
230
+ -webkit-transform: translate(18px, -18px);
231
+ transform: translate(18px, -18px);
232
+ }
233
+
234
+ 75% {
235
+ -webkit-transform: translate(0, -36px);
236
+ transform: translate(0, -36px);
237
+ }
238
+
239
+ 100% {
240
+ -webkit-transform: translate(-18px, -18px);
241
+ transform: translate(-18px, -18px);
242
+ }
243
+ }
244
+
245
+ @-webkit-keyframes ~":global(pathCircle)" {
246
+ 25% {
247
+ stroke-dashoffset: 125;
248
+ }
249
+
250
+ 50% {
251
+ stroke-dashoffset: 175;
252
+ }
253
+
254
+ 75% {
255
+ stroke-dashoffset: 225;
256
+ }
257
+
258
+ 100% {
259
+ stroke-dashoffset: 275;
260
+ }
261
+ }
262
+
263
+ @keyframes ~":global(pathCircle)" {
264
+ 25% {
265
+ stroke-dashoffset: 125;
266
+ }
267
+
268
+ 50% {
269
+ stroke-dashoffset: 175;
270
+ }
271
+
272
+ 75% {
273
+ stroke-dashoffset: 225;
274
+ }
6
275
 
7
- .loading {
8
- font-size: 36px;
9
- color: @primary-color;
10
- text-align: center;
276
+ 100% {
277
+ stroke-dashoffset: 275;
11
278
  }
12
- }
279
+ }
@@ -1,11 +1,3 @@
1
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
-
3
- 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."); }
4
-
5
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
-
7
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
-
9
1
  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(_e2) { throw _e2; }, 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(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
10
2
 
11
3
  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; }
@@ -34,6 +26,7 @@ import { useLocale, useSiteData, useFullSidebarData, useRouteMeta } from 'dumi';
34
26
  import { useNavigate } from "react-router-dom";
35
27
  import { EditOutlined, MenuFoldOutlined, MenuUnfoldOutlined, VerticalAlignTopOutlined } from '@ant-design/icons';
36
28
  import readingTime from 'reading-time';
29
+ import { getBaseRoute, getIndexRoute, getOpenKeys } from "./utils";
37
30
  import { NavigatorBanner } from "./NavigatorBanner";
38
31
  import ReadingTime from "./ReadingTime";
39
32
  import { TOC } from "../TOC";
@@ -63,7 +56,7 @@ export var ManualContent = function ManualContent(_ref) {
63
56
  drawOpen = _useState2[0],
64
57
  setDrawOpen = _useState2[1];
65
58
 
66
- var navigate = useNavigate(); // 获取阅读时间
59
+ var navigate = useNavigate(); // 获取阅读时间
67
60
 
68
61
  var mdInfo = useRouteMeta();
69
62
  var text = mdInfo.texts.reduce(function (prev, next) {
@@ -71,141 +64,147 @@ export var ManualContent = function ManualContent(_ref) {
71
64
  }, '');
72
65
 
73
66
  var _readingTime = readingTime(text),
74
- time = _readingTime.time; // menu渲染
75
- // linkoTitle用来映射路由和Title
67
+ time = _readingTime.time; // linkoTitle用来映射路由和Title
76
68
 
77
69
 
78
70
  var linkoTitle = {};
79
71
 
80
- function getBaseRoute() {
81
- var matchRoute = window.location.pathname; // 兼容 zh
82
-
83
- matchRoute = matchRoute.replace('/zh/', '/'); // 兼容带有docs的route
84
-
85
- matchRoute = matchRoute.replace('/docs', ''); // 查找 baseRoute
86
-
87
- var reg = window.location.pathname.startsWith('/en') ? /(\/[A-z]*\/?\/[A-z]*)\/?/ : /(\/[A-z]*)\/?/;
88
- var mainRoute = matchRoute.match(reg);
89
- return mainRoute[1];
72
+ for (var _i2 = 0, _Object$values = Object.values(sidebar); _i2 < _Object$values.length; _i2++) {
73
+ var route = _Object$values[_i2];
74
+ route[0].children.forEach(function (item) {
75
+ linkoTitle[item.link] = item.title;
76
+ });
90
77
  }
78
+ /**
79
+ * /api/xxx --> /api
80
+ * /en/api --> /en/api
81
+ */
82
+
83
+
84
+ var baseRoute = getBaseRoute(); // 获取最终的 MenuData
85
+
86
+ var renderSidebar = getMenuData(sidebar, docs, baseRoute, []);
87
+
88
+ function getMenuData(funllSidebarData, rootList, hrefId, list) {
89
+ function fullSidebarDataToMenuData(rootList, hrefId, list) {
90
+ // 递归
91
+ rootList.forEach(function (item) {
92
+ var href = !baseRoute.startsWith('/en') ? "/".concat(item.slug) : "/en/".concat(item.slug);
93
+ var id = href.split("/").slice(0, href.split("/").length - 1).join("/");
94
+
95
+ if (href.includes(baseRoute)) {
96
+ if (id === hrefId) {
97
+ list.push(_objectSpread(_objectSpread({}, item), {}, {
98
+ key: href,
99
+ label: item.title[currentLocale]
100
+ }));
101
+ }
102
+ }
103
+ });
91
104
 
92
- var baseRoute = getBaseRoute();
93
-
94
- function fullSidebarDataToMenuData(rootList, hrefId, list) {
95
- // 递归
96
- rootList.forEach(function (item) {
97
- var href = !baseRoute.startsWith('/en') ? "/".concat(item.slug) : "/en/".concat(item.slug);
98
- var id = href.split("/").slice(0, href.split("/").length - 1).join("/");
99
-
100
- if (href.includes(baseRoute)) {
101
- if (id === hrefId) {
102
- list.push(_objectSpread(_objectSpread({}, item), {}, {
103
- key: href,
104
- label: item.title[currentLocale]
105
- }));
105
+ var _iterator = _createForOfIteratorHelper(list),
106
+ _step;
107
+
108
+ try {
109
+ var _loop = function _loop() {
110
+ var _funllSidebarData$ite;
111
+
112
+ var item = _step.value;
113
+ item.children = [];
114
+ fullSidebarDataToMenuData(rootList, item.key, item.children);
115
+ (_funllSidebarData$ite = funllSidebarData[item.key][0].children) === null || _funllSidebarData$ite === void 0 ? void 0 : _funllSidebarData$ite.forEach(function (itemChild) {
116
+ var label = itemChild.title;
117
+ var key = itemChild.link;
118
+ item.children.push(_objectSpread(_objectSpread({}, itemChild), {}, {
119
+ label: label,
120
+ key: key
121
+ }));
122
+ });
123
+
124
+ if (item.children.length == 0) {
125
+ delete item.children;
126
+ }
127
+ };
128
+
129
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
130
+ _loop();
106
131
  }
132
+ } catch (err) {
133
+ _iterator.e(err);
134
+ } finally {
135
+ _iterator.f();
107
136
  }
108
- });
109
137
 
110
- var _iterator = _createForOfIteratorHelper(list),
111
- _step;
138
+ if (hrefId == baseRoute) {
139
+ var _funllSidebarData$bas;
112
140
 
113
- try {
114
- var _loop = function _loop() {
115
- var _sidebar$item$key$0$c;
116
-
117
- var item = _step.value;
118
- item.children = [];
119
- fullSidebarDataToMenuData(rootList, item.key, item.children);
120
- (_sidebar$item$key$0$c = sidebar[item.key][0].children) === null || _sidebar$item$key$0$c === void 0 ? void 0 : _sidebar$item$key$0$c.forEach(function (itemChild) {
121
- var label = itemChild.title;
141
+ funllSidebarData[baseRoute] && ((_funllSidebarData$bas = funllSidebarData[baseRoute][0].children) === null || _funllSidebarData$bas === void 0 ? void 0 : _funllSidebarData$bas.forEach(function (itemChild) {
122
142
  var key = itemChild.link;
123
- item.children.push(_objectSpread(_objectSpread({}, itemChild), {}, {
143
+ var label = itemChild.title;
144
+ list.push(_objectSpread(_objectSpread({}, itemChild), {}, {
124
145
  label: label,
125
146
  key: key
126
147
  }));
127
- linkoTitle[key] = label;
148
+ }));
149
+ list.sort(function (a, b) {
150
+ return a.order - b.order;
128
151
  });
129
-
130
- if (item.children.length == 0) {
131
- delete item.children;
132
- }
133
- };
134
-
135
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
136
- _loop();
152
+ return list;
137
153
  }
138
- } catch (err) {
139
- _iterator.e(err);
140
- } finally {
141
- _iterator.f();
142
154
  }
143
155
 
144
- if (hrefId == baseRoute) {
145
- var _sidebar$baseRoute$0$;
156
+ return fullSidebarDataToMenuData(rootList, hrefId, list);
157
+ } // 获取打开的菜单栏
146
158
 
147
- sidebar[baseRoute] && ((_sidebar$baseRoute$0$ = sidebar[baseRoute][0].children) === null || _sidebar$baseRoute$0$ === void 0 ? void 0 : _sidebar$baseRoute$0$.forEach(function (itemChild) {
148
- var key = itemChild.link;
149
- var label = itemChild.title;
150
- list.push(_objectSpread(_objectSpread({}, itemChild), {}, {
151
- label: label,
152
- key: key
153
- }));
154
- linkoTitle[key] = label;
155
- }));
156
- list.sort(function (a, b) {
157
- return a.order - b.order;
158
- });
159
- return list;
160
- }
161
- } // 获取最终的 MenuData
162
-
163
-
164
- var renderSidebar = fullSidebarDataToMenuData(docs, baseRoute, []); // 获取默认打开的菜单栏
165
159
 
166
- function getDefaultOpenKeys(MenuData) {
167
- var defaultOpenKeys = [];
168
- var topRoute = MenuData[0];
169
- defaultOpenKeys.push(topRoute.key);
160
+ var _useState3 = useState(function () {
161
+ return getOpenKeys();
162
+ }),
163
+ _useState4 = _slicedToArray(_useState3, 2),
164
+ defaultOpenKeys = _useState4[0],
165
+ setDefaultOpenKeys = _useState4[1]; // 获取第一个md文件的路由
170
166
 
171
- while (topRoute.children) {
172
- topRoute = topRoute.children[0];
173
- defaultOpenKeys.push(topRoute.key);
174
- }
175
167
 
176
- return defaultOpenKeys;
177
- }
178
-
179
- var defaultOpenKeys = getDefaultOpenKeys(renderSidebar);
180
- var indexRoute = defaultOpenKeys[defaultOpenKeys.length - 1]; // 点击菜单栏
168
+ var indexRoute = getIndexRoute(renderSidebar); // 点击菜单栏
181
169
 
182
170
  var onClick = function onClick(e) {
183
171
  navigate(e.key);
184
172
  useScrollToTop();
185
173
  };
186
174
 
187
- var _useState3 = useState(renderSidebar.length !== 0 ? [renderSidebar[0].key] : ['']),
188
- _useState4 = _slicedToArray(_useState3, 2),
189
- defaultSelectedKey = _useState4[0],
190
- setDefaultSelectedKey = _useState4[1]; //上一夜下一页
191
-
192
-
193
- var _useState5 = useState(undefined),
175
+ var _useState5 = useState(renderSidebar.length !== 0 ? [renderSidebar[0].key] : ['']),
194
176
  _useState6 = _slicedToArray(_useState5, 2),
195
- prev = _useState6[0],
196
- setPrev = _useState6[1];
177
+ defaultSelectedKey = _useState6[0],
178
+ setDefaultSelectedKey = _useState6[1]; //上一夜下一页
179
+
197
180
 
198
181
  var _useState7 = useState(undefined),
199
182
  _useState8 = _slicedToArray(_useState7, 2),
200
- next = _useState8[0],
201
- setNext = _useState8[1]; // 监听路由去改变 selected menu-item
183
+ prev = _useState8[0],
184
+ setPrev = _useState8[1];
185
+
186
+ var _useState9 = useState(undefined),
187
+ _useState10 = _slicedToArray(_useState9, 2),
188
+ next = _useState10[0],
189
+ setNext = _useState10[1]; // 所有的 sidebar 路由
190
+
191
+
192
+ var sidebarRoutes = [];
193
+
194
+ for (var _i3 = 0, _Object$keys = Object.keys(linkoTitle); _i3 < _Object$keys.length; _i3++) {
195
+ var route = _Object$keys[_i3];
196
+ sidebarRoutes.push(route);
197
+ } // 兜底 如果 nav 指定有误则自动重定向到 indexDocRoute
198
+
199
+
200
+ if (window.location.pathname.startsWith('/docs/') || !sidebarRoutes.includes(window.location.pathname)) {
201
+ navigate(indexRoute);
202
+ } // 改变菜单栏选中和 openKeys 状态
202
203
 
203
204
 
204
205
  useEffect(function () {
205
- // 兜底 如果 nav 指定有误则重定向到 indexDocRoute
206
- if (window.location.pathname !== indexRoute) {
207
- navigate(indexRoute);
208
- return;
206
+ if (window.location.pathname == indexRoute) {
207
+ setDefaultOpenKeys(getOpenKeys());
209
208
  }
210
209
 
211
210
  setDefaultSelectedKey([window.location.pathname]);
@@ -249,16 +248,19 @@ export var ManualContent = function ManualContent(_ref) {
249
248
 
250
249
  var menu = /*#__PURE__*/React.createElement(Menu, {
251
250
  onClick: onClick,
252
- defaultSelectedKeys: defaultSelectedKey,
251
+ onOpenChange: function onOpenChange(openKeys) {
252
+ setDefaultOpenKeys(openKeys);
253
+ },
253
254
  selectedKeys: defaultSelectedKey,
254
- defaultOpenKeys: _toConsumableArray(defaultOpenKeys),
255
+ openKeys: defaultOpenKeys,
255
256
  mode: "inline",
256
257
  items: renderSidebar,
257
258
  inlineIndent: 16,
258
259
  style: {
259
260
  height: '100%'
260
261
  },
261
- forceSubMenuRender: true
262
+ forceSubMenuRender: true,
263
+ triggerSubMenuAction: "click"
262
264
  });
263
265
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Layout, {
264
266
  style: {
@@ -0,0 +1,3 @@
1
+ export declare function getOpenKeys(): any[];
2
+ export declare function getBaseRoute(): string;
3
+ export declare function getIndexRoute(MenuData: any): any;
@@ -0,0 +1,35 @@
1
+ export function getOpenKeys() {
2
+ var pathname = window.location.pathname;
3
+ var pathArr = pathname.split('/');
4
+ var openKeys = [];
5
+
6
+ for (var i = pathArr.length; i > 0; i--) {
7
+ var tem = pathArr.slice(0, i);
8
+ openKeys.push(tem.join('/'));
9
+ }
10
+
11
+ return openKeys;
12
+ }
13
+ export function getBaseRoute() {
14
+ var matchRoute = window.location.pathname; // 兼容 zh
15
+
16
+ matchRoute = matchRoute.replace('/zh/', '/'); // 兼容带有docs的route
17
+
18
+ matchRoute = matchRoute.replace('/docs', ''); // 查找 baseRoute
19
+
20
+ var reg = window.location.pathname.startsWith('/en') ? /(\/[A-z]*\/?\/[A-z]*)\/?/ : /(\/[A-z]*)\/?/;
21
+ var mainRoute = matchRoute.match(reg);
22
+ return mainRoute[1];
23
+ }
24
+ export function getIndexRoute(MenuData) {
25
+ var defaultOpenKeys = [];
26
+ var topRoute = MenuData[0];
27
+ defaultOpenKeys.push(topRoute.key);
28
+
29
+ while (topRoute.children) {
30
+ topRoute = topRoute.children[0];
31
+ defaultOpenKeys.push(topRoute.key);
32
+ }
33
+
34
+ return defaultOpenKeys[defaultOpenKeys.length - 1];
35
+ }
@@ -1,5 +1,5 @@
1
- import { Status } from '../types';
1
+ import { Status, TreeNode } from '../types';
2
2
  export declare function ping(): Promise<Status>;
3
3
  export declare const getChinaMirrorHost: (host?: string) => string;
4
4
  export declare function getGithubSourceURL(githubUrl: string, relativePath: string, prefix?: string): string;
5
- export declare const filterTreeNode: (treeNode: ExamplesPage.TreeNode, keyValue: string, locale: string) => ExamplesPage.TreeNode;
5
+ export declare const filterTreeNode: (treeNode: TreeNode, keyValue: string, locale: string) => TreeNode;