ng2-date-picker-pda-forked
Version:
139 lines • 5.82 kB
JavaScript
;
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
var core_1 = require("@angular/core");
var moment = require("moment");
var utils_service_1 = require("../common/services/utils/utils.service");
var time_select_service_1 = require("../time-select/time-select.service");
var day_time_calendar_service_1 = require("../day-time-calendar/day-time-calendar.service");
var DatePickerService = (function () {
function DatePickerService(utilsService, timeSelectService, daytimeCalendarService) {
this.utilsService = utilsService;
this.timeSelectService = timeSelectService;
this.daytimeCalendarService = daytimeCalendarService;
this.onPickerClosed = new core_1.EventEmitter();
this.defaultConfig = {
closeOnSelect: true,
closeOnSelectDelay: 100,
format: 'DD-MM-YYYY',
apiControlOnly: true,
onOpenDelay: 0,
disableKeypress: false,
showNearMonthDays: true,
drops: 'down',
opens: 'right',
showWeekNumbers: false,
enableMonthSelector: true,
showGoToCurrent: true,
locale: 'en'
};
}
// todo:: add unit tests
DatePickerService.prototype.getConfig = function (config, mode) {
if (mode === void 0) { mode = 'daytime'; }
var _config = __assign({}, this.defaultConfig, { format: this.getDefaultFormatByMode(mode) }, this.utilsService.clearUndefined(config));
var min = _config.min, max = _config.max, format = _config.format;
if (min) {
_config.min = this.utilsService.convertToMoment(min, format);
}
if (max) {
_config.max = this.utilsService.convertToMoment(max, format);
}
if (config && config.allowMultiSelect && config.closeOnSelect === undefined) {
_config.closeOnSelect = false;
}
moment.locale(_config.locale);
return _config;
};
DatePickerService.prototype.getDayConfigService = function (pickerConfig) {
return {
min: pickerConfig.min,
max: pickerConfig.max,
isDayDisabledCallback: pickerConfig.isDayDisabledCallback,
weekDayFormat: pickerConfig.weekDayFormat,
showNearMonthDays: pickerConfig.showNearMonthDays,
showWeekNumbers: pickerConfig.showWeekNumbers,
firstDayOfWeek: pickerConfig.firstDayOfWeek,
format: pickerConfig.format,
allowMultiSelect: pickerConfig.allowMultiSelect,
monthFormat: pickerConfig.monthFormat,
monthFormatter: pickerConfig.monthFormatter,
enableMonthSelector: pickerConfig.enableMonthSelector,
yearFormat: pickerConfig.yearFormat,
yearFormatter: pickerConfig.yearFormatter,
dayBtnFormat: pickerConfig.dayBtnFormat,
dayBtnFormatter: pickerConfig.dayBtnFormatter,
dayBtnCssClassCallback: pickerConfig.dayBtnCssClassCallback,
monthBtnFormat: pickerConfig.monthBtnFormat,
monthBtnFormatter: pickerConfig.monthBtnFormatter,
monthBtnCssClassCallback: pickerConfig.monthBtnCssClassCallback,
multipleYearsNavigateBy: pickerConfig.multipleYearsNavigateBy,
showMultipleYearsNavigation: pickerConfig.showMultipleYearsNavigation,
locale: pickerConfig.locale
};
};
DatePickerService.prototype.getDayTimeConfigService = function (pickerConfig) {
return this.daytimeCalendarService.getConfig(pickerConfig);
};
DatePickerService.prototype.getTimeConfigService = function (pickerConfig) {
return this.timeSelectService.getConfig(pickerConfig);
};
DatePickerService.prototype.pickerClosed = function () {
this.onPickerClosed.emit();
};
// todo:: add unit tests
DatePickerService.prototype.isValidInputDateValue = function (value, config) {
var _this = this;
value = value ? value : '';
var datesStrArr;
if (config.allowMultiSelect) {
datesStrArr = value.split(',');
}
else {
datesStrArr = [value];
}
return datesStrArr.every(function (date) { return _this.utilsService.isDateValid(date, config.format); });
};
// todo:: add unit tests
DatePickerService.prototype.convertInputValueToMomentArray = function (value, config) {
value = value ? value : '';
var datesStrArr;
if (config.allowMultiSelect) {
datesStrArr = value.split(',');
}
else {
datesStrArr = [value];
}
return this.utilsService.convertToMomentArray(datesStrArr, config.format, config.allowMultiSelect);
};
DatePickerService.prototype.getDefaultFormatByMode = function (mode) {
switch (mode) {
case 'day':
return 'DD-MM-YYYY';
case 'daytime':
return 'DD-MM-YYYY HH:mm:ss';
case 'time':
return 'HH:mm:ss';
case 'month':
return 'MMM, YYYY';
}
};
return DatePickerService;
}());
DatePickerService.decorators = [
{ type: core_1.Injectable },
];
/** @nocollapse */
DatePickerService.ctorParameters = function () { return [
{ type: utils_service_1.UtilsService, },
{ type: time_select_service_1.TimeSelectService, },
{ type: day_time_calendar_service_1.DayTimeCalendarService, },
]; };
exports.DatePickerService = DatePickerService;
//# sourceMappingURL=date-picker.service.js.map