Content-Length: 322607 | pFad | http://github.com/angular/angular/pull/67544

6E Forms signal minDate and maxDate validator by brunoredes · Pull Request #67544 · angular/angular · GitHub
Skip to content

Forms signal minDate and maxDate validator#67544

Open
brunoredes wants to merge 1 commit intoangular:mainfrom
brunoredes:forms-signal-min-max-validator
Open

Forms signal minDate and maxDate validator#67544
brunoredes wants to merge 1 commit intoangular:mainfrom
brunoredes:forms-signal-min-max-validator

Conversation

@brunoredes
Copy link
Copy Markdown

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • angular.dev application / infrastructure changes
  • Other... Please describe:

What is the current behavior?

The min() and max() validators only accept numeric values as the constraint argument. When used with string paths, passing a string like '2025-06-01' results in a TypeScript error.

This prevents using these validators for date/time inputs without workarounds.

Issue Number: 151664003

What is the new behavior?

  • Added minDate() validator that validates string-based form fields (date, time, datetime-local) are greater than or equal to a given minimum string value using lexicographic comparison.
  • Added maxDate() validator that validates string-based form fields (date, time, datetime-local) are less than or equal to a given maximum string value using lexicographic comparison.
  • Both validators support static string values, dynamic values via LogicFn, custom error messages, and custom error functions.
  • Empty strings are treated as valid (skipped), consistent with other validators like min() and max().

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Solves Experimental Signal Forms (view)

@pullapprove pullapprove bot requested a review from JeanMeche March 10, 2026 13:28
@angular-robot angular-robot bot added detected: feature PR contains a feature commit area: forms labels Mar 10, 2026
@ngbot ngbot bot added this to the Backlog milestone Mar 10, 2026
@JeanMeche JeanMeche requested a review from kirjs March 10, 2026 13:30
Copy link
Copy Markdown
Member

@JeanMeche JeanMeche left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this implementation is incomplete (or at least not covered by tests).

Check out packages/forms/signals/test/web/form_field_directive.spec.ts, you'll see that min/minlength etc add the matching attribute to the dom.

@brunoredes

This comment was marked as resolved.

@brunoredes brunoredes force-pushed the forms-signal-min-max-validator branch from 7bdb742 to 15b46d2 Compare March 25, 2026 13:11
@brunoredes brunoredes requested a review from JeanMeche March 25, 2026 13:11
@brunoredes brunoredes force-pushed the forms-signal-min-max-validator branch from 15b46d2 to 9139ac5 Compare March 25, 2026 13:17
Add dedicated `minDate()` and `maxDate()` validation rules for string-based
date and time form fields. These validators use lexicographic string comparison,
which correctly handles ISO-formatted values from `<input type="date">`,
`<input type="time">`, and `<input type="datetime-local">`.

Both validators support static string values, dynamic values via LogicFn,
and custom error messages/functions.
@brunoredes brunoredes force-pushed the forms-signal-min-max-validator branch from 9139ac5 to f8d2abd Compare March 25, 2026 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/angular/angular/pull/67544

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy