framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
2 lines (1 loc) • 36.6 kB
JavaScript
(function framework7ComponentLoader(e,a){void 0===a&&(a=!0);var t=e.$,n=e.utils,r=e.getDevice,o=e.getSupport,l=e.Class,s=(e.Modal,e.ConstructorMethods);e.ModalMethods;function i(e){this.wrapped=e}function c(e){var a,t;function n(a,t){try{var o=e[a](t),l=o.value,s=l instanceof i;Promise.resolve(s?l.wrapped:l).then((function(e){s?n("return"===a?"return":"next",e):r(o.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){r("throw",e)}}function r(e,r){switch(e){case"return":a.resolve({value:r,done:!0});break;case"throw":a.reject(r);break;default:a.resolve({value:r,done:!1})}(a=a.next)?n(a.key,a.arg):t=null}this._invoke=function(e,r){return new Promise((function(o,l){var s={key:e,arg:r,resolve:o,reject:l,next:null};t?t=t.next=s:(a=t=s,n(e,r))}))},"function"!=typeof e.return&&(this.return=void 0)}function d(e,a){for(var t=0;t<a.length;t++){var n=a[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function m(e,a){return(m=Object.setPrototypeOf||function(e,a){return e.__proto__=a,e})(e,a)}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}c.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},c.prototype.next=function(e){return this._invoke("next",e)},c.prototype.throw=function(e){return this._invoke("throw",e)},c.prototype.return=function(e){return this._invoke("return",e)};var h=n.extend,p=n.nextTick,v=n.deleteProps,f=function(e){var a,n;function l(a,n){var r;void 0===n&&(n={});var l,s,i=u(r=e.call(this,n,[a])||this);if(i.params=h({},a.params.calendar,n),i.params.containerEl&&0===(l=t(i.params.containerEl)).length)return i||u(r);i.params.inputEl&&(s=t(i.params.inputEl));var c="horizontal"===i.params.direction,d=1;c&&(d=a.rtl?-1:1),h(i,{app:a,$containerEl:l,containerEl:l&&l[0],inline:l&&l.length>0,$inputEl:s,inputEl:s&&s[0],initialized:!1,opened:!1,url:i.params.url,isHorizontal:c,inverter:d,animating:!1,allowTouchMove:!0,hasTimePicker:i.params.timePicker&&!i.params.rangePicker&&!i.params.multiple}),i.dayFormatter=new Intl.DateTimeFormat(i.params.locale,{day:"numeric"}),i.monthFormatter=new Intl.DateTimeFormat(i.params.locale,{month:"long"}),i.yearFormatter=new Intl.DateTimeFormat(i.params.locale,{year:"numeric"}),i.timeSelectorFormatter=new Intl.DateTimeFormat(i.params.locale,i.params.timePickerFormat);var m=i.timeSelectorFormatter.format(new Date).toLowerCase();i.is12HoursFormat=m.indexOf("pm")>=0||m.indexOf("am")>=0;var p=i.params,v=p.monthNames,f=p.monthNamesShort,g=p.dayNames,y=p.dayNamesShort,k=i.getIntlNames(),M=k.monthNamesIntl,w=k.monthNamesShortIntl,D=k.dayNamesIntl,$=k.dayNamesShortIntl;function x(){i.open()}function T(e){e.preventDefault()}function C(){i.setValue([]),i.opened&&i.update()}function P(e){var a=t(e.target);!i.destroyed&&i.params&&(i.isPopover()||i.opened&&!i.closing&&(a.closest('[class*="backdrop"]').length||(s&&s.length>0?a[0]!==s[0]&&0===a.closest(".sheet-modal, .calendar-modal").length&&i.close():0===t(e.target).closest(".sheet-modal, .calendar-modal").length&&i.close())))}return"auto"===v&&(v=M),"auto"===f&&(f=w),"auto"===g&&(g=D),"auto"===y&&(y=$),h(i,{monthNames:v,monthNamesShort:f,dayNames:g,dayNamesShort:y}),h(i,{attachInputEvents:function(){i.$inputEl.on("click",x),i.$inputEl.on("input:clear",C),i.params.inputReadOnly&&(i.$inputEl.on("focus mousedown",T),i.$inputEl[0]&&(i.$inputEl[0].f7ValidateReadonly=!0))},detachInputEvents:function(){i.$inputEl.off("click",x),i.$inputEl.off("input:clear",C),i.params.inputReadOnly&&(i.$inputEl.off("focus mousedown",T),i.$inputEl[0]&&delete i.$inputEl[0].f7ValidateReadonly)},attachHtmlEvents:function(){a.on("click",P)},detachHtmlEvents:function(){a.off("click",P)}}),i.attachCalendarEvents=function(){var e,n,r,l,s,c,d,m,u,h,p,v,f,g=!0,y=i.$el,k=i.$wrapperEl;function M(a){n||e||(e=!0,r="touchstart"===a.type?a.targetTouches[0].pageX:a.pageX,s=r,l="touchstart"===a.type?a.targetTouches[0].pageY:a.pageY,c=l,d=(new Date).getTime(),p=0,g=!0,f=void 0,m=i.monthsTranslate)}function w(a){if(e){var t=i.isHorizontal;s="touchmove"===a.type?a.targetTouches[0].pageX:a.pageX,c="touchmove"===a.type?a.targetTouches[0].pageY:a.pageY,void 0===f&&(f=!!(f||Math.abs(c-l)>Math.abs(s-r))),t&&f||!i.allowTouchMove?e=!1:(a.preventDefault(),i.animating?e=!1:(g=!1,n||(n=!0,u=k[0].offsetWidth,h=k[0].offsetHeight,k.transition(0)),p=(v=t?s-r:c-l)/(t?u:h),m=100*(i.monthsTranslate*i.inverter+p),k.transform("translate3d("+(t?m:0)+"%, "+(t?0:m)+"%, 0)")))}}function D(){if(!e||!n)return e=!1,void(n=!1);e=!1,n=!1,(new Date).getTime()-d<300?Math.abs(v)<10?i.resetMonth():v>=10?a.rtl?i.nextMonth():i.prevMonth():a.rtl?i.prevMonth():i.nextMonth():p<=-.5?a.rtl?i.prevMonth():i.nextMonth():p>=.5?a.rtl?i.nextMonth():i.prevMonth():i.resetMonth(),setTimeout((function(){g=!0}),100)}function $(e){if(g){var a=t(e.target).parents(".calendar-day");if(0===a.length&&t(e.target).hasClass("calendar-day")&&(a=t(e.target)),0!==a.length&&!a.hasClass("calendar-day-disabled")){i.params.rangePicker||(a.hasClass("calendar-day-next")&&i.nextMonth(),a.hasClass("calendar-day-prev")&&i.prevMonth());var n=parseInt(a.attr("data-year"),10),r=parseInt(a.attr("data-month"),10),o=parseInt(a.attr("data-day"),10);if(i.emit("local::dayClick calendarDayClick",i,a[0],n,r,o),!a.hasClass("calendar-day-selected")||i.params.multiple||i.params.rangePicker){var l=new Date(n,r,o,0,0,0);i.hasTimePicker&&(i.value&&i.value[0]?l.setHours(i.value[0].getHours(),i.value[0].getMinutes()):l.setHours((new Date).getHours(),(new Date).getMinutes())),i.addValue(l)}i.params.closeOnSelect&&(i.params.rangePicker&&2===i.value.length||!i.params.rangePicker)&&i.close()}}}function x(){i.nextMonth()}function T(){i.prevMonth()}function C(){i.nextYear()}function P(){i.prevYear()}function E(){y.append(i.renderMonthPicker())}function b(){var e=t(this);if(e.hasClass("calendar-month-picker-item-current"))y.find(".calendar-month-picker").remove();else{y.find(".calendar-month-picker-item-current").add(e).toggleClass("calendar-month-picker-item-current");var a=e.index()-(parseInt(i.$el.find(".calendar-month-current").attr("data-locale-month"),10)-i.currentMonth);i.setYearMonth(i.currentYear,a,0),setTimeout((function(){y.find(".calendar-month-picker").remove()}),200)}}function I(){y.append(i.renderYearPicker());var e=y.find(".calendar-year-picker-item-current"),a=y.find(".calendar-year-picker");e&&e.length&&a.scrollTop(e[0].offsetTop-a[0].offsetHeight/2+e[0].offsetHeight/2)}function Y(){var e=t(this);if(e.hasClass("calendar-year-picker-item-current"))y.find(".calendar-year-picker").remove();else{y.find(".calendar-year-picker-item-current").add(e).toggleClass("calendar-year-picker-item-current");var a=parseInt(e.attr("data-year"),10);i.setYearMonth(a,void 0,0),setTimeout((function(){y.find(".calendar-year-picker").remove()}),200)}}function F(){i.openTimePicker()}function H(){i.closeTimePicker()}var S=!("touchstart"!==a.touchEvents.start||!o().passiveListener)&&{passive:!0,capture:!1};y.find(".calendar-prev-month-button").on("click",T),y.find(".calendar-next-month-button").on("click",x),y.find(".calendar-prev-year-button").on("click",P),y.find(".calendar-next-year-button").on("click",C),i.params.monthPicker&&(y.find(".current-month-value").on("click",E),y.on("click",".calendar-month-picker-item",b)),i.params.yearPicker&&(y.find(".current-year-value").on("click",I),y.on("click",".calendar-year-picker-item",Y)),i.hasTimePicker&&(y.find(".calendar-time-selector a").on("click",F),y.on("click",".calendar-time-picker-close",H)),k.on("click",$),i.params.touchMove&&(k.on(a.touchEvents.start,M,S),a.on("touchmove:active",w),a.on("touchend:passive",D)),i.detachCalendarEvents=function(){y.find(".calendar-prev-month-button").off("click",T),y.find(".calendar-next-month-button").off("click",x),y.find(".calendar-prev-year-button").off("click",P),y.find(".calendar-next-year-button").off("click",C),i.params.monthPicker&&(y.find(".current-month-value").off("click",E),y.off("click",".calendar-month-picker-item",b)),i.params.yearPicker&&(y.find(".current-year-value").off("click",I),y.off("click",".calendar-year-picker-item",Y)),i.hasTimePicker&&(y.find(".calendar-time-selector a").off("click",F),y.off("click",".calendar-time-picker-close",H)),k.off("click",$),i.params.touchMove&&(k.off(a.touchEvents.start,M,S),a.off("touchmove:active",w),a.off("touchend:passive",D))}},i.init(),i||u(r)}n=e,(a=l).prototype=Object.create(n.prototype),a.prototype.constructor=a,m(a,n);var s,i,c,f=l.prototype;return f.getIntlNames=function(){for(var e,a,t,n=this.params.locale,r=[],o=[],l=[],s=[],i=new Intl.DateTimeFormat(n,{month:"long"}),c=new Intl.DateTimeFormat(n,{month:"short"}),d=new Intl.DateTimeFormat(n,{weekday:"long"}),m=new Intl.DateTimeFormat(n,{weekday:"short"}),u=0;u<24;u+=1){var h=(new Date).setMonth(u,1),p=this.yearFormatter.format(h);e&&p!==e&&(a&&(t=!0),a=!0,e=p),e||(e=p),a&&e===p&&!t&&(r.push(i.format(h)),o.push(c.format(h)))}for(var v=(new Date).getDay(),f=0;f<7;f+=1){var g=(new Date).getTime()+24*(f-v)*60*60*1e3;l.push(d.format(g)),s.push(m.format(g))}return{monthNamesIntl:r,monthNamesShortIntl:o,dayNamesIntl:l,dayNamesShortIntl:s}},f.normalizeDate=function(e){var a=new Date(e);return this.hasTimePicker?new Date(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes()):new Date(a.getFullYear(),a.getMonth(),a.getDate())},f.normalizeValues=function(e){var a=this,t=[];return e&&Array.isArray(e)&&(t=e.map((function(e){return a.normalizeDate(e)}))),t},f.initInput=function(){var e=this;e.$inputEl&&e.params.inputReadOnly&&e.$inputEl.prop("readOnly",!0)},f.isPopover=function(){var e=this,a=e.app,t=e.modal,n=e.params,o=r();if("sheet"===n.openIn)return!1;if(t&&"popover"!==t.type)return!1;if(!e.inline&&e.inputEl){if("popover"===n.openIn)return!0;if(o.ios)return!!o.ipad;if(a.width>=768)return!0;if(o.desktop&&"aurora"===a.theme)return!0}return!1},f.formatDate=function(e){var a=this,t=new Date(e),n=t.getFullYear(),r=t.getMonth(),o=r+1,l=t.getDate(),s=t.getDay(),i=a.monthNames,c=a.monthNamesShort,d=a.dayNames,m=a.dayNamesShort,u=a.params,h=u.dateFormat,p=u.locale;function v(e){return e<10?"0"+e:e}if("string"==typeof h){var f={yyyy:n,yy:String(n).substring(2),mm:v(o),m:o,MM:i[r],M:c[r],dd:v(l),d:l,DD:d[s],D:m[s]};if(a.params.timePicker){var g=t.getHours(),y=t.getMinutes(),k=t.getSeconds(),M=g;g>12&&(M=g-12),0===g&&(M=12);var w=g>=12&&0!==g?"pm":"am";Object.assign(f,{HH:v(g),H:g,hh:v(M),h:M,ss:v(k),s:k,":mm":v(y),":m":y,a:w,A:w.toUpperCase()})}var D=new RegExp(Object.keys(f).map((function(e){return"("+e+")"})).join("|"),"g");return h.replace(D,(function(e){return e in f?f[e]:e}))}return"function"==typeof h?h(t):new Intl.DateTimeFormat(p,h).format(t)},f.formatValue=function(){var e=this,a=e.value;return e.params.formatValue?e.params.formatValue.call(e,a):a.map((function(a){return e.formatDate(a)})).join(e.params.rangePicker?" - ":", ")},f.addValue=function(e){var a=this,t=a.params,n=t.multiple,r=t.rangePicker,o=t.rangePickerMinDays,l=t.rangePickerMaxDays;if(n){var s;a.value||(a.value=[]);for(var i=0;i<a.value.length;i+=1)new Date(e).getTime()===new Date(a.value[i]).getTime()&&(s=i);void 0===s?a.value.push(e):a.value.splice(s,1),a.updateValue()}else r?(a.value||(a.value=[]),2!==a.value.length&&0!==a.value.length||(a.value=[]),0===a.value.length||Math.abs(a.value[0].getTime()-e.getTime())>=60*(o-1)*60*24*1e3&&(0===l||Math.abs(a.value[0].getTime()-e.getTime())<=60*(l-1)*60*24*1e3)?a.value.push(e):a.value=[],a.value.sort((function(e,a){return e-a})),a.updateValue()):(a.value=[e],a.updateValue())},f.setValue=function(e){var a=this,t=a.value;if(Array.isArray(t)&&Array.isArray(e)&&t.length===e.length){var n=!0;if(t.forEach((function(a,t){a!==e[t]&&(n=!1)})),n)return}a.value=e,a.updateValue()},f.getValue=function(){return this.value},f.updateValue=function(e){var a,t,n=this,r=n.$el,o=n.$wrapperEl,l=n.$inputEl,s=n.value,i=n.params;if(r&&r.length>0)if(o.find(".calendar-day-selected").removeClass("calendar-day-selected calendar-day-selected-range calendar-day-selected-left calendar-day-selected-right"),i.rangePicker&&2===s.length){var c=new Date(s[0]).getTime(),d=new Date(s[1]).getTime();for(a=c;a<=d;a+=864e5){t=new Date(a);var m="calendar-day-selected";c!==d&&(a!==c&&a!==d&&(m+=" calendar-day-selected-range"),a===c&&(m+=" calendar-day-selected-left"),a===d&&(m+=" calendar-day-selected-right")),o.find('.calendar-day[data-date="'+t.getFullYear()+"-"+t.getMonth()+"-"+t.getDate()+'"]').addClass(m)}t=new Date(c),o.find('.calendar-day[data-date="'+t.getFullYear()+"-"+t.getMonth()+"-"+t.getDate()+'"]').removeClass("calendar-day-selected-range").addClass("calendar-day-selected calendar-day-selected-left"),t=new Date(d),o.find('.calendar-day[data-date="'+t.getFullYear()+"-"+t.getMonth()+"-"+t.getDate()+'"]').removeClass("calendar-day-selected-range").addClass("calendar-day-selected calendar-day-selected-right")}else for(a=0;a<n.value.length;a+=1)t=new Date(s[a]),o.find('.calendar-day[data-date="'+t.getFullYear()+"-"+t.getMonth()+"-"+t.getDate()+'"]').addClass("calendar-day-selected");if(e||n.emit("local::change calendarChange",n,s),r&&r.length>0&&n.hasTimePicker&&r.find(".calendar-time-selector a").text(s&&s.length?n.timeSelectorFormatter.format(s[0]):n.params.timePickerPlaceholder),l&&l.length||i.header){var u=n.formatValue(s);i.header&&r&&r.length&&r.find(".calendar-selected-date").text(u),l&&l.length&&!e&&(l.val(u),l.trigger("change"))}},f.updateCurrentMonthYear=function(e){var a,t,n=this,r=n.$months,o=n.$el,l=n.monthNames;void 0===e?(n.currentMonth=parseInt(r.eq(1).attr("data-month"),10),n.currentYear=parseInt(r.eq(1).attr("data-year"),10),a=r.eq(1).attr("data-locale-month"),t=r.eq(1).attr("data-locale-year")):(n.currentMonth=parseInt(r.eq("next"===e?r.length-1:0).attr("data-month"),10),n.currentYear=parseInt(r.eq("next"===e?r.length-1:0).attr("data-year"),10),a=r.eq("next"===e?r.length-1:0).attr("data-locale-month"),t=r.eq("next"===e?r.length-1:0).attr("data-locale-year")),o.find(".current-month-value").text(l[a]),o.find(".current-year-value").text(t)},f.update=function(){var e=this,a=e.currentYear,t=e.currentMonth,n=e.$wrapperEl,r=new Date(a,t),o=e.renderMonth(r,"prev"),l=e.renderMonth(r),s=e.renderMonth(r,"next");n.transition(0).html(""+o+l+s).transform("translate3d(0,0,0)"),e.$months=n.find(".calendar-month"),e.monthsTranslate=0,e.setMonthsTranslate(),e.$months.each((function(a){e.emit("local::monthAdd calendarMonthAdd",a)}))},f.onMonthChangeStart=function(e){var a=this,t=a.$months,n=a.currentYear,r=a.currentMonth;a.updateCurrentMonthYear(e),t.removeClass("calendar-month-current calendar-month-prev calendar-month-next");var o="next"===e?t.length-1:0;t.eq(o).addClass("calendar-month-current"),t.eq("next"===e?o-1:o+1).addClass("next"===e?"calendar-month-prev":"calendar-month-next"),a.emit("local::monthYearChangeStart calendarMonthYearChangeStart",a,n,r)},f.onMonthChangeEnd=function(e,a){var t,n,r,o=this,l=o.currentYear,s=o.currentMonth,i=o.$wrapperEl,c=o.monthsTranslate;o.animating=!1,i.find(".calendar-month:not(.calendar-month-prev):not(.calendar-month-current):not(.calendar-month-next)").remove(),void 0===e&&(e="next",a=!0),a?(i.find(".calendar-month-next, .calendar-month-prev").remove(),n=o.renderMonth(new Date(l,s),"prev"),t=o.renderMonth(new Date(l,s),"next")):r=o.renderMonth(new Date(l,s),e),("next"===e||a)&&i.append(r||t),("prev"===e||a)&&i.prepend(r||n);var d=i.find(".calendar-month");o.$months=d,o.setMonthsTranslate(c),o.emit("local::monthAdd calendarMonthAdd",o,"next"===e?d.eq(d.length-1)[0]:d.eq(0)[0]),o.emit("local::monthYearChangeEnd calendarMonthYearChangeEnd",o,l,s)},f.setMonthsTranslate=function(e){var a=this,t=a.$months,n=a.isHorizontal,r=a.inverter;e=e||a.monthsTranslate||0,void 0===a.monthsTranslate&&(a.monthsTranslate=e),t.removeClass("calendar-month-current calendar-month-prev calendar-month-next");var o=100*-(e+1)*r,l=100*-e*r,s=100*-(e-1)*r;t.eq(0).transform("translate3d("+(n?o:0)+"%, "+(n?0:o)+"%, 0)").addClass("calendar-month-prev"),t.eq(1).transform("translate3d("+(n?l:0)+"%, "+(n?0:l)+"%, 0)").addClass("calendar-month-current"),t.eq(2).transform("translate3d("+(n?s:0)+"%, "+(n?0:s)+"%, 0)").addClass("calendar-month-next")},f.nextMonth=function(e){var a=this,n=a.params,r=a.$wrapperEl,o=a.inverter,l=a.isHorizontal;void 0!==e&&"object"!=typeof e||(e="",n.animate||(e=0));var s=parseInt(a.$months.eq(a.$months.length-1).attr("data-month"),10),i=parseInt(a.$months.eq(a.$months.length-1).attr("data-year"),10),c=new Date(i,s).getTime(),d=!a.animating;if(n.maxDate&&c>new Date(n.maxDate).getTime())a.resetMonth();else{if(a.monthsTranslate-=1,s===a.currentMonth){var m=100*-a.monthsTranslate*o,u=t(a.renderMonth(c,"next")).transform("translate3d("+(l?m:0)+"%, "+(l?0:m)+"%, 0)").addClass("calendar-month-next");r.append(u[0]),a.$months=r.find(".calendar-month"),a.emit("local::monthAdd calendarMonthAdd",a.$months.eq(a.$months.length-1)[0])}a.animating=!0,a.onMonthChangeStart("next");var h=100*a.monthsTranslate*o;r.transition(e).transform("translate3d("+(l?h:0)+"%, "+(l?0:h)+"%, 0)"),d&&r.transitionEnd((function(){a.onMonthChangeEnd("next")})),n.animate||a.onMonthChangeEnd("next")}},f.prevMonth=function(e){var a=this,n=a.params,r=a.$wrapperEl,o=a.inverter,l=a.isHorizontal;void 0!==e&&"object"!=typeof e||(e="",n.animate||(e=0));var s=parseInt(a.$months.eq(0).attr("data-month"),10),i=parseInt(a.$months.eq(0).attr("data-year"),10),c=new Date(i,s+1,-1).getTime(),d=!a.animating;if(n.minDate){var m=new Date(n.minDate);if(c<(m=new Date(m.getFullYear(),m.getMonth(),1)).getTime())return void a.resetMonth()}if(a.monthsTranslate+=1,s===a.currentMonth){var u=100*-a.monthsTranslate*o,h=t(a.renderMonth(c,"prev")).transform("translate3d("+(l?u:0)+"%, "+(l?0:u)+"%, 0)").addClass("calendar-month-prev");r.prepend(h[0]),a.$months=r.find(".calendar-month"),a.emit("local::monthAdd calendarMonthAdd",a.$months.eq(0)[0])}a.animating=!0,a.onMonthChangeStart("prev");var p=100*a.monthsTranslate*o;r.transition(e).transform("translate3d("+(l?p:0)+"%, "+(l?0:p)+"%, 0)"),d&&r.transitionEnd((function(){a.onMonthChangeEnd("prev")})),n.animate||a.onMonthChangeEnd("prev")},f.resetMonth=function(e){void 0===e&&(e="");var a=this,t=a.$wrapperEl,n=a.inverter,r=a.isHorizontal,o=100*a.monthsTranslate*n;t.transition(e).transform("translate3d("+(r?o:0)+"%, "+(r?0:o)+"%, 0)")},f.setYearMonth=function(e,a,t){var n,r=this,o=r.params,l=r.isHorizontal,s=r.$wrapperEl,i=r.inverter;if(void 0===e&&(e=r.currentYear),void 0===a&&(a=r.currentMonth),void 0!==t&&"object"!=typeof t||(t="",o.animate||(t=0)),n=e<r.currentYear?new Date(e,a+1,-1).getTime():new Date(e,a).getTime(),o.maxDate&&n>new Date(o.maxDate).getTime())return!1;if(o.minDate){var c=new Date(o.minDate);if(n<(c=new Date(c.getFullYear(),c.getMonth(),1)).getTime())return!1}var d=new Date(r.currentYear,r.currentMonth).getTime(),m=n>d?"next":"prev",u=r.renderMonth(new Date(e,a));r.monthsTranslate=r.monthsTranslate||0;var h,p=r.monthsTranslate,v=!r.animating&&0!==t;n>d?(r.monthsTranslate-=1,r.animating||r.$months.eq(r.$months.length-1).remove(),s.append(u),r.$months=s.find(".calendar-month"),h=100*-(p-1)*i,r.$months.eq(r.$months.length-1).transform("translate3d("+(l?h:0)+"%, "+(l?0:h)+"%, 0)").addClass("calendar-month-next")):(r.monthsTranslate+=1,r.animating||r.$months.eq(0).remove(),s.prepend(u),r.$months=s.find(".calendar-month"),h=100*-(p+1)*i,r.$months.eq(0).transform("translate3d("+(l?h:0)+"%, "+(l?0:h)+"%, 0)").addClass("calendar-month-prev")),r.emit("local::monthAdd calendarMonthAdd","next"===m?r.$months.eq(r.$months.length-1)[0]:r.$months.eq(0)[0]),r.animating=!0,r.onMonthChangeStart(m);var f=100*r.monthsTranslate*i;s.transition(t).transform("translate3d("+(l?f:0)+"%, "+(l?0:f)+"%, 0)"),v&&s.transitionEnd((function(){r.onMonthChangeEnd(m,!0)})),o.animate&&0!==t||r.onMonthChangeEnd(m,!0)},f.nextYear=function(){this.setYearMonth(this.currentYear+1)},f.prevYear=function(){this.setYearMonth(this.currentYear-1)},f.dateInRange=function(e,a){var t,n=!1;if(!a)return!1;if(Array.isArray(a))for(t=0;t<a.length;t+=1)a[t].from||a[t].to?a[t].from&&a[t].to?e<=new Date(a[t].to).getTime()&&e>=new Date(a[t].from).getTime()&&(n=!0):a[t].from?e>=new Date(a[t].from).getTime()&&(n=!0):a[t].to&&e<=new Date(a[t].to).getTime()&&(n=!0):a[t].date?e===new Date(a[t].date).getTime()&&(n=!0):e===new Date(a[t]).getTime()&&(n=!0);else a.from||a.to?a.from&&a.to?e<=new Date(a.to).getTime()&&e>=new Date(a.from).getTime()&&(n=!0):a.from?e>=new Date(a.from).getTime()&&(n=!0):a.to&&e<=new Date(a.to).getTime()&&(n=!0):a.date?n=e===new Date(a.date).getTime():"function"==typeof a&&(n=a(new Date(e)));return n},f.daysInMonth=function(e){var a=new Date(e);return new Date(a.getFullYear(),a.getMonth()+1,0).getDate()},f.renderMonths=function(e){var a=this;return a.params.renderMonths?a.params.renderMonths.call(a,e):$jsx("div",{class:"calendar-months-wrapper"},a.renderMonth(e,"prev"),a.renderMonth(e),a.renderMonth(e,"next"))},f.renderMonth=function(e,a){var t=this,n=t.params,r=t.value;if(n.renderMonth)return n.renderMonth.call(t,e,a);var o=new Date(e),l=o.getFullYear(),s=o.getMonth(),i=t.monthNames.indexOf(t.monthFormatter.format(o));i<0&&(i=s);var c=t.yearFormatter.format(o);"next"===a&&(o=11===s?new Date(l+1,0):new Date(l,s+1,1)),"prev"===a&&(o=0===s?new Date(l-1,11):new Date(l,s-1,1)),"next"!==a&&"prev"!==a||(s=o.getMonth(),l=o.getFullYear(),(i=t.monthNames.indexOf(t.monthFormatter.format(o)))<0&&(i=s),c=t.yearFormatter.format(o));var d,m,u=[],h=(new Date).setHours(0,0,0,0),p=n.minDate?new Date(n.minDate).getTime():null,v=n.maxDate?new Date(n.maxDate).getTime():null,f=t.daysInMonth(new Date(o.getFullYear(),o.getMonth()).getTime()-864e6),g=t.daysInMonth(o),y=6===n.firstDay?0:1,k="",M=n.firstDay-1+0,w=new Date(o.getFullYear(),o.getMonth()).getDay();if(0===w&&(w=7),r&&r.length)for(var D=0;D<r.length;D+=1)u.push(new Date(r[D]).setHours(0,0,0,0));for(var $=1;$<=6;$+=1){for(var x="",T=function(e){var a=void 0,r=(M+=1)-w,o="";1===$&&1===e&&r>y&&1!==n.firstDay&&(r=(M-=7)-w);var i=e-1+n.firstDay>6?e-1-7+n.firstDay:e-1+n.firstDay;r<0?(r=f+r+1,o+=" calendar-day-prev",a=new Date(s-1<0?l-1:l,s-1<0?11:s-1,r).getTime()):(r+=1)>g?(r-=g,o+=" calendar-day-next",a=new Date(s+1>11?l+1:l,s+1>11?0:s+1,r).getTime()):a=new Date(l,s,r).getTime(),a===h&&(o+=" calendar-day-today"),n.rangePicker&&2===u.length?(a>=u[0]&&a<=u[1]&&(o+=" calendar-day-selected"),u[0]!==u[1]&&(a>u[0]&&a<u[1]&&(o+=" calendar-day-selected-range"),a===u[0]&&(o+=" calendar-day-selected-left"),a===u[1]&&(o+=" calendar-day-selected-right"))):u.indexOf(a)>=0&&(o+=" calendar-day-selected"),n.weekendDays.indexOf(i)>=0&&(o+=" calendar-day-weekend");var c="";if(m=!1,n.events&&t.dateInRange(a,n.events)&&(m=!0),m&&(o+=" calendar-day-has-events",c='\n <span class="calendar-day-events">\n <span class="calendar-day-event"></span>\n </span>\n ',Array.isArray(n.events))){var k=[];n.events.forEach((function(e){var n=e.color||"";k.indexOf(n)<0&&t.dateInRange(a,e)&&k.push(n)})),c='\n <span class="calendar-day-events">\n '+k.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 D=0;D<n.rangesClasses.length;D+=1)t.dateInRange(a,n.rangesClasses[D].range)&&(o+=" "+n.rangesClasses[D].cssClass);d=!1,(p&&a<p||v&&a>v)&&(d=!0),n.disabled&&t.dateInRange(a,n.disabled)&&(d=!0),d&&(o+=" calendar-day-disabled");var T=(a=new Date(a)).getFullYear(),C=a.getMonth(),P=t.dayFormatter.format(a);x+=('\n <div data-year="'+T+'" data-month="'+C+'" data-day="'+r+'" class="calendar-day'+o+'" data-date="'+T+"-"+C+"-"+r+'">\n <span class="calendar-day-number">'+P+c+"</span>\n </div>").trim()},C=1;C<=7;C+=1)T(C);k+='<div class="calendar-row">'+x+"</div>"}return k='<div class="calendar-month" data-year="'+l+'" data-month="'+s+'" data-locale-year="'+c+'" data-locale-month="'+i+'">'+k+"</div>"},f.renderWeekHeader=function(){var e=this;if(e.params.renderWeekHeader)return e.params.renderWeekHeader.call(e);for(var a=e.params,t="",n=0;n<7;n+=1){var r=n+a.firstDay>6?n-7+a.firstDay:n+a.firstDay;t+='<div class="calendar-week-day">'+e.dayNamesShort[r]+"</div>"}return $jsx("div",{class:"calendar-week-header"},t)},f.renderMonthSelector=function(){var e=this;return e.params.renderMonthSelector?e.params.renderMonthSelector.call(e):$jsx("div",{class:"calendar-month-selector"},$jsx("a",{class:"link icon-only calendar-prev-month-button"},$jsx("i",{class:"icon icon-prev"})),e.params.monthPicker?$jsx("a",{class:"current-month-value link"}):$jsx("span",{class:"current-month-value"}),$jsx("a",{class:"link icon-only calendar-next-month-button"},$jsx("i",{class:"icon icon-next"})))},f.renderMonthPicker=function(){var e=parseInt(this.$el.find(".calendar-month-current").attr("data-locale-month"),10);return $jsx("div",{class:"calendar-month-picker"},this.monthNames.map((function(a,t){return $jsx("div",{class:"calendar-month-picker-item "+(e===t?"calendar-month-picker-item-current":"")},$jsx("span",null,a))})))},f.renderYearSelector=function(){var e=this;return e.params.renderYearSelector?e.params.renderYearSelector.call(e):$jsx("div",{class:"calendar-year-selector"},$jsx("a",{class:"link icon-only calendar-prev-year-button"},$jsx("i",{class:"icon icon-prev"})),e.params.yearPicker?$jsx("a",{class:"current-year-value link"}):$jsx("span",{class:"current-year-value"}),$jsx("a",{class:"link icon-only calendar-next-year-button"},$jsx("i",{class:"icon icon-next"})))},f.renderYearPicker=function(){var e=this,a=e.currentYear,t=e.params.yearPickerMin||(new Date).getFullYear()-100;e.params.minDate&&(t=Math.max(t,new Date(e.params.minDate).getFullYear()));var n=e.params.yearPickerMax||(new Date).getFullYear()+100;e.params.maxDate&&(n=Math.min(n,new Date(e.params.maxDate).getFullYear()));for(var r=[],o=t;o<=n;o+=1)r.push(o);return $jsx("div",{class:"calendar-year-picker"},r.map((function(t){return $jsx("div",{"data-year":t,class:"calendar-year-picker-item "+(t===a?"calendar-year-picker-item-current":"")},$jsx("span",null,e.yearFormatter.format((new Date).setFullYear(t))))})))},f.renderTimeSelector=function(){var e,a=this,t=a.value&&a.value[0];return t&&(e=a.timeSelectorFormatter.format(t)),$jsx("div",{class:"calendar-time-selector"},$jsx("a",{class:"link"},e||a.params.timePickerPlaceholder))},f.renderHeader=function(){var e=this;return e.params.renderHeader?e.params.renderHeader.call(e):$jsx("div",{class:"calendar-header"},$jsx("div",{class:"calendar-selected-date"},e.params.headerPlaceholder))},f.renderFooter=function(){var e=this,a=e.app;return e.params.renderFooter?e.params.renderFooter.call(e):$jsx("div",{class:"calendar-footer"},$jsx("a",{class:("md"===a.theme?"button":"link")+" calendar-close sheet-close popover-close"},e.params.toolbarCloseText))},f.renderToolbar=function(){var e=this;return e.params.renderToolbar?e.params.renderToolbar.call(e,e):$jsx("div",{class:"toolbar toolbar-top no-shadow"},$jsx("div",{class:"toolbar-inner"},e.params.monthSelector?e.renderMonthSelector():"",e.params.yearSelector?e.renderYearSelector():""))},f.renderInline=function(){var e=this,a=e.params,t=a.cssClass,n=a.toolbar,r=a.header,o=a.footer,l=a.rangePicker,s=a.weekHeader,i=e.value,c=e.hasTimePicker,d=i&&i.length?i[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:"calendar calendar-inline "+(l?"calendar-range":"")+" "+(t||"")},r&&e.renderHeader(),n&&e.renderToolbar(),s&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(d)),c&&e.renderTimeSelector(),o&&e.renderFooter())},f.renderCustomModal=function(){var e=this,a=e.params,t=a.cssClass,n=a.toolbar,r=a.header,o=a.footer,l=a.rangePicker,s=a.weekHeader,i=e.value,c=e.hasTimePicker,d=i&&i.length?i[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:"calendar calendar-modal "+(l?"calendar-range":"")+" "+(t||"")},r&&e.renderHeader(),n&&e.renderToolbar(),s&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(d)),c&&e.renderTimeSelector(),o&&e.renderFooter())},f.renderSheet=function(){var e=this,a=e.params,t=a.cssClass,n=a.toolbar,r=a.header,o=a.footer,l=a.rangePicker,s=a.weekHeader,i=e.value,c=e.hasTimePicker,d=i&&i.length?i[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:"sheet-modal calendar calendar-sheet "+(l?"calendar-range":"")+" "+(t||"")},r&&e.renderHeader(),n&&e.renderToolbar(),s&&e.renderWeekHeader(),$jsx("div",{class:"sheet-modal-inner calendar-months"},e.renderMonths(d)),c&&e.renderTimeSelector(),o&&e.renderFooter())},f.renderPopover=function(){var e=this,a=e.params,t=a.cssClass,n=a.toolbar,r=a.header,o=a.footer,l=a.rangePicker,s=a.weekHeader,i=e.value,c=e.hasTimePicker,d=i&&i.length?i[0]:(new Date).setHours(0,0,0);return $jsx("div",{class:"popover calendar-popover"},$jsx("div",{class:"popover-inner"},$jsx("div",{class:"calendar "+(l?"calendar-range":"")+" "+(t||"")},r&&e.renderHeader(),n&&e.renderToolbar(),s&&e.renderWeekHeader(),$jsx("div",{class:"calendar-months"},e.renderMonths(d)),c&&e.renderTimeSelector(),o&&e.renderFooter())))},f.render=function(){var e=this,a=e.params;if(a.render)return a.render.call(e);if(!e.inline){var t=a.openIn;return"auto"===t&&(t=e.isPopover()?"popover":"sheet"),"popover"===t?e.renderPopover():"sheet"===t?e.renderSheet():e.renderCustomModal()}return e.renderInline()},f.openTimePicker=function(){var e=this,a=e.$el,t=e.app,n=e.is12HoursFormat;if(a&&a.length){a.append('<div class="calendar-time-picker"></div>');for(var r,o=[],l=[],s=n?12:23,i=n?1:0;i<=s;i+=1)o.push(i);for(var c=0;c<=59;c+=1)l.push(c);r=e.value&&e.value.length?[e.value[0].getHours(),e.value[0].getMinutes()]:[(new Date).getHours(),(new Date).getMinutes()],n&&(r.push(r[0]<12?"AM":"PM"),r[0]>12&&(r[0]-=12),0===r[0]&&(r[0]=12)),e.timePickerInstance=t.picker.create({containerEl:a.find(".calendar-time-picker"),value:r,toolbar:!0,rotateEffect:!1,toolbarCloseText:e.params.toolbarCloseText,cols:[{values:o},{divider:!0,content:":"},{values:l,displayValues:l.map((function(e){return e<10?"0"+e:e}))}].concat(n?[{values:["AM","PM"]}]:[])}),e.timePickerInstance.$el.find(".toolbar a").removeClass("sheet-close popover-close").addClass("calendar-time-picker-close")}},f.closeTimePicker=function(){var e=this,a=e.is12HoursFormat;if(e.timePickerInstance){var t=e.timePickerInstance.value,n=parseInt(t[0],10),r=parseInt(t[1],10),o=e.timePickerInstance.value[2];a&&("AM"===o&&12===n?n=0:"PM"===o&&12!==n&&(n+=12));var l=e.value&&e.value.length&&e.value[0];l?(l=new Date(l)).setHours(n,r):(l=new Date).setHours(n,r,0,0),e.setValue([l]),e.timePickerInstance.close(),e.timePickerInstance.destroy(),delete e.timePickerInstance}e.$el&&e.$el.length&&e.$el.find(".calendar-time-picker").remove()},f.onOpen=function(){var e=this,a=e.initialized,t=e.$el,n=e.app,r=e.$inputEl,o=e.inline,l=e.value,s=e.params;e.closing=!1,e.opened=!0,e.opening=!0,e.attachCalendarEvents();var i=!l&&s.value;a?l&&e.setValue(l,0):l?e.setValue(l,0):s.value&&e.setValue(e.normalizeValues(s.value),0),e.updateCurrentMonthYear(),e.monthsTranslate=0,e.setMonthsTranslate(),i?e.updateValue():s.header&&l&&e.updateValue(!0),!o&&r&&r.length&&"md"===n.theme&&r.trigger("focus"),e.initialized=!0,e.$months.each((function(a){e.emit("local::monthAdd calendarMonthAdd",a)})),t&&t.trigger("calendar:open"),r&&r.trigger("calendar:open"),e.emit("local::open calendarOpen",e)},f.onOpened=function(){var e=this;e.opening=!1,e.$el&&e.$el.trigger("calendar:opened"),e.$inputEl&&e.$inputEl.trigger("calendar:opened"),e.emit("local::opened calendarOpened",e)},f.onClose=function(){var e=this,a=e.app;if(e.opening=!1,e.closing=!0,e.$inputEl)if("md"===a.theme)e.$inputEl.trigger("blur");else{var t=e.$inputEl.attr("validate"),n=e.$inputEl.attr("required");t&&n&&a.input.validate(e.$inputEl)}e.detachCalendarEvents&&e.detachCalendarEvents(),e.$el&&e.$el.trigger("calendar:close"),e.$inputEl&&e.$inputEl.trigger("calendar:close"),e.emit("local::close calendarClose",e)},f.onClosed=function(){var e=this;e.opened=!1,e.closing=!1,e.inline||p((function(){e.modal&&e.modal.el&&e.modal.destroy&&(e.params.routableModals||e.modal.destroy()),delete e.modal})),e.timePickerInstance&&(e.timePickerInstance.destroy&&e.timePickerInstance.destroy(),delete e.timePickerInstance),e.$el&&e.$el.trigger("calendar:closed"),e.$inputEl&&e.$inputEl.trigger("calendar:closed"),e.emit("local::closed calendarClosed",e)},f.open=function(){var e=this,a=e.app,n=e.opened,r=e.inline,o=e.$inputEl,l=e.params;if(!n){if(r)return e.$el=t(e.render()),e.$el[0].f7Calendar=e,e.$wrapperEl=e.$el.find(".calendar-months-wrapper"),e.$months=e.$wrapperEl.find(".calendar-month"),e.$containerEl.append(e.$el),e.onOpen(),void e.onOpened();var s=l.openIn;"auto"===s&&(s=e.isPopover()?"popover":"sheet");var i,c=e.render(),d={targetEl:o,scrollToEl:l.scrollToInput?o:void 0,content:c,backdrop:!0===l.backdrop||"popover"===s&&!1!==a.params.popover.backdrop&&!1!==l.backdrop,closeByBackdropClick:l.closeByBackdropClick,on:{open:function(){var a=this;e.modal=a,e.$el="popover"===s?a.$el.find(".calendar"):a.$el,e.$wrapperEl=e.$el.find(".calendar-months-wrapper"),e.$months=e.$wrapperEl.find(".calendar-month"),e.$el[0].f7Calendar=e,"customModal"===s&&t(e.$el).find(".calendar-close").once("click",(function(){e.close()})),e.onOpen()},opened:function(){e.onOpened()},close:function(){e.onClose()},closed:function(){e.onClosed()}}};if("sheet"===s&&(d.push=l.sheetPush,d.swipeToClose=l.sheetSwipeToClose),l.routableModals&&e.view)e.view.router.navigate({url:e.url,route:(i={path:e.url},i[s]=d,i)});else e.modal=a[s].create(d),e.modal.open()}},f.close=function(){var e=this,a=e.opened,t=e.inline;if(a)return t?(e.onClose(),void e.onClosed()):void(e.params.routableModals&&e.view?e.view.router.back():e.modal.close())},f.init=function(){var e=this;if(e.initInput(),e.inline)return e.open(),void e.emit("local::init calendarInit",e);!e.initialized&&e.params.value&&e.setValue(e.normalizeValues(e.params.value)),e.$inputEl&&e.attachInputEvents(),e.params.closeByOutsideClick&&e.attachHtmlEvents(),e.emit("local::init calendarInit",e)},f.destroy=function(){var e=this;if(!e.destroyed){var a=e.$el;e.emit("local::beforeDestroy calendarBeforeDestroy",e),a&&a.trigger("calendar:beforedestroy"),e.close(),e.$inputEl&&e.detachInputEvents(),e.params.closeByOutsideClick&&e.detachHtmlEvents(),e.timePickerInstance&&(e.timePickerInstance.destroy&&e.timePickerInstance.destroy(),delete e.timePickerInstance),a&&a.length&&delete e.$el[0].f7Calendar,v(e),e.destroyed=!0}},s=l,(i=[{key:"view",get:function(){var e,a=this.$inputEl,t=this.app,n=this.params;return n.view?e=n.view:a&&(e=a.parents(".view").length&&a.parents(".view")[0].f7View),e||(e=t.views.main),e}}])&&d(s.prototype,i),c&&d(s,c),l}(l),g={name:"calendar",static:{Calendar:f},create:function(){var e=this;e.calendar=s({defaultSelector:".calendar",constructor:f,app:e,domProp:"f7Calendar"}),e.calendar.close=function(e){void 0===e&&(e=".calendar");var a=t(e);if(0!==a.length){var n=a[0].f7Calendar;!n||n&&!n.opened||n.close()}}},params:{calendar:{dateFormat:void 0,monthNames:"auto",monthNamesShort:"auto",dayNames:"auto",dayNamesShort:"auto",locale:void 0,firstDay:1,weekendDays:[0,6],multiple:!1,rangePicker:!1,rangePickerMinDays:1,rangePickerMaxDays:0,direction:"horizontal",minDate:null,maxDate:null,disabled:null,events:null,rangesClasses:null,touchMove:!0,animate:!0,closeOnSelect:!1,monthSelector:!0,monthPicker:!0,yearSelector:!0,yearPicker:!0,yearPickerMin:void 0,yearPickerMax:void 0,timePicker:!1,timePickerFormat:{hour:"numeric",minute:"numeric"},timePickerPlaceholder:"Select time",weekHeader:!0,value:null,containerEl:null,openIn:"auto",sheetPush:!1,sheetSwipeToClose:void 0,formatValue:null,inputEl:null,inputReadOnly:!0,closeByOutsideClick:!0,scrollToInput:!0,header:!1,headerPlaceholder:"Select date",toolbar:!0,toolbarCloseText:"Done",footer:!1,cssClass:null,routableModals:!1,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(a){if(e.prototype.modules&&e.prototype.modules[g.name])return;e.use(g),e.instance&&(e.instance.useModuleParams(g,e.instance.params),e.instance.useModule(g))}return g}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))