m-persian-datepicker
Version:
jQuery datepicker plugin work with Iranian calendar. (Jalali)
74 lines (64 loc) • 2.09 kB
JavaScript
let Config = require('./config');
let Template = require('./template');
/**
* Extend default config from user interred and do compatibility works
* @public
*/
class Options {
/**
* @param {object} options config passed when initialize
* @return {object}
* @todo remove jquery
*/
constructor(options, model) {
this.model = model;
return this._compatibility(
$.extend(true, this, Config, options)
);
}
/**
* @private
* @param options
*/
_compatibility(options) {
if (options.inline) {
options.toolbox.submitButton.enabled = false;
}
if (!options.template) {
options.template = Template;
}
persianDate.toCalendar(options.calendarType);
persianDate.toLocale(options.calendar[options.calendarType].locale);
if (options.onlyTimePicker) {
options.dayPicker.enabled = false;
options.monthPicker.enabled = false;
options.yearPicker.enabled = false;
options.navigator.enabled = false;
options.toolbox.enabled = false;
options.timePicker.enabled = true;
}
if (options.timePicker.hour.step === null) {
options.timePicker.hour.step = options.timePicker.step;
}
if (options.timePicker.minute.step === null) {
options.timePicker.minute.step = options.timePicker.step;
}
if (options.timePicker.second.step === null) {
options.timePicker.second.step = options.timePicker.step;
}
if (options.dayPicker.enabled === false) {
options.onlySelectOnDate = false;
}
options._viewModeList = [];
if (options.dayPicker.enabled) {
options._viewModeList.push('day');
}
if (options.monthPicker.enabled) {
options._viewModeList.push('month');
}
if (options.yearPicker.enabled) {
options._viewModeList.push('year');
}
}
}
module.exports = Options;