mirror of
https://github.com/ant-design/ant-design.git
synced 2025-06-11 11:32:52 +08:00
Merge branch 'next' into support-expaned-row-offset-v6
This commit is contained in:
commit
c406e35d1f
@ -1,4 +1,4 @@
|
|||||||
import React, { use } from 'react';
|
import React, { use, useRef } from 'react';
|
||||||
import { BgColorsOutlined, LinkOutlined, SmileOutlined, SunOutlined } from '@ant-design/icons';
|
import { BgColorsOutlined, LinkOutlined, SmileOutlined, SunOutlined } from '@ant-design/icons';
|
||||||
import { Badge, Button, Dropdown } from 'antd';
|
import { Badge, Button, Dropdown } from 'antd';
|
||||||
import type { MenuProps } from 'antd';
|
import type { MenuProps } from 'antd';
|
||||||
@ -22,6 +22,7 @@ const ThemeSwitch: React.FC<ThemeSwitchProps> = () => {
|
|||||||
const { pathname, search } = useLocation();
|
const { pathname, search } = useLocation();
|
||||||
const { theme, updateSiteConfig } = use<SiteContextProps>(SiteContext);
|
const { theme, updateSiteConfig } = use<SiteContextProps>(SiteContext);
|
||||||
const toggleAnimationTheme = useThemeAnimation();
|
const toggleAnimationTheme = useThemeAnimation();
|
||||||
|
const lastThemeKey = useRef<string>(theme.includes('dark') ? 'dark' : 'light');
|
||||||
|
|
||||||
const badge = <Badge color="blue" style={{ marginTop: -1 }} />;
|
const badge = <Badge color="blue" style={{ marginTop: -1 }} />;
|
||||||
|
|
||||||
@ -95,10 +96,12 @@ const ThemeSwitch: React.FC<ThemeSwitchProps> = () => {
|
|||||||
// 处理主题切换
|
// 处理主题切换
|
||||||
const handleThemeChange = (key: string, domEvent: React.MouseEvent<HTMLElement, MouseEvent>) => {
|
const handleThemeChange = (key: string, domEvent: React.MouseEvent<HTMLElement, MouseEvent>) => {
|
||||||
// 主题编辑器特殊处理
|
// 主题编辑器特殊处理
|
||||||
if (key === 'theme-editor') {
|
if (key === 'theme-editor' || key === lastThemeKey.current) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lastThemeKey.current = key;
|
||||||
|
|
||||||
// 亮色/暗色模式切换时应用动画效果
|
// 亮色/暗色模式切换时应用动画效果
|
||||||
if (key === 'dark' || key === 'light') {
|
if (key === 'dark' || key === 'light') {
|
||||||
toggleAnimationTheme(domEvent, theme.includes('dark'));
|
toggleAnimationTheme(domEvent, theme.includes('dark'));
|
||||||
|
@ -15,6 +15,15 @@ tag: vVERSION
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 5.25.3
|
||||||
|
|
||||||
|
`2025-05-26`
|
||||||
|
|
||||||
|
- 🐞 Fix Typography.Text `delete` property not updating. [#53861](https://github.com/ant-design/ant-design/pull/53861) [@codingories](https://github.com/codingories)
|
||||||
|
- 🐞 Fix the Statistic.Timer as a subcomponent of Tooltip could not display text prompts properly. [#53888](https://github.com/ant-design/ant-design/pull/53888) [@jin19980928](https://github.com/jin19980928)
|
||||||
|
- 🐞 Fix the `style` setting of the Upload component did not take effect in more types. [#53877](https://github.com/ant-design/ant-design/pull/53877) [@QuentinHsu](https://github.com/QuentinHsu)
|
||||||
|
- 💄 Fix the residual focus style after clicking Tabs. [#53901](https://github.com/ant-design/ant-design/pull/53901)
|
||||||
|
|
||||||
## 5.25.2
|
## 5.25.2
|
||||||
|
|
||||||
`2025-05-19`
|
`2025-05-19`
|
||||||
@ -24,7 +33,6 @@ tag: vVERSION
|
|||||||
- 🐞 Fix Statistic.Timer ssr hydrate issue. [#53817](https://github.com/ant-design/ant-design/pull/53817) [@zombieJ](https://github.com/zombieJ)
|
- 🐞 Fix Statistic.Timer ssr hydrate issue. [#53817](https://github.com/ant-design/ant-design/pull/53817) [@zombieJ](https://github.com/zombieJ)
|
||||||
- 🐞 Fix Table header blink issue when sticky is enable. [#53803](https://github.com/ant-design/ant-design/pull/53803) [@afc163](https://github.com/afc163)
|
- 🐞 Fix Table header blink issue when sticky is enable. [#53803](https://github.com/ant-design/ant-design/pull/53803) [@afc163](https://github.com/afc163)
|
||||||
- 💄 Fix Input.Search `variant="filled"` broken UI. [#53787](https://github.com/ant-design/ant-design/pull/53787) [@afc163](https://github.com/afc163)
|
- 💄 Fix Input.Search `variant="filled"` broken UI. [#53787](https://github.com/ant-design/ant-design/pull/53787) [@afc163](https://github.com/afc163)
|
||||||
|
|
||||||
- TypeScript
|
- TypeScript
|
||||||
- 🤖 Fix Upload.Dragger does not accept generic parameter problem. [#53842](https://github.com/ant-design/ant-design/pull/53842) [@fnoopv](https://github.com/fnoopv)
|
- 🤖 Fix Upload.Dragger does not accept generic parameter problem. [#53842](https://github.com/ant-design/ant-design/pull/53842) [@fnoopv](https://github.com/fnoopv)
|
||||||
- 🤖 Remove Modal invalid properties type definition. [#53808](https://github.com/ant-design/ant-design/pull/53808) [@wanpan11](https://github.com/wanpan11)
|
- 🤖 Remove Modal invalid properties type definition. [#53808](https://github.com/ant-design/ant-design/pull/53808) [@wanpan11](https://github.com/wanpan11)
|
||||||
@ -67,7 +75,7 @@ tag: vVERSION
|
|||||||
- 🛠 MISC:Refactor compatible code, use standard web API first, and downgrade to deprecated API when not compatibale [#53107](https://github.com/ant-design/ant-design/pull/53107) [@li-jia-nan](https://github.com/li-jia-nan)
|
- 🛠 MISC:Refactor compatible code, use standard web API first, and downgrade to deprecated API when not compatibale [#53107](https://github.com/ant-design/ant-design/pull/53107) [@li-jia-nan](https://github.com/li-jia-nan)
|
||||||
- ⌨️ Opt Tour's `aria-*` props. [#53345](https://github.com/ant-design/ant-design/pull/53345) [@kiner-tang](https://github.com/kiner-tang)
|
- ⌨️ Opt Tour's `aria-*` props. [#53345](https://github.com/ant-design/ant-design/pull/53345) [@kiner-tang](https://github.com/kiner-tang)
|
||||||
- ⌨️ MISC: Optimized closable component's aria props. [#53410](https://github.com/ant-design/ant-design/pull/53410) [@kiner-tang](https://github.com/kiner-tang)
|
- ⌨️ MISC: Optimized closable component's aria props. [#53410](https://github.com/ant-design/ant-design/pull/53410) [@kiner-tang](https://github.com/kiner-tang)
|
||||||
- 🗑 MISC: Deprecate `destory*` of some components for `destroyOnHidden` prop。 [#53739](https://github.com/ant-design/ant-design/pull/53739) [@li-jia-nan](https://github.com/li-jia-nan)
|
- 🗑 MISC: Deprecate `destory*` of some components for `destroyOnHidden` prop. [#53739](https://github.com/ant-design/ant-design/pull/53739) [@li-jia-nan](https://github.com/li-jia-nan)
|
||||||
- 🗑 Deprecate `dropdownRender` of Dropdown for `popupRender` [#53263](https://github.com/ant-design/ant-design/pull/53263) [@aojunhao123](https://github.com/aojunhao123)
|
- 🗑 Deprecate `dropdownRender` of Dropdown for `popupRender` [#53263](https://github.com/ant-design/ant-design/pull/53263) [@aojunhao123](https://github.com/aojunhao123)
|
||||||
- 🗑 Deprecated `dropdown*` props in Cascader [#53133](https://github.com/ant-design/ant-design/pull/53133) [@aojunhao123](https://github.com/aojunhao123)
|
- 🗑 Deprecated `dropdown*` props in Cascader [#53133](https://github.com/ant-design/ant-design/pull/53133) [@aojunhao123](https://github.com/aojunhao123)
|
||||||
- 🇨🇿 Add cs_CZ locale for QRCode and ColorPicker. [#53741](https://github.com/ant-design/ant-design/pull/53741) [@malda26](https://github.com/malda26)
|
- 🇨🇿 Add cs_CZ locale for QRCode and ColorPicker. [#53741](https://github.com/ant-design/ant-design/pull/53741) [@malda26](https://github.com/malda26)
|
||||||
|
@ -15,6 +15,15 @@ tag: vVERSION
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 5.25.3
|
||||||
|
|
||||||
|
`2025-05-26`
|
||||||
|
|
||||||
|
- 🐞 修复 Typography.Text `delete` 属性无法更新的问题。[#53861](https://github.com/ant-design/ant-design/pull/53861) [@codingories](https://github.com/codingories)
|
||||||
|
- 🐞 修复 Statistic.Timer 组件作为 Tooltip 的子组件无法正常展示文字提示的问题。[#53888](https://github.com/ant-design/ant-design/pull/53888) [@jin19980928](https://github.com/jin19980928)
|
||||||
|
- 🐞 修复 Upload 组件在更多类型时 `style` 设置未生效的问题。[#53877](https://github.com/ant-design/ant-design/pull/53877) [@QuentinHsu](https://github.com/QuentinHsu)
|
||||||
|
- 💄 修复 Tabs 点击后有残留 focus 样式的问题。[#53901](https://github.com/ant-design/ant-design/pull/53901)
|
||||||
|
|
||||||
## 5.25.2
|
## 5.25.2
|
||||||
|
|
||||||
`2025-05-19`
|
`2025-05-19`
|
||||||
@ -24,7 +33,6 @@ tag: vVERSION
|
|||||||
- 🐞 修复 Statistic.Timer ssr 注水渲染不一致的问题。[#53817](https://github.com/ant-design/ant-design/pull/53817) [@zombieJ](https://github.com/zombieJ)
|
- 🐞 修复 Statistic.Timer ssr 注水渲染不一致的问题。[#53817](https://github.com/ant-design/ant-design/pull/53817) [@zombieJ](https://github.com/zombieJ)
|
||||||
- 🐞 修复 Table 开启 `sticky` 时的一个列头渲染闪烁问题。[#53803](https://github.com/ant-design/ant-design/pull/53803) [@afc163](https://github.com/afc163)
|
- 🐞 修复 Table 开启 `sticky` 时的一个列头渲染闪烁问题。[#53803](https://github.com/ant-design/ant-design/pull/53803) [@afc163](https://github.com/afc163)
|
||||||
- 💄 修复 Input.Search `variant="filled"` 的样式。[#53787](https://github.com/ant-design/ant-design/pull/53787) [@afc163](https://github.com/afc163)
|
- 💄 修复 Input.Search `variant="filled"` 的样式。[#53787](https://github.com/ant-design/ant-design/pull/53787) [@afc163](https://github.com/afc163)
|
||||||
|
|
||||||
- TypeScript
|
- TypeScript
|
||||||
- 🤖 修复 Upload.Dragger 不支持泛型参数的问题。[#53842](https://github.com/ant-design/ant-design/pull/53842) [@fnoopv](https://github.com/fnoopv)
|
- 🤖 修复 Upload.Dragger 不支持泛型参数的问题。[#53842](https://github.com/ant-design/ant-design/pull/53842) [@fnoopv](https://github.com/fnoopv)
|
||||||
- 🤖 移除 Modal 无效的属性类型定义。[#53808](https://github.com/ant-design/ant-design/pull/53808) [@wanpan11](https://github.com/wanpan11)
|
- 🤖 移除 Modal 无效的属性类型定义。[#53808](https://github.com/ant-design/ant-design/pull/53808) [@wanpan11](https://github.com/wanpan11)
|
||||||
@ -72,7 +80,6 @@ tag: vVERSION
|
|||||||
- 🗑 废弃 Cascader 组件的 `dropdown*` 等属性。[#53133](https://github.com/ant-design/ant-design/pull/53133) [@aojunhao123](https://github.com/aojunhao123)
|
- 🗑 废弃 Cascader 组件的 `dropdown*` 等属性。[#53133](https://github.com/ant-design/ant-design/pull/53133) [@aojunhao123](https://github.com/aojunhao123)
|
||||||
- 🇨🇿 添加 QRCode 和 ColorPicker 的捷克语(cs_CZ)支持。[#53741](https://github.com/ant-design/ant-design/pull/53741) [@malda26](https://github.com/malda26)
|
- 🇨🇿 添加 QRCode 和 ColorPicker 的捷克语(cs_CZ)支持。[#53741](https://github.com/ant-design/ant-design/pull/53741) [@malda26](https://github.com/malda26)
|
||||||
|
|
||||||
|
|
||||||
## 5.24.9
|
## 5.24.9
|
||||||
|
|
||||||
`2025-04-29`
|
`2025-04-29`
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
## zh-CN
|
## zh-CN
|
||||||
|
|
||||||
使用 `dropdownRender` 对下拉菜单进行自由扩展。如果你并不需要 Menu 内容,请直接使用 Popover 组件。
|
使用 `popupRender` 对下拉菜单进行自由扩展。如果你并不需要 Menu 内容,请直接使用 Popover 组件。
|
||||||
|
|
||||||
## en-US
|
## en-US
|
||||||
|
|
||||||
Customize the dropdown menu via `dropdownRender`. If you don't need the Menu content, use the Popover component directly.
|
Customize the dropdown menu via `popupRender`. If you don't need the Menu content, use the Popover component directly.
|
||||||
|
@ -25,6 +25,7 @@ export interface SearchProps extends InputProps {
|
|||||||
) => void;
|
) => void;
|
||||||
enterButton?: React.ReactNode;
|
enterButton?: React.ReactNode;
|
||||||
loading?: boolean;
|
loading?: boolean;
|
||||||
|
onPressEnter?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Search = React.forwardRef<InputRef, SearchProps>((props, ref) => {
|
const Search = React.forwardRef<InputRef, SearchProps>((props, ref) => {
|
||||||
@ -43,6 +44,7 @@ const Search = React.forwardRef<InputRef, SearchProps>((props, ref) => {
|
|||||||
onCompositionStart,
|
onCompositionStart,
|
||||||
onCompositionEnd,
|
onCompositionEnd,
|
||||||
variant,
|
variant,
|
||||||
|
onPressEnter: customOnPressEnter,
|
||||||
...restProps
|
...restProps
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
@ -85,6 +87,7 @@ const Search = React.forwardRef<InputRef, SearchProps>((props, ref) => {
|
|||||||
if (composedRef.current || loading) {
|
if (composedRef.current || loading) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
customOnPressEnter?.(e);
|
||||||
onSearch(e);
|
onSearch(e);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -219,4 +219,12 @@ describe('Input.Search', () => {
|
|||||||
container.querySelector('.ant-input-affix-wrapper')?.classList.contains('className'),
|
container.querySelector('.ant-input-affix-wrapper')?.classList.contains('className'),
|
||||||
).toBe(false);
|
).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// https://github.com/ant-design/ant-design/issues/53897
|
||||||
|
it('should trigger onPressEnter when press enter', () => {
|
||||||
|
const onPressEnter = jest.fn();
|
||||||
|
const { container } = render(<Search onPressEnter={onPressEnter} />);
|
||||||
|
fireEvent.keyDown(container.querySelector('input')!, { key: 'Enter', keyCode: 13 });
|
||||||
|
expect(onPressEnter).toHaveBeenCalledTimes(1);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -8942,6 +8942,343 @@ exports[`renders components/table/demo/expand.tsx correctly 1`] = `
|
|||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`renders components/table/demo/expand-sticky.tsx correctly 1`] = `
|
||||||
|
<div
|
||||||
|
class="css-var-test-id ant-table-css-var ant-table-wrapper"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="ant-spin-nested-loading css-var-test-id"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="ant-spin-container"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="ant-table ant-table-bordered css-var-test-id ant-table-css-var ant-table-has-fix-start"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="ant-table-container"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="ant-table-content"
|
||||||
|
>
|
||||||
|
<table
|
||||||
|
style="table-layout:auto"
|
||||||
|
>
|
||||||
|
<colgroup>
|
||||||
|
<col
|
||||||
|
style="width:100px"
|
||||||
|
/>
|
||||||
|
<col
|
||||||
|
class="ant-table-expand-icon-col"
|
||||||
|
/>
|
||||||
|
<col
|
||||||
|
style="width:150px"
|
||||||
|
/>
|
||||||
|
</colgroup>
|
||||||
|
<thead
|
||||||
|
class="ant-table-thead"
|
||||||
|
>
|
||||||
|
<tr>
|
||||||
|
<th
|
||||||
|
class="ant-table-cell ant-table-cell-fix ant-table-cell-fix-start"
|
||||||
|
scope="col"
|
||||||
|
style="inset-inline-start:0;--z-offset:12;--z-offset-reverse:6"
|
||||||
|
>
|
||||||
|
Team
|
||||||
|
</th>
|
||||||
|
<th
|
||||||
|
class="ant-table-cell ant-table-row-expand-icon-cell ant-table-cell-fix ant-table-cell-fix-start"
|
||||||
|
style="inset-inline-start:0;--z-offset:11;--z-offset-reverse:7"
|
||||||
|
/>
|
||||||
|
<th
|
||||||
|
class="ant-table-cell ant-table-cell-fix ant-table-cell-fix-start ant-table-cell-fix-start-shadow"
|
||||||
|
scope="col"
|
||||||
|
style="inset-inline-start:0;--z-offset:10;--z-offset-reverse:8"
|
||||||
|
>
|
||||||
|
Name
|
||||||
|
</th>
|
||||||
|
<th
|
||||||
|
class="ant-table-cell"
|
||||||
|
scope="col"
|
||||||
|
>
|
||||||
|
Age
|
||||||
|
</th>
|
||||||
|
<th
|
||||||
|
class="ant-table-cell"
|
||||||
|
scope="col"
|
||||||
|
>
|
||||||
|
Address
|
||||||
|
</th>
|
||||||
|
<th
|
||||||
|
class="ant-table-cell"
|
||||||
|
scope="col"
|
||||||
|
>
|
||||||
|
Action
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody
|
||||||
|
class="ant-table-tbody"
|
||||||
|
>
|
||||||
|
<tr
|
||||||
|
class="ant-table-row ant-table-row-level-0"
|
||||||
|
data-row-key="1"
|
||||||
|
>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-cell-fix ant-table-cell-fix-start"
|
||||||
|
rowspan="2"
|
||||||
|
style="inset-inline-start:0;--z-offset:12;--z-offset-reverse:6"
|
||||||
|
>
|
||||||
|
Team A
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-row-expand-icon-cell ant-table-cell-fix ant-table-cell-fix-start"
|
||||||
|
style="inset-inline-start:0;--z-offset:11;--z-offset-reverse:7"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-label="Expand row"
|
||||||
|
class="ant-table-row-expand-icon ant-table-row-expand-icon-collapsed"
|
||||||
|
type="button"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-cell-fix ant-table-cell-fix-start ant-table-cell-fix-start-shadow"
|
||||||
|
style="inset-inline-start:0;--z-offset:10;--z-offset-reverse:8"
|
||||||
|
>
|
||||||
|
John Brown
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
32
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
New York No. 1 Lake Park
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
<a>
|
||||||
|
Delete
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr
|
||||||
|
class="ant-table-row ant-table-row-level-0"
|
||||||
|
data-row-key="2"
|
||||||
|
>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-row-expand-icon-cell ant-table-cell-fix ant-table-cell-fix-start"
|
||||||
|
style="inset-inline-start:0;--z-offset:11;--z-offset-reverse:7"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-label="Expand row"
|
||||||
|
class="ant-table-row-expand-icon ant-table-row-expand-icon-collapsed"
|
||||||
|
type="button"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-cell-fix ant-table-cell-fix-start ant-table-cell-fix-start-shadow"
|
||||||
|
style="inset-inline-start:0;--z-offset:10;--z-offset-reverse:8"
|
||||||
|
>
|
||||||
|
Jim Green
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
42
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
London No. 1 Lake Park
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
<a>
|
||||||
|
Delete
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr
|
||||||
|
class="ant-table-row ant-table-row-level-0"
|
||||||
|
data-row-key="3"
|
||||||
|
>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-cell-fix ant-table-cell-fix-start"
|
||||||
|
rowspan="2"
|
||||||
|
style="inset-inline-start:0;--z-offset:12;--z-offset-reverse:6"
|
||||||
|
>
|
||||||
|
Team B
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-row-expand-icon-cell ant-table-cell-fix ant-table-cell-fix-start"
|
||||||
|
style="inset-inline-start:0;--z-offset:11;--z-offset-reverse:7"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-label="Expand row"
|
||||||
|
class="ant-table-row-expand-icon ant-table-row-expand-icon-collapsed"
|
||||||
|
type="button"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-cell-fix ant-table-cell-fix-start ant-table-cell-fix-start-shadow"
|
||||||
|
style="inset-inline-start:0;--z-offset:10;--z-offset-reverse:8"
|
||||||
|
>
|
||||||
|
Not Expandable
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
29
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
Jiangsu No. 1 Lake Park
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
<a>
|
||||||
|
Delete
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr
|
||||||
|
class="ant-table-row ant-table-row-level-0"
|
||||||
|
data-row-key="4"
|
||||||
|
>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-row-expand-icon-cell ant-table-cell-fix ant-table-cell-fix-start"
|
||||||
|
style="inset-inline-start:0;--z-offset:11;--z-offset-reverse:7"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-label="Expand row"
|
||||||
|
class="ant-table-row-expand-icon ant-table-row-expand-icon-collapsed"
|
||||||
|
type="button"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell ant-table-cell-fix ant-table-cell-fix-start ant-table-cell-fix-start-shadow"
|
||||||
|
style="inset-inline-start:0;--z-offset:10;--z-offset-reverse:8"
|
||||||
|
>
|
||||||
|
Joe Black
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
32
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
Sydney No. 1 Lake Park
|
||||||
|
</td>
|
||||||
|
<td
|
||||||
|
class="ant-table-cell"
|
||||||
|
>
|
||||||
|
<a>
|
||||||
|
Delete
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ul
|
||||||
|
class="ant-pagination ant-table-pagination ant-table-pagination-right css-var-test-id"
|
||||||
|
>
|
||||||
|
<li
|
||||||
|
aria-disabled="true"
|
||||||
|
class="ant-pagination-prev ant-pagination-disabled"
|
||||||
|
title="Previous Page"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
class="ant-pagination-item-link"
|
||||||
|
disabled=""
|
||||||
|
tabindex="-1"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
aria-label="left"
|
||||||
|
class="anticon anticon-left"
|
||||||
|
role="img"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
aria-hidden="true"
|
||||||
|
data-icon="left"
|
||||||
|
fill="currentColor"
|
||||||
|
focusable="false"
|
||||||
|
height="1em"
|
||||||
|
viewBox="64 64 896 896"
|
||||||
|
width="1em"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
class="ant-pagination-item ant-pagination-item-1 ant-pagination-item-active"
|
||||||
|
tabindex="0"
|
||||||
|
title="1"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
rel="nofollow"
|
||||||
|
>
|
||||||
|
1
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
aria-disabled="true"
|
||||||
|
class="ant-pagination-next ant-pagination-disabled"
|
||||||
|
title="Next Page"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
class="ant-pagination-item-link"
|
||||||
|
disabled=""
|
||||||
|
tabindex="-1"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
aria-label="right"
|
||||||
|
class="anticon anticon-right"
|
||||||
|
role="img"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
aria-hidden="true"
|
||||||
|
data-icon="right"
|
||||||
|
fill="currentColor"
|
||||||
|
focusable="false"
|
||||||
|
height="1em"
|
||||||
|
viewBox="64 64 896 896"
|
||||||
|
width="1em"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`renders components/table/demo/filter-in-tree.tsx correctly 1`] = `
|
exports[`renders components/table/demo/filter-in-tree.tsx correctly 1`] = `
|
||||||
<div
|
<div
|
||||||
class="css-var-test-id ant-table-css-var ant-table-wrapper"
|
class="css-var-test-id ant-table-css-var ant-table-wrapper"
|
||||||
|
7
components/table/demo/expand-sticky.md
Normal file
7
components/table/demo/expand-sticky.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
## zh-CN
|
||||||
|
|
||||||
|
使用 `expandedRowOffset` 自定义展开子表格偏移列数
|
||||||
|
|
||||||
|
## en-US
|
||||||
|
|
||||||
|
Use `expandedRowOffset` to customize the offset of the expanded sub-table columns index
|
81
components/table/demo/expand-sticky.tsx
Normal file
81
components/table/demo/expand-sticky.tsx
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Table } from 'antd';
|
||||||
|
import type { TableColumnsType } from 'antd';
|
||||||
|
|
||||||
|
interface DataType {
|
||||||
|
key: React.Key;
|
||||||
|
team: string;
|
||||||
|
name: string;
|
||||||
|
age: number;
|
||||||
|
address: string;
|
||||||
|
description: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const columns: TableColumnsType<DataType> = [
|
||||||
|
{
|
||||||
|
title: 'Team',
|
||||||
|
dataIndex: 'team',
|
||||||
|
key: 'team',
|
||||||
|
onCell: (__, index = 0) => (index % 2 === 0 ? { rowSpan: 2 } : { rowSpan: 0 }),
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
Table.EXPAND_COLUMN,
|
||||||
|
{ title: 'Name', dataIndex: 'name', key: 'name', width: 150 },
|
||||||
|
{ title: 'Age', dataIndex: 'age', key: 'age' },
|
||||||
|
{ title: 'Address', dataIndex: 'address', key: 'address' },
|
||||||
|
{
|
||||||
|
title: 'Action',
|
||||||
|
dataIndex: '',
|
||||||
|
key: 'x',
|
||||||
|
render: () => <a>Delete</a>,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const data: DataType[] = [
|
||||||
|
{
|
||||||
|
key: 1,
|
||||||
|
team: 'Team A',
|
||||||
|
name: 'John Brown',
|
||||||
|
age: 32,
|
||||||
|
address: 'New York No. 1 Lake Park',
|
||||||
|
description: 'My name is John Brown, I am 32 years old, living in New York No. 1 Lake Park.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 2,
|
||||||
|
team: 'Team A',
|
||||||
|
name: 'Jim Green',
|
||||||
|
age: 42,
|
||||||
|
address: 'London No. 1 Lake Park',
|
||||||
|
description: 'My name is Jim Green, I am 42 years old, living in London No. 1 Lake Park.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 3,
|
||||||
|
team: 'Team B',
|
||||||
|
name: 'Not Expandable',
|
||||||
|
age: 29,
|
||||||
|
address: 'Jiangsu No. 1 Lake Park',
|
||||||
|
description: 'This not expandable',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 4,
|
||||||
|
team: 'Team B',
|
||||||
|
name: 'Joe Black',
|
||||||
|
age: 32,
|
||||||
|
address: 'Sydney No. 1 Lake Park',
|
||||||
|
description: 'My name is Joe Black, I am 32 years old, living in Sydney No. 1 Lake Park.',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const App: React.FC = () => (
|
||||||
|
<Table<DataType>
|
||||||
|
bordered
|
||||||
|
columns={columns}
|
||||||
|
expandable={{
|
||||||
|
expandedRowOffset: 3,
|
||||||
|
expandedRowRender: (record) => <div>{record.description}</div>,
|
||||||
|
}}
|
||||||
|
dataSource={data}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
|
||||||
|
export default App;
|
@ -79,6 +79,7 @@ const columns = [
|
|||||||
<code src="./demo/narrow.tsx" debug>size</code>
|
<code src="./demo/narrow.tsx" debug>size</code>
|
||||||
<code src="./demo/bordered.tsx">border, title and footer</code>
|
<code src="./demo/bordered.tsx">border, title and footer</code>
|
||||||
<code src="./demo/expand.tsx">Expandable Row</code>
|
<code src="./demo/expand.tsx">Expandable Row</code>
|
||||||
|
<code src="./demo/expand-sticky.tsx">Customizable expansion position</code>
|
||||||
<code src="./demo/order-column.tsx">Order Specific Column</code>
|
<code src="./demo/order-column.tsx">Order Specific Column</code>
|
||||||
<code src="./demo/colspan-rowspan.tsx">colSpan and rowSpan</code>
|
<code src="./demo/colspan-rowspan.tsx">colSpan and rowSpan</code>
|
||||||
<code src="./demo/tree-data.tsx">Tree data</code>
|
<code src="./demo/tree-data.tsx">Tree data</code>
|
||||||
@ -258,6 +259,7 @@ Properties for expandable.
|
|||||||
| showExpandColumn | Show expand column | boolean | true | 4.18.0 |
|
| showExpandColumn | Show expand column | boolean | true | 4.18.0 |
|
||||||
| onExpand | Callback executed when the row expand icon is clicked | function(expanded, record) | - | |
|
| onExpand | Callback executed when the row expand icon is clicked | function(expanded, record) | - | |
|
||||||
| onExpandedRowsChange | Callback executed when the expanded rows change | function(expandedRows) | - | |
|
| onExpandedRowsChange | Callback executed when the expanded rows change | function(expandedRows) | - | |
|
||||||
|
| expandedRowOffset | The offset of the expanded row, setting this will force the previous columns to be fixed | number | - | 5.26.0 |
|
||||||
|
|
||||||
### rowSelection
|
### rowSelection
|
||||||
|
|
||||||
|
@ -80,6 +80,7 @@ const columns = [
|
|||||||
<code src="./demo/narrow.tsx" debug>紧凑型</code>
|
<code src="./demo/narrow.tsx" debug>紧凑型</code>
|
||||||
<code src="./demo/bordered.tsx">带边框</code>
|
<code src="./demo/bordered.tsx">带边框</code>
|
||||||
<code src="./demo/expand.tsx">可展开</code>
|
<code src="./demo/expand.tsx">可展开</code>
|
||||||
|
<code src="./demo/expand-sticky.tsx">可自定义展开位置</code>
|
||||||
<code src="./demo/order-column.tsx">特殊列排序</code>
|
<code src="./demo/order-column.tsx">特殊列排序</code>
|
||||||
<code src="./demo/colspan-rowspan.tsx">表格行/列合并</code>
|
<code src="./demo/colspan-rowspan.tsx">表格行/列合并</code>
|
||||||
<code src="./demo/tree-data.tsx">树形数据展示</code>
|
<code src="./demo/tree-data.tsx">树形数据展示</code>
|
||||||
@ -260,6 +261,7 @@ const columns = [
|
|||||||
| showExpandColumn | 是否显示展开图标列 | boolean | true | 4.18.0 |
|
| showExpandColumn | 是否显示展开图标列 | boolean | true | 4.18.0 |
|
||||||
| onExpand | 点击展开图标时触发 | function(expanded, record) | - | |
|
| onExpand | 点击展开图标时触发 | function(expanded, record) | - | |
|
||||||
| onExpandedRowsChange | 展开的行变化时触发 | function(expandedRows) | - | |
|
| onExpandedRowsChange | 展开的行变化时触发 | function(expandedRows) | - | |
|
||||||
|
| expandedRowOffset | 展开行的偏移列数,设置会后强制将其前面的列设置为固定列 | number | - | 5.26.0 |
|
||||||
|
|
||||||
### rowSelection
|
### rowSelection
|
||||||
|
|
||||||
|
@ -20,12 +20,12 @@ In v5, the combination of Button variants and color would create a repetitive se
|
|||||||
/* Sample code. Not used in real world. */
|
/* Sample code. Not used in real world. */
|
||||||
.ant-btn-solid.ant-btn-red {
|
.ant-btn-solid.ant-btn-red {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background: 1px solid red;
|
background: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-btn-solid.ant-btn-blue {
|
.ant-btn-solid.ant-btn-blue {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background: 1px solid blue;
|
background: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-btn-outlined.ant-btn-red {
|
.ant-btn-outlined.ant-btn-red {
|
||||||
@ -170,17 +170,13 @@ If there is one of the most enticing properties in CSS, it would be `@scope`. In
|
|||||||
|
|
||||||
```css
|
```css
|
||||||
/* Theme 1 */
|
/* Theme 1 */
|
||||||
:where(.css-BamBoo) {
|
:where(.css-BamBoo).ant-btn {
|
||||||
.ant-btn {
|
color: red;
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Theme 2 */
|
/* Theme 2 */
|
||||||
:where(.css-LIghT) {
|
:where(.css-LIghT).ant-btn {
|
||||||
.ant-btn {
|
color: blue;
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -20,12 +20,12 @@ Ant Design v6 的开发过程中,由于不需要再考虑 IE 的兼容问题
|
|||||||
/* Sample code. Not used in real world. */
|
/* Sample code. Not used in real world. */
|
||||||
.ant-btn-solid.ant-btn-red {
|
.ant-btn-solid.ant-btn-red {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background: 1px solid red;
|
background: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-btn-solid.ant-btn-blue {
|
.ant-btn-solid.ant-btn-blue {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background: 1px solid blue;
|
background: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-btn-outlined.ant-btn-red {
|
.ant-btn-outlined.ant-btn-red {
|
||||||
@ -188,17 +188,13 @@ const Sample = () => {
|
|||||||
|
|
||||||
```css
|
```css
|
||||||
/* Theme 1 */
|
/* Theme 1 */
|
||||||
:where(.css-BamBoo) {
|
:where(.css-BamBoo).component-a span {
|
||||||
.component-a span {
|
color: red;
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Theme 2 */
|
/* Theme 2 */
|
||||||
:where(.css-LIghT) {
|
:where(.css-LIghT).component-b {
|
||||||
.component-b {
|
color: blue;
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "antd",
|
"name": "antd",
|
||||||
"version": "5.25.2",
|
"version": "5.25.3",
|
||||||
"description": "An enterprise-class UI design language and React components implementation",
|
"description": "An enterprise-class UI design language and React components implementation",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"funding": {
|
"funding": {
|
||||||
@ -134,7 +134,7 @@
|
|||||||
"@rc-component/qrcode": "~1.0.0",
|
"@rc-component/qrcode": "~1.0.0",
|
||||||
"@rc-component/resize-observer": "^1.0.0",
|
"@rc-component/resize-observer": "^1.0.0",
|
||||||
"@rc-component/segmented": "~1.1.0",
|
"@rc-component/segmented": "~1.1.0",
|
||||||
"@rc-component/select": "~1.0.3",
|
"@rc-component/select": "1.0.4",
|
||||||
"@rc-component/steps": "~1.1.0",
|
"@rc-component/steps": "~1.1.0",
|
||||||
"@rc-component/switch": "~1.0.0",
|
"@rc-component/switch": "~1.0.0",
|
||||||
"@rc-component/table": "~1.4.0",
|
"@rc-component/table": "~1.4.0",
|
||||||
@ -151,7 +151,7 @@
|
|||||||
"rc-checkbox": "~3.5.0",
|
"rc-checkbox": "~3.5.0",
|
||||||
"rc-rate": "~2.13.1",
|
"rc-rate": "~2.13.1",
|
||||||
"rc-slider": "~11.1.8",
|
"rc-slider": "~11.1.8",
|
||||||
"rc-upload": "~4.9.0",
|
"rc-upload": "~4.9.2",
|
||||||
"rc-util": "^5.44.4",
|
"rc-util": "^5.44.4",
|
||||||
"scroll-into-view-if-needed": "^3.1.0",
|
"scroll-into-view-if-needed": "^3.1.0",
|
||||||
"throttle-debounce": "^5.0.2"
|
"throttle-debounce": "^5.0.2"
|
||||||
@ -179,7 +179,7 @@
|
|||||||
"@madccc/duplicate-package-checker-webpack-plugin": "^1.0.0",
|
"@madccc/duplicate-package-checker-webpack-plugin": "^1.0.0",
|
||||||
"@microflash/rehype-figure": "^2.1.1",
|
"@microflash/rehype-figure": "^2.1.1",
|
||||||
"@npmcli/run-script": "^9.0.1",
|
"@npmcli/run-script": "^9.0.1",
|
||||||
"@octokit/rest": "^21.0.2",
|
"@octokit/rest": "^22.0.0",
|
||||||
"@prettier/sync": "^0.5.4",
|
"@prettier/sync": "^0.5.4",
|
||||||
"@qixian.cs/github-contributors-list": "^2.0.2",
|
"@qixian.cs/github-contributors-list": "^2.0.2",
|
||||||
"@size-limit/file": "^11.1.6",
|
"@size-limit/file": "^11.1.6",
|
||||||
|
Loading…
Reference in New Issue
Block a user