 +    });
 +  }
 +
-+  function removeListenersFromTriggerTarget() {
++  function removeListeners() {
 +    listeners.forEach(function (_ref) {
 +      var node = _ref.node,
 +          eventType = _ref.eventType,

+  if (process.env.NODE_ENV !== "production") {
+    validateTargets(targets);
+    validateProps(optionalProps, plugins);
   }
 
+  bindGlobalEventListeners();
+  var passedProps = Object.assign({}, optionalProps, {
+    plugins: plugins

-          size = _getVirtualOffsets.size,
-          x = _getVirtualOffsets.x,
-          y = _getVirtualOffsets.y;
+      var clientX = event.clientX,
+          clientY = event.clientY;
+      var rect = reference.getBoundingClientRect();
+      var relativeX = clientX - rect.left;
+      var relativeY = clientY - rect.top;
