diff --git a/components/_util/transButton.jsx b/components/_util/transButton.jsx new file mode 100644 index 000000000..29b3cc9a3 --- /dev/null +++ b/components/_util/transButton.jsx @@ -0,0 +1,81 @@ +/** + * Wrap of sub component which need use as Button capacity (like Icon component). + * This helps accessibility reader to tread as a interactive button to operation. + */ +import KeyCode from './KeyCode'; +import PropTypes from './vue-types'; + +const inlineStyle = { + border: 0, + background: 'transparent', + padding: 0, + lineHeight: 'inherit', + display: 'inline-block', +}; + +const TransButton = { + props: { + noStyle: PropTypes.bool, + }, + + methods: { + onKeyDown(event) { + const { keyCode } = event; + if (keyCode === KeyCode.ENTER) { + event.preventDefault(); + } + }, + + onKeyUp(event) { + const { keyCode } = event; + if (keyCode === KeyCode.ENTER) { + this.$emit('click', event); + } + }, + + setRef(btn) { + this.div = btn; + }, + + focus() { + if (this.div) { + this.div.focus(); + } + }, + + blur() { + if (this.div) { + this.div.blur(); + } + }, + }, + + render() { + const { noStyle } = this.$props; + + return ( +
+ {this.$slots.default} +
+ ); + }, +}; + +export default TransButton; diff --git a/components/breadcrumb/Breadcrumb.jsx b/components/breadcrumb/Breadcrumb.jsx index 1d970e010..82af7120b 100644 --- a/components/breadcrumb/Breadcrumb.jsx +++ b/components/breadcrumb/Breadcrumb.jsx @@ -65,7 +65,7 @@ export default { } return ( - {itemRender({ route, params, routes, paths })} + {itemRender({ route, params, routes, paths, h })} ); }); diff --git a/components/breadcrumb/index.en-US.md b/components/breadcrumb/index.en-US.md index c2ec6dd1c..62953638f 100644 --- a/components/breadcrumb/index.en-US.md +++ b/components/breadcrumb/index.en-US.md @@ -2,7 +2,7 @@ | Property | Description | Type | Optional | Default | | --- | --- | --- | --- | --- | -| itemRender | Custom item renderer, slot="itemRender" and slot-scope="{route, params, routes, paths}" | ({route, params, routes, paths}) => vNode | | - | +| itemRender | Custom item renderer, slot="itemRender" and slot-scope="{route, params, routes, paths}" | ({route, params, routes, paths, h}) => vNode | | - | | params | Routing parameters | object | | - | | routes | The routing stack information of router | object\[] | | - | | separator | Custom separator | string\|slot | | `/` | diff --git a/components/breadcrumb/index.zh-CN.md b/components/breadcrumb/index.zh-CN.md index 9b0c49d92..09c7c7cd2 100644 --- a/components/breadcrumb/index.zh-CN.md +++ b/components/breadcrumb/index.zh-CN.md @@ -2,7 +2,7 @@ | 参数 | 说明 | 类型 | 可选值 | 默认值 | | --- | --- | --- | --- | --- | -| itemRender | 自定义链接函数,和 vue-router 配置使用, 也可使用 slot="itemRender" 和 slot-scope="props" | ({route, params, routes, paths}) => vNode | | - | +| itemRender | 自定义链接函数,和 vue-router 配置使用, 也可使用 slot="itemRender" 和 slot-scope="props" | ({route, params, routes, paths, h}) => vNode | | - | | params | 路由的参数 | object | | - | | routes | router 的路由栈信息 | object\[] | | - | | separator | 分隔符自定义 | string\|slot | | '/' | diff --git a/components/index.js b/components/index.js index ce0b3e234..535379fce 100644 --- a/components/index.js +++ b/components/index.js @@ -140,6 +140,7 @@ import { default as Empty } from './empty'; import { default as Result } from './result'; import { default as Descriptions } from './descriptions'; +import { default as PageHeader } from './page-header'; const components = [ Base, @@ -201,6 +202,7 @@ const components = [ Empty, Result, Descriptions, + PageHeader, ]; const install = function(Vue) { @@ -287,6 +289,7 @@ export { Empty, Result, Descriptions, + PageHeader, }; export default { diff --git a/components/locale-provider/default.js b/components/locale-provider/default.js index 542196f36..c25bed7d0 100644 --- a/components/locale-provider/default.js +++ b/components/locale-provider/default.js @@ -47,4 +47,7 @@ export default { Icon: { icon: 'icon', }, + PageHeader: { + back: 'Back', + }, }; diff --git a/components/locale-provider/es_ES.js b/components/locale-provider/es_ES.js index fac439c6c..2c3b20284 100644 --- a/components/locale-provider/es_ES.js +++ b/components/locale-provider/es_ES.js @@ -39,4 +39,7 @@ export default { Empty: { description: 'No hay datos', }, + PageHeader: { + back: 'volver', + }, }; diff --git a/components/locale-provider/ru_RU.js b/components/locale-provider/ru_RU.js index a16b5b344..c371757b9 100644 --- a/components/locale-provider/ru_RU.js +++ b/components/locale-provider/ru_RU.js @@ -39,4 +39,7 @@ export default { Empty: { description: 'Нет данных', }, + PageHeader: { + back: 'назад', + }, }; diff --git a/components/locale-provider/zh_CN.js b/components/locale-provider/zh_CN.js index e4e03c0d3..5fc814062 100644 --- a/components/locale-provider/zh_CN.js +++ b/components/locale-provider/zh_CN.js @@ -47,4 +47,7 @@ export default { Icon: { icon: '图标', }, + PageHeader: { + back: '返回', + }, }; diff --git a/components/locale-provider/zh_TW.js b/components/locale-provider/zh_TW.js index 0aa553436..cdb1b4728 100644 --- a/components/locale-provider/zh_TW.js +++ b/components/locale-provider/zh_TW.js @@ -39,4 +39,7 @@ export default { Empty: { description: '無此資料', }, + PageHeader: { + back: '返回', + }, }; diff --git a/components/page-header/__tests__/__snapshots__/demo.test.js.snap b/components/page-header/__tests__/__snapshots__/demo.test.js.snap new file mode 100644 index 000000000..25128cc3c --- /dev/null +++ b/components/page-header/__tests__/__snapshots__/demo.test.js.snap @@ -0,0 +1,896 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders ./components/page-header/demo/actions.md correctly 1`] = ` +
+
+
+
+
+ + + +
+
+ + Title + + + This is a subtitle + + + + + + + + +
+
+ +
+
+ + + + + + + + + + + + +
+ + Created + + + Lili Qu + + + + Association + + + + 421421 + + + + + Creation Time + + + 2017-01-10 + +
+ + Effective Time + + + 2017-10-10 + + + + Remarks + + + + Gonghu Road, Xihu District, Hangzhou, Zhejiang, China + + +
+
+
+
+
+ +
+ +
+
+
+
+ + + +
+
+ + Title + + + This is a subtitle + + +
+ Running +
+
+ + + + + + + +
+
+ +
+
+
+ Status +
+
+ + Pending + +
+
+ +
+
+ Price +
+
+ + $ + + + + 568 + + + .08 + + +
+
+ +
+
+ Balance +
+
+ + $ + + + + 3,345 + + + .08 + + +
+
+
+
+
+
+`; + +exports[`renders ./components/page-header/demo/basic.md correctly 1`] = ` +
+
+
+
+ + + +
+
+ + Title + + + This is a subtitle + +
+
+`; + +exports[`renders ./components/page-header/demo/breadcrumb.md correctly 1`] = ` +
+
+ + + + First-level Menu + + + + / + + + + + + Second-level Menu + + + + / + + + + + + Third-level Menu + + + + / + + +
+
+ + Title + + + This is a subtitle + +
+
+`; + +exports[`renders ./components/page-header/demo/responsive.md correctly 1`] = ` +
+