19.3.0 • Published 10 months ago

ngx-mat-birthday-input v19.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

NgxMatBirthdayInput

An Angular Material library for entering a birthday.

NPM npm version npm bundle size npm

  1. Split a date into 3 input fields, day, month and year, then reassemble and save them into a given formControl.
  2. Automatically add 0 in front of the day/month number.
  3. Control the form value with the max number for day & month
  4. Remove . and e from the possible input.
  5. Does automatically focus the next field when needed.
  6. Based on the Vitaly Friedman article, Designing Birthday Picker UX: Simpler Is Better
filloutlined
Input exampleInput example

Supports:

  • Angular >=15
  • Angular Material >=15

Demo

Add NgxMatBirthdayInputComponent to your component file:

imports: [NgxMatBirthdayInputComponent];

Example

  • Add floatLabel to your mat-form-field
  • Use a preset formControlName
  • This formControlName will be automatically updated, therefore giving you the possibility to add your own mat-error see the comment
<form #f="ngForm" [formGroup]="birthdayForm">
  <mat-form-field
    floatLabel="always"
  >
    <!-- <mat-label>Birthday</mat-label> -->
    
    <!-- 
      <mat-datepicker-toggle matIconPrefix [for]="myDatePicker">
        <mat-icon matDatepickerToggleIcon>calendar_today</mat-icon>
      </mat-datepicker-toggle>
      <mat-datepicker touchUi #myDatePicker></mat-datepicker> 
    -->

    <ngx-mat-birthday-input
      formControlName="birthday"
      id="birthday"
    >
    <!-- [matDatepicker]="myDatePicker" -->
    </ngx-mat-birthday-input>

    <!-- <mat-icon matSuffix>event</mat-icon>
    <mat-error *ngIf="birthdayForm?.get('birthday').invalid">
      {{ Invalide error message }}
    </mat-error> -->
  </mat-form-field>
</form>

Options

OptionsTypeDefaultDescription
formControlNameFormControlundefinedControl to be updated
autocomplete"on" or "off""on"Use the default browser autofill
labelsstring[]["DD", "MM", "YYYY"]Label used by the mat-input
placeholdersstring[]["", "", ""]with an s
requiredbooleanundefined
disabledbooleanundefined
mindateundefinedActivate min validators on each fields
fields{day: boolean, month: boolean, year: boolean}{day: true, month: true, year: true}Show specifies fields

Css variable

NameDefaultExplanation
--ngx-mat-birthday-input-gap16pxChange the gap between the inputs

Auto formatting

Month

  • Max 12

Day

  • Month: 2 -> max 29
  • Month: 4, 6, 9 & 11 -> max 30
  • Month: else -> max 31

Authors and acknowledgment

BuyMeACoffee

19.1.0

10 months ago

19.0.1

11 months ago

19.0.0

11 months ago

19.3.0

10 months ago

19.2.1

10 months ago

19.0.3

10 months ago

19.2.0

10 months ago

19.0.2

10 months ago

18.3.1

1 year ago

18.3.0

1 year ago

18.2.0

1 year ago

18.1.0

1 year ago

18.0.0

1 year ago

17.5.1

2 years ago

17.5.0

2 years ago

17.4.0

2 years ago

17.3.1

2 years ago

17.3.0

2 years ago

17.2.1

2 years ago

17.2.2

2 years ago

17.2.0

2 years ago

17.1.1

2 years ago

17.1.0

2 years ago

17.0.6

2 years ago

17.0.5

2 years ago

17.0.4

2 years ago

17.0.3

2 years ago

17.0.2

2 years ago

17.0.1

2 years ago

17.0.0

2 years ago