 React = require 'react'
 ReactDOM = require 'react-dom'
-_ = require 'underscore'
+
+extend  = require 'lodash/extend'
+isEmpty = require 'lodash/isEmpty'
+delay   = require 'lodash/delay'
+result  = require 'lodash/result'
+
 
 # Note that the GetPositionMixin methods are called directly rather than mixing it in
 # since we're a mixin ourselves our consumers also include GetPosition and it causes

    visibleHeight > height / 2

  getElement: (selector) ->
    return if _.isEmpty(selector)
    @_scrollingTargetDOM().querySelector(selector)

  _onBeforeScroll: (el) ->


    startPos  = win.pageYOffset
    startTime = Date.now()
    duration  = result(@, 'getScrollDuration', DEFAULT_DURATION)
    requestAnimationFrame = win.requestAnimationFrame or delay
    options.attemptNumber ||= 0

    step = =>
