ngx-mat-calendar
Version:
A datepicker with nepali and english calendar support
145 lines (109 loc) • 3.5 kB
Markdown
# ngx-mat-calendar
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.1.5.
Angular datepicker component based on Angular Material with min-max date validation and also support nepali calendar (BS) also convert date from BS to AD and AD to BS.
## Installation
To install this library (component), run:
Using npm:
```
$ npm install ngx-mat-calendar
```
## Consuming this library (Component)
You can import this library (component) in any Angular application by running:
```
$ npm install ngx-mat-calendar
```
and then from your Angular AppModule
```javascript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
// Import this library
import { NgxMatCalendarModule } from 'ngx-mat-calendar';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
// Specify this library as an import
NgxMatCalendarModule,
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
```
Once this library is imported, you can use its components, directives and pipes in your Angular application:
```javascript
import { DateFormat, DateType, DateValidators } from 'ngx-mat-calendar';
...
export class AppComponent {
title = 'MatCalendar';
dateType = DateType.BS
dateFormatBS = DateFormat.MMddyyyy;
dateFormatAD = DateFormat.yyyyMMdd;
control = new FormControl(new Date(2020, 10, 12),
Validators.compose(
[
Validators.required, DateValidators.dateBetween(new Date(2020,1,1), new Date(2020,12,31))
]
)
);
dateChanged(event:any){
console.log(event);
}
}
```
```html
<ngx-date
[formControl]="control"
placeholder="Date of Birth"
[dateType]="dateType"
[dateFormatAD]="dateFormatAD"
[dateFormatBS]="dateFormatBS"
(onDateChanged)="dateChanged($event)
>
</ngx-date>
```
output
if isRange = false
```json
{
date: Wed Feb 05 2020 00:00:00 GMT+0545 (Nepal Time) {}
dateAD: "2020-02-05"
dateBS: "10-22-2076"
selectedDateType: 2
}
```
if isRange = true
```json
{
start:{
date: Thu Sep 17 2020 00:00:00 GMT+0545 (Nepal Time) {}
dateAD: "2020-09-17"
dateBS: "06-01-2077"
selectedDateType: 2
}
, end: {
date: Thu Sep 24 2020 00:00:00 GMT+0545 (Nepal Time) {}
dateAD: "2020-09-24"
dateBS: "06-08-2077"
selectedDateType: 2
}
}
```
value of the control is date if the isRange = false else same as output
##Component Inputs and Outputs
Attribute|Type|Required|Description|Default
---------|----|--------|-----------|-------
placeholder|string|no|placeholder of control|"Date"
dateType|DateType|no|if datetype = AD default display in AD else BS| AD
dateFormatAD| DateFormat|no| Select AD date format from given 4 format| ddMMyyyy
dateFormatAD| DateFormat|no| Select BS date format from given 4 format| ddMMyyyy
language| number {0 or 1}|no|0 = english language and 1 = nepali language| 0
isRange|boolean|no|To pick date range this value must be true| false
withTime|boolean|no|To Select time also this value must be true|false
readonly|boolean|no|make coomponent readonly if value = true else not|false
disabled|boolean|no|enable or disable the control|false
closeOnClick|boolean|no|if true popup will hide when select a date|true
formControl|FormControl|yes|formControlName for reactive form and formControl object for template driven| null