You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							44 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							44 lines
						
					
					
						
							1.0 KiB
						
					
					
				| import { MS, Y, D, W } from '../../constant';
 | |
| export default (function (o, c, d) {
 | |
|   var proto = c.prototype;
 | |
| 
 | |
|   proto.week = function (week) {
 | |
|     if (week === void 0) {
 | |
|       week = null;
 | |
|     }
 | |
| 
 | |
|     if (week !== null) {
 | |
|       return this.add((week - this.week()) * 7, D);
 | |
|     }
 | |
| 
 | |
|     var yearStart = this.$locale().yearStart || 1;
 | |
| 
 | |
|     if (this.month() === 11 && this.date() > 25) {
 | |
|       // d(this) is for badMutable
 | |
|       var nextYearStartDay = d(this).startOf(Y).add(1, Y).date(yearStart);
 | |
|       var thisEndOfWeek = d(this).endOf(W);
 | |
| 
 | |
|       if (nextYearStartDay.isBefore(thisEndOfWeek)) {
 | |
|         return 1;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     var yearStartDay = d(this).startOf(Y).date(yearStart);
 | |
|     var yearStartWeek = yearStartDay.startOf(W).subtract(1, MS);
 | |
|     var diffInWeek = this.diff(yearStartWeek, W, true);
 | |
| 
 | |
|     if (diffInWeek < 0) {
 | |
|       return d(this).startOf('week').week();
 | |
|     }
 | |
| 
 | |
|     return Math.ceil(diffInWeek);
 | |
|   };
 | |
| 
 | |
|   proto.weeks = function (week) {
 | |
|     if (week === void 0) {
 | |
|       week = null;
 | |
|     }
 | |
| 
 | |
|     return this.week(week);
 | |
|   };
 | |
| }); |