Adam Shaw пре 7 година
родитељ
комит
bb38ab7f26
3 измењених фајлова са 22 додато и 19 уклоњено
  1. 5 5
      src/agenda/TimeGrid.ts
  2. 5 5
      src/basic/DayGrid.ts
  3. 12 9
      src/common/OffsetTracker.ts

+ 5 - 5
src/agenda/TimeGrid.ts

@@ -10,7 +10,7 @@ import { Duration, createDuration, addDurations, multiplyDuration, wholeDivideDu
 import { startOfDay, DateMarker, addMs } from '../datelib/marker'
 import { DateFormatter, createFormatter, formatIsoTimeString } from '../datelib/formatting'
 import DateComponent, { Seg } from '../component/DateComponent'
-import OffsetCoordCache from '../common/OffsetCoordCache'
+import OffsetTracker from '../common/OffsetTracker'
 import { DateSpan } from '../structs/date-span'
 import { EventStore } from '../structs/event-store'
 import { Hit } from '../interactions/HitDragging'
@@ -62,7 +62,7 @@ export default class TimeGrid extends DateComponent {
 
   colPositions: CoordCache
   slatPositions: CoordCache
-  offsetTracker: OffsetCoordCache
+  offsetTracker: OffsetTracker
 
   rootBgContainerEl: HTMLElement
   bottomRuleEl: HTMLElement // hidden by default
@@ -578,7 +578,7 @@ export default class TimeGrid extends DateComponent {
 
 
   prepareHits() {
-    this.offsetTracker = new OffsetCoordCache(this.el)
+    this.offsetTracker = new OffsetTracker(this.el)
   }
 
 
@@ -591,8 +591,8 @@ export default class TimeGrid extends DateComponent {
     let { snapsPerSlot, slatPositions, colPositions, offsetTracker } = this
 
     if (offsetTracker.isWithinClipping(leftOffset, topOffset)) {
-      let leftOrigin = offsetTracker.getLeftAdjust()
-      let topOrigin = offsetTracker.getTopAdjust()
+      let leftOrigin = offsetTracker.getLeft()
+      let topOrigin = offsetTracker.getTop()
       let colIndex = colPositions.leftPositionToIndex(leftOffset - leftOrigin)
       let slatIndex = slatPositions.topPositionToIndex(topOffset - topOrigin)
 

+ 5 - 5
src/basic/DayGrid.ts

@@ -21,7 +21,7 @@ import { EventStore } from '../structs/event-store'
 import DayTile from './DayTile'
 import { Hit } from '../interactions/HitDragging'
 import { DateRange, rangeContainsMarker, intersectRanges } from '../datelib/date-range'
-import OffsetCoordCache from '../common/OffsetCoordCache'
+import OffsetTracker from '../common/OffsetTracker'
 
 const DAY_NUM_FORMAT = createFormatter({ day: 'numeric' })
 const WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' })
@@ -63,7 +63,7 @@ export default class DayGrid extends DateComponent {
 
   rowPositions: CoordCache
   colPositions: CoordCache
-  offsetTracker: OffsetCoordCache
+  offsetTracker: OffsetTracker
 
   // isRigid determines whether the individual rows should ignore the contents and be a constant height.
   // Relies on the view's colCnt and rowCnt. In the future, this component should probably be self-sufficient.
@@ -307,7 +307,7 @@ export default class DayGrid extends DateComponent {
 
 
   prepareHits() {
-    this.offsetTracker = new OffsetCoordCache(this.el)
+    this.offsetTracker = new OffsetTracker(this.el)
   }
 
 
@@ -320,8 +320,8 @@ export default class DayGrid extends DateComponent {
     let { colPositions, rowPositions, offsetTracker } = this
 
     if (offsetTracker.isWithinClipping(leftOffset, topOffset)) {
-      let leftOrigin = offsetTracker.getLeftAdjust()
-      let topOrigin = offsetTracker.getTopAdjust()
+      let leftOrigin = offsetTracker.getLeft()
+      let topOrigin = offsetTracker.getTop()
       let col = colPositions.leftPositionToIndex(leftOffset - leftOrigin)
       let row = rowPositions.topPositionToIndex(topOffset - topOrigin)
 

+ 12 - 9
src/common/OffsetCoordCache.ts → src/common/OffsetTracker.ts

@@ -2,17 +2,20 @@ import { getClippingParents, computeRect } from '../util/dom-geom'
 import { pointInsideRect } from '../util/geom'
 import { ElementScrollGeomCache } from '../common/scroll-geom-cache'
 
-export default class OffsetCoordCache { // TODO: rename to OffsetTracker?
+/*
+*/
+export default class OffsetTracker {
 
   scrollCaches: ElementScrollGeomCache[]
-  originOffsetLeft: number
-  originOffsetTop: number
+  origLeft: number
+  origTop: number
 
   constructor(el: HTMLElement) {
     let rect = computeRect(el)
-    this.originOffsetLeft = rect.left
-    this.originOffsetTop = rect.top
+    this.origLeft = rect.left
+    this.origTop = rect.top
 
+    // will work fine for divs that have overflow:hidden
     this.scrollCaches = getClippingParents(el).map(function(el) {
       return new ElementScrollGeomCache(el, true) // listen=true
     })
@@ -36,8 +39,8 @@ export default class OffsetCoordCache { // TODO: rename to OffsetTracker?
     return true
   }
 
-  getLeftAdjust() {
-    let left = this.originOffsetLeft
+  getLeft() {
+    let left = this.origLeft
 
     for (let scrollCache of this.scrollCaches) {
       left += scrollCache.scrollLeft - scrollCache.origScrollLeft
@@ -46,8 +49,8 @@ export default class OffsetCoordCache { // TODO: rename to OffsetTracker?
     return left
   }
 
-  getTopAdjust() {
-    let top = this.originOffsetTop
+  getTop() {
+    let top = this.origTop
 
     for (let scrollCache of this.scrollCaches) {
       top += scrollCache.origScrollTop - scrollCache.scrollTop