ng2-date-picker-pda-forked
Version:
132 lines • 6.25 kB
JavaScript
"use strict";
var core_1 = require("@angular/core");
var forms_1 = require("@angular/forms");
var utils_service_1 = require("../common/services/utils/utils.service");
var day_calendar_service_1 = require("../day-calendar/day-calendar.service");
var time_select_service_1 = require("../time-select/time-select.service");
var day_time_calendar_service_1 = require("./day-time-calendar.service");
var DayTimeCalendarComponent = (function () {
function DayTimeCalendarComponent(dayTimeCalendarService, utilsService) {
this.dayTimeCalendarService = dayTimeCalendarService;
this.utilsService = utilsService;
this.onChange = new core_1.EventEmitter();
this.isInited = false;
}
Object.defineProperty(DayTimeCalendarComponent.prototype, "selected", {
get: function () {
return this._selected;
},
set: function (selected) {
this._selected = selected;
this.onChangeCallback(this.processOnChangeCallback(selected));
},
enumerable: true,
configurable: true
});
DayTimeCalendarComponent.prototype.ngOnInit = function () {
this.isInited = true;
this.init();
this.initValidators();
};
DayTimeCalendarComponent.prototype.init = function () {
this.componentConfig = this.dayTimeCalendarService.getConfig(this.config);
this.inputValueType = this.utilsService.getInputType(this.inputValue, false);
};
DayTimeCalendarComponent.prototype.ngOnChanges = function (changes) {
if (this.isInited) {
var minDate = changes.minDate, maxDate = changes.maxDate;
this.init();
if (minDate || maxDate) {
this.initValidators();
}
}
};
DayTimeCalendarComponent.prototype.writeValue = function (value) {
this.inputValue = value;
if (value) {
this.selected = this.utilsService
.convertToMomentArray(value, this.componentConfig.format, false)[0];
this.inputValueType = this.utilsService
.getInputType(this.inputValue, false);
}
else {
this.selected = null;
}
};
DayTimeCalendarComponent.prototype.registerOnChange = function (fn) {
this.onChangeCallback = fn;
};
DayTimeCalendarComponent.prototype.onChangeCallback = function (_) {
};
;
DayTimeCalendarComponent.prototype.registerOnTouched = function (fn) {
};
DayTimeCalendarComponent.prototype.validate = function (formControl) {
if (this.minDate || this.maxDate) {
return this.validateFn(formControl.value);
}
else {
return function () { return null; };
}
};
DayTimeCalendarComponent.prototype.processOnChangeCallback = function (value) {
return this.utilsService.convertFromMomentArray(this.componentConfig.format, [value], this.inputValueType);
};
DayTimeCalendarComponent.prototype.initValidators = function () {
this.validateFn = this.utilsService.createValidator({
minDate: this.minDate,
maxDate: this.maxDate
}, undefined, 'daytime');
this.onChangeCallback(this.processOnChangeCallback(this.selected));
};
DayTimeCalendarComponent.prototype.dateSelected = function (day) {
this.selected = this.dayTimeCalendarService.updateDay(this.selected, day.date);
this.emitChange();
};
DayTimeCalendarComponent.prototype.timeChange = function (time) {
this.selected = this.dayTimeCalendarService.updateTime(this.selected, time.date);
this.emitChange();
};
DayTimeCalendarComponent.prototype.emitChange = function () {
this.onChange.emit({ date: this.selected, selected: false });
};
return DayTimeCalendarComponent;
}());
DayTimeCalendarComponent.decorators = [
{ type: core_1.Component, args: [{
selector: 'dp-day-time-calendar',
template: '<dp-day-calendar #dayCalendar [config]="componentConfig" [ngModel]="_selected" [displayDate]="displayDate" (onSelect)="dateSelected($event)" [theme]="theme"> </dp-day-calendar> <dp-time-select #timeSelect [config]="componentConfig" [ngModel]="_selected" (onChange)="timeChange($event)" [theme]="theme"> </dp-time-select> ',
styles: ['dp-day-time-calendar { display: inline-block;}dp-day-time-calendar dp-time-select { display: block; border: 1px solid #000000; border-top: 0;}dp-day-time-calendar.dp-material dp-time-select { border: 1px solid #E0E0E0; border-top: 0;}'],
encapsulation: core_1.ViewEncapsulation.None,
providers: [
day_time_calendar_service_1.DayTimeCalendarService,
day_calendar_service_1.DayCalendarService,
time_select_service_1.TimeSelectService,
{
provide: forms_1.NG_VALUE_ACCESSOR,
useExisting: core_1.forwardRef(function () { return DayTimeCalendarComponent; }),
multi: true
},
{
provide: forms_1.NG_VALIDATORS,
useExisting: core_1.forwardRef(function () { return DayTimeCalendarComponent; }),
multi: true
}
]
},] },
];
/** @nocollapse */
DayTimeCalendarComponent.ctorParameters = function () { return [
{ type: day_time_calendar_service_1.DayTimeCalendarService, },
{ type: utils_service_1.UtilsService, },
]; };
DayTimeCalendarComponent.propDecorators = {
'config': [{ type: core_1.Input },],
'displayDate': [{ type: core_1.Input },],
'minDate': [{ type: core_1.Input },],
'maxDate': [{ type: core_1.Input },],
'theme': [{ type: core_1.HostBinding, args: ['class',] }, { type: core_1.Input },],
'onChange': [{ type: core_1.Output },],
};
exports.DayTimeCalendarComponent = DayTimeCalendarComponent;
//# sourceMappingURL=day-time-calendar.component.js.map