vue-draggable
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -182,2 +182,6 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
var VueDraggableMethods = { | ||
stopDragAndDrop: function stopDragAndDrop() { | ||
// throw exception and catch this to stop further d&d | ||
throw new Error('Requested D&D stop...'); | ||
}, | ||
isOldBrowser: function isOldBrowser() { | ||
@@ -367,5 +371,12 @@ return !document.querySelectorAll || !('draggable' in document.createElement('span')) || window.opera; | ||
if (typeof _this.defaultOptions.onDragstart === 'function') { | ||
_this.defaultOptions.onDragstart(_extends({ | ||
nativeEvent: e | ||
}, _this.selections)); | ||
try { | ||
_this.defaultOptions.onDragstart(_extends({ | ||
nativeEvent: e, | ||
stop: _this.stopDragAndDrop | ||
}, _this.selections)); | ||
} catch (error) { | ||
e.preventDefault(); | ||
_this.removeOldDropzoneAreaElements(); | ||
return; | ||
} | ||
} | ||
@@ -545,3 +556,11 @@ | ||
if (typeof _this.defaultOptions.onDragend === 'function') { | ||
_this.defaultOptions.onDragend(_extends({ nativeEvent: e }, _this.selections)); | ||
try { | ||
_this.defaultOptions.onDragend(_extends({ | ||
nativeEvent: e, | ||
stop: _this.stopDragAndDrop | ||
}, _this.selections)); | ||
} catch (error) { | ||
_this.removeOldDropzoneAreaElements(); | ||
return; | ||
} | ||
} | ||
@@ -563,3 +582,6 @@ | ||
_this.defaultOptions.onDrop(_extends({ | ||
nativeEvent: e | ||
nativeEvent: e, | ||
stop: function stop() { | ||
throw new Error('Stop method is available only for callbacks\n \'onDragstart\' and \'onDragend\'. For more info look at\n https://github.com/Vivify-Ideas/vue-draggable/blob/master/README.md\n '); | ||
} | ||
}, _this.selections)); | ||
@@ -566,0 +588,0 @@ } |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("VueDraggable",[],t):"object"==typeof exports?exports.VueDraggable=t():e.VueDraggable=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(s){if(r[s])return r[s].exports;var n=r[s]={i:s,l:!1,exports:{}};return e[s].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,s){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:s})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=r(1);s.VueDraggable.install=function(e){e.directive("drag-and-drop",{bind:function(e,t){Object.assign(s.VueDraggable.defaultOptions,t.value),s.VueDraggable.registerListeners(e),s.VueDraggable.initiate(e)},componentUpdated:function(e){setTimeout(function(){s.VueDraggable.initiate(e)})}})},t.default=s.VueDraggable,e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VueDraggable=void 0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},n=r(2),i=r(3),o=s({},n.VueDraggableOptions,i.VueDraggableMethods);t.VueDraggable=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={defaultOptions:{dropzoneSelector:"ul",draggableSelector:"li",excludeOlderBrowsers:!0,multipleDropzonesItemsDraggingEnabled:!0,showDropzoneAreas:!0,onDrop:function(){},onDragstart:function(){},onDragend:function(){}},targets:null,items:null,nextItemElement:null,related:null,selections:{items:[],owner:null,droptarget:null}};t.VueDraggableOptions=s},function(e,t,r){"use strict";function s(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},i={isOldBrowser:function(){return!document.querySelectorAll||!("draggable"in document.createElement("span"))||window.opera},addSelection:function(e){this.selections.owner||(this.selections.owner=e.parentNode),(this.defaultOptions.multipleDropzonesItemsDraggingEnabled||this.selections.owner===e.parentNode)&&(e.setAttribute("aria-grabbed","true"),this.selections.items=[].concat(s(this.selections.items),[e]))},removeSelection:function(e){e.setAttribute("aria-grabbed","false");for(var t=0;t<this.selections.items.length;t++)if(this.selections.items[t]===e){this.selections.items.splice(t,1);break}},clearSelections:function(){if(this.selections.items.length){this.selections.owner=null;for(var e=0;e<this.selections.items.length;e++)this.selections.items[e].setAttribute("aria-grabbed","false");this.selections.items=[]}},hasModifier:function(e){return e.ctrlKey||e.metaKey||e.shiftKey},addDropeffects:function(){for(var e=this.targets.length,t=0;t<e;t++)this.targets[t]!==this.selections.owner&&"none"===this.targets[t].getAttribute("aria-dropeffect")&&(this.targets[t].setAttribute("aria-dropeffect","move"),this.targets[t].setAttribute("tabindex","0"));for(var r=this.items.length,s=0;s<r;s++)this.items[s].parentNode!==this.selections.owner&&this.items[s].getAttribute("aria-grabbed")&&(this.items[s].removeAttribute("aria-grabbed"),this.items[s].removeAttribute("tabindex"))},clearDropeffects:function(){if(this.selections.items.length){for(var e=0;e<this.targets.length;e++)"none"!==this.targets[e].getAttribute("aria-dropeffect")&&(this.targets[e].setAttribute("aria-dropeffect","none"),this.targets[e].removeAttribute("tabindex"));for(var t=0;t<this.items.length;t++)this.items[t].getAttribute("aria-grabbed")?"true"===this.items[t].getAttribute("aria-grabbed")&&this.items[t].setAttribute("tabindex","0"):(this.items[t].setAttribute("aria-grabbed","false"),this.items[t].setAttribute("tabindex","0"))}},getContainer:function(e){var t=e;do{if(t&&1===t.nodeType&&t.getAttribute("aria-dropeffect"))return t}while(t=t?t.parentNode:null);return null},removeOldDropzoneAreaElements:function(){for(var e=document.querySelectorAll(".item-dropzone-area"),t=0;t<e.length;t++)e[t].remove()},registerListeners:function(e){var t=this;if((!this.defaultOptions.excludeOlderBrowsers||!this.isOldBrowser())&&(e.addEventListener("mousedown",function(e){var r=e.target.closest(t.defaultOptions.draggableSelector);r&&r.getAttribute("draggable")?(t.clearDropeffects(),t.hasModifier(e)||"false"!==r.getAttribute("aria-grabbed")||(t.clearSelections(),t.addSelection(r))):t.hasModifier(e)?t.clearDropeffects():(t.clearDropeffects(),t.clearSelections())},!1),e.addEventListener("mouseup",function(e){var r=e.target.closest(t.defaultOptions.draggableSelector);r&&r.getAttribute("draggable")&&t.hasModifier(e)&&("true"===r.getAttribute("aria-grabbed")?(t.removeSelection(r),t.selections.items.length||(t.selections.owner=null)):t.addSelection(r))},!1),e.addEventListener("dragstart",function(e){var r=e.target.closest(t.defaultOptions.draggableSelector);if(!t.defaultOptions.multipleDropzonesItemsDraggingEnabled&&r&&t.selections.owner!==r.parentNode)return void e.preventDefault();"function"==typeof t.defaultOptions.onDragstart&&t.defaultOptions.onDragstart(n({nativeEvent:e},t.selections)),t.hasModifier(e)&&"false"===r.getAttribute("aria-grabbed")&&t.addSelection(r),e.dataTransfer.setData("text",""),t.addDropeffects()},!1),e.addEventListener("keydown",function(e){if(e.target.getAttribute("aria-grabbed")&&(32===e.keyCode&&(t.hasModifier(e)?"true"===e.target.getAttribute("aria-grabbed")?(1===t.selections.items.length&&t.clearDropeffects(),t.removeSelection(e.target),t.selections.items.length&&t.addDropeffects(),t.selections.items.length||(t.selections.owner=null)):(t.addSelection(e.target),t.addDropeffects()):"false"===e.target.getAttribute("aria-grabbed")?(t.clearDropeffects(),t.clearSelections(),t.addSelection(e.target),t.addDropeffects()):t.addDropeffects(),e.preventDefault()),77===e.keyCode&&t.hasModifier(e))){if(t.selections.items.length)if(t.addDropeffects(),t.selections.owner===t.targets[t.targets.length-1])t.targets[0].focus();else for(var r=0;r<t.targets.length;r++)if(t.selections.owner===t.targets[r]){t.targets[r+1].focus();break}e.preventDefault()}27===e.keyCode&&t.selections.items.length&&(t.clearDropeffects(),t.selections.items[t.selections.items.length-1].focus(),t.clearSelections())},!1),e.addEventListener("dragenter",function(e){t.related=e.target},!1),e.addEventListener("dragleave",function(){var e=t.getContainer(t.related);e===t.selections.owner&&(e=null),e!==t.selections.droptarget&&(t.selections.droptarget&&(t.selections.droptarget.className=t.selections.droptarget.className.replace(/ dragover/g,"")),e&&(e.className+=" dragover"),t.selections.droptarget=e)},!1),e.addEventListener("dragover",function(e){t.selections.items.length&&e.preventDefault()},!1),e.addEventListener("dragend",function(e){if("function"==typeof t.defaultOptions.onDragend&&t.defaultOptions.onDragend(n({nativeEvent:e},t.selections)),t.selections.droptarget){for(var r=0;r<t.selections.items.length;r++)t.nextItemElement?t.selections.droptarget.insertBefore(t.selections.items[r],t.nextItemElement):t.selections.droptarget.appendChild(t.selections.items[r]);"function"==typeof t.defaultOptions.onDrop&&t.defaultOptions.onDrop(n({nativeEvent:e},t.selections)),e.preventDefault()}t.selections.items.length&&(t.clearDropeffects(),t.selections.droptarget&&(t.clearSelections(),t.selections.droptarget.className=t.selections.droptarget.className.replace(/ dragover/g,""),t.selections.droptarget=null)),t.removeOldDropzoneAreaElements()},!1),e.addEventListener("keydown",function(e){if(e.target.getAttribute("aria-dropeffect")&&(13===e.keyCode||77===e.keyCode&&t.hasModifier(e))){for(var r=0;r<t.selections.items.length;r++)e.target.appendChild(t.selections.items[r]);t.clearDropeffects(),t.selections.items[t.selections.items.length-1].focus(),t.clearSelections(),e.preventDefault()}},!1),this.defaultOptions.showDropzoneAreas)){var r=null,s=0;e.addEventListener("dragover",function(e){if((s%10==0||e.target!==r)&&e.target&&"item-dropzone-area"!==e.target.className&&(s++,r=e.target,t.nextItemElement=e.target.closest(t.defaultOptions.draggableSelector),t.selections.droptarget=e.target.closest(t.defaultOptions.dropzoneSelector),t.selections.droptarget!==t.selections.owner)){var n=document.createElement("div");n.className="item-dropzone-area",t.removeOldDropzoneAreaElements(),t.selections.droptarget&&t.nextItemElement&&t.selections.droptarget.insertBefore(n,r),t.selections.droptarget&&!t.nextItemElement&&t.selections.droptarget.appendChild(n)}})}},initiate:function(e){if(!this.defaultOptions.excludeOlderBrowsers||!this.isOldBrowser()){this.targets=e.querySelectorAll(this.defaultOptions.dropzoneSelector),this.items=e.querySelectorAll(this.defaultOptions.draggableSelector);for(var t=0;t<this.targets.length;t++)this.targets[t].setAttribute("aria-dropeffect","none");for(var r=0;r<this.items.length;r++)this.items[r].setAttribute("draggable","true"),this.items[r].setAttribute("aria-grabbed","false"),this.items[r].setAttribute("tabindex","0")}}};t.VueDraggableMethods=i}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("VueDraggable",[],t):"object"==typeof exports?exports.VueDraggable=t():e.VueDraggable=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(s){if(r[s])return r[s].exports;var n=r[s]={i:s,l:!1,exports:{}};return e[s].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,s){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:s})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=r(1);s.VueDraggable.install=function(e){e.directive("drag-and-drop",{bind:function(e,t){Object.assign(s.VueDraggable.defaultOptions,t.value),s.VueDraggable.registerListeners(e),s.VueDraggable.initiate(e)},componentUpdated:function(e){setTimeout(function(){s.VueDraggable.initiate(e)})}})},t.default=s.VueDraggable,e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VueDraggable=void 0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},n=r(2),o=r(3),i=s({},n.VueDraggableOptions,o.VueDraggableMethods);t.VueDraggable=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={defaultOptions:{dropzoneSelector:"ul",draggableSelector:"li",excludeOlderBrowsers:!0,multipleDropzonesItemsDraggingEnabled:!0,showDropzoneAreas:!0,onDrop:function(){},onDragstart:function(){},onDragend:function(){}},targets:null,items:null,nextItemElement:null,related:null,selections:{items:[],owner:null,droptarget:null}};t.VueDraggableOptions=s},function(e,t,r){"use strict";function s(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},o={stopDragAndDrop:function(){throw new Error("Requested D&D stop...")},isOldBrowser:function(){return!document.querySelectorAll||!("draggable"in document.createElement("span"))||window.opera},addSelection:function(e){this.selections.owner||(this.selections.owner=e.parentNode),(this.defaultOptions.multipleDropzonesItemsDraggingEnabled||this.selections.owner===e.parentNode)&&(e.setAttribute("aria-grabbed","true"),this.selections.items=[].concat(s(this.selections.items),[e]))},removeSelection:function(e){e.setAttribute("aria-grabbed","false");for(var t=0;t<this.selections.items.length;t++)if(this.selections.items[t]===e){this.selections.items.splice(t,1);break}},clearSelections:function(){if(this.selections.items.length){this.selections.owner=null;for(var e=0;e<this.selections.items.length;e++)this.selections.items[e].setAttribute("aria-grabbed","false");this.selections.items=[]}},hasModifier:function(e){return e.ctrlKey||e.metaKey||e.shiftKey},addDropeffects:function(){for(var e=this.targets.length,t=0;t<e;t++)this.targets[t]!==this.selections.owner&&"none"===this.targets[t].getAttribute("aria-dropeffect")&&(this.targets[t].setAttribute("aria-dropeffect","move"),this.targets[t].setAttribute("tabindex","0"));for(var r=this.items.length,s=0;s<r;s++)this.items[s].parentNode!==this.selections.owner&&this.items[s].getAttribute("aria-grabbed")&&(this.items[s].removeAttribute("aria-grabbed"),this.items[s].removeAttribute("tabindex"))},clearDropeffects:function(){if(this.selections.items.length){for(var e=0;e<this.targets.length;e++)"none"!==this.targets[e].getAttribute("aria-dropeffect")&&(this.targets[e].setAttribute("aria-dropeffect","none"),this.targets[e].removeAttribute("tabindex"));for(var t=0;t<this.items.length;t++)this.items[t].getAttribute("aria-grabbed")?"true"===this.items[t].getAttribute("aria-grabbed")&&this.items[t].setAttribute("tabindex","0"):(this.items[t].setAttribute("aria-grabbed","false"),this.items[t].setAttribute("tabindex","0"))}},getContainer:function(e){var t=e;do{if(t&&1===t.nodeType&&t.getAttribute("aria-dropeffect"))return t}while(t=t?t.parentNode:null);return null},removeOldDropzoneAreaElements:function(){for(var e=document.querySelectorAll(".item-dropzone-area"),t=0;t<e.length;t++)e[t].remove()},registerListeners:function(e){var t=this;if((!this.defaultOptions.excludeOlderBrowsers||!this.isOldBrowser())&&(e.addEventListener("mousedown",function(e){var r=e.target.closest(t.defaultOptions.draggableSelector);r&&r.getAttribute("draggable")?(t.clearDropeffects(),t.hasModifier(e)||"false"!==r.getAttribute("aria-grabbed")||(t.clearSelections(),t.addSelection(r))):t.hasModifier(e)?t.clearDropeffects():(t.clearDropeffects(),t.clearSelections())},!1),e.addEventListener("mouseup",function(e){var r=e.target.closest(t.defaultOptions.draggableSelector);r&&r.getAttribute("draggable")&&t.hasModifier(e)&&("true"===r.getAttribute("aria-grabbed")?(t.removeSelection(r),t.selections.items.length||(t.selections.owner=null)):t.addSelection(r))},!1),e.addEventListener("dragstart",function(e){var r=e.target.closest(t.defaultOptions.draggableSelector);if(!t.defaultOptions.multipleDropzonesItemsDraggingEnabled&&r&&t.selections.owner!==r.parentNode)return void e.preventDefault();if("function"==typeof t.defaultOptions.onDragstart)try{t.defaultOptions.onDragstart(n({nativeEvent:e,stop:t.stopDragAndDrop},t.selections))}catch(r){return e.preventDefault(),void t.removeOldDropzoneAreaElements()}t.hasModifier(e)&&"false"===r.getAttribute("aria-grabbed")&&t.addSelection(r),e.dataTransfer.setData("text",""),t.addDropeffects()},!1),e.addEventListener("keydown",function(e){if(e.target.getAttribute("aria-grabbed")&&(32===e.keyCode&&(t.hasModifier(e)?"true"===e.target.getAttribute("aria-grabbed")?(1===t.selections.items.length&&t.clearDropeffects(),t.removeSelection(e.target),t.selections.items.length&&t.addDropeffects(),t.selections.items.length||(t.selections.owner=null)):(t.addSelection(e.target),t.addDropeffects()):"false"===e.target.getAttribute("aria-grabbed")?(t.clearDropeffects(),t.clearSelections(),t.addSelection(e.target),t.addDropeffects()):t.addDropeffects(),e.preventDefault()),77===e.keyCode&&t.hasModifier(e))){if(t.selections.items.length)if(t.addDropeffects(),t.selections.owner===t.targets[t.targets.length-1])t.targets[0].focus();else for(var r=0;r<t.targets.length;r++)if(t.selections.owner===t.targets[r]){t.targets[r+1].focus();break}e.preventDefault()}27===e.keyCode&&t.selections.items.length&&(t.clearDropeffects(),t.selections.items[t.selections.items.length-1].focus(),t.clearSelections())},!1),e.addEventListener("dragenter",function(e){t.related=e.target},!1),e.addEventListener("dragleave",function(){var e=t.getContainer(t.related);e===t.selections.owner&&(e=null),e!==t.selections.droptarget&&(t.selections.droptarget&&(t.selections.droptarget.className=t.selections.droptarget.className.replace(/ dragover/g,"")),e&&(e.className+=" dragover"),t.selections.droptarget=e)},!1),e.addEventListener("dragover",function(e){t.selections.items.length&&e.preventDefault()},!1),e.addEventListener("dragend",function(e){if("function"==typeof t.defaultOptions.onDragend)try{t.defaultOptions.onDragend(n({nativeEvent:e,stop:t.stopDragAndDrop},t.selections))}catch(e){return void t.removeOldDropzoneAreaElements()}if(t.selections.droptarget){for(var r=0;r<t.selections.items.length;r++)t.nextItemElement?t.selections.droptarget.insertBefore(t.selections.items[r],t.nextItemElement):t.selections.droptarget.appendChild(t.selections.items[r]);"function"==typeof t.defaultOptions.onDrop&&t.defaultOptions.onDrop(n({nativeEvent:e,stop:function(){throw new Error("Stop method is available only for callbacks\n 'onDragstart' and 'onDragend'. For more info look at\n https://github.com/Vivify-Ideas/vue-draggable/blob/master/README.md\n ")}},t.selections)),e.preventDefault()}t.selections.items.length&&(t.clearDropeffects(),t.selections.droptarget&&(t.clearSelections(),t.selections.droptarget.className=t.selections.droptarget.className.replace(/ dragover/g,""),t.selections.droptarget=null)),t.removeOldDropzoneAreaElements()},!1),e.addEventListener("keydown",function(e){if(e.target.getAttribute("aria-dropeffect")&&(13===e.keyCode||77===e.keyCode&&t.hasModifier(e))){for(var r=0;r<t.selections.items.length;r++)e.target.appendChild(t.selections.items[r]);t.clearDropeffects(),t.selections.items[t.selections.items.length-1].focus(),t.clearSelections(),e.preventDefault()}},!1),this.defaultOptions.showDropzoneAreas)){var r=null,s=0;e.addEventListener("dragover",function(e){if((s%10==0||e.target!==r)&&e.target&&"item-dropzone-area"!==e.target.className&&(s++,r=e.target,t.nextItemElement=e.target.closest(t.defaultOptions.draggableSelector),t.selections.droptarget=e.target.closest(t.defaultOptions.dropzoneSelector),t.selections.droptarget!==t.selections.owner)){var n=document.createElement("div");n.className="item-dropzone-area",t.removeOldDropzoneAreaElements(),t.selections.droptarget&&t.nextItemElement&&t.selections.droptarget.insertBefore(n,r),t.selections.droptarget&&!t.nextItemElement&&t.selections.droptarget.appendChild(n)}})}},initiate:function(e){if(!this.defaultOptions.excludeOlderBrowsers||!this.isOldBrowser()){this.targets=e.querySelectorAll(this.defaultOptions.dropzoneSelector),this.items=e.querySelectorAll(this.defaultOptions.draggableSelector);for(var t=0;t<this.targets.length;t++)this.targets[t].setAttribute("aria-dropeffect","none");for(var r=0;r<this.items.length;r++)this.items[r].setAttribute("draggable","true"),this.items[r].setAttribute("aria-grabbed","false"),this.items[r].setAttribute("tabindex","0")}}};t.VueDraggableMethods=o}])}); |
{ | ||
"name": "vue-draggable", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "Vuejs 2.* directive for drag and drop", | ||
@@ -5,0 +5,0 @@ "main": "lib/vue-draggable.js", |
Sorry, the diff of this file is not supported yet
287330
1269