1
- // hack to improve code analysis metrics
2
- var angular = angular || { } ;
3
-
4
1
angular . module ( "materialCalendar" , [ "ngMaterial" , "ngSanitize" ] ) ;
5
2
6
3
angular . module ( "materialCalendar" ) . constant ( "config" , {
7
- version : "0.2.9 " ,
4
+ version : "0.2.10 " ,
8
5
debug : document . domain . indexOf ( "localhost" ) > - 1
9
6
} ) ;
10
7
@@ -21,14 +18,6 @@ angular.module("materialCalendar").service("Calendar", [function () {
21
18
22
19
var now = new Date ( ) ;
23
20
24
- this . getNumDays = function ( ) {
25
- return new Date (
26
- this . start . getYear ( ) ,
27
- this . start . getMonth ( ) ,
28
- 0
29
- ) . getDate ( ) ;
30
- } ;
31
-
32
21
this . setWeekStartsOn = function ( i ) {
33
22
var d = parseInt ( i || 0 , 10 ) ;
34
23
if ( ! isNaN ( d ) && d >= 0 && d <= 6 ) {
@@ -45,38 +34,20 @@ angular.module("materialCalendar").service("Calendar", [function () {
45
34
this . weeks = [ ] ;
46
35
this . weekStartsOn = this . setWeekStartsOn ( this . options . weekStartsOn ) ;
47
36
48
- this . getFirstDayOfCalendar = function ( ) {
49
-
50
- // Get first date of month.
51
- var date = this . start ;
52
-
53
- // Undo the timezone offset here.
54
- var first = angular . copy ( date ) ;
55
-
56
- while ( first . getDay ( ) !== this . weekStartsOn ) {
57
- var d = first . getDate ( ) ;
58
- first . setDate ( d - 1 ) ;
59
- }
60
-
61
- return first ;
62
-
63
- } ;
64
-
65
37
this . next = function ( ) {
66
38
if ( this . start . getMonth ( ) < 11 ) {
67
39
this . init ( this . start . getFullYear ( ) , this . start . getMonth ( ) + 1 ) ;
68
- } else {
69
- this . init ( this . start . getFullYear ( ) + 1 , 0 ) ;
40
+ return ;
70
41
}
42
+ this . init ( this . start . getFullYear ( ) + 1 , 0 ) ;
71
43
} ;
72
44
73
45
this . prev = function ( ) {
74
46
if ( this . month ) {
75
47
this . init ( this . start . getFullYear ( ) , this . start . getMonth ( ) - 1 ) ;
76
48
return ;
77
- } else {
78
- this . init ( this . start . getFullYear ( ) - 1 , 11 ) ;
79
49
}
50
+ this . init ( this . start . getFullYear ( ) - 1 , 11 ) ;
80
51
} ;
81
52
82
53
// Month should be the javascript indexed month, 0 is January, etc.
@@ -149,23 +120,22 @@ angular.module("materialCalendar").service("CalendarData", [function () {
149
120
this . data [ this . getDayKey ( date ) ] = content || this . data [ this . getDayKey ( date ) ] || "" ;
150
121
} ;
151
122
}
152
- return new CalendarData ;
123
+ return new CalendarData ( ) ;
153
124
} ] ) ;
154
125
155
- angular . module ( "materialCalendar" ) . directive ( "calendarMd" , [ "$compile" , "$timeout" , "$ parse", "$http" , "$q" , "$log" , " Calendar", "CalendarData" , function ( $compile , $timeout , $ parse, $http , $q , $log , Calendar , CalendarData ) {
126
+ angular . module ( "materialCalendar" ) . directive ( "calendarMd" , [ "$compile" , "$parse" , "$http" , "$q" , "Calendar" , "CalendarData" , function ( $compile , $parse , $http , $q , Calendar , CalendarData ) {
156
127
157
- var hasCss ;
158
128
var defaultTemplate = "<md-content layout='column' layout-fill flex md-swipe-left='next()' md-swipe-right='prev()'><md-toolbar><div class='md-toolbar-tools' layout='row'><md-button ng-click='prev()' aria-label='Previous month'><md-tooltip ng-if='::tooltips()'>Previous month</md-tooltip>«</md-button><div flex></div><h2 class='calendar-md-title'><span>{{ calendar.start | date:titleFormat:timezone }}</span></h2><div flex></div><md-button ng-click='next()' aria-label='Next month'><md-tooltip ng-if='::tooltips()'>Next month</md-tooltip>»</md-button></div></md-toolbar><!-- agenda view --><md-content ng-if='weekLayout === columnWeekLayout' class='agenda'><div ng-repeat='week in calendar.weeks track by $index'><div ng-if='sameMonth(day)' ng-class='{ active: active === day }' ng-click='handleDayClick(day)' ng-repeat='day in week' layout><md-tooltip ng-if='::tooltips()'>{{ day | date:dayTooltipFormat:timezone }}</md-tooltip><div>{{ day | date:dayFormat:timezone }}</div><div flex ng-bind-html='dataService.data[dayKey(day)]'></div></div></div></md-content><!-- calendar view --><md-content ng-if='weekLayout !== columnWeekLayout' flex layout='column' class='calendar'><div layout='row' layout-fill class='subheader'><div layout-padding class='subheader-day' flex ng-repeat='day in calendar.weeks[0]'><md-tooltip ng-if='::tooltips()'>{{ day | date:dayLabelTooltipFormat }}</md-tooltip>{{ day | date:dayLabelFormat }}</div></div><div ng-if='week.length' ng-repeat='week in calendar.weeks track by $index' flex layout='row' layout-fill><div tabindex='{{ sameMonth(day) ? (day | date:dayFormat:timezone) : 0 }}' ng-repeat='day in week track by $index' ng-click='handleDayClick(day)' flex layout layout-padding ng-class='{"disabled" : ! sameMonth(day), "active": isActive(day), "md-whiteframe-12dp": hover || focus }' ng-focus='focus = true;' ng-blur='focus = false;' ng-mouseleave='hover = false' ng-mouseenter='hover = true'><md-tooltip ng-if='::tooltips()'>{{ day | date:dayTooltipFormat }}</md-tooltip><div>{{ day | date:dayFormat }}</div><div flex ng-bind-html='dataService.data[dayKey(day)]'></div></div></div></md-content></md-content>" ;
159
129
160
130
var injectCss = function ( ) {
161
- if ( ! hasCss ) {
131
+ var styleId = "calendarMdCss" ;
132
+ if ( ! document . getElementById ( styleId ) ) {
162
133
var head = document . getElementsByTagName ( "head" ) [ 0 ] ;
163
134
var css = document . createElement ( "style" ) ;
164
135
css . type = "text/css" ;
165
- css . id = "calendarMdCss" ;
166
- css . innerHTML = "calendar-md md-content>md-content.agenda>*>* :not(:first-child),calendar-md md-content>md-content.calendar>:not(:first-child)>* :last-child{overflow:hidden;text-overflow:ellipsis}calendar-md{display:block;max-height:100%}calendar-md md-content>md-content{border:1px solid rgba(0,0,0,.12)}calendar-md md-content>md-content.agenda>*>*{border-bottom:1px solid rgba(0,0,0,.12)}calendar-md md-content>md-content.agenda>*>* :first-child{padding:9pt;width:200px;text-align:right;color:rgba(0,0,0,.75);font-weight:100;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}calendar-md md-content>md-content.calendar>:first-child{background:rgba(0,0,0,.02);border-bottom:1px solid rgba(0,0,0,.12);margin-right:0;min-height:36px}calendar-md md-content>md-content.calendar>:not(:first-child)>*{border-bottom:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12);cursor:pointer}calendar-md md-content>md-content.calendar>:not(:first-child)>:hover{background:rgba(0,0,0,.04)}calendar-md md-content>md-content.calendar>:not(:first-child)>.disabled{color:rgba(0,0,0,.3);pointer-events:none;cursor:auto}calendar-md md-content>md-content.calendar>:not(:first-child)>.active{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background:rgba(0,0,0,.02)}calendar-md md-content>md-content.calendar>:not(:first-child)>* :first-child{padding:0}" ;
136
+ css . id = styleId ;
137
+ css . innerHTML = "calendar-md md-content>md-content.agenda>*>* :not(:first-child),calendar-md md-content>md-content.calendar>:not(:first-child)>* :last-child{overflow:hidden;text-overflow:ellipsis}calendar-md{display:block;max-height:100%}calendar-md md-content>md-content{border:1px solid rgba(0,0,0,.12)}calendar-md md-content>md-content.agenda>*>*{border-bottom:1px solid rgba(0,0,0,.12)}calendar-md md-content>md-content.agenda>*>* :first-child{padding:12px;width:200px;text-align:right;color:rgba(0,0,0,.75);font-weight:100;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}calendar-md md-content>md-content.calendar>:first-child{background:rgba(0,0,0,.02);border-bottom:1px solid rgba(0,0,0,.12);margin-right:0;min-height:36px}calendar-md md-content>md-content.calendar>:not(:first-child)>*{border-bottom:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12);cursor:pointer}calendar-md md-content>md-content.calendar>:not(:first-child)>:hover{background:rgba(0,0,0,.04)}calendar-md md-content>md-content.calendar>:not(:first-child)>.disabled{color:rgba(0,0,0,.3);pointer-events:none;cursor:auto}calendar-md md-content>md-content.calendar>:not(:first-child)>.active{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background:rgba(0,0,0,.02)}calendar-md md-content>md-content.calendar>:not(:first-child)>* :first-child{padding:0}" ;
167
138
head . insertBefore ( css , head . firstChild ) ;
168
- hasCss = true ;
169
139
}
170
140
} ;
171
141
@@ -313,8 +283,6 @@ angular.module("materialCalendar").directive("calendarMd", ["$compile", "$timeou
313
283
$parse ( $attrs . ngModel ) . assign ( $scope . $parent , angular . copy ( $scope . active ) ) ;
314
284
}
315
285
316
- $log . log ( "isActive" , $scope . active , date , $scope . isActive ( date ) ) ;
317
-
318
286
handleCb ( $scope . onDayClick , angular . copy ( date ) ) ;
319
287
320
288
} ;
0 commit comments