New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

vue-draggable

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-draggable - npm Package Compare versions

Comparing version 1.0.6 to 1.0.7

types/index.d.ts

336

lib/vue-draggable.js

@@ -103,25 +103,20 @@ (function webpackUniversalModuleDefinition(root, factory) {

\**********************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
/*! exports provided: VueDraggableDirective, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VueDraggableDirective", function() { return VueDraggableDirective; });
/* harmony import */ var _vue_draggable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./vue-draggable */ "./src/vue-draggable.js");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.VueDraggableDirective = undefined;
var _vueDraggable = __webpack_require__(/*! ./vue-draggable */ "./src/vue-draggable.js");
var VueDraggableDirective = exports.VueDraggableDirective = {
var VueDraggableDirective = {
bind: function bind(el, options) {
// override default options
Object.assign(_vueDraggable.VueDraggable.defaultOptions, options.value);
_vueDraggable.VueDraggable.registerListeners(el);
_vueDraggable.VueDraggable.initiate(el);
Object.assign(_vue_draggable__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"].defaultOptions, options.value);
_vue_draggable__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"].registerListeners(el);
_vue_draggable__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"].initiate(el);
},
componentUpdated: function componentUpdated(el) {
setTimeout(function () {
_vueDraggable.VueDraggable.initiate(el);
_vue_draggable__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"].initiate(el);
});

@@ -131,7 +126,7 @@ }

_vueDraggable.VueDraggable.install = function (Vue) {
_vue_draggable__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"].install = function (Vue) {
Vue.directive('drag-and-drop', VueDraggableDirective);
};
exports.default = _vueDraggable.VueDraggable;
/* harmony default export */ __webpack_exports__["default"] = (_vue_draggable__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"]);

@@ -144,16 +139,20 @@ /***/ }),

\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
/*! exports provided: VueDraggableMethods */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VueDraggableMethods", function() { return VueDraggableMethods; });
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
Object.defineProperty(exports, "__esModule", {
value: true
});
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
var VueDraggableMethods = {

@@ -172,14 +171,13 @@ stopDragAndDrop: function stopDragAndDrop() {

this.selections.owner = item.parentNode;
}
} // or if that's already happened then compare it with this item's parent
// and if they're not the same container, return to prevent selection
// or if that's already happened then compare it with this item's parent
// and if they're not the same container, return to prevent selection
if (!this.defaultOptions.multipleDropzonesItemsDraggingEnabled && this.selections.owner !== item.parentNode) {
return;
}
} // set this item's grabbed state
// set this item's grabbed state
item.setAttribute('aria-grabbed', 'true');
// add it to the items array
item.setAttribute('aria-grabbed', 'true'); // add it to the items array
this.selections.items = [].concat(_toConsumableArray(this.selections.items), [item]);

@@ -189,5 +187,4 @@ },

// reset this item's grabbed state
item.setAttribute('aria-grabbed', 'false');
item.setAttribute('aria-grabbed', 'false'); // then find and remove this item from the existing items array
// then find and remove this item from the existing items array
for (var i = 0; i < this.selections.items.length; i++) {

@@ -204,10 +201,9 @@ if (this.selections.items[i] === item) {

// reset the owner reference
this.selections.owner = null;
this.selections.owner = null; // reset the grabbed state on every selected item
// reset the grabbed state on every selected item
for (var i = 0; i < this.selections.items.length; i++) {
this.selections.items[i].setAttribute('aria-grabbed', 'false');
}
} // then reset the items array
// then reset the items array
this.selections.items = [];

@@ -226,8 +222,9 @@ }

}
}
} // remove aria-grabbed and tabindex from all items inside those containers
// remove aria-grabbed and tabindex from all items inside those containers
for (var _len = this.items.length, _i = 0; _i < _len; _i++) {
if (this.items[_i].parentNode !== this.selections.owner && this.items[_i].getAttribute('aria-grabbed')) {
this.items[_i].removeAttribute('aria-grabbed');
this.items[_i].removeAttribute('tabindex');

@@ -246,9 +243,10 @@ }

}
}
} // restore aria-grabbed and tabindex to all selectable items
// without changing the grabbed value of any existing selected items
// restore aria-grabbed and tabindex to all selectable items
// without changing the grabbed value of any existing selected items
for (var _i2 = 0; _i2 < this.items.length; _i2++) {
if (!this.items[_i2].getAttribute('aria-grabbed')) {
this.items[_i2].setAttribute('aria-grabbed', 'false');
this.items[_i2].setAttribute('tabindex', '0');

@@ -287,15 +285,15 @@ } else if (this.items[_i2].getAttribute('aria-grabbed') === 'true') {

el.addEventListener('mousedown', function (e) {
var elem = e.target.closest(_this.defaultOptions.draggableSelector);
var elem = e.target.closest(_this.defaultOptions.draggableSelector); // if the element is a draggable item
// if the element is a draggable item
if (elem && elem.getAttribute('draggable')) {
// clear dropeffect from the target containers
_this.clearDropeffects();
// if the multiple selection modifier is not pressed
_this.clearDropeffects(); // if the multiple selection modifier is not pressed
// and the item's grabbed state is currently false
if (!_this.hasModifier(e) && elem.getAttribute('aria-grabbed') === 'false') {
// clear all existing selections
_this.clearSelections();
_this.clearSelections(); // then add this new selection
// then add this new selection
_this.addSelection(elem);

@@ -307,5 +305,5 @@ }

// clear dropeffect from the target containers
_this.clearDropeffects();
_this.clearDropeffects(); // clear all existing selections
// clear all existing selections
_this.clearSelections();

@@ -317,10 +315,8 @@ } else {

}
}, false);
}, false); // mouseup event to implement multiple selection
// mouseup event to implement multiple selection
el.addEventListener('mouseup', function (e) {
var elem = e.target.closest(_this.defaultOptions.draggableSelector);
var elem = e.target.closest(_this.defaultOptions.draggableSelector); // if the element is a draggable item
// and the multipler selection modifier is pressed
// if the element is a draggable item
// and the multipler selection modifier is pressed
if (elem && elem.getAttribute('draggable') && _this.hasModifier(e)) {

@@ -330,6 +326,6 @@ // if the item's grabbed state is currently true

// unselect this item
_this.removeSelection(elem);
_this.removeSelection(elem); // if that was the only selected item
// then reset the owner container reference
// if that was the only selected item
// then reset the owner container reference
if (!_this.selections.items.length) {

@@ -344,9 +340,7 @@ _this.selections.owner = null;

}
}, false);
}, false); // dragstart event to initiate mouse dragging
// dragstart event to initiate mouse dragging
el.addEventListener('dragstart', function (e) {
var elem = e.target.closest(_this.defaultOptions.draggableSelector);
var elem = e.target.closest(_this.defaultOptions.draggableSelector); // if the element's parent is not the owner, then block this event
// if the element's parent is not the owner, then block this event
if (!_this.defaultOptions.multipleDropzonesItemsDraggingEnabled && elem && _this.selections.owner !== elem.parentNode) {

@@ -359,3 +353,3 @@ e.preventDefault();

try {
_this.defaultOptions.onDragstart(_extends({
_this.defaultOptions.onDragstart(_objectSpread({
nativeEvent: e,

@@ -366,25 +360,25 @@ stop: _this.stopDragAndDrop

e.preventDefault();
_this.removeOldDropzoneAreaElements();
return;
}
}
} // [else] if the multiple selection modifier is pressed
// and the item's grabbed state is currently false
// [else] if the multiple selection modifier is pressed
// and the item's grabbed state is currently false
if (_this.hasModifier(e) && elem.getAttribute('aria-grabbed') === 'false') {
// add this additional selection
_this.addSelection(elem);
}
// we don't need the transfer data, but we have to define something
} // we don't need the transfer data, but we have to define something
// otherwise the drop action won't work at all in firefox
// most browsers support the proper mime-type syntax, eg. "text/plain"
// but we have to use this incorrect syntax for the benefit of IE10+
e.dataTransfer.setData('text', '');
// apply dropeffect to the target containers
e.dataTransfer.setData('text', ''); // apply dropeffect to the target containers
_this.addDropeffects();
}, false);
}, false); // keydown event to implement selection and abort
// keydown event to implement selection and abort
el.addEventListener('keydown', function (e) {

@@ -404,16 +398,16 @@ // if the element is a grabbable item

_this.clearDropeffects();
}
} // unselect this item
// unselect this item
_this.removeSelection(e.target);
// if we have any selections
_this.removeSelection(e.target); // if we have any selections
// apply dropeffect to the target containers,
// in case earlier selections were made by mouse
if (_this.selections.items.length) {
_this.addDropeffects();
}
} // if that was the only selected item
// then reset the owner container reference
// if that was the only selected item
// then reset the owner container reference
if (!_this.selections.items.length) {

@@ -425,5 +419,5 @@ _this.selections.owner = null;

// add this additional selection
_this.addSelection(e.target);
_this.addSelection(e.target); // apply dropeffect to the target containers
// apply dropeffect to the target containers
_this.addDropeffects();

@@ -435,11 +429,11 @@ }

// clear dropeffect from the target containers
_this.clearDropeffects();
_this.clearDropeffects(); // clear all existing selections
// clear all existing selections
_this.clearSelections();
// add this new selection
_this.addSelection(e.target);
_this.clearSelections(); // add this new selection
// apply dropeffect to the target containers
_this.addSelection(e.target); // apply dropeffect to the target containers
_this.addDropeffects();

@@ -450,9 +444,9 @@ } else {

_this.addDropeffects();
}
} // then prevent default to avoid any conflict with native actions
// then prevent default to avoid any conflict with native actions
e.preventDefault();
}
} // Modifier + M is the end-of-selection keystroke
// Modifier + M is the end-of-selection keystroke
if (e.keyCode === 77 && _this.hasModifier(e)) {

@@ -463,5 +457,5 @@ // if we have any selected items

// in case earlier selections were made by mouse
_this.addDropeffects();
_this.addDropeffects(); // if the owner container is the last one, focus the first one
// if the owner container is the last one, focus the first one
if (_this.selections.owner === _this.targets[_this.targets.length - 1]) {

@@ -474,2 +468,3 @@ _this.targets[0].focus();

_this.targets[i + 1].focus();
break;

@@ -479,10 +474,10 @@ }

}
}
} // then prevent default to avoid any conflict with native actions
// then prevent default to avoid any conflict with native actions
e.preventDefault();
}
}
} // Escape is the abort keystroke (for any target element)
// Escape is the abort keystroke (for any target element)
if (e.keyCode === 27) {

@@ -492,33 +487,30 @@ // if we have any selected items

// clear dropeffect from the target containers
_this.clearDropeffects();
// then set focus back on the last item that was selected, which is
_this.clearDropeffects(); // then set focus back on the last item that was selected, which is
// necessary because we've removed tabindex from the current focus
_this.selections.items[_this.selections.items.length - 1].focus();
// clear all existing selections
_this.clearSelections();
// but don't prevent default so that native actions can still occur
_this.selections.items[_this.selections.items.length - 1].focus(); // clear all existing selections
_this.clearSelections(); // but don't prevent default so that native actions can still occur
}
}
}, false);
}, false); // dragenter event to set that variable
// dragenter event to set that variable
el.addEventListener('dragenter', function (e) {
_this.related = e.target;
}, false);
}, false); // dragleave event to maintain target highlighting using that variable
// dragleave event to maintain target highlighting using that variable
el.addEventListener('dragleave', function () {
// get a drop target reference from the relatedTarget
var droptarget = _this.getContainer(_this.related);
var droptarget = _this.getContainer(_this.related); // if the target is the owner then it's not a valid drop target
// if the target is the owner then it's not a valid drop target
if (droptarget === _this.selections.owner) {
droptarget = null;
}
} // if the drop target is different from the last stored reference
// (or we have one of those references but not the other one)
// if the drop target is different from the last stored reference
// (or we have one of those references but not the other one)
if (droptarget !== _this.selections.droptarget) {

@@ -528,15 +520,14 @@ // if we have a saved reference, clear its existing dragover class

_this.selections.droptarget.className = _this.selections.droptarget.className.replace(/ dragover/g, '');
}
} // apply the dragover class to the new drop target reference
// apply the dragover class to the new drop target reference
if (droptarget) {
droptarget.className += ' dragover';
}
} // then save that reference for next time
// then save that reference for next time
_this.selections.droptarget = droptarget;
}
}, false);
}, false); // dragover event to allow the drag by preventing its default
// dragover event to allow the drag by preventing its default
el.addEventListener('dragover', function (e) {

@@ -547,10 +538,9 @@ // if we have any selected items, allow them to be dragged

}
}, false);
}, false); // dragend event to implement items being validly dropped into targets,
// or invalidly dropped elsewhere, and to clean-up the interface either way
// dragend event to implement items being validly dropped into targets,
// or invalidly dropped elsewhere, and to clean-up the interface either way
el.addEventListener('dragend', function (e) {
if (typeof _this.defaultOptions.onDragend === 'function') {
try {
_this.defaultOptions.onDragend(_extends({
_this.defaultOptions.onDragend(_objectSpread({
nativeEvent: e,

@@ -561,8 +551,9 @@ stop: _this.stopDragAndDrop

_this.removeOldDropzoneAreaElements();
return;
}
}
} // if we have a valid drop target reference
// (which implies that we have some selected items)
// if we have a valid drop target reference
// (which implies that we have some selected items)
if (_this.selections.droptarget) {

@@ -573,4 +564,6 @@ // append the selected items to the end of the target container

_this.selections.droptarget.insertBefore(_this.selections.items[i], _this.nextItemElement);
continue;
}
_this.selections.droptarget.appendChild(_this.selections.items[i]);

@@ -580,37 +573,35 @@ }

if (typeof _this.defaultOptions.onDrop === 'function') {
_this.defaultOptions.onDrop(_extends({
_this.defaultOptions.onDrop(_objectSpread({
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 ');
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));
}
} // prevent default to allow the action
// prevent default to allow the action
e.preventDefault();
}
} // if we have any selected items
// if we have any selected items
if (_this.selections.items.length) {
// clear dropeffect from the target containers
_this.clearDropeffects();
_this.clearDropeffects(); // if we have a valid drop target reference
// if we have a valid drop target reference
if (_this.selections.droptarget) {
// reset the selections array
_this.clearSelections();
_this.clearSelections(); // reset the target's dragover class
// reset the target's dragover class
_this.selections.droptarget.className = _this.selections.droptarget.className.replace(/ dragover/g, '');
// reset the target reference
_this.selections.droptarget.className = _this.selections.droptarget.className.replace(/ dragover/g, ''); // reset the target reference
_this.selections.droptarget = null;
}
}
} // dropzone area elements
// dropzone area elements
_this.removeOldDropzoneAreaElements();
}, false);
}, false); // keydown event to implement items being dropped into targets
// keydown event to implement items being dropped into targets
el.addEventListener('keydown', function (e) {

@@ -624,15 +615,15 @@ // if the element is a drop target container

e.target.appendChild(_this.selections.items[i]);
}
} // clear dropeffect from the target containers
// clear dropeffect from the target containers
_this.clearDropeffects();
// then set focus back on the last item that was selected, which is
_this.clearDropeffects(); // then set focus back on the last item that was selected, which is
// necessary because we've removed tabindex from the current focus
_this.selections.items[_this.selections.items.length - 1].focus();
// reset the selections array
_this.clearSelections();
// prevent default to to avoid any conflict with native actions
_this.selections.items[_this.selections.items.length - 1].focus(); // reset the selections array
_this.clearSelections(); // prevent default to to avoid any conflict with native actions
e.preventDefault();

@@ -646,19 +637,15 @@ }

}
var previousTarget = null;
var dragoverCalls = 0;
el.addEventListener('dragover', function (e) {
if (dragoverCalls % 10 !== 0 && e.target === previousTarget || !e.target || e.target.className === 'item-dropzone-area') return;
dragoverCalls++;
previousTarget = e.target;
_this.nextItemElement = e.target.closest(_this.defaultOptions.draggableSelector);
_this.selections.droptarget = e.target.closest(_this.defaultOptions.dropzoneSelector);
if (_this.selections.droptarget === _this.selections.owner) return;
var itemDropzoneElement = document.createElement('div');
itemDropzoneElement.className = 'item-dropzone-area';
itemDropzoneElement.className = 'item-dropzone-area';
_this.removeOldDropzoneAreaElements();

@@ -689,3 +676,5 @@

this.items[_i3].setAttribute('draggable', 'true');
this.items[_i3].setAttribute('aria-grabbed', 'false');
this.items[_i3].setAttribute('tabindex', '0');

@@ -696,3 +685,2 @@ }

exports.VueDraggableMethods = VueDraggableMethods;

@@ -705,11 +693,8 @@ /***/ }),

\**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
/*! exports provided: VueDraggableOptions */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VueDraggableOptions", function() { return VueDraggableOptions; });
var VueDraggableOptions = {

@@ -739,3 +724,2 @@ defaultOptions: {

exports.VueDraggableOptions = VueDraggableOptions;

@@ -748,22 +732,20 @@ /***/ }),

\******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
/*! exports provided: VueDraggable */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VueDraggable", function() { return VueDraggable; });
/* harmony import */ var _vue_draggable_options__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./vue-draggable-options */ "./src/vue-draggable-options.js");
/* harmony import */ var _vue_draggable_methods__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vue-draggable-methods */ "./src/vue-draggable-methods.js");
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.VueDraggable = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _vueDraggableOptions = __webpack_require__(/*! ./vue-draggable-options */ "./src/vue-draggable-options.js");
var _vueDraggableMethods = __webpack_require__(/*! ./vue-draggable-methods */ "./src/vue-draggable-methods.js");
var VueDraggable = _objectSpread({}, _vue_draggable_options__WEBPACK_IMPORTED_MODULE_0__["VueDraggableOptions"], _vue_draggable_methods__WEBPACK_IMPORTED_MODULE_1__["VueDraggableMethods"]);
var VueDraggable = _extends({}, _vueDraggableOptions.VueDraggableOptions, _vueDraggableMethods.VueDraggableMethods);
exports.VueDraggable = VueDraggable;

@@ -770,0 +752,0 @@ /***/ })

@@ -1,2 +0,2 @@

!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()}(this,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)r.d(n,s,function(t){return e[t]}.bind(null,s));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([function(e,t,r){"use strict";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 n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};var s={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(function(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)}(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,n=0;n<r;n++)this.items[n].parentNode!==this.selections.owner&&this.items[n].getAttribute("aria-grabbed")&&(this.items[n].removeAttribute("aria-grabbed"),this.items[n].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){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()}else e.preventDefault()},!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.closest(t.defaultOptions.draggableSelector)),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=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.VueDraggableOptions={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}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VueDraggable=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s=r(1),o=r(0),i=n({},s.VueDraggableOptions,o.VueDraggableMethods);t.VueDraggable=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.VueDraggableDirective=void 0;var n=r(2),s=t.VueDraggableDirective={bind:function(e,t){Object.assign(n.VueDraggable.defaultOptions,t.value),n.VueDraggable.registerListeners(e),n.VueDraggable.initiate(e)},componentUpdated:function(e){setTimeout(function(){n.VueDraggable.initiate(e)})}};n.VueDraggable.install=function(e){e.directive("drag-and-drop",s)},t.default=n.VueDraggable}])});
!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()}(this,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t);function n(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){o(e,t,r[t])})}return e}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){s(e,t,r[t])})}return e}({},{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}},{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(i(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,n=0;n<r;n++)this.items[n].parentNode!==this.selections.owner&&this.items[n].getAttribute("aria-grabbed")&&(this.items[n].removeAttribute("aria-grabbed"),this.items[n].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){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()}else e.preventDefault()},!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,o=0;e.addEventListener("dragover",function(e){if((o%10==0||e.target!==r)&&e.target&&"item-dropzone-area"!==e.target.className&&(o++,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.closest(t.defaultOptions.draggableSelector)),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")}}});r.d(t,"VueDraggableDirective",function(){return l});var l={bind:function(e,t){Object.assign(a.defaultOptions,t.value),a.registerListeners(e),a.initiate(e)},componentUpdated:function(e){setTimeout(function(){a.initiate(e)})}};a.install=function(e){e.directive("drag-and-drop",l)};t.default=a}])});
//# sourceMappingURL=vue-draggable.min.js.map
{
"name": "vue-draggable",
"version": "1.0.6",
"description": "Vuejs 2.* directive for drag and drop",
"version": "1.0.7",
"description": "Vue drag and drop library without any dependency",
"main": "lib/vue-draggable.js",

@@ -9,4 +9,4 @@ "scripts": {

"dev": "webpack-dev-server --progress --colors --watch --env server --config ./webpack.config.js",
"test": "mocha --require babel-core/register --colors ./test/*.spec.js",
"test:watch": "mocha --require babel-core/register --colors -w ./test/*.spec.js"
"test": "mocha --require @babel/register --colors ./test/*.spec.js",
"test:watch": "mocha --require @babel/register --colors -w ./test/*.spec.js"
},

@@ -20,3 +20,10 @@ "repository": {

},
"typings": "types/index.d.ts",
"files": [
"src",
"lib/*.js",
"types/*.d.ts"
],
"keywords": [
"vue",
"vuejs",

@@ -32,12 +39,13 @@ "html5",

"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"@babel/register": "^7.0.0",
"@vue/test-utils": "^1.0.0-beta.20",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-eslint": "^8.2.5",
"babel-loader": "^7.1.5",
"babel-loader": "^8.0.0",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-preset-env": "^1.7.0",
"chai": "^4.1.2",
"eslint": "^5.1.0",
"eslint": "^5.6.0",
"eslint-loader": "^2.0.0",

@@ -52,6 +60,5 @@ "html-webpack-plugin": "^3.2.0",

"webpack-cli": "^3.0.8",
"webpack-dev-server": "^3.1.4",
"yargs": "^12.0.1"
"webpack-dev-server": "^3.1.4"
},
"dependencies": {}
}

@@ -6,2 +6,3 @@ # VueDraggable

[![GitHub open issues](https://img.shields.io/github/issues/Vivify-Ideas/vue-draggable.svg?maxAge=2592000)](https://github.com/Vivify-Ideas/vue-draggable/issues?q=is%3Aopen+is%3Aissue)
[![buddy pipeline](https://app.buddy.works/nikolaspalevic/vue-draggable/pipelines/pipeline/154390/badge.svg?token=c3d8c0680777ef9d392a29db49cc6e35ad9140a4a596410bfa65860e358bad5e "buddy pipeline")](https://app.buddy.works/nikolaspalevic/vue-draggable/pipelines/pipeline/154390)
[![npm download](https://img.shields.io/npm/dt/vue-draggable.svg?maxAge=2592000)](https://www.npmjs.com/package/vue-draggable)

@@ -12,3 +13,3 @@ [![MIT License](https://img.shields.io/github/license/Vivify-Ideas/vue-draggable.svg)](https://github.com/Vivify-Ideas/vue-draggable/blob/master/LICENSE)

VueJS 2.* directive for drag and drop
VueJS directive for drag and drop

@@ -19,11 +20,14 @@ Native HTML5 drag and drop implementation made for VueJS

## TypeScript
VueDraggable includes TypeScript definitions.
## Installation
```
npm install --save vue-draggable
```
or
```
npm install vue-draggable
<!-- or -->
yarn add vue-draggable
```
## Setup VueDraggable

@@ -61,3 +65,3 @@

#### Directive `v-drag-and-drop` options
#### Directive `v-drag-and-drop` available options

@@ -64,0 +68,0 @@ ```javascript

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc