dumi 2.2.1 → 2.2.3
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/compiled/crates/swc_plugin_react_demo.wasm +0 -0
- package/dist/assetParsers/atom.js +15 -5
- package/dist/assetParsers/block.js +27 -9
- package/dist/cli.js +8 -1
- package/dist/client/pages/Demo/index.js +3 -8
- package/dist/client/theme-api/AtomRenderer.d.ts +2 -2
- package/dist/client/theme-api/AtomRenderer.js +19 -35
- package/dist/client/theme-api/DumiDemo.js +8 -13
- package/dist/client/theme-api/DumiDemoGrid.js +12 -26
- package/dist/client/theme-api/DumiPage.js +16 -34
- package/dist/client/theme-api/openCodeSandbox.js +18 -23
- package/dist/client/theme-api/openStackBlitz.js +6 -14
- package/dist/client/theme-api/types.d.ts +15 -12
- package/dist/client/theme-api/useAtomAssets.js +1 -2
- package/dist/client/theme-api/useLocale.js +10 -19
- package/dist/client/theme-api/useNavData.js +78 -103
- package/dist/client/theme-api/usePrefersColor.d.ts +2 -2
- package/dist/client/theme-api/usePrefersColor.js +39 -66
- package/dist/client/theme-api/useRouteMeta.js +9 -23
- package/dist/client/theme-api/useSidebarData.js +124 -158
- package/dist/client/theme-api/useSiteSearch/index.d.ts +1 -1
- package/dist/client/theme-api/useSiteSearch/index.js +24 -38
- package/dist/client/theme-api/useTabMeta.js +8 -19
- package/dist/client/theme-api/utils.d.ts +2 -2
- package/dist/client/theme-api/utils.js +33 -47
- package/dist/client/typings.d.ts +0 -5
- package/dist/features/assets.js +23 -4
- package/dist/features/autoAlias.js +8 -3
- package/dist/features/compile/babelLoaderCustomize.js +0 -2
- package/dist/features/compile/index.js +20 -9
- package/dist/features/configPlugins/index.js +3 -4
- package/dist/features/configPlugins/schema.d.ts +1 -1
- package/dist/features/configPlugins/schema.js +20 -3
- package/dist/features/derivative.js +54 -11
- package/dist/features/exportStatic.js +11 -7
- package/dist/features/exports.js +8 -3
- package/dist/features/html2sketch.js +7 -5
- package/dist/features/locales.js +53 -17
- package/dist/features/meta.js +23 -10
- package/dist/features/parser.js +17 -5
- package/dist/features/routes.js +63 -24
- package/dist/features/sideEffects/docSideEffectsWebpackPlugin.js +27 -16
- package/dist/features/sideEffects/index.js +13 -4
- package/dist/features/sitemap.js +17 -5
- package/dist/features/tabs.js +23 -11
- package/dist/features/theme/index.js +133 -38
- package/dist/features/theme/loader.js +23 -7
- package/dist/index.js +10 -2
- package/dist/loaders/demo/index.js +3 -3
- package/dist/loaders/markdown/index.d.ts +1 -1
- package/dist/loaders/markdown/index.js +36 -24
- package/dist/loaders/markdown/transformer/index.d.ts +2 -1
- package/dist/loaders/markdown/transformer/index.js +34 -17
- package/dist/loaders/markdown/transformer/rehypeDemo.d.ts +3 -1
- package/dist/loaders/markdown/transformer/rehypeDemo.js +125 -68
- package/dist/loaders/markdown/transformer/rehypeDesc.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeEnhancedTag.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeHighlightLine.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeImg.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeIsolation.js +36 -21
- package/dist/loaders/markdown/transformer/rehypeJsxify.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeLink.d.ts +1 -1
- package/dist/loaders/markdown/transformer/rehypeLink.js +24 -9
- package/dist/loaders/markdown/transformer/rehypeRaw.d.ts +1 -1
- package/dist/loaders/markdown/transformer/rehypeRaw.js +20 -6
- package/dist/loaders/markdown/transformer/rehypeSlug.js +16 -3
- package/dist/loaders/markdown/transformer/rehypeStrip.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeText.js +14 -5
- package/dist/loaders/markdown/transformer/remarkBreaks.js +16 -5
- package/dist/loaders/markdown/transformer/remarkContainer.js +28 -13
- package/dist/loaders/markdown/transformer/remarkEmbed.js +43 -21
- package/dist/loaders/markdown/transformer/remarkMeta.d.ts +3 -1
- package/dist/loaders/markdown/transformer/remarkMeta.js +39 -9
- package/dist/loaders/page/index.js +12 -4
- package/dist/loaders/pre-raw/index.js +0 -2
- package/dist/preset.js +8 -3
- package/dist/registerMethods.js +0 -2
- package/dist/service/dev.js +8 -1
- package/dist/service/printHelp.js +3 -1
- package/dist/techStacks/react.js +8 -3
- package/dist/types.d.ts +6 -6
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +15 -6
- package/package.json +11 -9
- package/theme-default/builtins/API/index.js +15 -36
- package/theme-default/builtins/Badge/index.js +0 -3
- package/theme-default/builtins/Container/index.js +6 -15
- package/theme-default/builtins/Previewer/index.js +1 -8
- package/theme-default/builtins/SourceCode/index.js +15 -27
- package/theme-default/builtins/Table/index.js +10 -25
- package/theme-default/builtins/Tree/index.js +13 -44
- package/theme-default/layouts/DocLayout/index.js +14 -27
- package/theme-default/locales/en-US.json +4 -0
- package/theme-default/locales/zh-CN.json +4 -0
- package/theme-default/slots/ColorSwitch/index.js +7 -22
- package/theme-default/slots/Content/index.js +5 -7
- package/theme-default/slots/Content/index.less +16 -1
- package/theme-default/slots/ContentFooter/index.d.ts +4 -0
- package/theme-default/slots/ContentFooter/index.js +93 -0
- package/theme-default/slots/ContentFooter/index.less +163 -0
- package/theme-default/slots/ContentTabs/index.d.ts +1 -1
- package/theme-default/slots/ContentTabs/index.js +5 -5
- package/theme-default/slots/Features/index.js +6 -11
- package/theme-default/slots/Footer/index.js +1 -4
- package/theme-default/slots/Header/index.js +7 -18
- package/theme-default/slots/HeaderExtra/index.js +0 -2
- package/theme-default/slots/Hero/index.js +2 -6
- package/theme-default/slots/HeroTitle/index.js +0 -2
- package/theme-default/slots/LangSwitch/index.js +23 -35
- package/theme-default/slots/Logo/index.js +1 -4
- package/theme-default/slots/Navbar/index.js +14 -29
- package/theme-default/slots/NavbarExtra/index.js +0 -2
- package/theme-default/slots/NotFound/index.js +0 -2
- package/theme-default/slots/PreviewerActions/index.js +13 -35
- package/theme-default/slots/PreviewerActionsExtra/index.js +0 -2
- package/theme-default/slots/RtlSwitch/index.js +6 -20
- package/theme-default/slots/RtlSwitch/index.less +5 -0
- package/theme-default/slots/SearchBar/Input.d.ts +1 -1
- package/theme-default/slots/SearchBar/Input.js +6 -5
- package/theme-default/slots/SearchBar/Mask.d.ts +1 -1
- package/theme-default/slots/SearchBar/Mask.js +0 -1
- package/theme-default/slots/SearchBar/index.js +20 -41
- package/theme-default/slots/SearchResult/index.d.ts +1 -1
- package/theme-default/slots/SearchResult/index.js +13 -36
- package/theme-default/slots/Sidebar/index.js +1 -4
- package/theme-default/slots/SocialIcon/index.d.ts +2 -2
- package/theme-default/slots/SocialIcon/index.js +1 -3
- package/theme-default/slots/Toc/index.js +12 -28
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
var _navigator;
|
|
2
|
-
|
|
3
2
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
-
|
|
5
3
|
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."); }
|
|
6
|
-
|
|
7
4
|
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
|
-
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
12
|
-
|
|
5
|
+
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; }
|
|
6
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
13
7
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
-
|
|
15
8
|
import { ReactComponent as IconArrowDown } from '@ant-design/icons-svg/inline-svg/outlined/arrow-down.svg';
|
|
16
9
|
import { ReactComponent as IconArrowUp } from '@ant-design/icons-svg/inline-svg/outlined/arrow-up.svg';
|
|
17
10
|
import { ReactComponent as IconSearch } from '@ant-design/icons-svg/inline-svg/outlined/search.svg';
|
|
@@ -24,57 +17,47 @@ import { Mask } from "./Mask";
|
|
|
24
17
|
export { Input as SearchInput } from "./Input";
|
|
25
18
|
export { Mask as SearchMask } from "./Mask";
|
|
26
19
|
var isAppleDevice = /(mac|iphone|ipod|ipad)/i.test(typeof navigator !== 'undefined' ? (_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.platform : '');
|
|
27
|
-
/** Determine if the element that triggered the event is an input element */
|
|
28
20
|
|
|
21
|
+
/** Determine if the element that triggered the event is an input element */
|
|
29
22
|
var isInput = function isInput(target) {
|
|
30
23
|
return ['TEXTAREA', 'INPUT'].includes(target.tagName) || target.contentEditable === 'true';
|
|
31
24
|
};
|
|
32
|
-
|
|
33
25
|
var SearchBar = function SearchBar() {
|
|
34
26
|
var _useState = useState(false),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
28
|
+
focusing = _useState2[0],
|
|
29
|
+
setFocusing = _useState2[1];
|
|
39
30
|
var inputRef = useRef(null);
|
|
40
31
|
var modalInputRef = useRef(null);
|
|
41
|
-
|
|
42
32
|
var _useState3 = useState('⌘'),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
33
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
34
|
+
symbol = _useState4[0],
|
|
35
|
+
setSymbol = _useState4[1];
|
|
47
36
|
var _useSiteSearch = useSiteSearch(),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
37
|
+
keywords = _useSiteSearch.keywords,
|
|
38
|
+
setKeywords = _useSiteSearch.setKeywords,
|
|
39
|
+
result = _useSiteSearch.result,
|
|
40
|
+
loading = _useSiteSearch.loading;
|
|
53
41
|
var _useState5 = useState(false),
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
42
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
43
|
+
modalVisible = _useState6[0],
|
|
44
|
+
setModalVisible = _useState6[1];
|
|
58
45
|
useEffect(function () {
|
|
59
46
|
// why put useEffect?
|
|
60
47
|
// to avoid Text content mismatch between server & client in ssr
|
|
61
48
|
if (!isAppleDevice) {
|
|
62
49
|
setSymbol('Ctrl');
|
|
63
50
|
}
|
|
64
|
-
|
|
65
51
|
var handler = function handler(ev) {
|
|
66
52
|
if ((isAppleDevice ? ev.metaKey : ev.ctrlKey) && ev.key === 'k' || ev.key === '/' && !isInput(ev.target)) {
|
|
67
53
|
ev.preventDefault();
|
|
68
|
-
|
|
69
54
|
if (inputRef.current) {
|
|
70
55
|
var _inputRef$current$get = inputRef.current.getBoundingClientRect(),
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
56
|
+
top = _inputRef$current$get.top,
|
|
57
|
+
bottom = _inputRef$current$get.bottom,
|
|
58
|
+
left = _inputRef$current$get.left,
|
|
59
|
+
right = _inputRef$current$get.right;
|
|
76
60
|
var isInViewport = top >= 0 && left >= 0 && bottom <= window.innerHeight && right <= window.innerWidth;
|
|
77
|
-
|
|
78
61
|
if (isInViewport) {
|
|
79
62
|
inputRef.current.focus();
|
|
80
63
|
} else {
|
|
@@ -82,19 +65,16 @@ var SearchBar = function SearchBar() {
|
|
|
82
65
|
setModalVisible(true);
|
|
83
66
|
setTimeout(function () {
|
|
84
67
|
var _modalInputRef$curren;
|
|
85
|
-
|
|
86
68
|
(_modalInputRef$curren = modalInputRef.current) === null || _modalInputRef$curren === void 0 ? void 0 : _modalInputRef$curren.focus();
|
|
87
69
|
});
|
|
88
70
|
}
|
|
89
71
|
}
|
|
90
72
|
}
|
|
91
|
-
|
|
92
73
|
if (ev.key === 'Escape') {
|
|
93
74
|
ev.preventDefault();
|
|
94
75
|
setModalVisible(false);
|
|
95
76
|
}
|
|
96
77
|
};
|
|
97
|
-
|
|
98
78
|
document.addEventListener('keydown', handler);
|
|
99
79
|
return function () {
|
|
100
80
|
return document.removeEventListener('keydown', handler);
|
|
@@ -183,5 +163,4 @@ var SearchBar = function SearchBar() {
|
|
|
183
163
|
className: "dumi-default-search-modal-commands-text"
|
|
184
164
|
}, "to close"))))));
|
|
185
165
|
};
|
|
186
|
-
|
|
187
166
|
export default SearchBar;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type useSiteSearch } from 'dumi';
|
|
2
2
|
import { type FC } from 'react';
|
|
3
3
|
import './index.less';
|
|
4
|
-
|
|
4
|
+
type ISearchResult = ReturnType<typeof useSiteSearch>['result'];
|
|
5
5
|
declare const SearchResult: FC<{
|
|
6
6
|
data: ISearchResult;
|
|
7
7
|
loading: boolean;
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
|
|
3
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."); }
|
|
4
|
-
|
|
5
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); }
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
-
|
|
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(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
11
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
-
|
|
13
7
|
import { ReactComponent as IconInbox } from '@ant-design/icons-svg/inline-svg/outlined/inbox.svg';
|
|
14
8
|
import { FormattedMessage, history, Link } from 'dumi';
|
|
15
9
|
import React, { Fragment, useCallback, useEffect, useState } from 'react';
|
|
16
10
|
import "./index.less";
|
|
17
|
-
|
|
18
11
|
var IconTitle = function IconTitle() {
|
|
19
12
|
return /*#__PURE__*/React.createElement("svg", {
|
|
20
13
|
viewBox: "0 0 32 32",
|
|
@@ -27,7 +20,6 @@ var IconTitle = function IconTitle() {
|
|
|
27
20
|
d: "M5.333 18.667h21.334c.889 0 1.333.444 1.333 1.333s-.444 1.333-1.333 1.333H5.333C4.444 21.333 4 20.89 4 20s.444-1.333 1.333-1.333Z"
|
|
28
21
|
}));
|
|
29
22
|
};
|
|
30
|
-
|
|
31
23
|
var IconPage = function IconPage() {
|
|
32
24
|
return /*#__PURE__*/React.createElement("svg", {
|
|
33
25
|
viewBox: "0 0 32 32",
|
|
@@ -36,7 +28,6 @@ var IconPage = function IconPage() {
|
|
|
36
28
|
d: "M9.402 0h14.78L30 6.16V24.5c0 1.933-1.71 3.5-3.589 3.5H9.401C7.524 28 6 26.433 6 24.5v-21C6 1.567 7.523 0 9.402 0ZM23 2v4.183c0 .451.366.817.817.817H28l-5-5Zm3.333 24c.92 0 1.667-.768 1.667-1.714V8.857h-5c-.92 0-1.667-.767-1.667-1.714V2H9.667C8.747 2 8 2.768 8 3.714v20.572C8 25.232 8.746 26 9.667 26h16.666Z"
|
|
37
29
|
}));
|
|
38
30
|
};
|
|
39
|
-
|
|
40
31
|
var IconContent = function IconContent() {
|
|
41
32
|
return /*#__PURE__*/React.createElement("svg", {
|
|
42
33
|
viewBox: "0 0 32 32",
|
|
@@ -45,7 +36,6 @@ var IconContent = function IconContent() {
|
|
|
45
36
|
d: "M6.12 14.589h6.628l1.52 4.004h2.485l-5.938-15.19H8.053L2.115 18.732H4.6l1.52-4.143ZM8.88 6.855c.139-.414.277-.828.415-1.38h.138c0 .138.138.414.414 1.104 0 .138.138.276.138.276 0 .138.829 2.072 2.21 5.938H6.672c1.519-3.866 2.21-5.8 2.21-5.938Zm8.148 2.348h12.705v1.933H17.029V9.203ZM2.115 20.665h27.619v1.933H2.114v-1.933Zm14.914-5.662h12.705v1.933H17.029v-1.933ZM2.115 26.327h27.619v1.933H2.114v-1.933ZM17.029 3.54h12.705v1.934H17.029V3.54Z"
|
|
46
37
|
}));
|
|
47
38
|
};
|
|
48
|
-
|
|
49
39
|
var IconDemo = function IconDemo() {
|
|
50
40
|
return /*#__PURE__*/React.createElement("svg", {
|
|
51
41
|
viewBox: "0 0 32 32",
|
|
@@ -54,14 +44,12 @@ var IconDemo = function IconDemo() {
|
|
|
54
44
|
d: "M28 6h-5a5 5 0 0 0-10 0H8a2 2 0 0 0-2 2v5a5 5 0 0 0 0 10v5a2 2 0 0 0 2 2h7v-2a3 3 0 0 1 6 0v2h7a2 2 0 0 0 2-2v-7h-2a3 3 0 0 1 0-6h2V8a2 2 0 0 0-2-2Zm-5 12a5 5 0 0 0 5 5v5h-5a5 5 0 0 0-10 0H8v-7H6a3 3 0 0 1 0-6h2V8h7V6a3 3 0 0 1 6 0v2h7v5a5 5 0 0 0-5 5Z"
|
|
55
45
|
}));
|
|
56
46
|
};
|
|
57
|
-
|
|
58
47
|
var ICONS_MAPPING = {
|
|
59
48
|
title: IconTitle,
|
|
60
49
|
page: IconPage,
|
|
61
50
|
content: IconContent,
|
|
62
51
|
demo: IconDemo
|
|
63
52
|
};
|
|
64
|
-
|
|
65
53
|
var Highlight = function Highlight(props) {
|
|
66
54
|
return /*#__PURE__*/React.createElement(React.Fragment, null, props.texts.map(function (text, idx) {
|
|
67
55
|
return /*#__PURE__*/React.createElement(Fragment, {
|
|
@@ -69,7 +57,6 @@ var Highlight = function Highlight(props) {
|
|
|
69
57
|
}, text.highlighted ? /*#__PURE__*/React.createElement("mark", null, text.text) : text.text);
|
|
70
58
|
}));
|
|
71
59
|
};
|
|
72
|
-
|
|
73
60
|
var useFlatSearchData = function useFlatSearchData(data) {
|
|
74
61
|
var update = useCallback(function () {
|
|
75
62
|
var activeIndex = 0;
|
|
@@ -83,7 +70,6 @@ var useFlatSearchData = function useFlatSearchData(data) {
|
|
|
83
70
|
}
|
|
84
71
|
});
|
|
85
72
|
}
|
|
86
|
-
|
|
87
73
|
item.hints.forEach(function (hint) {
|
|
88
74
|
ret.push({
|
|
89
75
|
type: 'hint',
|
|
@@ -94,29 +80,24 @@ var useFlatSearchData = function useFlatSearchData(data) {
|
|
|
94
80
|
});
|
|
95
81
|
return [ret, activeIndex];
|
|
96
82
|
}, [data]);
|
|
97
|
-
|
|
98
83
|
var _useState = useState(update),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
84
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
85
|
+
flatData = _useState2[0],
|
|
86
|
+
setFlatData = _useState2[1];
|
|
103
87
|
useEffect(function () {
|
|
104
88
|
setFlatData(update);
|
|
105
89
|
}, [data]);
|
|
106
90
|
return flatData;
|
|
107
91
|
};
|
|
108
|
-
|
|
109
92
|
var SearchResult = function SearchResult(props) {
|
|
110
93
|
var _useFlatSearchData = useFlatSearchData(props.data),
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
94
|
+
_useFlatSearchData2 = _slicedToArray(_useFlatSearchData, 2),
|
|
95
|
+
data = _useFlatSearchData2[0],
|
|
96
|
+
histsCount = _useFlatSearchData2[1];
|
|
115
97
|
var _useState3 = useState(-1),
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
98
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
99
|
+
activeIndex = _useState4[0],
|
|
100
|
+
setActiveIndex = _useState4[1];
|
|
120
101
|
useEffect(function () {
|
|
121
102
|
var handler = function handler(ev) {
|
|
122
103
|
// TODO: scroll into view for invisible items
|
|
@@ -126,7 +107,6 @@ var SearchResult = function SearchResult(props) {
|
|
|
126
107
|
setActiveIndex((activeIndex + histsCount - 1) % histsCount);
|
|
127
108
|
} else if (ev.key === 'Enter' && activeIndex >= 0) {
|
|
128
109
|
var _props$onItemSelect;
|
|
129
|
-
|
|
130
110
|
var _item = data.find(function (item) {
|
|
131
111
|
return item.type === 'hint' && item.activeIndex === activeIndex;
|
|
132
112
|
}).value;
|
|
@@ -134,12 +114,10 @@ var SearchResult = function SearchResult(props) {
|
|
|
134
114
|
(_props$onItemSelect = props.onItemSelect) === null || _props$onItemSelect === void 0 ? void 0 : _props$onItemSelect.call(props, _item);
|
|
135
115
|
document.activeElement.blur();
|
|
136
116
|
}
|
|
137
|
-
|
|
138
117
|
if (['Escape', 'Enter'].includes(ev.key)) {
|
|
139
118
|
setActiveIndex(-1);
|
|
140
119
|
}
|
|
141
120
|
};
|
|
142
|
-
|
|
143
121
|
document.addEventListener('keydown', handler);
|
|
144
122
|
return function () {
|
|
145
123
|
return document.removeEventListener('keydown', handler);
|
|
@@ -149,7 +127,8 @@ var SearchResult = function SearchResult(props) {
|
|
|
149
127
|
className: "dumi-default-search-result",
|
|
150
128
|
onMouseEnter: function onMouseEnter() {
|
|
151
129
|
return setActiveIndex(-1);
|
|
152
|
-
}
|
|
130
|
+
}
|
|
131
|
+
// for ux, only hide result when mouse up
|
|
153
132
|
,
|
|
154
133
|
onMouseDownCapture: function onMouseDownCapture(ev) {
|
|
155
134
|
return ev.preventDefault();
|
|
@@ -167,7 +146,6 @@ var SearchResult = function SearchResult(props) {
|
|
|
167
146
|
"data-active": activeIndex === item.activeIndex || undefined,
|
|
168
147
|
onClick: function onClick() {
|
|
169
148
|
var _props$onItemSelect2;
|
|
170
|
-
|
|
171
149
|
return (_props$onItemSelect2 = props.onItemSelect) === null || _props$onItemSelect2 === void 0 ? void 0 : _props$onItemSelect2.call(props, item.value);
|
|
172
150
|
}
|
|
173
151
|
}, /*#__PURE__*/React.createElement(ICONS_MAPPING[item.value.type]), /*#__PURE__*/React.createElement("h4", null, /*#__PURE__*/React.createElement(Highlight, {
|
|
@@ -181,5 +159,4 @@ var SearchResult = function SearchResult(props) {
|
|
|
181
159
|
id: "search.not.found"
|
|
182
160
|
})));
|
|
183
161
|
};
|
|
184
|
-
|
|
185
162
|
export default SearchResult;
|
|
@@ -2,11 +2,9 @@ import { NavLink, useLocation, useRouteMeta, useSidebarData } from 'dumi';
|
|
|
2
2
|
import Toc from 'dumi/theme/slots/Toc';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import "./index.less";
|
|
5
|
-
|
|
6
5
|
var Sidebar = function Sidebar() {
|
|
7
6
|
var _useLocation = useLocation(),
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
pathname = _useLocation.pathname;
|
|
10
8
|
var meta = useRouteMeta();
|
|
11
9
|
var sidebar = useSidebarData();
|
|
12
10
|
if (!sidebar) return null;
|
|
@@ -27,5 +25,4 @@ var Sidebar = function Sidebar() {
|
|
|
27
25
|
}));
|
|
28
26
|
}));
|
|
29
27
|
};
|
|
30
|
-
|
|
31
28
|
export default Sidebar;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { SocialTypes } from "../../../theme-api/types";
|
|
2
2
|
import { FunctionComponent, type FC } from 'react';
|
|
3
3
|
import './index.less';
|
|
4
|
-
export
|
|
4
|
+
export type SocialIconProps = {
|
|
5
5
|
icon: SocialTypes;
|
|
6
6
|
link: string;
|
|
7
7
|
};
|
|
8
|
-
export
|
|
8
|
+
export type PresetSocialIcon = {
|
|
9
9
|
Icon: FunctionComponent;
|
|
10
10
|
titleIntlId: string;
|
|
11
11
|
};
|
|
@@ -19,10 +19,9 @@ var presetIconMap = {
|
|
|
19
19
|
yuque: IconYuque,
|
|
20
20
|
linkedin: IconLinkedin
|
|
21
21
|
};
|
|
22
|
-
|
|
23
22
|
var SocialIcon = function SocialIcon(props) {
|
|
24
23
|
var icon = props.icon,
|
|
25
|
-
|
|
24
|
+
link = props.link;
|
|
26
25
|
var intl = useIntl();
|
|
27
26
|
var preset = useMemo(function () {
|
|
28
27
|
return {
|
|
@@ -41,5 +40,4 @@ var SocialIcon = function SocialIcon(props) {
|
|
|
41
40
|
rel: "noreferrer"
|
|
42
41
|
}, /*#__PURE__*/React.createElement(preset.Icon, null));
|
|
43
42
|
};
|
|
44
|
-
|
|
45
43
|
export default SocialIcon;
|
|
@@ -1,49 +1,34 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
-
|
|
5
3
|
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."); }
|
|
6
|
-
|
|
7
4
|
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
|
-
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
12
|
-
|
|
5
|
+
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; }
|
|
6
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
13
7
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
-
|
|
15
8
|
import { Scrollspy as ScrollSpy } from '@makotot/ghostui/src/Scrollspy';
|
|
16
9
|
import { history, Link, useLocation, useRouteMeta, useSiteData, useTabMeta } from 'dumi';
|
|
17
10
|
import React, { useEffect, useRef, useState } from 'react';
|
|
18
11
|
import "./index.less";
|
|
19
|
-
|
|
20
12
|
var Toc = function Toc() {
|
|
21
13
|
var _useLocation = useLocation(),
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
pathname = _useLocation.pathname,
|
|
15
|
+
search = _useLocation.search,
|
|
16
|
+
hash = _useLocation.hash;
|
|
26
17
|
var meta = useRouteMeta();
|
|
27
18
|
var tabMeta = useTabMeta();
|
|
28
|
-
|
|
29
19
|
var _useSiteData = useSiteData(),
|
|
30
|
-
|
|
31
|
-
|
|
20
|
+
loading = _useSiteData.loading;
|
|
32
21
|
var prevIndexRef = useRef(0);
|
|
33
|
-
|
|
34
22
|
var _useState = useState([]),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
23
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
24
|
+
sectionRefs = _useState2[0],
|
|
25
|
+
setSectionRefs = _useState2[1];
|
|
39
26
|
var memoToc = React.useMemo(function () {
|
|
40
27
|
var toc = meta.toc;
|
|
41
|
-
|
|
42
28
|
if (tabMeta) {
|
|
43
29
|
toc = tabMeta.toc;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
30
|
+
}
|
|
31
|
+
// only render h2 ~ h4
|
|
47
32
|
return toc.filter(function (_ref) {
|
|
48
33
|
var depth = _ref.depth;
|
|
49
34
|
return depth > 1 && depth < 4;
|
|
@@ -83,7 +68,7 @@ var Toc = function Toc() {
|
|
|
83
68
|
to: link,
|
|
84
69
|
onClickCapture: function onClickCapture() {
|
|
85
70
|
if (decodeURIComponent(hash).slice(1) === item.id) {
|
|
86
|
-
history.replace(search);
|
|
71
|
+
history.replace("".concat(pathname).concat(search));
|
|
87
72
|
}
|
|
88
73
|
},
|
|
89
74
|
title: item.title
|
|
@@ -93,5 +78,4 @@ var Toc = function Toc() {
|
|
|
93
78
|
}));
|
|
94
79
|
}) : null;
|
|
95
80
|
};
|
|
96
|
-
|
|
97
81
|
export default Toc;
|