;
}
\ No newline at end of file
diff --git a/src/docs/pages/menu/doc.md b/src/docs/pages/menu/doc.md
deleted file mode 100755
index d3f5ea12..00000000
--- a/src/docs/pages/menu/doc.md
+++ /dev/null
@@ -1,1056 +0,0 @@
------------ Title ------------
-[TITLE_BEGIN_zh_CN]
-## 菜单 Menu
-在网站布局中,通常需要在水平或垂直方向展示一系列的条目,此时使用Menu是一个不错的选择。
-
-Menu主要有以下功能
-* 提供了primary、normal、dark三种类型的菜单
-* Menu可以水平或垂直排列
-* Menu可以在下方或右侧弹出子菜单
-
-[TITLE_END_zh_CN]
-
-
-[TITLE_BEGIN_en_US]
-[TITLE_END_en_US]
-
-------------- Footer ---------------------
-[FOOTER_BEGIN_zh_CN]
-## API
-几个需要注意的事项:
-* 请给SubMenu、Item设置一个在Menu内唯一的id。这个id在菜单折叠展示或Item选中时需要用到。
-* 请给SubMenu的配置一个header,这样子菜单才会显示对应的头部区域
-
-
-Menu
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
-| className | 样式名称 | string | menu | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| hasBox | 是否显示边框阴影 | boolean | - | - |
-| hasBorderRadius | 是否边角有弧形 | boolean | - | |
-| hasArrow | 是否有折叠/展开的箭头 | boolean | - | |
-| collapsable | 是否能够折叠 | boolean | - | |
-| justify | 水平排列Item的方式 | string | start | 可设置为: start,end, center, around, between, evenly |
-| direction | 菜单的布局方向 | string | vertical | 可设置为: horizontal(水平布局),vertical(垂直布局) |
-| type | 类型 | string | normal | 可设置为: normal, primary, dark |
-| popupSubMenu | 是否弹出子菜单 | boolean | false | |
-| children | 子节点 | react node | - | |
-| autoIndent | Menu是否自动缩进 | boolean | true | |
-| indentUnit | 菜单缩进值的单位 | string | rem | |
-| indentation | 默认的缩进量 | string | rem | |
-| onSelect | 当有Item选中时的回调 | function | - | |
-| onClickItem | 当点击Item时的回调 | function | - | |
-| multiSelect | 是否可以选择多个Item | boolean | false | |
-| compact | 是否允许菜单压缩显示 | boolean | false | |
-| defaultActiveItems | 默认选中的Item其id组成的数组 | string[] \| number[] | - | |
-| activeItems | 当前选中的Item其id组成的数组 | string[] \| number[] | - | |
-| defaultOpenedMenus | 默认展开的Menu/SubMenu其id组成的数组 | string[] \| number[] | - | |
-| openedMenus | 当前展开的Menu/SubMenu其id组成的数组 | string[] \| number[] | - | |
-| onOpenedMenu | 但菜单展开或折叠所触发的回调 | function | - | |
-| selectable | 点击Item是否允许显示选中状态 | boolean | - | |
-
-
-SubMenu
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
-| className | 样式名称 | string | base-menu | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| id | SubMenu的ID | string \| number | - | 务必设置一个Menu内部唯一的值 |
-| icon | 在Header左侧显示的Icon | react node | - | |
-| popupSubMenu | SubMenu是否弹出显示 | boolean | false | |
-| popupSubMenuPosition | SubMenu弹出显示的位置 | string | right | 可设置为: right, bottom |
-| hasBottomBar | 是否在Header下方显示选中状态下的横条 | boolean | false | |
-
-
-Group
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
-| className | 样式名称 | string | base-menu | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| header | 分组的抬头显示 | react node | - | |
-
-
-
-Item
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
-| className | 样式名称 | string | base-menu | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| id | SubMenu的ID | string \| number | - | 务必设置一个Menu内部唯一的值 |
-| equitable | Item是否均匀瓜分剩余的空间 | boolean | - | |
-| hasBackground | 选中时是否添加背景色 | boolean | - | |
-| hasBottomBar | 是否在下方显示选中状态下的横条 | boolean | false | |
-| disabled | 是否禁用 | boolean | - | |
-| align | 对齐的方向 | string | - | 可设置为: left、center、right |
-| icon | 在Item左侧显示的Icon | react node | - | |
-| onClick | 点击时的回调 | | - | |
-
-[FOOTER_END_zh_CN]
-
-[FOOTER_BEGIN_en_US]
-[FOOTER_END_en_US]
-
-------------- Samples ---------------------
-[Menu1_BEGIN_zh_CN]
-### 示例1: 最简单的Menu
-
- 提示
-
- 一个最简单的Menu示例,Menu默认情况下在垂直方向上排列。
-
-
-
-```jsx
-import React from 'react';
-import {Menu} from 'react-windy-ui';
-
-export default function Menu1() {
-
- return {
- console.log(itemInfo);
- }}>
- Menu Item1
- Menu Item2
- Menu Item3
- Menu Item4
- ;
-
-}
-```
-[Menu1_END_zh_CN]
-
-[Menu1_BEGIN_en_US]
-[Menu1_END_en_US]
-----------------------------------
-[Menu2_BEGIN_zh_CN]
-### 示例2: 切换不同类型的Menu
-
- 提示
-
- 有三种Menu类型: primary、normal、dark。
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {Menu, RadioGroup, Radio} from 'react-windy-ui';
-
-export default function Menu2() {
- const [type, setType] = useState('normal');
- return <>
-
- Type:
- setType(val)}>
- primary
- dark
- normal
-
-
- {
- console.log(itemInfo);
- }}>
- Menu Item1
- Menu Item2
- Menu Item3
- Menu Item4
-
- >;
-
-}
-```
-[Menu2_END_zh_CN]
-
-[Menu2_BEGIN_en_US]
-[Menu2_END_en_US]
-----------------------------------
-[Menu3_BEGIN_zh_CN]
-### 示例3: 切换不同类型的Menu
-
- 提示
-
- 默认情况下Menu在垂直方向上排列,要在水平方向上排列的话,则需要将direction属性设置为'horizontal'。
-
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {Menu, Toggle} from 'react-windy-ui';
-
-export default function Menu3() {
- const [vertical, setVertical] = useState(true);
- return <>
-
- setVertical(active)}
- content={{on: 'Veritical', off: 'Horizontal'}}/>
-
-
- Menu Item1
- Menu Item2
- Menu Item3
- Menu Item4
-
- >;
-
-}
-```
-
-[Menu3_END_zh_CN]
-
-[Menu3_BEGIN_en_US]
-[Menu3_END_en_US]
-----------------------------------
-[Menu4_BEGIN_zh_CN]
-### 示例4: 在水平方向排列各个Item
-
- 提示
-
- 通过设置justify属性,你可以针对水平展示的Menu,指定其下各个Item的排放位置。
-
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {Menu, RadioGroup, Radio} from 'react-windy-ui';
-
-export default function Menu4() {
- const [justify, setJustify] = useState(null);
- return <>
-
- Type:
- setJustify(val)}>
- start
- end
- center
- around
- between
- evenly
-
-
-
-
- Menu Item1
- Menu Item2
- Menu Item3
-
-
- >;
-
-}
-```
-[Menu4_END_zh_CN]
-
-[Menu4_BEGIN_en_US]
-[Menu4_END_en_US]
-----------------------------------
-[Menu5_BEGIN_zh_CN]
-### 示例5: 在Item左侧或右侧占据剩余空间
-
- 提示
-
- 在最左侧的Item上设置align="left"属性后,将尽可能占据左侧空间;在最右侧的Item上设置align="right"属性后,将尽可能占据右侧空间
-
-
-
-
-```jsx
-import React from 'react';
-import {Menu} from 'react-windy-ui';
-
-export default function Menu5() {
- return <>
-
-
-
- Left Menu
-
-
- Menu Item2
-
-
- Menu Item3
-
-
-
-
-
-
-
- Menu Item1
-
-
- Menu Item2
-
-
- Right Menu
-
-
-
- >;
-
-}
-```
-
-[Menu5_END_zh_CN]
-
-[Menu5_BEGIN_en_US]
-[Menu5_END_en_US]
-----------------------------------
-[Menu6_BEGIN_zh_CN]
-### 示例6: 给Item设置背景色和下边框
-
- 提示
-
- 在Item上设置hasBottomBar属性,Item将会在下方显示一个横条;在Item上设置hasBackground属性,Item将会获得一个背景色;
-
-
-
-
-```jsx
-import React from 'react';
-import {Menu} from 'react-windy-ui';
-
-export default function Menu6() {
- return <>
-
-
-
- Menu Item1
-
-
- Menu Item2
-
-
- Menu Item3
-
-
-
-
-
- Menu Item1
-
-
- Menu Item2
-
-
- Menu Item3
-
-
-
- >;
-
-}
-```
-
-[Menu6_END_zh_CN]
-
-[Menu6_BEGIN_en_US]
-[Menu6_END_en_US]
-----------------------------------
-[Menu7_BEGIN_zh_CN]
-### 示例7: 自定义Menu的高度
-
- 提示
-
- 修改Item的style属性,将line-height设置为一个具体的高度值后,则可使整个Menu的高度得到改变。
-
-
-
-
-```jsx
-import React from 'react';
-import {Menu} from 'react-windy-ui';
-
-const ItemStyle = {
- lineHeight: '3.2rem',
-};
-
-export default function Menu7() {
- return <>
-
-
- Menu Item1
-
-
- Menu Item2
-
-
- Menu Item3
-
-
- >;
-
-}
-```
-
-[Menu7_END_zh_CN]
-
-[Menu7_BEGIN_en_US]
-[Menu7_END_en_US]
-----------------------------------
-
-[Menu8_BEGIN_zh_CN]
-### 示例8: 子菜单SubMenu
-
- 提示
-
- 在Menu中添加子菜单SubMenu, 将整个Menu展示成具备层级关系的菜单。每个菜单只能有一个Menu根节点,并且SubMenu只能在Menu下嵌套添加。
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {Menu, RadioGroup, Radio} from 'react-windy-ui';
-
-export default function Menu8() {
- const [type, setType] = useState('normal');
- return <>
-
- Type:
- setType(val)}>
- primary
- dark
- normal
-
-
-
-
-
- Menu item1
-
-
- Menu item2
-
-
-
- Menu item5
-
-
- Menu item6
-
-
- Menu item7
-
-
- Menu item8
-
-
-
- Menu item9
-
-
- Menu item10
-
-
- Menu item11
-
-
- Menu item12
-
-
-
-
-
- Menu item13
-
-
- Menu item14
-
-
- Menu item15
-
-
- Menu item16
-
-
-
-
- >;
-
-}
-```
-
-[Menu8_END_zh_CN]
-
-[Menu8_BEGIN_en_US]
-[Menu8_END_en_US]
-----------------------------------
-[Menu9_BEGIN_zh_CN]
-### 示例9: 切换成折叠模式
-
- 提示
-
- 设置compact属性,可将菜单折叠或展开。当Menu折叠后将只显示SubMenu或Item的图标,所以您需要给对应的Item和SubMenu指定一个Icon对象。
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {IconList, Menu, Radio, RadioGroup, Toggle} from 'react-windy-ui';
-import {IconInfo, IconQuestion} from '../../../../components/src';
-
-export default function Menu9() {
- const [type, setType] = useState('normal');
- const [compact, setCompact] = useState(false);
- return <>
-
- Type:
- setType(val)}>
- primary
- dark
- normal
-
-
-
- setCompact(active)}
- content={{on: 'Compact', off: 'Compact'}}/>
-
-
-
console.log(`open==${data}`)}
- onSelect={(data, e) => console.log(`select=${data.id}`)}
- type={type}>
- }>
- Menu item1
-
- }>
- Menu item2
-
- }>
-
- Menu item3
-
-
- Menu item4
-
-
- Menu item5
-
-
- Menu item6
-
-
- Menu item7
-
-
- Menu item8
-
-
-
- Menu item9
-
-
- Menu item10
-
-
- Menu item11
-
-
- Menu item12
-
-
-
- }>
-
- Menu item13
-
-
- Menu item14
-
-
- Menu item15
-
-
- Menu item16
-
-
-
-
-
-
-
-
- >;
-
-}
-```
-
-[Menu9_END_zh_CN]
-
-[Menu9_BEGIN_en_US]
-[Menu9_END_en_US]
-----------------------------------
-[Menu10_BEGIN_zh_CN]
-### 示例10: 弹出式的SubMenu
-
- 提示
-
- Menu还有一个属性可以让SubMenu弹出显示,将popupSubMenu设置为true后,SubMenu将被弹出显示。
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {IconHome, Menu, Radio, RadioGroup, Toggle} from 'react-windy-ui';
-import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
-import {faLaptop} from '@fortawesome/free-solid-svg-icons';
-
-export default function Menu10() {
- const [hasArrow, setHasArrow] = useState(true);
- const [hasBox, setHasBox] = useState(true);
- const [horizontal, setHorizontal] = useState(false);
- const [type, setType] = useState('normal');
- const [popupSubMenu, setPopupSubMenu] = useState(false);
-
- return
-
- setHasArrow(active)}
- content={{on: 'Arrow', off: 'Arrow'}}/>
-
-
- setHorizontal(active)}
- content={{on: 'Horizontal', off: 'Horizontal'}}/>
-
-
- type:
- setType(val)}>
- primary
- dark
- normal
-
-
-
- setPopupSubMenu(active)}
- content={{on: 'Popup SubMenu', off: 'Popup SubMenu'}}/>
-
-
- setHasBox(active)}
- content={{on: 'Box Shadow', off: 'Box Shadow'}}/>
-
-
-
-
-
console.log(`==${data}`)}
- hasArrow={hasArrow} icon={ }>
- }>
-
-
- Item1
-
-
- Item2
-
-
-
-
- Item3
-
-
- Item4
-
-
-
- }>
-
- Item5
-
-
- Item6
-
-
- Item7
-
-
- Item8
-
-
- }>
-
- Item9
-
-
- Item10
-
-
- Item11
-
-
- Item12
-
-
-
-
-
-
;
-}
-```
-
-[Menu10_END_zh_CN]
-
-[Menu10_BEGIN_en_US]
-[Menu10_END_en_US]
-----------------------------------
-
-
-----------------------------------
-[Menu11_BEGIN_zh_CN]
-### 示例11: 分组Group
-
- 提示
-
- 可以使用一个Group将多个Item组合。
-
-
-
-```jsx
-import React from 'react';
-import {Menu} from 'react-windy-ui';
-
-export default function Menu11() {
-
- return
-
-
-
-
-
- Item1
-
-
- Item2
-
-
-
-
- Item3
-
-
- Item4
-
-
-
-
-
-
;
-}
-```
-
-[Menu11_END_zh_CN]
-
-[Menu11_BEGIN_en_US]
-[Menu11_END_en_US]
-----------------------------------
-[Menu12_BEGIN_zh_CN]
-### 示例12: 多选Menu
-
- 提示
-
- 可多选的Menu。当Item是未选中状态时,点击Item会显示选中状态;当Item是已选中状态时,再次点击Item会取消选中。想要在点击时获取
- 当前选中的Item时,可以实现onSelect方法。
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {IconList, Menu, Radio, RadioGroup, Toggle} from 'react-windy-ui';
-
-export default function Menu12() {
- const [type, setType] = useState('primary');
- const [multiSelect, setMultiSelect] = useState(true);
- return <>
-
- Type:
- setType(val)}>
- primary
- dark
- normal
-
-
-
- setMultiSelect(active)}
- content={{on: 'Multi-Select', off: 'Multi-Select'}}/>
-
-
-
-
console.log(`open==${data}`)}
- onSelect={(data, e) => console.log(`select=${data}`)}
- type={type}>
- }>
-
- Menu item1
-
-
- Menu item2
-
-
- Menu item3
-
-
- Menu item4
-
-
- Menu item5
-
-
- Menu item6
-
-
- Menu item7
-
-
- Menu item8
-
-
-
- Menu item9
-
-
- Menu item10
-
-
- Menu item11
-
-
- Menu item12
-
-
-
- }>
-
- Menu item13
-
-
- Menu item14
-
-
- Menu item15
-
-
- Menu item16
-
-
-
-
-
-
-
-
- >;
-
-}
-```
-
-[Menu12_END_zh_CN]
-
-[Menu12_BEGIN_en_US]
-[Menu12_END_en_US]
-----------------------------------
-[Menu13_BEGIN_zh_CN]
-### 示例13: 多选Menu
-
- 提示
-
- 这里示例了如下几个配置项: 是否在菜单上显示折叠箭头图标、是否Menu具有边框阴影、是否在底部显示一个变化的横条。
- 对于SubMenu,设置了hasBottomBar属性后,将会在Header下方显示。如果是Item的话,则需要在每个Item上设置这个属性后方可显示。
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {IconList, Menu, Radio, RadioGroup, Toggle} from 'react-windy-ui';
-
-export default function Menu13() {
- const [type, setType] = useState('normal');
- const [hasBox, setHasBox] = useState(true);
- const [hasArrow, setHasArrow] = useState(true);
- const [bottomBar, setBottomBar] = useState(true);
- return <>
-
- Type:
- setType(val)}>
- primary
- dark
- normal
-
-
-
- setHasArrow(active)}
- content={{on: 'Arrow', off: 'Arrow'}}/>
-
-
- setHasBox(active)}
- content={{on: 'Box Shadow', off: 'Box Shadow'}}/>
-
-
-
-
- setBottomBar(active)}
- content={{on: 'Bottom Bar', off: 'Bottom Bar'}}/>
-
-
-
- }
- hasBottomBar={bottomBar}>
-
- Menu item3
-
-
- Menu item4
-
-
- Menu item5
-
-
- Menu item6
-
-
- Menu item7
-
-
- Menu item8
-
-
-
-
- Menu item9
-
-
- Menu item10
-
-
- Menu item11
-
-
- Menu item12
-
-
-
-
-
-
-
-
- >;
-
-}
-```
-
-[Menu13_END_zh_CN]
-
-[Menu13_BEGIN_en_US]
-[Menu13_END_en_US]
-----------------------------------
-
-[Menu14_BEGIN_zh_CN]
-### 示例14: 利用SubMenu显示层级菜单
-
- 提示
-
- 对于通常使用的层级菜单,推荐使用SubMenu将对应的Item组合在一起,而且可以面板可以折叠展开。
-
-
-
-```jsx
-import React from 'react';
-import {IconList, Menu} from 'react-windy-ui';
-
-export default function Menu14() {
-
- return <>
-
-
- }>
-
- Menu item3
-
-
- Menu item4
-
-
- Menu item5
-
-
- Menu item6
-
-
- Menu item7
-
-
- Menu item8
-
-
-
-
- Menu item9
-
-
- Menu item10
-
-
- Menu item11
-
-
- Menu item12
-
-
-
-
-
-
-
-
- >;
-
-}
-```
-
-[Menu14_END_zh_CN]
-
-[Menu14_BEGIN_en_US]
-[Menu14_END_en_US]
-----------------------------------
diff --git a/src/docs/pages/menu/md/Menu1.md b/src/docs/pages/menu/md/Menu1.md
new file mode 100644
index 00000000..10b2b281
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu1.md
@@ -0,0 +1,16 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: Menu
+editUrl: $BASE/docs/pages/menu/md/Menu1.md
+---
+
++++ zh_CN
+一个最简单的Menu示例,Menu默认情况下在垂直方向上排列。
+
++++ en_US
+Menu1
+
++++ SampleCode
+fileName: Menu1
diff --git a/src/docs/pages/menu/md/Menu10.md b/src/docs/pages/menu/md/Menu10.md
new file mode 100644
index 00000000..65ec90fe
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu10.md
@@ -0,0 +1,17 @@
+---
+order: 10
+type: sample
+zh_CN: 弹出式的SubMenu
+en_US: Menu10
+editUrl: $BASE/docs/pages/menu/md/Menu10.md
+---
+
++++ zh_CN
+Menu还有一个属性可以让SubMenu弹出显示,将popupSubMenu设置为true后,SubMenu将被弹出显示。
+
+
++++ en_US
+Menu10
+
++++ SampleCode
+fileName: Menu10
diff --git a/src/docs/pages/menu/md/Menu11.md b/src/docs/pages/menu/md/Menu11.md
new file mode 100644
index 00000000..23b7ee73
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu11.md
@@ -0,0 +1,16 @@
+---
+order: 11
+type: sample
+zh_CN: 分组Group
+en_US: Menu11
+editUrl: $BASE/docs/pages/menu/md/Menu11.md
+---
+
++++ zh_CN
+可以使用一个Group将多个Item组合。
+
++++ en_US
+Menu11
+
++++ SampleCode
+fileName: Menu11
diff --git a/src/docs/pages/menu/md/Menu12.md b/src/docs/pages/menu/md/Menu12.md
new file mode 100644
index 00000000..06291b2e
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu12.md
@@ -0,0 +1,17 @@
+---
+order: 12
+type: sample
+zh_CN: 多选Menu
+en_US: Menu12
+editUrl: $BASE/docs/pages/menu/md/Menu12.md
+---
+
++++ zh_CN
+ 可多选的Menu。当Item是未选中状态时,点击Item会显示选中状态;当Item是已选中状态时,再次点击Item会取消选中。想要在点击时获取
+ 当前选中的Item时,可以实现onSelect方法。
+
++++ en_US
+Menu12
+
++++ SampleCode
+fileName: Menu12
diff --git a/src/docs/pages/menu/md/Menu13.md b/src/docs/pages/menu/md/Menu13.md
new file mode 100644
index 00000000..12e8e2d5
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu13.md
@@ -0,0 +1,18 @@
+---
+order: 13
+type: sample
+zh_CN: 多选Menu
+en_US: Menu13
+editUrl: $BASE/docs/pages/menu/md/Menu13.md
+---
+
++++ zh_CN
+这里示例了如下几个配置项: 是否在菜单上显示折叠箭头图标、是否Menu具有边框阴影、是否在底部显示一个变化的横条。
+ 对于SubMenu,设置了hasBottomBar属性后,将会在Header下方显示。如果是Item的话,则需要在每个Item上设置这个属性后方可显示。
+
+
++++ en_US
+Menu13
+
++++ SampleCode
+fileName: Menu13
diff --git a/src/docs/pages/menu/md/Menu14.md b/src/docs/pages/menu/md/Menu14.md
new file mode 100644
index 00000000..e81f15d8
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu14.md
@@ -0,0 +1,16 @@
+---
+order: 14
+type: sample
+zh_CN: 利用SubMenu显示层级菜单
+en_US: Menu14
+editUrl: $BASE/docs/pages/menu/md/Menu14.md
+---
+
++++ zh_CN
+对于通常使用的层级菜单,推荐使用SubMenu将对应的Item组合在一起,而且可以面板可以折叠展开。
+
++++ en_US
+Menu14
+
++++ SampleCode
+fileName: Menu14
diff --git a/src/docs/pages/menu/md/Menu15.md b/src/docs/pages/menu/md/Menu15.md
new file mode 100644
index 00000000..3c130f8d
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu15.md
@@ -0,0 +1,16 @@
+---
+order: 15
+type: sample
+zh_CN: Menu15
+en_US: Menu15
+editUrl: $BASE/docs/pages/menu/md/Menu15.md
+---
+
++++ zh_CN
+
+
++++ en_US
+Menu14
+
++++ SampleCode
+fileName: Menu_open
diff --git a/src/docs/pages/menu/md/Menu2.md b/src/docs/pages/menu/md/Menu2.md
new file mode 100644
index 00000000..77dc2aea
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu2.md
@@ -0,0 +1,16 @@
+---
+order: 2
+type: sample
+zh_CN: 切换不同类型的Menu
+en_US: Menu2
+editUrl: $BASE/docs/pages/menu/md/Menu2.md
+---
+
++++ zh_CN
+有三种Menu类型: primary、normal、dark。
+
++++ en_US
+Menu2
+
++++ SampleCode
+fileName: Menu2
diff --git a/src/docs/pages/menu/md/Menu3.md b/src/docs/pages/menu/md/Menu3.md
new file mode 100644
index 00000000..b932c90a
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu3.md
@@ -0,0 +1,16 @@
+---
+order: 3
+type: sample
+zh_CN: 切换不同类型的Menu
+en_US: Menu3
+editUrl: $BASE/docs/pages/menu/md/Menu3.md
+---
+
++++ zh_CN
+默认情况下Menu在垂直方向上排列,要在水平方向上排列的话,则需要将direction属性设置为'horizontal'。
+
++++ en_US
+Menu3
+
++++ SampleCode
+fileName: Menu3
diff --git a/src/docs/pages/menu/md/Menu4.md b/src/docs/pages/menu/md/Menu4.md
new file mode 100644
index 00000000..a9daa36d
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu4.md
@@ -0,0 +1,16 @@
+---
+order: 4
+type: sample
+zh_CN: 在水平方向排列各个Item
+en_US: Menu4
+editUrl: $BASE/docs/pages/menu/md/Menu4.md
+---
+
++++ zh_CN
+通过设置justify属性,你可以针对水平展示的Menu,指定其下各个Item的排放位置。
+
++++ en_US
+Menu4
+
++++ SampleCode
+fileName: Menu4
diff --git a/src/docs/pages/menu/md/Menu5.md b/src/docs/pages/menu/md/Menu5.md
new file mode 100644
index 00000000..c92569da
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu5.md
@@ -0,0 +1,17 @@
+---
+order: 5
+type: sample
+zh_CN: 在Item左侧或右侧占据剩余空间
+en_US: Menu5
+editUrl: $BASE/docs/pages/menu/md/Menu5.md
+---
+
++++ zh_CN
+在最左侧的Item上设置align="left"属性后,将尽可能占据左侧空间;在最右侧的Item上设置align="right"属性后,将尽可能占据右侧空间
+
+
++++ en_US
+Menu5
+
++++ SampleCode
+fileName: Menu5
diff --git a/src/docs/pages/menu/md/Menu6.md b/src/docs/pages/menu/md/Menu6.md
new file mode 100644
index 00000000..0c1d2ad7
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu6.md
@@ -0,0 +1,17 @@
+---
+order: 6
+type: sample
+zh_CN: 给Item设置背景色和下边框
+en_US: Menu6
+editUrl: $BASE/docs/pages/menu/md/Menu6.md
+---
+
++++ zh_CN
+在Item上设置hasBottomBar属性,Item将会在下方显示一个横条;在Item上设置hasBackground属性,Item将会获得一个背景色;
+
+
++++ en_US
+Menu6
+
++++ SampleCode
+fileName: Menu6
diff --git a/src/docs/pages/menu/md/Menu7.md b/src/docs/pages/menu/md/Menu7.md
new file mode 100644
index 00000000..850c2685
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu7.md
@@ -0,0 +1,16 @@
+---
+order: 7
+type: sample
+zh_CN: 自定义Menu的高度
+en_US: Menu7
+editUrl: $BASE/docs/pages/menu/md/Menu7.md
+---
+
++++ zh_CN
+修改Item的style属性,将line-height设置为一个具体的高度值后,则可使整个Menu的高度得到改变。
+
++++ en_US
+Menu7
+
++++ SampleCode
+fileName: Menu7
diff --git a/src/docs/pages/menu/md/Menu8.md b/src/docs/pages/menu/md/Menu8.md
new file mode 100644
index 00000000..3a350777
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu8.md
@@ -0,0 +1,16 @@
+---
+order: 8
+type: sample
+zh_CN: 子菜单SubMenu
+en_US: Menu8
+editUrl: $BASE/docs/pages/menu/md/Menu8.md
+---
+
++++ zh_CN
+在Menu中添加子菜单SubMenu, 将整个Menu展示成具备层级关系的菜单。每个菜单只能有一个Menu根节点,并且SubMenu只能在Menu下嵌套添加。
+
++++ en_US
+Menu8
+
++++ SampleCode
+fileName: Menu8
diff --git a/src/docs/pages/menu/md/Menu9.md b/src/docs/pages/menu/md/Menu9.md
new file mode 100644
index 00000000..25c91abf
--- /dev/null
+++ b/src/docs/pages/menu/md/Menu9.md
@@ -0,0 +1,16 @@
+---
+order: 9
+type: sample
+zh_CN: 子菜单SubMenu
+en_US: Menu9
+editUrl: $BASE/docs/pages/menu/md/Menu9.md
+---
+
++++ zh_CN
+设置compact属性,可将菜单折叠或展开。当Menu折叠后将只显示SubMenu或Item的图标,所以您需要给对应的Item和SubMenu指定一个Icon对象。
+
++++ en_US
+Menu9
+
++++ SampleCode
+fileName: Menu9
diff --git a/src/docs/pages/menu/md/api.md b/src/docs/pages/menu/md/api.md
new file mode 100644
index 00000000..ba3b3af7
--- /dev/null
+++ b/src/docs/pages/menu/md/api.md
@@ -0,0 +1,91 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/menu/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+几个需要注意的事项:
+ 请给SubMenu、Item设置一个在Menu内唯一的id。这个id在菜单折叠展示或Item选中时需要用到。
+ 请给SubMenu的配置一个header,这样子菜单才会显示对应的头部区域
+
+
+Menu
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
+| className | 样式名称 | string | menu | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| hasBox | 是否显示边框阴影 | boolean | - | - |
+| hasBorderRadius | 是否边角有弧形 | boolean | - | |
+| hasArrow | 是否有折叠/展开的箭头 | boolean | - | |
+| collapsable | 是否能够折叠 | boolean | - | |
+| justify | 水平排列Item的方式 | string | start | 可设置为: start,end, center, around, between, evenly |
+| direction | 菜单的布局方向 | string | vertical | 可设置为: horizontal(水平布局),vertical(垂直布局) |
+| type | 类型 | string | normal | 可设置为: normal, primary, dark |
+| popupSubMenu | 是否弹出子菜单 | boolean | false | |
+| children | 子节点 | react node | - | |
+| autoIndent | Menu是否自动缩进 | boolean | true | |
+| indentUnit | 菜单缩进值的单位 | string | rem | |
+| indentation | 默认的缩进量 | string | rem | |
+| onSelect | 当有Item选中时的回调 | function | - | |
+| onClickItem | 当点击Item时的回调 | function | - | |
+| multiSelect | 是否可以选择多个Item | boolean | false | |
+| compact | 是否允许菜单压缩显示 | boolean | false | |
+| defaultActiveItems | 默认选中的Item其id组成的数组 | string[] \| number[] | - | |
+| activeItems | 当前选中的Item其id组成的数组 | string[] \| number[] | - | |
+| defaultOpenedMenus | 默认展开的Menu/SubMenu其id组成的数组 | string[] \| number[] | - | |
+| openedMenus | 当前展开的Menu/SubMenu其id组成的数组 | string[] \| number[] | - | |
+| onOpenedMenu | 但菜单展开或折叠所触发的回调 | function | - | |
+| selectable | 点击Item是否允许显示选中状态 | boolean | - | |
+
+
+SubMenu
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
+| className | 样式名称 | string | base-menu | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| id | SubMenu的ID | string \| number | - | 务必设置一个Menu内部唯一的值 |
+| icon | 在Header左侧显示的Icon | react node | - | |
+| popupSubMenu | SubMenu是否弹出显示 | boolean | false | |
+| popupSubMenuPosition | SubMenu弹出显示的位置 | string | right | 可设置为: right, bottom |
+| hasBottomBar | 是否在Header下方显示选中状态下的横条 | boolean | false | |
+
+
+Group
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
+| className | 样式名称 | string | base-menu | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| header | 分组的抬头显示 | react node | - | |
+
+
+
+Item
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
+| className | 样式名称 | string | base-menu | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| id | SubMenu的ID | string \| number | - | 务必设置一个Menu内部唯一的值 |
+| equitable | Item是否均匀瓜分剩余的空间 | boolean | - | |
+| hasBackground | 选中时是否添加背景色 | boolean | - | |
+| hasBottomBar | 是否在下方显示选中状态下的横条 | boolean | false | |
+| disabled | 是否禁用 | boolean | - | |
+| align | 对齐的方向 | string | - | 可设置为: left、center、right |
+| icon | 在Item左侧显示的Icon | react node | - | |
+| onClick | 点击时的回调 | | - | |
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/menu/md/title.md b/src/docs/pages/menu/md/title.md
new file mode 100644
index 00000000..a8c81845
--- /dev/null
+++ b/src/docs/pages/menu/md/title.md
@@ -0,0 +1,21 @@
+---
+ order: 0
+ type: text
+ zh_CN: 菜单 Menu
+ en_US: Menu
+ editUrl: $BASE/docs/pages/menu/md/title.md
+---
+
++++ zh_CN
+## 菜单 Menu [editUrl]
+在网站布局中,通常需要在水平或垂直方向展示一系列的条目,此时使用Menu是一个不错的选择。
+
+Menu主要有以下功能
+* 提供了primary、normal、dark三种类型的菜单
+* Menu可以水平或垂直排列
+* Menu可以在下方或右侧弹出子菜单
+
+
++++ en_US
+## Menu [editUrl]
+
diff --git a/src/docs/pages/menu/samples/Store.js b/src/docs/pages/menu/samples/Store.js
deleted file mode 100755
index 1b4546c0..00000000
--- a/src/docs/pages/menu/samples/Store.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import React, {useContext, useEffect, useMemo, useState} from 'react';
-import {Button} from 'react-windy-ui';
-import {
- initStore,
- Provider,
- StoreContext,
-} from '../../../../components/src/common/Store';
-
-export default function Store() {
- const store = useMemo(() => initStore({
- msg: 'NULL',
- }), []);
- return
-
-
- ;
-}
-
-export function Store2() {
- const store = useMemo(() => initStore({
- msg: 'NULL',
- }), []);
- return
-
-
- ;
-}
-
-function Child({id}) {
- const [active, setActive] = useState();
- const {setState, attach, detach} = useContext(StoreContext);
- console.log(`${id}-> updated.`);
-
- useEffect(() => {
- const listener = (state) => {
- console.log(`${id} is notified`)
- const isActive = state.id === id;
- if (isActive) {
- setActive(true);
- }
- };
- attach(listener);
- return () => detach(listener);
- }, []);
-
- return {active ? id + ' Activated' : null} -- {setState({id});}}>button - {id}
;
-
-}
\ No newline at end of file
diff --git a/src/docs/pages/menu/samples/TestReducer.js b/src/docs/pages/menu/samples/TestReducer.js
deleted file mode 100755
index b4e5164f..00000000
--- a/src/docs/pages/menu/samples/TestReducer.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import React, {useContext, useReducer} from 'react';
-import {Button} from 'react-windy-ui';
-
-const AppCtx = React.createContext(null);
-
-const reducer = (state, action) => {
- switch (action.type) {
- case 'add':
- return {data: action.payload};
-
- default:
- return state;
- }
-};
-
-export default function TestReducer() {
- const [state, dispatch] = useReducer(reducer, {data: 'NULL'});
- console.log("TestReducer changed")
- return
- {/*{state.data}
*/}
-
- ;
-}
-
-function Child() {
- console.log("Child changed")
- const ctx = useContext(AppCtx);
- return {ctx.state.data} -- ctx.dispatch(
- {type: 'add', payload: 'hello'})}>button
;
-
-}
\ No newline at end of file
diff --git a/src/docs/pages/modal/ModalIndex.js b/src/docs/pages/modal/ModalIndex.js
index 89740c2b..5acae272 100755
--- a/src/docs/pages/modal/ModalIndex.js
+++ b/src/docs/pages/modal/ModalIndex.js
@@ -1,35 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Modal1 from './samples/Modal1';
-import Modal2 from './samples/Modal2';
-import Modal3 from './samples/Modal3';
-import Modal4 from './samples/Modal4';
-import Modal5 from './samples/Modal5';
-import Modal7 from './samples/Modal7';
-import Modal6 from './samples/Modal6';
-import Modal8 from './samples/Modal8';
-import Modal9 from './samples/Modal9';
-import Modal10 from './samples/Modal10';
+import DocPage2 from '../../utils/DocPage2';
-/**
- * It maps the text blocks in Markdown file
- */
-const componentMapping = {
- Modal1: ,
- Modal2: ,
- Modal3: ,
- Modal4: ,
- Modal5: ,
- Modal6: ,
- Modal7: ,
- Modal8: ,
- Modal9: ,
- Modal10: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-export default function ModalIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function MenuIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/modal/md/api.md b/src/docs/pages/modal/md/api.md
new file mode 100644
index 00000000..f88b1154
--- /dev/null
+++ b/src/docs/pages/modal/md/api.md
@@ -0,0 +1,47 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/modal/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+Modal的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Modal Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | dialog | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| type | 类型 | string | info | 值可以是:primary,secondary,simple |
+| hasMask | 是否显示黑色遮罩层 | boolean | true | |
+| onCancel | 关闭时的回调函数 | function | - | 点击右上角的关闭图标或黑色遮罩层时会在内部自动调用 |
+| active | 激活显示 | boolean | - | |
+| autoClose | 是否允许自动关闭 | boolean | - | 点击右上角的关闭图标或黑色遮罩层时是否自动关闭 |
+| alignCenter | 是否居中显示 | boolean | true | 如果设置成false时,会在距离顶部某处显示,此时需要通过style设置对应的top值 |
+| allowOverflow | 是否允许内容区域垂直滚动 | boolean | true | 如果设置为true时,请给Modal窗体设置一个高度,这样Body区域超出会自动滚动显示 |
+| hasDefaultWidth | 是否设置一个默认的宽度 | boolean | true | 如果设置为true时,Modal的宽度默认为90%;为false时,不设置宽度,宽度以内容的实际宽度为准。 |
+
+Mode.method()对应的方法如下所示:
+
+| 方法名 | 名称 | 参数 | 返回值 | 描述 |
+| --- | --- | --- | --- | --- |
+| info | 显示info类型的Modal | object | modal | config: {type, header, title, body, okText, cancelText, onOk, onCancel} |
+| warning | 显示warning类型的Modal | object | modal | config: 同上 |
+| error | 显示error类型的Modal | object | modal | config: 同上 |
+| success | 显示success类型的Modal | object | modal | config: 同上 |
+| confirm | 显示confirm类型的Modal | object | modal | config: 同上 |
+| closeAll | 关闭所有的Modal | - | - | |
+
+通过上面Modal.method()方法返回的modal对象,其提供的方法如下所示:
+
+| 方法名 | 名称 | 参数 | 返回值 | 描述 |
+| --- | --- | --- | --- | --- |
+| close | 关闭当前的Modal | - | - | |
+| update | 更新Modal的内容 | object | - | 可更新的内容:{header,title,body,okText,cancelText} |
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/modal/md/modal1.md b/src/docs/pages/modal/md/modal1.md
new file mode 100644
index 00000000..104a0ae7
--- /dev/null
+++ b/src/docs/pages/modal/md/modal1.md
@@ -0,0 +1,17 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: Modal
+editUrl: $BASE/docs/pages/menu/md/modal1.md
+---
+
++++ zh_CN
+一个简单的Modal示例。在这个示例中,通过active属性去控制Modal的开关,实现onClose回调以便当点击黑色
+ 背景或关闭按钮时关闭Modal。同时自定义了两个按钮。
+
++++ en_US
+Modal1
+
++++ SampleCode
+fileName: Modal1
diff --git a/src/docs/pages/modal/md/modal10.md b/src/docs/pages/modal/md/modal10.md
new file mode 100644
index 00000000..15c4e1b6
--- /dev/null
+++ b/src/docs/pages/modal/md/modal10.md
@@ -0,0 +1,18 @@
+---
+order: 10
+type: sample
+zh_CN: 关闭单个Modal以及更新Modal的内容
+en_US: Modal
+editUrl: $BASE/docs/pages/menu/md/modal10.md
+---
+
++++ zh_CN
+对于通过Modal.info()这类方式打开的Modal,会返回一个对象,你可以调用其提供的close和update方法。
+ close可以关闭该Modal,update则用来更新Modal的header、title、body、ok按钮文字以及cancel按钮文字。
+
+
++++ en_US
+Modal10
+
++++ SampleCode
+fileName: Modal10
diff --git a/src/docs/pages/modal/md/modal2.md b/src/docs/pages/modal/md/modal2.md
new file mode 100644
index 00000000..dba7ee19
--- /dev/null
+++ b/src/docs/pages/modal/md/modal2.md
@@ -0,0 +1,17 @@
+---
+order: 2
+type: sample
+zh_CN: 在窗口顶部显示的Modal
+en_US: Modal
+editUrl: $BASE/docs/pages/menu/md/modal2.md
+---
+
++++ zh_CN
+ 默认情况下,Modal会在屏幕居中显示。如果需要在顶部一定距离显示,可以指定alignCenter为false,同时在style
+ 中设置top属性值, 这样Modal就会在top距离位置开始显示。
+
++++ en_US
+Modal2
+
++++ SampleCode
+fileName: Modal2
diff --git a/src/docs/pages/modal/md/modal3.md b/src/docs/pages/modal/md/modal3.md
new file mode 100644
index 00000000..465a86f1
--- /dev/null
+++ b/src/docs/pages/modal/md/modal3.md
@@ -0,0 +1,16 @@
+---
+order: 3
+type: sample
+zh_CN: Modal类型
+en_US: Modal type
+editUrl: $BASE/docs/pages/menu/md/modal3.md
+---
+
++++ zh_CN
+ Modal有三种类型可供选择: primary, secondary, simple。
+
++++ en_US
+Modal3
+
++++ SampleCode
+fileName: Modal3
diff --git a/src/docs/pages/modal/md/modal4.md b/src/docs/pages/modal/md/modal4.md
new file mode 100644
index 00000000..24f66008
--- /dev/null
+++ b/src/docs/pages/modal/md/modal4.md
@@ -0,0 +1,18 @@
+---
+order: 4
+type: sample
+zh_CN: Modal的背景颜色
+en_US: Modal background
+editUrl: $BASE/docs/pages/menu/md/modal4.md
+---
+
++++ zh_CN
+要想切换不同的背景色,可以结合使用框架提供的几个样式。其中'text color-white'指定了文字为白色;
+ 'bg-color-pink'或其他以’bg-color'开头的class,用来指定背景色。有关背景色和文字颜色的具体可使用的参数值,
+ 您可以参阅文字和颜色章节。
+
++++ en_US
+Modal4
+
++++ SampleCode
+fileName: Modal4
diff --git a/src/docs/pages/modal/md/modal5.md b/src/docs/pages/modal/md/modal5.md
new file mode 100644
index 00000000..0b97d783
--- /dev/null
+++ b/src/docs/pages/modal/md/modal5.md
@@ -0,0 +1,17 @@
+---
+order: 5
+type: sample
+zh_CN: Modal的大小
+en_US: Modal background
+editUrl: $BASE/docs/pages/menu/md/modal5.md
+---
+
++++ zh_CN
+Modal可以指定四种大小: small、medium、large、xLarge。当屏幕宽度达到一定尺寸后,Modal会以一定的宽度显示。
+ 如果屏幕尺寸不满足时,将自动切换为默认宽度,即当前窗口90%的宽度。
+
++++ en_US
+Modal5
+
++++ SampleCode
+fileName: Modal5
diff --git a/src/docs/pages/modal/md/modal6.md b/src/docs/pages/modal/md/modal6.md
new file mode 100644
index 00000000..0052a07a
--- /dev/null
+++ b/src/docs/pages/modal/md/modal6.md
@@ -0,0 +1,17 @@
+---
+order: 6
+type: sample
+zh_CN: 按钮居中显示
+en_US: Modal Button
+editUrl: $BASE/docs/pages/menu/md/modal6.md
+---
+
++++ zh_CN
+Modal的Footer可以指定一侧排列,可以指定靠左、居中、靠右排列。对应地将Footer的align属性设置为:
+ left、center、right。这里将align设置为center后,Modal中的按钮将居中显示。
+
++++ en_US
+Modal6
+
++++ SampleCode
+fileName: Modal6
diff --git a/src/docs/pages/modal/md/modal7.md b/src/docs/pages/modal/md/modal7.md
new file mode 100644
index 00000000..4a1b89ff
--- /dev/null
+++ b/src/docs/pages/modal/md/modal7.md
@@ -0,0 +1,18 @@
+---
+order: 7
+type: sample
+zh_CN: Modal快捷使用
+en_US: Modal
+editUrl: $BASE/docs/pages/menu/md/modal7.md
+---
+
++++ zh_CN
+在上面例子中,显示一个Modal您需要在组件中添加<Modal .../>的组件,同时控制Modal的显示与关闭。
+ 如果需要快捷地弹出一个对话框进行提示、告警之类的,可以考虑使用这个快捷的调用方式(通过调用Modal.method方法调用)。
+
+
++++ en_US
+Modal7
+
++++ SampleCode
+fileName: Modal7
diff --git a/src/docs/pages/modal/md/modal8.md b/src/docs/pages/modal/md/modal8.md
new file mode 100644
index 00000000..06ed7cd1
--- /dev/null
+++ b/src/docs/pages/modal/md/modal8.md
@@ -0,0 +1,17 @@
+---
+order: 8
+type: sample
+zh_CN: Body内容超出自动滚动显示
+en_US: Modal Body
+editUrl: $BASE/docs/pages/menu/md/modal8.md
+---
+
++++ zh_CN
+当Body内容过多后,Modal内部会出现滚动条,将内容滚动显示。此时您需要将allowOverflow设置为true,
+ 并同时给Modal设置一个整体的高度,而且Body会默认占据尽可能多的空间。
+
++++ en_US
+Modal8
+
++++ SampleCode
+fileName: Modal8
diff --git a/src/docs/pages/modal/md/modal9.md b/src/docs/pages/modal/md/modal9.md
new file mode 100644
index 00000000..3988c503
--- /dev/null
+++ b/src/docs/pages/modal/md/modal9.md
@@ -0,0 +1,16 @@
+---
+order: 9
+type: sample
+zh_CN: 弹出多个Modal
+en_US: Modal
+editUrl: $BASE/docs/pages/menu/md/modal9.md
+---
+
++++ zh_CN
+弹出多个Modal示例,点击Close All按钮后将调用Modal.closeAll()方法将所有Modal关闭。
+
++++ en_US
+Modal9
+
++++ SampleCode
+fileName: Modal9
diff --git a/src/docs/pages/modal/md/title.md b/src/docs/pages/modal/md/title.md
new file mode 100644
index 00000000..67a010b9
--- /dev/null
+++ b/src/docs/pages/modal/md/title.md
@@ -0,0 +1,16 @@
+---
+ order: 0
+ type: text
+ zh_CN: 对话框 Modal
+ en_US: Modal
+ editUrl: $BASE/docs/pages/menu/md/title.md
+---
+
++++ zh_CN
+## 对话框 Modal [editUrl]
+Modal也即模态对话框。在当前页面额外弹出一个框体,比如确认对话框、提示对话框等。
+
+
++++ en_US
+## Modal [editUrl]
+
diff --git a/src/docs/pages/navbar/NavbarIndex.js b/src/docs/pages/navbar/NavbarIndex.js
index cd5c62a3..0e88f2fe 100755
--- a/src/docs/pages/navbar/NavbarIndex.js
+++ b/src/docs/pages/navbar/NavbarIndex.js
@@ -1,37 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Navbar1 from './samples/Navbar1';
-import Navbar2 from './samples/Navbar2';
-import Navbar3 from './samples/Navbar3';
-import Navbar4 from './samples/Navbar4';
-import Navbar5 from './samples/Navbar5';
-import Navbar6 from './samples/Navbar6';
-import Navbar7 from './samples/Navbar7';
-import Navbar8 from './samples/Navbar8';
-import Navbar9 from './samples/Navbar9';
-import md from './samples/test.md';
-import Navbar10 from './samples/Navbar10';
+import DocPage2 from '../../utils/DocPage2';
-/**
- * It maps the text blocks in Markdown file
- */
-const componentMapping = {
- Navbar1: ,
- Navbar2: ,
- Navbar3: ,
- Navbar4: ,
- Navbar5: ,
- Navbar6: ,
- Navbar7: ,
- Navbar8: ,
- Navbar9: ,
- // Navbar10: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-export default function NavbarIndex(props) {
- return <>
- import('./doc.md')}
- componentMapping={componentMapping}
- />>;
+export default function NavbarIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/navbar/doc.md b/src/docs/pages/navbar/doc.md
deleted file mode 100755
index c81e9501..00000000
--- a/src/docs/pages/navbar/doc.md
+++ /dev/null
@@ -1,623 +0,0 @@
------------ Title ------------
-[TITLE_BEGIN_zh_CN]
-## 导航条 NavBar
-可将一系列操作放置在导航条,或是当前窗口相关的内容。可用于展示标题、品牌、导航选项等。
-
-- 提供了两种类型的NavBar
-- 支持自定义背景色
-- NavBar可以在顶部或底部固定位置显示
-- 支持响应式布局,可自动隐藏或显示NavBar中的List
-
-[TITLE_END_zh_CN]
-
-
-[TITLE_BEGIN_en_US]
-[TITLE_END_en_US]
-
-------------- Footer ---------------------
-[FOOTER_BEGIN_zh_CN]
-## API
-
-* Navbar
的属性如下所示:
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
-| className | 样式名称 | string | navbar | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| type | 类型 | string | normal | 值可以是:primary
, normal
|
-| fixed | 固定位置 | string | top | 值可以是:top
, bottom
|
-| hasBox | 是否显示阴影 | bool | true | |
-| hasBorder | 是否有边框 | bool | false | |
-| autoHide | 是否自动折叠/展示List | bool | true | 当窗口宽度变窄时是否自动隐藏List |
-| expand | 展开Navbar | bool | - | 当设置了此属性后,需要配合onExpand方法去修改这个属性值。 |
-| defaultExpand | 是否初始展开Navbar | bool | false | 初始显示时是否展开List |
-| onExpand | 展开/折叠List时的回调函数 | function(expand) | - | 当expand变化后触发。格式:onExpand(true|false})
|
-
-* Switch
的属性如下所示:
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
-| className | 样式名称 | string | button navbar-switch bg-transparent | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| type | 类型 | string | normal | 值可以是:primary
, normal
|
-| onClick | 点击切换按钮的回调 | function(e) | - | |
-| circle | 是否时圆形按钮 | bool | true | |
-
-* Title
的属性如下所示:
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
-| className | 样式名称 | string | title | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| nativeType | html标签类型 | string | li | |
-
-* List
的属性如下所示:
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
-| className | 样式名称 | string | list | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| nativeType | html标签类型 | string | ul | |
-| align | List里面的Item对齐方向 | string | left | 值可以是: left
, center
, right
|
-
-* Item
的属性如下所示:
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
-| className | 样式名称 | string | list | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| nativeType | html标签类型 | string | li | |
-| hasBackground | 激活后是否有背景色 | bool | true | |
-| hasBar | 激活后是否底部横条 | bool | false | |
-| active | 是否激活选中状态 | bool | false | |
-| alignRight | 是否靠右显示 | bool | false | |
-
-[FOOTER_END_zh_CN]
-
-[FOOTER_BEGIN_en_US]
-[FOOTER_END_en_US]
-
-------------- Samples ---------------------
-[Navbar1_BEGIN_zh_CN]
-### 示例1 简单示例
-
- 默认的Navbar, 有灰色背景,还可以选择是否有border、box-shadow。您可以在Navbar上对应设置hasBorder
, hasBox
属性。
- 对于每个Item,如果需要选中后有背景色可以设置hasBackground
属性。将active
设置为true后,将显示选中的效果。
-
-
-```jsx
-import React from 'react';
-import {NavBar, Menu} from 'react-windy-ui';
-
-export default function Navbar1() {
- return <>
-
-
-
- Navbar
-
-
-
- User
-
-
- Role
-
-
- Privileges
-
-
- Security
-
-
-
-
-
-
- Navbar
-
-
-
- User
-
-
- Role
-
-
- Privileges
-
-
- Security
-
-
-
- >;
-}
-```
-[Navbar1_END_zh_CN]
-
-[Navbar1_BEGIN_en_US]
-[Navbar1_END_en_US]
-----------------------------------
-[Navbar2_BEGIN_zh_CN]
-### 示例2 Primary类型
-
- 除了默认类型外,还提供了primary
类型的具有蓝色背景的Navbar,只需要设置type='primary'
即可。
- 另外这个示例中,还展示了如何让Navbar中的Item显示选中的背景色以及绿色的下边条,这里可以设置hasBackground
和
- hasBox
两个属性。如果需要将List中的某个Item靠右显示,则可以设置alignRight
属性为true
。
-
-
-```jsx
-import React, {useState} from 'react';
-import {Dropdown, Navbar, Toggle} from 'react-windy-ui';
-
-export default function Navbar2() {
- const [bg, setBg] = useState(false);
- const [bottomBar, setBottomBar] = useState(false);
-
- return <>
-
-
- setBg(val)}/>
-
-
- setBottomBar(val)}/>
-
-
-
-
-
- Navbar
-
-
-
- User
-
-
- Role
-
-
- Security
-
-
- Dropdown}>
-
- Menu Item1
- Menu Item2
- Menu Item3
- Menu Item4
-
-
-
-
-
- >;
-}
-```
-[Navbar2_END_zh_CN]
-
-[Navbar2_BEGIN_en_US]
-[Navbar2_END_en_US]
-----------------------------------
-
-[Navbar3_BEGIN_zh_CN]
-### 示例3 靠右侧排列的Item
-
- Navbar的List可以设置align
属性,设置为left
时将居左显示,这也是默认的排列方式;设置
- 为right
时将居右显示。
-
-
-```jsx
-import React, {useState} from 'react';
-import {Navbar, Toggle} from 'react-windy-ui';
-
-export default function Navbar3() {
- const [bg, setBg] = useState(false);
- const [bottomBar, setBottomBar] = useState(false);
-
- return <>
-
-
- setBg(val)}/>
-
-
- setBottomBar(val)}/>
-
-
-
-
-
- Web
-
-
-
- User
-
-
- Role
-
-
- Security
-
-
-
-
- >;
-}
-```
-[Navbar3_END_zh_CN]
-
-[Navbar3_BEGIN_en_US]
-[Navbar3_END_en_US]
-----------------------------------
-
-[Navbar4_BEGIN_zh_CN]
-### 示例4 小窗口下折叠隐藏List
-
- 当窗口宽度小于layout中的md
定义的宽度时(768px),Navbar的List将会被隐藏,同时显示一个切换显示的按钮。
- 点击这个按钮后,会再次展开List。这里注意需要在<Title/>
中添加一个<Navbar.Switch/>
。
-
-
-```jsx
-import React, {useState} from 'react';
-import {IconCalendar, Navbar, Toggle} from 'react-windy-ui';
-
-export default function Navbar4() {
- const [bg, setBg] = useState(false);
- const [bottomBar, setBottomBar] = useState(false);
-
- return <>
-
-
- setBg(val)}/>
-
-
- setBottomBar(val)}/>
-
-
-
-
-
-
-
-
- Web
-
-
-
- User
-
-
- Role
-
-
- Security
-
-
-
-
- >;
-}
-```
-[Navbar4_END_zh_CN]
-
-[Navbar4_BEGIN_en_US]
-[Navbar4_END_en_US]
-----------------------------------
-
-[Navbar5_BEGIN_zh_CN]
-### 示例5 小窗口下在右侧显示折叠按钮
-
- 当窗口宽度小于layout中的md
定义的宽度时(768px),Navbar的List将会被隐藏,同时显示一个切换显示的按钮。
- 如果需要按钮在Navbar右侧显示时,可参照此例设置<Navbar.Title/>
-
-
-```jsx
-import React, {useState} from 'react';
-import {IconList, Navbar, Toggle} from 'react-windy-ui';
-import DocFrame from '../../../utils/DocFrame';
-
-export default function Navbar5() {
- const [smallWindow, setSmallWindow] = useState(false);
-
- const width = smallWindow ? '500px' : '100%';
- return <>
-
-
- setSmallWindow(val)}/>
-
-
-
-
-
-
- Web
-
-
-
-
-
-
- User
-
-
- Role
-
-
- Security
-
-
-
-
- >;
-}
-```
-[Navbar5_END_zh_CN]
-
-[Navbar5_BEGIN_en_US]
-[Navbar5_END_en_US]
-----------------------------------
-
-[Navbar6_BEGIN_zh_CN]
-### 示例6 小窗口下始终显示List
-
- 某些情况下,不需要在窗口变化的情况下自动显示或隐藏List,可以将Navbar的autoHide
属性设置为false
。
- 此时无论窗口宽度如何变化,List都一直显示。
-
-
-```jsx
-import React, {useState} from 'react';
-import {Button, IconHome, IconSearch, Navbar, Toggle} from 'react-windy-ui';
-import DocFrame from '../../../utils/DocFrame';
-
-export default function Navbar6() {
- const [smallWindow, setSmallWindow] = useState(false);
-
- const width = smallWindow ? '500px' : '100%';
- return <>
-
-
- setSmallWindow(val)}/>
-
-
-
-
-
-
- Web
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >;
-}
-```
-[Navbar6_END_zh_CN]
-
-[Navbar6_BEGIN_en_US]
-[Navbar6_END_en_US]
-----------------------------------
-
-[Navbar7_BEGIN_zh_CN]
-### 示例7 在Navbar中放置其他组件
-
- 您可以在Navbar中放置其他诸如Button
、Dropdown
、Input
等组件。
-
-
-```jsx
-import React from 'react';
-import {Button, Dropdown, IconSearch, Input, Navbar} from 'react-windy-ui';
-
-export default function Navbar7() {
- return <>
-
-
-
- Navbar
-
-
-
- Button
-
-
-
-
-
-
-
-
- Dropdown}>
-
- Menu Item1
- Menu Item2
- Menu Item3
- Menu Item4
-
-
-
-
-
- >;
-}
-```
-[Navbar7_END_zh_CN]
-
-[Navbar7_BEGIN_en_US]
-[Navbar7_END_en_US]
-----------------------------------
-
-[Navbar8_BEGIN_zh_CN]
-### 示例8 自定义背景色
-
- Navbar支持定义背景色,您可以通过extraClassName
属性给Navbar添加额外的样式去覆盖默认的背景色即可。
- 默认提供的背景色样式可以参阅此处。
-
-
-```jsx
-import React, {useState} from 'react';
-import {Navbar, Toggle} from 'react-windy-ui';
-
-export default function Navbar8() {
- const [bg, setBg] = useState(false);
- const [bottomBar, setBottomBar] = useState(false);
- const [box, setBox] = useState(true);
-
- const colorClassNames = [
- 'bg-color-green', 'bg-color-brown', 'bg-color-black',
- 'bg-color-red', 'bg-color-teal'];
- return <>
-
-
- setBg(val)}/>
-
-
- setBottomBar(val)}/>
-
-
- setBox(val)}/>
-
-
-
- {
- colorClassNames.map((item, i) =>
-
-
- Navbar
-
-
-
- User
-
-
- Role
-
-
- Privileges
-
-
- Security
-
-
- ,
- )
- }
-
- >;
-}
-```
-[Navbar8_END_zh_CN]
-
-[Navbar8_BEGIN_en_US]
-[Navbar8_END_en_US]
-----------------------------------
-
-[Navbar9_BEGIN_zh_CN]
-### 示例9 固定位置显示
-
- Navbar提供了一个fixed
属性用于将Navbar固定显示。当fixed='top'
时,将固定在顶部显示;
- 当fixed='bottom'
时,将固定在底部显示。
-
-
-```jsx
-import React, {useState} from 'react';
-import {Navbar, Toggle} from 'react-windy-ui';
-
-export default function Navbar9() {
- const [bg, setBg] = useState(false);
- const [bottomBar, setBottomBar] = useState(false);
- const [box, setBox] = useState(true);
-
- const colorClassNames = [
- 'bg-color-green', 'bg-color-brown', 'bg-color-black',
- 'bg-color-red', 'bg-color-teal'];
- return <>
-
-
- setBg(val)}/>
-
-
- setBottomBar(val)}/>
-
-
- setBox(val)}/>
-
-
-
- {
- colorClassNames.map((item, i) =>
-
-
- Navbar
-
-
-
- User
-
-
- Role
-
-
- Privileges
-
-
- Security
-
-
- ,
- )
- }
-
- >;
-}
-```
-[Navbar9_END_zh_CN]
-
-[Navbar9_BEGIN_en_US]
-[Navbar9_END_en_US]
-----------------------------------
\ No newline at end of file
diff --git a/src/docs/pages/navbar/md/api.md b/src/docs/pages/navbar/md/api.md
new file mode 100644
index 00000000..bcc84217
--- /dev/null
+++ b/src/docs/pages/navbar/md/api.md
@@ -0,0 +1,74 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/navbar/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+* Navbar
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | navbar | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| type | 类型 | string | normal | 值可以是:primary
, normal
|
+| fixed | 固定位置 | string | top | 值可以是:top
, bottom
|
+| hasBox | 是否显示阴影 | bool | true | |
+| hasBorder | 是否有边框 | bool | false | |
+| autoHide | 是否自动折叠/展示List | bool | true | 当窗口宽度变窄时是否自动隐藏List |
+| expand | 展开Navbar | bool | - | 当设置了此属性后,需要配合onExpand方法去修改这个属性值。 |
+| defaultExpand | 是否初始展开Navbar | bool | false | 初始显示时是否展开List |
+| onExpand | 展开/折叠List时的回调函数 | function(expand) | - | 当expand变化后触发。格式:onExpand(true|false})
|
+
+* Switch
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | button navbar-switch bg-transparent | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| type | 类型 | string | normal | 值可以是:primary
, normal
|
+| onClick | 点击切换按钮的回调 | function(e) | - | |
+| circle | 是否时圆形按钮 | bool | true | |
+
+* Title
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | title | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| nativeType | html标签类型 | string | li | |
+
+* List
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | list | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| nativeType | html标签类型 | string | ul | |
+| align | List里面的Item对齐方向 | string | left | 值可以是: left
, center
, right
|
+
+* Item
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | list | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| nativeType | html标签类型 | string | li | |
+| hasBackground | 激活后是否有背景色 | bool | true | |
+| hasBar | 激活后是否底部横条 | bool | false | |
+| active | 是否激活选中状态 | bool | false | |
+| alignRight | 是否靠右显示 | bool | false | |
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/navbar/md/navbar1.md b/src/docs/pages/navbar/md/navbar1.md
new file mode 100644
index 00000000..522213c7
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar1.md
@@ -0,0 +1,18 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar1.md
+---
+
++++ zh_CN
+默认的Navbar, 有灰色背景,还可以选择是否有border、box-shadow。您可以在Navbar上对应设置hasBorder
, hasBox
属性。
+ 对于每个Item,如果需要选中后有背景色可以设置hasBackground
属性。将active
设置为true后,将显示选中的效果。
+
+
++++ en_US
+Navbar1
+
++++ SampleCode
+fileName: Navbar1
diff --git a/src/docs/pages/navbar/md/navbar10.md b/src/docs/pages/navbar/md/navbar10.md
new file mode 100644
index 00000000..0cd9c806
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar10.md
@@ -0,0 +1,17 @@
+---
+order: 10
+type: sample
+zh_CN: navbar
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar10.md
+---
+
++++ zh_CN
+Navbar提供了一个fixed
属性用于将Navbar固定显示。当fixed='top'
时,将固定在顶部显示;
+ 当fixed='bottom'
时,将固定在底部显示。
+
++++ en_US
+Navbar10
+
++++ SampleCode
+fileName: Navbar10
diff --git a/src/docs/pages/navbar/md/navbar2.md b/src/docs/pages/navbar/md/navbar2.md
new file mode 100644
index 00000000..eb9c110c
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar2.md
@@ -0,0 +1,19 @@
+---
+order: 2
+type: sample
+zh_CN: Primary类型
+en_US: Primary
+editUrl: $BASE/docs/pages/navbar/md/navbar2.md
+---
+
++++ zh_CN
+ 除了默认类型外,还提供了primary
类型的具有蓝色背景的Navbar,只需要设置type='primary'
即可。
+ 另外这个示例中,还展示了如何让Navbar中的Item显示选中的背景色以及绿色的下边条,这里可以设置hasBackground
和
+ hasBox
两个属性。如果需要将List中的某个Item靠右显示,则可以设置alignRight
属性为true
。
+
+
++++ en_US
+Navbar2
+
++++ SampleCode
+fileName: Navbar2
diff --git a/src/docs/pages/navbar/md/navbar3.md b/src/docs/pages/navbar/md/navbar3.md
new file mode 100644
index 00000000..afa0c902
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar3.md
@@ -0,0 +1,17 @@
+---
+order: 3
+type: sample
+zh_CN: 靠右侧排列的Item
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar3.md
+---
+
++++ zh_CN
+ Navbar的List可以设置align
属性,设置为left
时将居左显示,这也是默认的排列方式;设置
+ 为right
时将居右显示。
+
++++ en_US
+Navbar3
+
++++ SampleCode
+fileName: Navbar3
diff --git a/src/docs/pages/navbar/md/navbar4.md b/src/docs/pages/navbar/md/navbar4.md
new file mode 100644
index 00000000..da1a70c7
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar4.md
@@ -0,0 +1,17 @@
+---
+order: 4
+type: sample
+zh_CN: 靠右侧排列的Item
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar4.md
+---
+
++++ zh_CN
+当窗口宽度小于layout中的md
定义的宽度时(768px),Navbar的List将会被隐藏,同时显示一个切换显示的按钮。
+ 点击这个按钮后,会再次展开List。这里注意需要在<Title/>
中添加一个<Navbar.Switch/>
。
+
++++ en_US
+Navbar4
+
++++ SampleCode
+fileName: Navbar4
diff --git a/src/docs/pages/navbar/md/navbar5.md b/src/docs/pages/navbar/md/navbar5.md
new file mode 100644
index 00000000..6513fa0d
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar5.md
@@ -0,0 +1,17 @@
+---
+order: 5
+type: sample
+zh_CN: 靠右侧排列的Item
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar5.md
+---
+
++++ zh_CN
+当窗口宽度小于layout中的md
定义的宽度时(768px),Navbar的List将会被隐藏,同时显示一个切换显示的按钮。
+ 如果需要按钮在Navbar右侧显示时,可参照此例设置<Navbar.Title/>
+
++++ en_US
+Navbar5
+
++++ SampleCode
+fileName: Navbar5
diff --git a/src/docs/pages/navbar/md/navbar6.md b/src/docs/pages/navbar/md/navbar6.md
new file mode 100644
index 00000000..34367af7
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar6.md
@@ -0,0 +1,17 @@
+---
+order: 6
+type: sample
+zh_CN: 小窗口下始终显示List
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar5.md
+---
+
++++ zh_CN
+ 某些情况下,不需要在窗口变化的情况下自动显示或隐藏List,可以将Navbar的autoHide
属性设置为false
。
+ 此时无论窗口宽度如何变化,List都一直显示。
+
++++ en_US
+Navbar6
+
++++ SampleCode
+fileName: Navbar6
diff --git a/src/docs/pages/navbar/md/navbar7.md b/src/docs/pages/navbar/md/navbar7.md
new file mode 100644
index 00000000..a342bbd1
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar7.md
@@ -0,0 +1,17 @@
+---
+order: 7
+type: sample
+zh_CN: 在Navbar中放置其他组件
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar7.md
+---
+
++++ zh_CN
+您可以在Navbar中放置其他诸如Button
、Dropdown
、Input
等组件。
+
+
++++ en_US
+Navbar7
+
++++ SampleCode
+fileName: Navbar7
diff --git a/src/docs/pages/navbar/md/navbar8.md b/src/docs/pages/navbar/md/navbar8.md
new file mode 100644
index 00000000..ecf324ea
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar8.md
@@ -0,0 +1,17 @@
+---
+order: 8
+type: sample
+zh_CN: 自定义背景色
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar8.md
+---
+
++++ zh_CN
+Navbar支持定义背景色,您可以通过extraClassName
属性给Navbar添加额外的样式去覆盖默认的背景色即可。
+ 默认提供的背景色样式可以参阅此处。
+
++++ en_US
+Navbar8
+
++++ SampleCode
+fileName: Navbar8
diff --git a/src/docs/pages/navbar/md/navbar9.md b/src/docs/pages/navbar/md/navbar9.md
new file mode 100644
index 00000000..eae3889f
--- /dev/null
+++ b/src/docs/pages/navbar/md/navbar9.md
@@ -0,0 +1,17 @@
+---
+order: 9
+type: sample
+zh_CN: 自定义背景色
+en_US: navbar
+editUrl: $BASE/docs/pages/navbar/md/navbar9.md
+---
+
++++ zh_CN
+Navbar提供了一个fixed
属性用于将Navbar固定显示。当fixed='top'
时,将固定在顶部显示;
+ 当fixed='bottom'
时,将固定在底部显示。
+
++++ en_US
+Navbar9
+
++++ SampleCode
+fileName: Navbar9
diff --git a/src/docs/pages/navbar/md/title.md b/src/docs/pages/navbar/md/title.md
new file mode 100644
index 00000000..9ee554d4
--- /dev/null
+++ b/src/docs/pages/navbar/md/title.md
@@ -0,0 +1,21 @@
+---
+ order: 0
+ type: text
+ zh_CN: 导航条 NavBar
+ en_US: NavBar
+ editUrl: $BASE/docs/pages/navbar/md/title.md
+---
+
++++ zh_CN
+## 导航条 NavBar [editUrl]
+可将一系列操作放置在导航条,或是当前窗口相关的内容。可用于展示标题、品牌、导航选项等。
+
+- 提供了两种类型的NavBar
+- 支持自定义背景色
+- NavBar可以在顶部或底部固定位置显示
+- 支持响应式布局,可自动隐藏或显示NavBar中的List
+
+
++++ en_US
+## NavBar [editUrl]
+
diff --git a/src/docs/pages/notification/NotificationIndex.js b/src/docs/pages/notification/NotificationIndex.js
index a3448479..79412162 100755
--- a/src/docs/pages/notification/NotificationIndex.js
+++ b/src/docs/pages/notification/NotificationIndex.js
@@ -1,33 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Notification1 from './samples/Notification1';
-import Notification2 from './samples/Notification2';
-import Notification3 from './samples/Notification3';
-import Notification4 from './samples/Notification4';
-import Notification5 from './samples/Notification5';
-import Notification6 from './samples/Notification6';
-import Notification7 from './samples/Notification7';
-import Notification8 from './samples/Notification8';
-import Notification9 from './samples/Notification9';
+import DocPage2 from '../../utils/DocPage2';
-/**
- * It maps the text blocks in Markdown file
- */
-const componentMapping = {
- Notification1: ,
- Notification2: ,
- Notification3: ,
- Notification4: ,
- Notification5: ,
- Notification6: ,
- Notification7: ,
- Notification8: ,
- Notification9: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-export default function NotificationIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function NotificationIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/notification/doc.md b/src/docs/pages/notification/doc.md
deleted file mode 100755
index 50bb6ccf..00000000
--- a/src/docs/pages/notification/doc.md
+++ /dev/null
@@ -1,538 +0,0 @@
-import {PrismLight as SyntaxHighlighter} from 'react-syntax-highlighter';
-
------------ Title ------------
-[TITLE_BEGIN_zh_CN]
-## 通知 Notification
-Notification组件结合使用了Alert组件,以便展示一系列的全局消息。
-
-* 默认情况下可以在TopLeft、TopRight、BottomLeft、BottomRight自个方位展示
-* 消息框中的Alert可以定时关闭,也可手动关闭
-
-另外,需要提醒的是,以下示例中有些涉及到更改全局配置的,会对其他的示例有影响。如果需要恢复默认效果,请重新刷新下页面。
-
-[TITLE_END_zh_CN]
-
-
-[TITLE_BEGIN_en_US]
-[TITLE_END_en_US]
-
-------------- Footer ---------------------
-[FOOTER_BEGIN_zh_CN]
-## API
-
-Notification的全局配置属性如下所示
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| position | 显示位置 | string | topRight | 当需要获取到根节点的dom对象时可设置此属性 |
-| duration | 消息持续显示的时间 | number | 5000ms | |
-| hasCloseIcon | 是否显示关闭消息的Icon | boolean | true | |
-| onClose | 关闭某个消息的回调 | function | - | 当消息被关闭时触发,同时会将消息对应的配置传入该方法。 |
-| rect | 上下左右四个方位的距离 | object | 所有默认值全部为1.5rem | 当topLeft时,可只设置rect中的top、left属性。当topRight时,可只设置rect中的top、right属性。当bottomLeft时,可只设置rect中的bottom、left属性。当bottomRight时,可只设置rect中的bottom、right属性。|
-
-您可以使用调用Notification的config方法去设置: Notification.config({...})。
-
-
-每个消息可自定义设置的属性有
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| position | 显示位置 | string | topRight | 当需要获取到根节点的dom对象时可设置此属性 |
-| duration | 消息持续显示的时间 | number | 5000ms | |
-| title | Alert消息标题 | react node | - | |
-| body | Alert消息内容 | react node | - | |
-| icon | Alert显示的图标 | react node | - | |
-| onClose | 关闭消息的回调 | function | - | 当消息被关闭时触发 |
-| alertProps | Alert消息的配置对象 | object | - | 对应Alert组件的API属性,可参阅Alert的API |
-上面这些参数在显示各个消息时设置,比如Notification.info({duration: 3000, title: 'title' .....})。
-
-
-[FOOTER_END_zh_CN]
-
-[FOOTER_BEGIN_en_US]
-[FOOTER_END_en_US]
-
-------------- Samples ---------------------
-[Notification1_BEGIN_zh_CN]
-### 示例1: 普通的Notification
-
- 提示
-
- 通过调用Notification的info、ok、warning、error、simple方法,可在Notification框体中显示对应的
- Alert。要显示一个Alert, 您可以简单地传入一个消息字符串,也可以传入一个具体的config对像。
-
-
-
-```jsx
-import React from 'react';
-import {Button, Notification} from 'react-windy-ui';
-
-export default function Notification1() {
- return <>
-
- Notification.info('Hello, this is a message.')}>
- info
-
-
-
- Notification.warning({
- body: 'Hello, this is a message.',
- })}>
- warning
-
-
-
- Notification.error({
- title: 'Message',
- body: 'Hello, this is a message.',
- })}>
- error
-
- >;
-
-}
-```
-[Notification1_END_zh_CN]
-
-[Notification1_BEGIN_en_US]
-[Notification1_END_en_US]
-----------------------------------
-
-[Notification2_BEGIN_zh_CN]
-### 示例2: Notification的类型
-
- 提示
-
- Notification与Alert类型一致,主要提供了info、ok、warning、error、simple这几种类型。
-
-
-
-```jsx
-import React from 'react';
-import {
- Button,
- IconError,
- IconInfo,
- IconOk,
- IconWarning,
- Notification,
-} from 'react-windy-ui';
-
-export default function Notification2() {
- return <>
- Notification.info({
- title: 'Simple Message',
- body: 'This is a simple message.',
- })}>info
-
- Notification.ok({
- title: 'Simple Message',
- body: 'This is a info message.'
- })}>ok
-
- Notification.warning({
- title: 'Simple Message',
- body: 'This is a ok message.'
- })}>warning
-
- Notification.error({
- title: 'Simple Message',
- body: 'This is a warning message.'
- })}>error
-
- Notification.simple({
- title: 'Simple Message',
- body: 'This is a error message.',
- icon: ,
- })}>simple
- >;
-
-}
-```
-[Notification2_END_zh_CN]
-
-[Notification2_BEGIN_en_US]
-[Notification2_END_en_US]
-----------------------------------
-
-[Notification3_BEGIN_zh_CN]
-### 示例3: 显示位置
-
- 提示
-
- 可以设置为四个位置: topLeft、topRight、bottomLeft、bottomRight。您可以给每一个消息指定对应的Position,
- 也可以通过全局Config对象给所有的消息指定显示位置。
-
-
-
-```jsx
-import React from 'react';
-import {Button, Notification} from 'react-windy-ui';
-
-export default function Notification3() {
- return <>
- Notification.info({
- title: 'Simple Message',
- body: 'This is a simple message.',
- position: 'topLeft',
- })}>topLeft
-
- Notification.info({
- title: 'Simple Message',
- body: 'This is a simple message.',
- position: 'topRight',
- })}>topRight
-
- Notification.info({
- title: 'Simple Message',
- body: 'This is a simple message.',
- position: 'topCenter',
- })}>topCenter
-
- Notification.info({
- title: 'Simple Message',
- body: 'This is a simple message.',
- position: 'bottomLeft',
- })}>bottomLeft
-
- Notification.info({
- title: 'Simple Message',
- body: 'This is a simple message.',
- position: 'bottomRight',
- })}>bottomRight
- >;
-
-}
-```
-[Notification3_END_zh_CN]
-
-[Notification3_BEGIN_en_US]
-[Notification3_END_en_US]
-----------------------------------
-
-[Notification4_BEGIN_zh_CN]
-### 示例4: 全局设置
-
- 提示
-
- 当一系列显示消息要遵循统一的规则去展示时,您可以使用Notification.config()方法去配置一个全局的config对象。
- Notification中的消息队列将在每个消息体上应用配置的全局设定。需要注意的是,修改后,这个全局对象对这个页面的其他示例也有影响。
- 在这个示例中一旦修改了hasCloseIcon、duration、position属性,会在useEffect中调用Notification.config()方法去配置一个全局的对象。
- 而且这个方法会将传入的参数与已有的全局对象里面的参数进行合并操作。也就是说如果只修改了position属性,您可以只设置一个
- {position: 'topCenter'}对象,在Notification内部会负责与其他参数的合并组装,您无需担心其他属性是否会被丢弃掉的问题。
- 这个示例展示了您可以告诉Notification是否要显示关闭的Icon, 消息持续显示多久以及显示的位置。
-
-
-
-```jsx
-import React, {useEffect, useState} from 'react';
-import {Button, Input, Notification, Toggle, Select} from 'react-windy-ui';
-
-export default function Notification4() {
- const [duration, setDuration] = useState(5000);
- const [hasCloseIcon, setCloseIcon] = useState(true);
- const [position, setPosition] = useState('topRight');
-
- useEffect(() => {
- //update the global configuration of Notification
- //while the dependencies updated
- Notification.config({
- hasCloseIcon,
- duration,
- position,
- });
- }, [hasCloseIcon, duration, position]);
-
- const changeCloseIcon = (val) => {
- setCloseIcon(val);
- };
-
- const changeDuration = (e) => {
- setDuration(parseInt(e.target.value));
- };
-
- return <>
-
- Duration:
-
- changeDuration(val)}/> ms
-
-
- changeCloseIcon(val)}
- content={{on: 'Close icon', off: 'Close icon'}}/>
-
-
- Position:
- setPosition(value)}>
- topLeft
- topCenter
- topRight
- bottomLeft
- bottomRight
-
-
-
- Notification.info({
- title: 'Simple Message',
- body: 'This is a simple message.',
- })}>info
-
- Notification.mini(
- 'This is a message.',
- )}>mini
- >;
-
-}
-```
-[Notification4_END_zh_CN]
-
-[Notification4_BEGIN_en_US]
-[Notification4_END_en_US]
-----------------------------------
-
-[Notification5_BEGIN_zh_CN]
-### 示例5: 自定义消息
-
- 提示
-
- 除了全局的config配置外,您还可以给每个消息添加自定义属性。比如设置duration、position后,可以让单条消息以
- 在指定的位置显示,并且持续显示多久。由于Notification内部依靠Alert组件实现的,如果需要更改每个消息的属性,
- 可以在alertProps中配置。具体的可配置项可以参阅Alert的API。这个例子中,会在右上角位置显示一条白字黑底的消息
-
-
-
-```jsx
-import React from 'react';
-import {Button, Notification} from 'react-windy-ui';
-
-export default function Notification5() {
-
- const sendMessage = () => {
- Notification.info({
- title: 'Simple Message',
- body: 'Will close in 2 seconds.',
-
- duration: 3000,
- position: 'topRight',
-
- alertProps: {
- hasIcon: true,
- hasCloseIcon: false,
- iconStyle: {
- color: 'white',
- },
- style: {
- background: 'black',
- color: 'white',
- border: 'none',
- },
- closeStyle: {},
- },
- });
- };
-
- return <>
- sendMessage()}>Message
- >;
-}
-```
-[Notification5_END_zh_CN]
-
-[Notification5_BEGIN_en_US]
-[Notification5_END_en_US]
-----------------------------------
-
-[Notification6_BEGIN_zh_CN]
-### 示例6: 更改间距
-
- 提示
-
- 默认情况下,页面上存放消息的容器会在四个角落以一定的间隔显示。比如对于leftRight位置,会在当前窗口top距离为'1.5rem',
- right距离为'1.5rem'的地方排列显示消息。如果需要更改这个间距,则可以修改全局配置,设置对应的rect属性。
-
- 当topLeft时,可只设置rect中的top、left属性
- 当topRight时,可只设置rect中的top、right属性
- 当bottomLeft时,可只设置rect中的bottom、left属性
- 当bottomRight时,可只设置rect中的bottom、right属性
- 当topCenter时,可只设置rect中的top属性, 因为在水平方向上始终是居中显示的
-
-
- 在这个示例中选择一个方位后,点击“Update the global Configuration”,并点击Message按钮,可以查看到消息在垂直方向
- 上5rem、水平方向上2rem的位置显示。
-
-
-
-
-```jsx
-import React, {useRef, useState} from 'react';
-import {Button, Notification, Toggle, Select} from 'react-windy-ui';
-
-export default function Notification6() {
- const [position, setPosition] = useState('topRight');
-
- //a reference to previous global config
- const defaultConfigRef = useRef({...Notification.getConfig()});
-
- const updateGlobalConf = () => {
- Notification.config({
- rect: {
- top: '5rem',
- left: '2rem',
- bottom: '5rem',
- right: '2rem',
- },
- });
- };
-
- const revert = () => {
- Notification.config(defaultConfigRef.current);
- };
-
- const toggle = (active) => {
- if (active) {
- updateGlobalConf();
- } else {
- revert();
- }
- };
-
- const sendMessage = () => {
- Notification.simple({body: 'Hello folks', position: position});
- };
- return <>
-
- Position:
- setPosition(value)}>
- topLeft
- topCenter
- topRight
- bottomLeft
- bottomRight
-
-
-
- toggle(active)}
- content={{
- on: 'Update the global Configuration',
- off: 'Update the global Configuration',
- }}/>
-
- sendMessage()}>Message
- >;
-}
-```
-[Notification6_END_zh_CN]
-
-[Notification6_BEGIN_en_US]
-[Notification6_END_en_US]
-----------------------------------
-
-[Notification7_BEGIN_zh_CN]
-### 示例7: 取消延时关闭
-
- 提示
-
- 默认情况下,消息会在显示的5秒后自行关闭。这个时间可以通过duration指定,如果只需要手动关闭,则可以将duration
- 设置为0或负数值。
-
-
-
-```jsx
-import React from 'react';
-import {Button, Notification, Toggle} from 'react-windy-ui';
-
-export default function Notification7() {
-
- const toggle = (active) => {
- if (active) {
- Notification.config({duration: 5000});
- } else {
- Notification.config({duration: 0});//0 or negative number
- }
- };
-
- const sendMessage = () => {
- Notification.simple('This is a message.');
- };
-
- return <>
-
- toggle(active)}
- content={{
- on: 'Auto close',
- off: 'Auto close',
- }}/>
-
- sendMessage()}>Message
- >;
-}
-```
-[Notification7_END_zh_CN]
-
-[Notification7_BEGIN_en_US]
-[Notification7_END_en_US]
-----------------------------------
-
-
-[Notification8_BEGIN_zh_CN]
-### 示例8: 简洁类型的消息
-
- 提示
-
- 对于info、ok、warning、error这类的消息,会有独特的样式。如果需要简洁点的消息,可以考虑mini或simple类型。
- 这里演示了如果使用simple类型的消息,去构造对应info、ok、warning、error这样的消息。
-
-
-
-```jsx
-import React from 'react';
-import {
- Button, Notification, IconError,
- IconInfo,
- IconOk,
- IconWarning,
-} from 'react-windy-ui';
-
-export default function Notification8() {
- Notification.config({
- position: 'topRight',
- });
- return <>
- Notification.simple({
- title: 'Simple Message',
- body: 'This is a simple message.',
- })}>Simple
-
- Notification.simple({
- title: 'Simple Message',
- body: 'This is a info message.',
- icon: ,
- })}>Info
-
- Notification.simple({
- title: 'Simple Message',
- body: 'This is a ok message.',
- icon: ,
- })}>OK
-
- Notification.simple({
- title: 'Simple Message',
- body: 'This is a warning message.',
- icon: ,
- })}>Warning
-
- Notification.simple({
- title: 'Simple Message',
- body: 'This is a error message.',
- icon: ,
- })}>Error
- >;
-
-}
-```
-[Notification8_END_zh_CN]
-
-[Notification8_BEGIN_en_US]
-[Notification8_END_en_US]
-----------------------------------
\ No newline at end of file
diff --git a/src/docs/pages/notification/md/api.md b/src/docs/pages/notification/md/api.md
new file mode 100644
index 00000000..e5873037
--- /dev/null
+++ b/src/docs/pages/notification/md/api.md
@@ -0,0 +1,42 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/notification/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+Notification的全局配置属性如下所示
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| position | 显示位置 | string | topRight | 当需要获取到根节点的dom对象时可设置此属性 |
+| duration | 消息持续显示的时间 | number | 5000ms | |
+| hasCloseIcon | 是否显示关闭消息的Icon | boolean | true | |
+| onClose | 关闭某个消息的回调 | function | - | 当消息被关闭时触发,同时会将消息对应的配置传入该方法。 |
+| rect | 上下左右四个方位的距离 | object | 所有默认值全部为1.5rem | 当topLeft时,可只设置rect中的top、left属性。当topRight时,可只设置rect中的top、right属性。当bottomLeft时,可只设置rect中的bottom、left属性。当bottomRight时,可只设置rect中的bottom、right属性。|
+
+您可以使用调用Notification的config方法去设置: Notification.config({...})。
+
+
+每个消息可自定义设置的属性有
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| position | 显示位置 | string | topRight | 当需要获取到根节点的dom对象时可设置此属性 |
+| duration | 消息持续显示的时间 | number | 5000ms | |
+| title | Alert消息标题 | react node | - | |
+| body | Alert消息内容 | react node | - | |
+| icon | Alert显示的图标 | react node | - | |
+| onClose | 关闭消息的回调 | function | - | 当消息被关闭时触发 |
+| alertProps | Alert消息的配置对象 | object | - | 对应Alert组件的API属性,可参阅Alert的API |
+上面这些参数在显示各个消息时设置,比如Notification.info({duration: 3000, title: 'title' .....})。
+
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/notification/md/notification1.md b/src/docs/pages/notification/md/notification1.md
new file mode 100644
index 00000000..985b94dc
--- /dev/null
+++ b/src/docs/pages/notification/md/notification1.md
@@ -0,0 +1,17 @@
+---
+order: 1
+type: sample
+zh_CN: 普通的Notification
+en_US: Notification
+editUrl: $BASE/docs/pages/notification/md/notification1.md
+---
+
++++ zh_CN
+通过调用Notification的info、ok、warning、error、simple方法,可在Notification框体中显示对应的
+ Alert。要显示一个Alert, 您可以简单地传入一个消息字符串,也可以传入一个具体的config对像。
+
++++ en_US
+Notification1
+
++++ SampleCode
+fileName: Notification1
diff --git a/src/docs/pages/notification/md/notification2.md b/src/docs/pages/notification/md/notification2.md
new file mode 100644
index 00000000..f59dfc6e
--- /dev/null
+++ b/src/docs/pages/notification/md/notification2.md
@@ -0,0 +1,16 @@
+---
+order: 2
+type: sample
+zh_CN: Notification的类型
+en_US: Notification
+editUrl: $BASE/docs/pages/notification/md/notification2.md
+---
+
++++ zh_CN
+Notification与Alert类型一致,主要提供了info、ok、warning、error、simple这几种类型。
+
++++ en_US
+Notification2
+
++++ SampleCode
+fileName: Notification2
diff --git a/src/docs/pages/notification/md/notification3.md b/src/docs/pages/notification/md/notification3.md
new file mode 100644
index 00000000..99d3193d
--- /dev/null
+++ b/src/docs/pages/notification/md/notification3.md
@@ -0,0 +1,17 @@
+---
+order: 3
+type: sample
+zh_CN: 显示位置
+en_US: Notification
+editUrl: $BASE/docs/pages/notification/md/notification3.md
+---
+
++++ zh_CN
+可以设置为四个位置: topLeft、topRight、bottomLeft、bottomRight。您可以给每一个消息指定对应的Position,
+ 也可以通过全局Config对象给所有的消息指定显示位置。
+
++++ en_US
+Notification3
+
++++ SampleCode
+fileName: Notification3
diff --git a/src/docs/pages/notification/md/notification4.md b/src/docs/pages/notification/md/notification4.md
new file mode 100644
index 00000000..87b8229e
--- /dev/null
+++ b/src/docs/pages/notification/md/notification4.md
@@ -0,0 +1,21 @@
+---
+order: 4
+type: sample
+zh_CN: 全局设置
+en_US: Notification
+editUrl: $BASE/docs/pages/notification/md/notification4.md
+---
+
++++ zh_CN
+当一系列显示消息要遵循统一的规则去展示时,您可以使用Notification.config()方法去配置一个全局的config对象。
+ Notification中的消息队列将在每个消息体上应用配置的全局设定。需要注意的是,修改后,这个全局对象对这个页面的其他示例也有影响。
+ 在这个示例中一旦修改了hasCloseIcon、duration、position属性,会在useEffect中调用Notification.config()方法去配置一个全局的对象。
+ 而且这个方法会将传入的参数与已有的全局对象里面的参数进行合并操作。也就是说如果只修改了position属性,您可以只设置一个
+ {position: 'topCenter'}对象,在Notification内部会负责与其他参数的合并组装,您无需担心其他属性是否会被丢弃掉的问题。
+ 这个示例展示了您可以告诉Notification是否要显示关闭的Icon, 消息持续显示多久以及显示的位置。
+
++++ en_US
+Notification4
+
++++ SampleCode
+fileName: Notification4
diff --git a/src/docs/pages/notification/md/notification5.md b/src/docs/pages/notification/md/notification5.md
new file mode 100644
index 00000000..382e239a
--- /dev/null
+++ b/src/docs/pages/notification/md/notification5.md
@@ -0,0 +1,19 @@
+---
+order: 5
+type: sample
+zh_CN: 全局设置
+en_US: Notification
+editUrl: $BASE/docs/pages/notification/md/notification5.md
+---
+
++++ zh_CN
+除了全局的config配置外,您还可以给每个消息添加自定义属性。比如设置duration、position后,可以让单条消息以
+ 在指定的位置显示,并且持续显示多久。由于Notification内部依靠Alert组件实现的,如果需要更改每个消息的属性,
+ 可以在alertProps中配置。具体的可配置项可以参阅Alert的API。这个例子中,会在右上角位置显示一条白字黑底的消息
+
+
++++ en_US
+Notification5
+
++++ SampleCode
+fileName: Notification5
diff --git a/src/docs/pages/notification/md/notification6.md b/src/docs/pages/notification/md/notification6.md
new file mode 100644
index 00000000..e8089f87
--- /dev/null
+++ b/src/docs/pages/notification/md/notification6.md
@@ -0,0 +1,28 @@
+---
+order: 6
+type: sample
+zh_CN: 全局设置
+en_US: Notification
+editUrl: $BASE/docs/pages/notification/md/notification6.md
+---
+
++++ zh_CN
+ 默认情况下,页面上存放消息的容器会在四个角落以一定的间隔显示。比如对于leftRight位置,会在当前窗口top距离为'1.5rem',
+ right距离为'1.5rem'的地方排列显示消息。如果需要更改这个间距,则可以修改全局配置,设置对应的rect属性。
+
+ 当topLeft时,可只设置rect中的top、left属性
+ 当topRight时,可只设置rect中的top、right属性
+ 当bottomLeft时,可只设置rect中的bottom、left属性
+ 当bottomRight时,可只设置rect中的bottom、right属性
+ 当topCenter时,可只设置rect中的top属性, 因为在水平方向上始终是居中显示的
+
+
+ 在这个示例中选择一个方位后,点击“Update the global Configuration”,并点击Message按钮,可以查看到消息在垂直方向
+ 上5rem、水平方向上2rem的位置显示。
+
+
++++ en_US
+Notification6
+
++++ SampleCode
+fileName: Notification6
diff --git a/src/docs/pages/notification/md/notification7.md b/src/docs/pages/notification/md/notification7.md
new file mode 100644
index 00000000..07476b60
--- /dev/null
+++ b/src/docs/pages/notification/md/notification7.md
@@ -0,0 +1,18 @@
+---
+order: 7
+type: sample
+zh_CN: 取消延时关闭
+en_US: Notification
+editUrl: $BASE/docs/pages/notification/md/notification7.md
+---
+
++++ zh_CN
+默认情况下,消息会在显示的5秒后自行关闭。这个时间可以通过duration指定,如果只需要手动关闭,则可以将duration
+设置为0或负数值。
+
+
++++ en_US
+Notification7
+
++++ SampleCode
+fileName: Notification7
diff --git a/src/docs/pages/notification/md/notification8.md b/src/docs/pages/notification/md/notification8.md
new file mode 100644
index 00000000..6aa06fcf
--- /dev/null
+++ b/src/docs/pages/notification/md/notification8.md
@@ -0,0 +1,18 @@
+---
+order: 8
+type: sample
+zh_CN: 简洁类型的消息
+en_US: Notification
+editUrl: $BASE/docs/pages/notification/md/notification8.md
+---
+
++++ zh_CN
+对于info、ok、warning、error这类的消息,会有独特的样式。如果需要简洁点的消息,可以考虑mini或simple类型。
+这里演示了如果使用simple类型的消息,去构造对应info、ok、warning、error这样的消息。
+
+
++++ en_US
+Notification8
+
++++ SampleCode
+fileName: Notification8
diff --git a/src/docs/pages/notification/md/title.md b/src/docs/pages/notification/md/title.md
new file mode 100644
index 00000000..64d67a62
--- /dev/null
+++ b/src/docs/pages/notification/md/title.md
@@ -0,0 +1,22 @@
+---
+ order: 0
+ type: text
+ zh_CN: 通知 Notification
+ en_US: Notification
+ editUrl: $BASE/docs/pages/notification/md/title.md
+---
+
++++ zh_CN
+## 通知 Notification [editUrl]
+Notification组件结合使用了Alert组件,以便展示一系列的全局消息。
+
+* 默认情况下可以在TopLeft、TopRight、BottomLeft、BottomRight自个方位展示
+* 消息框中的Alert可以定时关闭,也可手动关闭
+
+另外,需要提醒的是,以下示例中有些涉及到更改全局配置的,会对其他的示例有影响。如果需要恢复默认效果,请重新刷新下页面。
+
+
+
++++ en_US
+## Notification [editUrl]
+
diff --git a/src/docs/pages/pagination/PaginationIndex.js b/src/docs/pages/pagination/PaginationIndex.js
index 4641b2f9..5168d5dc 100755
--- a/src/docs/pages/pagination/PaginationIndex.js
+++ b/src/docs/pages/pagination/PaginationIndex.js
@@ -1,25 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Pagination1 from './samples/Pagination1';
-import Pagination2 from './samples/Pagination2';
-import Pagination3 from './samples/Pagination3';
-import Pagination4 from './samples/Pagination4';
-import Pagination5 from './samples/Pagination5';
+import DocPage2 from '../../utils/DocPage2';
-/**
- * It maps the text blocks in Markdown file
- */
-const componentMapping = {
- Pagination1: ,
- Pagination2: ,
- Pagination3: ,
- Pagination4: ,
- Pagination5: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-export default function PaginationIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function PaginationIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/pagination/md/api.md b/src/docs/pages/pagination/md/api.md
new file mode 100644
index 00000000..e1b2244e
--- /dev/null
+++ b/src/docs/pages/pagination/md/api.md
@@ -0,0 +1,16 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/pagination/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/pagination/md/pagination1.md b/src/docs/pages/pagination/md/pagination1.md
new file mode 100644
index 00000000..2f64bae3
--- /dev/null
+++ b/src/docs/pages/pagination/md/pagination1.md
@@ -0,0 +1,17 @@
+---
+order: 1
+type: sample
+zh_CN: 分页
+en_US: Pagination
+editUrl: $BASE/docs/pages/pagination/md/pagination1.md
+---
+
++++ zh_CN
+通过调用Notification的info、ok、warning、error、simple方法,可在Notification框体中显示对应的
+ Alert。要显示一个Alert, 您可以简单地传入一个消息字符串,也可以传入一个具体的config对像。
+
++++ en_US
+Pagination1
+
++++ SampleCode
+fileName: Pagination1
diff --git a/src/docs/pages/pagination/md/pagination2.md b/src/docs/pages/pagination/md/pagination2.md
new file mode 100644
index 00000000..13a5d35e
--- /dev/null
+++ b/src/docs/pages/pagination/md/pagination2.md
@@ -0,0 +1,16 @@
+---
+order: 2
+type: sample
+zh_CN: 分页
+en_US: Pagination
+editUrl: $BASE/docs/pages/pagination/md/pagination2.md
+---
+
++++ zh_CN
+
+
++++ en_US
+Pagination2
+
++++ SampleCode
+fileName: Pagination2
diff --git a/src/docs/pages/pagination/md/pagination3.md b/src/docs/pages/pagination/md/pagination3.md
new file mode 100644
index 00000000..314488da
--- /dev/null
+++ b/src/docs/pages/pagination/md/pagination3.md
@@ -0,0 +1,16 @@
+---
+order: 3
+type: sample
+zh_CN: 分页
+en_US: Pagination
+editUrl: $BASE/docs/pages/pagination/md/pagination3.md
+---
+
++++ zh_CN
+
+
++++ en_US
+Pagination3
+
++++ SampleCode
+fileName: Pagination3
diff --git a/src/docs/pages/pagination/md/pagination4.md b/src/docs/pages/pagination/md/pagination4.md
new file mode 100644
index 00000000..2733e0d6
--- /dev/null
+++ b/src/docs/pages/pagination/md/pagination4.md
@@ -0,0 +1,16 @@
+---
+order: 4
+type: sample
+zh_CN: 分页
+en_US: Pagination
+editUrl: $BASE/docs/pages/pagination/md/pagination4.md
+---
+
++++ zh_CN
+
+
++++ en_US
+Pagination4
+
++++ SampleCode
+fileName: Pagination4
diff --git a/src/docs/pages/pagination/md/pagination5.md b/src/docs/pages/pagination/md/pagination5.md
new file mode 100644
index 00000000..091b438f
--- /dev/null
+++ b/src/docs/pages/pagination/md/pagination5.md
@@ -0,0 +1,16 @@
+---
+order: 5
+type: sample
+zh_CN: 分页
+en_US: Pagination
+editUrl: $BASE/docs/pages/pagination/md/pagination5.md
+---
+
++++ zh_CN
+
+
++++ en_US
+Pagination5
+
++++ SampleCode
+fileName: Pagination5
diff --git a/src/docs/pages/pagination/md/title.md b/src/docs/pages/pagination/md/title.md
new file mode 100644
index 00000000..d957ab28
--- /dev/null
+++ b/src/docs/pages/pagination/md/title.md
@@ -0,0 +1,15 @@
+---
+ order: 0
+ type: text
+ zh_CN: 分页 Pagination
+ en_US: Notification
+ editUrl: $BASE/docs/pages/pagination/md/title.md
+---
+
++++ zh_CN
+## 分页 Pagination [editUrl]
+
+
++++ en_US
+## Pagination [editUrl]
+
diff --git a/src/docs/pages/popconfirm/PcIndex.js b/src/docs/pages/popconfirm/PcIndex.js
index 06f4e83f..51243403 100755
--- a/src/docs/pages/popconfirm/PcIndex.js
+++ b/src/docs/pages/popconfirm/PcIndex.js
@@ -1,27 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Pc1 from './Pc1';
-import Pc2 from './Pc2';
-import Pc3 from './Pc3';
-import Pc4 from './Pc4';
-import Pc5 from './Pc5';
-import Pc6 from './Pc6';
+import DocPage2 from '../../utils/DocPage2';
-/**
- * It maps the text blocks in Markdown file
- */
-const componentMapping = {
- Pc1: ,
- Pc2: ,
- Pc3: ,
- Pc4: ,
- Pc5: ,
- Pc6: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-export default function PcIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function PcIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/popconfirm/md/api.md b/src/docs/pages/popconfirm/md/api.md
new file mode 100644
index 00000000..cea31b06
--- /dev/null
+++ b/src/docs/pages/popconfirm/md/api.md
@@ -0,0 +1,46 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/popconfirm/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+- PopConfirm
属性定义:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| body | 描述内容 | react node | - | |
+| okText | OK按钮上的文字 | string | Ok | |
+| cancelText | No按钮上的文字 | string | No | |
+| okButtonProps | OK按钮的属性 | object | | |
+| cancelButtonProps | cancel按钮的属性 | object | | |
+| onOk | 点击OK按钮后的回调 | function | | |
+| onCancel | 点击No按钮后的回调 | function | | |
+| icon | 图标 | react node | IconWarning2 | |
+| justifyFooter | 按钮的排列方式 | string | | |
+| position | 弹出框的位置 | string | 参见下面详细描述 | |
+
+
+
+对于justifyFooter
属性,可以配置以下值:
+
+start, end, center, around, between, evenly
+
+对于position
属性,可以配置以下值:
+
+top, topLeft, topRight, bottom, bottomLeft, bottomRight,
+left, leftTop, leftBottom, right, rightTop, rightBottom
+
+
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/popconfirm/md/pc1.md b/src/docs/pages/popconfirm/md/pc1.md
new file mode 100644
index 00000000..1665701a
--- /dev/null
+++ b/src/docs/pages/popconfirm/md/pc1.md
@@ -0,0 +1,16 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: PopConfirm
+editUrl: $BASE/docs/pages/popconfirm/md/pc1.md
+---
+
++++ zh_CN
+将支持点击的控件放置在PopConfirm
中,点击后将会出现确认弹出框。
+
++++ en_US
+popconfirm
+
++++ SampleCode
+fileName: Pc1
diff --git a/src/docs/pages/popconfirm/md/pc2.md b/src/docs/pages/popconfirm/md/pc2.md
new file mode 100644
index 00000000..4de7812d
--- /dev/null
+++ b/src/docs/pages/popconfirm/md/pc2.md
@@ -0,0 +1,16 @@
+---
+order: 2
+type: sample
+zh_CN: 按钮点击处理
+en_US: PopConfirm
+editUrl: $BASE/docs/pages/popconfirm/md/pc2.md
+---
+
++++ zh_CN
+提供onOk、onCancel回调函数,点击确认框按钮后处理对应的事件。
+
++++ en_US
+popconfirm
+
++++ SampleCode
+fileName: Pc2
diff --git a/src/docs/pages/popconfirm/md/pc3.md b/src/docs/pages/popconfirm/md/pc3.md
new file mode 100644
index 00000000..2cf328e8
--- /dev/null
+++ b/src/docs/pages/popconfirm/md/pc3.md
@@ -0,0 +1,17 @@
+---
+order: 3
+type: sample
+zh_CN: 自定义按钮文字及图标
+en_US: PopConfirm
+editUrl: $BASE/docs/pages/popconfirm/md/pc3.md
+---
+
++++ zh_CN
+设置okText
、cancelText
属性,将在对按钮上显示对应的文字。如果需要更改图标,则可以设置icon
属性。
+
+
++++ en_US
+popconfirm
+
++++ SampleCode
+fileName: Pc3
diff --git a/src/docs/pages/popconfirm/md/pc4.md b/src/docs/pages/popconfirm/md/pc4.md
new file mode 100644
index 00000000..7e3b8547
--- /dev/null
+++ b/src/docs/pages/popconfirm/md/pc4.md
@@ -0,0 +1,17 @@
+---
+order: 4
+type: sample
+zh_CN: 设置按钮的对齐方式
+en_US: PopConfirm
+editUrl: $BASE/docs/pages/popconfirm/md/pc4.md
+---
+
++++ zh_CN
+设置justifyFooter
属性,则可控制按钮在水平方向的排列方式。默认情况下,按钮靠右排列。这里只示例了左中右三个方向,
+具体可设置的值请参阅API。
+
++++ en_US
+popconfirm
+
++++ SampleCode
+fileName: Pc4
diff --git a/src/docs/pages/popconfirm/md/pc5.md b/src/docs/pages/popconfirm/md/pc5.md
new file mode 100644
index 00000000..bb3a6f40
--- /dev/null
+++ b/src/docs/pages/popconfirm/md/pc5.md
@@ -0,0 +1,17 @@
+---
+order: 5
+type: sample
+zh_CN: 设置弹出框的位置
+en_US: PopConfirm
+editUrl: $BASE/docs/pages/popconfirm/md/pc5.md
+---
+
++++ zh_CN
+设置position
属性,则可控制弹出框显示的位置。position属性可设置的值,请参阅Popover
的API。
+
+
++++ en_US
+popconfirm
+
++++ SampleCode
+fileName: Pc5
diff --git a/src/docs/pages/popconfirm/md/pc6.md b/src/docs/pages/popconfirm/md/pc6.md
new file mode 100644
index 00000000..1ee615ab
--- /dev/null
+++ b/src/docs/pages/popconfirm/md/pc6.md
@@ -0,0 +1,18 @@
+---
+order: 6
+type: sample
+zh_CN: 自定义弹出框、按钮的props属性
+en_US: PopConfirm
+editUrl: $BASE/docs/pages/popconfirm/md/pc6.md
+---
+
++++ zh_CN
+由于PopConfirm
内部使用了Popover
组件,你可以直接将Popover
的props
属性直接设置在PopConfirm上
。比如这里的
+ position
、offset
、hasBorder
、hasArrow
、hasBox
都是Popover
上的属性。如果需要设置两个按钮的props
属性,
+ 则可以配置okButtonProps
、cancelButtonProps
。
+
++++ en_US
+popconfirm
+
++++ SampleCode
+fileName: Pc6
diff --git a/src/docs/pages/popconfirm/md/title.md b/src/docs/pages/popconfirm/md/title.md
new file mode 100644
index 00000000..3421e4b8
--- /dev/null
+++ b/src/docs/pages/popconfirm/md/title.md
@@ -0,0 +1,20 @@
+---
+ order: 0
+ type: text
+ zh_CN: 确认 PopConfirm
+ en_US: PopConfirm
+ editUrl: $BASE/docs/pages/popconfirm/md/title.md
+---
+
++++ zh_CN
+## 确认 PopConfirm [editUrl]
+弹出确认弹出框,在当前页面额外弹出一个小框体,提示用户确认操作。
+
+- 与Modal相比,在页面占用更小的空间
+- 提供了一个快捷的确认弹出框
+- 不打断用户的关注焦点,从而提供更好的操作体验
+
+
++++ en_US
+## Notification [editUrl]
+
diff --git a/src/docs/pages/popconfirm/Pc1.js b/src/docs/pages/popconfirm/samples/Pc1.js
similarity index 100%
rename from src/docs/pages/popconfirm/Pc1.js
rename to src/docs/pages/popconfirm/samples/Pc1.js
diff --git a/src/docs/pages/popconfirm/Pc2.js b/src/docs/pages/popconfirm/samples/Pc2.js
similarity index 100%
rename from src/docs/pages/popconfirm/Pc2.js
rename to src/docs/pages/popconfirm/samples/Pc2.js
diff --git a/src/docs/pages/popconfirm/Pc3.js b/src/docs/pages/popconfirm/samples/Pc3.js
similarity index 100%
rename from src/docs/pages/popconfirm/Pc3.js
rename to src/docs/pages/popconfirm/samples/Pc3.js
diff --git a/src/docs/pages/popconfirm/Pc4.js b/src/docs/pages/popconfirm/samples/Pc4.js
similarity index 100%
rename from src/docs/pages/popconfirm/Pc4.js
rename to src/docs/pages/popconfirm/samples/Pc4.js
diff --git a/src/docs/pages/popconfirm/Pc5.js b/src/docs/pages/popconfirm/samples/Pc5.js
similarity index 100%
rename from src/docs/pages/popconfirm/Pc5.js
rename to src/docs/pages/popconfirm/samples/Pc5.js
diff --git a/src/docs/pages/popconfirm/Pc6.js b/src/docs/pages/popconfirm/samples/Pc6.js
similarity index 100%
rename from src/docs/pages/popconfirm/Pc6.js
rename to src/docs/pages/popconfirm/samples/Pc6.js
diff --git a/src/docs/pages/popover/PopoverIndex.js b/src/docs/pages/popover/PopoverIndex.js
index 33d533e9..2b199108 100755
--- a/src/docs/pages/popover/PopoverIndex.js
+++ b/src/docs/pages/popover/PopoverIndex.js
@@ -1,21 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Pop1 from './Pop1';
-import Pop3 from './Pop3';
-import Pop2 from './Pop2';
-import Pop4 from './Pop4';
+import DocPage2 from '../../utils/DocPage2';
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-const componentMapping = {
- Pop1: ,
- Pop2: ,
- Pop3: ,
- Pop4: ,
-};
-
-export default function PopoverIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function PopoverIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/popover/md/api.md b/src/docs/pages/popover/md/api.md
new file mode 100644
index 00000000..5afc688a
--- /dev/null
+++ b/src/docs/pages/popover/md/api.md
@@ -0,0 +1,16 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/popover/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/popover/md/pop1.md b/src/docs/pages/popover/md/pop1.md
new file mode 100644
index 00000000..b130fc73
--- /dev/null
+++ b/src/docs/pages/popover/md/pop1.md
@@ -0,0 +1,17 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: popover
+editUrl: $BASE/docs/pages/popover/md/pop1.md
+---
+
++++ zh_CN
+一个最简单的Popover示例,Popover默认情况下在下方显示。在body中放置需要显示的内容,如果需要显示标题,可以设置一个header。
+
+
++++ en_US
+popover
+
++++ SampleCode
+fileName: Pop1
diff --git a/src/docs/pages/popover/md/pop2.md b/src/docs/pages/popover/md/pop2.md
new file mode 100644
index 00000000..8a4774eb
--- /dev/null
+++ b/src/docs/pages/popover/md/pop2.md
@@ -0,0 +1,16 @@
+---
+order: 2
+type: sample
+zh_CN: 激活弹出菜单
+en_US: popover
+editUrl: $BASE/docs/pages/popover/md/pop2.md
+---
+
++++ zh_CN
+设置activeBy属性可以选择Popover的弹出方式,activeBy可以设置成'hover'或'click'。这里示例了当鼠标 悬停在Button上时,激活弹出菜单。
+
++++ en_US
+popover
+
++++ SampleCode
+fileName: Pop2
diff --git a/src/docs/pages/popover/md/pop3.md b/src/docs/pages/popover/md/pop3.md
new file mode 100644
index 00000000..0101d88f
--- /dev/null
+++ b/src/docs/pages/popover/md/pop3.md
@@ -0,0 +1,21 @@
+---
+order: 3
+type: sample
+zh_CN: 显示位置
+en_US: popover
+editUrl: $BASE/docs/pages/popover/md/pop3.md
+---
+
++++ zh_CN
+可在十二个方位显示,可相应地设置position属性为以下值:
+ Top方位: 'topLeft'、'top'、'topRight';
+ Bottom方位: 'bottomLeft'、'bottom'、'bottomRight';
+ Left方位: 'leftTop'、'left'、'leftBottom';
+ Right方位: 'rightTop'、'right'、'rightBottom'。
+
+
++++ en_US
+popover
+
++++ SampleCode
+fileName: Pop3
diff --git a/src/docs/pages/popover/md/pop4.md b/src/docs/pages/popover/md/pop4.md
new file mode 100644
index 00000000..b89a45ab
--- /dev/null
+++ b/src/docs/pages/popover/md/pop4.md
@@ -0,0 +1,21 @@
+---
+order: 4
+type: sample
+zh_CN: Popover的显示和关闭
+en_US: popover
+editUrl: $BASE/docs/pages/popover/md/pop4.md
+---
+
++++ zh_CN
+在这个示例中,一旦Popover显示后,就只能通过点击Popover中的Close按钮去关闭。这里就是将active和onChange函数一起使用后达到的效果。
+ Popover有defaultActive和active两个属性, 用来控制Popover显示和关闭。 defaultActive属性值为true后,控件初始状态下显示Popover。但不影响后续的关闭和显示。
+ defaultActive属性设置的是初始状态,可以后续被改变。但active属性与之则不同,当设置active属性后,Popover将不能被自动显示、关闭,
+ 此时会触发onChange调用,您需要在onChange中切换选中状态。另外,active与onChange方法需要同时提供,以便一起完成状态的切换过程。
+
+
+
++++ en_US
+popover
+
++++ SampleCode
+fileName: Pop34
diff --git a/src/docs/pages/popover/md/title.md b/src/docs/pages/popover/md/title.md
new file mode 100644
index 00000000..2ffe783e
--- /dev/null
+++ b/src/docs/pages/popover/md/title.md
@@ -0,0 +1,18 @@
+---
+ order: 0
+ type: text
+ zh_CN: 弹出框 Popover
+ en_US: Popover
+ editUrl: $BASE/docs/pages/popconfirm/md/title.md
+---
+
++++ zh_CN
+## 弹出框 Popover [editUrl]
+Popover通常用于弹出展示一段说明性的文字,例如向导、指南性的说明。**但有一点需要注意的是,Popover的children只能有一个子节点对象**。
+- 你可以在Popover中放置一段文字,也可以在其中放入一系列的控件
+- 如果以Popover为基础,你可以构建出更强大易用的组件。
+
+
++++ en_US
+## Popover [editUrl]
+
diff --git a/src/docs/pages/popover/Pop1.js b/src/docs/pages/popover/samples/Pop1.js
similarity index 100%
rename from src/docs/pages/popover/Pop1.js
rename to src/docs/pages/popover/samples/Pop1.js
diff --git a/src/docs/pages/popover/Pop2.js b/src/docs/pages/popover/samples/Pop2.js
similarity index 100%
rename from src/docs/pages/popover/Pop2.js
rename to src/docs/pages/popover/samples/Pop2.js
diff --git a/src/docs/pages/popover/Pop3.js b/src/docs/pages/popover/samples/Pop3.js
similarity index 100%
rename from src/docs/pages/popover/Pop3.js
rename to src/docs/pages/popover/samples/Pop3.js
diff --git a/src/docs/pages/popover/Pop4.js b/src/docs/pages/popover/samples/Pop4.js
similarity index 100%
rename from src/docs/pages/popover/Pop4.js
rename to src/docs/pages/popover/samples/Pop4.js
diff --git a/src/docs/pages/progress/ProgressIndex.js b/src/docs/pages/progress/ProgressIndex.js
index efed78a5..427d6f26 100755
--- a/src/docs/pages/progress/ProgressIndex.js
+++ b/src/docs/pages/progress/ProgressIndex.js
@@ -1,22 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Progress1 from './samples/Progress1';
-import Progress2 from './samples/Progress2';
-import Progress3 from './samples/Progress3';
-import Progress4 from './samples/Progress4';
-import Progress5 from './samples/Progress5';
+import DocPage2 from '../../utils/DocPage2';
-const componentMapping = {
- Progress1: ,
- Progress2: ,
- Progress3: ,
- Progress4: ,
- Progress5: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
export default function ProgressIndex() {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/progress/md/api.md b/src/docs/pages/progress/md/api.md
new file mode 100644
index 00000000..f08f382a
--- /dev/null
+++ b/src/docs/pages/progress/md/api.md
@@ -0,0 +1,47 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/progress/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+Progress的属性如下所示
+
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
+| className | 样式名称 | string | progress | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| active | 是否激活显示 | boolean | false | |
+| percentValue | 当前百分百进度值 | number | 0 | 值的范围是\[0, 100\] |
+| type | 类型 | string | info | 可以设置为: info、warning、ok、error |
+| hasStripe | 是否显示条纹效果 | boolean | false | |
+| hasAnimation | 是否显示动画效果 | boolean | false | |
+| top | 是否居顶显示 | boolean | false | |
+| hasContent | 是否在右侧显示进度值 | boolean | false | |
+| showLoading | 是否在进度条下方显示Loader | boolean | false | |
+| loaderType | Loader的类型 | string | secondary | |
+| loaderSize | Loader的大小 | string | small | |
+| style | progress的样式 | object | - | |
+| barStyle | progress当前进度横条的样式 | object | - | |
+| config | 对应不同进度下的显示配置 | Array({...}) | - | 格式如: \[{percentValue: 30, type: 'error', content: (p) => 'OK'}\] |
+
+
+
+
+Progress全局方法:
+
+| 方法 | 名称 | 参数 | 返回值 | 描述 |
+| --- | --- | --- | --- | --- |
+| showTop | 显示Progress | object | - | 参数格式:{style, type, showLoading,...} ,其他参数可参见Progress的API |
+| closeTop | 关闭Progress | - | - | |
+
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/progress/md/progress1.md b/src/docs/pages/progress/md/progress1.md
new file mode 100644
index 00000000..4f8cd999
--- /dev/null
+++ b/src/docs/pages/progress/md/progress1.md
@@ -0,0 +1,17 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: progress
+editUrl: $BASE/docs/pages/progress/md/progress1.md
+---
+
++++ zh_CN
+ 有四种类型的Progress可供使用,对应的type可以设置为: info、ok、warning、error。当percentValue设置不同的
+ 整数值后,Progress的进度将以百分百值显示当前进度。
+
++++ en_US
+progress
+
++++ SampleCode
+fileName: Progress1
diff --git a/src/docs/pages/progress/md/progress2.md b/src/docs/pages/progress/md/progress2.md
new file mode 100644
index 00000000..dfabbba4
--- /dev/null
+++ b/src/docs/pages/progress/md/progress2.md
@@ -0,0 +1,17 @@
+---
+order: 2
+type: sample
+zh_CN: 显示条纹和动画效果
+en_US: progress
+editUrl: $BASE/docs/pages/progress/md/progress2.md
+---
+
++++ zh_CN
+为了更好的显示效果,您可以设置hasAnimation属性去展示动画效果。设置hasStripe属性可以在进度条上显示条纹效果。
+ 如果需要在右侧显示进度百分比,可以设置hasContent属性。
+
++++ en_US
+progress
+
++++ SampleCode
+fileName: Progress2
diff --git a/src/docs/pages/progress/md/progress3.md b/src/docs/pages/progress/md/progress3.md
new file mode 100644
index 00000000..1319d5e7
--- /dev/null
+++ b/src/docs/pages/progress/md/progress3.md
@@ -0,0 +1,17 @@
+---
+order: 3
+type: sample
+zh_CN: 全局显示的进度条
+en_US: progress
+editUrl: $BASE/docs/pages/progress/md/progress3.md
+---
+
++++ zh_CN
+如果需要类似在页面顶部显示的全局进度条,可以将top属性设置为true。而且要在style中指定top值,以便进度条在
+ 顶部某处显示。另外当属性showLoading为true时,将会在进度条下面显示一个Loader。
+
++++ en_US
+progress
+
++++ SampleCode
+fileName: Progress3
diff --git a/src/docs/pages/progress/md/progress4.md b/src/docs/pages/progress/md/progress4.md
new file mode 100644
index 00000000..e862d608
--- /dev/null
+++ b/src/docs/pages/progress/md/progress4.md
@@ -0,0 +1,19 @@
+---
+order: 4
+type: sample
+zh_CN: Progress快捷使用
+en_US: progress
+editUrl: $BASE/docs/pages/progress/md/progress4.md
+---
+
++++ zh_CN
+Progress还提供了两个方法以程序调用方式去控制显示和关闭,这两个方法是: showTop()、closeTop()。
+ 当调用showTop后,进度条在页面顶端显示,并定时更新进度。当closeTop被调用时,进度条随后显示进度完成并从界面隐藏。
+ initPercentValue指定了进度条初始百分百值,每次更新时进度值会在incrementStart和incrementEnd之间随机
+ 生成并递增一个新的进度值用于进度条的更新。
+
++++ en_US
+progress
+
++++ SampleCode
+fileName: Progress4
diff --git a/src/docs/pages/progress/md/progress5.md b/src/docs/pages/progress/md/progress5.md
new file mode 100644
index 00000000..f50c8ecf
--- /dev/null
+++ b/src/docs/pages/progress/md/progress5.md
@@ -0,0 +1,17 @@
+---
+order: 5
+type: sample
+zh_CN: 分段显示
+en_US: progress
+editUrl: $BASE/docs/pages/progress/md/progress5.md
+---
+
++++ zh_CN
+Progress可以在不同进度显示不同的颜色、文字。您可以在config数组中添加对应不同百分值下的配置信息。
+
+
++++ en_US
+progress
+
++++ SampleCode
+fileName: Progress5
diff --git a/src/docs/pages/progress/md/title.md b/src/docs/pages/progress/md/title.md
new file mode 100644
index 00000000..81a6e956
--- /dev/null
+++ b/src/docs/pages/progress/md/title.md
@@ -0,0 +1,22 @@
+---
+ order: 0
+ type: text
+ zh_CN: 进度 Progress
+ en_US: Progress
+ editUrl: $BASE/docs/pages/progress/md/title.md
+---
+
++++ zh_CN
+## 进度 Progress [editUrl]
+Progress组件通常在界面加载或分步配置中使用,可以提示用户当前进度或者提醒用户在请求返回前需要等待一段时间。
+
+
+
+Progress组件, 其主要的功能主要有:
+
+- 显示一个进度条,并且显示当前进度
+- 可在页面顶部显示全局进度条,可用于界面加载时的显示
+
++++ en_US
+## Progress [editUrl]
+
diff --git a/src/docs/pages/radio/RadioIndex.js b/src/docs/pages/radio/RadioIndex.js
index 1f9ad0ad..43f58df8 100755
--- a/src/docs/pages/radio/RadioIndex.js
+++ b/src/docs/pages/radio/RadioIndex.js
@@ -1,27 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Radio1 from './samples/Radio1';
-import Radio2 from './samples/Radio2';
-import Radio3 from './samples/Radio3';
-import Radio4 from './samples/Radio4';
-import Radio5 from './samples/Radio5';
-import Radio6 from './samples/Radio6';
-import Radio7 from './samples/Radio7';
+import DocPage2 from '../../utils/DocPage2';
-
-const componentMapping = {
- Radio1: ,
- Radio2: ,
- Radio3: ,
- Radio4: ,
- Radio5: ,
- Radio6: ,
- Radio7: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
export default function RadioIndex() {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/radio/doc.md b/src/docs/pages/radio/doc.md
deleted file mode 100755
index fcd3e439..00000000
--- a/src/docs/pages/radio/doc.md
+++ /dev/null
@@ -1,369 +0,0 @@
------------ Title ------------
-[TITLE_BEGIN_zh_CN]
-## 单选 Radio
-在一个表单里,单选框也是最常使用的组件。Radio组件常用来在一组选项中勾选一个, 如果只需要多选则可使用Checkbox组件。
-
-
-Radio单选组件, 从可配置项上来说与Checkbox有相似之处,其主要的功能主要有:
-
-- 显示一个可供选择的组件,并且可以添加文字进行标示
-- 可以组合使用预定义的颜色样式, 修改Radio的颜色,进行定制显示
-- 可使用键盘的Tab键进行切换,并可相应键盘Enter键事件,选中该组件
-- 提供了一个Radio Group组件,用于在一组状态中切换
-
-[TITLE_END_zh_CN]
-
-
-[TITLE_BEGIN_en_US]
-[TITLE_END_en_US]
-
-------------- Footer ---------------------
-[FOOTER_BEGIN_zh_CN]
-## API
-
-Radio的属性如下所示
-
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
-| className | 样式名称 | string | radio | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| disabled | 是否禁用 | boolean | false | |
-| checked | 是否勾选状态 | boolean | false | |
-| defaultChecked | 初始勾选状态 | boolean | false | |
-| onChange | 状态变化触发的回调 | function | - | |
-| label | 显示的提示信息 | string | - | |
-| children | 子节点对象 | react node | - | |
-| checkedColor | 对应选中时的颜色 | string | - | 可选的颜色参见颜色列表定义 |
-| uncheckedColor | 对应去选中时的颜色 | string | - | 可选的颜色参见颜色列表定义 |
-| checkedIcon | 对应去选中时的图标 | string | - | |
-| uncheckedIcon | 对应去选中时的图标 | string | - | |
-
-
-RadioGroup的属性如下所示
-
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
-| className | 样式名称 | string | radio | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| disabled | 是否禁用 | boolean | false | |
-| defaultValue | 初始选中的Radio对应的值 | string | | |
-| value | 初始勾选状态 | boolean | false | |
-| onChange | 状态变化触发的回调 | function | - | |
-| children | 子节点对象 | react node | - | |
-
-[FOOTER_END_zh_CN]
-
-[FOOTER_BEGIN_en_US]
-[FOOTER_END_en_US]
-
-------------- Samples ---------------------
-[Radio1_BEGIN_zh_CN]
-### 示例1: 普通的Radio
-
- 提示
-
- Radio中要在右侧显示提示文字,可以设置label属性值或添加children子节点。
-
-
-
-```jsx
-import React from 'react';
-import {Radio} from 'react-windy-ui';
-
-export default function Radio1() {
-
- return <>
- console.log(checked)} label="Radio"/>
- console.log('value should be 2 ' + value)}>
- Value2
-
- >;
-}
-```
-
-[Radio1_END_zh_CN]
-
-[Radio1_BEGIN_en_US]
-[Radio1_END_en_US]
-----------------------------------
-
-[Radio2_BEGIN_zh_CN]
-### 示例2: 设置不同的颜色
-
- 提示
-
- 需要更改勾选状态下的颜色时,可以设置checkedColor属性;需要更改去勾选状态下的颜色时,可以设置uncheckedColor属性。
- 另外,如果需要更改对应的图标时,可以相应地设置checkedIcon和uncheckedIcon属性。具体checkedColor和uncheckedColor的属性可配置哪些属性值,
- 请参阅API文档部分。
-
-
-
-```jsx
-import React from 'react';
-import {Radio} from 'react-windy-ui';
-
-export default function Radio2() {
-
- return <>
- console.log(checked)} label="Radio"/>
- console.log('value should be 2 ' + value)}>
- Value2
-
- >;
-}
-```
-
-[Radio2_END_zh_CN]
-
-[Radio2_BEGIN_en_US]
-[Radio2_END_en_US]
-----------------------------------
-
-[Radio3_BEGIN_zh_CN]
-### 示例3: 禁用Radio
-
- 提示
-
- 将disabled设置为true后,将禁用对应的Radio.
-
-
-
-```jsx
-import React from 'react';
-import {Radio} from 'react-windy-ui';
-
-export default function Radio3() {
-
- return <>
-
- purple
-
-
-
- green
-
-
-
- red
-
-
- >;
-}
-```
-[Radio3_END_zh_CN]
-
-[Radio3_BEGIN_en_US]
-[Radio3_END_en_US]
-----------------------------------
-
-
-[Radio4_BEGIN_zh_CN]
-### 示例4: 设置label所在的位置
-
- 提示
-
- 设置alignLabel属性,可以将Label放置在上下左右四个方位。
-
-
-
-```jsx
-import React from 'react';
-import {Radio} from 'react-windy-ui';
-
-export default function Radio4() {
- return <>
-
-
- Right
-
-
- Right
-
-
-
-
- Left
-
-
- Left
-
-
-
-
- Top
-
-
- Top
-
-
-
-
- Bottom
-
-
- Bottom
-
-
- >;
-}
-```
-[Radio4_END_zh_CN]
-
-[Radio4_BEGIN_en_US]
-[Radio4_END_en_US]
-
-------------------------------------
-
-[Radio5_BEGIN_zh_CN]
-### 示例5: Radio Group
-
- 提示
-
- 要使用RadioGroup,需要在children节点中添加Radio组件,同时给每个Radio设置对应的value。
- RadioGroup会根据value值进行切换,另外设置defaultValue属性,可以让对应的Radio从一开始就变成选中状态。
-
-
-
-```jsx
-import React from 'react';
-import {Radio, RadioGroup} from 'react-windy-ui';
-
-export default function Radio5() {
- return <>
-
-
- console.log(val)}>
-
- purple
-
-
-
- green
-
-
-
- blue
-
-
-
-
-
- console.log(val)}>
-
- one
-
-
-
- two
-
-
-
- three
-
-
-
-
- >;
-}
-```
-[Radio5_END_zh_CN]
-
-[Radio5_BEGIN_en_US]
-[Radio5_END_en_US]
-
-----------------------------------
-[Radio6_BEGIN_zh_CN]
-### 示例6: 使用value和onChange方法自定义实现状态的切换
-
- 提示
-
- 与defaultValue不同,一旦设置了value属性后,点击Radio时,RadioGroup将不会自动切换。您需要实现onChange回调,并自行更改
- 当前选中的Radio值,以便进行状态的切换。
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {Radio, RadioGroup} from 'react-windy-ui';
-
-export default function Radio6() {
- const [value, setValue] = useState("one");
- return <>
-
-
- setValue(val)}>
-
- one
-
-
-
- two
-
-
-
- three
-
-
-
-
- >;
-}
-```
-[Radio6_END_zh_CN]
-[Radio6_BEGIN_en_US]
-[Radio6_END_en_US]
-----------------------------------
-
-[Radio7_BEGIN_zh_CN]
-### 示例7: 禁用RadioGroup
-
- 提示
-
- 将disabled设置为true后,将禁用对应的RadioGroup.
-
-
-
-```jsx
-import React from 'react';
-import {Radio, RadioGroup} from 'react-windy-ui';
-
-export default function Radio7() {
- return <>
-
-
- console.log(val)}>
-
- one
-
-
-
- two
-
-
-
- three
-
-
-
-
- >;
-}
-```
-[Radio7_END_zh_CN]
-
-[Radio7_BEGIN_en_US]
-[Radio7_END_en_US]
-----------------------------------
\ No newline at end of file
diff --git a/src/docs/pages/radio/md/api.md b/src/docs/pages/radio/md/api.md
new file mode 100644
index 00000000..b41ac6ce
--- /dev/null
+++ b/src/docs/pages/radio/md/api.md
@@ -0,0 +1,48 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/radio/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+Radio的属性如下所示
+
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
+| className | 样式名称 | string | radio | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| disabled | 是否禁用 | boolean | false | |
+| checked | 是否勾选状态 | boolean | false | |
+| defaultChecked | 初始勾选状态 | boolean | false | |
+| onChange | 状态变化触发的回调 | function | - | |
+| label | 显示的提示信息 | string | - | |
+| children | 子节点对象 | react node | - | |
+| checkedColor | 对应选中时的颜色 | string | - | 可选的颜色参见颜色列表定义 |
+| uncheckedColor | 对应去选中时的颜色 | string | - | 可选的颜色参见颜色列表定义 |
+| checkedIcon | 对应去选中时的图标 | string | - | |
+| uncheckedIcon | 对应去选中时的图标 | string | - | |
+
+
+RadioGroup的属性如下所示
+
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
+| className | 样式名称 | string | radio | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| disabled | 是否禁用 | boolean | false | |
+| defaultValue | 初始选中的Radio对应的值 | string | | |
+| value | 初始勾选状态 | boolean | false | |
+| onChange | 状态变化触发的回调 | function | - | |
+| children | 子节点对象 | react node | - | |
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/radio/md/radio1.md b/src/docs/pages/radio/md/radio1.md
new file mode 100644
index 00000000..64c3c3b0
--- /dev/null
+++ b/src/docs/pages/radio/md/radio1.md
@@ -0,0 +1,16 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: Radio
+editUrl: $BASE/docs/pages/radio/md/radio1.md
+---
+
++++ zh_CN
+Radio中要在右侧显示提示文字,可以设置label属性值或添加children子节点。
+
++++ en_US
+Radio
+
++++ SampleCode
+fileName: Radio1
diff --git a/src/docs/pages/radio/md/radio2.md b/src/docs/pages/radio/md/radio2.md
new file mode 100644
index 00000000..d5617b47
--- /dev/null
+++ b/src/docs/pages/radio/md/radio2.md
@@ -0,0 +1,18 @@
+---
+order: 2
+type: sample
+zh_CN: 设置不同的颜色
+en_US: Radio
+editUrl: $BASE/docs/pages/radio/md/radio2.md
+---
+
++++ zh_CN
+需要更改勾选状态下的颜色时,可以设置checkedColor属性;需要更改去勾选状态下的颜色时,可以设置uncheckedColor属性。
+ 另外,如果需要更改对应的图标时,可以相应地设置checkedIcon和uncheckedIcon属性。具体checkedColor和uncheckedColor的属性可配置哪些属性值,
+ 请参阅API文档部分。
+
++++ en_US
+Radio
+
++++ SampleCode
+fileName: Radio2
diff --git a/src/docs/pages/radio/md/radio3.md b/src/docs/pages/radio/md/radio3.md
new file mode 100644
index 00000000..ba6d470b
--- /dev/null
+++ b/src/docs/pages/radio/md/radio3.md
@@ -0,0 +1,16 @@
+---
+order: 3
+type: sample
+zh_CN: 禁用Radio
+en_US: Radio
+editUrl: $BASE/docs/pages/radio/md/radio3.md
+---
+
++++ zh_CN
+将disabled设置为true后,将禁用对应的Radio.
+
++++ en_US
+Radio
+
++++ SampleCode
+fileName: Radio3
diff --git a/src/docs/pages/radio/md/radio4.md b/src/docs/pages/radio/md/radio4.md
new file mode 100644
index 00000000..faa33e82
--- /dev/null
+++ b/src/docs/pages/radio/md/radio4.md
@@ -0,0 +1,16 @@
+---
+order: 4
+type: sample
+zh_CN: 设置label所在的位置
+en_US: Radio
+editUrl: $BASE/docs/pages/radio/md/radio4.md
+---
+
++++ zh_CN
+设置alignLabel属性,可以将Label放置在上下左右四个方位。
+
++++ en_US
+Radio
+
++++ SampleCode
+fileName: Radio4
diff --git a/src/docs/pages/radio/md/radio5.md b/src/docs/pages/radio/md/radio5.md
new file mode 100644
index 00000000..3e43ed5a
--- /dev/null
+++ b/src/docs/pages/radio/md/radio5.md
@@ -0,0 +1,18 @@
+---
+order: 5
+type: sample
+zh_CN: Radio Group
+en_US: Radio
+editUrl: $BASE/docs/pages/radio/md/radio5.md
+---
+
++++ zh_CN
+要使用RadioGroup,需要在children节点中添加Radio组件,同时给每个Radio设置对应的value。
+RadioGroup会根据value值进行切换,另外设置defaultValue属性,可以让对应的Radio从一开始就变成选中状态。
+
+
++++ en_US
+Radio
+
++++ SampleCode
+fileName: Radio5
diff --git a/src/docs/pages/radio/md/radio6.md b/src/docs/pages/radio/md/radio6.md
new file mode 100644
index 00000000..9be843a6
--- /dev/null
+++ b/src/docs/pages/radio/md/radio6.md
@@ -0,0 +1,17 @@
+---
+order: 6
+type: sample
+zh_CN: 使用value和onChange方法自定义实现状态的切换
+en_US: Radio
+editUrl: $BASE/docs/pages/radio/md/radio6.md
+---
+
++++ zh_CN
+与defaultValue不同,一旦设置了value属性后,点击Radio时,RadioGroup将不会自动切换。您需要实现onChange回调,并自行更改
+ 当前选中的Radio值,以便进行状态的切换。
+
++++ en_US
+Radio
+
++++ SampleCode
+fileName: Radio6
diff --git a/src/docs/pages/radio/md/radio7.md b/src/docs/pages/radio/md/radio7.md
new file mode 100644
index 00000000..fe873359
--- /dev/null
+++ b/src/docs/pages/radio/md/radio7.md
@@ -0,0 +1,16 @@
+---
+order: 7
+type: sample
+zh_CN: 禁用RadioGroup
+en_US: Radio
+editUrl: $BASE/docs/pages/radio/md/radio7.md
+---
+
++++ zh_CN
+将disabled设置为true后,将禁用对应的RadioGroup.
+
++++ en_US
+Radio
+
++++ SampleCode
+fileName: Radio7
diff --git a/src/docs/pages/radio/md/title.md b/src/docs/pages/radio/md/title.md
new file mode 100644
index 00000000..772fdf9e
--- /dev/null
+++ b/src/docs/pages/radio/md/title.md
@@ -0,0 +1,23 @@
+---
+ order: 0
+ type: text
+ zh_CN: 单选 Radio
+ en_US: Radio
+ editUrl: $BASE/docs/pages/radio/md/title.md
+---
+
++++ zh_CN
+## 单选 Radio [editUrl]
+在一个表单里,单选框也是最常使用的组件。Radio组件常用来在一组选项中勾选一个, 如果只需要多选则可使用Checkbox组件。
+
+
+Radio单选组件, 从可配置项上来说与Checkbox有相似之处,其主要的功能主要有:
+
+- 显示一个可供选择的组件,并且可以添加文字进行标示
+- 可以组合使用预定义的颜色样式, 修改Radio的颜色,进行定制显示
+- 可使用键盘的Tab键进行切换,并可相应键盘Enter键事件,选中该组件
+- 提供了一个Radio Group组件,用于在一组状态中切换
+
++++ en_US
+## Radio [editUrl]
+
diff --git a/src/docs/pages/select/SelectIndex.js b/src/docs/pages/select/SelectIndex.js
index 4eef20d2..290dceb5 100755
--- a/src/docs/pages/select/SelectIndex.js
+++ b/src/docs/pages/select/SelectIndex.js
@@ -1,27 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Select1 from './Select1';
-import Select3 from './Select3';
-import Select2 from './Select2';
-import Select4 from './Select4';
-import Select5 from './Select5';
-import Select7 from './Select7';
-import Select6 from './Select6';
+import DocPage2 from '../../utils/DocPage2';
-
-const componentMapping = {
- Select1: ,
- Select2: ,
- Select3: ,
- Select4: ,
- Select5: ,
- Select6: ,
- Select7: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
export default function SelectIndex() {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/select/doc.md b/src/docs/pages/select/doc.md
deleted file mode 100755
index 93a1fa08..00000000
--- a/src/docs/pages/select/doc.md
+++ /dev/null
@@ -1,476 +0,0 @@
------------ Title ------------
-[TITLE_BEGIN_zh_CN]
-## 选择 Select
-Select与Dropdown组件有相似之处,不同之处就在于,Dropdown只能单击某个选项而且不会高亮显示,但Select却可以。
-
-Select主要有以下功能
-- 单选Select
-- 多选Select
-- 支持关键字搜索
-- Select的菜单也可以在十二个方位显示
-
-[TITLE_END_zh_CN]
-
-
-[TITLE_BEGIN_en_US]
-[TITLE_END_en_US]
-
-------------- Footer ---------------------
-[FOOTER_BEGIN_zh_CN]
-[FOOTER_END_zh_CN]
-
-[FOOTER_BEGIN_en_US]
-[FOOTER_END_en_US]
-
-------------- Samples ---------------------
-[Select1_BEGIN_zh_CN]
-### 示例1: 最简单的Popover
-
- 提示
-
- 一个最简单的Select示例,需要给每个Option设置一个value属性,另外还可设置一个defaultValue去初始选中某个选项。Select的Option组件实际
- 是一个Menu的Item组件,Item上可用的属性同样也适用于Option组件。
-
-
-
-```jsx
-import React from 'react';
-import {Select} from 'react-windy-ui';
-
-export default function Select1() {
- return <>
- console.log(value)}>
-
- Beijing
-
- Nanjing
- Shanghai
- Suzhou
-
-
- >;
-
-}
-```
-
-[Select1_END_zh_CN]
-
-[Select1_BEGIN_en_US]
-[Select1_END_en_US]
-----------------------------------
-[Select2_BEGIN_zh_CN]
-### 示例2: 可以搜索的Select
-
- 提示
-
- 当searchable设置为true时,Select可以根据输入的值进行过滤显示。需要注意的是默认的匹配规则是,用输入的值与Option的文本而不是value值进行比较。
- 如果Option的text与输入值匹配,列表中将只显示包含输入值的Option。
-
-
-
-```jsx
-import React from 'react';
-import {Select, Divider} from 'react-windy-ui';
-
-export default function Select2() {
- return <>
- console.log(`${value}`)}>
-
- Beijing
-
-
- Nanjing
-
- Shanghai
-
- XiAn
-
- 纽约
-
- 香港
-
- >;
-
-}
-```
-
-[Select2_END_zh_CN]
-
-[Select2_BEGIN_en_US]
-[Select2_END_en_US]
-----------------------------------
-[Select3_BEGIN_zh_CN]
-### 示例3: 显示搜索中状态
-
- 提示
-
- 设置showLoader为true后,将显示一个加载中的状态。
-
-
-
-```jsx
-import React from 'react';
-import {Select, Divider} from 'react-windy-ui';
-
-export default function Select3() {
- return <>
- console.log(`${value}`)}>
-
- Beijing
-
-
- Nanjing
-
- Shanghai
-
- XiAn
-
- 纽约
-
- 香港
-
- >;
-
-}
-```
-
-[Select3_END_zh_CN]
-
-[Select3_BEGIN_en_US]
-[Select3_END_en_US]
-----------------------------------
-[Select4_BEGIN_zh_CN]
-### 示例4: 自定义搜索逻辑的Select
-
- 提示
-
- 当searchable设置为true时,Select可以根据输入的值进行过滤显示。但如果需要自行实现search的逻辑时,你可以提供一个onSearch方法。
- 当有搜索值时Select会调用onSelect方法,让用户自行决定如何搜索并更新列表。
-
-
-
-```jsx
-import React, {useMemo, useState} from 'react';
-import {Select} from 'react-windy-ui';
-
-export default function Select4() {
- //the items count
- const count = 15;
-
- //generate the items for selection
- const items = useMemo(() => {
- return [...Array(count).keys()].map((key, index) =>
- {`Option ${key}`} ,
- );
- }, [count]);
-
- const [itemList, setItemList] = useState(items);
-
- const search = (value) => {
- console.log('search ' + value);
- let list;
- //if the value is blank, show the original items
- if (value == null || /^\s*$/.test(value)) {
- list = items;
- } else {
- //filter a list of items and ecch item's text should contain the searched value
- list = items.filter(
- item => {
- return item.props.children.toLowerCase().
- includes(value.toLowerCase());
-
- });
- }
- setItemList(list);
- };
-
- return <>
- console.log(`You just selected ${val}`)}>
- {itemList}
-
- >;
-
-}
-```
-
-[Select4_END_zh_CN]
-
-[Select4_BEGIN_en_US]
-[Select4_END_en_US]
-----------------------------------
-[Select5_BEGIN_zh_CN]
-### 示例5: 构建复杂的Select
-
- 提示
-
- 在这个示例中,我们构建了一个更复杂的Select组件。Select的Option内部使用一个自定义的Template去展示更丰富的内容,同时您还可以动态地新增一个Option。
- 另外需要说明的是,你需要给Option指定一个value和text属性。Option的text属性是指当该选项选中时会在Select上显示的文字内容,
- 当一个复杂的Option选中后,你需要在Select显示的是一个简短的内容而不是Option的子节点。
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {
- Button,
- IconHome,
- Input,
- InputGroup,
- Select,
- Tooltip,
-} from 'react-windy-ui';
-
-const rootStyle = {
- display: 'flex',
- flex: '1 1 200px',
-};
-
-const iconColumn = {
- display: 'inline-flex',
- justifyContent: 'center',
- alignItems: 'center',
- flex: '0 0 2rem',
- color: '#f2791a',
- marginRight: '1rem',
-};
-
-const infoColumn = {
- display: 'flex',
- flex: '1 1 auto',
- flexDirection: 'column',
-};
-
-const titleStyle = {
- display: 'flex',
- justifyContent: 'flex-start',
- alignItems: 'center',
- padding: '.25rem',
-};
-
-const descStyle = {
- display: 'flex',
- justifyContent: 'flex-start',
- alignItems: 'center',
- padding: '.25rem',
- color: '#818a91',
- fontSize: '.8rem',
-};
-
-const Template = ({title, desc}) => {
- return
-
-
-
-
-
- {title}
-
-
- {desc}
-
-
-
;
-
-};
-
-export default function Select5() {
- const [list, setList] = useState([]);
- const [value, setValue] = useState('');
-
- const changValue = (e) => {
- setValue(e.target.value);
- };
-
- const create = (e) => {
- if (value && !/^\s*$/.test(value)) {
- setList(list.concat(value));
- }
- };
-
- return <>
- console.log(item)}>
-
-
-
-
-
-
-
-
-
-
-
-
- {
- list.map((title, index) => {
- return
-
- ;
- })
- }
- e.stopPropagation()}>
-
-
-
- {create(e);}}>+
-
-
-
-
- >;
-
-}
-```
-
-[Select5_END_zh_CN]
-
-[Select5_BEGIN_en_US]
-[Select5_END_en_US]
-----------------------------------
-
-[Select6_BEGIN_zh_CN]
-### 示例6: 控制弹出菜单的关闭
-
- 提示
-
- 在这个示例中,利用active和onChange来控制弹出菜单的显示。当active为true时,菜单会弹出显示,并切会调用onChange控制打开或关闭,你可以
- 在onChange回调函数中自行决定。另外需要注意的是,当点击的是背景而非弹出菜单且需要关闭这个菜单时,此时需要在useEffect或者onComponentDidMout
- 中添加对window的click事件的监听,对于点击弹出菜单外部的情况需要将状态设置为关闭即可。
-
-
-
-```jsx
-import React, {useEffect, useRef, useState} from 'react';
-import {Select, Divider} from 'react-windy-ui';
-
-export default function Select6() {
- const [active, setActive] = useState(false);
- const currentValue = useRef(1);
- const popupRef = useRef(null); //a reference to popup dom node
- const inputRef = useRef(null);//a reference to input dom node
-
- const change = (next) => {
- console.log('changed to: ' + next);
- if (!next && currentValue.current !== 1) {
- return;
- }
- setActive(next);
- };
-
- const select = (value) => {
- currentValue.current = value;
- };
-
- //add an event listener to window to close the popup
- useEffect(() => {
- const hanlder = (e) => {
- const isInputClicked = inputRef.current.contains(e.target);
- const isPopupClicked = popupRef.current.contains(e.target);
-
- if (isInputClicked) {
- //show the popup if clicking the input
- setActive(true);
- } else if (!isPopupClicked) {
- //close the popup if neither the input nor the popup body is clicked
- setActive(false);
- }
- };
- window.addEventListener('click', hanlder);
-
- return () => window.removeEventListener('click', hanlder);
- }, []);
-
- return <>
-
- Won't close1
-
- Close
-
- Won't close2
-
- Won't close3
-
- Won't close4
-
- >;
-
-}
-```
-
-[Select6_END_zh_CN]
-
-[Select6_BEGIN_en_US]
-[Select6_END_en_US]
-----------------------------------
-[Select7_BEGIN_zh_CN]
-### 示例7: 多选Select
-
- 提示
-
- 在这个示例中,利用active和onChange来控制弹出菜单的显示。当active为true时,菜单会弹出显示,并切会调用onChange控制打开或关闭,你可以
- 在onChange回调函数中自行决定。另外需要注意的是,当点击的是背景而非弹出菜单且需要关闭这个菜单时,此时需要在useEffect或者onComponentDidMout
- 中添加对window的click事件的监听,对于点击弹出菜单外部的情况需要将状态设置为关闭即可。
-
-
-
-```jsx
-import React from 'react';
-import {Select} from 'react-windy-ui';
-
-export default function Select7() {
- return <>
- console.log(val)}
- onChange={(next) => console.log(`state changed to : ${next}`)}>
- Beijing
- Nanjing
- Shanghai
- XiAn
- 纽约
- 香港
-
- >;
-
-}
-```
-
-[Select7_END_zh_CN]
-
-[Select7_BEGIN_en_US]
-[Select7_END_en_US]
-----------------------------------
\ No newline at end of file
diff --git a/src/docs/pages/select/md/api.md b/src/docs/pages/select/md/api.md
new file mode 100644
index 00000000..b1b3ff3c
--- /dev/null
+++ b/src/docs/pages/select/md/api.md
@@ -0,0 +1,15 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/select/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/select/md/select1.md b/src/docs/pages/select/md/select1.md
new file mode 100644
index 00000000..97824478
--- /dev/null
+++ b/src/docs/pages/select/md/select1.md
@@ -0,0 +1,17 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: Select
+editUrl: $BASE/docs/pages/select/md/select1.md
+---
+
++++ zh_CN
+一个最简单的Select示例,需要给每个Option设置一个value属性,另外还可设置一个defaultValue去初始选中某个选项。Select的Option组件实际
+ 是一个Menu的Item组件,Item上可用的属性同样也适用于Option组件。
+
++++ en_US
+Select
+
++++ SampleCode
+fileName: Select1
diff --git a/src/docs/pages/select/md/select2.md b/src/docs/pages/select/md/select2.md
new file mode 100644
index 00000000..3313aea1
--- /dev/null
+++ b/src/docs/pages/select/md/select2.md
@@ -0,0 +1,17 @@
+---
+order: 2
+type: sample
+zh_CN: 可以搜索的Select
+en_US: Select
+editUrl: $BASE/docs/pages/select/md/select2.md
+---
+
++++ zh_CN
+当searchable设置为true时,Select可以根据输入的值进行过滤显示。需要注意的是默认的匹配规则是,用输入的值与Option的文本而不是value值进行比较。
+ 如果Option的text与输入值匹配,列表中将只显示包含输入值的Option。
+
++++ en_US
+Select
+
++++ SampleCode
+fileName: Select2
diff --git a/src/docs/pages/select/md/select3.md b/src/docs/pages/select/md/select3.md
new file mode 100644
index 00000000..aa579764
--- /dev/null
+++ b/src/docs/pages/select/md/select3.md
@@ -0,0 +1,16 @@
+---
+order: 3
+type: sample
+zh_CN: 显示搜索中状态
+en_US: Select
+editUrl: $BASE/docs/pages/select/md/select3.md
+---
+
++++ zh_CN
+设置showLoader为true后,将显示一个加载中的状态。
+
++++ en_US
+Select
+
++++ SampleCode
+fileName: Select3
diff --git a/src/docs/pages/select/md/select4.md b/src/docs/pages/select/md/select4.md
new file mode 100644
index 00000000..e6949244
--- /dev/null
+++ b/src/docs/pages/select/md/select4.md
@@ -0,0 +1,17 @@
+---
+order: 4
+type: sample
+zh_CN: 自定义搜索逻辑的Select
+en_US: Select
+editUrl: $BASE/docs/pages/select/md/select4.md
+---
+
++++ zh_CN
+当searchable设置为true时,Select可以根据输入的值进行过滤显示。但如果需要自行实现search的逻辑时,你可以提供一个onSearch方法。
+ 当有搜索值时Select会调用onSelect方法,让用户自行决定如何搜索并更新列表。
+
++++ en_US
+Select
+
++++ SampleCode
+fileName: Select4
diff --git a/src/docs/pages/select/md/select5.md b/src/docs/pages/select/md/select5.md
new file mode 100644
index 00000000..16e5e9cd
--- /dev/null
+++ b/src/docs/pages/select/md/select5.md
@@ -0,0 +1,18 @@
+---
+order: 5
+type: sample
+zh_CN: 构建复杂的Select
+en_US: Select
+editUrl: $BASE/docs/pages/select/md/select5.md
+---
+
++++ zh_CN
+在这个示例中,我们构建了一个更复杂的Select组件。Select的Option内部使用一个自定义的Template去展示更丰富的内容,同时您还可以动态地新增一个Option。
+ 另外需要说明的是,你需要给Option指定一个value和text属性。Option的text属性是指当该选项选中时会在Select上显示的文字内容,
+ 当一个复杂的Option选中后,你需要在Select显示的是一个简短的内容而不是Option的子节点。
+
++++ en_US
+Select
+
++++ SampleCode
+fileName: Select5
diff --git a/src/docs/pages/select/md/select6.md b/src/docs/pages/select/md/select6.md
new file mode 100644
index 00000000..53efd21d
--- /dev/null
+++ b/src/docs/pages/select/md/select6.md
@@ -0,0 +1,18 @@
+---
+order: 6
+type: sample
+zh_CN: 构建复杂的Select
+en_US: Select
+editUrl: $BASE/docs/pages/select/md/select6.md
+---
+
++++ zh_CN
+在这个示例中,利用active和onChange来控制弹出菜单的显示。当active为true时,菜单会弹出显示,并切会调用onChange控制打开或关闭,你可以
+ 在onChange回调函数中自行决定。另外需要注意的是,当点击的是背景而非弹出菜单且需要关闭这个菜单时,此时需要在useEffect或者onComponentDidMout
+ 中添加对window的click事件的监听,对于点击弹出菜单外部的情况需要将状态设置为关闭即可。
+
++++ en_US
+Select
+
++++ SampleCode
+fileName: Select6
diff --git a/src/docs/pages/select/md/select7.md b/src/docs/pages/select/md/select7.md
new file mode 100644
index 00000000..03c422d7
--- /dev/null
+++ b/src/docs/pages/select/md/select7.md
@@ -0,0 +1,18 @@
+---
+order: 7
+type: sample
+zh_CN: 构建复杂的Select
+en_US: Select
+editUrl: $BASE/docs/pages/select/md/select7.md
+---
+
++++ zh_CN
+在这个示例中,利用active和onChange来控制弹出菜单的显示。当active为true时,菜单会弹出显示,并切会调用onChange控制打开或关闭,你可以
+ 在onChange回调函数中自行决定。另外需要注意的是,当点击的是背景而非弹出菜单且需要关闭这个菜单时,此时需要在useEffect或者onComponentDidMout
+ 中添加对window的click事件的监听,对于点击弹出菜单外部的情况需要将状态设置为关闭即可。
+
++++ en_US
+Select
+
++++ SampleCode
+fileName: Select7
diff --git a/src/docs/pages/select/md/title.md b/src/docs/pages/select/md/title.md
new file mode 100644
index 00000000..82770631
--- /dev/null
+++ b/src/docs/pages/select/md/title.md
@@ -0,0 +1,22 @@
+---
+ order: 0
+ type: text
+ zh_CN: 单选 Radio
+ en_US: Radio
+ editUrl: $BASE/docs/pages/select/md/title.md
+---
+
++++ zh_CN
+## 选择 Select [editUrl]
+Select与Dropdown组件有相似之处,不同之处就在于,Dropdown只能单击某个选项而且不会高亮显示,
+但Select却可以。
+
+Select主要有以下功能
+- 单选Select
+- 多选Select
+- 支持关键字搜索
+- Select的菜单也可以在十二个方位显示
+
++++ en_US
+## Select [editUrl]
+
diff --git a/src/docs/pages/select/Select1.js b/src/docs/pages/select/samples/Select1.js
similarity index 100%
rename from src/docs/pages/select/Select1.js
rename to src/docs/pages/select/samples/Select1.js
diff --git a/src/docs/pages/select/Select2.js b/src/docs/pages/select/samples/Select2.js
similarity index 100%
rename from src/docs/pages/select/Select2.js
rename to src/docs/pages/select/samples/Select2.js
diff --git a/src/docs/pages/select/Select3.js b/src/docs/pages/select/samples/Select3.js
similarity index 100%
rename from src/docs/pages/select/Select3.js
rename to src/docs/pages/select/samples/Select3.js
diff --git a/src/docs/pages/select/Select4.js b/src/docs/pages/select/samples/Select4.js
similarity index 100%
rename from src/docs/pages/select/Select4.js
rename to src/docs/pages/select/samples/Select4.js
diff --git a/src/docs/pages/select/Select5.js b/src/docs/pages/select/samples/Select5.js
similarity index 100%
rename from src/docs/pages/select/Select5.js
rename to src/docs/pages/select/samples/Select5.js
diff --git a/src/docs/pages/select/Select6.js b/src/docs/pages/select/samples/Select6.js
similarity index 100%
rename from src/docs/pages/select/Select6.js
rename to src/docs/pages/select/samples/Select6.js
diff --git a/src/docs/pages/select/Select7.js b/src/docs/pages/select/samples/Select7.js
similarity index 100%
rename from src/docs/pages/select/Select7.js
rename to src/docs/pages/select/samples/Select7.js
diff --git a/src/docs/pages/table/TableIndex.js b/src/docs/pages/table/TableIndex.js
index 5ce4a1a7..0d775e55 100755
--- a/src/docs/pages/table/TableIndex.js
+++ b/src/docs/pages/table/TableIndex.js
@@ -1,34 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Table1 from './samples/Table1';
-import Table2 from './samples/Table2';
-import Table3 from './samples/Table3';
-import Table4 from './samples/Table4';
-import Table5 from './samples/Table5';
-import Table6 from './samples/Table6';
-import Table7 from './samples/Table7';
-import Table8 from './samples/Table8';
-import Table9 from './samples/Table9';
-import Table10 from './samples/Table10';
-import Table11 from './samples/Table11';
+import DocPage2 from '../../utils/DocPage2';
-const componentMapping = {
- Table1: ,
- Table2: ,
- Table3: ,
- Table4: ,
- Table5: ,
- Table6: ,
- Table7: ,
- Table8: ,
- Table9: ,
- Table10: ,
- Table11: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-export default function TableIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function TableIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/table/doc.md b/src/docs/pages/table/doc.md
deleted file mode 100755
index dee25217..00000000
--- a/src/docs/pages/table/doc.md
+++ /dev/null
@@ -1,801 +0,0 @@
------------ Title ------------
-[TITLE_BEGIN_zh_CN]
-## 表格 Table
-Table常用来展示多行多列的数据,在企业应用中广泛被使用。
-
-Tabs提供的功能主要有:
-
-- 提供多种类型的Table可供切换
-- 支持表格的排序、过滤、单选、多选等功能
-- 支持固定表头、固定列的滚动展示
-- 基于JSON数据生成完整的表格
-
-[TITLE_END_zh_CN]
-
-
-[TITLE_BEGIN_en_US]
-[TITLE_END_en_US]
-
-------------- Footer ---------------------
-[FOOTER_BEGIN_zh_CN]
-[FOOTER_END_zh_CN]
-
-[FOOTER_BEGIN_en_US]
-[FOOTER_END_en_US]
-
-------------- Samples ---------------------
-[Table1_BEGIN_zh_CN]
-### 示例1: 简单示例
-
- 一个Table通常由thead
和tbody
组成,这里使用了原生的thead
和tbody
去渲染一个table。
- 您还可以切换不同的Table类型:normal
、striped
、simple
。
- 此外还可进一步设置table是否有边框,是否有边缘阴影以及鼠标移到表格行上时是否有黑色背影。
-
-
-```jsx
-import React, {useState} from 'react';
-import {Select, Table, Toggle} from 'react-windy-ui';
-
-export default function Table1() {
- const [type, setType] = useState('normal');
- const [hover, setHover] = useState(false);
- const [hasBorder, setBorder] = useState(true);
- const [hasBox, setBox] = useState(false);
-
- return <>
-
- setBox(val)}
- content={{on: 'Box Shadown', off: 'Box Shadown'}}/>
-
-
- setHover(val)}
- content={{on: 'Hover', off: 'Hover'}}/>
-
-
- setBorder(val)}
- content={{on: 'Border', off: 'Border'}}/>
-
-
-
- Type:
- setType(value)}>
- normal
- striped
- simple
-
-
-
-
-
-
- NO.
- Name
- Age
- Description
-
-
-
-
- 1
- Joe
- 76
- Old Man
-
-
- 2
- Joe2
- 76
- Old Man
-
-
- 3
- Joe3
- 76
- Old Man
-
-
- 4
- Joe4
- 76
- Old Man
-
-
-
-
- >;
-}
-```
-[Table1_END_zh_CN]
-
-[Table1_BEGIN_en_US]
-[Table1_END_en_US]
-----------------------------------
-[Table2_BEGIN_zh_CN]
-### 示例2: 使用JSON数据生成Table
-
- 虽然在示例1中我们可以使用原生的html元素去构建一个Table,但这里还是建议优先选择JSON数据生成Table的方式,因为当有特定需求的时您可以自行调整更多参数设定。
- cells
是一个数组属性主要用来定义一系列的表格列,数组中的cell格式为{head,showParam,format}
。其中,head<、Code>表示表格的head列对应显示的内容,
- showParam
表示这一列需要显示数据对象的某个字段,format
则不是必须的,如果您需要根据值去显示不一样的内容,可以考虑提供此实现。loadData主要用来提供表格
- 行数据,这里可以提供一个数组,也可以是一个返回数组对象的方法。但需要注意的是,您需要额外指定一个key
属性,这个可以通常对应数据库中的ID,因为在渲染表格行时,
- react需要给数组的渲染对象指定一个key。
-
-
-```jsx
-import React from 'react';
-import {Table} from 'react-windy-ui';
-
-const loadData = () => {
- return [
- {
- key: '1',
- name: 'Joe1',
- age: 22,
- address: 'address1',
- },
- {
- key: '2',
- name: 'Joe2',
- age: 22,
- address: 'address1',
- },
- ];
-};
-
-const cells = [
- {
- head: 'ID',
- showParam: 'key',
- },
- {
- head: 'Name',
- showParam: 'name',
- },
- {
- head: 'Age',
- showParam: 'age',
- },
- {
- head: 'Address',
- showParam: 'address',
-
- format: (addressText) => {
- return
- {addressText}
- ;
- },
- },
-];
-
-export default function Table2() {
-
- return <>
-
-
-
- >;
-}
-```
-[Table2_END_zh_CN]
-
-[Table2_BEGIN_en_US]
-[Table2_END_en_US]
-----------------------------------
-[Table3_BEGIN_zh_CN]
-### 示例3: 单选/多选表格行
-
- 将checkable
设置为true
后,表格会增加一列显示勾选组件。设置checkType
属性,可以启用checkbox或是radio组件。当点击后会触发onCheckAll
、onCheckChange
回调。
- 如果需要一开始就选中某些行,则可以指定defaultCheckedRows
属性。如果需要自行控制选中哪些行,就可以只使用CheckedRows
(非defaultCheckedRows
)配合onCheckAll
、onCheckChange
方法,
- 去控制选中的行。
-
-
-```jsx
-
-
-const loadData = () => {
- return [
- {
- key: '1',
- name: 'Joe1',
- age: 22,
- address: 'address1',
- },
- {
- key: '2',
- name: 'Joe2',
- age: 22,
- address: 'address1',
- },
- ];
-};
-
-const cells = [
- {
- head: 'ID',
- showParam: 'key',
- },
- {
- head: 'Name',
- showParam: 'name',
- },
- {
- head: 'Age',
- showParam: 'age',
- },
- {
- head: 'Address',
- showParam: 'address',
- },
-];
-
-export default function Table3() {
- const [checkType, setCheckType] = useState('checkbox');
- return <>
-
- Type:
- setCheckType(value)}>
- radio
- checkbox
-
-
- console.log('check all: ' + next)}
- onCheckChange={(jsonData, next) => console.log(
- 'check one: ' + jsonData + next)}
- defaultCheckedRows={'2'}/>
- >;
-}
-```
-[Table3_END_zh_CN]
-
-[Table3_BEGIN_en_US]
-[Table3_END_en_US]
-----------------------------------
-[Table4_BEGIN_zh_CN]
-### 示例4: 排序
-
- 要使某列可以排序时,可以在cells
数组中针对某一列设置sortable
属性。当值设置为true
后,该列就支持排序功能。
- 将defaultSortOrder
设置为asc
或desc
时,可以指定默认首次排序时是升序还是降序。
- 如果需要自行决定排序规则,则可以提供一个sortComparator
方法,每次在触发排序时被调用。
-
-
-```jsx
-import React from 'react';
-import {Table} from 'react-windy-ui';
-
-const loadData = [
- {
- key: '1',
- name: 'Joe1',
- age: 12,
- address: 'address1',
- },
- {
- key: '2',
- name: 'Joe2',
- age: 22,
- address: 'address2',
- },
- {
- key: '3',
- name: 'Joe3',
- age: 12,
- address: 'address3',
- },
-];
-
-const cells = [
- {
- head: 'ID',
- showParam: 'key',
- sortable: true,
- sortComparator: (a, b, order) => order === 'asc' ? a - b : b - a,
- defaultSortOrder: 'asc',
- },
- {
- head: 'Name',
- showParam: 'name',
- sortable: true,
- defaultSortOrder: 'asc',
- },
- {
- head: 'Age',
- showParam: 'age',
- sortable: true,
- },
- {
- head: 'Address',
- showParam: 'address',
- sortable: true,
- defaultSortOrder: 'desc',
- },
-];
-
-export default function Table4() {
-
- return <>
-
-
-
- >;
-}
-```
-[Table4_END_zh_CN]
-
-[Table4_BEGIN_en_US]
-[Table4_END_en_US]
-----------------------------------
-[Table5_BEGIN_zh_CN]
-### 示例5: 异步排序以及显示加载中状态
-
- 使用了sortOder
属性即意味着您需要自行控制排序逻辑,此时需要提供一个onSort
方法去更新排序结果,而且Table内部将不再自动切换排序规则。
- 在Table之上包裹一层Loader
,则可以显示加载中的状态。
-
-
-```jsx
-import React, {useState} from 'react';
-import {Loader, Table} from 'react-windy-ui';
-
-const cellsData = [
- {
- key: '1',
- name: 'Joe1',
- age: 12,
- address: 'address1',
- },
- {
- key: '2',
- name: 'Joe2',
- age: 22,
- address: 'address2',
- },
- {
- key: '3',
- name: 'Joe3',
- age: 12,
- address: 'address3',
- },
-];
-
-const cells = [
- {
- head: 'ID',
- showParam: 'key',
- sortable: true,
- },
- {
- head: 'Name',
- showParam: 'name',
- },
- {
- head: 'Age',
- showParam: 'age',
- },
- {
- head: 'Address',
- showParam: 'address',
- },
-];
-
-export default function Table5() {
- const [data, setData] = useState(cellsData);
- const [order, setOrder] = useState(null);
- const [loading, setLoading] = useState(false);
-
- const sort = (cell) => {
- if (cell.showParam === 'key') {
- const nextOrder = order ? order.order === 'asc' ? 'desc' : 'asc'
- : 'desc';
-
- const sortFunc = nextOrder === 'asc' ?
- (a, b) => a.key - b.key :
- (a, b) => b.key - a.key;
-
- setLoading(true);
-
- setTimeout(() => {
- var sortedData = data.sort(sortFunc);
- setData([...sortedData]);
- setOrder({key: cell.key, order: nextOrder});
- setLoading(false);
- }, 2000);
-
- }
- };
- return <>
-
-
-
- >;
-}
-```
-[Table5_END_zh_CN]
-
-[Table5_BEGIN_en_US]
-[Table5_END_en_US]
-----------------------------------
-[Table6_BEGIN_zh_CN]
-### 示例6: 过滤表格行
-
- 要使表格列支持过滤功能,需要将filterable
属性设置为true
,同时需要提供一个filterConfig
对象。
- 其中filterItems
属性提供可供过滤的选项,而onFilter
- 用来判断选中值是否符合标准。另外过滤弹出框提供了reset
和ok
按钮,您可以设置对应的显示文字。
-
-
-```jsx
-import React, {useRef} from 'react';
-import {Button, Table} from 'react-windy-ui';
-
-const loadData = () => {
- return [
- {
- key: '1',
- name: 'Nanjing',
- place: 'Zhonghua Gate',
- },
- {
- key: '2',
- name: 'Nanjing',
- place: 'Qinhuai River',
- },
- {
- key: '3',
- name: 'Shanghai',
- place: 'The Bund Shanghai',
- },
- {
- key: '4',
- name: 'Shanghai',
- place: 'Jade Buddha Temple',
- },
- {
- key: '5',
- name: 'Beijing',
- place: 'Forbidden City',
- },
- {
- key: '6',
- name: 'Beijing',
- place: 'Badaling Great Wall',
- },
- ];
-};
-
-const cells = [
- {
- head: 'ID',
- showParam: 'key',
- sortable: true,
- },
- {
- head: 'City',
- showParam: 'name',
- filterable: true,
- filterConfig: {
- filterItems: [
- {
- text: '南京',
- value: 'Nanjing',
- },
- {
- text: '北京',
- value: 'Beijing',
- },
- {
- text: '上海',
- value: 'Shanghai',
- }],
- resetText: '重 置',
- okText: '确 定',
- onFilter: (filterValues, rowData) => {
- for (let value of filterValues) {
- if (rowData.name.includes(value)) {
- return true;
- }
- }
- return false;
- },
- },
- },
- {
- head: 'Place',
- showParam: 'place',
- filterable: true,
- filterConfig: {
- filterItems: [
- {
- text: '秦淮河',
- value: 'Qinhuai',
- },
- {
- text: '故宫',
- value: 'Forbidden',
- },
- {
- text: '外滩',
- value: 'Bund',
- }],
- },
- },
-];
-
-export default function Table6() {
- const instanceRef = useRef(null);
-
- return <>
- instanceRef.current.clearSort()}>
- Clear Sort
-
- instanceRef.current.clearFilter()}>
- Clear Filter
-
- instanceRef.current.clearAll()}>
- Clear All
-
-
-
- >;
-}
-```
-[Table6_END_zh_CN]
-
-[Table6_BEGIN_en_US]
-[Table6_END_en_US]
-----------------------------------
-[Table7_BEGIN_zh_CN]
-### 示例7: 在表格列中添加自定义的元素
-
- Table中某列允许过滤时,会在表头对应的列上显示一个过滤的图标。如果还需要实现其他的功能,比如需要点击后弹出搜索框的功能,则可以参照此例
- 添加一个elements
数组属性。
-
-
-```jsx
-import React, {useCallback, useMemo, useRef, useState} from 'react';
-import {
- Table,
- Row,
- Button,
- Input,
- Col,
- Card,
- IconSearch,
- ButtonGroup,
-} from 'react-windy-ui';
-
-const tableData = [
- {
- key: '1',
- name: 'Nanjing',
- place: 'Zhonghua Gate',
- },
- {
- key: '2',
- name: 'Nanjing',
- place: 'Qinhuai River',
- },
- {
- key: '3',
- name: 'Shanghai',
- place: 'The Bund Shanghai',
- },
- {
- key: '4',
- name: 'Shanghai',
- place: 'Jade Buddha Temple',
- },
- {
- key: '5',
- name: 'Beijing',
- place: 'Forbidden City',
- },
- {
- key: '6',
- name: 'Beijing',
- place: 'Badaling Great Wall',
- },
-];
-
-const Element = ({onSearch, tableProps}) => {
-//todo: the value always be cleared
- const [value, setValue] = useState('');
- return
- Enter the value to search:
-
- {
- setValue(e.target.value);
- }}/>
-
-
-
-
- setValue('')}>Reset
-
-
- {
- //to close the popup
- document.body.click();
- onSearch(value);
- }}>
- Search
-
-
-
-
-
- ;
-};
-
-export default function Table7() {
- const [data, setData] = useState(tableData);
- const instanceRef = useRef(null);
-
- const onSearch = useCallback((value) => {
- var newData = tableData.filter(d => d.name.includes(value));
- setData(newData);
- });
-
- const cells = useMemo(() => [
- {
- head: 'ID',
- showParam: 'key',
- sortable: true,
- },
- {
- head: 'City',
- showParam: 'name',
- filterable: true,
- filterConfig: {
- filterItems: [
- {
- text: '南京',
- value: 'Nanjing',
- },
- {
- text: '北京',
- value: 'Beijing',
- },
- {
- text: '上海',
- value: 'Shanghai',
- }],
- },
- elements: [
- {
- key: 'search',
- head: ,
- body: ({tableProps}) => ,
- },
- ],
- },
- {
- head: 'Place',
- showParam: 'place',
- filterable: true,
- filterConfig: {
- filterItems: [
- {
- text: '秦淮河',
- value: 'Qinhuai',
- },
- {
- text: '故宫',
- value: 'Forbidden',
- },
- {
- text: '外滩',
- value: 'Bund',
- }],
- },
- },
- ], [onSearch]);
-
- return <>
-
-
- >;
-}
-```
-[Table7_END_zh_CN]
-
-[Table7_BEGIN_en_US]
-[Table7_END_en_US]
-----------------------------------
-[Table8_BEGIN_zh_CN]
-### 示例8: 固定表头并垂直滚动显示
-
- 要固定表头,并且在表格高度超出后可以垂直滚动时,可以同时设置scrollY
和bodyHeight
属性,同时将scrollY
设置为true
后,并设定一个高度,通常
- 这个高度要比表格实际高度要小。
-
-
-```jsx
-import React from 'react';
-import {Table} from 'react-windy-ui';
-
-const data = [
- {
- key: '1',
- name: 'Nanjing',
- place: 'Zhonghua Gate',
- },
- {
- key: '2',
- name: 'Nanjing',
- place: 'Qinhuai River',
- },
- {
- key: '3',
- name: 'Shanghai',
- place: 'The Bund Shanghai',
- },
- {
- key: '4',
- name: 'Shanghai',
- place: 'Jade Buddha Temple',
- },
- {
- key: '5',
- name: 'Beijing',
- place: 'Forbidden City',
- },
- {
- key: '6',
- name: 'Beijing',
- place: 'Badaling Great Wall',
- },
-];
-
-const cells = [
- {
- head: 'ID',
- showParam: 'key',
- sortable: true,
- },
- {
- head: 'City',
- showParam: 'name',
- sortable: true,
- },
- {
- head: 'Place',
- showParam: 'place',
- sortable: true,
- },
-];
-
-export default function Table8() {
- return <>
-
-
- >;
-}
-```
-[Table8_END_zh_CN]
-
-[Table8_BEGIN_en_US]
-[Table8_END_en_US]
-----------------------------------
\ No newline at end of file
diff --git a/src/docs/pages/table/md/api.md b/src/docs/pages/table/md/api.md
new file mode 100644
index 00000000..90fcfa05
--- /dev/null
+++ b/src/docs/pages/table/md/api.md
@@ -0,0 +1,15 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/table/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/table/md/table1.md b/src/docs/pages/table/md/table1.md
new file mode 100644
index 00000000..3e3cbc87
--- /dev/null
+++ b/src/docs/pages/table/md/table1.md
@@ -0,0 +1,18 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table1.md
+---
+
++++ zh_CN
+一个Table通常由thead
和tbody
组成,这里使用了原生的thead
和tbody
去渲染一个table。
+ 您还可以切换不同的Table类型:normal
、striped
、simple
。
+ 此外还可进一步设置table是否有边框,是否有边缘阴影以及鼠标移到表格行上时是否有黑色背影。
+
++++ en_US
+Table1
+
++++ SampleCode
+fileName: Table1
diff --git a/src/docs/pages/table/md/table10.md b/src/docs/pages/table/md/table10.md
new file mode 100644
index 00000000..df6c527d
--- /dev/null
+++ b/src/docs/pages/table/md/table10.md
@@ -0,0 +1,16 @@
+---
+order: 10
+type: sample
+zh_CN: Table
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table10.md
+---
+
++++ zh_CN
+Table
+
++++ en_US
+Table
+
++++ SampleCode
+fileName: Table10
diff --git a/src/docs/pages/table/md/table11.md b/src/docs/pages/table/md/table11.md
new file mode 100644
index 00000000..da725ef6
--- /dev/null
+++ b/src/docs/pages/table/md/table11.md
@@ -0,0 +1,16 @@
+---
+order: 11
+type: sample
+zh_CN: Table
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table11.md
+---
+
++++ zh_CN
+Table
+
++++ en_US
+Table
+
++++ SampleCode
+fileName: Table11
diff --git a/src/docs/pages/table/md/table2.md b/src/docs/pages/table/md/table2.md
new file mode 100644
index 00000000..bc880b83
--- /dev/null
+++ b/src/docs/pages/table/md/table2.md
@@ -0,0 +1,20 @@
+---
+order: 2
+type: sample
+zh_CN: 使用JSON数据生成Table
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table2.md
+---
+
++++ zh_CN
+虽然在示例1中我们可以使用原生的html元素去构建一个Table,但这里还是建议优先选择JSON数据生成Table的方式,因为当有特定需求的时您可以自行调整更多参数设定。
+ cells
是一个数组属性主要用来定义一系列的表格列,数组中的cell格式为{head,showParam,format}
。其中,head<、Code>表示表格的head列对应显示的内容,
+ showParam
表示这一列需要显示数据对象的某个字段,format
则不是必须的,如果您需要根据值去显示不一样的内容,可以考虑提供此实现。loadData主要用来提供表格
+ 行数据,这里可以提供一个数组,也可以是一个返回数组对象的方法。但需要注意的是,您需要额外指定一个key
属性,这个可以通常对应数据库中的ID,因为在渲染表格行时,
+ react需要给数组的渲染对象指定一个key。
+
++++ en_US
+Table2
+
++++ SampleCode
+fileName: Table2
diff --git a/src/docs/pages/table/md/table3.md b/src/docs/pages/table/md/table3.md
new file mode 100644
index 00000000..28ea1b1f
--- /dev/null
+++ b/src/docs/pages/table/md/table3.md
@@ -0,0 +1,18 @@
+---
+order: 3
+type: sample
+zh_CN: 单选/多选表格行
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table3.md
+---
+
++++ zh_CN
+将checkable
设置为true
后,表格会增加一列显示勾选组件。设置checkType
属性,可以启用checkbox或是radio组件。当点击后会触发onCheckAll
、onCheckChange
回调。
+ 如果需要一开始就选中某些行,则可以指定defaultCheckedRows
属性。如果需要自行控制选中哪些行,就可以只使用CheckedRows
(非defaultCheckedRows
)配合onCheckAll
、onCheckChange
方法,
+ 去控制选中的行。
+
++++ en_US
+Table3
+
++++ SampleCode
+fileName: Table3
diff --git a/src/docs/pages/table/md/table4.md b/src/docs/pages/table/md/table4.md
new file mode 100644
index 00000000..811065dc
--- /dev/null
+++ b/src/docs/pages/table/md/table4.md
@@ -0,0 +1,19 @@
+---
+order: 4
+type: sample
+zh_CN: 排序
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table4.md
+---
+
++++ zh_CN
+要使某列可以排序时,可以在cells
数组中针对某一列设置sortable
属性。当值设置为true
后,该列就支持排序功能。
+ 将defaultSortOrder
设置为asc
或desc
时,可以指定默认首次排序时是升序还是降序。
+ 如果需要自行决定排序规则,则可以提供一个sortComparator
方法,每次在触发排序时被调用。
+
+
++++ en_US
+Table4
+
++++ SampleCode
+fileName: Table4
diff --git a/src/docs/pages/table/md/table5.md b/src/docs/pages/table/md/table5.md
new file mode 100644
index 00000000..1ed4af99
--- /dev/null
+++ b/src/docs/pages/table/md/table5.md
@@ -0,0 +1,17 @@
+---
+order: 5
+type: sample
+zh_CN: 异步排序以及显示加载中状态
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table5.md
+---
+
++++ zh_CN
+使用了sortOder
属性即意味着您需要自行控制排序逻辑,此时需要提供一个onSort
方法去更新排序结果,而且Table内部将不再自动切换排序规则。
+ 在Table之上包裹一层Loader
,则可以显示加载中的状态。
+
++++ en_US
+Table5
+
++++ SampleCode
+fileName: Table5
diff --git a/src/docs/pages/table/md/table6.md b/src/docs/pages/table/md/table6.md
new file mode 100644
index 00000000..f2975ada
--- /dev/null
+++ b/src/docs/pages/table/md/table6.md
@@ -0,0 +1,19 @@
+---
+order: 6
+type: sample
+zh_CN: 异步排序以及显示加载中状态
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table6.md
+---
+
++++ zh_CN
+要使表格列支持过滤功能,需要将filterable
属性设置为true
,同时需要提供一个filterConfig
对象。
+ 其中filterItems
属性提供可供过滤的选项,而onFilter
+ 用来判断选中值是否符合标准。另外过滤弹出框提供了reset
和ok
按钮,您可以设置对应的显示文字。
+
+
++++ en_US
+Table6
+
++++ SampleCode
+fileName: Table6
diff --git a/src/docs/pages/table/md/table7.md b/src/docs/pages/table/md/table7.md
new file mode 100644
index 00000000..4187089c
--- /dev/null
+++ b/src/docs/pages/table/md/table7.md
@@ -0,0 +1,17 @@
+---
+order: 7
+type: sample
+zh_CN: 在表格列中添加自定义的元素
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table7.md
+---
+
++++ zh_CN
+Table中某列允许过滤时,会在表头对应的列上显示一个过滤的图标。如果还需要实现其他的功能,比如需要点击后弹出搜索框的功能,则可以参照此例
+ 添加一个elements
数组属性。
+
++++ en_US
+Table7
+
++++ SampleCode
+fileName: Table7
diff --git a/src/docs/pages/table/md/table8.md b/src/docs/pages/table/md/table8.md
new file mode 100644
index 00000000..2dcb6e6b
--- /dev/null
+++ b/src/docs/pages/table/md/table8.md
@@ -0,0 +1,17 @@
+---
+order: 8
+type: sample
+zh_CN: 固定表头并垂直滚动显示
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table8.md
+---
+
++++ zh_CN
+要固定表头,并且在表格高度超出后可以垂直滚动时,可以同时设置scrollY
和bodyHeight
属性,同时将scrollY
设置为true
后,并设定一个高度,通常
+ 这个高度要比表格实际高度要小。
+
++++ en_US
+Table8
+
++++ SampleCode
+fileName: Table8
diff --git a/src/docs/pages/table/md/table9.md b/src/docs/pages/table/md/table9.md
new file mode 100644
index 00000000..b93e361f
--- /dev/null
+++ b/src/docs/pages/table/md/table9.md
@@ -0,0 +1,16 @@
+---
+order: 9
+type: sample
+zh_CN: Table
+en_US: Table
+editUrl: $BASE/docs/pages/table/md/table9.md
+---
+
++++ zh_CN
+Table9
+
++++ en_US
+Table9
+
++++ SampleCode
+fileName: Table9
diff --git a/src/docs/pages/table/md/title.md b/src/docs/pages/table/md/title.md
new file mode 100644
index 00000000..c47145ad
--- /dev/null
+++ b/src/docs/pages/table/md/title.md
@@ -0,0 +1,22 @@
+---
+ order: 0
+ type: text
+ zh_CN: 表格 Table
+ en_US: Table
+ editUrl: $BASE/docs/pages/table/md/title.md
+---
+
++++ zh_CN
+## 表格 Table [editUrl]
+Table常用来展示多行多列的数据,在企业应用中广泛被使用。
+
+Tabs提供的功能主要有:
+
+- 提供多种类型的Table可供切换
+- 支持表格的排序、过滤、单选、多选等功能
+- 支持固定表头、固定列的滚动展示
+- 基于JSON数据生成完整的表格
+
++++ en_US
+## Table [editUrl]
+
diff --git a/src/docs/pages/tabs/TabsIndex.js b/src/docs/pages/tabs/TabsIndex.js
index d86f86d9..a73e2238 100755
--- a/src/docs/pages/tabs/TabsIndex.js
+++ b/src/docs/pages/tabs/TabsIndex.js
@@ -1,24 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Tabs1 from './samples/Tabs1';
-import Tabs2 from './samples/Tabs2';
-import Tabs3 from './samples/Tabs3';
-import Tabs4 from './samples/Tabs4';
-import Tabs5 from './samples/Tabs5';
-import Tabs6 from './samples/Tabs6';
+import DocPage2 from '../../utils/DocPage2';
-const componentMapping = {
- Tabs1: ,
- Tabs2: ,
- Tabs3: ,
- Tabs4: ,
- Tabs5: ,
- Tabs6: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-export default function TabsIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function TabsIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/tabs/md/api.md b/src/docs/pages/tabs/md/api.md
new file mode 100644
index 00000000..d35328c4
--- /dev/null
+++ b/src/docs/pages/tabs/md/api.md
@@ -0,0 +1,56 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/tabs/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+- Tabs
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | tab | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| type | 类型 | string | normal | 值可以是:normal, card, secondaryCard |
+| defaultActive | 默认激活选中的Item | string\|number | - | 对应TabItem的value |
+| active | 当前激活选中的Item | string\|number | - | 当此属性设置后onChange回调会被调用,以便切换选中的TabItem |
+| onChange | 当切换TabItem时的回调 | function | - | |
+| onRemove | 当删除某个TabItem时的回调 | function(value) | - | |
+| removable | 是否允许删除某个Tab | boolean | - | |
+| equalWidth | 是否每个TabItem等宽显示 | boolean | - | |
+| position | TabItem的显示位置 | string | top | 值可以是: top, bottom, left right |
+| hasBorder | 是否有边框 | boolean | true | |
+| cardBorder | TabItem显示为卡片时的边框 | string | 值可以是: none, one, full | |
+| scrollable | 是否允许内容超出时滚动显示 | boolean | true | |
+
+
+- TabItem
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | tab-item | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| disabled | 是否禁用 | boolean | - | |
+| value | TabItem的值 | string\|number | - | |
+| removable | 是否允许删除 | boolean | - | |
+
+- TabPanel
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | - | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| itemValue | 对应的TabItem值 | string | - | 与TabItem的value一一对应 |
+
+- Tab.Panels
、Tab.Items
为中间节点对象,不生成对应的DOM节点,因此没有对应的API
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/tabs/md/tabs1.md b/src/docs/pages/tabs/md/tabs1.md
new file mode 100644
index 00000000..56090aae
--- /dev/null
+++ b/src/docs/pages/tabs/md/tabs1.md
@@ -0,0 +1,19 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: Tabs
+editUrl: $BASE/docs/pages/tabs/md/tabs1.md
+---
+
++++ zh_CN
+这里Tabs
组件由三部分组成Tabs
、Tabs.Items
、 Tabs.Panels
。
+ 您需要给每个TabItem指定一个唯一的值,同时
+ 添加一个对应的TabPanel
。并且指定itemValue
值与TabItem
的值一致,这样当切换选项卡时,可以确保
+ 显示对应的TabPanel
。
+
++++ en_US
+Tabs
+
++++ SampleCode
+fileName: Tabs1
diff --git a/src/docs/pages/tabs/md/tabs2.md b/src/docs/pages/tabs/md/tabs2.md
new file mode 100644
index 00000000..46d1b365
--- /dev/null
+++ b/src/docs/pages/tabs/md/tabs2.md
@@ -0,0 +1,17 @@
+---
+order: 2
+type: sample
+zh_CN: 等宽的TabItem
+en_US: Tabs
+editUrl: $BASE/docs/pages/tabs/md/tabs2.md
+---
+
++++ zh_CN
+将equalWidth
属性设置为true
, TabItem将会以相同的宽度占据整行。
+
+
++++ en_US
+Tabs
+
++++ SampleCode
+fileName: Tabs2
diff --git a/src/docs/pages/tabs/md/tabs3.md b/src/docs/pages/tabs/md/tabs3.md
new file mode 100644
index 00000000..7a7c1897
--- /dev/null
+++ b/src/docs/pages/tabs/md/tabs3.md
@@ -0,0 +1,17 @@
+---
+order: 3
+type: sample
+zh_CN: 三种类型
+en_US: Tabs
+editUrl: $BASE/docs/pages/tabs/md/tabs3.md
+---
+
++++ zh_CN
+有三种类型的Tabs可供选用,可以将type设置为normal
、card
、secondaryCard
。
+
+
++++ en_US
+Tabs
+
++++ SampleCode
+fileName: Tabs3
diff --git a/src/docs/pages/tabs/md/tabs4.md b/src/docs/pages/tabs/md/tabs4.md
new file mode 100644
index 00000000..77a9b0e7
--- /dev/null
+++ b/src/docs/pages/tabs/md/tabs4.md
@@ -0,0 +1,19 @@
+---
+order: 4
+type: sample
+zh_CN: 可滚动的Tabs
+en_US: Tabs
+editUrl: $BASE/docs/pages/tabs/md/tabs4.md
+---
+
++++ zh_CN
+当Tabs
的内容过多,可在水平、垂直方向上滚动切换,此时只需要确保scrollable
属性为true即可。
+ 另外如果要在垂直方向上滚动,您还需要给
+ Tabs添加一个高度,以便只滚动显示部分的TabItem。通过position
可以指定TabItem所在的位置,您可以设置为: top
、
+ bottom
、left
、right
。
+
++++ en_US
+Tabs
+
++++ SampleCode
+fileName: Tabs4
diff --git a/src/docs/pages/tabs/md/tabs5.md b/src/docs/pages/tabs/md/tabs5.md
new file mode 100644
index 00000000..6c2950bc
--- /dev/null
+++ b/src/docs/pages/tabs/md/tabs5.md
@@ -0,0 +1,17 @@
+---
+order: 5
+type: sample
+zh_CN: 可滚动的Tabs
+en_US: Tabs
+editUrl: $BASE/docs/pages/tabs/md/tabs5.md
+---
+
++++ zh_CN
+将removable
属性设置为true后,可以删除对应的Tab。此时您还需要提供一个onRemove的实现,将对应的TabItem删除后,
+ 将新的TabItem列表数据在Tabs下显示。
+
++++ en_US
+Tabs
+
++++ SampleCode
+fileName: Tabs5
diff --git a/src/docs/pages/tabs/md/tabs6.md b/src/docs/pages/tabs/md/tabs6.md
new file mode 100644
index 00000000..e7df60d7
--- /dev/null
+++ b/src/docs/pages/tabs/md/tabs6.md
@@ -0,0 +1,19 @@
+---
+order: 6
+type: sample
+zh_CN: 卡片内嵌方式
+en_US: Tabs
+editUrl: $BASE/docs/pages/tabs/md/tabs6.md
+---
+
++++ zh_CN
+通常可以将Tabs嵌入一个面板中,作为卡片的方式切换显示,此时则可以结合使用hasBorder
和cardBorder
属性。
+ 有三种类型的cardBorder
可以使用: none
, one
, full
。当为none
时,
+ TabItem选中时没有边框; 当为one
时,只显示一条蓝色的边框;当为full
时,显示所有的边框。
+
+
++++ en_US
+Tabs
+
++++ SampleCode
+fileName: Tabs6
diff --git a/src/docs/pages/tabs/md/title.md b/src/docs/pages/tabs/md/title.md
new file mode 100644
index 00000000..e7811ff2
--- /dev/null
+++ b/src/docs/pages/tabs/md/title.md
@@ -0,0 +1,21 @@
+---
+ order: 0
+ type: text
+ zh_CN: 选项卡 Tabs
+ en_US: Tabs
+ editUrl: $BASE/docs/pages/tabs/md/title.md
+---
+
++++ zh_CN
+## 选项卡 Tabs [editUrl]
+Tabs常用来将多块内容区域分割开,按需切换显示,在布局上显得更紧凑、简洁。
+
+Tabs提供的功能主要有:
+
+- 提供多种类型的Tabs,并可在上下左右四个方位排队选项卡
+- 支持Tab组件滚动切换并显示
+- 支持选项卡的添加、删除
+
++++ en_US
+## Tabs [editUrl]
+
diff --git a/src/docs/pages/toggle/ToggleIndex.js b/src/docs/pages/toggle/ToggleIndex.js
index 5f805d78..720fb9f3 100755
--- a/src/docs/pages/toggle/ToggleIndex.js
+++ b/src/docs/pages/toggle/ToggleIndex.js
@@ -1,21 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Toggle1 from './samples/Toggle1';
-import Toggle2 from './samples/Toggle2';
-import Toggle3 from './samples/Toggle3';
-import Toggle4 from './samples/Toggle4';
+import DocPage2 from '../../utils/DocPage2';
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-const componentMapping = {
- Toggle1: ,
- Toggle2: ,
- Toggle3: ,
- Toggle4: ,
-};
-
-export default function ToggleIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function ToggleIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/toggle/doc.md b/src/docs/pages/toggle/doc.md
deleted file mode 100755
index 9e9170c7..00000000
--- a/src/docs/pages/toggle/doc.md
+++ /dev/null
@@ -1,216 +0,0 @@
------------ Title ------------
-[TITLE_BEGIN_zh_CN]
-## 开关 Toggle
-Toggle组件常用来进行启用、禁用的状态切换,与checkbox相比,具有更好的显示效果。
-
-Toggle组件主要提供以下功能:
-
-- 提供了三种开关样式以供选择
-- 开关内部可添加图标或文字描述
-[TITLE_END_zh_CN]
-
-
-[TITLE_BEGIN_en_US]
-[TITLE_END_en_US]
-
-------------- Footer ---------------------
-[FOOTER_BEGIN_zh_CN]
-## API
-
-Toggle的属性如下所示
-
-
-| 属性 | 名称 | 类型 | 默认值 | 描述 |
-| --- | --- | --- | --- | --- |
-| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
-| className | 样式名称 | string | toggle-button | |
-| extraClassName | 额外添加的样式名称 | string | - | |
-| disabled | 是否禁用 | boolean | false | |
-| active | 是否激活中 | boolean | false | |
-| defaultActive | 初始是否激活中 | boolean | false | |
-| onChange | 状态变化触发的回调 | function | - | |
-| block | 将宽度设置为100%的行宽 | boolean | `false` | |
-| type | Input的类型 | string | - | 值可以是:text, textarea, password, file等html中关于input可设置的类型 |
-| content | 显示内容 | object | - | content格式: {on: 'On': off: 'Off', showInbar: true}, on、off可以是文字或其他react组件对象 |
-
-[FOOTER_END_zh_CN]
-
-[FOOTER_BEGIN_en_US]
-[FOOTER_END_en_US]
-
-------------- Samples ---------------------
-[Toggle1_BEGIN_zh_CN]
-### 示例1: 三种类型的开关
-
- 提示
-
- 默认提供了normal、primary、secondary三种类型的开关,您可以通过type属性设置。
-
-
-
-```jsx
-import React from 'react';
-import {Toggle} from 'react-windy-ui';
-
-export default function Toggle1() {
- return <>
-
-
-
-
-
-
-
-
-
- >;
-}
-```
-[Toggle1_END_zh_CN]
-
-[Toggle1_BEGIN_en_US]
-[Toggle1_END_en_US]
-----------------------------------
-[Toggle2_BEGIN_zh_CN]
-### 示例2: 设置Toggle的宽度
-
-
- 提示
-
- 要更改Toggle组件的宽度,你可以设置style属性,将width设置一个具体的值。你也可以只设置一个block属性
- 让控件占据整行显示。
-
-
-
-```jsx
-import React from 'react';
-import {Toggle} from 'react-windy-ui';
-
-export default function Toggle2() {
- return <>
-
-
-
-
-
-
-
-
-
-
-
-
- >;
-}
-```
-[Toggle2_END_zh_CN]
-
-[Toggle2_BEGIN_en_US]
-[Toggle2_END_en_US]
-----------------------------------
-[Toggle3_BEGIN_zh_CN]
-### 示例2: 在Toggle中显示图标或文字
-
- 提示
-
- 可以给Toggle添加简短的文字或图标, 在content属性中,on属性后对应开启状态的显示;off属性对应关闭
- 状态时的显示。on和off可以设置成字符串、文字或react对象。另外,通过showInBar属性,你可以控制文字或图标的显示位置。
-
-
-
-
-```jsx
-import React from 'react';
-import {
- Toggle,
- IconArrowLeft,
- IconArrowRight,
- IconClear,
- IconChecked2,
-} from 'react-windy-ui';
-
-export default function Toggle3() {
- return <>
-
-
-
-
- ,
- off: ,
- showInBar: true,
- }}/>
-
-
-
-
-
- ,
- off: ,
- }}/>
-
- >;
-}
-```
-
-[Toggle3_END_zh_CN]
-
-[Toggle3_BEGIN_en_US]
-[Toggle3_END_en_US]
-----------------------------------
-
-[Toggle4_BEGIN_zh_CN]
-### 示例4: 禁用Toggle
-
- 提示
-
- 将disabled设置为true后,将禁用对应的Toggle。
-
-
-
-```jsx
-import React from 'react';
-import {
- Toggle,
- IconArrowLeft,
- IconArrowRight,
- IconClear,
- IconChecked2,
-} from 'react-windy-ui';
-
-export default function Toggle4() {
- return <>
-
-
-
-
- ,
- off: ,
- showInBar: true,
- }}/>
-
-
- console.log(v)}
- content={{
- on: ,
- off: ,
- }}/>
-
- >;
-}
-```
-[Toggle4_END_zh_CN]
-
-[Toggle4_BEGIN_en_US]
-[Toggle4_END_en_US]
\ No newline at end of file
diff --git a/src/docs/pages/toggle/md/api.md b/src/docs/pages/toggle/md/api.md
new file mode 100644
index 00000000..07565fe1
--- /dev/null
+++ b/src/docs/pages/toggle/md/api.md
@@ -0,0 +1,29 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/toggle/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+Toggle的属性如下所示
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | 根节点Dom对象的引用 | function \| ref | - | 当需要获取到根节点的dom对象时可设置此属性 |
+| className | 样式名称 | string | toggle-button | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| disabled | 是否禁用 | boolean | false | |
+| active | 是否激活中 | boolean | false | |
+| defaultActive | 初始是否激活中 | boolean | false | |
+| onChange | 状态变化触发的回调 | function | - | |
+| block | 将宽度设置为100%的行宽 | boolean | `false` | |
+| type | Input的类型 | string | - | 值可以是:text, textarea, password, file等html中关于input可设置的类型 |
+| content | 显示内容 | object | - | content格式: {on: 'On': off: 'Off', showInbar: true}, on、off可以是文字或其他react组件对象 |
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/toggle/md/title.md b/src/docs/pages/toggle/md/title.md
new file mode 100644
index 00000000..f30dc4b7
--- /dev/null
+++ b/src/docs/pages/toggle/md/title.md
@@ -0,0 +1,20 @@
+---
+ order: 0
+ type: text
+ zh_CN: 开关 Toggle
+ en_US: Toggle
+ editUrl: $BASE/docs/pages/toggle/md/title.md
+---
+
++++ zh_CN
+## 开关 Toggle [editUrl]
+Toggle组件常用来进行启用、禁用的状态切换,与checkbox相比,具有更好的显示效果。
+
+Toggle组件主要提供以下功能:
+
+- 提供了三种开关样式以供选择
+- 开关内部可添加图标或文字描述
+
++++ en_US
+## Tabs [editUrl]
+
diff --git a/src/docs/pages/toggle/md/toggle1.md b/src/docs/pages/toggle/md/toggle1.md
new file mode 100644
index 00000000..21a3b305
--- /dev/null
+++ b/src/docs/pages/toggle/md/toggle1.md
@@ -0,0 +1,19 @@
+---
+order: 1
+type: sample
+zh_CN: 三种类型的开关
+en_US: Toggle
+editUrl: $BASE/docs/pages/toggle/md/toggle1.md
+---
+
++++ zh_CN
+这里Tabs
组件由三部分组成Tabs
、Tabs.Items
、 Tabs.Panels
。
+ 您需要给每个TabItem指定一个唯一的值,同时
+ 添加一个对应的TabPanel
。并且指定itemValue
值与TabItem
的值一致,这样当切换选项卡时,可以确保
+ 显示对应的TabPanel
。
+
++++ en_US
+Toggle
+
++++ SampleCode
+fileName: Toggle1
diff --git a/src/docs/pages/toggle/md/toggle2.md b/src/docs/pages/toggle/md/toggle2.md
new file mode 100644
index 00000000..f2187dfa
--- /dev/null
+++ b/src/docs/pages/toggle/md/toggle2.md
@@ -0,0 +1,17 @@
+---
+order: 1
+type: sample
+zh_CN: 设置Toggle的宽度
+en_US: Toggle
+editUrl: $BASE/docs/pages/toggle/md/toggle2.md
+---
+
++++ zh_CN
+要更改Toggle组件的宽度,你可以设置style属性,将width设置一个具体的值。你也可以只设置一个block属性
+ 让控件占据整行显示。
+
++++ en_US
+Toggle
+
++++ SampleCode
+fileName: Toggle2
diff --git a/src/docs/pages/toggle/md/toggle3.md b/src/docs/pages/toggle/md/toggle3.md
new file mode 100644
index 00000000..1d3f2a36
--- /dev/null
+++ b/src/docs/pages/toggle/md/toggle3.md
@@ -0,0 +1,18 @@
+---
+order: 3
+type: sample
+zh_CN: 在Toggle中显示图标或文字
+en_US: Toggle
+editUrl: $BASE/docs/pages/toggle/md/toggle3.md
+---
+
++++ zh_CN
+可以给Toggle添加简短的文字或图标, 在content属性中,on属性后对应开启状态的显示;off属性对应关闭
+ 状态时的显示。on和off可以设置成字符串、文字或react对象。另外,通过showInBar属性,你可以控制文字或图标的显示位置。
+
+
++++ en_US
+Toggle
+
++++ SampleCode
+fileName: Toggle3
diff --git a/src/docs/pages/toggle/md/toggle4.md b/src/docs/pages/toggle/md/toggle4.md
new file mode 100644
index 00000000..ebafb949
--- /dev/null
+++ b/src/docs/pages/toggle/md/toggle4.md
@@ -0,0 +1,16 @@
+---
+order: 4
+type: sample
+zh_CN: 禁用Toggle
+en_US: Toggle
+editUrl: $BASE/docs/pages/toggle/md/toggle4.md
+---
+
++++ zh_CN
+将disabled设置为true后,将禁用对应的Toggle。
+
++++ en_US
+Toggle
+
++++ SampleCode
+fileName: Toggle4
diff --git a/src/docs/pages/tooltip/TooltipIndex.js b/src/docs/pages/tooltip/TooltipIndex.js
index 44601f4d..22c638c6 100755
--- a/src/docs/pages/tooltip/TooltipIndex.js
+++ b/src/docs/pages/tooltip/TooltipIndex.js
@@ -1,19 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Tooltip1 from './Tooltip1';
-import Tooltip2 from './Tooltip2';
-import Tooltip3 from './Tooltip3';
+import DocPage2 from '../../utils/DocPage2';
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
-const componentMapping = {
- Tooltip1: ,
- Tooltip2: ,
- Tooltip3: ,
-};
-
-export default function TooltipIndex(props) {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+export default function TooltipIndex() {
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/tooltip/doc.md b/src/docs/pages/tooltip/doc.md
deleted file mode 100755
index d2858427..00000000
--- a/src/docs/pages/tooltip/doc.md
+++ /dev/null
@@ -1,196 +0,0 @@
------------ Title ------------
-[TITLE_BEGIN_zh_CN]
-## 提示 Tooltip
-Tooltip通常用于弹出展示一段提示文字。与Popover不同的是,它常用于显示一段较短的文字。
-你可以在Tooltip的body中放置一段文字,当然也可以在其中放入一系列的控件。**但有一点需要注意的是,Tooltip的children只能有一个子节点对象**。
-[TITLE_END_zh_CN]
-
-
-[TITLE_BEGIN_en_US]
-[TITLE_END_en_US]
-
-------------- Footer ---------------------
-[FOOTER_BEGIN_zh_CN]
-[FOOTER_END_zh_CN]
-
-[FOOTER_BEGIN_en_US]
-[FOOTER_END_en_US]
-
-------------- Samples ---------------------
-[Tooltip1_BEGIN_zh_CN]
-### 示例1: 最简单的Tooltip
-
- 提示
-
- 一个最简单的Tooltip示例,Tooltip默认情况下在上方显示。可在body中放置需要显示的内容, 然后确保Tooltip包裹一个其他的控件即可。
-
-
-
-
-```jsx
-import React from 'react';
-import {Tooltip, Button} from 'react-windy-ui';
-
-export default function Tooltip1() {
-
- return <>This is a tooltip}>
- Top
-
-
- A tooltip}>
- Info
-
- >;
-}
-```
-
-[Tooltip1_END_zh_CN]
-
-[Tooltip1_BEGIN_en_US]
-[Tooltip1_END_en_US]
-----------------------------------
-
-[Tooltip2_BEGIN_zh_CN]
-### 示例2: 显示的位置
-
- 提示
-
- Dropdown可在十二个方位显示,可相应地设置position属性为以下值: Top方位: 'topLeft'、'top'、'topRight';
- Bottom方位: 'bottomLeft'、'bottom'、'bottomRight'; Left方位: 'leftTop'、'left'、'leftBottom';
- Right方位: 'rightTop'、'right'、'rightBottom'。
-
-
-
-
-```jsx
-import React from 'react';
-import {Button, Tooltip} from 'react-windy-ui';
-
-const createTooltip = (text, position) => {
- const body =
- I wanna show you what the tooltip component looks like and then you
- can consider if you can rely on it to represent a good page for your
- customers.
-
;
- return
-
- {text}
-
- ;
-};
-
-export default function Tooltip2() {
-
- return <>
-
-
-
-
-
-
- {createTooltip('TL', 'topLeft')}
- {createTooltip('T', 'top')}
- {createTooltip('TR', 'topRight')}
-
-
-
-
-
-
- {createTooltip('LT', 'leftTop')}
- {createTooltip('L', 'left')}
- {createTooltip('LB', 'leftBottom')}
-
-
-
-
-
- {createTooltip('RT', 'rightTop')}
- {createTooltip('R', 'right')}
- {createTooltip('RB', 'rightBottom')}
-
-
-
-
-
-
- {createTooltip('BL', 'bottomLeft')}
- {createTooltip('B', 'bottom')}
- {createTooltip('BR', 'bottomRight')}
-
-
-
-
-
-
- >;
-
-}
-```
-
-[Tooltip2_END_zh_CN]
-
-[Tooltip2_BEGIN_en_US]
-[Tooltip2_END_en_US]
-----------------------------------
-
-[Tooltip3_BEGIN_zh_CN]
-### 示例3: 显示的位置
-
- 提示
-
- 在这个示例中,一旦Lock开关打开后Tooltip将无法自动关闭或打开。这里就是将active和onChange函数一起使用后达到的效果。
- Tooltip也有defaultActive和active两个属性, 用来控制显示和关闭。 defaultActive属性值为true后,控件初始状态下显示Tooltip。但不影响后续的关闭和显示。
- defaultActive属性设置的是初始状态,可以后续被改变。但active属性与之则不同,当设置active属性后,Tooltip将不能被自动显示、关闭,
- 此时会触发onChange调用,您需要在onChange中切换选中状态。另外,active与onChange方法需要同时提供,以便一起完成状态的切换过程。
-
-
-
-
-```jsx
-import React, {useState} from 'react';
-import {Tooltip, Button, Toggle} from 'react-windy-ui';
-
-export default function Tooltip3() {
- const [active, setActive] = useState(true);
- const [locked, setLocked] = useState(true);
-
- return <>
-
- {
- setActive(true);
- setLocked(val);
- }} content={{on: 'Lock', off: 'Lock'}}/>
-
- This is a tooltip}>
- Default Active
-
-
- {
- console.log(`Please change active state to ${val}`);
- !locked && setActive(val);
- }}
- body={A tooltip }>
-
- Info
-
-
-
- >;
-}
-```
-
-[Tooltip3_END_zh_CN]
-
-[Tooltip3_BEGIN_en_US]
-[Tooltip3_END_en_US]
\ No newline at end of file
diff --git a/src/docs/pages/tooltip/md/api.md b/src/docs/pages/tooltip/md/api.md
new file mode 100644
index 00000000..85c75afc
--- /dev/null
+++ b/src/docs/pages/tooltip/md/api.md
@@ -0,0 +1,14 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/tooltip/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/tooltip/md/title.md b/src/docs/pages/tooltip/md/title.md
new file mode 100644
index 00000000..f646de75
--- /dev/null
+++ b/src/docs/pages/tooltip/md/title.md
@@ -0,0 +1,17 @@
+---
+ order: 0
+ type: text
+ zh_CN: 提示 Tooltip
+ en_US: Tooltip
+ editUrl: $BASE/docs/pages/tooltip/md/title.md
+---
+
++++ zh_CN
+## 提示 Tooltip [editUrl]
+Tooltip通常用于弹出展示一段提示文字。与Popover不同的是,它常用于显示一段较短的文字。
+你可以在Tooltip的body中放置一段文字,当然也可以在其中放入一系列的控件。**但有一点需要注意的是,Tooltip的children只能有一个子节点对象**。
+
+
++++ en_US
+## Tooltip [editUrl]
+
diff --git a/src/docs/pages/tooltip/md/tooltip1.md b/src/docs/pages/tooltip/md/tooltip1.md
new file mode 100644
index 00000000..dec8e1a4
--- /dev/null
+++ b/src/docs/pages/tooltip/md/tooltip1.md
@@ -0,0 +1,17 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: tooltip
+editUrl: $BASE/docs/pages/tooltip/md/tooltip1.md
+---
+
++++ zh_CN
+一个最简单的Tooltip示例,Tooltip默认情况下在上方显示。可在body中放置需要显示的内容, 然后确保Tooltip包裹一个其他的控件即可。
+
+
++++ en_US
+tooltip
+
++++ SampleCode
+fileName: Tooltip1
diff --git a/src/docs/pages/tooltip/md/tooltip2.md b/src/docs/pages/tooltip/md/tooltip2.md
new file mode 100644
index 00000000..6c6e7e0e
--- /dev/null
+++ b/src/docs/pages/tooltip/md/tooltip2.md
@@ -0,0 +1,18 @@
+---
+order: 2
+type: sample
+zh_CN: 显示的位置
+en_US: tooltip
+editUrl: $BASE/docs/pages/tooltip/md/tooltip2.md
+---
+
++++ zh_CN
+Dropdown可在十二个方位显示,可相应地设置position属性为以下值: Top方位: 'topLeft'、'top'、'topRight';
+Bottom方位: 'bottomLeft'、'bottom'、'bottomRight'; Left方位: 'leftTop'、'left'、'leftBottom';
+Right方位: 'rightTop'、'right'、'rightBottom'。
+
++++ en_US
+tooltip
+
++++ SampleCode
+fileName: Tooltip2
diff --git a/src/docs/pages/tooltip/md/tooltip3.md b/src/docs/pages/tooltip/md/tooltip3.md
new file mode 100644
index 00000000..a6b50630
--- /dev/null
+++ b/src/docs/pages/tooltip/md/tooltip3.md
@@ -0,0 +1,20 @@
+---
+order: 3
+type: sample
+zh_CN: 显示的位置
+en_US: tooltip
+editUrl: $BASE/docs/pages/tooltip/md/tooltip3.md
+---
+
++++ zh_CN
+在这个示例中,一旦Lock开关打开后Tooltip将无法自动关闭或打开。这里就是将active和onChange函数一起使用后达到的效果。
+Tooltip也有defaultActive和active两个属性, 用来控制显示和关闭。 defaultActive属性值为true后,控件初始状态下显示Tooltip。但不影响后续的关闭和显示。
+defaultActive属性设置的是初始状态,可以后续被改变。但active属性与之则不同,当设置active属性后,Tooltip将不能被自动显示、关闭,
+此时会触发onChange调用,您需要在onChange中切换选中状态。另外,active与onChange方法需要同时提供,以便一起完成状态的切换过程。
+
+
++++ en_US
+tooltip
+
++++ SampleCode
+fileName: Tooltip3
diff --git a/src/docs/pages/tooltip/Tooltip1.js b/src/docs/pages/tooltip/samples/Tooltip1.js
similarity index 100%
rename from src/docs/pages/tooltip/Tooltip1.js
rename to src/docs/pages/tooltip/samples/Tooltip1.js
diff --git a/src/docs/pages/tooltip/Tooltip2.js b/src/docs/pages/tooltip/samples/Tooltip2.js
similarity index 100%
rename from src/docs/pages/tooltip/Tooltip2.js
rename to src/docs/pages/tooltip/samples/Tooltip2.js
diff --git a/src/docs/pages/tooltip/Tooltip3.js b/src/docs/pages/tooltip/samples/Tooltip3.js
similarity index 100%
rename from src/docs/pages/tooltip/Tooltip3.js
rename to src/docs/pages/tooltip/samples/Tooltip3.js
diff --git a/src/docs/pages/tree/TreeIndex.js b/src/docs/pages/tree/TreeIndex.js
index 663690fd..d0be3c74 100755
--- a/src/docs/pages/tree/TreeIndex.js
+++ b/src/docs/pages/tree/TreeIndex.js
@@ -1,30 +1,13 @@
import React from 'react';
-import DocPage from '../../utils/DocPage';
-import Tree1 from './samples/Tree1';
-import Tree2 from './samples/Tree2';
-import Tree3 from './samples/Tree3';
-import Tree4 from './samples/Tree4';
-import Tree5 from './samples/Tree5';
-import Tree6 from './samples/Tree6';
-import Tree7 from './samples/Tree7';
-import Tree8 from './samples/Tree8';
-import Tree9 from './samples/Tree9';
+import DocPage2 from '../../utils/DocPage2';
-const componentMapping = {
- Tree1: ,
- Tree2: ,
- Tree3: ,
- Tree4: ,
- Tree5: ,
- Tree6: ,
- Tree7: ,
- Tree8: ,
- Tree9: ,
-};
+const requireMd = require.context('!raw-loader!./md', false, /.md$/);
+const requireCode = require.context('!raw-loader!./samples', false, /.js$/);
+const requireJs = require.context('./samples', false, /.js$/);
export default function TreeIndex() {
- return import('./doc.md')}
- componentMapping={componentMapping}
- />;
+ return ;
}
\ No newline at end of file
diff --git a/src/docs/pages/tree/md/api.md b/src/docs/pages/tree/md/api.md
new file mode 100644
index 00000000..14d27f7f
--- /dev/null
+++ b/src/docs/pages/tree/md/api.md
@@ -0,0 +1,55 @@
+---
+ order: 100
+ type: text
+ zh_CN: API
+ en_US: API
+ editUrl: $BASE/docs/pages/tree/md/api.md
+---
+
++++ zh_CN
+## API [editUrl]
+
+* Tree
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | tree | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| showLoading | 是否显示加载中状态 | boolean | true | |
+| loader | 默认的Loader组件 | react node | Loader | |
+| loadJsonData | 加载JSON数据的方法 | function | - | |
+| jsonData | 用于生成Tree的JSON数据 | object | - | |
+| autoCheckLeafs | 勾选父节点是否自动将所有子节点勾选 | boolean | true | |
+| multiSelect | 是否可以选中多个TreeItem | boolean | false | |
+| onlySelectLeaf | 是否只可以选中叶子节点 | boolean | true | 当true时,点击父节点只控制树的展开/折叠 |
+| checkable | 是否可以勾选节点 | boolean | false | |
+| defaultExpandedItems | 默认展开的节点 | Array(string) | [] | |
+| expandedItems | 当前展开的节点 | Array(string) | - | 一旦设置必须通过onExpand方法去自行控制数组中的值 |
+| defaultSelectedItems | 默认选中的节点 | Array(string) | [] | |
+| selectedItems | 当前选中的节点 | Array(string) | - | 一旦设置必须通过onSelect方法去自行控制数组中的值 |
+| defaultCheckedItems | 默认勾选的节点 | Array(string) | [] | |
+| checkedItems | 当前勾选的节点 | Array(string) | - | 一旦设置必须通过onCheck方法去自行控制数组中的值 |
+| highlightLine | 是否高亮显示整个TreeItem所在的行 | boolean | false | |
+| onSelect | 当点击选中某个TreeItem触发的回调函数 | function | - | |
+| onCheck | 当勾选中某个TreeItem触发的回调函数 | function | - | |
+| onExpand | 当展开某个TreeItem触发的回调函数 | function | - | |
+
+
+* TreeItem
的属性如下所示:
+
+| 属性 | 名称 | 类型 | 默认值 | 描述 |
+| --- | --- | --- | --- | --- |
+| ref | Input Dom对象的引用 | function \| ref | - | 当需要获取dom对象时可设置此属性 |
+| className | 样式名称 | string | tree-item | |
+| extraClassName | 额外添加的样式名称 | string | - | |
+| label | TreeItem中显示的内容 | react node | - | |
+| icon | TreeItem中左侧显示的Icon | react node | - | |
+| moreElements | TreeItem中在右侧显示的Icon | Array(react node) | - | |
+
+
+
+
++++ en_US
+## API [editUrl]
+
diff --git a/src/docs/pages/tree/md/title.md b/src/docs/pages/tree/md/title.md
new file mode 100644
index 00000000..3164456a
--- /dev/null
+++ b/src/docs/pages/tree/md/title.md
@@ -0,0 +1,18 @@
+---
+ order: 0
+ type: text
+ zh_CN: 树控件 Tree
+ en_US: Tree
+ editUrl: $BASE/docs/pages/tree/md/title.md
+---
+
++++ zh_CN
+## 树控件 Tree [editUrl]
+树控件常用来展示具有层级关系的内容,例如文件夹、部门关系、区域等。同时可以折叠、展开一个树节点。
+
+* 可单选或多选树的节点
+* 支持读取JSON数据并渲染成一棵树
+
++++ en_US
+## Tree [editUrl]
+
diff --git a/src/docs/pages/tree/md/tree1.md b/src/docs/pages/tree/md/tree1.md
new file mode 100644
index 00000000..f1eb584b
--- /dev/null
+++ b/src/docs/pages/tree/md/tree1.md
@@ -0,0 +1,19 @@
+---
+order: 1
+type: sample
+zh_CN: 简单示例
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree1.md
+---
+
++++ zh_CN
+一个简单的Tree示例,定义Tree
为根节点,并且由一系列具有层级关系的Item
组成。
+ 默认情况下,只允许选中一个叶子节点,您可以实现onSelect
回调函数去处理选中事件。需要提醒的是,
+ 您需要给每个TreeItem
指定一个id
, 并且这个id
在整个Tree中保证唯一。
+
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree1
diff --git a/src/docs/pages/tree/md/tree2.md b/src/docs/pages/tree/md/tree2.md
new file mode 100644
index 00000000..66703ab5
--- /dev/null
+++ b/src/docs/pages/tree/md/tree2.md
@@ -0,0 +1,18 @@
+---
+order: 2
+type: sample
+zh_CN: Tree的其他设置
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree2.md
+---
+
++++ zh_CN
+默认情况下,只有叶子节点可以点击,目录节点点击后只会触发子树的折叠和展示。如果需要目录节点也能点击,可以将onlySelectLeaf
+ 设置为false
。当点击叶子节点后,只会在文字处显示背景色。如果需要整行显示选中的背景色,可以将highlightLine
+ 设置为true
。
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree2
diff --git a/src/docs/pages/tree/md/tree3.md b/src/docs/pages/tree/md/tree3.md
new file mode 100644
index 00000000..a8a5fa74
--- /dev/null
+++ b/src/docs/pages/tree/md/tree3.md
@@ -0,0 +1,17 @@
+---
+order: 3
+type: sample
+zh_CN: 可选中的Tree
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree3.md
+---
+
++++ zh_CN
+当将checkable
设置为true
后, 可以选中Tree的节点。并在onCheck
回调函数中处理
+选中的TreeItem
。
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree3
diff --git a/src/docs/pages/tree/md/tree4.md b/src/docs/pages/tree/md/tree4.md
new file mode 100644
index 00000000..f5fc2ab8
--- /dev/null
+++ b/src/docs/pages/tree/md/tree4.md
@@ -0,0 +1,17 @@
+---
+order: 4
+type: sample
+zh_CN: Tree的多选
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree4.md
+---
+
++++ zh_CN
+当将multiSelect
设置为true
后, 可以点击并选中多个TreeItem
。
+
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree4
diff --git a/src/docs/pages/tree/md/tree5.md b/src/docs/pages/tree/md/tree5.md
new file mode 100644
index 00000000..9faaaf0a
--- /dev/null
+++ b/src/docs/pages/tree/md/tree5.md
@@ -0,0 +1,16 @@
+---
+order: 5
+type: sample
+zh_CN: 使用JSON数据生成Tree
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree5.md
+---
+
++++ zh_CN
+可以通过jsonData
属性,使用JSON数据生成一颗完整的树。
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree5
diff --git a/src/docs/pages/tree/md/tree6.md b/src/docs/pages/tree/md/tree6.md
new file mode 100644
index 00000000..6cc96572
--- /dev/null
+++ b/src/docs/pages/tree/md/tree6.md
@@ -0,0 +1,18 @@
+---
+order: 6
+type: sample
+zh_CN: 异步读取JSON数据生成Tree
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree6.md
+---
+
++++ zh_CN
+可以通过jsonData
属性,使用JSON数据生成一颗完整的树。如果需要异步读取这段JSON数据,则可以提供一个loadJsonData
+方法,然后从远程读取数据,并返回一个Promise对象。 这里需要注意的是,需要在TreeItem
的JSON数据中设置一个isLeaf
属性。
+如果isLeaf
为false
时,点击该节点会继续触发异步加载。
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree6
diff --git a/src/docs/pages/tree/md/tree7.md b/src/docs/pages/tree/md/tree7.md
new file mode 100644
index 00000000..742dfe0b
--- /dev/null
+++ b/src/docs/pages/tree/md/tree7.md
@@ -0,0 +1,17 @@
+---
+order: 7
+type: sample
+zh_CN: 添加Icon图标
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree7.md
+---
+
++++ zh_CN
+如果需要在TreeItem
左侧添加Icon,可以设置icon
属性。如果需要在右侧添加多个Icon,则可以
+设置moreItems
属性,在其中添加多个Icon图标即可。
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree7
diff --git a/src/docs/pages/tree/md/tree8.md b/src/docs/pages/tree/md/tree8.md
new file mode 100644
index 00000000..ba1314a3
--- /dev/null
+++ b/src/docs/pages/tree/md/tree8.md
@@ -0,0 +1,17 @@
+---
+order: 8
+type: sample
+zh_CN: 默认展开节点
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree8.md
+---
+
++++ zh_CN
+在defaultExpandedItems
数组中添加需要展开的节点id, 可以在首次加载后展开对应的节点。
+这个属性只控制初始显示,即第一次显示时使用,当后续在界面点击时可再次展开或折叠对应的子树。
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree8
diff --git a/src/docs/pages/tree/md/tree9.md b/src/docs/pages/tree/md/tree9.md
new file mode 100644
index 00000000..a5897fe8
--- /dev/null
+++ b/src/docs/pages/tree/md/tree9.md
@@ -0,0 +1,27 @@
+---
+order: 9
+type: sample
+zh_CN: 默认展开节点
+en_US: Sample
+editUrl: $BASE/docs/pages/tree/md/tree9.md
+---
+
++++ zh_CN
+ 对于defaultExpandedItems
属性,其只控制初始显示,即第一次显示时使用,当后续在界面点击时可再次展开或折叠对应的子树。
+ 而expandedItems
则有些特殊,一旦设置该属性后,控件内部无法自行展开或折叠。要想切换状态必须提供一个onExpand
+ 回调函数,并自行控制需要展开的TreeItem
。
+
+
+ 另外以下这些属性也有与expand相似的行为:
+
+ defaultSelectedItems
、selectedItems
、onSelect
+ defaultCheckedItems
、checkedItems
、onCheck
+
+
+
+
++++ en_US
+Tree
+
++++ SampleCode
+fileName: Tree9
diff --git a/src/docs/style/doc.scss b/src/docs/style/doc.scss
index ec283f16..49302b37 100755
--- a/src/docs/style/doc.scss
+++ b/src/docs/style/doc.scss
@@ -132,63 +132,61 @@ body {
&.home {
width: 100%;
background: radial-gradient(circle at left top,
- rgba(99, 65, 249, 0.9) 15%,
- rgba(10, 95, 248, 0.9) 50%,
- rgba(33, 180, 212, 0.9) 85%);
+ rgba(99, 65, 249, 0.9) 15%,
+ rgba(10, 95, 248, 0.9) 50%,
+ rgba(33, 180, 212, 0.9) 85%);
background-size: cover;
}
&.markdown {
margin-bottom: 2rem;
- &.footer {
- table {
- overflow: auto;
- display: block; //to make overflow take effects
- width: 100%;
- border-collapse: collapse;
- border-spacing: 0;
- border: 1px solid #ccc;
- table-layout: fixed;
- margin-bottom: 1rem;
- //font-size: .8em;
- border-left-width: 0;
- border-right-width: 0;
- font-size: .9em;
-
- th {
- white-space: nowrap;
- text-align: left;
- padding: 0.5rem;
- color: #6c757d;
- font-weight: 700;
- background-color: #f5f5f5;
-
- border: 0 solid #ccc;
- border-bottom-width: 1px;
-
- &:nth-of-type(1) {
- width: 10rem;
- }
-
- &:nth-of-type(3) {
- width: 8rem;
- }
-
- &:nth-of-type(4) {
- width: 5rem;
- }
+ table {
+ overflow: auto;
+ display: block; //to make overflow take effects
+ width: 100%;
+ border-collapse: collapse;
+ border-spacing: 0;
+ border: 1px solid #ccc;
+ table-layout: fixed;
+ margin-bottom: 1rem;
+ //font-size: .8em;
+ border-left-width: 0;
+ border-right-width: 0;
+ font-size: .9em;
+
+ th {
+ white-space: nowrap;
+ text-align: left;
+ padding: 0.5rem;
+ color: #6c757d;
+ font-weight: 700;
+ background-color: #f5f5f5;
+
+ border: 0 solid #ccc;
+ border-bottom-width: 1px;
+
+ &:nth-of-type(1) {
+ width: 10rem;
+ }
+
+ &:nth-of-type(3) {
+ width: 8rem;
}
- td {
- text-align: left;
- padding: 0.5rem;
- border: 0 solid #ccc;
- border-bottom-width: 1px;
+ &:nth-of-type(4) {
+ width: 5rem;
+ }
+ }
+
+ td {
+ text-align: left;
+ padding: 0.5rem;
+ border: 0 solid #ccc;
+ border-bottom-width: 1px;
- &:nth-of-type(1) {
- font-weight: 500;
- }
+ &:nth-of-type(1) {
+ font-weight: 500;
}
}
}
@@ -286,7 +284,7 @@ body {
padding: 1rem;
.menu-item {
- padding: .15rem 1.5rem;
+ padding: .15rem .5rem;
}
}
@@ -306,6 +304,15 @@ body {
margin-left: .5rem;
}
}
+
+ &.selected-item {
+ color: #0ca0ff;
+ }
+
+ &.edit-btn{
+ font-size: 1em;
+ color: gray;
+ }
}
diff --git a/src/docs/utils/DocPage.js b/src/docs/utils/DocPage.js
index a14b6747..2d8e73ca 100755
--- a/src/docs/utils/DocPage.js
+++ b/src/docs/utils/DocPage.js
@@ -68,11 +68,6 @@ export default function DocPage(props) {
const Footer = markdown(
{text: contentMap.get(defaultFooter), markdownOptions: mdOptions});
- //make NavMenu update after the page is changed
- useLayoutEffect(() => {
- store.setState('updated');
- });
-
return <>
{Title &&
diff --git a/src/docs/utils/DocPage2.js b/src/docs/utils/DocPage2.js
new file mode 100755
index 00000000..13095368
--- /dev/null
+++ b/src/docs/utils/DocPage2.js
@@ -0,0 +1,127 @@
+import React, {
+ useCallback,
+ useContext,
+ useEffect,
+ useLayoutEffect,
+ useMemo,
+} from 'react';
+import {loadMdFiles} from './parseMd';
+import Code from './Code';
+import DemoDesc from './DemoDesc';
+import Hcode from './Hcode';
+import {isNil} from '../../components/src/Utils';
+import {compiler} from 'markdown-to-jsx';
+import SamplePanel from './SamplePanel';
+import {Blockquote, Button, IconEdit, StoreContext} from 'react-windy-ui';
+import {faEdit} from '@fortawesome/free-solid-svg-icons';
+import {getEditUrl, QuickManuContext} from './DocUtils';
+
+const Type = {
+ sample: 'sample',
+ text: 'text',
+};
+
+//convert the default component to customized component
+const defaultOptions = {
+ overrides: {
+ IconEdit: {component: IconEdit},
+ faEdit: {component: faEdit},
+ Button: {component: Button},
+ Code: {component: Code},
+ DemoDesc: {component: DemoDesc},
+ Blockquote: {component: Blockquote, props: {hasBox: true}},
+ Hcode: {component: Hcode},
+ },
+};
+
+export default function DocPage2(props) {
+ const {
+ requireMd,
+ requireJs,
+ requireCode,
+ markdownOptions,
+ } = props;
+ const {locale} = useContext(StoreContext);
+ const mdOpts = useMemo(() => {
+ let mdOptions = defaultOptions;
+ if (!isNil(markdownOptions) && !isNil(markdownOptions.overrides)) {
+ mdOptions = {overrides: {...markdownOptions.overrides, ...mdOptions.overrides}};
+ }
+ return mdOptions;
+ }, [markdownOptions]);
+
+ const result = useMemo(() => {
+ const parseResult = loadMdFiles(requireMd, requireJs, requireCode);
+ if (!parseResult) {
+ return [];
+ }
+ return Object.keys(parseResult).sort((a, b) => {
+ const orderA = parseResult[a].title.order;
+ const orderB = parseResult[b].title.order;
+
+ if ((!orderA && !orderB) || (orderA && !orderB)) {
+ return -1;
+ }
+
+ if (!orderA && orderB) {
+ return 1;
+ }
+
+ if (!orderA) {
+ return false;
+ }
+ return parseFloat(orderA) - parseFloat(orderB);
+ }).map(key => ({key: key, data: parseResult[key]}));
+ }, [requireMd, requireJs, requireCode]);
+
+ //correct the real edit url
+ const updateEditUrl = useCallback((text, editUrl) => {
+ const content = text || '';
+ if (!editUrl) {
+ return content;
+ }
+ const realUrl = getEditUrl(editUrl);
+ const btn = ` `;
+ return content.replace('[editUrl]', btn);
+ }, []);
+
+ //update the QuickManu on right side
+ const ctx = useContext(QuickManuContext);
+ const {quickManuStore} = ctx;
+ useLayoutEffect(() => {
+ const menuList = [];
+ result.forEach(({key, data}) => {
+ const text = data.title[locale];
+ if (key && text) {
+ menuList.push({id: key, text});
+ }
+ });
+
+ setTimeout(() => quickManuStore.setState({list: menuList}), 500);
+ }, [locale, result, quickManuStore]);
+
+ return <>
+ {
+ result.map(comp => {
+ if (comp.data.title?.type === Type.text) {
+ return
+ {compiler(updateEditUrl(comp.data.content[locale],
+ comp.data.title.editUrl), mdOpts)}
+ ;
+ }
+
+ if (comp.data.title?.type === Type.sample) {
+ return ;
+ }
+ })
+ }
+ >;
+}
\ No newline at end of file
diff --git a/src/docs/utils/DocUtils.js b/src/docs/utils/DocUtils.js
new file mode 100644
index 00000000..c66b31b9
--- /dev/null
+++ b/src/docs/utils/DocUtils.js
@@ -0,0 +1,8 @@
+import React from 'react';
+
+export const QuickManuContext = React.createContext([]);
+
+export const getEditUrl = (editUrl) => {
+ return editUrl.replace('$BASE',
+ 'https://github.com/jeven2016/react-windy-ui/tree/0.4/src');
+};
\ No newline at end of file
diff --git a/src/docs/utils/Hcode.js b/src/docs/utils/Hcode.js
index a6fda988..a2af3d04 100755
--- a/src/docs/utils/Hcode.js
+++ b/src/docs/utils/Hcode.js
@@ -24,7 +24,7 @@ const Hcode = React.forwardRef((props, ref) => {
ref={ref}
customStyle={{fontSize: '.8rem', ...style}}
language="jsx"
- showLineNumbers={true}
+ showLineNumbers={false}
startingLineNumber={1}
style={inline ? sty2 : sty}
wrapLines={false}
diff --git a/src/docs/utils/SamplePanel.js b/src/docs/utils/SamplePanel.js
index 85e2c004..44b88fcb 100755
--- a/src/docs/utils/SamplePanel.js
+++ b/src/docs/utils/SamplePanel.js
@@ -5,14 +5,16 @@ import {
Col,
Collapse,
Divider,
+ IconEdit,
Row,
Tooltip,
} from 'react-windy-ui';
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
-import {faCode, faCopy, faEdit} from '@fortawesome/free-solid-svg-icons';
+import {faCode, faCopy} from '@fortawesome/free-solid-svg-icons';
import markdown from './Markdown';
import Hcode from './Hcode';
import SandboxButton from './SandboxButton';
+import {getEditUrl} from './DocUtils';
/**
* With markdownOptions , you can directly load a react component in markdwon file
@@ -34,15 +36,17 @@ import SandboxButton from './SandboxButton';
* @constructor
*/
export default function SamplePanel(props) {
- const {id, title, comp, code, desc, markdownOptions} = props;
+ const {id, title, comp, code, desc, markdownOptions, editUrl} = props;
const [collapse, setCollapse] = useState(true);
//the component don't need to render for multiple times
const renderComp = useMemo(() => comp, [comp]);
-
const DescMarkDown = markdown({text: desc, markdownOptions});
const TitleMarkDwon = markdown({text: title, markdownOptions});
+ const realEditUrl = useMemo(() => editUrl && getEditUrl(editUrl),
+ [editUrl]);
+
return <>
@@ -50,10 +54,17 @@ export default function SamplePanel(props) {
-
-
+ {
+ realEditUrl &&
+
+
+
+
+
+
+ }
@@ -70,7 +81,7 @@ export default function SamplePanel(props) {
-
+
diff --git a/src/docs/utils/SandboxButton.js b/src/docs/utils/SandboxButton.js
index 1d2b326b..06587852 100644
--- a/src/docs/utils/SandboxButton.js
+++ b/src/docs/utils/SandboxButton.js
@@ -11,7 +11,7 @@ function addParam(form, name, value) {
form.appendChild(input);
}
-const runCode = () => {
+const runCode = (code) => {
const paramObject = {
files: {
...getPackage(),
@@ -22,21 +22,7 @@ const runCode = () => {
content: getHtml(),
},
'Sample.js': {
- content: `
-import React from 'react';
-import {Button} from 'react-windy-ui';
-
-const SampleBtn1 = () => {
- return <>
- Default
- Primary
- Secondary
- >;
-};
-
-export default SampleBtn1;
-
- `,
+ content: code,
},
},
};
@@ -61,7 +47,8 @@ export default function SandboxButton(props) {
const {
code,
} = props;
- return
+ return code && runCode(code)}>
value == null || /^\s*$/.test(value);
+
+/**
+ * {
+ * sample1: {
+ * title:{
+ * title: xxx,
+ * zh_CN: xxx,
+ * en_US: xxx
+ * },
+ * content: {
+ * zh_CN: xxx,
+ * en_US: xxx
+ * }
+ * code: sourceCode,
+ * component: function(){}
+ * }
+ * }
+ */
+export const parseHeader = (markdownContent) => {
+ let titleHeader = markdownContent.match(headerReg);
+ const result = {title: {}};
+
+ if (titleHeader) {
+ const params = titleHeader[1].trim();
+ const headers = result.title;
+ let regMt;
+
+ // eslint-disable-next-line no-cond-assign
+ while ((regMt = paramReg.exec(params)) !== null) {
+ const name = regMt[1].trim();
+ if (isBlank(name)) {
+ return;
+ }
+ const value = regMt[2].replace(/(.*)/, '$1');
+ headers[name] = value.replace(/^'|'$/g, '').trim();
+ }
+
+ /* if (result.title?.type === 'text') {
+ result.title = {
+ order: result.title.order,
+ type: 'text',
+ editUrl: result.title.editUrl,
+ };
+ }*/
+ }
+ return result;
+};
+
+export const parseContent = (markdownContent, beginIndex = 0, result = {}) => {
+ let prefixIndex = markdownContent.indexOf('+++', beginIndex);
+ if (prefixIndex < 0) {
+ return result;
+ }
+
+ let nextPrefixIndex = markdownContent.indexOf('+++', prefixIndex + 5);
+ let text;
+ let end = false;
+ if (nextPrefixIndex > -1) {
+ text = markdownContent.substring(prefixIndex, nextPrefixIndex);
+ } else {
+ text = markdownContent.substring(prefixIndex);
+ end = true;
+ }
+ const regMt = /\+{3}([^\n\r]*)[\n\r]([\s\S]*)/g.exec(text);
+ if (regMt) {
+ const locale = regMt[1].trim();
+ result[locale] = regMt[2].trim();
+ }
+ if (!end) {
+ parseContent(markdownContent, nextPrefixIndex, result);
+ }
+};
+
+export const parseCode = (markdownContent) => {
+ let regMt;
+ if ((regMt = codeReg.exec(markdownContent)) !== null) {
+ return regMt[1].trim();
+ }
+ return null;
+};
+
+const getPureName = (filename) => {
+ return filename.substring(filename.lastIndexOf('/') + 1);
+};
+
+export const loadMdFiles = (requireMd, requireSamples, requireCode) => {
+ const config = {};
+
+ const sourceCode = {};
+ requireCode.keys().forEach((filename) => {
+ const content = requireCode(filename);
+ let pureName = getPureName(filename);
+ if (isBlank(pureName)) {
+ return;
+ }
+ pureName = pureName.replace(/\.(jsx|js)/ig, '');
+ sourceCode[pureName] = content.default;
+ });
+
+ requireMd.keys().forEach((filename) => {
+ const content = requireMd(filename).default;
+ let pureName = getPureName(filename);
+ if (isBlank(pureName)) {
+ return;
+ }
+ pureName = pureName.replace(/\.md/g, '');
+ const title = parseHeader(content);
+ const body = {};
+
+ parseContent(content, 0, body);
+
+ //parse the code part
+ let code = body?.SampleCode;
+ let codeFileName;
+ if (code) {
+ if (/`{3}/.test(code)) {
+ code = code.replace(/`{3}(jsx|js)?/ig, '');
+ } else {
+ const values = code.split(':');
+ if (values && values.length >= 2) {
+ codeFileName = values[1].trim();
+ code = sourceCode[codeFileName];
+ }
+ }
+ delete body.SampleCode;
+ }
+
+ config[pureName] = {
+ ...title,
+ content: body,
+ code: code,
+ codeFileName,
+ };
+ });
+
+ requireSamples.keys().forEach(jsFileName => {
+ const Comp = requireSamples(jsFileName).default;
+ let pureName = getPureName(jsFileName);
+ if (isBlank(pureName)) {
+ return;
+ }
+ pureName = pureName.replace(/\.js|\.jsx/g, '');
+
+ let found = false;
+ Object.keys(config).forEach(key => {
+ if (found) {
+ return;
+ }
+ if (key.toLowerCase() === pureName.toLowerCase() ||
+ pureName === config[key].codeFileName) {
+ config[key].component = ;
+ found = true;
+ }
+ });
+ });
+
+ //generate a component base on the code
+ Object.keys(config).forEach(key => {
+ const definition = config[key];
+ if (definition.title?.type === 'sample') {
+ if (!definition.component && definition.code) {
+ definition.component = definition.code;
+ }
+ }
+ });
+
+ return config;
+};
\ No newline at end of file