m-persian-datepicker
Version:
jQuery datepicker plugin work with Iranian calendar. (Jalali)
118 lines (104 loc) • 3.13 kB
JavaScript
/**
* This is the API documentation for persian-datepicker
*/
class API {
constructor (model) {
this.model = model;
}
/**
* @description get current option object
* @example var pd = $('.selector').persianDatepicker();
* console.log(pd.options);
*/
get options () {
return this.model.options;
}
/**
* @description set options live
* @example var pd = $('.selector').persianDatepicker();
* pd.options;
* //return current options
* pd.options = {};
* // set options and render datepicker with new options
*/
set options (inputOptions) {
let opt = $.extend(true, this.model.options, inputOptions);
this.model.view.destroy();
this.model.components(this.model.inputElement, opt);
}
/**
* @description make datepicker visible
* @example var pd = $('.selector').persianDatepicker();
* pd.show();
*/
show () {
this.model.view.show();
this.model.options.onShow(this.model);
return this.model;
}
/**
* @description return datepicker current state
* @since 1.0.0
* @example var pd = $('.selector').persianDatepicker();
* var state = pd.getState();
*
* console.log(state.selected);
* console.log(state.view);
* */
getState () {
return this.model.state;
}
/**
* @description make datepicker invisible
* @example var pd = $('.selector').persianDatepicker();
* pd.show();
*/
hide () {
this.model.view.hide();
this.model.options.onHide(this.model);
return this.model;
}
/**
* @description toggle datepicker visibility state
* @example var pd = $('.selector').persianDatepicker();
* pd.toggle();
*/
toggle () {
this.model.view.toggle();
this.model.options.onToggle(this.model);
return this.model;
}
/**
* @description destroy every thing clean dom and
* @example var pd = $('.selector').persianDatepicker();
* pd.destroy();
*/
destroy () {
if(this.model){
this.model.view.destroy();
this.model.options.onDestroy(this.model);
delete this.model;
}
}
/**
* @description set selected date of datepicker accept unix timestamp
* @param unix
* @example var pd = $('.selector').persianDatepicker();
* pd.setDate(1382276091100)
*/
setDate (unix) {
if (this.model.options.multiSelect){
this.model.state.setSelectedDateTimeInMultiSelectMode('unix', unix);
this.model.state.setViewDateTime('unix', unix);
this.model.state.setSelectedDateTimeInMultiSelectMode('unix', unix);
}else{
this.model.state.setSelectedDateTime('unix', unix);
this.model.state.setViewDateTime('unix', unix);
this.model.state.setSelectedDateTime('unix', unix);
}
this.model.view.render(this.view);
this.model.options.onSet(unix);
return this.model;
}
}
module.exports = API;