From 68eb9a453f2aeac8211549882e7136dc1c90ab04 Mon Sep 17 00:00:00 2001 From: Panagiotis Vourtsis Date: Wed, 12 Jul 2017 16:02:44 +0300 Subject: [PATCH 1/3] optional parameter moment for not define it in global scope --- multipleDatePicker.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/multipleDatePicker.js b/multipleDatePicker.js index 831b21e..afdb649 100644 --- a/multipleDatePicker.js +++ b/multipleDatePicker.js @@ -130,7 +130,13 @@ * Number of years from scope.month to show in future in select * note : will change year into a select */ - changeYearFuture: '=?' + changeYearFuture: '=?', + + /* + * Type: function + * The moment object with functions. Optional if you dont want it on the global scope + */ + moment: '=?', }, template: '
' + '
' + @@ -150,7 +156,7 @@ '
' + '
', link: function (scope) { - + var moment = moment || scope.moment; scope.ngModel = scope.ngModel || []; /*utility functions*/ From 696c4c76ace9148734369ffd9da40da860cef564 Mon Sep 17 00:00:00 2001 From: Panagiotis Vourtsis Date: Wed, 12 Jul 2017 16:12:25 +0300 Subject: [PATCH 2/3] gulp it up --- dist/multipleDatePicker.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/multipleDatePicker.min.js b/dist/multipleDatePicker.min.js index 39a31c5..cbfd78a 100644 --- a/dist/multipleDatePicker.min.js +++ b/dist/multipleDatePicker.min.js @@ -1 +1 @@ -!function(e){"use strict";var t=function(){return{restrict:"AE",scope:{ngModel:"=?",highlightDays:"=?",dayClick:"=?",dayHover:"=?",rightClick:"=?",month:"=?",monthChanged:"=?",monthClick:"=?",weekDaysOff:"=?",allDaysOff:"=?",daysAllowed:"=?",sundayFirstDay:"=?",disableNavigation:"=?",disallowBackPastMonths:"=?",disallowGoFuturMonths:"=?",showDaysOfSurroundingMonths:"=?",cssDaysOfSurroundingMonths:"=?",fireEventsForDaysOfSurroundingMonths:"=?",disableDaysBefore:"=?",disableDaysAfter:"=?",changeYearPast:"=?",changeYearFuture:"=?"},template:'
<
{{monthToDisplay}} {{yearToDisplay}}
>
{{day}}
{{day ? day.mdp.otherMonth && !showDaysOfSurroundingMonths ? \' \' : day.date.format(\'D\') : \'\'}}
',link:function(t){t.ngModel=t.ngModel||[];var a=function(){var e=moment(),a=moment(t.month).subtract(1,"month"),n=moment(t.month).add(1,"month");t.disableBackButton=t.disableNavigation||t.disallowBackPastMonths&&e.isAfter(a,"month"),t.disableNextButton=t.disableNavigation||t.disallowGoFuturMonths&&e.isBefore(n,"month")},n=function(){for(var e=moment().localeData()._weekdaysMin,a=[],n=1;n<7;n++)a.push(e[n]);return t.sundayFirstDay?a.splice(0,0,e[0]):a.push(e[0]),a},o=function(){var e=t.month.format("MMMM");return e.charAt(0).toUpperCase()+e.slice(1)},s=function(){var e=moment(),a=Math.max(0,parseInt(t.changeYearPast,10)||0),n=Math.max(0,parseInt(t.changeYearFuture,10)||0),o=moment(t.month).subtract(a,"year"),s=moment(t.month).add(n,"year"),r=[];s.add(1,"year");for(var i=moment(o);s.isAfter(i,"YEAR");i.add(1,"year"))t.disallowBackPastMonths&&!i.isAfter(e,"year")&&!i.isSame(e,"year")||t.disallowGoFuturMonths&&!i.isBefore(e,"year")&&!i.isSame(e,"year")||r.push(i.format("YYYY"));return r},r=[];r.push(t.$watch("ngModel",function(){t.generate()},!0)),r.push(t.$watch("month",function(){t.generate()},!0)),r.push(t.$watch("highlightDays",function(){t.generate()},!0)),r.push(t.$watch("weekDaysOff",function(){t.generate()},!0)),r.push(t.$watch("allDaysOff",function(){t.generate()},!0)),r.push(t.$watch("daysAllowed",function(){t.generate()},!0)),r.push(t.$watch("disableDaysBefore",function(){t.generate()},!0)),r.push(t.$watch("disableDaysAfter",function(){t.generate()},!0)),r.push(t.$watch(function(){return moment.locale()},function(e){t.month.locale(e),t.daysOfWeek=n(),t.monthToDisplay=o()},!0)),t.$on("destroy",function(){for(var e=0;e6&&(n=n.add(1,"week"));var r=moment(t.month).date(1),i=[],d=moment(),c=moment(r).endOf("month"),l=function(){var a={date:moment(n.add(1,"day")),mdp:{selected:!1}};if(e.isArray(t.highlightDays)){var o=t.highlightDays.filter(function(e){return a.date.isSame(e.date,"day")});a.css=o.length>0?o[0].css:"",a.title=o.length>0?o[0].title:""}return a.selectable=!t.isDayOff(a),a.mdp.selected=t.isSelected(a),a.mdp.today=a.date.isSame(d,"day"),a.mdp.past=a.date.isBefore(d,"day"),a.mdp.future=a.date.isAfter(d,"day"),a.date.isSame(t.month,"month")||(a.mdp.otherMonth=!0),a},f=c.diff(n,"days"),y=t.sundayFirstDay?6:0;c.day()!==y&&(f+=(t.sundayFirstDay?6:7)-c.day());for(var h=0;h
<
{{monthToDisplay}} {{yearToDisplay}}
>
{{day}}
{{day ? day.mdp.otherMonth && !showDaysOfSurroundingMonths ? \' \' : day.date.format(\'D\') : \'\'}}
',link:function(t){var a=a||t.moment;t.ngModel=t.ngModel||[];var n=function(){var e=a(),n=a(t.month).subtract(1,"month"),s=a(t.month).add(1,"month");t.disableBackButton=t.disableNavigation||t.disallowBackPastMonths&&e.isAfter(n,"month"),t.disableNextButton=t.disableNavigation||t.disallowGoFuturMonths&&e.isBefore(s,"month")},s=function(){for(var e=a().localeData()._weekdaysMin,n=[],s=1;s<7;s++)n.push(e[s]);return t.sundayFirstDay?n.splice(0,0,e[0]):n.push(e[0]),n},r=function(){var e=t.month.format("MMMM");return e.charAt(0).toUpperCase()+e.slice(1)},o=function(){var e=a(),n=Math.max(0,parseInt(t.changeYearPast,10)||0),s=Math.max(0,parseInt(t.changeYearFuture,10)||0),r=a(t.month).subtract(n,"year"),o=a(t.month).add(s,"year"),i=[];o.add(1,"year");for(var d=a(r);o.isAfter(d,"YEAR");d.add(1,"year"))t.disallowBackPastMonths&&!d.isAfter(e,"year")&&!d.isSame(e,"year")||t.disallowGoFuturMonths&&!d.isBefore(e,"year")&&!d.isSame(e,"year")||i.push(d.format("YYYY"));return i},i=[];i.push(t.$watch("ngModel",function(){t.generate()},!0)),i.push(t.$watch("month",function(){t.generate()},!0)),i.push(t.$watch("highlightDays",function(){t.generate()},!0)),i.push(t.$watch("weekDaysOff",function(){t.generate()},!0)),i.push(t.$watch("allDaysOff",function(){t.generate()},!0)),i.push(t.$watch("daysAllowed",function(){t.generate()},!0)),i.push(t.$watch("disableDaysBefore",function(){t.generate()},!0)),i.push(t.$watch("disableDaysAfter",function(){t.generate()},!0)),i.push(t.$watch(function(){return a.locale()},function(e){t.month.locale(e),t.daysOfWeek=s(),t.monthToDisplay=r()},!0)),t.$on("destroy",function(){for(var e=0;e6&&(s=s.add(1,"week"));var i=a(t.month).date(1),d=[],c=a(),l=a(i).endOf("month"),f=function(){var n={date:a(s.add(1,"day")),mdp:{selected:!1}};if(e.isArray(t.highlightDays)){var r=t.highlightDays.filter(function(e){return n.date.isSame(e.date,"day")});n.css=r.length>0?r[0].css:"",n.title=r.length>0?r[0].title:""}return n.selectable=!t.isDayOff(n),n.mdp.selected=t.isSelected(n),n.mdp.today=n.date.isSame(c,"day"),n.mdp.past=n.date.isBefore(c,"day"),n.mdp.future=n.date.isAfter(c,"day"),n.date.isSame(t.month,"month")||(n.mdp.otherMonth=!0),n},y=l.diff(s,"days"),h=t.sundayFirstDay?6:0;l.day()!==h&&(y+=(t.sundayFirstDay?6:7)-l.day());for(var u=0;u Date: Wed, 12 Jul 2017 16:17:54 +0300 Subject: [PATCH 3/3] copy it to dist --- dist/multipleDatePicker.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dist/multipleDatePicker.js b/dist/multipleDatePicker.js index 831b21e..afdb649 100644 --- a/dist/multipleDatePicker.js +++ b/dist/multipleDatePicker.js @@ -130,7 +130,13 @@ * Number of years from scope.month to show in future in select * note : will change year into a select */ - changeYearFuture: '=?' + changeYearFuture: '=?', + + /* + * Type: function + * The moment object with functions. Optional if you dont want it on the global scope + */ + moment: '=?', }, template: '
' + '
' + @@ -150,7 +156,7 @@ '
' + '
', link: function (scope) { - + var moment = moment || scope.moment; scope.ngModel = scope.ngModel || []; /*utility functions*/