From 400ca638b388c0206144f5cf61552184120fe92d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E6=9E=AB?= Date: Mon, 2 Dec 2019 15:21:56 +0800 Subject: [PATCH 01/88] feat: add visible debug demo (#20018) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add debug * 添加隐藏显示逻辑 * fix demo * add en * clean up * clean up * you see see * Update site/theme/zh-CN.js Co-Authored-By: 偏右 * Update site/theme/zh-CN.js Co-Authored-By: 偏右 * fix css * remove css --- site/theme/en-US.js | 2 + site/theme/static/demo.less | 9 ++- site/theme/template/Content/ComponentDoc.jsx | 74 +++++++++++++++----- site/theme/zh-CN.js | 2 + 4 files changed, 67 insertions(+), 20 deletions(-) diff --git a/site/theme/en-US.js b/site/theme/en-US.js index 99cac573fc..fc7f77f5c8 100644 --- a/site/theme/en-US.js +++ b/site/theme/en-US.js @@ -17,6 +17,8 @@ module.exports = { 'app.component.examples': 'Examples', 'app.component.examples.expand': 'Expand all code', 'app.component.examples.collapse': 'Collapse all code', + 'app.component.examples.visible': 'Expand debug examples', + 'app.component.examples.hide': 'Collapse debug examples', 'app.demo.debug': "Debug only, won't display at online", 'app.demo.copy': 'Copy code', 'app.demo.copied': 'Copied!', diff --git a/site/theme/static/demo.less b/site/theme/static/demo.less index fb244d4500..c45da75df9 100644 --- a/site/theme/static/demo.less +++ b/site/theme/static/demo.less @@ -22,12 +22,15 @@ &-expand-trigger { position: relative; - margin-left: 8px; + margin-left: 12px; color: #3b4357; - font-size: 18px; + font-size: 20px; cursor: pointer; - opacity: 0.8; + opacity: 0.75; transition: all 0.3s; + &:hover { + opacity: 1; + } } &-title { diff --git a/site/theme/template/Content/ComponentDoc.jsx b/site/theme/template/Content/ComponentDoc.jsx index 3ec508e2d9..1686a1f161 100644 --- a/site/theme/template/Content/ComponentDoc.jsx +++ b/site/theme/template/Content/ComponentDoc.jsx @@ -11,10 +11,19 @@ import { ping, getMetaDescription } from '../utils'; class ComponentDoc extends React.Component { state = { expandAll: false, + visibleAll: false, showRiddleButton: false, }; componentDidMount() { + const { demos = {}, location = {} } = this.props; + if (location.hash) { + const demoKey = location.hash.split('-demo-')[1]; + const demoData = demos[demoKey]; + if (demoData && demoData.meta && demoData.meta.debug) { + this.setState({ visibleAll: true }); + } + } this.pingTimer = ping(status => { if (status !== 'timeout' && status !== 'error') { this.setState({ @@ -27,12 +36,17 @@ class ComponentDoc extends React.Component { shouldComponentUpdate(nextProps, nextState) { const { location } = this.props; const { location: nextLocation } = nextProps; - const { expandAll, showRiddleButton } = this.state; - const { expandAll: nextExpandAll, showRiddleButton: nextShowRiddleButton } = nextState; + const { expandAll, visibleAll, showRiddleButton } = this.state; + const { + expandAll: nextExpandAll, + visibleAll: nextVisibleAll, + showRiddleButton: nextShowRiddleButton, + } = nextState; if ( nextLocation.pathname === location.pathname && expandAll === nextExpandAll && + visibleAll === nextVisibleAll && showRiddleButton === nextShowRiddleButton ) { return false; @@ -51,6 +65,13 @@ class ComponentDoc extends React.Component { }); }; + handleVisibleToggle = () => { + const { visibleAll } = this.state; + this.setState({ + visibleAll: !visibleAll, + }); + }; + render() { const { doc, @@ -61,14 +82,16 @@ class ComponentDoc extends React.Component { } = this.props; const { content, meta } = doc; const demoValues = Object.keys(demos).map(key => demos[key]); - const { expandAll, showRiddleButton } = this.state; - + const { expandAll, visibleAll, showRiddleButton } = this.state; const isSingleCol = meta.cols === 1; const leftChildren = []; const rightChildren = []; - const showedDemo = demoValues.some(demo => demo.meta.only) + let showedDemo = demoValues.some(demo => demo.meta.only) ? demoValues.filter(demo => demo.meta.only) : demoValues.filter(demo => demo.preview); + if (!visibleAll) { + showedDemo = showedDemo.filter(item => !item.meta.debug); + } showedDemo .sort((a, b) => a.meta.order - b.meta.order) .forEach((demoData, index) => { @@ -135,19 +158,36 @@ class ComponentDoc extends React.Component { )}

- + + } + > + - } - > - - + + + } + > + + +

diff --git a/site/theme/zh-CN.js b/site/theme/zh-CN.js index 21653a4858..a6baa48e5b 100644 --- a/site/theme/zh-CN.js +++ b/site/theme/zh-CN.js @@ -17,6 +17,8 @@ module.exports = { 'app.component.examples': '代码演示', 'app.component.examples.expand': '展开全部代码', 'app.component.examples.collapse': '收起全部代码', + 'app.component.examples.visible': '显示调试专用演示', + 'app.component.examples.hide': '隐藏调试专用演示', 'app.demo.debug': '此演示仅供调试,线上不会展示', 'app.demo.copy': '复制代码', 'app.demo.copied': '复制成功', From be06f53e233c33b620b7dcbea793efdbc0c2e964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Mon, 2 Dec 2019 16:12:32 +0800 Subject: [PATCH 02/88] :bug: Fix List pagniation options text align (#20038) close #20037 --- components/list/style/index.less | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/components/list/style/index.less b/components/list/style/index.less index 0833390edb..3687103516 100644 --- a/components/list/style/index.less +++ b/components/list/style/index.less @@ -15,6 +15,11 @@ &-pagination { margin-top: 24px; text-align: right; + + // https://github.com/ant-design/ant-design/issues/20037 + .@{ant-prefix}-pagination-options { + text-align: left; + } } &-more { From cba968f9dc6447eb92d18954149d223c3eea61ea Mon Sep 17 00:00:00 2001 From: "damon.chen" Date: Mon, 2 Dec 2019 17:22:06 +0800 Subject: [PATCH 03/88] chore: fix RangePicker value and onChange definition (#20015) --- .eslintrc.js | 1 + components/date-picker/RangePicker.tsx | 4 ++-- components/date-picker/interface.tsx | 21 ++++++++++++--------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 26dd847473..f33eec61f9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -55,6 +55,7 @@ const eslintrc = { 'jsx-a11y/anchor-has-content': 0, 'jsx-a11y/click-events-have-key-events': 0, 'jsx-a11y/anchor-is-valid': 0, + 'jsx-a11y/no-noninteractive-element-interactions': 0, 'comma-dangle': ['error', 'always-multiline'], 'react/jsx-filename-extension': 0, 'react/state-in-constructor': 0, diff --git a/components/date-picker/RangePicker.tsx b/components/date-picker/RangePicker.tsx index cf520c5014..dbe5d14b6b 100644 --- a/components/date-picker/RangePicker.tsx +++ b/components/date-picker/RangePicker.tsx @@ -31,7 +31,7 @@ function getShowDateFromValue(value: RangePickerValue, mode?: string | string[]) if (mode && mode[0] === 'month') { return [start, end] as RangePickerValue; } - const newEnd = end && end.isSame(start, 'month') ? end.clone().add(1, 'month') : end; + const newEnd = end && end.isSame(start!, 'month') ? end.clone().add(1, 'month') : end; return [start, newEnd] as RangePickerValue; } @@ -162,7 +162,7 @@ class RangePicker extends React.Component { showDate: getShowDateFromValue(value) || showDate, })); } - if (value[0] && value[0].diff(value[1]) > 0) { + if (value[0] && value[1] && value[0].diff(value[1]) > 0) { value[1] = undefined; } const [start, end] = value; diff --git a/components/date-picker/interface.tsx b/components/date-picker/interface.tsx index 02dd9dd995..23878505e9 100644 --- a/components/date-picker/interface.tsx +++ b/components/date-picker/interface.tsx @@ -23,7 +23,7 @@ export interface PickerProps { getCalendarContainer?: (triggerNode: Element) => HTMLElement; open?: boolean; onOpenChange?: (status: boolean) => void; - disabledDate?: (current: moment.Moment | undefined) => boolean; + disabledDate?: (current: moment.Moment | null) => boolean; dateRender?: (current: moment.Moment, today: moment.Moment) => React.ReactNode; autoFocus?: boolean; onFocus?: React.FocusEventHandler; @@ -31,9 +31,9 @@ export interface PickerProps { } export interface SinglePickerProps { - value?: moment.Moment; - defaultValue?: moment.Moment; - defaultPickerValue?: moment.Moment; + value?: moment.Moment | null; + defaultValue?: moment.Moment | null; + defaultPickerValue?: moment.Moment | null; placeholder?: string; renderExtraFooter?: (mode: DatePickerMode) => React.ReactNode; onChange?: (date: moment.Moment | null, dateString: string) => void; @@ -46,16 +46,16 @@ export interface DatePickerProps extends PickerProps, SinglePickerProps { showTime?: TimePickerProps | boolean; showToday?: boolean; open?: boolean; - disabledTime?: ( - current: moment.Moment | undefined, + disabledTime: ( + current?: moment.Moment | null, ) => { disabledHours?: () => number[]; disabledMinutes?: () => number[]; disabledSeconds?: () => number[]; }; onOpenChange?: (status: boolean) => void; - onPanelChange?: (value: moment.Moment | undefined, mode: DatePickerMode) => void; - onOk?: (selectedTime: moment.Moment) => void; + onPanelChange?: (value: moment.Moment | null, mode: DatePickerMode) => void; + onOk?: (selectedTime: moment.Moment | null) => void; mode?: DatePickerMode; } @@ -65,9 +65,12 @@ export interface MonthPickerProps extends PickerProps, SinglePickerProps { export type RangePickerValue = | undefined[] + | null[] | [moment.Moment] | [undefined, moment.Moment] | [moment.Moment, undefined] + | [null, moment.Moment] + | [moment.Moment, null] | [moment.Moment, moment.Moment]; export type RangePickerPresetRange = RangePickerValue | (() => RangePickerValue); @@ -90,7 +93,7 @@ export interface RangePickerProps extends PickerProps { mode?: string | string[]; separator?: React.ReactNode; disabledTime?: ( - current: moment.Moment | undefined, + current: RangePickerValue, type: string, ) => { disabledHours?: () => number[]; From 6096f6e281288353916104c95bcb4aa04d0fc06b Mon Sep 17 00:00:00 2001 From: afc163 Date: Mon, 2 Dec 2019 18:04:38 +0800 Subject: [PATCH 04/88] :bug: fix small table header border issue close #20030 close #18762 --- components/table/style/size.less | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/table/style/size.less b/components/table/style/size.less index c8ea8353c7..02bd1c2894 100644 --- a/components/table/style/size.less +++ b/components/table/style/size.less @@ -147,7 +147,7 @@ border-left: 0; } - .@{table-prefix-cls}-thead > tr:only-child > th:last-child, + .@{table-prefix-cls}-thead > tr > th.@{table-prefix-cls}-row-cell-last, .@{table-prefix-cls}-tbody > tr > td:last-child { border-right: none; } diff --git a/package.json b/package.json index 999a9f144a..ec929dde5e 100644 --- a/package.json +++ b/package.json @@ -127,7 +127,7 @@ "rc-slider": "~8.7.1", "rc-steps": "~3.5.0", "rc-switch": "~1.9.0", - "rc-table": "~6.9.4", + "rc-table": "~6.10.4", "rc-tabs": "~9.7.0", "rc-time-picker": "~3.7.1", "rc-tooltip": "~3.7.3", From ecce1e4aba8fc9937a9c96b2f912bcd7deed9e74 Mon Sep 17 00:00:00 2001 From: afc163 Date: Mon, 2 Dec 2019 19:02:33 +0800 Subject: [PATCH 05/88] :white_check_mark: update snapshots --- .../__snapshots__/components.test.js.snap | 6 +- .../__tests__/__snapshots__/demo.test.js.snap | 2 +- .../__tests__/__snapshots__/demo.test.js.snap | 2 +- .../__snapshots__/index.test.js.snap | 102 +++++++++--------- .../__snapshots__/Table.expand.test.js.snap | 2 +- .../__snapshots__/Table.filter.test.js.snap | 6 +- .../Table.pagination.test.js.snap | 4 +- .../Table.rowSelection.test.js.snap | 10 +- .../__snapshots__/Table.sorter.test.js.snap | 4 +- .../__snapshots__/Table.test.js.snap | 2 +- .../__tests__/__snapshots__/demo.test.js.snap | 64 +++++------ .../__snapshots__/empty.test.js.snap | 12 +-- .../__tests__/__snapshots__/demo.test.js.snap | 4 +- 13 files changed, 110 insertions(+), 110 deletions(-) diff --git a/components/config-provider/__tests__/__snapshots__/components.test.js.snap b/components/config-provider/__tests__/__snapshots__/components.test.js.snap index 61e95177e4..8450f41e5c 100644 --- a/components/config-provider/__tests__/__snapshots__/components.test.js.snap +++ b/components/config-provider/__tests__/__snapshots__/components.test.js.snap @@ -11598,7 +11598,7 @@ exports[`ConfigProvider components Table configProvider 1`] = ` > Date: Mon, 2 Dec 2019 19:18:53 +0800 Subject: [PATCH 06/88] :bug: fix footer style in small table --- components/table/style/size.less | 1 - 1 file changed, 1 deletion(-) diff --git a/components/table/style/size.less b/components/table/style/size.less index 02bd1c2894..edea6e15c0 100644 --- a/components/table/style/size.less +++ b/components/table/style/size.less @@ -135,7 +135,6 @@ .@{table-prefix-cls}-footer { border: 0; border-top: @border-width-base @border-style-base @border-color-split; - border-right: @border-width-base @border-style-base @border-color-split; &::before { display: none; } From 85b6744bf6b0a79fbbf39c5b0863bfc7184f7f86 Mon Sep 17 00:00:00 2001 From: afc163 Date: Tue, 3 Dec 2019 11:51:48 +0800 Subject: [PATCH 07/88] :bug: Fix filterIcon render string cause Table broken --- .../table/__tests__/Table.filter.test.js | 16 ++++++++++ components/table/demo/custom-filter-panel.md | 25 ++++++++------- components/table/filterDropdown.tsx | 32 +++++++++++-------- 3 files changed, 48 insertions(+), 25 deletions(-) diff --git a/components/table/__tests__/Table.filter.test.js b/components/table/__tests__/Table.filter.test.js index 69652ce9fa..dab9764efe 100644 --- a/components/table/__tests__/Table.filter.test.js +++ b/components/table/__tests__/Table.filter.test.js @@ -3,6 +3,7 @@ import React from 'react'; import { render, mount } from 'enzyme'; import Table from '..'; import Input from '../../input'; +import Tooltip from '../../tooltip'; import Button from '../../button'; import ConfigProvider from '../../config-provider'; @@ -655,6 +656,21 @@ describe('Table.filter', () => { expect(wrapper.find('.ant-table-filter-icon').render()).toMatchSnapshot(); }); + it('renders custom filter icon as string correctly', () => { + const filterIcon = () => 'string'; + const wrapper = mount( + createTable({ + columns: [ + { + ...column, + filterIcon, + }, + ], + }), + ); + expect(wrapper.render()).toMatchSnapshot(); + }); + // https://github.com/ant-design/ant-design/issues/13028 it('reset dropdown filter correctly', () => { class Demo extends React.Component { diff --git a/components/table/demo/custom-filter-panel.md b/components/table/demo/custom-filter-panel.md index a677d92849..2117d4b64a 100644 --- a/components/table/demo/custom-filter-panel.md +++ b/components/table/demo/custom-filter-panel.md @@ -90,24 +90,25 @@ class App extends React.Component { setTimeout(() => this.searchInput.select()); } }, - render: text => ( - (this.state.searchedColumn === dataIndex) ? - - : text - ), + render: text => + this.state.searchedColumn === dataIndex ? ( + + ) : ( + text + ), }); handleSearch = (selectedKeys, confirm, dataIndex) => { confirm(); - this.setState({ + this.setState({ searchText: selectedKeys[0], searchedColumn: dataIndex, - }); + }); }; handleReset = clearFilters => { diff --git a/components/table/filterDropdown.tsx b/components/table/filterDropdown.tsx index 8dcd55c01f..50960ae37a 100755 --- a/components/table/filterDropdown.tsx +++ b/components/table/filterDropdown.tsx @@ -200,7 +200,7 @@ class FilterMenu extends React.Component, FilterMenuState< renderFilterIcon = () => { const { column, locale, prefixCls, selectedKeys } = this.props; const filtered = selectedKeys && selectedKeys.length > 0; - let filterIcon = column.filterIcon as any; + let filterIcon = column.filterIcon; if (typeof filterIcon === 'function') { filterIcon = filterIcon(filtered); } @@ -210,21 +210,27 @@ class FilterMenu extends React.Component, FilterMenuState< [`${prefixCls}-open`]: this.getDropdownVisible(), }); - return filterIcon ? ( - React.cloneElement(filterIcon as any, { + if (!filterIcon) { + return ( + + ); + } + + if (React.isValidElement(filterIcon)) { + return React.cloneElement(filterIcon, { title: locale.filterTitle, className: classNames(`${prefixCls}-icon`, dropdownIconClass, filterIcon.props.className), onClick: stopPropagation, - }) - ) : ( - - ); + }); + } + + return {filterIcon}; }; renderMenuItem(item: ColumnFilterItem) { From 16ac3b31df00c4677f1f17320fb0a84b5e230e2e Mon Sep 17 00:00:00 2001 From: afc163 Date: Tue, 3 Dec 2019 11:54:17 +0800 Subject: [PATCH 08/88] :bug: Fix filterIcon Tooltip title is not working close #20049 --- .../table/__tests__/Table.filter.test.js | 19 +++++++++++++++++++ components/table/filterDropdown.tsx | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/components/table/__tests__/Table.filter.test.js b/components/table/__tests__/Table.filter.test.js index dab9764efe..5bfac58a4f 100644 --- a/components/table/__tests__/Table.filter.test.js +++ b/components/table/__tests__/Table.filter.test.js @@ -671,6 +671,25 @@ describe('Table.filter', () => { expect(wrapper.render()).toMatchSnapshot(); }); + it('renders custom filter icon with right Tooltip title', () => { + const filterIcon = () => ( + + Tooltip + + ); + const wrapper = mount( + createTable({ + columns: [ + { + ...column, + filterIcon, + }, + ], + }), + ); + expect(wrapper.render()).toMatchSnapshot(); + }); + // https://github.com/ant-design/ant-design/issues/13028 it('reset dropdown filter correctly', () => { class Demo extends React.Component { diff --git a/components/table/filterDropdown.tsx b/components/table/filterDropdown.tsx index 50960ae37a..bc1447be66 100755 --- a/components/table/filterDropdown.tsx +++ b/components/table/filterDropdown.tsx @@ -224,7 +224,7 @@ class FilterMenu extends React.Component, FilterMenuState< if (React.isValidElement(filterIcon)) { return React.cloneElement(filterIcon, { - title: locale.filterTitle, + title: filterIcon.props.title || locale.filterTitle, className: classNames(`${prefixCls}-icon`, dropdownIconClass, filterIcon.props.className), onClick: stopPropagation, }); From 811d562527ef4536380b6005ba0bab00265540e9 Mon Sep 17 00:00:00 2001 From: afc163 Date: Tue, 3 Dec 2019 11:59:06 +0800 Subject: [PATCH 09/88] :white_check_mark: update snapshots --- .../__snapshots__/Table.filter.test.js.snap | 235 ++++++++++++++++++ 1 file changed, 235 insertions(+) diff --git a/components/table/__tests__/__snapshots__/Table.filter.test.js.snap b/components/table/__tests__/__snapshots__/Table.filter.test.js.snap index 080f5655d9..370db876e1 100644 --- a/components/table/__tests__/__snapshots__/Table.filter.test.js.snap +++ b/components/table/__tests__/__snapshots__/Table.filter.test.js.snap @@ -44,6 +44,113 @@ exports[`Table.filter renders custom content correctly 1`] = ` `; +exports[`Table.filter renders custom filter icon as string correctly 1`] = ` +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + Name + + +
+
+ + string + +
+ Jack +
+ Lucy +
+ Tom +
+ Jerry +
+
+
+
+
+
+
+`; + exports[`Table.filter renders custom filter icon correctly 1`] = ` `; +exports[`Table.filter renders custom filter icon with right Tooltip title 1`] = ` +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + Name + + +
+
+ + Tooltip + +
+
+
+
+ +
+
+
+
+ Jack +
+ Lucy +
+ Tom +
+ Jerry +
+
+
+
+
+
+
+`; + exports[`Table.filter renders filter correctly 1`] = `
Date: Tue, 3 Dec 2019 14:25:08 +0800 Subject: [PATCH 10/88] Update package.json (#20057) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ec929dde5e..6e06f4a625 100644 --- a/package.json +++ b/package.json @@ -160,7 +160,7 @@ "@types/shallowequal": "^1.1.1", "@types/warning": "^3.0.0", "@typescript-eslint/eslint-plugin": "^2.0.0", - "@typescript-eslint/parser": "~2.9.0", + "@typescript-eslint/parser": "^2.10.0", "antd-theme-generator": "^1.1.6", "babel-eslint": "^10.0.1", "babel-plugin-add-react-displayname": "^0.0.5", From 43bf7965def758d63cc5ccb30d7329a66fb75fc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Tue, 3 Dec 2019 18:06:07 +0800 Subject: [PATCH 11/88] :bug: Fix Button text not align center in Chrome (#20059) revert solution of 05181d552e452dc5de34e4293abf009be1e89fd3 close #19972 close #20058 --- components/button/style/index.less | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/components/button/style/index.less b/components/button/style/index.less index 246b405623..831c64e80b 100644 --- a/components/button/style/index.less +++ b/components/button/style/index.less @@ -12,7 +12,15 @@ // Button styles // ----------------------------- .@{btn-prefix-cls} { - line-height: @line-height-base; + // Fixing https://github.com/ant-design/ant-design/issues/12978 + // Fixing https://github.com/ant-design/ant-design/issues/20058 + // Fixing https://github.com/ant-design/ant-design/issues/19972 + // Fixing https://github.com/ant-design/ant-design/issues/12978 + // Fixing https://github.com/ant-design/ant-design/issues/18107 + // Fixing https://github.com/ant-design/ant-design/issues/13214 + // It is a render problem of chrome, which is only happened in the codesandbox demo + // 0.001px solution works and I don't why + line-height: @line-height-base - 0.001; .btn; .btn-default; @@ -73,6 +81,10 @@ &-icon-only { .btn-square(@btn-prefix-cls); + + > i { + vertical-align: middle; + } } &-round { From 3fed6f02a5930416b25becf0915b80864c3546b2 Mon Sep 17 00:00:00 2001 From: Liu Ya Date: Tue, 3 Dec 2019 23:59:37 +0800 Subject: [PATCH 12/88] fix: DescriptionItem className error to label (#20067) --- components/descriptions/Col.tsx | 2 +- .../descriptions/__tests__/__snapshots__/index.test.js.snap | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/descriptions/Col.tsx b/components/descriptions/Col.tsx index f147597dfc..73932a6ce6 100644 --- a/components/descriptions/Col.tsx +++ b/components/descriptions/Col.tsx @@ -14,7 +14,7 @@ const Col: React.SFC = props => { const { child, bordered, colon, type, layout } = props; const { prefixCls, label, className, children, span = 1 } = child.props; const labelProps: any = { - className: classNames(`${prefixCls}-item-label`, className, { + className: classNames(`${prefixCls}-item-label`, { [`${prefixCls}-item-colon`]: colon, [`${prefixCls}-item-no-label`]: !label, }), diff --git a/components/descriptions/__tests__/__snapshots__/index.test.js.snap b/components/descriptions/__tests__/__snapshots__/index.test.js.snap index ccbcd11d13..cb6ccf3e34 100644 --- a/components/descriptions/__tests__/__snapshots__/index.test.js.snap +++ b/components/descriptions/__tests__/__snapshots__/index.test.js.snap @@ -192,7 +192,7 @@ exports[`Descriptions Descriptions.Item support className 1`] = ` colSpan={1} > Product From fac56ee952700bcab39a458840b732d7c8d570cf Mon Sep 17 00:00:00 2001 From: afc163 Date: Wed, 4 Dec 2019 11:42:48 +0800 Subject: [PATCH 13/88] :memo: fix home page locale text --- site/theme/en-US.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/theme/en-US.js b/site/theme/en-US.js index fc7f77f5c8..b541d381e4 100644 --- a/site/theme/en-US.js +++ b/site/theme/en-US.js @@ -52,7 +52,7 @@ module.exports = { 'app.home.getting-started': 'Getting Started', 'app.home.recommend': 'Recommend', 'app.home.recommend.yuque': 'Yuque, our favorite documentation tool', - 'app.home.recommend.antv': 'G2Plot, the new charting library', + 'app.home.recommend.antv.g2plot': 'G2Plot, the new charting library', 'app.home.more': 'Learn more', 'app.home.more-mobile-react': 'Ant Design Mobile of React', 'app.home.more-mobile-angular': 'Ant Design Mobile of Angular', From bca69b6e8c72e255a113ff2443a73a6597e0a58b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Wed, 4 Dec 2019 12:07:22 +0800 Subject: [PATCH 14/88] :wrench: remove antd/es/form/__tests__ from npm package (#20069) --- components/form/__tests__/{type.tsx => type.test.tsx} | 7 +++++++ 1 file changed, 7 insertions(+) rename components/form/__tests__/{type.tsx => type.test.tsx} (93%) diff --git a/components/form/__tests__/type.tsx b/components/form/__tests__/type.test.tsx similarity index 93% rename from components/form/__tests__/type.tsx rename to components/form/__tests__/type.test.tsx index 9fe3d600f1..f31b117e38 100644 --- a/components/form/__tests__/type.tsx +++ b/components/form/__tests__/type.test.tsx @@ -1,7 +1,14 @@ /* tslint:disable */ +/* eslint-disable */ import * as React from 'react'; import Form, { FormComponentProps, FormCreateOption } from '../Form'; +describe('Form TypeScript test', async () => { + it('empty test case placeholder to avoid jest error', () => { + // empty + }); +}); + // test Form.create on component without own props class WithoutOwnProps extends React.Component { state = { From 62d7a2bbb0d3a461005033b2d72bff580b2bdf5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Wed, 4 Dec 2019 14:09:39 +0800 Subject: [PATCH 15/88] :white_check_mark: restore test coverage (#20071) --- .eslintignore | 1 - .jest.js | 2 +- components/form/__tests__/index.test.js | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.eslintignore b/.eslintignore index 90a47e0b0d..5b7a025679 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,6 +1,5 @@ components/**/*.js components/**/*.jsx -components/*/__tests__/type.tsx !components/*/__tests__/**/*.js !components/*/demo/* !.*.js diff --git a/.jest.js b/.jest.js index be5659849c..12370cd640 100644 --- a/.jest.js +++ b/.jest.js @@ -31,7 +31,7 @@ module.exports = { '!components/*/style/index.tsx', '!components/style/index.tsx', '!components/*/locale/index.tsx', - '!components/*/__tests__/**/type.tsx', + '!components/form/__tests__/type.test.tsx', '!components/**/*/interface.{ts,tsx}', ], transformIgnorePatterns, diff --git a/components/form/__tests__/index.test.js b/components/form/__tests__/index.test.js index fe3567c99a..2ce597d66d 100644 --- a/components/form/__tests__/index.test.js +++ b/components/form/__tests__/index.test.js @@ -3,6 +3,7 @@ import React from 'react'; import { mount, render } from 'enzyme'; import Form from '..'; import mountTest from '../../../tests/shared/mountTest'; +import './type.test'; describe('Form', () => { mountTest(Form); From 5fabb45d9dda2fc695ef93cee8dd4b9f67d60d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Wed, 4 Dec 2019 19:42:49 +0800 Subject: [PATCH 16/88] =?UTF-8?q?=F0=9F=93=96=20fix=20site=20scrollbar=20p?= =?UTF-8?q?roblem=20(#20086)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #20081 may related to #19988 --- site/theme/static/common.less | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/site/theme/static/common.less b/site/theme/static/common.less index 6ba4a6bafe..75654a6d68 100644 --- a/site/theme/static/common.less +++ b/site/theme/static/common.less @@ -1,12 +1,3 @@ -html, -body { - height: 100%; -} - -html { - overflow-x: hidden; -} - body { color: @site-text-color; font-size: 14px; @@ -50,6 +41,7 @@ a { .aside-container { padding-bottom: 48px; + overflow-x: hidden; font-family: Avenir, @font-family, sans-serif; &.ant-menu-inline .ant-menu-submenu-title h4, From 14619bc1d83551893a16bf66b9f0efffe7c2432d Mon Sep 17 00:00:00 2001 From: afc163 Date: Wed, 4 Dec 2019 21:58:41 +0800 Subject: [PATCH 17/88] :memo: fix github url --- site/theme/template/Home/Banner.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/theme/template/Home/Banner.jsx b/site/theme/template/Home/Banner.jsx index 117deacbc0..b85cdb887b 100644 --- a/site/theme/template/Home/Banner.jsx +++ b/site/theme/template/Home/Banner.jsx @@ -97,14 +97,14 @@ const Banner = ({ isMobile }) => { { if (window.gtag) { window.gtag('event', '点击', { event_category: '首页推广', - event_label: `https://github.com/antvis/g2plot?from=antd`, + event_label: `https://github.com/antvis/G2Plot?from=antd`, }); } }} From 89a6593c444d075d2bf9b10e2b8266af471cc725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Thu, 5 Dec 2019 10:55:45 +0800 Subject: [PATCH 18/88] =?UTF-8?q?=F0=9F=90=9B=20Fix=20Table=20column=20ali?= =?UTF-8?q?gn=20in=20windows=20chrome=20(#19986)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #19952 --- components/table/style/index.less | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/components/table/style/index.less b/components/table/style/index.less index b713bd176a..16bdc6d8c8 100644 --- a/components/table/style/index.less +++ b/components/table/style/index.less @@ -660,7 +660,12 @@ // https://stackoverflow.com/a/54101063 // https://github.com/react-component/table/pull/333 scrollbar-color: transparent transparent; + min-width: unset; + &::-webkit-scrollbar { + // set min width to window chrome scrollbar + // https://github.com/ant-design/ant-design/issues/19952#issuecomment-559367149 + min-width: inherit; background-color: transparent; } } diff --git a/package.json b/package.json index 6e06f4a625..bcbfefb685 100644 --- a/package.json +++ b/package.json @@ -127,7 +127,7 @@ "rc-slider": "~8.7.1", "rc-steps": "~3.5.0", "rc-switch": "~1.9.0", - "rc-table": "~6.10.4", + "rc-table": "~6.10.5", "rc-tabs": "~9.7.0", "rc-time-picker": "~3.7.1", "rc-tooltip": "~3.7.3", From 8fda3972fe244bbd1562a36f192b703cb663c25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AA=97=E4=BD=A0=E6=98=AF=E5=B0=8F=E7=8C=AB=E5=92=AA?= Date: Thu, 5 Dec 2019 17:26:16 +0800 Subject: [PATCH 19/88] test: update snapshots (#20104) --- .../__snapshots__/components.test.js.snap | 12 +- .../__snapshots__/index.test.js.snap | 204 +++++++++++++----- .../__snapshots__/Modal.test.js.snap | 12 +- 3 files changed, 171 insertions(+), 57 deletions(-) diff --git a/components/config-provider/__tests__/__snapshots__/components.test.js.snap b/components/config-provider/__tests__/__snapshots__/components.test.js.snap index 8450f41e5c..721aa37cf4 100644 --- a/components/config-provider/__tests__/__snapshots__/components.test.js.snap +++ b/components/config-provider/__tests__/__snapshots__/components.test.js.snap @@ -8153,7 +8153,9 @@ exports[`ConfigProvider components Menu prefixCls 1`] = ` exports[`ConfigProvider components Modal configProvider 1`] = `
-
+
@@ -8245,7 +8247,9 @@ exports[`ConfigProvider components Modal configProvider 1`] = ` exports[`ConfigProvider components Modal normal 1`] = `
-
+
@@ -8337,7 +8341,9 @@ exports[`ConfigProvider components Modal normal 1`] = ` exports[`ConfigProvider components Modal prefixCls 1`] = `
-
+
diff --git a/components/locale-provider/__tests__/__snapshots__/index.test.js.snap b/components/locale-provider/__tests__/__snapshots__/index.test.js.snap index 7c1c46f6eb..09cd4ba7b6 100644 --- a/components/locale-provider/__tests__/__snapshots__/index.test.js.snap +++ b/components/locale-provider/__tests__/__snapshots__/index.test.js.snap @@ -7725,7 +7725,9 @@ exports[`Locale Provider should display the text as ar 1`] = `
-
+
@@ -13057,7 +13059,9 @@ exports[`Locale Provider should display the text as bg 1`] = `
-
+
@@ -18389,7 +18393,9 @@ exports[`Locale Provider should display the text as ca 1`] = `
-
+
@@ -23721,7 +23727,9 @@ exports[`Locale Provider should display the text as cs 1`] = `
-
+
@@ -29053,7 +29061,9 @@ exports[`Locale Provider should display the text as da 1`] = `
-
+
@@ -34385,7 +34395,9 @@ exports[`Locale Provider should display the text as de 1`] = `
-
+
@@ -39717,7 +39729,9 @@ exports[`Locale Provider should display the text as el 1`] = `
-
+
@@ -45049,7 +45063,9 @@ exports[`Locale Provider should display the text as en 1`] = `
-
+
@@ -50381,7 +50397,9 @@ exports[`Locale Provider should display the text as en-gb 1`] = `
-
+
@@ -55713,7 +55731,9 @@ exports[`Locale Provider should display the text as es 1`] = `
-
+
@@ -61045,7 +61065,9 @@ exports[`Locale Provider should display the text as et 1`] = `
-
+
@@ -66377,7 +66399,9 @@ exports[`Locale Provider should display the text as fa 1`] = `
-
+
@@ -71709,7 +71733,9 @@ exports[`Locale Provider should display the text as fi 1`] = `
-
+
@@ -77041,7 +77067,9 @@ exports[`Locale Provider should display the text as fr 1`] = `
-
+
@@ -82373,7 +82401,9 @@ exports[`Locale Provider should display the text as fr 2`] = `
-
+
@@ -87705,7 +87735,9 @@ exports[`Locale Provider should display the text as he 1`] = `
-
+
@@ -93037,7 +93069,9 @@ exports[`Locale Provider should display the text as hi 1`] = `
-
+
@@ -98369,7 +98403,9 @@ exports[`Locale Provider should display the text as hr 1`] = `
-
+
@@ -103701,7 +103737,9 @@ exports[`Locale Provider should display the text as hu 1`] = `
-
+
@@ -109033,7 +109071,9 @@ exports[`Locale Provider should display the text as hy 1`] = `
-
+
@@ -114365,7 +114405,9 @@ exports[`Locale Provider should display the text as id 1`] = `
-
+
@@ -119697,7 +119739,9 @@ exports[`Locale Provider should display the text as is 1`] = `
-
+
@@ -125029,7 +125073,9 @@ exports[`Locale Provider should display the text as it 1`] = `
-
+
@@ -130361,7 +130407,9 @@ exports[`Locale Provider should display the text as ja 1`] = `
-
+
@@ -135693,7 +135741,9 @@ exports[`Locale Provider should display the text as kn 1`] = `
-
+
@@ -141025,7 +141075,9 @@ exports[`Locale Provider should display the text as ko 1`] = `
-
+
@@ -146357,7 +146409,9 @@ exports[`Locale Provider should display the text as ku-iq 1`] = `
-
+
@@ -151689,7 +151743,9 @@ exports[`Locale Provider should display the text as lv 1`] = `
-
+
@@ -157021,7 +157077,9 @@ exports[`Locale Provider should display the text as mk 1`] = `
-
+
@@ -162353,7 +162411,9 @@ exports[`Locale Provider should display the text as mn-mn 1`] = `
-
+
@@ -167685,7 +167745,9 @@ exports[`Locale Provider should display the text as ms-my 1`] = `
-
+
@@ -173017,7 +173079,9 @@ exports[`Locale Provider should display the text as nb 1`] = `
-
+
@@ -178349,7 +178413,9 @@ exports[`Locale Provider should display the text as ne-np 1`] = `
-
+
@@ -183681,7 +183747,9 @@ exports[`Locale Provider should display the text as nl 1`] = `
-
+
@@ -189013,7 +189081,9 @@ exports[`Locale Provider should display the text as nl-be 1`] = `
-
+
@@ -194345,7 +194415,9 @@ exports[`Locale Provider should display the text as pl 1`] = `
-
+
@@ -199677,7 +199749,9 @@ exports[`Locale Provider should display the text as pt 1`] = `
-
+
@@ -205009,7 +205083,9 @@ exports[`Locale Provider should display the text as pt-br 1`] = `
-
+
@@ -210341,7 +210417,9 @@ exports[`Locale Provider should display the text as ro 1`] = `
-
+
@@ -215673,7 +215751,9 @@ exports[`Locale Provider should display the text as ru 1`] = `
-
+
@@ -221005,7 +221085,9 @@ exports[`Locale Provider should display the text as sk 1`] = `
-
+
@@ -226337,7 +226419,9 @@ exports[`Locale Provider should display the text as sl 1`] = `
-
+
@@ -231669,7 +231753,9 @@ exports[`Locale Provider should display the text as sr 1`] = `
-
+
@@ -237001,7 +237087,9 @@ exports[`Locale Provider should display the text as sv 1`] = `
-
+
@@ -242333,7 +242421,9 @@ exports[`Locale Provider should display the text as ta 1`] = `
-
+
@@ -247665,7 +247755,9 @@ exports[`Locale Provider should display the text as th 1`] = `
-
+
@@ -252997,7 +253089,9 @@ exports[`Locale Provider should display the text as tr 1`] = `
-
+
@@ -258329,7 +258423,9 @@ exports[`Locale Provider should display the text as uk 1`] = `
-
+
@@ -263661,7 +263757,9 @@ exports[`Locale Provider should display the text as vi 1`] = `
-
+
@@ -268993,7 +269091,9 @@ exports[`Locale Provider should display the text as zh-cn 1`] = `
-
+
@@ -274325,7 +274425,9 @@ exports[`Locale Provider should display the text as zh-tw 1`] = `
-
+
diff --git a/components/modal/__tests__/__snapshots__/Modal.test.js.snap b/components/modal/__tests__/__snapshots__/Modal.test.js.snap index 1fc56f54e0..6888748019 100644 --- a/components/modal/__tests__/__snapshots__/Modal.test.js.snap +++ b/components/modal/__tests__/__snapshots__/Modal.test.js.snap @@ -4,7 +4,9 @@ exports[`Modal render correctly 1`] = `
-
+
@@ -100,7 +102,9 @@ exports[`Modal render without footer 1`] = `
-
+
@@ -171,7 +175,9 @@ exports[`Modal render without footer 1`] = ` `; exports[`Modal support closeIcon 1`] = ` -
+
From 4146efa81083eaba7201741f5019a8eac0079324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Thu, 5 Dec 2019 17:48:47 +0800 Subject: [PATCH 20/88] :bug: fix duplicated icons when Tree showLine is true (#20102) close #20090 --- components/tree/Tree.tsx | 13 ++++---- .../__snapshots__/index.test.js.snap | 30 +++++++++++++++++++ components/tree/__tests__/index.test.js | 19 ++++++++++++ components/tree/demo/line.md | 10 +++---- 4 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 components/tree/__tests__/__snapshots__/index.test.js.snap create mode 100644 components/tree/__tests__/index.test.js diff --git a/components/tree/Tree.tsx b/components/tree/Tree.tsx index 3703d4cb78..1247f3628d 100644 --- a/components/tree/Tree.tsx +++ b/components/tree/Tree.tsx @@ -188,7 +188,7 @@ export default class Tree extends React.Component { renderSwitcherIcon = ( prefixCls: string, switcherIcon: React.ReactElement | undefined, - { isLeaf, expanded, loading }: AntTreeNodeProps, + { isLeaf, expanded, loading, icon }: AntTreeNodeProps, ) => { const { showLine } = this.props; if (loading) { @@ -196,19 +196,18 @@ export default class Tree extends React.Component { } if (isLeaf) { if (showLine) { - return ; + return icon || ; } return null; } const switcherCls = `${prefixCls}-switcher-icon`; if (switcherIcon) { - const switcherOriginCls = switcherIcon.props.className || ''; return React.cloneElement(switcherIcon, { - className: classNames(switcherOriginCls, switcherCls), + className: classNames(switcherIcon.props.className || '', switcherCls), }); } if (showLine) { - return ( + return icon || ( { prefixCls: customizePrefixCls, className, showIcon, + showLine, switcherIcon, blockNode, children, @@ -239,6 +239,9 @@ export default class Tree extends React.Component { +
  • + + icon + + + + --- + + +
  • + +`; diff --git a/components/tree/__tests__/index.test.js b/components/tree/__tests__/index.test.js new file mode 100644 index 0000000000..8a80731b0d --- /dev/null +++ b/components/tree/__tests__/index.test.js @@ -0,0 +1,19 @@ +import React from 'react'; +import { mount } from 'enzyme'; +import Tree from '../index'; + +const { TreeNode } = Tree; + +describe('Tree', () => { + it('icon of TreeNode should put inside line when showLine is true', () => { + const wrapper = mount( + + + + + + , + ); + expect(wrapper.render()).toMatchSnapshot(); + }); +}); diff --git a/components/tree/demo/line.md b/components/tree/demo/line.md index c3d4d3ee36..d9300939df 100644 --- a/components/tree/demo/line.md +++ b/components/tree/demo/line.md @@ -2,19 +2,19 @@ order: 5 title: zh-CN: 连接线 - en-US: Tree With Line + en-US: Tree with line --- ## zh-CN -带连接线的树。 +节点之间带连接线的树,常用于文件目录结构展示。 ## en-US -Tree With Line +Tree with connected line between nodes. ```jsx -import { Tree } from 'antd'; +import { Tree, Icon } from 'antd'; const { TreeNode } = Tree; @@ -37,7 +37,7 @@ class Demo extends React.Component { - + } title="leaf" key="0-0-2-1" /> From fb68fcdc056d47ccbd6d0066b15dad9beaab5d22 Mon Sep 17 00:00:00 2001 From: afc163 Date: Fri, 6 Dec 2019 11:02:35 +0800 Subject: [PATCH 21/88] :lipstick: use classNames in Editable --- components/typography/Editable.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/typography/Editable.tsx b/components/typography/Editable.tsx index 52ce10e688..ffec409bb4 100644 --- a/components/typography/Editable.tsx +++ b/components/typography/Editable.tsx @@ -1,5 +1,6 @@ import * as React from 'react'; import KeyCode from 'rc-util/lib/KeyCode'; +import classNames from 'classnames'; import { polyfill } from 'react-lifecycles-compat'; import Icon from '../icon'; import TextArea from '../input/TextArea'; @@ -114,7 +115,7 @@ class Editable extends React.Component { const { prefixCls, 'aria-label': ariaLabel, className, style } = this.props; return ( -
    +