angular / angular/components

feat(MatDatePicker): DateRange should implement min/max duration

未关闭
#20,780 3 条评论 5 个 reaction 已指派 0 人 在 GitHub 查看
area: material/datepicker feature P3
主要语言
TypeScript
星标
25k
派生
6.8k
平均合并
1 天 8 小时
30 天内合并 PR
91

描述

#### Feature Description

I would like to use date picker to allow a user to pick any number of days from 1-7, but no more than 7.

This could be implemented by adding a minimum (default: 1) and maximum (default: unlimited) duration values to the DateRange type.

If the minimum duration is not default:
- create greyed-out preview overlay of end values less than the minimum duration but not before the start value. Selecting a value within the minimum duration or before the start date should reset the start date to new date.

If the maximum duration is not default:
- create a preview up to the maximum duration. Selecting value beyond the maximum duration becomes new start date.

Example with (min 3 days, max 7 days) might look like something this:

(this is only to illustrate, I'm not a UI designer or anything)

#### Use Case

Currently, I must have the user use a dropdown to pick their duration first (which informs a MatDateRangeSelectionStrategy), and then use the date picker to select a start date.

Would very much like to get rid of the dropdown.

贡献指南

打开贡献指南

调研方向

首先阅读 issue 中描述的 MatDatePicker 日期范围行为和 MatDateRangeSelectionStrategy。定义并验证最短和最长持续时间的行为,包括预览 overlay,以及当选择超出允许范围时重置开始日期。

由索引模型根据 Issue 内容生成。

评估

技术栈
angular, typescript
领域
frontend
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
基本清楚
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。