7 Component, ElementRef, EventEmitter, forwardRef, Input, OnDestroy, OnInit, Output, Renderer2,
9 } from '@angular/core';
10 import {animate, state, style, transition, trigger} from '@angular/animations';
11 import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';
13 export interface LocaleSettings {
14 firstDayOfWeek?: number;
16 dayNamesShort: string[];
18 monthNamesShort: string[];
22 export enum DialogType {
30 selector: 'plx-daterange-picker',
31 templateUrl: './pickerrange.component.html',
32 styleUrls: ['./pickerrange.component.css'],
36 export class PlxDateRangePickerComponent {
38 disabled boolean false 设置为true时input框不能输入
39 minDate Date null 最小可选日期
40 maxDate Date null 最大可选日期
41 showTime boolean false 设置为true时显示时间选择器
42 showSeconds boolean false 时间选择器显示秒
43 timeOnly boolean false 设置为true时只显示时间选择器
44 dateFormat string YYYY-MM-DD HH:mm 设置时间选择模式
45 locale Object null 设置国际化对象,请参考国际化例子。
48 @Input() disabled : boolean = false;
49 @Input() showTime : boolean = false;
50 @Input() showSeconds : boolean = false;
51 @Input() timeOnly : boolean = false;
52 @Input() dateFormat : string = "YYYY-MM-DD HH:mm";
53 @Input() placeHolderStartDate : string = "";
54 @Input() placeHolderEndDate : string = "";
55 @Input() locale : any ={
57 dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
58 dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
59 monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
60 monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
65 @Input() startDate : Date;
66 @Input() endDate : Date;
67 @Input() canClear: boolean = true;
68 @Input() startMinDate:Date;
69 @Input() endMaxDate:Date;
74 @Input() supportKeyboardInput: boolean = false;
75 _startSetMaxDate:Date;
78 set startMaxDate( date:Date)
80 this._startSetMaxDate=date;
81 this.BuildstartMaxDate();
86 set endMinDate( date:Date)
88 this._endSetMinDate=date;
89 this.BuildendMinDate();
93 if(this._startSetMaxDate===undefined)
95 this._startMaxDate=this.endDate
98 if(this.endDate!==undefined)
100 this._startMaxDate= this.endDate<this._startSetMaxDate?this.endDate:this._startSetMaxDate;
103 this._startMaxDate=this._startSetMaxDate;
107 if(this._endSetMinDate===undefined)
109 this._endMinDate=this.startDate
112 if(this.startDate!==undefined)
114 this._endMinDate= this.startDate>this._endSetMinDate?this.startDate:this._endSetMinDate;
117 this._endMinDate=this._endSetMinDate;
121 onStartDateClosed: EventEmitter<any> = new EventEmitter<any>();
123 onEndDateClosed: EventEmitter<any> = new EventEmitter<any>();
125 EvonStartDateClosed(event : any)
127 this.BuildendMinDate();
128 if(this.startDate!==null)
130 event.date=new Date(this.startDate);
132 this.onStartDateClosed.emit(event);
133 event.preventDefault();
139 EvonEndDateClosed (event : any)
142 this.BuildstartMaxDate()
143 if(this.endDate!==null)
145 event.date=new Date(this.endDate);
147 this.onEndDateClosed.emit(event);
148 event.preventDefault();
154 public navigateTo (startDate: Date, endDate: Date)
156 this.startDate=startDate;
157 this.endDate = endDate;