//================================================================================ // [pg-calendar] // version: 1.4.9 // update: 2017.03.03 //================================================================================ !function(a,b){if("undefined"!=typeof define&&define.amd)define(["jquery","moment"],function(a,c){b(window,document,a,c)});else if("object"==typeof module){var c=require("jsdom").jsdom,d=c("",{}),e=d.defaultView,f=require("jquery")(e),g=require("moment");module.exports=b(e,d,f,g)}else a.pignoseCalendar=b(window,document,jQuery,moment)}(this,function(a,b,c,d){var e,f,g;return function(a){function b(a,b){return v.call(a,b)}function c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if(e=p[o.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function d(b,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(a,d.concat([b,c]))}}function h(a){return function(b){return c(b,a)}}function i(a){return function(b){r[a]=b}}function j(c){if(b(s,c)){var d=s[c];delete s[c],u[c]=!0,n.apply(a,d)}if(!b(r,c)&&!b(u,c))throw new Error("No "+c);return r[c]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var d,e=k(a),f=e[0],g=b[1];return a=e[1],f&&(f=c(f,g),d=j(f)),f?a=d&&d.normalize?d.normalize(a,h(g)):c(a,g):(a=c(a,g),e=k(a),f=e[0],a=e[1],f&&(d=j(f))),{f:f?f+"!"+a:a,n:a,pr:f,p:d}},q={require:function(a){return d(a)},exports:function(a){var b=r[a];return"undefined"!=typeof b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(c,e,f,g){var h,k,m,n,o,t,v,w=[],x=typeof f;if(g=g||c,t=l(g),"undefined"===x||"function"===x){for(e=!e.length&&f.length?["require","exports","module"]:e,o=0;o>>0;if("function"!=typeof a)return[];for(var d=[],e=arguments[1],f=0;f\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t',d.GetClass(e.ComponentName),j,k,l,b.settings.theme),calendarButtonsHtml:d.Format('
\t\t\t\t\t\t\t\t\t\t\t\t\t\tCancel\t\t\t\t\t\t\t\t\t\t\t\t\t\tOK\t\t\t\t\t\t\t\t\t\t\t\t\t
',m),calendarScheduleContainerHtml:d.Format('
',m),calendarSchedulePinHtml:d.Format('',m)};var f=d.GetSubClass("UnitRange"),o=d.GetSubClass("UnitRangeFirst"),p=d.GetSubClass("UnitRangeLast"),q=d.GetSubClass("UnitActive"),r=[d.GetSubClass("UnitFirstActive"),d.GetSubClass("UnitSecondActive")],s=d.GetSubClass("UnitToggleActive"),t=d.GetSubClass("UnitToggleInactive");return this.each(function(){var a=g(this),u=a,v=a,w={initialize:null,calendar:g(b.global.calendarHtml),input:a.is("input"),renderer:null,current:[null,null],storage:{activeDates:[],schedules:[]},dateManager:new c(b.settings.date),calendarWrapperHtml:d.Format('
',d.GetSubClass("Wrapper")),calendarWrapperOverlayHtml:d.Format('
',d.GetSubClass("WrapperOverlay")),context:b};b.settings.initialize===!0&&(w.initialize=w.current[0]=w.dateManager.date.clone()),this.local=w,b.settings.reverse===!0?w.calendar.addClass(d.GetSubClass("Reverse")):w.calendar.addClass(d.GetSubClass("Default"));for(var x=b.settings.week;x{1}',d.GetSubClass("Week"),y,n.weeks.en[x%n.weeks.en.length].toLowerCase()));z.appendTo(w.calendar.find("."+k))}}if(b.settings.buttons===!0){var A=g(b.global.calendarButtonsHtml);A.appendTo(w.calendar)}if(w.input===!0||b.settings.modal===!0){var B,C=d.GetSubClass("WrapperActive"),D=d.GetSubClass("WrapperOverlayActive");v=g(w.calendarWrapperHtml),v.bind("click",function(a){a.stopPropagation()}),a.bind("click",function(b){b.preventDefault(),b.stopPropagation(),b.stopImmediatePropagation(),B=g("."+d.GetSubClass("WrapperOverlay")),B.length<1&&(B=g(w.calendarWrapperOverlayHtml),B.bind("click."+d.GetClass(e.ComponentName),function(){v.trigger("cancel."+d.GetClass(e.ComponentName))}),B.appendTo("body")),v.parent().is("body")===!1&&v.appendTo("body"),v.show(),B.show(),i.unbind("resize."+d.GetClass(e.ComponentName)).bind("resize."+d.GetClass(e.ComponentName),function(){v.css({marginLeft:-v.outerWidth()/2,marginTop:-v.outerHeight()/2})}).triggerHandler("resize."+d.GetClass(e.ComponentName)),u[e.ComponentName]("set",a.val()),setTimeout(function(){B.addClass(D),v.addClass(C)},25)}).bind("focus",function(a){var b=g(this);b.blur()}),v.unbind("cancel."+d.GetClass(e.ComponentName)+" apply."+d.GetClass(e.ComponentName)).bind("cancel."+d.GetClass(e.ComponentName)+" apply."+d.GetClass(e.ComponentName),function(){B.removeClass(D).hide(),v.removeClass(C).hide()})}var E=function(){if(null===w.current[0]||null===w.current[1])return!1;var a=w.current[0].format("YYYY-MM-DD"),b=w.current[1].format("YYYY-MM-DD"),c=h(Math.max(w.current[0].valueOf(),w.dateManager.date.clone().startOf("month").valueOf())),e=h(Math.min(w.current[1].valueOf(),w.dateManager.date.clone().endOf("month").valueOf())),g=c.format("YYYY-MM-DD")!==a,i=e.format("YYYY-MM-DD")!==b;g===!1&&c.add(1,"days"),i===!1&&e.add(-1,"days");for(var j=c.format("YYYY-MM-DD"),k=e.format("YYYY-MM-DD");c.format("YYYY-MM-DD")<=e.format("YYYY-MM-DD");c.add(1,"days")){var l=c.format("YYYY-MM-DD"),m=w.calendar.find(d.Format('.{0}[data-date="{1}"]',d.GetSubClass("Unit"),l)).addClass(f);l===j&&m.addClass(o),l===k&&m.addClass(p)}},F=function(a,b,c){return"undefined"!=typeof c&&null!==c&&(a.diff(c)<0&&b.diff(c)>0)},G=function(a,c){var d,e,f;for(d in b.settings.disabledDates)if(e=h(b.settings.disabledDates[d]),F(a,c,e))return!1;if(F(a,c,b.settings.maxDate))return!1;if(F(a,c,b.settings.minDate))return!1;for(d in b.settings.disabledRanges){e=b.settings.disabledRanges[d];var g=h(e[0]),i=h(e[1]);if(F(a,c,g)||F(a,c,i))return!1}for(d=0,f=0;dm&&(j=l,l=m,m=j),k>=l&&k<=m)return!1}return!0};w.renderer=function(){w.calendar.appendTo(v.empty()),w.calendar.find("."+j+"-year").text(w.dateManager.year),w.calendar.find("."+j+"-month").text(b.settings.monthsLong[w.dateManager.month-1]),w.calendar.find(d.Format(".{0}-prev .{0}-value",j)).text(b.settings.months[w.dateManager.prevMonth-1].toUpperCase()),w.calendar.find(d.Format(".{0}-next .{0}-value",j)).text(b.settings.months[w.dateManager.nextMonth-1].toUpperCase()),b.settings.buttons===!0&&A.find("."+m).bind("click",function(a){a.preventDefault(),a.stopPropagation();var c=g(this);if(c.hasClass(m+"-apply")){u.trigger("apply."+e.ComponentName,w);var f="";if(b.settings.toggle===!0)f=w.storage.activeDates.join(", ");else if(b.settings.multiple===!0){var i=[];null!==w.current[0]&&i.push(w.current[0].format(b.settings.format)),null!==w.current[1]&&i.push(w.current[1].format(b.settings.format)),f=i.join(" ~ ")}else f=null===w.current[0]?"":h(w.current[0]).format(b.settings.format);w.input===!0&&u.val(f).triggerHandler("change"),"function"==typeof b.settings.apply&&b.settings.apply.call(u,f),v.triggerHandler("apply."+d.GetClass(e.ComponentName))}else v.triggerHandler("cancel."+d.GetClass(e.ComponentName))});var a=w.calendar.find("."+l).empty(),i=c.Convert(w.dateManager.year,w.dateManager.month,w.dateManager.firstDay),k=c.Convert(w.dateManager.year,w.dateManager.month,w.dateManager.lastDay),x=i.weekday()-b.settings.week,y=k.weekday()-b.settings.week;x<0&&(x+=b.settings.weeks.length);for(var z=[],B=[null===w.current[0]?null:w.current[0].format("YYYY-MM-DD"),null===w.current[1]?null:w.current[1].format("YYYY-MM-DD")],C=null===b.settings.minDate?null:h(b.settings.minDate),D=null===b.settings.maxDate?null:h(b.settings.maxDate),F=0;F',d.GetSubClass("Unit"),n.weeks.en[F].toLowerCase()));z.push(H)}for(var F=w.dateManager.firstDay;F<=w.dateManager.lastDay;F++){var I=c.Convert(w.dateManager.year,w.dateManager.month,F),J=I.format("YYYY-MM-DD"),H=g(d.Format('',d.GetSubClass("Unit"),I.format("YYYY-MM-DD"),F,n.weeks.en[I.weekday()].toLowerCase()));if(b.settings.enabledDates.length>0)g.inArray(J,b.settings.enabledDates)===-1&&H.addClass(d.GetSubClass("UnitDisabled"));else if(b.settings.disabledWeekdays.length>0&&g.inArray(I.weekday(),b.settings.disabledWeekdays)!==-1)H.addClass(d.GetSubClass("UnitDisabled")).addClass(d.GetSubClass("UnitDisabledWeekdays"));else if(null!==C&&C.diff(I)>0||null!==D&&D.diff(I)<0)H.addClass(d.GetSubClass("UnitDisabled")).addClass(d.GetSubClass("UnitDisabledRange"));else if(g.inArray(J,b.settings.disabledDates)!==-1)H.addClass(d.GetSubClass("UnitDisabled"));else if(b.settings.disabledRanges.length>0)for(var K=b.settings.disabledRanges.length,L=0;L=0&&I.diff(h(M[1]))<=0){H.addClass(d.GetSubClass("UnitDisabled")).addClass(d.GetSubClass("UnitDisabledRange")).addClass(d.GetSubClass("UnitDisabledMultipleRange"));break}}if(b.settings.schedules.length>0&&"object"==typeof b.settings.scheduleOptions&&"object"==typeof b.settings.scheduleOptions.colors){var N=b.settings.schedules.filter(function(a){return a.date===J}),O=g.unique(N.map(function(a,b){return a.name}).sort());if(O.length>0){var P=g(b.global.calendarScheduleContainerHtml);P.appendTo(H),O.map(function(a,c){if("undefined"!=typeof b.settings.scheduleOptions.colors[a]){var e=b.settings.scheduleOptions.colors[a],f=g(d.Format(b.global.calendarSchedulePinHtml,a,e));f.appendTo(P)}})}}b.settings.toggle===!0?g.inArray(J,w.storage.activeDates)!==-1&&w.storage.activeDates.length>0?H.addClass(s):H.addClass(t):H.hasClass(d.GetSubClass("UnitDisabled"))===!1&&(b.settings.multiple===!0?(null!==B[0]&&J===B[0]&&H.addClass(q).addClass(r[0]),null!==B[1]&&J===B[1]&&H.addClass(q).addClass(r[1])):null!==B[0]&&J===B[0]&&g.inArray(B[0],b.settings.disabledDates)===-1&&(b.settings.enabledDates.length<1||g.inArray(B[0],b.settings.enabledDates)!==-1)&&H.addClass(q).addClass(r[0])),z.push(H),H.bind("click",function(a){a.preventDefault(),a.stopPropagation();var c=g(this),i=0,j=c.data("date");if(c.hasClass(d.GetSubClass("UnitDisabled")))return!1;if(w.input===!0&&b.settings.multiple===!1&&b.settings.buttons===!1)return u.val(h(j).format(b.settings.format)),v.triggerHandler("apply."+d.GetClass(e.ComponentName)),!1;if(null!==w.initialize&&w.initialize.format("YYYY-MM-DD")===j&&b.settings.toggle===!1);else{if(b.settings.toggle===!0){var k=w.storage.activeDates.filter(function(a,b){return a===j});if(w.current[i]=h(j),k.length<1)w.storage.activeDates.push(j),c.addClass(s).removeClass(t);else{for(var l=0,m=0;m0){var y=w.current[0];w.current[0]=w.current[1],w.current[1]=y,y=null,w.calendar.find("."+q).each(function(){var a=g(this);for(var b in r){var c=r[b];a.toggleClass(c)}})}if(G(w.current[0],w.current[1])===!1&&b.settings.selectOver===!1&&(w.current[0]=null,w.current[1]=null,w.calendar.find("."+q).removeClass(q).removeClass(r[0]).removeClass(r[1])),w.input===!0&&b.settings.buttons===!1){var z=[];null!==w.current[0]&&z.push(w.current[0].format(b.settings.format)),null!==w.current[1]&&z.push(w.current[1].format(b.settings.format)),u.val(z.join(", ")),v.trigger("apply."+d.GetClass(e.ComponentName))}}}b.settings.multiple===!0&&(w.calendar.find("."+f).removeClass(f).removeClass(o).removeClass(p),E.call()),b.settings.schedules.length>0&&(w.storage.schedules=b.settings.schedules.filter(function(a){return a.date===j}))}w.initialize=null,"function"==typeof b.settings.select&&b.settings.select.call(c,w.current,w)})}for(var F=y+1;z.length<5*b.settings.weeks.length;F++){var H=g(d.Format('
',d.GetSubClass("Unit"),n.weeks.en[F%n.weeks.en.length].toLowerCase()));z.push(H)}for(var Q=null,R=z.length,F=0;F=R)&&(null!==Q&&Q.appendTo(a),F+1',d.GetSubClass("Row"))))),Q.append(S)}w.calendar.find("."+j+"-nav").bind("click",function(a){a.preventDefault(),a.stopPropagation();var b=g(this);b.hasClass(j+"-prev")?(w.dateManager=new c(w.dateManager.date.clone().add(-1,"months")),w.renderer.call()):b.hasClass(j+"-next")&&(w.dateManager=new c(w.dateManager.date.clone().add(1,"months")),w.renderer.call())}),b.settings.multiple===!0&&(w.calendar.find("."+f).removeClass(f).removeClass(o).removeClass(p),E.call())},w.renderer.call(),a[0][e.ComponentName]=w})},set:function(a){if("undefined"!=typeof a&&null!==a&&""!==a){var b=a.split("~").map(function(a){var b=g.trim(a);return"null"===b||""===b?null:b});this.each(function(){var a=g(this),d=a[0][e.ComponentName],f=d.context,i=["undefined"==typeof b[0]||null===b[0]?null:h(b[0],f.settings.format),"undefined"==typeof b[1]||null===b[1]?null:h(b[1],f.settings.format)];if(d.dateManager=new c(i[0]),f.settings.pickWeeks===!0&&null!==i[0]){var j=i[0];i[0]=j.clone().startOf("week"),i[1]=j.clone().endOf("week")}f.settings.toggle===!0?d.storage.activeDates=b:d.current=i,d.renderer.call()})}},select:function(a){this.each(function(){var b=this.local,c=b.dateManager,e=d.Format("{0}-{1}-{2}",c.year,c.month,a);g(this).find(d.Format('.{0}[data-date="{1}"]',d.GetSubClass("Unit"),e)).triggerHandler("click")})}};return o}),g("main",["core","component/models"],function(a,b){"use strict";var c=function(b,c){return"undefined"!=typeof a[c]?a[c].apply(b,Array.prototype.slice.call(arguments,2)):"object"!=typeof c&&c?void console.error("Argument error are occured."):a.init.apply(b,Array.prototype.slice.call(arguments,1))};for(var d in b)c[d]=b[d];return c}),g("plugin",["main","component/models","jquery"],function(a,b,c){"use strict";c.fn[b.ComponentName]=function(b){return a.apply(a,[this,b].concat(Array.prototype.splice.call(arguments,1)))};for(var d in b)c.fn[b.ComponentName][d]=b[d];return a}),f("plugin")});