framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
2 lines (1 loc) • 34.2 kB
JavaScript
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);document,window;var a=e.$,n=(e.Template7,e.utils),r=(e.device,e.support,e.Class),s=(e.Modal,e.ConstructorMethods);e.ModalMethods;function o(e,t,a){return"[object Date]"===Object.prototype.toString.call(e)&&(a=e.getDate(),t=e.getMonth()+1,e=e.getFullYear()),function(e){var t,a,n,r=c(e).gy,s=r-621,o=d(s),i=h(r,3,o.march);if((n=e-i)>=0){if(n<=185)return a=1+p(n,31),t=u(n,31)+1,{jy:s,jm:a,jd:t};n-=186}else s-=1,n+=179,1===o.leap&&(n+=1);return a=7+p(n,30),t=u(n,30)+1,{jy:s,jm:a,jd:t}}(h(e,t,a))}function i(e,t,a){return c(function(e,t,a){var n=d(e);return h(n.gy,3,n.march)+31*(t-1)-p(t,7)*(t-7)+a-1}(e,t,a))}function l(e,t){return t<=6?31:t<=11?30:function(e){return 0===d(e).leap}(e)?30:29}function d(e){var t,a,n,r,s,o,i=[-61,9,38,199,426,686,756,818,1111,1181,1210,1635,2060,2097,2192,2262,2324,2394,2456,3178],l=i.length,d=e+621,h=-14,c=i[0];if(e<c||e>=i[l-1])throw new Error("Invalid Jalaali year "+e);for(o=1;o<l&&(a=(t=i[o])-c,!(e<t));o+=1)h=h+8*p(a,33)+p(u(a,33),4),c=t;return h=h+8*p(s=e-c,33)+p(u(s,33)+3,4),4===u(a,33)&&a-s==4&&(h+=1),r=20+h-(p(d,4)-p(3*(p(d,100)+1),4)-150),a-s<6&&(s=s-a+33*p(a+4,33)),-1===(n=u(u(s+1,33)-1,4))&&(n=4),{leap:n,gy:d,march:r}}function h(e,t,a){var n=p(1461*(e+p(t-8,6)+100100),4)+p(153*u(t+9,12)+2,5)+a-34840408;return n=n-p(3*p(e+100100+p(t-8,6),100),4)+752}function c(e){var t,a,n,r;return t=(t=4*e+139361631)+4*p(3*p(4*e+183187720,146097),4)-3908,a=5*p(u(t,1461),4)+308,n=p(u(a,153),5)+1,r=u(p(a,153),12)+1,{gy:p(t,1461)-100100+p(8-r,6),gm:r,gd:n}}function p(e,t){return~~(e/t)}function u(e,t){return e-~~(e/t)*t}function m(e,t,a){for(t>11&&(e+=Math.floor(t/12),t%=12);t<0;)e-=1,t+=12;for(;a>l(e,t+1);)a-=l(e=0===(t=11!==t?t+1:0)?e+1:e,t+1);for(;a<=0;)a+=l(e=11===(t=0!==t?t-1:11)?e-1:e,t+1);return[e,t||0,a||1]}var v=["getHours","getMilliseconds","getMinutes","getSeconds","getTime","getTimezoneOffset","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","now","parse","setHours","setMilliseconds","setMinutes","setSeconds","setTime","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","toDateString","toISOString","toJSON","toLocaleDateString","toLocaleTimeString","toLocaleString","toTimeString","toUTCString","UTC","valueOf"],g=["Shanbe","Yekshanbe","Doshanbe","Seshanbe","Chaharshanbe","Panjshanbe","Jom'e"],f=["شنبه","یکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه"],y=["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],C=["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],M=["۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"],D=function(e){function t(){for(var a,n=[],r=arguments.length;r--;)n[r]=arguments[r];if(e.call(this),0===n.length)a=e.now();else if(1===n.length)a=n[0]instanceof e?n[0].getTime():n[0];else{var s=m(n[0],n[1]||0,void 0===n[2]?1:n[2]),l=i(s[0],s[1]+1,s[2]);a=[l.gy,l.gm-1,l.gd].concat([n[3]||0,n[4]||0,n[5]||0,n[6]||0])}Array.isArray(a)?this.gdate=new(Function.prototype.bind.apply(e,[null].concat(a))):this.gdate=new e(a);var d=o(this.gdate.getFullYear(),this.gdate.getMonth()+1,this.gdate.getDate());this.jdate=[d.jy,d.jm-1,d.jd],v.forEach(function(e){t.prototype[e]=function(){var t;return(t=this.gdate)[e].apply(t,arguments)}})}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getFullYear=function(){return this.jdate[0]},t.prototype.setFullYear=function(e){return this.jdate=m(e,this.jdate[1],this.jdate[2]),this.syncDate(),this.gdate.getTime()},t.prototype.getMonth=function(){return this.jdate[1]},t.prototype.setMonth=function(e){return this.jdate=m(this.jdate[0],e,this.jdate[2]),this.syncDate(),this.gdate.getTime()},t.prototype.getDate=function(){return this.jdate[2]},t.prototype.setDate=function(e){return this.jdate=m(this.jdate[0],this.jdate[1],e),this.syncDate(),this.gdate.getTime()},t.prototype.getDay=function(){return(this.gdate.getDay()+1)%7},t.prototype.syncDate=function(){var e=i(this.jdate[0],this.jdate[1]+1,this.jdate[2]);this.gdate.setFullYear(e.gy),this.gdate.setMonth(e.gm-1),this.gdate.setDate(e.gd)},t.prototype.toString=function(e){void 0===e&&(e=!0);var t=function(e){return 1===e.toString().length?"0"+e:e.toString()},a=t(this.getHours())+":"+t(this.getMinutes())+":"+t(this.getSeconds());return e?(f[this.getDay()]+" "+this.getDate()+" "+C[this.getMonth()]+" "+this.getFullYear()+" ساعت "+a).replace(/./g,function(e){return M[e]||e}):g[this.getDay()]+" "+this.getDate()+" "+y[this.getMonth()]+" "+this.getFullYear()+" "+a},t}(Date),T=function(e){function t(t,r){void 0===r&&(r={}),e.call(this,r,[t]);var s,o,i,l=this;if(l.params=n.extend({},t.params.calendar,r),"jalali"===l.params.calendarType&&Object.keys(l.params.jalali).forEach(function(e){r[e]||(l.params[e]=l.params.jalali[e])}),"jalali"===l.params.calendarType?l.DateHandleClass=D:l.DateHandleClass=Date,l.params.containerEl&&0===(s=a(l.params.containerEl)).length)return l;l.params.inputEl&&(o=a(l.params.inputEl)),o&&(i=o.parents(".view").length&&o.parents(".view")[0].f7View),i||(i=t.views.main);var d="horizontal"===l.params.direction,h=1;function c(){l.open()}function p(e){e.preventDefault()}function u(e){var t=a(e.target);l.isPopover()||l.opened&&!l.closing&&(t.closest('[class*="backdrop"]').length||(o&&o.length>0?t[0]!==o[0]&&0===t.closest(".sheet-modal, .calendar-modal").length&&l.close():0===a(e.target).closest(".sheet-modal, .calendar-modal").length&&l.close()))}return d&&(h=t.rtl?-1:1),n.extend(l,{app:t,$containerEl:s,containerEl:s&&s[0],inline:s&&s.length>0,$inputEl:o,inputEl:o&&o[0],initialized:!1,opened:!1,url:l.params.url,isHorizontal:d,inverter:h,view:i,animating:!1}),n.extend(l,{attachInputEvents:function(){l.$inputEl.on("click",c),l.params.inputReadOnly&&l.$inputEl.on("focus mousedown",p)},detachInputEvents:function(){l.$inputEl.off("click",c),l.params.inputReadOnly&&l.$inputEl.off("focus mousedown",p)},attachHtmlEvents:function(){t.on("click",u)},detachHtmlEvents:function(){t.off("click",u)}}),l.attachCalendarEvents=function(){var e,n,r,s,o,i,d,h,c,p,u,m,v,g=!0,f=l.$el,y=l.$wrapperEl;function C(t){n||e||(e=!0,r="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,o=r,s="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY,i=s,d=(new l.DateHandleClass).getTime(),u=0,g=!0,v=void 0,h=l.monthsTranslate)}function M(t){if(e){var a=l.isHorizontal;o="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,i="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,void 0===v&&(v=!!(v||Math.abs(i-s)>Math.abs(o-r))),a&&v?e=!1:(t.preventDefault(),l.animating?e=!1:(g=!1,n||(n=!0,c=y[0].offsetWidth,p=y[0].offsetHeight,y.transition(0)),u=(m=a?o-r:i-s)/(a?c:p),h=100*(l.monthsTranslate*l.inverter+u),y.transform("translate3d("+(a?h:0)+"%, "+(a?0:h)+"%, 0)")))}}function D(){if(!e||!n)return e=!1,void(n=!1);e=!1,n=!1,(new l.DateHandleClass).getTime()-d<300?Math.abs(m)<10?l.resetMonth():m>=10?t.rtl?l.nextMonth():l.prevMonth():t.rtl?l.prevMonth():l.nextMonth():u<=-.5?t.rtl?l.prevMonth():l.nextMonth():u>=.5?t.rtl?l.nextMonth():l.prevMonth():l.resetMonth(),setTimeout(function(){g=!0},100)}function T(e){if(g){var t=a(e.target).parents(".calendar-day");if(0===t.length&&a(e.target).hasClass("calendar-day")&&(t=a(e.target)),0!==t.length&&!t.hasClass("calendar-day-disabled")){l.params.rangePicker||(t.hasClass("calendar-day-next")&&l.nextMonth(),t.hasClass("calendar-day-prev")&&l.prevMonth());var n=parseInt(t.attr("data-year"),10),r=parseInt(t.attr("data-month"),10),s=parseInt(t.attr("data-day"),10);l.emit("local::dayClick calendarDayClick",l,t[0],n,r,s),(!t.hasClass("calendar-day-selected")||l.params.multiple||l.params.rangePicker)&&l.addValue(new l.DateHandleClass(n,r,s,0,0,0)),l.params.closeOnSelect&&(l.params.rangePicker&&2===l.value.length||!l.params.rangePicker)&&l.close()}}}function w(){l.nextMonth()}function H(){l.prevMonth()}function $(){l.nextYear()}function b(){l.prevYear()}var k=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener)&&{passive:!0,capture:!1};f.find(".calendar-prev-month-button").on("click",H),f.find(".calendar-next-month-button").on("click",w),f.find(".calendar-prev-year-button").on("click",b),f.find(".calendar-next-year-button").on("click",$),y.on("click",T),l.params.touchMove&&(y.on(t.touchEvents.start,C,k),t.on("touchmove:active",M),t.on("touchend:passive",D)),l.detachCalendarEvents=function(){f.find(".calendar-prev-month-button").off("click",H),f.find(".calendar-next-month-button").off("click",w),f.find(".calendar-prev-year-button").off("click",b),f.find(".calendar-next-year-button").off("click",$),y.off("click",T),l.params.touchMove&&(y.off(t.touchEvents.start,C,k),t.off("touchmove:active",M),t.off("touchend:passive",D))}},l.init(),l}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.normalizeDate=function(e){var t=new this.DateHandleClass(e);return new this.DateHandleClass(t.getFullYear(),t.getMonth(),t.getDate())},t.prototype.normalizeValues=function(e){var t=this,a=[];return e&&Array.isArray(e)&&(a=e.map(function(e){return t.normalizeDate(e)})),a},t.prototype.initInput=function(){this.$inputEl&&this.params.inputReadOnly&&this.$inputEl.prop("readOnly",!0)},t.prototype.isPopover=function(){var e=this.app,t=this.modal,a=this.params;if("sheet"===a.openIn)return!1;if(t&&"popover"!==t.type)return!1;if(!this.inline&&this.inputEl){if("popover"===a.openIn)return!0;if(e.device.ios)return!!e.device.ipad;if(e.width>=768)return!0;if(e.device.desktop&&"aurora"===e.theme)return!0}return!1},t.prototype.formatDate=function(e){var t=new this.DateHandleClass(e),a=t.getFullYear(),n=t.getMonth(),r=n+1,s=t.getDate(),o=t.getDay(),i=this.params,l=i.dateFormat,d=i.monthNames,h=i.monthNamesShort,c=i.dayNames,p=i.dayNamesShort;return l.replace(/yyyy/g,a).replace(/yy/g,String(a).substring(2)).replace(/mm/g,r<10?"0"+r:r).replace(/m(\W+)/g,r+"$1").replace(/MM/g,d[n]).replace(/M(\W+)/g,h[n]+"$1").replace(/dd/g,s<10?"0"+s:s).replace(/d(\W+)/g,s+"$1").replace(/DD/g,c[o]).replace(/D(\W+)/g,p[o]+"$1")},t.prototype.formatValue=function(){var e=this,t=e.value;return e.params.formatValue?e.params.formatValue.call(e,t):t.map(function(t){return e.formatDate(t)}).join(e.params.rangePicker?" - ":", ")},t.prototype.addValue=function(e){var t=this.params,a=t.multiple,n=t.rangePicker,r=t.rangePickerMinDays,s=t.rangePickerMaxDays;if(a){var o;this.value||(this.value=[]);for(var i=0;i<this.value.length;i+=1)new this.DateHandleClass(e).getTime()===new this.DateHandleClass(this.value[i]).getTime()&&(o=i);void 0===o?this.value.push(e):this.value.splice(o,1),this.updateValue()}else n?(this.value||(this.value=[]),2!==this.value.length&&0!==this.value.length||(this.value=[]),0===this.value.length||Math.abs(this.value[0].getTime()-e.getTime())>=60*(r-1)*60*24*1e3&&(0===s||Math.abs(this.value[0].getTime()-e.getTime())<=60*(s-1)*60*24*1e3)?this.value.push(e):this.value=[],this.value.sort(function(e,t){return e-t}),this.updateValue()):(this.value=[e],this.updateValue())},t.prototype.setValue=function(e){var t=this.value;if(Array.isArray(t)&&Array.isArray(e)&&t.length===e.length){var a=!0;if(t.forEach(function(t,n){t!==e[n]&&(a=!1)}),a)return}this.value=e,this.updateValue()},t.prototype.getValue=function(){return this.value},t.prototype.updateValue=function(e){var t,a,n=this.$el,r=this.$wrapperEl,s=this.$inputEl,o=this.value,i=this.params;if(n&&n.length>0)if(r.find(".calendar-day-selected").removeClass("calendar-day-selected"),i.rangePicker&&2===o.length)for(t=new this.DateHandleClass(o[0]).getTime();t<=new this.DateHandleClass(o[1]).getTime();t+=864e5)a=new this.DateHandleClass(t),r.find('.calendar-day[data-date="'+a.getFullYear()+"-"+a.getMonth()+"-"+a.getDate()+'"]').addClass("calendar-day-selected");else for(t=0;t<this.value.length;t+=1)a=new this.DateHandleClass(o[t]),r.find('.calendar-day[data-date="'+a.getFullYear()+"-"+a.getMonth()+"-"+a.getDate()+'"]').addClass("calendar-day-selected");if(e||this.emit("local::change calendarChange",this,o),s&&s.length||i.header){var l=this.formatValue(o);i.header&&n&&n.length&&n.find(".calendar-selected-date").text(l),s&&s.length&&!e&&(s.val(l),s.trigger("change"))}},t.prototype.updateCurrentMonthYear=function(e){var t=this.$months,a=this.$el,n=this.params;void 0===e?(this.currentMonth=parseInt(t.eq(1).attr("data-month"),10),this.currentYear=parseInt(t.eq(1).attr("data-year"),10)):(this.currentMonth=parseInt(t.eq("next"===e?t.length-1:0).attr("data-month"),10),this.currentYear=parseInt(t.eq("next"===e?t.length-1:0).attr("data-year"),10)),a.find(".current-month-value").text(n.monthNames[this.currentMonth]),a.find(".current-year-value").text(this.currentYear)},t.prototype.update=function(){var e=this,t=e.currentYear,a=e.currentMonth,n=e.$wrapperEl,r=new e.DateHandleClass(t,a),s=e.renderMonth(r,"prev"),o=e.renderMonth(r),i=e.renderMonth(r,"next");n.transition(0).html(""+s+o+i).transform("translate3d(0,0,0)"),e.$months=n.find(".calendar-month"),e.monthsTranslate=0,e.setMonthsTranslate(),e.$months.each(function(t,a){e.emit("local::monthAdd calendarMonthAdd",a)})},t.prototype.onMonthChangeStart=function(e){var t=this.$months,a=this.currentYear,n=this.currentMonth;this.updateCurrentMonthYear(e),t.removeClass("calendar-month-current calendar-month-prev calendar-month-next");var r="next"===e?t.length-1:0;t.eq(r).addClass("calendar-month-current"),t.eq("next"===e?r-1:r+1).addClass("next"===e?"calendar-month-prev":"calendar-month-next"),this.emit("local::monthYearChangeStart calendarMonthYearChangeStart",this,a,n)},t.prototype.onMonthChangeEnd=function(e,t){var a,n,r,s=this.currentYear,o=this.currentMonth,i=this.$wrapperEl,l=this.monthsTranslate;this.animating=!1,i.find(".calendar-month:not(.calendar-month-prev):not(.calendar-month-current):not(.calendar-month-next)").remove(),void 0===e&&(e="next",t=!0),t?(i.find(".calendar-month-next, .calendar-month-prev").remove(),n=this.renderMonth(new this.DateHandleClass(s,o),"prev"),a=this.renderMonth(new this.DateHandleClass(s,o),"next")):r=this.renderMonth(new this.DateHandleClass(s,o),e),("next"===e||t)&&i.append(r||a),("prev"===e||t)&&i.prepend(r||n);var d=i.find(".calendar-month");this.$months=d,this.setMonthsTranslate(l),this.emit("local::monthAdd calendarMonthAdd",this,"next"===e?d.eq(d.length-1)[0]:d.eq(0)[0]),this.emit("local::monthYearChangeEnd calendarMonthYearChangeEnd",this,s,o)},t.prototype.setMonthsTranslate=function(e){var t=this.$months,a=this.isHorizontal,n=this.inverter;e=e||this.monthsTranslate||0,void 0===this.monthsTranslate&&(this.monthsTranslate=e),t.removeClass("calendar-month-current calendar-month-prev calendar-month-next");var r=100*-(e+1)*n,s=100*-e*n,o=100*-(e-1)*n;t.eq(0).transform("translate3d("+(a?r:0)+"%, "+(a?0:r)+"%, 0)").addClass("calendar-month-prev"),t.eq(1).transform("translate3d("+(a?s:0)+"%, "+(a?0:s)+"%, 0)").addClass("calendar-month-current"),t.eq(2).transform("translate3d("+(a?o:0)+"%, "+(a?0:o)+"%, 0)").addClass("calendar-month-next")},t.prototype.nextMonth=function(e){var t=this,n=t.params,r=t.$wrapperEl,s=t.inverter,o=t.isHorizontal;void 0!==e&&"object"!=typeof e||(e="",n.animate||(e=0));var i=parseInt(t.$months.eq(t.$months.length-1).attr("data-month"),10),l=parseInt(t.$months.eq(t.$months.length-1).attr("data-year"),10),d=new t.DateHandleClass(l,i).getTime(),h=!t.animating;if(n.maxDate&&d>new t.DateHandleClass(n.maxDate).getTime())t.resetMonth();else{if(t.monthsTranslate-=1,i===t.currentMonth){var c=100*-t.monthsTranslate*s,p=a(t.renderMonth(d,"next")).transform("translate3d("+(o?c:0)+"%, "+(o?0:c)+"%, 0)").addClass("calendar-month-next");r.append(p[0]),t.$months=r.find(".calendar-month"),t.emit("local::monthAdd calendarMonthAdd",t.$months.eq(t.$months.length-1)[0])}t.animating=!0,t.onMonthChangeStart("next");var u=100*t.monthsTranslate*s;r.transition(e).transform("translate3d("+(o?u:0)+"%, "+(o?0:u)+"%, 0)"),h&&r.transitionEnd(function(){t.onMonthChangeEnd("next")}),n.animate||t.onMonthChangeEnd("next")}},t.prototype.prevMonth=function(e){var t=this,n=t.params,r=t.$wrapperEl,s=t.inverter,o=t.isHorizontal;void 0!==e&&"object"!=typeof e||(e="",n.animate||(e=0));var i=parseInt(t.$months.eq(0).attr("data-month"),10),l=parseInt(t.$months.eq(0).attr("data-year"),10),d=new t.DateHandleClass(l,i+1,-1).getTime(),h=!t.animating;if(n.minDate){var c=new t.DateHandleClass(n.minDate);if(d<(c=new t.DateHandleClass(c.getFullYear(),c.getMonth(),1)).getTime())return void t.resetMonth()}if(t.monthsTranslate+=1,i===t.currentMonth){var p=100*-t.monthsTranslate*s,u=a(t.renderMonth(d,"prev")).transform("translate3d("+(o?p:0)+"%, "+(o?0:p)+"%, 0)").addClass("calendar-month-prev");r.prepend(u[0]),t.$months=r.find(".calendar-month"),t.emit("local::monthAdd calendarMonthAdd",t.$months.eq(0)[0])}t.animating=!0,t.onMonthChangeStart("prev");var m=100*t.monthsTranslate*s;r.transition(e).transform("translate3d("+(o?m:0)+"%, "+(o?0:m)+"%, 0)"),h&&r.transitionEnd(function(){t.onMonthChangeEnd("prev")}),n.animate||t.onMonthChangeEnd("prev")},t.prototype.resetMonth=function(e){void 0===e&&(e="");var t=this.$wrapperEl,a=this.inverter,n=this.isHorizontal,r=100*this.monthsTranslate*a;t.transition(e).transform("translate3d("+(n?r:0)+"%, "+(n?0:r)+"%, 0)")},t.prototype.setYearMonth=function(e,t,a){var n,r=this,s=r.params,o=r.isHorizontal,i=r.$wrapperEl,l=r.inverter;if(void 0===e&&(e=r.currentYear),void 0===t&&(t=r.currentMonth),void 0!==a&&"object"!=typeof a||(a="",s.animate||(a=0)),n=e<r.currentYear?new r.DateHandleClass(e,t+1,-1).getTime():new r.DateHandleClass(e,t).getTime(),s.maxDate&&n>new r.DateHandleClass(s.maxDate).getTime())return!1;if(s.minDate){var d=new r.DateHandleClass(s.minDate);if(n<(d=new r.DateHandleClass(d.getFullYear(),d.getMonth(),1)).getTime())return!1}var h=new r.DateHandleClass(r.currentYear,r.currentMonth).getTime(),c=n>h?"next":"prev",p=r.renderMonth(new r.DateHandleClass(e,t));r.monthsTranslate=r.monthsTranslate||0;var u,m=r.monthsTranslate,v=!r.animating;n>h?(r.monthsTranslate-=1,r.animating||r.$months.eq(r.$months.length-1).remove(),i.append(p),r.$months=i.find(".calendar-month"),u=100*-(m-1)*l,r.$months.eq(r.$months.length-1).transform("translate3d("+(o?u:0)+"%, "+(o?0:u)+"%, 0)").addClass("calendar-month-next")):(r.monthsTranslate+=1,r.animating||r.$months.eq(0).remove(),i.prepend(p),r.$months=i.find(".calendar-month"),u=100*-(m+1)*l,r.$months.eq(0).transform("translate3d("+(o?u:0)+"%, "+(o?0:u)+"%, 0)").addClass("calendar-month-prev")),r.emit("local::monthAdd calendarMonthAdd","next"===c?r.$months.eq(r.$months.length-1)[0]:r.$months.eq(0)[0]),r.animating=!0,r.onMonthChangeStart(c);var g=100*r.monthsTranslate*l;i.transition(a).transform("translate3d("+(o?g:0)+"%, "+(o?0:g)+"%, 0)"),v&&i.transitionEnd(function(){r.onMonthChangeEnd(c,!0)}),s.animate||r.onMonthChangeEnd(c)},t.prototype.nextYear=function(){this.setYearMonth(this.currentYear+1)},t.prototype.prevYear=function(){this.setYearMonth(this.currentYear-1)},t.prototype.dateInRange=function(e,t){var a,n=!1;if(!t)return!1;if(Array.isArray(t))for(a=0;a<t.length;a+=1)t[a].from||t[a].to?t[a].from&&t[a].to?e<=new this.DateHandleClass(t[a].to).getTime()&&e>=new this.DateHandleClass(t[a].from).getTime()&&(n=!0):t[a].from?e>=new this.DateHandleClass(t[a].from).getTime()&&(n=!0):t[a].to&&e<=new this.DateHandleClass(t[a].to).getTime()&&(n=!0):t[a].date?e===new this.DateHandleClass(t[a].date).getTime()&&(n=!0):e===new this.DateHandleClass(t[a]).getTime()&&(n=!0);else t.from||t.to?t.from&&t.to?e<=new this.DateHandleClass(t.to).getTime()&&e>=new this.DateHandleClass(t.from).getTime()&&(n=!0):t.from?e>=new this.DateHandleClass(t.from).getTime()&&(n=!0):t.to&&e<=new this.DateHandleClass(t.to).getTime()&&(n=!0):t.date?n=e===new this.DateHandleClass(t.date).getTime():"function"==typeof t&&(n=t(new this.DateHandleClass(e)));return n},t.prototype.daysInMonth=function(e){var t=new this.DateHandleClass(e);return new this.DateHandleClass(t.getFullYear(),t.getMonth()+1,0).getDate()},t.prototype.renderMonths=function(e){return this.params.renderMonths?this.params.renderMonths.call(this,e):('\n <div class="calendar-months-wrapper">\n '+this.renderMonth(e,"prev")+"\n "+this.renderMonth(e)+"\n "+this.renderMonth(e,"next")+"\n </div>\n ").trim()},t.prototype.renderMonth=function(e,t){var a=this,n=a.params,r=a.value;if(n.renderMonth)return n.renderMonth.call(a,e,t);var s=new a.DateHandleClass(e),o=s.getFullYear(),i=s.getMonth();"next"===t&&(s=11===i?new a.DateHandleClass(o+1,0):new a.DateHandleClass(o,i+1,1)),"prev"===t&&(s=0===i?new a.DateHandleClass(o-1,11):new a.DateHandleClass(o,i-1,1)),"next"!==t&&"prev"!==t||(i=s.getMonth(),o=s.getFullYear());var l,d,h=[],c=(new a.DateHandleClass).setHours(0,0,0,0),p=n.minDate?new a.DateHandleClass(n.minDate).getTime():null,u=n.maxDate?new a.DateHandleClass(n.maxDate).getTime():null,m=a.daysInMonth(new a.DateHandleClass(s.getFullYear(),s.getMonth()).getTime()-864e6),v=a.daysInMonth(s),g=6===n.firstDay?0:1,f="",y=n.firstDay-1+0,C=new a.DateHandleClass(s.getFullYear(),s.getMonth()).getDay();if(0===C&&(C=7),r&&r.length)for(var M=0;M<r.length;M+=1)h.push(new a.DateHandleClass(r[M]).setHours(0,0,0,0));for(var D=1;D<=6;D+=1){for(var T="",w=function(e){var t=void 0,r=(y+=1)-C,s="";1===D&&1===e&&r>g&&1!==n.firstDay&&(r=(y-=7)-C);var f=e-1+n.firstDay>6?e-1-7+n.firstDay:e-1+n.firstDay;r<0?(r=m+r+1,s+=" calendar-day-prev",t=new a.DateHandleClass(i-1<0?o-1:o,i-1<0?11:i-1,r).getTime()):(r+=1)>v?(r-=v,s+=" calendar-day-next",t=new a.DateHandleClass(i+1>11?o+1:o,i+1>11?0:i+1,r).getTime()):t=new a.DateHandleClass(o,i,r).getTime(),t===c&&(s+=" calendar-day-today"),n.rangePicker&&2===h.length?t>=h[0]&&t<=h[1]&&(s+=" calendar-day-selected"):h.indexOf(t)>=0&&(s+=" calendar-day-selected"),n.weekendDays.indexOf(f)>=0&&(s+=" calendar-day-weekend");var M="";if(d=!1,n.events&&a.dateInRange(t,n.events)&&(d=!0),d&&(s+=" calendar-day-has-events",M='\n <span class="calendar-day-events">\n <span class="calendar-day-event"></span>\n </span>\n ',Array.isArray(n.events))){var w=[];n.events.forEach(function(e){var n=e.color||"";w.indexOf(n)<0&&a.dateInRange(t,e)&&w.push(n)}),M='\n <span class="calendar-day-events">\n '+w.map(function(e){return('\n <span class="calendar-day-event" style="'+(e?"background-color: "+e:"")+'"></span>\n ').trim()}).join("")+"\n </span>\n "}if(n.rangesClasses)for(var H=0;H<n.rangesClasses.length;H+=1)a.dateInRange(t,n.rangesClasses[H].range)&&(s+=" "+n.rangesClasses[H].cssClass);l=!1,(p&&t<p||u&&t>u)&&(l=!0),n.disabled&&a.dateInRange(t,n.disabled)&&(l=!0),l&&(s+=" calendar-day-disabled");var $=(t=new a.DateHandleClass(t)).getFullYear(),b=t.getMonth();T+=('\n <div data-year="'+$+'" data-month="'+b+'" data-day="'+r+'" class="calendar-day'+s+'" data-date="'+$+"-"+b+"-"+r+'">\n <span class="calendar-day-number">'+r+M+"</span>\n </div>").trim()},H=1;H<=7;H+=1)w(H);f+='<div class="calendar-row">'+T+"</div>"}return f='<div class="calendar-month" data-year="'+o+'" data-month="'+i+'">'+f+"</div>"},t.prototype.renderWeekHeader=function(){if(this.params.renderWeekHeader)return this.params.renderWeekHeader.call(this);for(var e=this.params,t="",a=0;a<7;a+=1){var n=a+e.firstDay>6?a-7+e.firstDay:a+e.firstDay;t+='<div class="calendar-week-day">'+e.dayNamesShort[n]+"</div>"}return('\n <div class="calendar-week-header">\n '+t+"\n </div>\n ").trim()},t.prototype.renderMonthSelector=function(){return this.params.renderMonthSelector?this.params.renderMonthSelector.call(this):'\n <div class="calendar-month-selector">\n <a class="link icon-only calendar-prev-month-button">\n <i class="icon icon-prev"></i>\n </a>\n <span class="current-month-value"></span>\n <a class="link icon-only calendar-next-month-button">\n <i class="icon icon-next"></i>\n </a>\n </div>\n '.trim()},t.prototype.renderYearSelector=function(){return this.params.renderYearSelector?this.params.renderYearSelector.call(this):'\n <div class="calendar-year-selector">\n <a class="link icon-only calendar-prev-year-button">\n <i class="icon icon-prev"></i>\n </a>\n <span class="current-year-value"></span>\n <a class="link icon-only calendar-next-year-button">\n <i class="icon icon-next"></i>\n </a>\n </div>\n '.trim()},t.prototype.renderHeader=function(){return this.params.renderHeader?this.params.renderHeader.call(this):('\n <div class="calendar-header">\n <div class="calendar-selected-date">'+this.params.headerPlaceholder+"</div>\n </div>\n ").trim()},t.prototype.renderFooter=function(){var e=this.app;return this.params.renderFooter?this.params.renderFooter.call(this):('\n <div class="calendar-footer">\n <a class="'+("md"===e.theme?"button":"link")+' calendar-close sheet-close popover-close">'+this.params.toolbarCloseText+"</a>\n </div>\n ").trim()},t.prototype.renderToolbar=function(){return this.params.renderToolbar?this.params.renderToolbar.call(this,this):('\n <div class="toolbar toolbar-top no-shadow">\n <div class="toolbar-inner">\n '+(this.params.monthSelector?this.renderMonthSelector():"")+"\n "+(this.params.yearSelector?this.renderYearSelector():"")+"\n </div>\n </div>\n ").trim()},t.prototype.renderInline=function(){var e=this.params,t=e.cssClass,a=e.toolbar,n=e.header,r=e.footer,s=e.rangePicker,o=e.weekHeader,i=this.value,l=i&&i.length?i[0]:(new this.DateHandleClass).setHours(0,0,0);return('\n <div class="calendar calendar-inline '+(s?"calendar-range":"")+" "+(t||"")+'">\n '+(n?this.renderHeader():"")+"\n "+(a?this.renderToolbar():"")+"\n "+(o?this.renderWeekHeader():"")+'\n <div class="calendar-months">\n '+this.renderMonths(l)+"\n </div>\n "+(r?this.renderFooter():"")+"\n </div>\n ").trim()},t.prototype.renderCustomModal=function(){var e=this.params,t=e.cssClass,a=e.toolbar,n=e.header,r=e.footer,s=e.rangePicker,o=e.weekHeader,i=this.value,l=i&&i.length?i[0]:(new this.DateHandleClass).setHours(0,0,0);return('\n <div class="calendar calendar-modal '+(s?"calendar-range":"")+" "+(t||"")+'">\n '+(n?this.renderHeader():"")+"\n "+(a?this.renderToolbar():"")+"\n "+(o?this.renderWeekHeader():"")+'\n <div class="calendar-months">\n '+this.renderMonths(l)+"\n </div>\n "+(r?this.renderFooter():"")+"\n </div>\n ").trim()},t.prototype.renderSheet=function(){var e=this.params,t=e.cssClass,a=e.toolbar,n=e.header,r=e.footer,s=e.rangePicker,o=e.weekHeader,i=this.value,l=i&&i.length?i[0]:(new this.DateHandleClass).setHours(0,0,0);return('\n <div class="sheet-modal calendar calendar-sheet '+(s?"calendar-range":"")+" "+(t||"")+'">\n '+(n?this.renderHeader():"")+"\n "+(a?this.renderToolbar():"")+"\n "+(o?this.renderWeekHeader():"")+'\n <div class="sheet-modal-inner calendar-months">\n '+this.renderMonths(l)+"\n </div>\n "+(r?this.renderFooter():"")+"\n </div>\n ").trim()},t.prototype.renderPopover=function(){var e=this.params,t=e.cssClass,a=e.toolbar,n=e.header,r=e.footer,s=e.rangePicker,o=e.weekHeader,i=this.value,l=i&&i.length?i[0]:(new this.DateHandleClass).setHours(0,0,0);return('\n <div class="popover calendar-popover">\n <div class="popover-inner">\n <div class="calendar '+(s?"calendar-range":"")+" "+(t||"")+'">\n '+(n?this.renderHeader():"")+"\n "+(a?this.renderToolbar():"")+"\n "+(o?this.renderWeekHeader():"")+'\n <div class="calendar-months">\n '+this.renderMonths(l)+"\n </div>\n "+(r?this.renderFooter():"")+"\n </div>\n </div>\n </div>\n ").trim()},t.prototype.render=function(){var e=this.params;if(e.render)return e.render.call(this);if(!this.inline){var t=e.openIn;return"auto"===t&&(t=this.isPopover()?"popover":"sheet"),"popover"===t?this.renderPopover():"sheet"===t?this.renderSheet():this.renderCustomModal()}return this.renderInline()},t.prototype.onOpen=function(){var e=this,t=e.initialized,a=e.$el,n=e.app,r=e.$inputEl,s=e.inline,o=e.value,i=e.params;e.closing=!1,e.opened=!0,e.opening=!0,e.attachCalendarEvents();var l=!o&&i.value;t?o&&e.setValue(o,0):o?e.setValue(o,0):i.value&&e.setValue(e.normalizeValues(i.value),0),e.updateCurrentMonthYear(),e.monthsTranslate=0,e.setMonthsTranslate(),l?e.updateValue():i.header&&o&&e.updateValue(!0),!s&&r&&r.length&&"md"===n.theme&&r.trigger("focus"),e.initialized=!0,e.$months.each(function(t,a){e.emit("local::monthAdd calendarMonthAdd",a)}),a&&a.trigger("calendar:open",e),r&&r.trigger("calendar:open",e),e.emit("local::open calendarOpen",e)},t.prototype.onOpened=function(){this.opening=!1,this.$el&&this.$el.trigger("calendar:opened",this),this.$inputEl&&this.$inputEl.trigger("calendar:opened",this),this.emit("local::opened calendarOpened",this)},t.prototype.onClose=function(){var e=this.app;this.opening=!1,this.closing=!0,this.$inputEl&&"md"===e.theme&&this.$inputEl.trigger("blur"),this.detachCalendarEvents&&this.detachCalendarEvents(),this.$el&&this.$el.trigger("calendar:close",this),this.$inputEl&&this.$inputEl.trigger("calendar:close",this),this.emit("local::close calendarClose",this)},t.prototype.onClosed=function(){var e=this;e.opened=!1,e.closing=!1,e.inline||n.nextTick(function(){e.modal&&e.modal.el&&e.modal.destroy&&(e.params.routableModals||e.modal.destroy()),delete e.modal}),e.$el&&e.$el.trigger("calendar:closed",e),e.$inputEl&&e.$inputEl.trigger("calendar:closed",e),e.emit("local::closed calendarClosed",e)},t.prototype.open=function(){var e,t=this,n=t.app,r=t.opened,s=t.inline,o=t.$inputEl,i=t.params;if(!r){if(s)return t.$el=a(t.render()),t.$el[0].f7Calendar=t,t.$wrapperEl=t.$el.find(".calendar-months-wrapper"),t.$months=t.$wrapperEl.find(".calendar-month"),t.$containerEl.append(t.$el),t.onOpen(),void t.onOpened();var l=i.openIn;"auto"===l&&(l=t.isPopover()?"popover":"sheet");var d=t.render(),h={targetEl:o,scrollToEl:t.params.scrollToInput?o:void 0,content:d,backdrop:!0===t.params.backdrop||"popover"===l&&!1!==n.params.popover.backdrop&&!1!==t.params.backdrop,closeByBackdropClick:t.params.closeByBackdropClick,on:{open:function(){t.modal=this,t.$el="popover"===l?this.$el.find(".calendar"):this.$el,t.$wrapperEl=t.$el.find(".calendar-months-wrapper"),t.$months=t.$wrapperEl.find(".calendar-month"),t.$el[0].f7Calendar=t,"customModal"===l&&a(t.$el).find(".calendar-close").once("click",function(){t.close()}),t.onOpen()},opened:function(){t.onOpened()},close:function(){t.onClose()},closed:function(){t.onClosed()}}};t.params.routableModals?t.view.router.navigate({url:t.url,route:(e={path:t.url},e[l]=h,e)}):(t.modal=n[l].create(h),t.modal.open())}},t.prototype.close=function(){var e=this.opened,t=this.inline;if(e)return t?(this.onClose(),void this.onClosed()):void(this.params.routableModals?this.view.router.back():this.modal.close())},t.prototype.init=function(){if(this.initInput(),this.inline)return this.open(),void this.emit("local::init calendarInit",this);!this.initialized&&this.params.value&&this.setValue(this.normalizeValues(this.params.value)),this.$inputEl&&this.attachInputEvents(),this.params.closeByOutsideClick&&this.attachHtmlEvents(),this.emit("local::init calendarInit",this)},t.prototype.destroy=function(){if(!this.destroyed){var e=this.$el;this.emit("local::beforeDestroy calendarBeforeDestroy",this),e&&e.trigger("calendar:beforedestroy",this),this.close(),this.$inputEl&&this.detachInputEvents(),this.params.closeByOutsideClick&&this.detachHtmlEvents(),e&&e.length&&delete this.$el[0].f7Calendar,n.deleteProps(this),this.destroyed=!0}},t}(r),w={name:"calendar",static:{Calendar:T},create:function(){this.calendar=s({defaultSelector:".calendar",constructor:T,app:this,domProp:"f7Calendar"}),this.calendar.close=function(e){void 0===e&&(e=".calendar");var t=a(e);if(0!==t.length){var n=t[0].f7Calendar;!n||n&&!n.opened||n.close()}}},params:{calendar:{calendarType:"gregorian",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],firstDay:1,weekendDays:[0,6],jalali:{monthNames:["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],monthNamesShort:["فَر","اُر","خُر","تیر","مُر","شَه","مهر","آب","آذر","دی","بَه","اِس"],dayNames:["یکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayNamesShort:["1ش","۲ش","۳ش","۴ش","۵ش","ج","ش"],firstDay:6,weekendDays:[5]},multiple:!1,rangePicker:!1,rangePickerMinDays:1,rangePickerMaxDays:0,dateFormat:"yyyy-mm-dd",direction:"horizontal",minDate:null,maxDate:null,disabled:null,events:null,rangesClasses:null,touchMove:!0,animate:!0,closeOnSelect:!1,monthSelector:!0,yearSelector:!0,weekHeader:!0,value:null,containerEl:null,openIn:"auto",formatValue:null,inputEl:null,inputReadOnly:!0,closeByOutsideClick:!0,scrollToInput:!0,header:!1,headerPlaceholder:"Select date",footer:!1,toolbar:!0,toolbarCloseText:"Done",cssClass:null,routableModals:!0,view:null,url:"date/",backdrop:null,closeByBackdropClick:!0,renderWeekHeader:null,renderMonths:null,renderMonth:null,renderMonthSelector:null,renderYearSelector:null,renderHeader:null,renderFooter:null,renderToolbar:null,renderInline:null,renderPopover:null,renderSheet:null,render:null}}};if(t){if(e.prototype.modules&&e.prototype.modules[w.name])return;e.use(w),e.instance&&(e.instance.useModuleParams(w,e.instance.params),e.instance.useModule(w))}return w}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))