Adam Shaw 9 лет назад
Родитель
Сommit
dde37c06d1
2 измененных файлов с 22 добавлено и 20 удалено
  1. 1 1
      src/common/View.js
  2. 21 19
      src/util.js

+ 1 - 1
src/common/View.js

@@ -230,7 +230,7 @@ var View = FC.View = Class.extend(EmitterMixin, ListenerMixin, {
 			visibleRange = constrainRange(visibleRange, currentRange);
 		}
 
-		date = constrainDateToRange(date, visibleRange);
+		date = constrainDate(date, visibleRange);
 
 		dateIncrementInput = this.opt('dateIncrement'); // TODO: util for getting date options
 		dateIncrement = (dateIncrementInput ? moment.duration(dateIncrementInput) : null) ||

+ 21 - 19
src/util.js

@@ -678,16 +678,33 @@ function cloneRange(range) {
 
 
 function constrainRange(innerRange, outerRange) {
-	var range = cloneRange(innerRange);
+	innerRange = cloneRange(innerRange);
 
 	if (outerRange.start) {
-		range.start = maxMoment(range.start, outerRange.start);
+		// needs to be inclusively in outerRange
+		innerRange.start = constrainDate(innerRange.start, outerRange);
 	}
+
 	if (outerRange.end) {
-		range.end = minMoment(range.end, outerRange.end);
+		innerRange.end = minMoment(innerRange.end, outerRange.end);
 	}
 
-	return range;
+	return innerRange;
+}
+
+
+function constrainDate(date, range) {
+	date = date.clone();
+
+	if (range.start) {
+		date = maxMoment(date, range.start);
+	}
+
+	if (range.end && date >= range.end) {
+		date = range.end.clone().subtract(1);
+	}
+
+	return date;
 }
 
 
@@ -709,21 +726,6 @@ function isRangesEqual(range0, range1) {
 }
 
 
-function constrainDateToRange(date, range) {
-	date = date.clone();
-
-	if (range.start) {
-		date = maxMoment(date, range.start);
-	}
-
-	if (range.end && date >= range.end) {
-		date = range.end.clone().subtract(1);
-	}
-
-	return date;
-}
-
-
 function minMoment(mom1, mom2) {
 	if (mom1.isBefore(mom2)) {
 		return mom1;