mirror of
https://github.com/ant-design/ant-design.git
synced 2025-08-05 23:46:28 +08:00
feat: Merge TimePicker disabledXXX into disabledTime (#33503)
* feat: merge disabledXXX into disabledTime * chore: fix ts
This commit is contained in:
parent
b05aa89908
commit
be231f9fb5
@ -27,13 +27,18 @@ function toArray<T>(list: T | T[]): T[] {
|
||||
return Array.isArray(list) ? list : [list];
|
||||
}
|
||||
|
||||
export function getTimeProps<DateType>(
|
||||
props: { format?: string; picker?: PickerMode } & SharedTimeProps<DateType>,
|
||||
export function getTimeProps<DateType, DisabledTime>(
|
||||
props: { format?: string; picker?: PickerMode } & Omit<
|
||||
SharedTimeProps<DateType>,
|
||||
'disabledTime'
|
||||
> & {
|
||||
disabledTime?: DisabledTime;
|
||||
},
|
||||
) {
|
||||
const { format, picker, showHour, showMinute, showSecond, use12Hours } = props;
|
||||
|
||||
const firstFormat = toArray(format)[0];
|
||||
const showTimeObj: SharedTimeProps<DateType> = { ...props };
|
||||
const showTimeObj = { ...props };
|
||||
|
||||
if (firstFormat && typeof firstFormat === 'string') {
|
||||
if (!firstFormat.includes('s') && showSecond === undefined) {
|
||||
@ -67,10 +72,7 @@ export function getTimeProps<DateType>(
|
||||
|
||||
type InjectDefaultProps<Props> = Omit<
|
||||
Props,
|
||||
| 'locale'
|
||||
| 'generateConfig'
|
||||
| 'hideHeader'
|
||||
| 'components'
|
||||
'locale' | 'generateConfig' | 'hideHeader' | 'components'
|
||||
> & {
|
||||
locale?: PickerLocale;
|
||||
size?: SizeType;
|
||||
|
@ -33,9 +33,7 @@ import moment from 'moment';
|
||||
| clearText | The clear tooltip of icon | string | clear | |
|
||||
| defaultValue | To set default time | [moment](http://momentjs.com/) | - | |
|
||||
| disabled | Determine whether the TimePicker is disabled | boolean | false | |
|
||||
| disabledHours | To specify the hours that cannot be selected | function() | - | |
|
||||
| disabledMinutes | To specify the minutes that cannot be selected | function(selectedHour) | - | |
|
||||
| disabledSeconds | To specify the seconds that cannot be selected | function(selectedHour, selectedMinute) | - | |
|
||||
| disabledTime | To specify the time that cannot be selected | [DisabledTime](#DisabledTime) | - | 4.19.0 |
|
||||
| format | To set the time format | string | `HH:mm:ss` | |
|
||||
| getPopupContainer | To set the container of the floating layer, while the default is to create a div element in body | function(trigger) | - | |
|
||||
| hideDisabledOptions | Whether hide the options that can not be selected | boolean | false | |
|
||||
@ -56,12 +54,22 @@ import moment from 'moment';
|
||||
| onOpenChange | A callback function which will be called while panel opening/closing | (open: boolean) => void | - | |
|
||||
| onSelect | A callback function, executes when a value is selected | function(time: moment): void | - | |
|
||||
|
||||
#### DisabledTime
|
||||
|
||||
```typescript
|
||||
type DisabledTime = (now: Moment) => {
|
||||
disabledHours?: () => number[];
|
||||
disabledMinutes?: (selectedHour: number) => number[];
|
||||
disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
|
||||
};
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
||||
| Name | Description | Version |
|
||||
| --- | --- | --- |
|
||||
| blur() | Remove focus | |
|
||||
| focus() | Get focus | |
|
||||
| Name | Description | Version |
|
||||
| ------- | ------------ | ------- |
|
||||
| blur() | Remove focus | |
|
||||
| focus() | Get focus | |
|
||||
|
||||
### RangePicker
|
||||
|
||||
@ -69,8 +77,22 @@ Same props from [RangePicker](/components/date-picker/#RangePicker) of DatePicke
|
||||
|
||||
| Property | Description | Type | Default | Version |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| disabledTime | To specify the time that cannot be selected | [RangeDisabledTime](#RangeDisabledTime) | - | 4.19.0 |
|
||||
| order | Order start and end time | boolean | true | 4.1.0 |
|
||||
|
||||
### RangeDisabledTime
|
||||
|
||||
```typescript
|
||||
type RangeDisabledTime = (
|
||||
now: Moment,
|
||||
type = 'start' | 'end',
|
||||
) => {
|
||||
disabledHours?: () => number[];
|
||||
disabledMinutes?: (selectedHour: number) => number[];
|
||||
disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
|
||||
};
|
||||
```
|
||||
|
||||
<style>
|
||||
.code-box-demo .ant-picker { margin: 0 8px 12px 0; }
|
||||
.ant-row-rtl .code-box-demo .ant-picker { margin: 0 0 12px 8px; }
|
||||
|
@ -33,9 +33,7 @@ import moment from 'moment';
|
||||
| clearText | 清除按钮的提示文案 | string | clear | |
|
||||
| defaultValue | 默认时间 | [moment](http://momentjs.com/) | - | |
|
||||
| disabled | 禁用全部操作 | boolean | false | |
|
||||
| disabledHours | 禁止选择部分小时选项 | function() | - | |
|
||||
| disabledMinutes | 禁止选择部分分钟选项 | function(selectedHour) | - | |
|
||||
| disabledSeconds | 禁止选择部分秒选项 | function(selectedHour, selectedMinute) | - | |
|
||||
| disabledTime | 不可选择的时间 | [DisabledTime](#DisabledTime) | - | 4.19.0 |
|
||||
| format | 展示的时间格式 | string | `HH:mm:ss` | |
|
||||
| getPopupContainer | 定义浮层的容器,默认为 body 上新建 div | function(trigger) | - | |
|
||||
| hideDisabledOptions | 隐藏禁止选择的选项 | boolean | false | |
|
||||
@ -55,20 +53,44 @@ import moment from 'moment';
|
||||
| onChange | 时间发生变化的回调 | function(time: moment, timeString: string): void | - | |
|
||||
| onOpenChange | 面板打开/关闭时的回调 | (open: boolean) => void | - | |
|
||||
|
||||
#### DisabledTime
|
||||
|
||||
```typescript
|
||||
type DisabledTime = (now: Moment) => {
|
||||
disabledHours?: () => number[];
|
||||
disabledMinutes?: (selectedHour: number) => number[];
|
||||
disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
|
||||
};
|
||||
```
|
||||
|
||||
## 方法
|
||||
|
||||
| 名称 | 描述 | 版本 |
|
||||
| --- | --- | --- |
|
||||
| blur() | 移除焦点 | |
|
||||
| focus() | 获取焦点 | |
|
||||
| 名称 | 描述 | 版本 |
|
||||
| ------- | -------- | ---- |
|
||||
| blur() | 移除焦点 | |
|
||||
| focus() | 获取焦点 | |
|
||||
|
||||
### RangePicker
|
||||
## RangePicker
|
||||
|
||||
属性与 DatePicker 的 [RangePicker](/components/date-picker/#RangePicker) 相同。还包含以下属性:
|
||||
|
||||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| order | 始末时间是否自动排序 | boolean | true | 4.1.0 |
|
||||
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|
||||
| ------------ | -------------------- | --------------------------------------- | ------ | ------ |
|
||||
| disabledTime | 不可选择的时间 | [RangeDisabledTime](#RangeDisabledTime) | - | 4.19.0 |
|
||||
| order | 始末时间是否自动排序 | boolean | true | 4.1.0 |
|
||||
|
||||
### RangeDisabledTime
|
||||
|
||||
```typescript
|
||||
type RangeDisabledTime = (
|
||||
now: Moment,
|
||||
type = 'start' | 'end',
|
||||
) => {
|
||||
disabledHours?: () => number[];
|
||||
disabledMinutes?: (selectedHour: number) => number[];
|
||||
disabledSeconds?: (selectedHour: number, selectedMinute: number) => number[];
|
||||
};
|
||||
```
|
||||
|
||||
<style>
|
||||
.code-box-demo .ant-picker { margin: 0 8px 12px 0; }
|
||||
|
@ -135,7 +135,7 @@
|
||||
"rc-motion": "^2.4.4",
|
||||
"rc-notification": "~4.5.7",
|
||||
"rc-pagination": "~3.1.9",
|
||||
"rc-picker": "~2.5.17",
|
||||
"rc-picker": "~2.6.0",
|
||||
"rc-progress": "~3.2.1",
|
||||
"rc-rate": "~2.9.0",
|
||||
"rc-resize-observer": "^1.1.2",
|
||||
|
Loading…
Reference in New Issue
Block a user