Skip to content

Commit 7c53bf9

Browse files
authored
feat(datepicker): added date range picker config (#3501)
1 parent d714e75 commit 7c53bf9

File tree

6 files changed

+27
-8
lines changed

6 files changed

+27
-8
lines changed

demo/src/ng-api-doc.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -776,7 +776,7 @@ export const ngdoc: any = {
776776
"BsDatepickerConfig": {
777777
"fileName": "src/datepicker/bs-datepicker.config.ts",
778778
"className": "BsDatepickerConfig",
779-
"description": "",
779+
"description": "<p>For date range picker there are <code>BsDaterangepickerConfig</code> which inherits all properties,\nexcept displayMonths, for range picker it default to <code>2</code></p>\n",
780780
"methods": [],
781781
"properties": [
782782
{
@@ -822,7 +822,7 @@ export const ngdoc: any = {
822822
"inputs": [
823823
{
824824
"name": "bsConfig",
825-
"type": "Partial<BsDatepickerConfig>",
825+
"type": "Partial<BsDaterangepickerConfig>",
826826
"description": "<p>Config object for daterangepicker</p>\n"
827827
},
828828
{
@@ -917,6 +917,13 @@ export const ngdoc: any = {
917917
}
918918
]
919919
},
920+
"BsDaterangepickerConfig": {
921+
"fileName": "src/datepicker/bs-daterangepicker.config.ts",
922+
"className": "BsDaterangepickerConfig",
923+
"description": "",
924+
"methods": [],
925+
"properties": []
926+
},
920927
"BsLocaleService": {
921928
"fileName": "src/datepicker/bs-locale.service.ts",
922929
"className": "BsLocaleService",

src/datepicker/bs-datepicker.config.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
import { Injectable } from '@angular/core';
22
import {
3-
DatepickerFormatOptions,
43
DatepickerRenderOptions
54
} from './models/index';
65

6+
7+
/**
8+
* For date range picker there are `BsDaterangepickerConfig` which inherits all properties,
9+
* except `displayMonths`, for range picker it default to `2`
10+
*/
711
@Injectable()
812
export class BsDatepickerConfig
913
implements DatepickerRenderOptions {

src/datepicker/bs-daterangepicker.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,
33
OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef
44
} from '@angular/core';
5+
import { BsDaterangepickerConfig } from './bs-daterangepicker.config';
56
import { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';
67
import { Subscription } from 'rxjs/Subscription';
78
import { ComponentLoaderFactory } from '../component-loader/component-loader.factory';
@@ -74,7 +75,7 @@ export class BsDaterangepickerDirective
7475
/**
7576
* Config object for daterangepicker
7677
*/
77-
@Input() bsConfig: Partial<BsDatepickerConfig>;
78+
@Input() bsConfig: Partial<BsDaterangepickerConfig>;
7879
/**
7980
* Indicates whether daterangepicker is enabled or not
8081
*/
@@ -97,7 +98,7 @@ export class BsDaterangepickerDirective
9798
private _datepicker: ComponentLoader<BsDaterangepickerContainerComponent>;
9899
private _datepickerRef: ComponentRef<BsDaterangepickerContainerComponent>;
99100

100-
constructor(public _config: BsDatepickerConfig,
101+
constructor(public _config: BsDaterangepickerConfig,
101102
_elementRef: ElementRef,
102103
_renderer: Renderer2,
103104
_viewContainerRef: ViewContainerRef,
@@ -182,7 +183,6 @@ export class BsDaterangepickerDirective
182183
this._config = Object.assign(
183184
{},
184185
this._config,
185-
{displayMonths: 2},
186186
this.bsConfig,
187187
{
188188
value: this._bsValue,
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { Injectable } from '@angular/core';
2+
import { BsDatepickerConfig } from './bs-datepicker.config';
3+
4+
@Injectable()
5+
export class BsDaterangepickerConfig extends BsDatepickerConfig {
6+
// DatepickerRenderOptions
7+
displayMonths = 2;
8+
}

src/datepicker/datepicker.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { CommonModule } from '@angular/common';
22
import { NgModule, ModuleWithProviders } from '@angular/core';
33
import { FormsModule } from '@angular/forms';
4+
import { BsDaterangepickerConfig } from './bs-daterangepicker.config';
45

56
import { DatePickerInnerComponent } from './datepicker-inner.component';
67
import { DatePickerComponent } from './datepicker.component';
@@ -29,6 +30,6 @@ import { DatepickerConfig } from './datepicker.config';
2930
})
3031
export class DatepickerModule {
3132
static forRoot(): ModuleWithProviders {
32-
return { ngModule: DatepickerModule, providers: [DatepickerConfig] };
33+
return { ngModule: DatepickerModule, providers: [DatepickerConfig, BsDaterangepickerConfig] };
3334
}
3435
}

src/datepicker/themes/bs/bs-datepicker-container.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';
77
import { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';
88
import { BsDatepickerStore } from '../../reducer/bs-datepicker.store';
99
import { Subscription } from 'rxjs/Subscription';
10-
import { BsLocaleService } from '../../bs-locale.service';
1110

1211
@Component({
1312
selector: 'bs-datepicker-container',

0 commit comments

Comments
 (0)