@zat-design/sisyphus-react 3.1.5-beta.9 → 3.2.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/index.esm.css +60 -1
- package/es/ProAction/index.js +7 -5
- package/es/ProConfigProvider/index.js +6 -1
- package/es/ProDownload/utils.js +4 -3
- package/es/ProDrawerForm/components/ProDrawer/index.js +6 -4
- package/es/ProDrawerForm/index.js +4 -4
- package/es/ProEditTable/components/ActionButton/index.js +3 -2
- package/es/ProEditTable/components/RenderField/index.js +2 -1
- package/es/ProEditTable/index.js +7 -6
- package/es/ProEditTable/utils/config.d.ts +8 -8
- package/es/ProEditTable/utils/config.js +9 -8
- package/es/ProEditTable/utils/index.js +3 -2
- package/es/ProEnum/hooks/useEnumRequest.js +17 -10
- package/es/ProEnum/index.js +9 -4
- package/es/ProForm/components/FormFooter/index.js +16 -20
- package/es/ProForm/components/base/Input/index.js +4 -3
- package/es/ProForm/components/base/InputNumber/index.js +4 -3
- package/es/ProForm/components/base/Select/index.js +2 -1
- package/es/ProForm/components/base/Switch/index.js +9 -5
- package/es/ProForm/components/base/SwitchCheckbox/index.js +2 -1
- package/es/ProForm/components/base/TextArea/index.js +4 -2
- package/es/ProForm/components/combination/FormList/components/ActionButton.js +13 -17
- package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +2 -1
- package/es/ProForm/components/combination/Group/index.js +2 -2
- package/es/ProForm/components/combination/ProAddressBar/index.js +5 -5
- package/es/ProForm/components/combination/ProModalSelect/index.js +3 -4
- package/es/ProForm/components/combination/ProNumberRange/index.js +3 -2
- package/es/ProForm/components/combination/ProRangeLimit/index.js +3 -7
- package/es/ProForm/components/combination/ProTimeLimit/index.js +4 -11
- package/es/ProForm/components/combination/ProTimeLimit/style/index.less +17 -0
- package/es/ProForm/components/render/Render.js +4 -2
- package/es/ProForm/components/render/RenderFields.js +6 -4
- package/es/ProForm/index.js +14 -2
- package/es/ProForm/style/index.less +65 -35
- package/es/ProForm/utils/index.d.ts +1 -1
- package/es/ProForm/utils/index.js +7 -2
- package/es/ProForm/utils/rulesCreator.js +2 -1
- package/es/ProForm/utils/useRules.js +4 -3
- package/es/ProLayout/components/Layout/Menu/OpenMenu/index.js +6 -0
- package/es/ProLayout/components/Layout/Notice/index.js +3 -2
- package/es/ProLayout/components/ProHeader/components/Copy/index.js +2 -1
- package/es/ProLayout/components/ProHeader/components/ProBackBtn/index.js +2 -1
- package/es/ProLayout/components/ProHeader/index.js +5 -4
- package/es/ProLayout/utils/index.js +1 -1
- package/es/ProSelect/index.d.ts +3 -3
- package/es/ProSelect/index.js +4 -2
- package/es/ProStep/components/Step/index.js +3 -1
- package/es/ProTable/index.js +7 -6
- package/es/ProTable/useAntdTable.d.ts +12 -4
- package/es/ProTable/useAntdTable.js +18 -6
- package/es/ProTree/components/ProTree.js +5 -4
- package/es/ProTree/components/Tree.js +3 -1
- package/es/ProTreeModal/components/List.js +0 -14
- package/es/ProTreeModal/components/Trigger.js +9 -3
- package/es/ProTreeModal/index.js +29 -13
- package/es/ProUpload/components/ButtonRender.js +5 -2
- package/es/ProUpload/components/DragRender.js +8 -8
- package/es/ProUpload/components/Example.js +3 -1
- package/es/ProUpload/components/ImageRender.js +8 -6
- package/es/ProUpload/index.js +8 -6
- package/es/locale/en_US.d.ts +123 -54
- package/es/locale/en_US.js +130 -61
- package/es/locale/index.d.ts +6 -0
- package/es/locale/index.js +11 -0
- package/es/locale/zh_CN.d.ts +122 -54
- package/es/locale/zh_CN.js +128 -60
- package/es/style/core/normalize.less +0 -1
- package/lib/ProAction/index.js +7 -5
- package/lib/ProConfigProvider/index.js +6 -1
- package/lib/ProDownload/utils.js +4 -3
- package/lib/ProDrawerForm/components/ProDrawer/index.js +6 -4
- package/lib/ProDrawerForm/index.js +4 -4
- package/lib/ProEditTable/components/ActionButton/index.js +3 -2
- package/lib/ProEditTable/components/RenderField/index.js +2 -1
- package/lib/ProEditTable/index.js +7 -6
- package/lib/ProEditTable/utils/config.d.ts +8 -8
- package/lib/ProEditTable/utils/config.js +9 -8
- package/lib/ProEditTable/utils/index.js +3 -2
- package/lib/ProEnum/hooks/useEnumRequest.js +17 -10
- package/lib/ProEnum/index.js +9 -4
- package/lib/ProForm/components/FormFooter/index.js +16 -19
- package/lib/ProForm/components/base/Input/index.js +4 -3
- package/lib/ProForm/components/base/InputNumber/index.js +4 -3
- package/lib/ProForm/components/base/Select/index.js +2 -1
- package/lib/ProForm/components/base/Switch/index.js +8 -5
- package/lib/ProForm/components/base/SwitchCheckbox/index.js +2 -1
- package/lib/ProForm/components/base/TextArea/index.js +4 -2
- package/lib/ProForm/components/combination/FormList/components/ActionButton.js +13 -17
- package/lib/ProForm/components/combination/FormList/components/ToolbarButton.js +2 -1
- package/lib/ProForm/components/combination/Group/index.js +2 -2
- package/lib/ProForm/components/combination/ProAddressBar/index.js +5 -5
- package/lib/ProForm/components/combination/ProModalSelect/index.js +3 -4
- package/lib/ProForm/components/combination/ProNumberRange/index.js +3 -2
- package/lib/ProForm/components/combination/ProRangeLimit/index.js +3 -7
- package/lib/ProForm/components/combination/ProTimeLimit/index.js +4 -11
- package/lib/ProForm/components/combination/ProTimeLimit/style/index.less +17 -0
- package/lib/ProForm/components/render/Render.js +4 -2
- package/lib/ProForm/components/render/RenderFields.js +5 -3
- package/lib/ProForm/index.js +14 -2
- package/lib/ProForm/style/index.less +65 -35
- package/lib/ProForm/utils/index.d.ts +1 -1
- package/lib/ProForm/utils/index.js +7 -2
- package/lib/ProForm/utils/rulesCreator.js +2 -1
- package/lib/ProForm/utils/useRules.js +4 -3
- package/lib/ProLayout/components/Layout/Menu/OpenMenu/index.js +6 -0
- package/lib/ProLayout/components/Layout/Notice/index.js +3 -2
- package/lib/ProLayout/components/ProHeader/components/Copy/index.js +2 -1
- package/lib/ProLayout/components/ProHeader/components/ProBackBtn/index.js +3 -1
- package/lib/ProLayout/components/ProHeader/index.js +5 -4
- package/lib/ProLayout/utils/index.js +1 -1
- package/lib/ProSelect/index.d.ts +3 -3
- package/lib/ProSelect/index.js +4 -2
- package/lib/ProStep/components/Step/index.js +3 -1
- package/lib/ProTable/index.js +7 -6
- package/lib/ProTable/useAntdTable.d.ts +12 -4
- package/lib/ProTable/useAntdTable.js +19 -6
- package/lib/ProTree/components/ProTree.js +5 -4
- package/lib/ProTree/components/Tree.js +3 -1
- package/lib/ProTreeModal/components/List.js +0 -14
- package/lib/ProTreeModal/components/Trigger.js +10 -3
- package/lib/ProTreeModal/index.js +29 -13
- package/lib/ProUpload/components/ButtonRender.js +5 -2
- package/lib/ProUpload/components/DragRender.js +8 -8
- package/lib/ProUpload/components/Example.js +3 -1
- package/lib/ProUpload/components/ImageRender.js +8 -6
- package/lib/ProUpload/index.js +8 -6
- package/lib/locale/en_US.d.ts +123 -54
- package/lib/locale/en_US.js +130 -61
- package/lib/locale/index.d.ts +6 -0
- package/lib/locale/index.js +14 -1
- package/lib/locale/zh_CN.d.ts +122 -54
- package/lib/locale/zh_CN.js +128 -60
- package/lib/style/core/normalize.less +0 -1
- package/package.json +1 -1
- package/.dumi/theme/builtins/Alert.tsx +0 -19
- package/.dumi/theme/builtins/Previewer.tsx +0 -232
- package/.dumi/theme/builtins/SourceCode.tsx +0 -64
- package/.dumi/theme/hooks/useCodeSandbox.tsx +0 -197
- package/.dumi/theme/hooks/useTheme.tsx +0 -707
- package/.dumi/theme/layouts/BasicLayout.tsx +0 -88
- package/.dumi/theme/layouts/components/Dark.less +0 -157
- package/.dumi/theme/layouts/components/Dark.tsx +0 -78
- package/.dumi/theme/layouts/components/Navbar.tsx +0 -83
- package/.dumi/theme/layouts/components/SideMenu.tsx +0 -61
- package/.dumi/theme/layouts/index.tsx +0 -26
- package/.dumi/theme/layouts/layout.less +0 -87
- package/.dumi/theme/typings.d.ts +0 -7
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import React, { useContext, useState } from 'react'
|
|
2
|
-
import { IRouteComponentProps } from '@umijs/types'
|
|
3
|
-
import { context, Link } from 'dumi/theme'
|
|
4
|
-
import Navbar from './components/Navbar'
|
|
5
|
-
import SideMenu from './components/SideMenu'
|
|
6
|
-
import SlugList from 'dumi-theme-default/src/components/SlugList'
|
|
7
|
-
import SearchBar from 'dumi-theme-default/src/components/SearchBar'
|
|
8
|
-
import 'dumi-theme-default/src/style/layout.less'
|
|
9
|
-
|
|
10
|
-
const Hero = hero => (
|
|
11
|
-
<>
|
|
12
|
-
<div className="__dumi-default-layout-hero">
|
|
13
|
-
{hero.image && <img src={hero.image} />}
|
|
14
|
-
<h1>{hero.title}</h1>
|
|
15
|
-
<div dangerouslySetInnerHTML={{ __html: hero.desc }} />
|
|
16
|
-
{hero.actions &&
|
|
17
|
-
hero.actions.map(action => (
|
|
18
|
-
<Link to={action.link} key={action.text}>
|
|
19
|
-
<button type="button">{action.text}</button>
|
|
20
|
-
</Link>
|
|
21
|
-
))}
|
|
22
|
-
</div>
|
|
23
|
-
</>
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
const Features = features => (
|
|
27
|
-
<div className="__dumi-default-layout-features">
|
|
28
|
-
{features.map(feat => (
|
|
29
|
-
<dl key={feat.title} style={{ backgroundImage: feat.icon ? `url(${feat.icon})` : undefined }}>
|
|
30
|
-
{feat.link ? (
|
|
31
|
-
<Link to={feat.link}>
|
|
32
|
-
<dt>{feat.title}</dt>
|
|
33
|
-
</Link>
|
|
34
|
-
) : (
|
|
35
|
-
<dt>{feat.title}</dt>
|
|
36
|
-
)}
|
|
37
|
-
<dd dangerouslySetInnerHTML={{ __html: feat.desc }} />
|
|
38
|
-
</dl>
|
|
39
|
-
))}
|
|
40
|
-
</div>
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
const Layout: React.FC<IRouteComponentProps> = ({ children, location }) => {
|
|
44
|
-
const ctx = useContext(context)
|
|
45
|
-
const {
|
|
46
|
-
config: { mode },
|
|
47
|
-
meta
|
|
48
|
-
} = ctx
|
|
49
|
-
const [menuCollapsed, setMenuCollapsed] = useState<boolean>(true)
|
|
50
|
-
const isSiteMode = mode === 'site'
|
|
51
|
-
const showHero = isSiteMode && meta.hero
|
|
52
|
-
const showFeatures = isSiteMode && meta.features
|
|
53
|
-
const showSideMenu = meta.sidemenu !== false && !showHero && !showFeatures && !meta.gapless
|
|
54
|
-
const showSlugs =
|
|
55
|
-
!showHero &&
|
|
56
|
-
!showFeatures &&
|
|
57
|
-
Boolean(meta.slugs?.length) &&
|
|
58
|
-
(meta.toc === 'content' || meta.toc === undefined) &&
|
|
59
|
-
!meta.gapless
|
|
60
|
-
return (
|
|
61
|
-
<div
|
|
62
|
-
className="__dumi-default-layout"
|
|
63
|
-
data-route={location.pathname}
|
|
64
|
-
data-show-sidemenu={String(showSideMenu)}
|
|
65
|
-
data-show-slugs={String(showSlugs)}
|
|
66
|
-
data-site-mode={isSiteMode}
|
|
67
|
-
data-gapless={String(!!meta.gapless)}
|
|
68
|
-
onClick={() => {
|
|
69
|
-
if (menuCollapsed) return
|
|
70
|
-
setMenuCollapsed(true)
|
|
71
|
-
}}
|
|
72
|
-
>
|
|
73
|
-
<Navbar location={location} selectedKeys={[meta?.nav?.path]} navPrefix={<SearchBar />} />
|
|
74
|
-
<SideMenu mobileMenuCollapsed={menuCollapsed} location={location} />
|
|
75
|
-
{showSlugs && <SlugList slugs={meta.slugs} className="__dumi-default-layout-toc" />}
|
|
76
|
-
{showHero && Hero(meta.hero)}
|
|
77
|
-
{showFeatures && Features(meta.features)}
|
|
78
|
-
<div className="__dumi-default-layout-content">
|
|
79
|
-
{children}
|
|
80
|
-
{(showHero || showFeatures) && meta.footer && (
|
|
81
|
-
<div className="__dumi-default-layout-footer" dangerouslySetInnerHTML={{ __html: meta.footer }} />
|
|
82
|
-
)}
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export default Layout
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/* 颜色表 */
|
|
2
|
-
@c-primary: #4569d4;
|
|
3
|
-
@c-heading: #454d64;
|
|
4
|
-
@c-text: #454d64;
|
|
5
|
-
@c-secondary: #717484;
|
|
6
|
-
@c-link: @c-primary;
|
|
7
|
-
@c-border: #ebedf1;
|
|
8
|
-
@c-btn-border: #dadadf;
|
|
9
|
-
@c-light-bg: #f9fafb;
|
|
10
|
-
|
|
11
|
-
/* 尺寸表 */
|
|
12
|
-
@s-nav-height: 64px;
|
|
13
|
-
@s-mobile-nav-height: 50px;
|
|
14
|
-
@s-menu-width: 260px;
|
|
15
|
-
@s-site-menu-width: 300px;
|
|
16
|
-
@s-menu-mobile-width: 240px;
|
|
17
|
-
@s-content-margin: 58px;
|
|
18
|
-
|
|
19
|
-
@img-logo: 'data:image/png;base64,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';
|
|
20
|
-
@prefix: __dumi-default;
|
|
21
|
-
@mobile: ~'only screen and (max-width: 767px)';
|
|
22
|
-
@desktop: ~'only screen and (min-width: 768px)';
|
|
23
|
-
@icons: 'data:image/png;base64,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';
|
|
24
|
-
|
|
25
|
-
.@{prefix}-icon {
|
|
26
|
-
background: url(@icons) no-repeat ~'0 0/230px auto';
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/* 颜色表 - dark */
|
|
30
|
-
@c-bg-dark: #141414;
|
|
31
|
-
@c-light-bg-dark: rgba(255,255,255,0.08);
|
|
32
|
-
@c-primary-dark: #7395f7;
|
|
33
|
-
@c-heading-dark: rgba(255, 255, 255, 0.85);
|
|
34
|
-
@c-text-dark: rgba(255, 255, 255, 0.85);
|
|
35
|
-
@c-secondary-dark: rgba(255,255,255,0.65);
|
|
36
|
-
@c-border-dark: #6b6c6d;
|
|
37
|
-
@c-btn-border-dark: #464646;
|
|
38
|
-
|
|
39
|
-
.@{prefix}-dark {
|
|
40
|
-
position: fixed;
|
|
41
|
-
right: 20px;
|
|
42
|
-
top: 16px;
|
|
43
|
-
|
|
44
|
-
[data-mode="doc"] & {
|
|
45
|
-
position: relative;
|
|
46
|
-
top: 0;
|
|
47
|
-
right: 0;
|
|
48
|
-
display: inline-block;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@media @mobile {
|
|
52
|
-
position: relative;
|
|
53
|
-
top: 6px;
|
|
54
|
-
right: auto;
|
|
55
|
-
display: flex;
|
|
56
|
-
justify-content: center;
|
|
57
|
-
|
|
58
|
-
.@{prefix}-navbar & {
|
|
59
|
-
display: none;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
&-sun,
|
|
64
|
-
&-moon,
|
|
65
|
-
&-auto {
|
|
66
|
-
position: relative;
|
|
67
|
-
border-radius: 50%;
|
|
68
|
-
outline: none;
|
|
69
|
-
cursor: pointer;
|
|
70
|
-
width: 30px;
|
|
71
|
-
height: 30px;
|
|
72
|
-
display: flex;
|
|
73
|
-
justify-content: center;
|
|
74
|
-
align-items: center;
|
|
75
|
-
|
|
76
|
-
svg {
|
|
77
|
-
transition: all 0.3s linear;
|
|
78
|
-
&:hover {
|
|
79
|
-
transform: scale(1.2);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
&-sun,
|
|
85
|
-
&-moon,
|
|
86
|
-
&-auto {
|
|
87
|
-
border: 1px solid @c-btn-border;
|
|
88
|
-
background-color: @c-light-bg;
|
|
89
|
-
|
|
90
|
-
svg {
|
|
91
|
-
fill: @c-text;
|
|
92
|
-
[data-prefers-color=dark] & {
|
|
93
|
-
fill: @c-text-dark;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
[data-prefers-color=dark] & {
|
|
98
|
-
border-color: @c-btn-border-dark;
|
|
99
|
-
background-color: @c-bg-dark;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
&-switch {
|
|
104
|
-
[data-mode=doc] & {
|
|
105
|
-
display: flex;
|
|
106
|
-
button + button {
|
|
107
|
-
margin-left: 4px;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
@media @mobile {
|
|
112
|
-
display: flex;
|
|
113
|
-
button + button {
|
|
114
|
-
margin-left: 10px;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
&-active {
|
|
119
|
-
.@{prefix}-menu & {
|
|
120
|
-
border-color: @c-primary;
|
|
121
|
-
[data-prefers-color=dark] & {
|
|
122
|
-
border-color: @c-primary-dark;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
[data-mode=doc][data-mobile-show=true] & {
|
|
128
|
-
margin-bottom: 10px;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
button {
|
|
132
|
-
z-index: 102;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
&-list {
|
|
136
|
-
animation: dropDown 0.2s linear 0s 1;
|
|
137
|
-
|
|
138
|
-
button {
|
|
139
|
-
z-index: 101;
|
|
140
|
-
margin-top: 4px;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
[data-mode="doc"] & {
|
|
144
|
-
position: absolute;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
@keyframes dropDown {
|
|
151
|
-
0% {
|
|
152
|
-
margin-top: -100%;
|
|
153
|
-
}
|
|
154
|
-
100% {
|
|
155
|
-
margin-top: 0;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import type { FC } from 'react';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { usePrefersColor } from 'dumi/theme';
|
|
4
|
-
import './Dark.less';
|
|
5
|
-
|
|
6
|
-
interface darkProps {
|
|
7
|
-
darkSwitch: boolean;
|
|
8
|
-
isSideMenu: boolean;
|
|
9
|
-
onDarkSwitchClick?: (ev) => void;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const Dark: FC<darkProps> = ({ darkSwitch, onDarkSwitchClick, isSideMenu }) => {
|
|
13
|
-
const allState = ['dark', 'light', 'auto'];
|
|
14
|
-
const [color, setColor] = usePrefersColor();
|
|
15
|
-
const prefersColor = color;
|
|
16
|
-
|
|
17
|
-
const sunSvg = <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4026" width="22" height="22"><path d="M915.2 476.16h-43.968c-24.704 0-44.736 16-44.736 35.84s20.032 35.904 44.736 35.904H915.2c24.768 0 44.8-16.064 44.8-35.904s-20.032-35.84-44.8-35.84zM512 265.6c-136.704 0-246.464 109.824-246.464 246.4 0 136.704 109.76 246.464 246.464 246.464S758.4 648.704 758.4 512c0-136.576-109.696-246.4-246.4-246.4z m0 425.6c-99.008 0-179.2-80.128-179.2-179.2 0-98.944 80.192-179.2 179.2-179.2S691.2 413.056 691.2 512c0 99.072-80.192 179.2-179.2 179.2zM197.44 512c0-19.84-19.136-35.84-43.904-35.84H108.8c-24.768 0-44.8 16-44.8 35.84s20.032 35.904 44.8 35.904h44.736c24.768 0 43.904-16.064 43.904-35.904zM512 198.464c19.776 0 35.84-20.032 35.84-44.8v-44.8C547.84 84.032 531.84 64 512 64s-35.904 20.032-35.904 44.8v44.8c0 24.768 16.128 44.864 35.904 44.864z m0 627.136c-19.776 0-35.904 20.032-35.904 44.8v44.736C476.096 940.032 492.16 960 512 960s35.84-20.032 35.84-44.8v-44.736c0-24.768-16.064-44.864-35.84-44.864z m329.92-592.832c17.472-17.536 20.288-43.072 6.4-57.024-14.016-14.016-39.488-11.2-57.024 6.336-4.736 4.864-26.496 26.496-31.36 31.36-17.472 17.472-20.288 43.008-6.336 57.024 13.952 14.016 39.488 11.2 57.024-6.336 4.8-4.864 26.496-26.56 31.296-31.36zM213.376 759.936c-4.864 4.8-26.56 26.624-31.36 31.36-17.472 17.472-20.288 42.944-6.4 56.96 14.016 13.952 39.552 11.2 57.024-6.336 4.8-4.736 26.56-26.496 31.36-31.36 17.472-17.472 20.288-43.008 6.336-56.96-14.016-13.952-39.552-11.072-56.96 6.336z m19.328-577.92c-17.536-17.536-43.008-20.352-57.024-6.336-14.08 14.016-11.136 39.488 6.336 57.024 4.864 4.864 26.496 26.56 31.36 31.424 17.536 17.408 43.008 20.288 56.96 6.336 14.016-14.016 11.264-39.488-6.336-57.024-4.736-4.864-26.496-26.56-31.296-31.424z m527.168 628.608c4.864 4.864 26.624 26.624 31.36 31.424 17.536 17.408 43.072 20.224 57.088 6.336 13.952-14.016 11.072-39.552-6.4-57.024-4.864-4.8-26.56-26.496-31.36-31.36-17.472-17.408-43.072-20.288-57.024-6.336-13.952 14.016-11.008 39.488 6.336 56.96z" p-id="4027"></path></svg>;
|
|
18
|
-
const moonSvg = <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3854" width="22" height="22"><path d="M991.816611 674.909091a69.166545 69.166545 0 0 0-51.665455-23.272727 70.795636 70.795636 0 0 0-27.438545 5.585454A415.674182 415.674182 0 0 1 754.993338 698.181818c-209.594182 0-393.472-184.785455-393.472-395.636363 0-52.363636 38.539636-119.621818 69.515637-173.614546 4.887273-8.610909 9.634909-16.756364 14.103272-24.901818A69.818182 69.818182 0 0 0 384.631156 0a70.842182 70.842182 0 0 0-27.438545 5.585455C161.678429 90.298182 14.362065 307.898182 14.362065 512c0 282.298182 238.824727 512 532.38691 512a522.286545 522.286545 0 0 0 453.957818-268.334545A69.818182 69.818182 0 0 0 991.816611 674.909091zM546.679156 954.181818c-248.785455 0-462.941091-192-462.941091-442.181818 0-186.647273 140.637091-372.829091 300.939637-442.181818-36.817455 65.629091-92.578909 151.970909-92.578909 232.727273 0 250.181818 214.109091 465.454545 462.917818 465.454545a488.331636 488.331636 0 0 0 185.181091-46.545455 453.003636 453.003636 0 0 1-393.565091 232.727273z m103.656728-669.323636l-14.266182 83.781818a34.909091 34.909091 0 0 0 50.362182 36.770909l74.775272-39.563636 74.752 39.563636a36.142545 36.142545 0 0 0 16.174546 3.956364 34.909091 34.909091 0 0 0 34.210909-40.727273l-14.289455-83.781818 60.509091-59.345455a35.025455 35.025455 0 0 0-19.223272-59.578182l-83.61891-12.101818-37.376-76.101818a34.56 34.56 0 0 0-62.254545 0l-37.376 76.101818-83.618909 12.101818a34.909091 34.909091 0 0 0-19.246546 59.578182z m70.423272-64.698182a34.280727 34.280727 0 0 0 26.135273-19.083636l14.312727-29.090909 14.336 29.090909a34.257455 34.257455 0 0 0 26.135273 19.083636l32.046546 4.887273-23.272728 22.574545a35.234909 35.234909 0 0 0-10.007272 30.952727l5.46909 32.116364-28.625454-15.127273a34.490182 34.490182 0 0 0-32.302546 0l-28.695272 15.127273 5.469091-32.116364a35.141818 35.141818 0 0 0-9.984-30.952727l-23.272728-22.574545z" p-id="3855"></path></svg>;
|
|
19
|
-
const autoSvg = <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11002" width="22" height="22"><path d="M127.658667 492.885333c0-51.882667 10.24-101.717333 30.378666-149.162666s47.786667-88.064 81.92-122.538667 75.093333-61.781333 122.538667-81.92 96.938667-30.378667 149.162667-30.378667 101.717333 10.24 149.162666 30.378667 88.405333 47.786667 122.88 81.92 61.781333 75.093333 81.92 122.538667 30.378667 96.938667 30.378667 149.162666-10.24 101.717333-30.378667 149.162667-47.786667 88.405333-81.92 122.88-75.093333 61.781333-122.88 81.92-97.28 30.378667-149.162666 30.378667-101.717333-10.24-149.162667-30.378667-88.064-47.786667-122.538667-81.92-61.781333-75.093333-81.92-122.88-30.378667-96.938667-30.378666-149.162667z m329.045333 0c0 130.048 13.994667 244.394667 41.984 343.381334h12.970667c46.762667 0 91.136-9.216 133.461333-27.306667s78.848-42.666667 109.568-73.386667 54.954667-67.242667 73.386667-109.568 27.306667-86.698667 27.306666-133.461333c0-46.421333-9.216-90.794667-27.306666-133.12s-42.666667-78.848-73.386667-109.568-67.242667-54.954667-109.568-73.386667-86.698667-27.306667-133.461333-27.306666h-11.605334c-28.672 123.562667-43.349333 237.909333-43.349333 343.722666z" p-id="11003"></path></svg>;
|
|
20
|
-
|
|
21
|
-
const list = allState.filter(state => state !== prefersColor);
|
|
22
|
-
|
|
23
|
-
const changeColor = (ev, toColor) => {
|
|
24
|
-
if (!isSideMenu && onDarkSwitchClick) {
|
|
25
|
-
onDarkSwitchClick(ev);
|
|
26
|
-
}
|
|
27
|
-
if (toColor === prefersColor) return;
|
|
28
|
-
setColor(toColor);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const getSvg = (baseColor) => {
|
|
32
|
-
switch (baseColor) {
|
|
33
|
-
case 'dark':
|
|
34
|
-
return (
|
|
35
|
-
<button key="dumi-dark-btn-moon" title="Dark theme" onClick={ev => changeColor(ev, baseColor)} className={`__dumi-default-dark-moon ${baseColor === prefersColor ? '__dumi-default-dark-switch-active' : ''}`}>
|
|
36
|
-
{moonSvg}
|
|
37
|
-
</button>
|
|
38
|
-
);
|
|
39
|
-
case 'light':
|
|
40
|
-
return (
|
|
41
|
-
<button key="dumi-dark-btn-sun" title="Light theme" onClick={ev => changeColor(ev, baseColor)} className={`__dumi-default-dark-sun ${baseColor === prefersColor ? '__dumi-default-dark-switch-active' : ''}`}>
|
|
42
|
-
{sunSvg}
|
|
43
|
-
</button>
|
|
44
|
-
);
|
|
45
|
-
case 'auto':
|
|
46
|
-
return (
|
|
47
|
-
<button key="dumi-dark-btn-auto" title="Default to system" onClick={ev => changeColor(ev, baseColor)} className={`__dumi-default-dark-auto ${baseColor === prefersColor ? '__dumi-default-dark-switch-active' : ''}`}>
|
|
48
|
-
{autoSvg}
|
|
49
|
-
</button>
|
|
50
|
-
)
|
|
51
|
-
default:
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
return (
|
|
56
|
-
<div className="__dumi-default-dark">
|
|
57
|
-
<div
|
|
58
|
-
className={`__dumi-default-dark-switch ${!isSideMenu && darkSwitch ? "__dumi-default-dark-switch-open" : ""}`}>
|
|
59
|
-
{isSideMenu ? (
|
|
60
|
-
allState.map(item => (
|
|
61
|
-
getSvg(item)
|
|
62
|
-
))
|
|
63
|
-
) : getSvg(prefersColor)}
|
|
64
|
-
</div>
|
|
65
|
-
{!isSideMenu && darkSwitch && (
|
|
66
|
-
<div className="__dumi-default-dark-switch-list" onClick={()=> onDarkSwitchClick(false)}>
|
|
67
|
-
{
|
|
68
|
-
list.map(item => (
|
|
69
|
-
getSvg(item)
|
|
70
|
-
))
|
|
71
|
-
}
|
|
72
|
-
</div>
|
|
73
|
-
)}
|
|
74
|
-
</div>
|
|
75
|
-
)
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export default Dark;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import React, { useContext, useState } from 'react'
|
|
2
|
-
import { Menu } from 'antd'
|
|
3
|
-
import { context, Link, NavLink } from 'dumi/theme'
|
|
4
|
-
import 'dumi-theme-default/src/components/Navbar.less'
|
|
5
|
-
import Dark from './Dark';
|
|
6
|
-
|
|
7
|
-
const Navbar = ({ navPrefix, location, selectedKeys }) => {
|
|
8
|
-
const [darkSwitch, setDarkSwitch] = useState(false);
|
|
9
|
-
const ctxt = useContext(context);
|
|
10
|
-
console.log(ctxt);
|
|
11
|
-
|
|
12
|
-
const {
|
|
13
|
-
base,
|
|
14
|
-
config: { mode, title, logo },
|
|
15
|
-
nav: navItems
|
|
16
|
-
} = ctxt;
|
|
17
|
-
|
|
18
|
-
const lang = localStorage.getItem('locale') || 'zh-CN';
|
|
19
|
-
|
|
20
|
-
const changeLanguage = (val) => {
|
|
21
|
-
const value = val === 'zh-CN' ? 'en-US' : 'zh-CN';
|
|
22
|
-
const pathname = location.pathname;
|
|
23
|
-
localStorage.setItem('locale', value);
|
|
24
|
-
if(value === 'en-US' && !pathname.startsWith('/en-US')){
|
|
25
|
-
const origin = window.location.origin;
|
|
26
|
-
window.location.href = origin+ '/en-US' + pathname;
|
|
27
|
-
} else if(value === 'zh-CN' && pathname.startsWith('/en-US')){
|
|
28
|
-
const origin = window.location.origin;
|
|
29
|
-
window.location.href = origin+pathname.replace('/en-US', '');
|
|
30
|
-
}else{
|
|
31
|
-
window.location.reload();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return (
|
|
36
|
-
<div className="__dumi-default-navbar" data-mode={mode}>
|
|
37
|
-
<span>
|
|
38
|
-
{/* logo & title */}
|
|
39
|
-
<Link
|
|
40
|
-
className="__dumi-default-navbar-logo"
|
|
41
|
-
style={{
|
|
42
|
-
backgroundImage: logo && `url('${logo}')`
|
|
43
|
-
}}
|
|
44
|
-
to={base}
|
|
45
|
-
data-plaintext={logo === false || undefined}
|
|
46
|
-
>
|
|
47
|
-
{title}
|
|
48
|
-
</Link>
|
|
49
|
-
</span>
|
|
50
|
-
{/* nav */}
|
|
51
|
-
<Menu mode="horizontal" selectedKeys={selectedKeys} className="__amiya-nav">
|
|
52
|
-
<Menu.Item key="search-button">
|
|
53
|
-
{navPrefix}
|
|
54
|
-
</Menu.Item>
|
|
55
|
-
{navItems.map(nav => {
|
|
56
|
-
return (
|
|
57
|
-
<Menu.Item key={nav.path}>
|
|
58
|
-
{nav.path ? (
|
|
59
|
-
<NavLink to={nav.path} key={nav.path}>
|
|
60
|
-
{nav.title}
|
|
61
|
-
</NavLink>
|
|
62
|
-
) : (
|
|
63
|
-
nav.title
|
|
64
|
-
)}
|
|
65
|
-
</Menu.Item>
|
|
66
|
-
)
|
|
67
|
-
})}
|
|
68
|
-
</Menu>
|
|
69
|
-
<div className="__dumi-default-navbar-tool">
|
|
70
|
-
<div onClick={() => changeLanguage(lang)} className="__dumi-default-locale-select" style={{ cursor: 'pointer',border: '1px solid #dadadf',padding: '0 16px 0 16px', color: 'var(--zaui-text-weak)',borderRadius: '14px'}}>
|
|
71
|
-
{
|
|
72
|
-
lang === 'zh-CN' ? '中文' : 'English'
|
|
73
|
-
}
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
<>
|
|
77
|
-
<Dark darkSwitch={darkSwitch} isSideMenu={false} onDarkSwitchClick={setDarkSwitch} />
|
|
78
|
-
</>
|
|
79
|
-
</div>
|
|
80
|
-
)
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export default Navbar
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import React, { useContext, useMemo } from 'react'
|
|
2
|
-
import { context, Link } from 'dumi/theme'
|
|
3
|
-
import { Menu } from 'antd'
|
|
4
|
-
|
|
5
|
-
const { ItemGroup, Item: MenuItem } = Menu
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* 渲染菜单
|
|
9
|
-
* @param menuList 菜单列表
|
|
10
|
-
*/
|
|
11
|
-
const renderMenu = (menuList: any[], p: any[]) => {
|
|
12
|
-
if (!menuList || !menuList.length) {
|
|
13
|
-
return null
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return menuList.map(menu => {
|
|
17
|
-
let newParent = [...p, menu]
|
|
18
|
-
|
|
19
|
-
if (menu.children && menu.children.some(item => item.visible !== false)) {
|
|
20
|
-
return (
|
|
21
|
-
<ItemGroup key={menu.path} title={menu.title}>
|
|
22
|
-
{menu.children && renderMenu(menu.children, newParent)}
|
|
23
|
-
</ItemGroup>
|
|
24
|
-
)
|
|
25
|
-
} else {
|
|
26
|
-
return (
|
|
27
|
-
<MenuItem icon={menu.icon} key={menu.path}>
|
|
28
|
-
<Link to={menu.path}>{menu.title}</Link>
|
|
29
|
-
</MenuItem>
|
|
30
|
-
)
|
|
31
|
-
}
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export default function SideMenu(props) {
|
|
36
|
-
const {
|
|
37
|
-
config: { mode },
|
|
38
|
-
menu,
|
|
39
|
-
meta
|
|
40
|
-
} = useContext(context)
|
|
41
|
-
const isHiddenMenus =
|
|
42
|
-
Boolean((meta.hero || meta.features || meta.gapless) && mode === 'site') || meta.sidemenu === false || undefined
|
|
43
|
-
|
|
44
|
-
const { pathname } = props.location
|
|
45
|
-
|
|
46
|
-
if (isHiddenMenus) {
|
|
47
|
-
return null
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const openKeys = useMemo(() => {
|
|
51
|
-
return menu.filter(item => item.children && item.children.length).map(item => item.path)
|
|
52
|
-
}, [menu])
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<div className="__amiya-menu">
|
|
56
|
-
<Menu mode="inline" selectedKeys={[pathname]} openKeys={openKeys}>
|
|
57
|
-
{renderMenu(menu, [])}
|
|
58
|
-
</Menu>
|
|
59
|
-
</div>
|
|
60
|
-
)
|
|
61
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import Layout from './BasicLayout'
|
|
3
|
-
import { ConfigProvider } from 'antd'
|
|
4
|
-
import { IRouteComponentProps } from 'umi'
|
|
5
|
-
import zhCN from 'antd/es/locale/zh_CN'
|
|
6
|
-
// import jaJP from 'antd/es/locale/ja_JP'
|
|
7
|
-
import enUS from 'antd/es/locale/en_US'
|
|
8
|
-
import moment from 'moment'
|
|
9
|
-
import 'moment/locale/zh-cn'
|
|
10
|
-
import './layout.less'
|
|
11
|
-
moment.locale('zh-cn')
|
|
12
|
-
|
|
13
|
-
let localeMap = {
|
|
14
|
-
'zh-CN': zhCN,
|
|
15
|
-
'en-US': enUS,
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
let locale = localStorage.getItem('locale') || 'zh-CN'
|
|
19
|
-
|
|
20
|
-
export default ({ children, ...props }: IRouteComponentProps) => {
|
|
21
|
-
return (
|
|
22
|
-
<ConfigProvider locale={localeMap[locale]}>
|
|
23
|
-
<Layout {...props}>{children}</Layout>
|
|
24
|
-
</ConfigProvider>
|
|
25
|
-
)
|
|
26
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
.__amiya {
|
|
2
|
-
&-theme {
|
|
3
|
-
right : 100px;
|
|
4
|
-
bottom : 100px;
|
|
5
|
-
z-index : 10;
|
|
6
|
-
position: fixed !important;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
&-nav {
|
|
10
|
-
flex : 1;
|
|
11
|
-
border-bottom : none !important;
|
|
12
|
-
display : flex;
|
|
13
|
-
justify-content: flex-end;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
&-theme-color {
|
|
17
|
-
width : 1em;
|
|
18
|
-
height : 1em;
|
|
19
|
-
margin-right : 4px;
|
|
20
|
-
border-radius: 2px;
|
|
21
|
-
display : flex;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&-menu {
|
|
25
|
-
position : fixed;
|
|
26
|
-
z-index : 100;
|
|
27
|
-
top : 60px;
|
|
28
|
-
left : 0;
|
|
29
|
-
bottom : 0;
|
|
30
|
-
width : 260px;
|
|
31
|
-
background-color: #f2f5fa;
|
|
32
|
-
box-sizing : border-box;
|
|
33
|
-
transition : left 0.3s;
|
|
34
|
-
margin-left : 40px;
|
|
35
|
-
|
|
36
|
-
.ant-menu {
|
|
37
|
-
height : 100%;
|
|
38
|
-
padding : 24px 0;
|
|
39
|
-
overflow : hidden;
|
|
40
|
-
overflow-y: auto;
|
|
41
|
-
|
|
42
|
-
&.ant-menu-inline .ant-menu-item:not(:last-child) {
|
|
43
|
-
margin-bottom: 0;
|
|
44
|
-
margin-top : 0;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
&.ant-menu-inline .ant-menu-item::after {
|
|
48
|
-
display: none;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
&.ant-menu-inline .ant-menu-item {
|
|
52
|
-
width: calc(98%);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
|
|
57
|
-
border-radius: 8px;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
.__dumi-default-previewer-actions {
|
|
64
|
-
background-color: #fff;
|
|
65
|
-
justify-content : center;
|
|
66
|
-
|
|
67
|
-
>span {
|
|
68
|
-
display: none;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
[data-prefers-color='dark'] .__dumi-default-previewer-actions {
|
|
73
|
-
background-color: unset;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.__dumi-default-layout[data-site-mode='true'] {
|
|
77
|
-
padding-top: 90px;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
img {
|
|
81
|
-
max-width: 100%;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.deleted-sign.deleted.prefix,
|
|
85
|
-
.inserted-sign.inserted.prefix {
|
|
86
|
-
user-select: none;
|
|
87
|
-
}
|