Merge branch 'master' of github.com:ant-design/ant-design

This commit is contained in:
afc163 2019-09-04 11:09:13 +08:00
commit f4719ddf02
13 changed files with 66 additions and 36 deletions

View File

@ -1,6 +1,8 @@
name: Deploy website name: Deploy website
on: on:
release: release:
actions:
- published
branches: branches:
- master - master
jobs: jobs:

View File

@ -20,6 +20,8 @@ timeline: true
`2019-09-03` `2019-09-03`
- 🐞 Fix Upload can not upload more than one file when `multiple` is `false`. [#18626](https://github.com/ant-design/ant-design/pull/18626) - 🐞 Fix Upload can not upload more than one file when `multiple` is `false`. [#18626](https://github.com/ant-design/ant-design/pull/18626)
- 🐞 Fix MonthPicker switch handler overflow style. [#18624](https://github.com/ant-design/ant-design/pull/18624)
- 💄 Tree add `@tree-node-hover-bg` and `@tree-node-selected-bg` less variable. [#18593](https://github.com/ant-design/ant-design/pull/18593) [@MrHeer](https://github.com/MrHeer)
## 3.23.0 ## 3.23.0

View File

@ -20,6 +20,8 @@ timeline: true
`2019-09-03` `2019-09-03`
- 🐞 修复 Upload 在 `multiple``false` 时无法上传多于一个文件的问题。[#18626](https://github.com/ant-design/ant-design/pull/18626) - 🐞 修复 Upload 在 `multiple``false` 时无法上传多于一个文件的问题。[#18626](https://github.com/ant-design/ant-design/pull/18626)
- 🐞 修复 MonthPicker 切换按钮溢出的问题。[#18624](https://github.com/ant-design/ant-design/pull/18624)
- 💄 Tree 增加 `@tree-node-hover-bg``@tree-node-selected-bg` less 变量。[#18593](https://github.com/ant-design/ant-design/pull/18593) [@MrHeer](https://github.com/MrHeer)
## 3.23.0 ## 3.23.0

View File

@ -8,7 +8,7 @@ import { ConfigConsumer, ConfigConsumerProps } from '../config-provider';
export interface AnchorLinkProps { export interface AnchorLinkProps {
prefixCls?: string; prefixCls?: string;
href: string; href: string;
target: string; target?: string;
title: React.ReactNode; title: React.ReactNode;
children?: React.ReactNode; children?: React.ReactNode;
className?: string; className?: string;

View File

@ -39,7 +39,7 @@ exports[`Descriptions Descriptions support colon 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={false} colon={false}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -116,7 +116,7 @@ exports[`Descriptions Descriptions support style 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -183,7 +183,7 @@ exports[`Descriptions Descriptions.Item support className 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -241,7 +241,7 @@ exports[`Descriptions column is number 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -274,7 +274,7 @@ exports[`Descriptions column is number 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="1" key="label-1"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -307,7 +307,7 @@ exports[`Descriptions column is number 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="2" key="label-2"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -346,7 +346,7 @@ exports[`Descriptions column is number 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -414,7 +414,7 @@ exports[`Descriptions vertical layout 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="vertical" layout="vertical"
type="label" type="label"
> >
@ -446,7 +446,7 @@ exports[`Descriptions vertical layout 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="content-0"
layout="vertical" layout="vertical"
type="content" type="content"
> >
@ -478,7 +478,7 @@ exports[`Descriptions vertical layout 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="vertical" layout="vertical"
type="label" type="label"
> >
@ -510,7 +510,7 @@ exports[`Descriptions vertical layout 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="content-0"
layout="vertical" layout="vertical"
type="content" type="content"
> >
@ -542,7 +542,7 @@ exports[`Descriptions vertical layout 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="vertical" layout="vertical"
type="label" type="label"
> >
@ -574,7 +574,7 @@ exports[`Descriptions vertical layout 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="content-0"
layout="vertical" layout="vertical"
type="content" type="content"
> >
@ -607,7 +607,7 @@ exports[`Descriptions vertical layout 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="vertical" layout="vertical"
type="label" type="label"
> >
@ -640,7 +640,7 @@ exports[`Descriptions vertical layout 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="content-0"
layout="vertical" layout="vertical"
type="content" type="content"
> >
@ -701,7 +701,7 @@ exports[`Descriptions when item is rendered conditionally 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -739,7 +739,7 @@ exports[`Descriptions when item is rendered conditionally 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -777,7 +777,7 @@ exports[`Descriptions when item is rendered conditionally 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >
@ -816,7 +816,7 @@ exports[`Descriptions when item is rendered conditionally 1`] = `
</DescriptionsItem> </DescriptionsItem>
} }
colon={true} colon={true}
key="0" key="label-0"
layout="horizontal" layout="horizontal"
type="label" type="label"
> >

View File

@ -183,6 +183,6 @@ describe('Descriptions', () => {
</Descriptions>, </Descriptions>,
); );
expect(wrapper.find('Col').key()).toBe('bamboo'); expect(wrapper.find('Col').key()).toBe('label-bamboo');
}); });
}); });

View File

@ -105,7 +105,7 @@ const renderRow = (
bordered={bordered} bordered={bordered}
colon={colon} colon={colon}
type={type} type={type}
key={colItem.key || idx} key={`${type}-${colItem.key || idx}`}
layout={layout} layout={layout}
/> />
); );

View File

@ -11,7 +11,8 @@
z-index: @zindex-modal; z-index: @zindex-modal;
width: 0%; width: 0%;
height: 100%; height: 100%;
transition: transform @animation-duration-slow @ease-base-out, height 0s ease @animation-duration-slow, width 0s ease @animation-duration-slow; transition: transform @animation-duration-slow @ease-base-out,
height 0s ease @animation-duration-slow, width 0s ease @animation-duration-slow;
> * { > * {
transition: transform @animation-duration-slow @ease-base-out, transition: transform @animation-duration-slow @ease-base-out,
box-shadow @animation-duration-slow @ease-base-out; box-shadow @animation-duration-slow @ease-base-out;
@ -62,6 +63,11 @@
.@{drawer-prefix-cls}-content-wrapper { .@{drawer-prefix-cls}-content-wrapper {
box-shadow: @shadow-1-left; box-shadow: @shadow-1-left;
} }
// https://github.com/ant-design/ant-design/issues/18607, Avoid edge alignment bug.
&.no-mask {
right: 1px;
transform: translateX(1px);
}
} }
} }
@ -105,6 +111,10 @@
.@{drawer-prefix-cls}-content-wrapper { .@{drawer-prefix-cls}-content-wrapper {
box-shadow: @shadow-1-up; box-shadow: @shadow-1-up;
} }
&.no-mask {
bottom: 1px;
transform: translateY(1px);
}
} }
} }

View File

@ -4,6 +4,7 @@ import Select from '..';
import Icon from '../../icon'; import Icon from '../../icon';
import focusTest from '../../../tests/shared/focusTest'; import focusTest from '../../../tests/shared/focusTest';
import mountTest from '../../../tests/shared/mountTest'; import mountTest from '../../../tests/shared/mountTest';
import { resetWarned } from '../../_util/warning';
const { Option } = Select; const { Option } = Select;
@ -132,4 +133,16 @@ describe('Select', () => {
expect(wrapper.render()).toMatchSnapshot(); expect(wrapper.render()).toMatchSnapshot();
}); });
}); });
it('warning if user use `inputValue`', () => {
resetWarned();
const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
mount(<Select inputValue="" />);
expect(errorSpy).toHaveBeenLastCalledWith(
'Warning: [antd: Select] `inputValue` is deprecated. Please use `searchValue` instead.',
);
errorSpy.mockRestore();
});
}); });

View File

@ -45,6 +45,7 @@ Select component to select value from options.
| optionFilterProp | Which prop value of option will be used for filter if filterOption is true | string | value | | | optionFilterProp | Which prop value of option will be used for filter if filterOption is true | string | value | |
| optionLabelProp | Which prop value of option will render as content of select. [Example](https://codesandbox.io/s/antd-reproduction-template-tk678) | string | `value` for `combobox`, `children` for other modes | | | optionLabelProp | Which prop value of option will render as content of select. [Example](https://codesandbox.io/s/antd-reproduction-template-tk678) | string | `value` for `combobox`, `children` for other modes | |
| placeholder | Placeholder of select | string\|ReactNode | - | | | placeholder | Placeholder of select | string\|ReactNode | - | |
| searchValue | Search input value | string | - | 3.23.2 |
| showArrow | Whether to show the drop-down arrow | boolean | true | 3.2.1 | | showArrow | Whether to show the drop-down arrow | boolean | true | 3.2.1 |
| showSearch | Whether show search input in single mode. | boolean | false | | | showSearch | Whether show search input in single mode. | boolean | false | |
| size | Size of Select input. `default` `large` `small` | string | default | | | size | Size of Select input. `default` `large` `small` | string | default | |
@ -54,7 +55,6 @@ Select component to select value from options.
| menuItemSelectedIcon | The custom menuItemSelected icon with multiple options | ReactNode | - | 3.11.0 | | menuItemSelectedIcon | The custom menuItemSelected icon with multiple options | ReactNode | - | 3.11.0 |
| tokenSeparators | Separator used to tokenize on tag/multiple mode | string\[] | | | | tokenSeparators | Separator used to tokenize on tag/multiple mode | string\[] | | |
| value | Current selected option. | string\|string\[]\<br />number\|number\[]\<br />LabeledValue\|LabeledValue[] | - | | | value | Current selected option. | string\|string\[]\<br />number\|number\[]\<br />LabeledValue\|LabeledValue[] | - | |
| inputValue | Current search text | string | - | |
| onBlur | Called when blur | function | - | | | onBlur | Called when blur | function | - | |
| onChange | Called when select an option or input value change, or value of input is changed in combobox mode | function(value, option:Option/Array&lt;Option>) | - | | | onChange | Called when select an option or input value change, or value of input is changed in combobox mode | function(value, option:Option/Array&lt;Option>) | - | |
| onDeselect | Called when a option is deselected, param is the selected option's value. Only called for multiple or tags, effective in multiple or tags mode only. | function(string\|number\|LabeledValue) | - | | | onDeselect | Called when a option is deselected, param is the selected option's value. Only called for multiple or tags, effective in multiple or tags mode only. | function(string\|number\|LabeledValue) | - | |

View File

@ -53,7 +53,9 @@ export type SelectValue = string | string[] | number | number[] | LabeledValue |
export interface SelectProps<T = SelectValue> extends AbstractSelectProps { export interface SelectProps<T = SelectValue> extends AbstractSelectProps {
value?: T; value?: T;
/** @deprecated Use `searchValue` instead. */
inputValue?: string; inputValue?: string;
searchValue?: string;
defaultValue?: T; defaultValue?: T;
mode?: 'default' | 'multiple' | 'tags' | 'combobox' | string; mode?: 'default' | 'multiple' | 'tags' | 'combobox' | string;
optionLabelProp?: string; optionLabelProp?: string;
@ -110,9 +112,6 @@ const SelectPropTypes = {
id: PropTypes.string, id: PropTypes.string,
}; };
// => It is needless to export the declaration of below two inner components.
// export { Option, OptGroup };
export default class Select<T = SelectValue> extends React.Component<SelectProps<T>, {}> { export default class Select<T = SelectValue> extends React.Component<SelectProps<T>, {}> {
static Option = Option as React.ClassicComponentClass<OptionProps>; static Option = Option as React.ClassicComponentClass<OptionProps>;
@ -140,6 +139,12 @@ export default class Select<T = SelectValue> extends React.Component<SelectProps
'it will be removed in next major version, ' + 'it will be removed in next major version, ' +
'please use AutoComplete instead', 'please use AutoComplete instead',
); );
warning(
!('inputValue' in props),
'Select',
'`inputValue` is deprecated. Please use `searchValue` instead.',
);
} }
getNotFoundContent(renderEmpty: RenderEmptyHandler) { getNotFoundContent(renderEmpty: RenderEmptyHandler) {
@ -153,14 +158,6 @@ export default class Select<T = SelectValue> extends React.Component<SelectProps
} }
return renderEmpty('Select'); return renderEmpty('Select');
// if (this.isCombobox()) {
// // AutoComplete don't have notFoundContent defaultly
// return notFoundContent === undefined ? null : notFoundContent;
// }
// return renderEmpty('Select');
// // return notFoundContent === undefined ? locale.notFoundContent : notFoundContent;
} }
saveSelect = (node: any) => { saveSelect = (node: any) => {
@ -210,6 +207,8 @@ export default class Select<T = SelectValue> extends React.Component<SelectProps
clearIcon, clearIcon,
menuItemSelectedIcon, menuItemSelectedIcon,
showArrow, showArrow,
inputValue,
searchValue,
...restProps ...restProps
} = this.props; } = this.props;
const rest = omit(restProps, ['inputIcon']); const rest = omit(restProps, ['inputIcon']);
@ -271,6 +270,7 @@ export default class Select<T = SelectValue> extends React.Component<SelectProps
showArrow={showArrow} showArrow={showArrow}
{...rest} {...rest}
{...modeConfig} {...modeConfig}
inputValue={searchValue || inputValue}
prefixCls={prefixCls} prefixCls={prefixCls}
className={cls} className={cls}
optionLabelProp={optionLabelProp || 'children'} optionLabelProp={optionLabelProp || 'children'}

View File

@ -46,6 +46,7 @@ title: Select
| optionFilterProp | 搜索时过滤对应的 option 属性,如设置为 children 表示对内嵌内容进行搜索。[示例](https://codesandbox.io/s/antd-reproduction-template-tk678) | string | value | | | optionFilterProp | 搜索时过滤对应的 option 属性,如设置为 children 表示对内嵌内容进行搜索。[示例](https://codesandbox.io/s/antd-reproduction-template-tk678) | string | value | |
| optionLabelProp | 回填到选择框的 Option 的属性值,默认是 Option 的子元素。比如在子元素需要高亮效果时,此值可以设为 `value`。 | string | `children` combobox 模式下为 `value` | | | optionLabelProp | 回填到选择框的 Option 的属性值,默认是 Option 的子元素。比如在子元素需要高亮效果时,此值可以设为 `value`。 | string | `children` combobox 模式下为 `value` | |
| placeholder | 选择框默认文字 | string | - | | | placeholder | 选择框默认文字 | string | - | |
| searchValue | 搜索框文本 | string | - | 3.23.2 |
| showArrow | 是否显示下拉小箭头 | boolean | true | 3.2.1 | | showArrow | 是否显示下拉小箭头 | boolean | true | 3.2.1 |
| showSearch | 使单选模式可搜索 | boolean | false | | | showSearch | 使单选模式可搜索 | boolean | false | |
| size | 选择框大小,可选 `large` `small` | string | default | | | size | 选择框大小,可选 `large` `small` | string | default | |

View File

@ -54,7 +54,7 @@ Almost anything can be represented in a tree structure. Examples include directo
| Property | Description | Type | Default | Version | | Property | Description | Type | Default | Version |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| checkable | When Tree is checkable, set TreeNode display Checkbox or not | boolean | - | 3.17.0 | 3.17.0 | | checkable | When Tree is checkable, set TreeNode display Checkbox or not | boolean | - | 3.17.0 |
| disableCheckbox | Disables the checkbox of the treeNode | boolean | false | | | | disableCheckbox | Disables the checkbox of the treeNode | boolean | false | | |
| disabled | Disables the treeNode | boolean | false | | | | disabled | Disables the treeNode | boolean | false | | |
| icon | customize icon. When you pass component, whose render will receive full TreeNode props as component props | ReactNode/Function(props):ReactNode | - | | 3.4.0 | | icon | customize icon. When you pass component, whose render will receive full TreeNode props as component props | ReactNode/Function(props):ReactNode | - | | 3.4.0 |