function start() {
  cleanup();
  unbindEvents = bindAll(window, [{
    type: 'dragover',
    listener: acceptDrop
  }, {
    type: 'dragenter',
    listener: acceptDrop
  }, {
    type: 'drop',
    listener: function listener(event) {
      // our lifecycle manager already prevents events, but just being super safe
      event.preventDefault();

      // not setting dropEffect, as `drop.dropEffect` has already been published to the user
      // (lifecycle-manager binds events in the capture phase)

      // we don't need to wait for "dragend", and "dragend" might not even happen,
      // such as when the draggable has been removed during a drag.
      cleanup();
    }
  }, {
    type: 'dragend',
    listener: cleanup
  }].concat(_toConsumableArray(getBindingsForBrokenDrags({
    onDragEnd: cleanup
  }))),
  // being clear that these are added in the bubble phase
  {
    capture: false
  });
}
Block drag operations outside of `@atlaskit/pragmatic-drag-and-drop`