|
@@ -196,6 +196,53 @@ function isPrimaryMouseButton(ev) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+/* Geometry
|
|
|
|
|
+----------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false
|
|
|
|
|
+function intersectRects(rect1, rect2) {
|
|
|
|
|
+ var res = {
|
|
|
|
|
+ left: Math.max(rect1.left, rect2.left),
|
|
|
|
|
+ right: Math.min(rect1.right, rect2.right),
|
|
|
|
|
+ top: Math.max(rect1.top, rect2.top),
|
|
|
|
|
+ bottom: Math.min(rect1.bottom, rect2.bottom)
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ if (res.left < res.right && res.top < res.bottom) {
|
|
|
|
|
+ return res;
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// Returns a new point that will have been moved to reside within the given rectangle
|
|
|
|
|
+function constrainPoint(point, rect) {
|
|
|
|
|
+ return {
|
|
|
|
|
+ left: Math.min(Math.max(point.left, rect.left), rect.right),
|
|
|
|
|
+ top: Math.min(Math.max(point.top, rect.top), rect.bottom)
|
|
|
|
|
+ };
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// Returns a point that is the center of the given rectangle
|
|
|
|
|
+function getRectCenter(rect) {
|
|
|
|
|
+ return {
|
|
|
|
|
+ left: (rect.left + rect.right) / 2,
|
|
|
|
|
+ top: (rect.top + rect.bottom) / 2
|
|
|
|
|
+ };
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// Subtracts point2's coordinates from point1's coordinates, returning a delta
|
|
|
|
|
+function diffPoints(point1, point2) {
|
|
|
|
|
+ return {
|
|
|
|
|
+ left: point1.left - point2.left,
|
|
|
|
|
+ top: point1.top - point2.top
|
|
|
|
|
+ };
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/* FullCalendar-specific Misc Utilities
|
|
/* FullCalendar-specific Misc Utilities
|
|
|
----------------------------------------------------------------------------------------------------------------------*/
|
|
----------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
|
|