mirror of
https://github.com/ant-design/ant-design.git
synced 2024-11-24 19:19:57 +08:00
commit
76b1ad60d2
12
.github/workflows/chain-alert.yml
vendored
Normal file
12
.github/workflows/chain-alert.yml
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
name: ChainAlert
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
jobs:
|
||||||
|
chainalert:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: checkmarx/chainalert-github-action@v1
|
@ -13,7 +13,7 @@ timeline: true
|
|||||||
- 次版本号:每月发布一个带有新特性的向下兼容的版本。
|
- 次版本号:每月发布一个带有新特性的向下兼容的版本。
|
||||||
- 主版本号:含有破坏性更新和新特性,不在发布周期内。
|
- 主版本号:含有破坏性更新和新特性,不在发布周期内。
|
||||||
|
|
||||||
--
|
---
|
||||||
|
|
||||||
## 4.19.2
|
## 4.19.2
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
&:not(&-not-a-wrapper) &-count,
|
&:not(&-not-a-wrapper) &-count,
|
||||||
&:not(&-not-a-wrapper) &-dot,
|
&:not(&-not-a-wrapper) &-dot,
|
||||||
&:not(&-not-a-wrapper) .@{number-prefix-cls}-custom-component {
|
&:not(&-not-a-wrapper) .@{number-prefix-cls}-custom-component {
|
||||||
.@{badge-prefix-cls}-rtl & {
|
.@{badge-prefix-cls}-rtl& {
|
||||||
right: auto;
|
right: auto;
|
||||||
left: 0;
|
left: 0;
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
@import '../../style/mixins/index';
|
@import '../../style/mixins/index';
|
||||||
@import './mixin';
|
@import './mixin';
|
||||||
|
|
||||||
@row-prefix-cls: ~'@{ant-prefix}-row';
|
|
||||||
@col-prefix-cls: ~'@{ant-prefix}-col';
|
|
||||||
|
|
||||||
// Grid system
|
// Grid system
|
||||||
.@{row-prefix-cls} {
|
.@{row-prefix-cls} {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -1,49 +1,52 @@
|
|||||||
@import '../../style/mixins/index';
|
@import '../../style/mixins/index';
|
||||||
|
|
||||||
|
@row-prefix-cls: ~'@{ant-prefix}-row';
|
||||||
|
@col-prefix-cls: ~'@{ant-prefix}-col';
|
||||||
|
|
||||||
// mixins for grid system
|
// mixins for grid system
|
||||||
// ------------------------
|
// ------------------------
|
||||||
|
|
||||||
.loop-grid-columns(@index, @class) when (@index > 0) {
|
.loop-grid-columns(@index, @class) when (@index > 0) {
|
||||||
.@{ant-prefix}-col@{class}-@{index} {
|
.@{col-prefix-cls}@{class}-@{index} {
|
||||||
display: block;
|
display: block;
|
||||||
flex: 0 0 percentage((@index / @grid-columns));
|
flex: 0 0 percentage((@index / @grid-columns));
|
||||||
max-width: percentage((@index / @grid-columns));
|
max-width: percentage((@index / @grid-columns));
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col@{class}-push-@{index} {
|
.@{col-prefix-cls}@{class}-push-@{index} {
|
||||||
left: percentage((@index / @grid-columns));
|
left: percentage((@index / @grid-columns));
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col@{class}-pull-@{index} {
|
.@{col-prefix-cls}@{class}-pull-@{index} {
|
||||||
right: percentage((@index / @grid-columns));
|
right: percentage((@index / @grid-columns));
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col@{class}-offset-@{index} {
|
.@{col-prefix-cls}@{class}-offset-@{index} {
|
||||||
margin-left: percentage((@index / @grid-columns));
|
margin-left: percentage((@index / @grid-columns));
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col@{class}-order-@{index} {
|
.@{col-prefix-cls}@{class}-order-@{index} {
|
||||||
order: @index;
|
order: @index;
|
||||||
}
|
}
|
||||||
.loop-grid-columns((@index - 1), @class);
|
.loop-grid-columns((@index - 1), @class);
|
||||||
}
|
}
|
||||||
|
|
||||||
.loop-grid-columns(@index, @class) when (@index = 0) {
|
.loop-grid-columns(@index, @class) when (@index = 0) {
|
||||||
.@{ant-prefix}-col@{class}-@{index} {
|
.@{col-prefix-cls}@{class}-@{index} {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col-push-@{index} {
|
.@{col-prefix-cls}-push-@{index} {
|
||||||
left: auto;
|
left: auto;
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col-pull-@{index} {
|
.@{col-prefix-cls}-pull-@{index} {
|
||||||
right: auto;
|
right: auto;
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col@{class}-push-@{index} {
|
.@{col-prefix-cls}@{class}-push-@{index} {
|
||||||
left: auto;
|
left: auto;
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col@{class}-pull-@{index} {
|
.@{col-prefix-cls}@{class}-pull-@{index} {
|
||||||
right: auto;
|
right: auto;
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col@{class}-offset-@{index} {
|
.@{col-prefix-cls}@{class}-offset-@{index} {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
.@{ant-prefix}-col@{class}-order-@{index} {
|
.@{col-prefix-cls}@{class}-order-@{index} {
|
||||||
order: 0;
|
order: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
@import '../../style/themes/index';
|
@import '../../style/themes/index';
|
||||||
@import '../../style/mixins/index';
|
@import '../../style/mixins/index';
|
||||||
|
@import './mixin';
|
||||||
|
|
||||||
.@{ant-prefix}-row {
|
.@{row-prefix-cls} {
|
||||||
&-rtl {
|
&-rtl {
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
}
|
}
|
||||||
@ -9,25 +10,25 @@
|
|||||||
|
|
||||||
// mixin
|
// mixin
|
||||||
.loop-grid-columns(@index, @class) when (@index > 0) {
|
.loop-grid-columns(@index, @class) when (@index > 0) {
|
||||||
.@{ant-prefix}-col@{class}-push-@{index} {
|
.@{col-prefix-cls}@{class}-push-@{index} {
|
||||||
// reset property in RTL direction
|
// reset property in RTL direction
|
||||||
&.@{ant-prefix}-col-rtl {
|
&.@{col-prefix-cls}-rtl {
|
||||||
right: percentage((@index / @grid-columns));
|
right: percentage((@index / @grid-columns));
|
||||||
left: auto;
|
left: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{ant-prefix}-col@{class}-pull-@{index} {
|
.@{col-prefix-cls}@{class}-pull-@{index} {
|
||||||
// reset property in RTL direction
|
// reset property in RTL direction
|
||||||
&.@{ant-prefix}-col-rtl {
|
&.@{col-prefix-cls}-rtl {
|
||||||
right: auto;
|
right: auto;
|
||||||
left: percentage((@index / @grid-columns));
|
left: percentage((@index / @grid-columns));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{ant-prefix}-col@{class}-offset-@{index} {
|
.@{col-prefix-cls}@{class}-offset-@{index} {
|
||||||
// reset property in RTL direction
|
// reset property in RTL direction
|
||||||
&.@{ant-prefix}-col-rtl {
|
&.@{col-prefix-cls}-rtl {
|
||||||
margin-right: percentage((@index / @grid-columns));
|
margin-right: percentage((@index / @grid-columns));
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
@ -35,33 +36,33 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.loop-grid-columns(@index, @class) when (@index = 0) {
|
.loop-grid-columns(@index, @class) when (@index = 0) {
|
||||||
.@{ant-prefix}-col-push-@{index} {
|
.@{col-prefix-cls}-push-@{index} {
|
||||||
// reset property in RTL direction
|
// reset property in RTL direction
|
||||||
&.@{ant-prefix}-col-rtl {
|
&.@{col-prefix-cls}-rtl {
|
||||||
right: auto;
|
right: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{ant-prefix}-col-pull-@{index} {
|
.@{col-prefix-cls}-pull-@{index} {
|
||||||
&.@{ant-prefix}-col-rtl {
|
&.@{col-prefix-cls}-rtl {
|
||||||
left: auto;
|
left: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{ant-prefix}-col@{class}-push-@{index} {
|
.@{col-prefix-cls}@{class}-push-@{index} {
|
||||||
&.@{ant-prefix}-col-rtl {
|
&.@{col-prefix-cls}-rtl {
|
||||||
right: auto;
|
right: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{ant-prefix}-col@{class}-pull-@{index} {
|
.@{col-prefix-cls}@{class}-pull-@{index} {
|
||||||
&.@{ant-prefix}-col-rtl {
|
&.@{col-prefix-cls}-rtl {
|
||||||
left: auto;
|
left: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.@{ant-prefix}-col@{class}-offset-@{index} {
|
.@{col-prefix-cls}@{class}-offset-@{index} {
|
||||||
&.@{ant-prefix}-col-rtl {
|
&.@{col-prefix-cls}-rtl {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ const Input = forwardRef<InputRef, InputProps>((props, ref) => {
|
|||||||
const prefixCls = getPrefixCls('input', customizePrefixCls);
|
const prefixCls = getPrefixCls('input', customizePrefixCls);
|
||||||
const inputRef = useRef<InputRef>(null);
|
const inputRef = useRef<InputRef>(null);
|
||||||
|
|
||||||
// ===================== Status =====================
|
// ===================== Size =====================
|
||||||
const size = React.useContext(SizeContext);
|
const size = React.useContext(SizeContext);
|
||||||
const mergedSize = customSize || size;
|
const mergedSize = customSize || size;
|
||||||
|
|
||||||
|
17
components/input/__tests__/type.test.tsx
Normal file
17
components/input/__tests__/type.test.tsx
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { mount } from 'enzyme';
|
||||||
|
import Input from '..';
|
||||||
|
import { InputProps } from '../Input';
|
||||||
|
|
||||||
|
describe('Input types', () => {
|
||||||
|
it('should support data-attributes', () => {
|
||||||
|
const dataProps: InputProps = {
|
||||||
|
'data-test': 'test',
|
||||||
|
size: 'large',
|
||||||
|
};
|
||||||
|
const wrapper = mount(<Input {...dataProps} />);
|
||||||
|
expect(wrapper.find('input').prop('data-test')).toBe('test');
|
||||||
|
const wrapper2 = mount(<Input data-test="test" size="large" />);
|
||||||
|
expect(wrapper2.find('input').prop('data-test')).toBe('test');
|
||||||
|
});
|
||||||
|
});
|
@ -29,7 +29,7 @@ A basic widget for getting the user input is a text field. Keyboard and mouse ca
|
|||||||
| showCount | Whether show text count | boolean \| { formatter: ({ count: number, maxLength?: number }) => ReactNode } | false | 4.18.0 |
|
| showCount | Whether show text count | boolean \| { formatter: ({ count: number, maxLength?: number }) => ReactNode } | false | 4.18.0 |
|
||||||
| status | Set validation status | 'error' \| 'warning' | - | 4.19.0 |
|
| status | Set validation status | 'error' \| 'warning' | - | 4.19.0 |
|
||||||
| prefix | The prefix icon for the Input | ReactNode | - | |
|
| prefix | The prefix icon for the Input | ReactNode | - | |
|
||||||
| size | The size of the input box. Note: in the context of a form, the `large` size is used | `large` \| `middle` \| `small` | - | |
|
| size | The size of the input box. Note: in the context of a form, the `middle` size is used | `large` \| `middle` \| `small` | - | |
|
||||||
| suffix | The suffix icon for the Input | ReactNode | - | |
|
| suffix | The suffix icon for the Input | ReactNode | - | |
|
||||||
| type | The type of input, see: [MDN](https://developer.mozilla.org/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types)( use `Input.TextArea` instead of `type="textarea"`) | string | `text` | |
|
| type | The type of input, see: [MDN](https://developer.mozilla.org/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types)( use `Input.TextArea` instead of `type="textarea"`) | string | `text` | |
|
||||||
| value | The input content value | string | - | |
|
| value | The input content value | string | - | |
|
||||||
|
@ -30,7 +30,7 @@ cover: https://gw.alipayobjects.com/zos/alicdn/xS9YEJhfe/Input.svg
|
|||||||
| showCount | 是否展示字数 | boolean \| { formatter: ({ count: number, maxLength?: number }) => ReactNode } | false | 4.18.0 |
|
| showCount | 是否展示字数 | boolean \| { formatter: ({ count: number, maxLength?: number }) => ReactNode } | false | 4.18.0 |
|
||||||
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
|
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
|
||||||
| prefix | 带有前缀图标的 input | ReactNode | - | |
|
| prefix | 带有前缀图标的 input | ReactNode | - | |
|
||||||
| size | 控件大小。注:标准表单内的输入框大小限制为 `large` | `large` \| `middle` \| `small` | - | |
|
| size | 控件大小。注:标准表单内的输入框大小限制为 `middle` | `large` \| `middle` \| `small` | - | |
|
||||||
| suffix | 带有后缀图标的 input | ReactNode | - | |
|
| suffix | 带有后缀图标的 input | ReactNode | - | |
|
||||||
| type | 声明 input 类型,同原生 input 标签的 type 属性,见:[MDN](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input#属性)(请直接使用 `Input.TextArea` 代替 `type="textarea"`) | string | `text` | |
|
| type | 声明 input 类型,同原生 input 标签的 type 属性,见:[MDN](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input#属性)(请直接使用 `Input.TextArea` 代替 `type="textarea"`) | string | `text` | |
|
||||||
| value | 输入框内容 | string | - | |
|
| value | 输入框内容 | string | - | |
|
||||||
|
@ -17,6 +17,8 @@ const localeValues: Locale = {
|
|||||||
filterTitle: 'Menù Filtro',
|
filterTitle: 'Menù Filtro',
|
||||||
filterConfirm: 'OK',
|
filterConfirm: 'OK',
|
||||||
filterReset: 'Reset',
|
filterReset: 'Reset',
|
||||||
|
selectNone: 'Deseleziona tutto',
|
||||||
|
selectionAll: 'Seleziona tutto',
|
||||||
selectAll: 'Seleziona pagina corrente',
|
selectAll: 'Seleziona pagina corrente',
|
||||||
selectInvert: 'Inverti selezione nella pagina corrente',
|
selectInvert: 'Inverti selezione nella pagina corrente',
|
||||||
sortTitle: 'Ordina',
|
sortTitle: 'Ordina',
|
||||||
|
@ -6,7 +6,7 @@ import TimePicker from '../time-picker/locale/lt_LT';
|
|||||||
import Calendar from '../calendar/locale/lt_LT';
|
import Calendar from '../calendar/locale/lt_LT';
|
||||||
import { Locale } from '../locale-provider';
|
import { Locale } from '../locale-provider';
|
||||||
|
|
||||||
const typeTemplate: string = '${label} не является типом ${type}';
|
const typeTemplate: string = '${label} neatitinka tipo ${type}';
|
||||||
|
|
||||||
const localeValues: Locale = {
|
const localeValues: Locale = {
|
||||||
locale: 'lt',
|
locale: 'lt',
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
|
|
||||||
&-disabled &-star {
|
&-disabled &-star {
|
||||||
cursor: default;
|
cursor: default;
|
||||||
|
|
||||||
&:hover {
|
> div:hover {
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -201,7 +201,7 @@
|
|||||||
}
|
}
|
||||||
.@{tooltip-prefix-cls}-arrow {
|
.@{tooltip-prefix-cls}-arrow {
|
||||||
&-content::before {
|
&-content::before {
|
||||||
background-color: @@lightColor;
|
background: @@lightColor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,7 @@ Tree selection control.
|
|||||||
| treeDefaultExpandedKeys | Default expanded treeNodes | string\[] | - | |
|
| treeDefaultExpandedKeys | Default expanded treeNodes | string\[] | - | |
|
||||||
| treeExpandedKeys | Set expanded keys | string\[] | - | |
|
| treeExpandedKeys | Set expanded keys | string\[] | - | |
|
||||||
| treeIcon | Shows the icon before a TreeNode's title. There is no default style; you must set a custom style for it if set to `true` | boolean | false | |
|
| treeIcon | Shows the icon before a TreeNode's title. There is no default style; you must set a custom style for it if set to `true` | boolean | false | |
|
||||||
|
| treeLoadedKeys | (Controlled) Set loaded tree nodes, work with `loadData` only | string[] | [] | |
|
||||||
| treeLine | Show the line. Ref [Tree - showLine](/components/tree/#components-tree-demo-line) | boolean \| object | false | 4.17.0 |
|
| treeLine | Show the line. Ref [Tree - showLine](/components/tree/#components-tree-demo-line) | boolean \| object | false | 4.17.0 |
|
||||||
| treeNodeFilterProp | Will be used for filtering if `filterTreeNode` returns true | string | `value` | |
|
| treeNodeFilterProp | Will be used for filtering if `filterTreeNode` returns true | string | `value` | |
|
||||||
| treeNodeLabelProp | Will render as content of select | string | `title` | |
|
| treeNodeLabelProp | Will render as content of select | string | `title` | |
|
||||||
|
@ -57,6 +57,7 @@ cover: https://gw.alipayobjects.com/zos/alicdn/Ax4DA0njr/TreeSelect.svg
|
|||||||
| treeExpandedKeys | 设置展开的树节点 | string\[] | - | |
|
| treeExpandedKeys | 设置展开的树节点 | string\[] | - | |
|
||||||
| treeIcon | 是否展示 TreeNode title 前的图标,没有默认样式,如设置为 true,需要自行定义图标相关样式 | boolean | false | |
|
| treeIcon | 是否展示 TreeNode title 前的图标,没有默认样式,如设置为 true,需要自行定义图标相关样式 | boolean | false | |
|
||||||
| treeLine | 是否展示线条样式,请参考 [Tree - showLine](/components/tree/#components-tree-demo-line) | boolean \| object | false | 4.17.0 |
|
| treeLine | 是否展示线条样式,请参考 [Tree - showLine](/components/tree/#components-tree-demo-line) | boolean \| object | false | 4.17.0 |
|
||||||
|
| treeLoadedKeys | (受控)已经加载的节点,需要配合 `loadData` 使用 | string[] | [] | |
|
||||||
| treeNodeFilterProp | 输入项过滤对应的 treeNode 属性 | string | `value` | |
|
| treeNodeFilterProp | 输入项过滤对应的 treeNode 属性 | string | `value` | |
|
||||||
| treeNodeLabelProp | 作为显示的 prop 设置 | string | `title` | |
|
| treeNodeLabelProp | 作为显示的 prop 设置 | string | `title` | |
|
||||||
| value | 指定当前选中的条目 | string \| string\[] | - | |
|
| value | 指定当前选中的条目 | string \| string\[] | - | |
|
||||||
|
@ -45,7 +45,6 @@ Almost anything can be represented in a tree structure. Examples include directo
|
|||||||
| switcherIcon | Customize collapse/expand icon of tree node | ReactNode | - | |
|
| switcherIcon | Customize collapse/expand icon of tree node | ReactNode | - | |
|
||||||
| titleRender | Customize tree node title render | (nodeData) => ReactNode | - | 4.5.0 |
|
| titleRender | Customize tree node title render | (nodeData) => ReactNode | - | 4.5.0 |
|
||||||
| treeData | The treeNodes data Array, if set it then you need not to construct children TreeNode. (key should be unique across the whole array) | array<{ key, title, children, \[disabled, selectable] }> | - | |
|
| treeData | The treeNodes data Array, if set it then you need not to construct children TreeNode. (key should be unique across the whole array) | array<{ key, title, children, \[disabled, selectable] }> | - | |
|
||||||
| treeLoadedKeys | (Controlled) Set loaded tree nodes, work with `loadData` only | string[] | [] | |
|
|
||||||
| virtual | Disable virtual scroll when set to false | boolean | true | 4.1.0 |
|
| virtual | Disable virtual scroll when set to false | boolean | true | 4.1.0 |
|
||||||
| onCheck | Callback function for when the onCheck event occurs | function(checkedKeys, e:{checked: bool, checkedNodes, node, event, halfCheckedKeys}) | - | |
|
| onCheck | Callback function for when the onCheck event occurs | function(checkedKeys, e:{checked: bool, checkedNodes, node, event, halfCheckedKeys}) | - | |
|
||||||
| onDragEnd | Callback function for when the onDragEnd event occurs | function({event, node}) | - | |
|
| onDragEnd | Callback function for when the onDragEnd event occurs | function({event, node}) | - | |
|
||||||
|
@ -46,7 +46,6 @@ cover: https://gw.alipayobjects.com/zos/alicdn/Xh-oWqg9k/Tree.svg
|
|||||||
| switcherIcon | 自定义树节点的展开/折叠图标 | ReactNode | - | |
|
| switcherIcon | 自定义树节点的展开/折叠图标 | ReactNode | - | |
|
||||||
| titleRender | 自定义渲染节点 | (nodeData) => ReactNode | - | 4.5.0 |
|
| titleRender | 自定义渲染节点 | (nodeData) => ReactNode | - | 4.5.0 |
|
||||||
| treeData | treeNodes 数据,如果设置则不需要手动构造 TreeNode 节点(key 在整个树范围内唯一) | array<{key, title, children, \[disabled, selectable]}> | - | |
|
| treeData | treeNodes 数据,如果设置则不需要手动构造 TreeNode 节点(key 在整个树范围内唯一) | array<{key, title, children, \[disabled, selectable]}> | - | |
|
||||||
| treeLoadedKeys | (受控)已经加载的节点,需要配合 `loadData` 使用 | string[] | [] | |
|
|
||||||
| virtual | 设置 false 时关闭虚拟滚动 | boolean | true | 4.1.0 |
|
| virtual | 设置 false 时关闭虚拟滚动 | boolean | true | 4.1.0 |
|
||||||
| onCheck | 点击复选框触发 | function(checkedKeys, e:{checked: bool, checkedNodes, node, event, halfCheckedKeys}) | - | |
|
| onCheck | 点击复选框触发 | function(checkedKeys, e:{checked: bool, checkedNodes, node, event, halfCheckedKeys}) | - | |
|
||||||
| onDragEnd | dragend 触发时调用 | function({event, node}) | - | |
|
| onDragEnd | dragend 触发时调用 | function({event, node}) | - | |
|
||||||
|
@ -39,6 +39,7 @@ title: Third-Party Libraries
|
|||||||
| Animation | [react-move](https://github.com/react-tools/react-move) [Ant Motion](https://motion.ant.design/components/tween-one) [react-spring](https://www.react-spring.io) |
|
| Animation | [react-move](https://github.com/react-tools/react-move) [Ant Motion](https://motion.ant.design/components/tween-one) [react-spring](https://www.react-spring.io) |
|
||||||
| Page Footer | [rc-footer](https://github.com/react-component/footer) |
|
| Page Footer | [rc-footer](https://github.com/react-component/footer) |
|
||||||
| Water Mark | [WaterMark](https://procomponents.ant.design/components/water-mark) |
|
| Water Mark | [WaterMark](https://procomponents.ant.design/components/water-mark) |
|
||||||
|
| Currency | [react-number-format](https://github.com/s-yadav/react-number-format) [react-currency-input-fiel](https://github.com/cchanxzy/react-currency-input-field) |
|
||||||
|
|
||||||
## Products we are using ✨
|
## Products we are using ✨
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@ title: 社区精选组件
|
|||||||
| 动画 | [react-move](https://github.com/react-tools/react-move) [Ant Motion](https://motion.ant.design/components/tween-one) [react-spring](https://www.react-spring.io) |
|
| 动画 | [react-move](https://github.com/react-tools/react-move) [Ant Motion](https://motion.ant.design/components/tween-one) [react-spring](https://www.react-spring.io) |
|
||||||
| 页脚 | [rc-footer](https://github.com/react-component/footer) |
|
| 页脚 | [rc-footer](https://github.com/react-component/footer) |
|
||||||
| 水印 | [WaterMark](https://procomponents.ant.design/components/water-mark) |
|
| 水印 | [WaterMark](https://procomponents.ant.design/components/water-mark) |
|
||||||
|
| 金额格式化 | [react-number-format](https://github.com/s-yadav/react-number-format) [react-currency-input-fiel](https://github.com/cchanxzy/react-currency-input-field) |
|
||||||
|
|
||||||
## 推荐产品 ✨
|
## 推荐产品 ✨
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@
|
|||||||
"@testing-library/jest-dom": "^5.16.2",
|
"@testing-library/jest-dom": "^5.16.2",
|
||||||
"@testing-library/react": "^12.1.4",
|
"@testing-library/react": "^12.1.4",
|
||||||
"@types/enzyme": "^3.10.5",
|
"@types/enzyme": "^3.10.5",
|
||||||
"@types/gtag.js": "^0.0.8",
|
"@types/gtag.js": "^0.0.10",
|
||||||
"@types/jest": "^27.0.0",
|
"@types/jest": "^27.0.0",
|
||||||
"@types/jest-axe": "^3.5.3",
|
"@types/jest-axe": "^3.5.3",
|
||||||
"@types/jest-environment-puppeteer": "^5.0.0",
|
"@types/jest-environment-puppeteer": "^5.0.0",
|
||||||
|
Loading…
Reference in New Issue
Block a user