@narmafzam/jalali-datepicker
Version:
just a jalali-datepicker
204 lines (199 loc) • 6.19 kB
JavaScript
let Helper = require('./helper');
let Constant = require('./constant');
const Config = {
'calendarType': 'persian',
'calendar': {
'persian': {
'locale': 'fa',
'showHint': false,
'leapYearMode': 'algorithmic'
},
'gregorian': {
'locale': 'en',
'showHint': false
}
},
'responsive': true,
'inline': false,
'initialValue': true,
'initialValueType': 'gregorian',
'persianDigit': true,
'otherMonthDisabled': true,
'otherMonthUnselectable': true,
'viewMode': 'day',
'format': 'DD MMMM YYYY',
'formatter': function (unixDate) {
let self = this,
pdate = this.model.JalaliDate.date(unixDate);
return pdate.format(self.format);
},
'altField': false,
'altFormat': 'unix',
'altFieldFormatter': function (unixDate) {
let self = this,
thisAltFormat = self.altFormat.toLowerCase(),
pd;
if (thisAltFormat === 'gregorian' || thisAltFormat === 'g') {
return new Date(unixDate);
}
if (thisAltFormat === 'unix' || thisAltFormat === 'u') {
return unixDate;
}
else {
pd = this.model.JalaliDate.date(unixDate);
return pd.format(self.altFormat);
}
},
'minDate': Constant.MIN_DATE,
'maxDate': Constant.MAX_DATE,
'navigator': {
'enabled': true,
'scroll': {
'enabled': true
},
'text': {
'fa': {
'btnNextText': Constant.NEXT_TEXT,
'btnPrevText': Constant.PREV_TEXT
},
'en': {
'btnNextText': 'Next',
'btnPrevText': 'Prev'
}
},
'onNext': function (datepickerObject) {
Helper.debug(datepickerObject, 'Event: onNext');
},
'onPrev': function (datepickerObject) {
Helper.debug(datepickerObject, 'Event: onPrev');
},
'onSwitch': function (datepickerObject) {
Helper.debug(datepickerObject, 'dayPicker Event: onSwitch');
}
},
'toolbox': {
'enabled': true,
'text': {
btnToday: Constant.CURRENT_TEXT,
},
submitButton: {
enabled: Helper.isMobile,
text: {
fa: Constant.SUBMIT_TEXT,
en: 'submit'
},
onSubmit: function (datepickerObject) {
Helper.debug(datepickerObject, 'dayPicker Event: onSubmit');
}
},
todayButton: {
enabled: true,
text: {
fa: Constant.CURRENT_TEXT,
en: 'today'
},
onToday: function (datepickerObject) {
Helper.debug(datepickerObject, 'dayPicker Event: onToday');
}
},
calendarSwitch: {
enabled: true,
format: "YYYY",
onSwitch: function (datepickerObject) {
Helper.debug(datepickerObject, 'dayPicker Event: onSwitch');
}
},
onToday: function (datepickerObject) {
Helper.debug(datepickerObject, 'dayPicker Event: onToday');
}
},
'onlyTimePicker': false,
'onlySelectOnDate': true,
'checkDate': function () {
return true;
},
'checkMonth': function () {
return true;
},
'checkYear': function () {
return true;
},
'timePicker': {
'enabled': false,
'step': 1,
'hour': {
'enabled': true,
'step': null
},
'minute': {
'enabled': true,
'step': null
},
'second': {
'enabled': true,
'step': null
},
'meridian': {
'enabled': false
}
},
'dayPicker': {
'enabled': true,
'titleFormat': 'MMMM YYYY',
'titleFormatter': function (year, month) {
let titleDate = this.model.JalaliDate.date([year, month]);
return titleDate.format(this.model.options.dayPicker.titleFormat);
},
'onSelect': function (selectedDayUnix) {
Helper.debug(this, 'dayPicker Event: onSelect : ' + selectedDayUnix);
}
},
'monthPicker': {
'enabled': true,
'titleFormat': 'YYYY',
'titleFormatter': function (unix) {
let titleDate = this.model.JalaliDate.date(unix);
return titleDate.format(this.model.options.monthPicker.titleFormat);
},
'onSelect': function (monthIndex) {
Helper.debug(this, 'monthPicker Event: onSelect : ' + monthIndex);
}
},
'yearPicker': {
'enabled': true,
'titleFormat': 'YYYY',
'titleFormatter': function (year) {
let remaining = parseInt(year / 12, 10) * 12;
let startYear = this.model.JalaliDate.date([remaining]);
let endYear = this.model.JalaliDate.date([remaining + 11]);
return startYear.format(this.model.options.yearPicker.titleFormat) + '-' + endYear.format(this.model.options.yearPicker.titleFormat);
},
'onSelect': function (year) {
Helper.debug(this, 'yearPicker Event: onSelect : ' + year);
}
},
'onSelect': function (unixDate) {
Helper.debug(this, 'datepicker Event: onSelect : ' + unixDate);
},
'onSet': function (unixDate) {
Helper.debug(this, 'datepicker Event: onSet : ' + unixDate);
},
'position': 'auto',
'onShow': function (datepickerObject) {
Helper.debug(datepickerObject, 'Event: onShow ');
},
'onHide': function (datepickerObject) {
Helper.debug(datepickerObject, 'Event: onHide ');
},
'onToggle': function (datepickerObject) {
Helper.debug(datepickerObject, 'Event: onToggle ');
},
'onDestroy': function (datepickerObject) {
Helper.debug(datepickerObject, 'Event: onDestroy ');
},
'autoClose': false,
'template': null,
'observer': false,
'inputDelay': 800
};
module.exports = Config;