| import Vue from 'vue'; | 
| let isDragging = false; | 
|   | 
| export default function(element, options) { | 
|   if (Vue.prototype.$isServer) return; | 
|   const moveFn = function(event) { | 
|     if (options.drag) { | 
|       options.drag(event); | 
|     } | 
|   }; | 
|   const upFn = function(event) { | 
|     document.removeEventListener('mousemove', moveFn); | 
|     document.removeEventListener('mouseup', upFn); | 
|     document.onselectstart = null; | 
|     document.ondragstart = null; | 
|   | 
|     isDragging = false; | 
|   | 
|     if (options.end) { | 
|       options.end(event); | 
|     } | 
|   }; | 
|   element.addEventListener('mousedown', function(event) { | 
|     if (isDragging) return; | 
|     document.onselectstart = function() { return false; }; | 
|     document.ondragstart = function() { return false; }; | 
|   | 
|     document.addEventListener('mousemove', moveFn); | 
|     document.addEventListener('mouseup', upFn); | 
|     isDragging = true; | 
|   | 
|     if (options.start) { | 
|       options.start(event); | 
|     } | 
|   }); | 
| } |