@antv/dumi-theme-antv 0.2.2 → 0.3.0-beta.10

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.
Files changed (265) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -33
  3. package/dist/builtins/Playground/index.d.ts +21 -0
  4. package/dist/builtins/Playground/index.js +69 -0
  5. package/dist/builtins/Playground/index.module.less +15 -0
  6. package/dist/context.d.ts +6 -0
  7. package/dist/context.js +2 -0
  8. package/dist/layouts/DocLayout.d.ts +7 -0
  9. package/dist/layouts/DocLayout.js +48 -0
  10. package/dist/layouts/entry/API.d.ts +10 -0
  11. package/dist/layouts/entry/API.js +12 -0
  12. package/dist/layouts/entry/Index.d.ts +7 -0
  13. package/dist/layouts/entry/Index.js +79 -0
  14. package/dist/layouts/entry/Manual.d.ts +8 -0
  15. package/dist/layouts/entry/Manual.js +13 -0
  16. package/dist/locales/en.json +98 -0
  17. package/dist/locales/zh.json +98 -0
  18. package/dist/pages/404.d.ts +6 -0
  19. package/dist/pages/404.js +18 -0
  20. package/dist/pages/Example/index.d.ts +6 -0
  21. package/dist/pages/Example/index.js +115 -0
  22. package/dist/pages/Example/index.module.less +82 -0
  23. package/dist/pages/Example/utils.d.ts +1 -0
  24. package/dist/pages/Example/utils.js +9 -0
  25. package/dist/pages/Examples/components/Accouncement/index.d.ts +6 -0
  26. package/dist/pages/Examples/components/Accouncement/index.js +60 -0
  27. package/dist/pages/Examples/components/Accouncement/index.module.less +9 -0
  28. package/dist/pages/Examples/components/Article/index.d.ts +2 -0
  29. package/dist/pages/Examples/components/Article/index.js +8 -0
  30. package/dist/pages/Examples/components/Article/index.module.less +2 -0
  31. package/dist/pages/Examples/components/ExampleTopicMenu/components/LeftMenu/index.d.ts +10 -0
  32. package/dist/pages/Examples/components/ExampleTopicMenu/components/LeftMenu/index.js +74 -0
  33. package/dist/pages/Examples/components/ExampleTopicMenu/index.d.ts +9 -0
  34. package/{es/builtins/Example.js → dist/pages/Examples/components/ExampleTopicMenu/index.js} +47 -33
  35. package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.d.ts +10 -0
  36. package/dist/pages/Examples/components/GalleryPageContent/DemoCard/index.js +33 -0
  37. package/dist/pages/Examples/components/GalleryPageContent/index.d.ts +10 -0
  38. package/dist/pages/Examples/components/GalleryPageContent/index.js +81 -0
  39. package/dist/pages/Examples/index.d.ts +8 -0
  40. package/dist/pages/Examples/index.js +95 -0
  41. package/dist/pages/Examples/index.module.less +607 -0
  42. package/dist/pages/Examples/types.d.ts +34 -0
  43. package/dist/pages/Examples/types.js +1 -0
  44. package/dist/plugin/examples.d.ts +21 -0
  45. package/dist/plugin/examples.js +105 -0
  46. package/dist/plugin/index.d.ts +3 -0
  47. package/dist/plugin/index.js +113 -0
  48. package/dist/plugin/utils.d.ts +5 -0
  49. package/dist/plugin/utils.js +46 -0
  50. package/dist/slots/404.d.ts +2 -0
  51. package/{es/antv/404/index.js → dist/slots/404.js} +4 -9
  52. package/{es/antv/Cases/Cases.d.ts → dist/slots/Cases/index.d.ts} +5 -4
  53. package/{es/antv/Cases/Cases.js → dist/slots/Cases/index.js} +25 -25
  54. package/{src/antv/Cases/Cases.module.less → dist/slots/Cases/index.module.less} +36 -5
  55. package/dist/slots/CodeEditor/Toolbar.d.ts +67 -0
  56. package/dist/slots/CodeEditor/Toolbar.js +140 -0
  57. package/dist/slots/CodeEditor/Toolbar.module.less +81 -0
  58. package/dist/slots/CodeEditor/index.d.ts +58 -0
  59. package/dist/slots/CodeEditor/index.js +226 -0
  60. package/dist/slots/CodeEditor/index.module.less +11 -0
  61. package/dist/slots/CodeEditor/utils.d.ts +42 -0
  62. package/dist/slots/CodeEditor/utils.js +157 -0
  63. package/dist/slots/CodePreview/CodeHeader.d.ts +19 -0
  64. package/dist/slots/CodePreview/CodeHeader.js +32 -0
  65. package/dist/slots/CodePreview/CodeHeader.module.less +0 -0
  66. package/dist/slots/CodePreview/index.d.ts +17 -0
  67. package/dist/slots/CodePreview/index.js +29 -0
  68. package/dist/slots/CodePreview/index.module.less +43 -0
  69. package/dist/slots/CodeRunner/index.d.ts +15 -0
  70. package/dist/slots/CodeRunner/index.js +79 -0
  71. package/dist/slots/CodeRunner/index.module.less +0 -0
  72. package/dist/slots/CodeRunner/utils.d.ts +11 -0
  73. package/dist/slots/CodeRunner/utils.js +36 -0
  74. package/dist/slots/Companies/index.d.ts +13 -0
  75. package/dist/slots/Companies/index.js +49 -0
  76. package/dist/slots/Companies/index.module.less +82 -0
  77. package/dist/slots/Detail/News.d.ts +10 -0
  78. package/{es/antv/Banner/Notification.js → dist/slots/Detail/News.js} +8 -11
  79. package/{src/antv/Banner/Notification.module.less → dist/slots/Detail/News.module.less} +15 -3
  80. package/dist/slots/Detail/index.d.ts +27 -0
  81. package/dist/slots/Detail/index.js +124 -0
  82. package/{src/antv/Banner/Banner.module.less → dist/slots/Detail/index.module.less} +42 -74
  83. package/dist/slots/ExampleSider/index.d.ts +21 -0
  84. package/dist/slots/ExampleSider/index.js +196 -0
  85. package/dist/slots/ExampleSider/index.module.less +141 -0
  86. package/{es/antv → dist/slots}/Features/FeatureCard.d.ts +2 -1
  87. package/{es/antv → dist/slots}/Features/FeatureCard.js +6 -6
  88. package/{src/antv → dist/slots}/Features/FeatureCard.module.less +8 -1
  89. package/{es/antv → dist/slots}/Features/index.d.ts +2 -2
  90. package/{es/antv → dist/slots}/Features/index.js +19 -26
  91. package/{src/antv/Features/Features.module.less → dist/slots/Features/index.module.less} +34 -3
  92. package/dist/slots/Footer/index.d.ts +18 -0
  93. package/dist/slots/Footer/index.js +188 -0
  94. package/dist/slots/Footer/index.module.less +86 -0
  95. package/dist/slots/Header/Logo.d.ts +7 -0
  96. package/{es/antv → dist/slots}/Header/Logo.js +6 -2
  97. package/dist/slots/Header/LogoWhite.d.ts +7 -0
  98. package/dist/slots/Header/LogoWhite.js +19 -0
  99. package/dist/slots/Header/Navs.d.ts +26 -0
  100. package/dist/slots/Header/Navs.js +63 -0
  101. package/dist/slots/Header/Products/NavigatorBanner.d.ts +10 -0
  102. package/dist/slots/Header/Products/NavigatorBanner.js +34 -0
  103. package/dist/slots/Header/Products/NavigatorBanner.module.less +39 -0
  104. package/{es/antv → dist/slots/Header}/Products/Product.d.ts +3 -3
  105. package/{es/antv → dist/slots/Header}/Products/Product.js +11 -16
  106. package/{src/antv → dist/slots/Header}/Products/Product.module.less +10 -8
  107. package/{es/antv → dist/slots/Header}/Products/getProducts.d.ts +2 -7
  108. package/dist/slots/Header/Products/getProducts.js +67 -0
  109. package/dist/slots/Header/Products/index.d.ts +9 -0
  110. package/{es/antv → dist/slots/Header}/Products/index.js +15 -22
  111. package/dist/slots/Header/Search.d.ts +12 -0
  112. package/dist/slots/Header/Search.js +90 -0
  113. package/dist/slots/Header/Search.module.less +39 -0
  114. package/dist/slots/Header/index.d.ts +66 -0
  115. package/dist/slots/Header/index.js +380 -0
  116. package/dist/slots/Header/index.module.less +382 -0
  117. package/dist/slots/Header/utils.d.ts +1 -0
  118. package/dist/slots/Header/utils.js +26 -0
  119. package/dist/slots/Loading/index.d.ts +7 -0
  120. package/dist/slots/Loading/index.js +79 -0
  121. package/dist/slots/Loading/index.module.less +279 -0
  122. package/dist/slots/ManualContent/NavigatorBanner.d.ts +9 -0
  123. package/dist/slots/ManualContent/NavigatorBanner.js +36 -0
  124. package/dist/slots/ManualContent/NavigatorBanner.module.less +39 -0
  125. package/dist/slots/ManualContent/ReadingTime.d.ts +3 -0
  126. package/dist/slots/ManualContent/ReadingTime.js +10 -0
  127. package/dist/slots/ManualContent/index.d.ts +9 -0
  128. package/dist/slots/ManualContent/index.js +344 -0
  129. package/dist/slots/ManualContent/index.module.less +668 -0
  130. package/dist/slots/ManualContent/utils.d.ts +3 -0
  131. package/dist/slots/ManualContent/utils.js +35 -0
  132. package/dist/slots/SEO.d.ts +10 -0
  133. package/dist/slots/SEO.js +59 -0
  134. package/dist/slots/TOC.d.ts +5 -0
  135. package/dist/slots/TOC.js +6 -0
  136. package/dist/slots/_.less +83 -0
  137. package/dist/slots/global.d.ts +1 -0
  138. package/dist/slots/global.js +7 -0
  139. package/dist/slots/hooks.d.ts +16 -0
  140. package/{es/antv → dist/slots}/hooks.js +60 -37
  141. package/dist/slots/utils.d.ts +5 -0
  142. package/dist/slots/utils.js +112 -0
  143. package/dist/types.d.ts +86 -0
  144. package/dist/types.js +1 -0
  145. package/dist/typings.d.ts +24 -0
  146. package/package.json +110 -47
  147. package/es/antv/404/index.d.ts +0 -2
  148. package/es/antv/Banner/Banner.module.less +0 -412
  149. package/es/antv/Banner/Notification.d.ts +0 -10
  150. package/es/antv/Banner/Notification.module.less +0 -108
  151. package/es/antv/Banner/index.d.ts +0 -25
  152. package/es/antv/Banner/index.js +0 -104
  153. package/es/antv/Cases/Cases.module.less +0 -203
  154. package/es/antv/Features/FeatureCard.module.less +0 -51
  155. package/es/antv/Features/Features.module.less +0 -169
  156. package/es/antv/Footer/Footer.module.less +0 -36
  157. package/es/antv/Footer/index.d.ts +0 -12
  158. package/es/antv/Footer/index.js +0 -237
  159. package/es/antv/Header/Logo.d.ts +0 -4
  160. package/es/antv/Products/Product.module.less +0 -146
  161. package/es/antv/Products/getNewProducts.d.ts +0 -24
  162. package/es/antv/Products/getNewProducts.js +0 -35
  163. package/es/antv/Products/getProducts.js +0 -460
  164. package/es/antv/Products/index.d.ts +0 -9
  165. package/es/antv/hooks.d.ts +0 -14
  166. package/es/antv/mixins.less +0 -21
  167. package/es/antv/utils.d.ts +0 -5
  168. package/es/antv/utils.js +0 -49
  169. package/es/builtins/API.d.ts +0 -3
  170. package/es/builtins/API.js +0 -37
  171. package/es/builtins/Alert.d.ts +0 -3
  172. package/es/builtins/Alert.js +0 -7
  173. package/es/builtins/Alert.less +0 -62
  174. package/es/builtins/Badge.d.ts +0 -3
  175. package/es/builtins/Badge.js +0 -7
  176. package/es/builtins/Badge.less +0 -31
  177. package/es/builtins/Example.d.ts +0 -5
  178. package/es/builtins/Example.less +0 -47
  179. package/es/builtins/Previewer.d.ts +0 -39
  180. package/es/builtins/Previewer.js +0 -225
  181. package/es/builtins/Previewer.less +0 -406
  182. package/es/builtins/SourceCode.d.ts +0 -10
  183. package/es/builtins/SourceCode.js +0 -70
  184. package/es/builtins/SourceCode.less +0 -103
  185. package/es/builtins/Table.d.ts +0 -4
  186. package/es/builtins/Table.js +0 -56
  187. package/es/builtins/Table.less +0 -43
  188. package/es/builtins/Tree.d.ts +0 -4
  189. package/es/builtins/Tree.js +0 -213
  190. package/es/builtins/Tree.less +0 -159
  191. package/es/components/Dark.d.ts +0 -9
  192. package/es/components/Dark.js +0 -125
  193. package/es/components/Dark.less +0 -121
  194. package/es/components/LocaleSelect.d.ts +0 -6
  195. package/es/components/LocaleSelect.js +0 -53
  196. package/es/components/LocaleSelect.less +0 -59
  197. package/es/components/Navbar.d.ts +0 -10
  198. package/es/components/Navbar.js +0 -155
  199. package/es/components/Navbar.less +0 -180
  200. package/es/components/SearchBar.d.ts +0 -4
  201. package/es/components/SearchBar.js +0 -81
  202. package/es/components/SearchBar.less +0 -165
  203. package/es/components/SideMenu.d.ts +0 -10
  204. package/es/components/SideMenu.js +0 -99
  205. package/es/components/SideMenu.less +0 -379
  206. package/es/components/SlugList.d.ts +0 -7
  207. package/es/components/SlugList.js +0 -38
  208. package/es/components/SlugList.less +0 -18
  209. package/es/declaration.d.ts +0 -1
  210. package/es/layout.d.ts +0 -5
  211. package/es/layout.js +0 -276
  212. package/es/style/layout.less +0 -402
  213. package/es/style/markdown.less +0 -240
  214. package/es/style/variables.less +0 -37
  215. package/src/antv/404/index.tsx +0 -25
  216. package/src/antv/Banner/Notification.tsx +0 -45
  217. package/src/antv/Banner/index.tsx +0 -139
  218. package/src/antv/Cases/Cases.tsx +0 -116
  219. package/src/antv/Features/FeatureCard.tsx +0 -24
  220. package/src/antv/Features/index.tsx +0 -86
  221. package/src/antv/Footer/Footer.module.less +0 -36
  222. package/src/antv/Footer/index.tsx +0 -272
  223. package/src/antv/Header/Logo.tsx +0 -85
  224. package/src/antv/Products/Product.tsx +0 -80
  225. package/src/antv/Products/getNewProducts.tsx +0 -53
  226. package/src/antv/Products/getProducts.tsx +0 -626
  227. package/src/antv/Products/index.tsx +0 -70
  228. package/src/antv/hooks.ts +0 -87
  229. package/src/antv/mixins.less +0 -21
  230. package/src/antv/utils.ts +0 -44
  231. package/src/builtins/API.tsx +0 -57
  232. package/src/builtins/Alert.less +0 -62
  233. package/src/builtins/Alert.tsx +0 -4
  234. package/src/builtins/Badge.less +0 -31
  235. package/src/builtins/Badge.tsx +0 -4
  236. package/src/builtins/Example.less +0 -47
  237. package/src/builtins/Example.tsx +0 -34
  238. package/src/builtins/Previewer.less +0 -406
  239. package/src/builtins/Previewer.tsx +0 -264
  240. package/src/builtins/SourceCode.less +0 -103
  241. package/src/builtins/SourceCode.tsx +0 -55
  242. package/src/builtins/Table.less +0 -43
  243. package/src/builtins/Table.tsx +0 -42
  244. package/src/builtins/Tree.less +0 -159
  245. package/src/builtins/Tree.tsx +0 -130
  246. package/src/components/Dark.less +0 -121
  247. package/src/components/Dark.tsx +0 -78
  248. package/src/components/LocaleSelect.less +0 -59
  249. package/src/components/LocaleSelect.tsx +0 -53
  250. package/src/components/Navbar.less +0 -180
  251. package/src/components/Navbar.tsx +0 -152
  252. package/src/components/SearchBar.less +0 -165
  253. package/src/components/SearchBar.tsx +0 -68
  254. package/src/components/SideMenu.less +0 -379
  255. package/src/components/SideMenu.tsx +0 -148
  256. package/src/components/SlugList.less +0 -18
  257. package/src/components/SlugList.tsx +0 -20
  258. package/src/declaration.d.ts +0 -1
  259. package/src/layout.tsx +0 -225
  260. package/src/style/layout.less +0 -402
  261. package/src/style/markdown.less +0 -240
  262. package/src/style/variables.less +0 -37
  263. package/src/test/SearchBar.test.ts +0 -32
  264. package/src/test/Table.test.tsx +0 -41
  265. package/src/test/index.test.tsx +0 -377
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ /**
3
+ * 具体单个案例的页面
4
+ */
5
+ declare const Example: React.FC;
6
+ export default Example;
@@ -0,0 +1,115 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
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."); }
4
+
5
+ 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 _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; }
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
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import React, { useContext, useEffect, useState } from 'react';
14
+ import { useParams, useLocation, useNavigate } from 'react-router-dom';
15
+ import { get } from 'lodash-es';
16
+ import { Layout } from 'antd';
17
+ import { useLocale, useSiteData } from 'dumi';
18
+ import { SEO } from "../../slots/SEO";
19
+ import { Header } from "../../slots/Header";
20
+ import { ExampleSider } from "../../slots/ExampleSider";
21
+ import { CodeRunner } from "../../slots/CodeRunner";
22
+ import { getDemoInfo } from "../../slots/CodeRunner/utils";
23
+ import { ThemeAntVContext } from "../../context";
24
+ import styles from "./index.module.less";
25
+ import { getCurrentTitle } from "./utils";
26
+ var Sider = Layout.Sider,
27
+ Content = Layout.Content;
28
+
29
+ /**
30
+ * 具体单个案例的页面
31
+ */
32
+ var Example = function Example() {
33
+ var _useLocation = useLocation(),
34
+ hash = _useLocation.hash;
35
+
36
+ var nav = useNavigate();
37
+
38
+ var _useParams = useParams(),
39
+ topic = _useParams.topic,
40
+ example = _useParams.example;
41
+ /** 示例页面的元数据信息 */
42
+
43
+
44
+ var metaData = useContext(ThemeAntVContext);
45
+ var locale = useLocale();
46
+
47
+ var _useSiteData = useSiteData(),
48
+ themeConfig = _useSiteData.themeConfig;
49
+
50
+ var exampleTopics = metaData.meta.exampleTopics;
51
+ var demo = hash.slice(1);
52
+
53
+ var _useState = useState(),
54
+ _useState2 = _slicedToArray(_useState, 2),
55
+ currentDemo = _useState2[0],
56
+ setCurrentDemo = _useState2[1];
57
+
58
+ var _useState3 = useState(false),
59
+ _useState4 = _slicedToArray(_useState3, 2),
60
+ isCollapsed = _useState4[0],
61
+ setIsCollapsed = _useState4[1];
62
+
63
+ var _useState5 = useState({}),
64
+ _useState6 = _slicedToArray(_useState5, 2),
65
+ title = _useState6[0],
66
+ setTitle = _useState6[1];
67
+
68
+ useEffect(function () {
69
+ if (topic && example && demo) {
70
+ var targetDemoInfo = getDemoInfo(exampleTopics, topic, example, demo);
71
+ setCurrentDemo(targetDemoInfo);
72
+ setTitle(getCurrentTitle(exampleTopics, topic, example));
73
+ }
74
+ }, [topic, example, hash]);
75
+ return /*#__PURE__*/React.createElement("div", {
76
+ className: styles.example
77
+ }, /*#__PURE__*/React.createElement(SEO, {
78
+ title: title[locale.id],
79
+ lang: locale.id
80
+ }), /*#__PURE__*/React.createElement(Header, {
81
+ isHomePage: false
82
+ }), /*#__PURE__*/React.createElement(Layout, {
83
+ className: styles.container
84
+ }, /*#__PURE__*/React.createElement(Sider, {
85
+ collapsedWidth: 0,
86
+ width: 250,
87
+ trigger: null,
88
+ collapsible: true,
89
+ collapsed: isCollapsed,
90
+ className: styles.menuSider,
91
+ theme: "light"
92
+ }, currentDemo && /*#__PURE__*/React.createElement(ExampleSider, {
93
+ showExampleDemoTitle: true,
94
+ currentDemo: currentDemo,
95
+ onDemoClicked: function onDemoClicked(example) {
96
+ var demoId = example.id,
97
+ targetExample = example.targetExample,
98
+ targetTopic = example.targetTopic; // eg: /zh/examples/case/area/#area1
99
+
100
+ var newURL = "/".concat(locale.id, "/examples/").concat(targetTopic === null || targetTopic === void 0 ? void 0 : targetTopic.id, "/").concat(targetExample === null || targetExample === void 0 ? void 0 : targetExample.id, "/#").concat(demoId);
101
+ nav(newURL);
102
+ },
103
+ exampleTopics: exampleTopics
104
+ })), /*#__PURE__*/React.createElement(Content, {
105
+ className: styles.content
106
+ }, topic && example && /*#__PURE__*/React.createElement(CodeRunner, {
107
+ exampleTopics: exampleTopics,
108
+ topic: topic,
109
+ example: example,
110
+ demo: demo,
111
+ size: get(themeConfig, 'editor.size', 0.38)
112
+ }))));
113
+ };
114
+
115
+ export default Example;
@@ -0,0 +1,82 @@
1
+ @import 'antd/es/style/themes/default.less';
2
+ @import '../../slots/_.less';
3
+
4
+ :global(#root) {
5
+ width: 100%;
6
+ height: 100%;
7
+ }
8
+
9
+ .example {
10
+ width: 100%;
11
+ height: 100%;
12
+ display: flex;
13
+ flex-direction: column;
14
+
15
+ .container {
16
+ flex: 1;
17
+ background-color: #fff;
18
+
19
+ .content {
20
+ position: relative;
21
+ height: 100%;
22
+
23
+ .left {
24
+ height: 100%;
25
+ }
26
+
27
+ .right {
28
+ height: 100%;
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ .menuSider {
35
+ background-color: #f8f9fc;
36
+ border-right: 1px solid #ececec;
37
+
38
+ :global {
39
+ .ant-layout-sider-children {
40
+ overflow-y: hidden;
41
+ overflow-x: hidden;
42
+
43
+ &:hover {
44
+ overflow-y: auto;
45
+ }
46
+ }
47
+ }
48
+ }
49
+
50
+ .trigger {
51
+ font-size: 12px;
52
+ position: relative;
53
+ margin: auto;
54
+ color: #6c7f90;
55
+ left: -1px;
56
+ z-index: 4;
57
+ width: 22px;
58
+ cursor: pointer;
59
+ transition: color 0.3s;
60
+ border: 1px solid #ececec;
61
+ border-left: none;
62
+ background-color: #fff;
63
+ height: 66px;
64
+ box-sizing: border-box;
65
+ border-bottom-right-radius: 4px;
66
+ border-top-right-radius: 4px;
67
+ text-align: center;
68
+
69
+ &[type='menu-unfold'] {
70
+ background-color: #f8f9fc;
71
+ }
72
+
73
+ svg {
74
+ position: absolute;
75
+ left: 3px;
76
+ top: 25px;
77
+ }
78
+ }
79
+
80
+ .trigger:hover {
81
+ color: @primary-color;
82
+ }
@@ -0,0 +1 @@
1
+ export declare function getCurrentTitle(exampleTopics: any, topic: any, example: any): any;
@@ -0,0 +1,9 @@
1
+ export function getCurrentTitle(exampleTopics, topic, example) {
2
+ var topicItem = exampleTopics.find(function (item) {
3
+ return item.id === topic;
4
+ });
5
+ var exmapleItem = topicItem.examples.find(function (item) {
6
+ return item.id === example;
7
+ });
8
+ return exmapleItem.title;
9
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { AnnouncementProps } from '../../types';
3
+ /**
4
+ * 通用公告组件,根据 bannerId 来更新 localStorage
5
+ */
6
+ export declare const Announcement: React.FC<AnnouncementProps>;
@@ -0,0 +1,60 @@
1
+ var _excluded = ["message", "bannerId", "localStorageId"];
2
+
3
+ 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); }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8
+
9
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
+
11
+ import React, { useEffect } from 'react';
12
+ import { Alert } from 'antd';
13
+ import { get } from 'lodash-es';
14
+ import { NotificationFilled } from '@ant-design/icons';
15
+ import cx from 'classnames';
16
+ import styles from "./index.module.less";
17
+ /**
18
+ * 通用公告组件,根据 bannerId 来更新 localStorage
19
+ */
20
+
21
+ export var Announcement = function Announcement(props) {
22
+ var message = props.message,
23
+ bannerId = props.bannerId,
24
+ localStorageId = props.localStorageId,
25
+ alertProps = _objectWithoutProperties(props, _excluded);
26
+
27
+ var isBrowser = typeof window !== 'undefined';
28
+ /** 公告 id 更新,更新下本地缓存 */
29
+
30
+ useEffect(function () {
31
+ try {
32
+ var item = isBrowser && localStorage.getItem(localStorageId) || '{}';
33
+
34
+ if (get(JSON.parse(item), [bannerId]) !== false && isBrowser) {
35
+ localStorage.setItem(localStorageId, JSON.stringify(_defineProperty({}, bannerId, true)));
36
+ }
37
+ } catch (e) {
38
+ console.error(e); // eslint-disable-line no-console
39
+ }
40
+ }, [bannerId]);
41
+ return get(JSON.parse(isBrowser && localStorage.getItem(localStorageId) || '{}'), [bannerId]) ? /*#__PURE__*/React.createElement(Alert, _extends({
42
+ message: message,
43
+ type: "info",
44
+ showIcon: true,
45
+ icon: /*#__PURE__*/React.createElement(NotificationFilled, {
46
+ style: {
47
+ height: '16px',
48
+ color: '#4776E8'
49
+ }
50
+ }),
51
+ closable: true,
52
+ className: cx('banner-announcement', styles.bannerAnnouncement),
53
+ onClose: function onClose() {
54
+ // 关闭公告
55
+ if (isBrowser) {
56
+ localStorage.setItem(localStorageId, JSON.stringify(_defineProperty({}, bannerId, false)));
57
+ }
58
+ }
59
+ }, alertProps)) : null;
60
+ };
@@ -0,0 +1,9 @@
1
+ .bannerAnnouncement {
2
+ background: #e6f7ff;
3
+ border-color: rgba(71, 118, 232, 0.65);
4
+ color: #4776e8;
5
+
6
+ a {
7
+ color: #4776e8 !important;
8
+ }
9
+ }
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const Article: React.FC<any>;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Layout } from 'antd';
3
+ import styles from "./index.module.less";
4
+ export var Article = function Article(props) {
5
+ return /*#__PURE__*/React.createElement(Layout.Content, {
6
+ className: styles.article
7
+ }, /*#__PURE__*/React.createElement("article", props));
8
+ };
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { LeftMenuProps } from '../../../../types';
3
+ /**
4
+ * LeftMenu
5
+ *
6
+ * @param {LeftMenuProps} props 相关参数,详见类型定义
7
+ * @returns {React.FC} React.FC
8
+ * @author YuZhanglong <loveyzl1123@gmail.com>
9
+ */
10
+ export declare const LeftMenu: React.FC<LeftMenuProps>;
@@ -0,0 +1,74 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
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."); }
4
+
5
+ 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 _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; }
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
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import React, { useState } from 'react';
14
+ import { Anchor, Menu } from 'antd';
15
+ import { useLocale } from 'dumi';
16
+ import { createFromIconfontCN } from '@ant-design/icons';
17
+ import styles from "../../../../index.module.less";
18
+ var MenuIcon = createFromIconfontCN({
19
+ scriptUrl: '//at.alicdn.com/t/font_470089_1lnym745udm.js' // generated by iconfont.cn
20
+
21
+ });
22
+ /**
23
+ * LeftMenu
24
+ *
25
+ * @param {LeftMenuProps} props 相关参数,详见类型定义
26
+ * @returns {React.FC} React.FC
27
+ * @author YuZhanglong <loveyzl1123@gmail.com>
28
+ */
29
+
30
+ export var LeftMenu = function LeftMenu(props) {
31
+ var exampleTopics = props.exampleTopics;
32
+
33
+ var _useState = useState([]),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ selectedKeys = _useState2[0],
36
+ setSelectedKeys = _useState2[1];
37
+
38
+ var locale = useLocale();
39
+
40
+ var _useState3 = useState([]),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ openKeys = _useState4[0],
43
+ setOpenKeys = _useState4[1];
44
+
45
+ return /*#__PURE__*/React.createElement(Anchor, {
46
+ className: styles.galleryAnchor
47
+ }, /*#__PURE__*/React.createElement(Menu, {
48
+ mode: "inline",
49
+ selectedKeys: selectedKeys,
50
+ style: {
51
+ height: '100%'
52
+ },
53
+ openKeys: openKeys,
54
+ onOpenChange: function onOpenChange(currentOpenKeys) {
55
+ return setOpenKeys(currentOpenKeys);
56
+ },
57
+ forceSubMenuRender: true
58
+ }, exampleTopics.map(function (topic) {
59
+ return /*#__PURE__*/React.createElement(Menu.SubMenu, {
60
+ key: topic.id,
61
+ title: /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(MenuIcon, {
62
+ className: styles.menuIcon,
63
+ type: "icon-".concat(topic.icon)
64
+ }), /*#__PURE__*/React.createElement("span", null, topic.title[locale.id]))
65
+ }, topic.examples.map(function (example) {
66
+ return /*#__PURE__*/React.createElement(Menu.Item, {
67
+ key: example.id
68
+ }, /*#__PURE__*/React.createElement(Anchor.Link, {
69
+ href: "#category-".concat(example.id.replace(/\s/g, '')),
70
+ title: /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", null, example.title[locale.id]))
71
+ }));
72
+ }));
73
+ })));
74
+ };
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { LeftMenuProps } from '../../types';
3
+ /**
4
+ * Examples 左侧 LeftMenu
5
+ *
6
+ * @param {LeftMenuProps} props 相关参数,详见类型定义
7
+ * @returns {React.FC} React.FC
8
+ */
9
+ export declare const ExampleTopicMenu: React.FC<LeftMenuProps>;
@@ -10,39 +10,53 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
10
10
 
11
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
12
 
13
- import React, { useRef, useEffect, useState } from 'react';
14
- import './Example.less';
15
- export default (function (props) {
16
- var elm = useRef();
17
-
18
- var _useState = useState(0),
13
+ import React, { useState } from 'react';
14
+ import { Affix, Layout as AntLayout } from 'antd';
15
+ import Drawer from 'rc-drawer';
16
+ import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons';
17
+ import { useMedia } from 'react-use';
18
+ import { LeftMenu } from "./components/LeftMenu";
19
+ import styles from "../../index.module.less";
20
+ /**
21
+ * Examples 左侧 LeftMenu
22
+ *
23
+ * @param {LeftMenuProps} props 相关参数,详见类型定义
24
+ * @returns {React.FC} React.FC
25
+ */
26
+
27
+ export var ExampleTopicMenu = function ExampleTopicMenu(props) {
28
+ var exampleTopics = props.exampleTopics;
29
+ var isWide = useMedia('(min-width: 767.99px)', true);
30
+
31
+ var _useState = useState(false),
19
32
  _useState2 = _slicedToArray(_useState, 2),
20
- height = _useState2[0],
21
- setHeight = _useState2[1];
22
-
23
- useEffect(function () {
24
- setHeight(elm.current.contentWindow.document.documentElement.scrollHeight);
25
- }, [elm]);
26
- return props.route.meta.examplePath && /*#__PURE__*/React.createElement("div", {
27
- className: "__dumi-default-example-wrapper"
28
- }, /*#__PURE__*/React.createElement("div", {
29
- className: "__dumi-default-example-wrapper-toolbar"
30
- }, props.route.meta.description || props.route.meta.title, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("button", {
31
- className: "__dumi-default-icon",
32
- onClick: function onClick() {
33
- return elm.current.contentWindow.location.reload();
34
- }
35
- }), /*#__PURE__*/React.createElement("a", {
36
- target: "_blank",
37
- rel: "noopener noreferrer",
38
- href: props.route.meta.examplePath,
39
- className: "__dumi-default-icon"
40
- }))), /*#__PURE__*/React.createElement("iframe", {
41
- src: props.route.meta.examplePath,
42
- ref: elm,
33
+ drawOpen = _useState2[0],
34
+ setDrawOpen = _useState2[1];
35
+
36
+ return /*#__PURE__*/React.createElement(Affix, {
37
+ offsetTop: 0,
38
+ className: styles.affix,
43
39
  style: {
44
- height: height
40
+ height: isWide ? '100vh' : 'inherit'
41
+ }
42
+ }, isWide ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AntLayout.Sider, {
43
+ width: "auto",
44
+ theme: "light",
45
+ className: styles.sider
46
+ }, /*#__PURE__*/React.createElement(LeftMenu, {
47
+ exampleTopics: exampleTopics
48
+ }))) : /*#__PURE__*/React.createElement(Drawer, {
49
+ handler: drawOpen ? /*#__PURE__*/React.createElement(MenuFoldOutlined, {
50
+ className: styles.menuSwitch
51
+ }) : /*#__PURE__*/React.createElement(MenuUnfoldOutlined, {
52
+ className: styles.menuSwitch
53
+ }),
54
+ wrapperClassName: styles.menuDrawer,
55
+ onChange: function onChange(open) {
56
+ return setDrawOpen(!!open);
45
57
  },
46
- title: "dumi"
47
- }));
48
- });
58
+ width: 280
59
+ }, /*#__PURE__*/React.createElement(LeftMenu, {
60
+ exampleTopics: exampleTopics
61
+ })));
62
+ };
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { DemoCardProps } from '../../../types';
3
+ /**
4
+ * DEMO 的卡片预览
5
+ *
6
+ * @param {DemoCardProps} props 相关参数,详见类型定义
7
+ * @returns {React.FC} React.FC
8
+ * @author YuZhanglong <loveyzl1123@gmail.com>
9
+ */
10
+ export declare const DemoCard: React.FC<DemoCardProps>;
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { Link, useLocale } from 'dumi';
3
+ import { Badge } from 'antd';
4
+ import styles from "../../../index.module.less";
5
+ /**
6
+ * DEMO 的卡片预览
7
+ *
8
+ * @param {DemoCardProps} props 相关参数,详见类型定义
9
+ * @returns {React.FC} React.FC
10
+ * @author YuZhanglong <loveyzl1123@gmail.com>
11
+ */
12
+
13
+ export var DemoCard = function DemoCard(props) {
14
+ var demo = props.demo,
15
+ topicId = props.topicId,
16
+ exampleId = props.exampleId;
17
+ var locale = useLocale();
18
+
19
+ var renderCardInternal = function renderCardInternal() {
20
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("img", {
21
+ src: demo.screenshot || 'https://gw.alipayobjects.com/os/s/prod/antv/assets/image/screenshot-placeholder-b8e70.png',
22
+ alt: demo.title[locale.id]
23
+ })));
24
+ };
25
+
26
+ return /*#__PURE__*/React.createElement(Link, {
27
+ className: styles.galleryCardLink,
28
+ to: "".concat(locale.id == 'zh' ? '' : '/en', "/examples/").concat(topicId, "/").concat(exampleId, "/#").concat(demo.id)
29
+ }, demo.isNew ? /*#__PURE__*/React.createElement(Badge.Ribbon, {
30
+ text: "new",
31
+ className: styles.customRibbon
32
+ }, renderCardInternal()) : renderCardInternal(), /*#__PURE__*/React.createElement("h4", null, demo.title[locale.id]));
33
+ };
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { GalleryPageContentProps } from '../../types';
3
+ /**
4
+ * Examples 首页内容预览组件
5
+ *
6
+ * @param {GalleryPageContentProps} props 相关参数,详见类型定义
7
+ * @returns {React.FC} React.FC
8
+ * @author YuZhanglong <loveyzl1123@gmail.com>
9
+ */
10
+ export declare const GalleryPageContent: React.FC<GalleryPageContentProps>;
@@ -0,0 +1,81 @@
1
+ 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; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+
7
+ import React from 'react';
8
+ import { useLocale } from 'dumi';
9
+ import { DemoCard } from "./DemoCard";
10
+ import styles from "../../index.module.less";
11
+ /**
12
+ * Examples 首页内容预览组件
13
+ *
14
+ * @param {GalleryPageContentProps} props 相关参数,详见类型定义
15
+ * @returns {React.FC} React.FC
16
+ * @author YuZhanglong <loveyzl1123@gmail.com>
17
+ */
18
+
19
+ export var GalleryPageContent = function GalleryPageContent(props) {
20
+ var exampleTopics = props.exampleTopics;
21
+ var locale = useLocale(); // TODO: 公告功能待后续补充
22
+ // /** 获取上新的 demo. 直接用英文 title 作为 id */
23
+ // const demosOnTheNew = useMemo((): Array<NewDemo> => {
24
+ // const result: NewDemo[] = [];
25
+ // each(allDemosInCategory, (categoryDemos, category) => {
26
+ // const newDemos = filter(categoryDemos, (d) => d.new);
27
+ // // 大于4个新增 demo 或全部新增,则直接使用 category 作为代替
28
+ // if (
29
+ // size(newDemos) > 6 ||
30
+ // (size(newDemos) && size(newDemos) === size(categoryDemos))
31
+ // ) {
32
+ // result.push({
33
+ // title: category,
34
+ // id: getDemoCategory(newDemos[0], 'en'),
35
+ // category,
36
+ // });
37
+ // } else {
38
+ // each(newDemos, (demo) =>
39
+ // result.push({
40
+ // title: demo.title[locale.id],
41
+ // id: demo.title.en,
42
+ // category: getDemoCategory(demo),
43
+ // }),
44
+ // );
45
+ // }
46
+ // });
47
+ // return result;
48
+ // }, [allDemosInCategory, allDemos, locale.id]);
49
+
50
+ var flattenExamples = exampleTopics.reduce(function (prev, current) {
51
+ var exampleWithTopic = current.examples.map(function (item) {
52
+ return _objectSpread(_objectSpread({}, item), {}, {
53
+ targetTopic: current
54
+ });
55
+ });
56
+ return prev.concat(exampleWithTopic);
57
+ }, []);
58
+ return /*#__PURE__*/React.createElement("div", {
59
+ className: styles.gallery
60
+ }, /*#__PURE__*/React.createElement("div", {
61
+ className: styles.galleryContent
62
+ }, flattenExamples.map(function (example, i) {
63
+ return /*#__PURE__*/React.createElement("div", {
64
+ key: i
65
+ }, /*#__PURE__*/React.createElement("h2", {
66
+ id: "category-".concat(example.id.replace(/\s/g, ''))
67
+ }, example.title[locale.id]), /*#__PURE__*/React.createElement("ul", {
68
+ className: styles.galleryList
69
+ }, example.demos.map(function (demo) {
70
+ return /*#__PURE__*/React.createElement("li", {
71
+ className: styles.galleryCard,
72
+ key: demo.id,
73
+ title: demo.title[locale.id]
74
+ }, /*#__PURE__*/React.createElement(DemoCard, {
75
+ demo: demo,
76
+ topicId: example.targetTopic.id,
77
+ exampleId: example.id
78
+ }));
79
+ })));
80
+ })));
81
+ };
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Examples 页面
4
+ *
5
+ * @author YuZhanglong <loveyzl1123@gmail.com>
6
+ */
7
+ declare const Example: () => JSX.Element;
8
+ export default Example;