{"version":3,"file":"dragula-2U5HN2uy.js","sources":["../../../node_modules/dragula/classes.js","../../../node_modules/dragula/dragula.js","../../../node_modules/vue3-dragula/dist/src/vue3-dragula.js"],"sourcesContent":["'use strict';\n\nvar cache = {};\nvar start = '(?:^|\\\\s)';\nvar end = '(?:\\\\s|$)';\n\nfunction lookupClass (className) {\n var cached = cache[className];\n if (cached) {\n cached.lastIndex = 0;\n } else {\n cache[className] = cached = new RegExp(start + className + end, 'g');\n }\n return cached;\n}\n\nfunction addClass (el, className) {\n var current = el.className;\n if (!current.length) {\n el.className = className;\n } else if (!lookupClass(className).test(current)) {\n el.className += ' ' + className;\n }\n}\n\nfunction rmClass (el, className) {\n el.className = el.className.replace(lookupClass(className), ' ').trim();\n}\n\nmodule.exports = {\n add: addClass,\n rm: rmClass\n};\n","'use strict';\n\nvar emitter = require('contra/emitter');\nvar crossvent = require('crossvent');\nvar classes = require('./classes');\nvar doc = document;\nvar documentElement = doc.documentElement;\n\nfunction dragula (initialContainers, options) {\n var len = arguments.length;\n if (len === 1 && Array.isArray(initialContainers) === false) {\n options = initialContainers;\n initialContainers = [];\n }\n var _mirror; // mirror image\n var _source; // source container\n var _item; // item being dragged\n var _offsetX; // reference x\n var _offsetY; // reference y\n var _moveX; // reference move x\n var _moveY; // reference move y\n var _initialSibling; // reference sibling when grabbed\n var _currentSibling; // reference sibling now\n var _copy; // item used for copying\n var _renderTimer; // timer for setTimeout renderMirrorImage\n var _lastDropTarget = null; // last container item was over\n var _grabbed; // holds mousedown context until first mousemove\n\n var o = options || {};\n if (o.moves === void 0) { o.moves = always; }\n if (o.accepts === void 0) { o.accepts = always; }\n if (o.invalid === void 0) { o.invalid = invalidTarget; }\n if (o.containers === void 0) { o.containers = initialContainers || []; }\n if (o.isContainer === void 0) { o.isContainer = never; }\n if (o.copy === void 0) { o.copy = false; }\n if (o.copySortSource === void 0) { o.copySortSource = false; }\n if (o.revertOnSpill === void 0) { o.revertOnSpill = false; }\n if (o.removeOnSpill === void 0) { o.removeOnSpill = false; }\n if (o.direction === void 0) { o.direction = 'vertical'; }\n if (o.ignoreInputTextSelection === void 0) { o.ignoreInputTextSelection = true; }\n if (o.mirrorContainer === void 0) { o.mirrorContainer = doc.body; }\n\n var drake = emitter({\n containers: o.containers,\n start: manualStart,\n end: end,\n cancel: cancel,\n remove: remove,\n destroy: destroy,\n canMove: canMove,\n dragging: false\n });\n\n if (o.removeOnSpill === true) {\n drake.on('over', spillOver).on('out', spillOut);\n }\n\n events();\n\n return drake;\n\n function isContainer (el) {\n return drake.containers.indexOf(el) !== -1 || o.isContainer(el);\n }\n\n function events (remove) {\n var op = remove ? 'remove' : 'add';\n touchy(documentElement, op, 'mousedown', grab);\n touchy(documentElement, op, 'mouseup', release);\n }\n\n function eventualMovements (remove) {\n var op = remove ? 'remove' : 'add';\n touchy(documentElement, op, 'mousemove', startBecauseMouseMoved);\n }\n\n function movements (remove) {\n var op = remove ? 'remove' : 'add';\n crossvent[op](documentElement, 'selectstart', preventGrabbed); // IE8\n crossvent[op](documentElement, 'click', preventGrabbed);\n }\n\n function destroy () {\n events(true);\n release({});\n }\n\n function preventGrabbed (e) {\n if (_grabbed) {\n e.preventDefault();\n }\n }\n\n function grab (e) {\n _moveX = e.clientX;\n _moveY = e.clientY;\n\n var ignore = whichMouseButton(e) !== 1 || e.metaKey || e.ctrlKey;\n if (ignore) {\n return; // we only care about honest-to-god left clicks and touch events\n }\n var item = e.target;\n var context = canStart(item);\n if (!context) {\n return;\n }\n _grabbed = context;\n eventualMovements();\n if (e.type === 'mousedown') {\n if (isInput(item)) { // see also: https://github.com/bevacqua/dragula/issues/208\n item.focus(); // fixes https://github.com/bevacqua/dragula/issues/176\n } else {\n e.preventDefault(); // fixes https://github.com/bevacqua/dragula/issues/155\n }\n }\n }\n\n function startBecauseMouseMoved (e) {\n if (!_grabbed) {\n return;\n }\n if (whichMouseButton(e) === 0) {\n release({});\n return; // when text is selected on an input and then dragged, mouseup doesn't fire. this is our only hope\n }\n\n // truthy check fixes #239, equality fixes #207, fixes #501\n if ((e.clientX !== void 0 && Math.abs(e.clientX - _moveX) <= (o.slideFactorX || 0)) &&\n (e.clientY !== void 0 && Math.abs(e.clientY - _moveY) <= (o.slideFactorY || 0))) {\n return;\n }\n\n if (o.ignoreInputTextSelection) {\n var clientX = getCoord('clientX', e) || 0;\n var clientY = getCoord('clientY', e) || 0;\n var elementBehindCursor = doc.elementFromPoint(clientX, clientY);\n if (isInput(elementBehindCursor)) {\n return;\n }\n }\n\n var grabbed = _grabbed; // call to end() unsets _grabbed\n eventualMovements(true);\n movements();\n end();\n start(grabbed);\n\n var offset = getOffset(_item);\n _offsetX = getCoord('pageX', e) - offset.left;\n _offsetY = getCoord('pageY', e) - offset.top;\n\n classes.add(_copy || _item, 'gu-transit');\n renderMirrorImage();\n drag(e);\n }\n\n function canStart (item) {\n if (drake.dragging && _mirror) {\n return;\n }\n if (isContainer(item)) {\n return; // don't drag container itself\n }\n var handle = item;\n while (getParent(item) && isContainer(getParent(item)) === false) {\n if (o.invalid(item, handle)) {\n return;\n }\n item = getParent(item); // drag target should be a top element\n if (!item) {\n return;\n }\n }\n var source = getParent(item);\n if (!source) {\n return;\n }\n if (o.invalid(item, handle)) {\n return;\n }\n\n var movable = o.moves(item, source, handle, nextEl(item));\n if (!movable) {\n return;\n }\n\n return {\n item: item,\n source: source\n };\n }\n\n function canMove (item) {\n return !!canStart(item);\n }\n\n function manualStart (item) {\n var context = canStart(item);\n if (context) {\n start(context);\n }\n }\n\n function start (context) {\n if (isCopy(context.item, context.source)) {\n _copy = context.item.cloneNode(true);\n drake.emit('cloned', _copy, context.item, 'copy');\n }\n\n _source = context.source;\n _item = context.item;\n _initialSibling = _currentSibling = nextEl(context.item);\n\n drake.dragging = true;\n drake.emit('drag', _item, _source);\n }\n\n function invalidTarget () {\n return false;\n }\n\n function end () {\n if (!drake.dragging) {\n return;\n }\n var item = _copy || _item;\n drop(item, getParent(item));\n }\n\n function ungrab () {\n _grabbed = false;\n eventualMovements(true);\n movements(true);\n }\n\n function release (e) {\n ungrab();\n\n if (!drake.dragging) {\n return;\n }\n var item = _copy || _item;\n var clientX = getCoord('clientX', e) || 0;\n var clientY = getCoord('clientY', e) || 0;\n var elementBehindCursor = getElementBehindPoint(_mirror, clientX, clientY);\n var dropTarget = findDropTarget(elementBehindCursor, clientX, clientY);\n if (dropTarget && ((_copy && o.copySortSource) || (!_copy || dropTarget !== _source))) {\n drop(item, dropTarget);\n } else if (o.removeOnSpill) {\n remove();\n } else {\n cancel();\n }\n }\n\n function drop (item, target) {\n var parent = getParent(item);\n if (_copy && o.copySortSource && target === _source) {\n parent.removeChild(_item);\n }\n if (isInitialPlacement(target)) {\n drake.emit('cancel', item, _source, _source);\n } else {\n drake.emit('drop', item, target, _source, _currentSibling);\n }\n cleanup();\n }\n\n function remove () {\n if (!drake.dragging) {\n return;\n }\n var item = _copy || _item;\n var parent = getParent(item);\n if (parent) {\n parent.removeChild(item);\n }\n drake.emit(_copy ? 'cancel' : 'remove', item, parent, _source);\n cleanup();\n }\n\n function cancel (revert) {\n if (!drake.dragging) {\n return;\n }\n var reverts = arguments.length > 0 ? revert : o.revertOnSpill;\n var item = _copy || _item;\n var parent = getParent(item);\n var initial = isInitialPlacement(parent);\n if (initial === false && reverts) {\n if (_copy) {\n if (parent) {\n parent.removeChild(_copy);\n }\n } else {\n _source.insertBefore(item, _initialSibling);\n }\n }\n if (initial || reverts) {\n drake.emit('cancel', item, _source, _source);\n } else {\n drake.emit('drop', item, parent, _source, _currentSibling);\n }\n cleanup();\n }\n\n function cleanup () {\n var item = _copy || _item;\n ungrab();\n removeMirrorImage();\n if (item) {\n classes.rm(item, 'gu-transit');\n }\n if (_renderTimer) {\n clearTimeout(_renderTimer);\n }\n drake.dragging = false;\n if (_lastDropTarget) {\n drake.emit('out', item, _lastDropTarget, _source);\n }\n drake.emit('dragend', item);\n _source = _item = _copy = _initialSibling = _currentSibling = _renderTimer = _lastDropTarget = null;\n }\n\n function isInitialPlacement (target, s) {\n var sibling;\n if (s !== void 0) {\n sibling = s;\n } else if (_mirror) {\n sibling = _currentSibling;\n } else {\n sibling = nextEl(_copy || _item);\n }\n return target === _source && sibling === _initialSibling;\n }\n\n function findDropTarget (elementBehindCursor, clientX, clientY) {\n var target = elementBehindCursor;\n while (target && !accepted()) {\n target = getParent(target);\n }\n return target;\n\n function accepted () {\n var droppable = isContainer(target);\n if (droppable === false) {\n return false;\n }\n\n var immediate = getImmediateChild(target, elementBehindCursor);\n var reference = getReference(target, immediate, clientX, clientY);\n var initial = isInitialPlacement(target, reference);\n if (initial) {\n return true; // should always be able to drop it right back where it was\n }\n return o.accepts(_item, target, _source, reference);\n }\n }\n\n function drag (e) {\n if (!_mirror) {\n return;\n }\n e.preventDefault();\n\n var clientX = getCoord('clientX', e) || 0;\n var clientY = getCoord('clientY', e) || 0;\n var x = clientX - _offsetX;\n var y = clientY - _offsetY;\n\n _mirror.style.left = x + 'px';\n _mirror.style.top = y + 'px';\n\n var item = _copy || _item;\n var elementBehindCursor = getElementBehindPoint(_mirror, clientX, clientY);\n var dropTarget = findDropTarget(elementBehindCursor, clientX, clientY);\n var changed = dropTarget !== null && dropTarget !== _lastDropTarget;\n if (changed || dropTarget === null) {\n out();\n _lastDropTarget = dropTarget;\n over();\n }\n var parent = getParent(item);\n if (dropTarget === _source && _copy && !o.copySortSource) {\n if (parent) {\n parent.removeChild(item);\n }\n return;\n }\n var reference;\n var immediate = getImmediateChild(dropTarget, elementBehindCursor);\n if (immediate !== null) {\n reference = getReference(dropTarget, immediate, clientX, clientY);\n } else if (o.revertOnSpill === true && !_copy) {\n reference = _initialSibling;\n dropTarget = _source;\n } else {\n if (_copy && parent) {\n parent.removeChild(item);\n }\n return;\n }\n if (\n (reference === null && changed) ||\n reference !== item &&\n reference !== nextEl(item)\n ) {\n _currentSibling = reference;\n dropTarget.insertBefore(item, reference);\n drake.emit('shadow', item, dropTarget, _source);\n }\n function moved (type) { drake.emit(type, item, _lastDropTarget, _source); }\n function over () { if (changed) { moved('over'); } }\n function out () { if (_lastDropTarget) { moved('out'); } }\n }\n\n function spillOver (el) {\n classes.rm(el, 'gu-hide');\n }\n\n function spillOut (el) {\n if (drake.dragging) { classes.add(el, 'gu-hide'); }\n }\n\n function renderMirrorImage () {\n if (_mirror) {\n return;\n }\n var rect = _item.getBoundingClientRect();\n _mirror = _item.cloneNode(true);\n _mirror.style.width = getRectWidth(rect) + 'px';\n _mirror.style.height = getRectHeight(rect) + 'px';\n classes.rm(_mirror, 'gu-transit');\n classes.add(_mirror, 'gu-mirror');\n o.mirrorContainer.appendChild(_mirror);\n touchy(documentElement, 'add', 'mousemove', drag);\n classes.add(o.mirrorContainer, 'gu-unselectable');\n drake.emit('cloned', _mirror, _item, 'mirror');\n }\n\n function removeMirrorImage () {\n if (_mirror) {\n classes.rm(o.mirrorContainer, 'gu-unselectable');\n touchy(documentElement, 'remove', 'mousemove', drag);\n getParent(_mirror).removeChild(_mirror);\n _mirror = null;\n }\n }\n\n function getImmediateChild (dropTarget, target) {\n var immediate = target;\n while (immediate !== dropTarget && getParent(immediate) !== dropTarget) {\n immediate = getParent(immediate);\n }\n if (immediate === documentElement) {\n return null;\n }\n return immediate;\n }\n\n function getReference (dropTarget, target, x, y) {\n var horizontal = o.direction === 'horizontal';\n var reference = target !== dropTarget ? inside() : outside();\n return reference;\n\n function outside () { // slower, but able to figure out any position\n var len = dropTarget.children.length;\n var i;\n var el;\n var rect;\n for (i = 0; i < len; i++) {\n el = dropTarget.children[i];\n rect = el.getBoundingClientRect();\n if (horizontal && (rect.left + rect.width / 2) > x) { return el; }\n if (!horizontal && (rect.top + rect.height / 2) > y) { return el; }\n }\n return null;\n }\n\n function inside () { // faster, but only available if dropped inside a child element\n var rect = target.getBoundingClientRect();\n if (horizontal) {\n return resolve(x > rect.left + getRectWidth(rect) / 2);\n }\n return resolve(y > rect.top + getRectHeight(rect) / 2);\n }\n\n function resolve (after) {\n return after ? nextEl(target) : target;\n }\n }\n\n function isCopy (item, container) {\n return typeof o.copy === 'boolean' ? o.copy : o.copy(item, container);\n }\n}\n\nfunction touchy (el, op, type, fn) {\n var touch = {\n mouseup: 'touchend',\n mousedown: 'touchstart',\n mousemove: 'touchmove'\n };\n var pointers = {\n mouseup: 'pointerup',\n mousedown: 'pointerdown',\n mousemove: 'pointermove'\n };\n var microsoft = {\n mouseup: 'MSPointerUp',\n mousedown: 'MSPointerDown',\n mousemove: 'MSPointerMove'\n };\n if (global.navigator.pointerEnabled) {\n crossvent[op](el, pointers[type], fn);\n } else if (global.navigator.msPointerEnabled) {\n crossvent[op](el, microsoft[type], fn);\n } else {\n crossvent[op](el, touch[type], fn);\n crossvent[op](el, type, fn);\n }\n}\n\nfunction whichMouseButton (e) {\n if (e.touches !== void 0) { return e.touches.length; }\n if (e.which !== void 0 && e.which !== 0) { return e.which; } // see https://github.com/bevacqua/dragula/issues/261\n if (e.buttons !== void 0) { return e.buttons; }\n var button = e.button;\n if (button !== void 0) { // see https://github.com/jquery/jquery/blob/99e8ff1baa7ae341e94bb89c3e84570c7c3ad9ea/src/event.js#L573-L575\n return button & 1 ? 1 : button & 2 ? 3 : (button & 4 ? 2 : 0);\n }\n}\n\nfunction getOffset (el) {\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + getScroll('scrollLeft', 'pageXOffset'),\n top: rect.top + getScroll('scrollTop', 'pageYOffset')\n };\n}\n\nfunction getScroll (scrollProp, offsetProp) {\n if (typeof global[offsetProp] !== 'undefined') {\n return global[offsetProp];\n }\n if (documentElement.clientHeight) {\n return documentElement[scrollProp];\n }\n return doc.body[scrollProp];\n}\n\nfunction getElementBehindPoint (point, x, y) {\n point = point || {};\n var state = point.className || '';\n var el;\n point.className += ' gu-hide';\n el = doc.elementFromPoint(x, y);\n point.className = state;\n return el;\n}\n\nfunction never () { return false; }\nfunction always () { return true; }\nfunction getRectWidth (rect) { return rect.width || (rect.right - rect.left); }\nfunction getRectHeight (rect) { return rect.height || (rect.bottom - rect.top); }\nfunction getParent (el) { return el.parentNode === doc ? null : el.parentNode; }\nfunction isInput (el) { return el.tagName === 'INPUT' || el.tagName === 'TEXTAREA' || el.tagName === 'SELECT' || isEditable(el); }\nfunction isEditable (el) {\n if (!el) { return false; } // no parents were editable\n if (el.contentEditable === 'false') { return false; } // stop the lookup\n if (el.contentEditable === 'true') { return true; } // found a contentEditable element in the chain\n return isEditable(getParent(el)); // contentEditable is set to 'inherit'\n}\n\nfunction nextEl (el) {\n return el.nextElementSibling || manually();\n function manually () {\n var sibling = el;\n do {\n sibling = sibling.nextSibling;\n } while (sibling && sibling.nodeType !== 1);\n return sibling;\n }\n}\n\nfunction getEventHost (e) {\n // on touchend event, we have to use `e.changedTouches`\n // see http://stackoverflow.com/questions/7192563/touchend-event-properties\n // see https://github.com/bevacqua/dragula/issues/34\n if (e.targetTouches && e.targetTouches.length) {\n return e.targetTouches[0];\n }\n if (e.changedTouches && e.changedTouches.length) {\n return e.changedTouches[0];\n }\n return e;\n}\n\nfunction getCoord (coord, e) {\n var host = getEventHost(e);\n var missMap = {\n pageX: 'clientX', // IE8\n pageY: 'clientY' // IE8\n };\n if (coord in missMap && !(coord in host) && missMap[coord] in host) {\n coord = missMap[coord];\n }\n return host[coord];\n}\n\nmodule.exports = dragula;\n","//--------------------------------------------------//\n// vue3-dragula //\n// Created by basicx-StrgV //\n// https://github.com/basicx-StrgV/ //\n//--------------------------------------------------//\n// Based on 'vue-dragula' by Astray-git //\n// https://github.com/Astray-git //\n//--------------------------------------------------//\nimport dragula from 'dragula';\nimport mitt from 'mitt';\nimport { nextTick } from 'vue';\nif (!dragula) {\n throw new Error('[vue3-dragula] Cannot locate package: dragula');\n}\nif (!mitt) {\n throw new Error('[vue3-dragula] Cannot locate package: mitt');\n}\nexport const VueDragula = {\n install(app, options) {\n vueDragula(app);\n }\n};\nexport class Bag {\n constructor(name, drake) {\n this.drakeRegistert = false;\n this.initEvents = false;\n this.models = [];\n this.name = name;\n this.drake = drake;\n }\n destroy() {\n this.drakeRegistert = false;\n this.initEvents = false;\n this.models.splice(0, this.models.length);\n if (this.drake != null) {\n this.drake.destroy();\n }\n this.drake = null;\n }\n}\nexport class VueDragulaGlobal {\n}\nfunction vueDragula(vueApp) {\n const service = new DragulaService();\n VueDragulaGlobal.eventBus = service.eventBus;\n VueDragulaGlobal.find = service.find.bind(service);\n VueDragulaGlobal.options = service.setOptions.bind(service);\n VueDragulaGlobal.injectOptions = service.injectOptions.bind(service);\n vueApp.directive('dragula', {\n beforeMount(container, binding, vnode) {\n let name = 'globalBag';\n let drake;\n const bagName = vnode.props ? vnode.props['bag'] : null;\n if (bagName != null && bagName.trim().length !== 0) {\n name = bagName;\n }\n let bag = service.find(name);\n if (bag != null) {\n drake = bag.drake;\n if (drake == null) {\n return;\n }\n drake.containers.push(container);\n updateModelBinding(container, binding, vnode);\n return;\n }\n drake = dragula({ containers: [container] });\n bag = service.add(name, drake);\n updateModelBinding(container, binding, vnode);\n service.handleModels(name, bag);\n },\n updated(container, binding, vnode, oldVnode) {\n updateModelBinding(container, binding, vnode);\n },\n unmounted(container, binding, vnode) {\n let unbindBagName = 'globalBag';\n const bagName = vnode.props ? vnode.props['bag'] : null;\n if (bagName != null && bagName.trim().length !== 0) {\n unbindBagName = bagName;\n }\n let bag = service.find(unbindBagName);\n if (bag == null || bag.drake == null) {\n return;\n }\n let containerIndex = bag.drake.containers.indexOf(container);\n if (containerIndex > -1) {\n bag.drake.containers.splice(containerIndex, 1);\n }\n if (bag.drake.containers.length === 0) {\n service.destroy(unbindBagName);\n }\n }\n });\n function updateModelBinding(container, binding, vnode) {\n let name = 'globalBag';\n const newValue = vnode ? binding.value : null;\n if (newValue == null) {\n return;\n }\n const bagName = vnode.props ? vnode.props['bag'] : null;\n if (bagName != null && bagName.trim().length !== 0) {\n name = bagName;\n }\n const bag = service.find(name);\n if (bag == null) {\n return;\n }\n let modelContainer = service.findModelContainerByContainer(container, bag);\n if (modelContainer) {\n modelContainer.model = newValue;\n }\n else {\n bag.models.push({\n model: newValue,\n container: container\n });\n }\n }\n}\nclass DragulaService {\n constructor() {\n this.bags = [];\n this.eventBus = mitt();\n this.events = [\n 'cancel',\n 'cloned',\n 'drag',\n 'dragend',\n 'drop',\n 'out',\n 'over',\n 'remove',\n 'shadow',\n 'dropModel',\n 'removeModel'\n ];\n }\n add(name, drake) {\n let bag = this.find(name);\n if (bag != null) {\n throw new Error('[vue3-dragula] Bag named: \"' + name + '\" already exists.');\n }\n bag = new Bag(name, drake);\n this.bags.push(bag);\n this.handleModels(name, bag);\n if (!bag.initEvents) {\n this.setupEvents(bag);\n }\n return bag;\n }\n find(name) {\n let bags = this.bags;\n for (const bag of bags) {\n if (bag.name === name) {\n return bag;\n }\n }\n return null;\n }\n handleModels(name, bag) {\n // Cancel if drake object does not exist or if it is already registert\n if (bag.drake == null || bag.drakeRegistert) {\n return;\n }\n let dragElm;\n let dragIndex;\n let isManualCancel = false;\n // On Remove event handler\n bag.drake.on('remove', (el, container, source) => {\n if (bag.drake == null) {\n return;\n }\n let sourceModel = this.findModelForContainer(source, bag);\n sourceModel.splice(dragIndex, 1);\n isManualCancel = true;\n bag.drake.cancel(true);\n // Emit removeModel event\n this.eventBus.emit('removeModel', [name, el, source, dragIndex]);\n });\n // On Drag event handler\n bag.drake.on('drag', (el, source) => {\n dragElm = el;\n dragIndex = this.domIndexOf(el, source);\n });\n // On Drop event handler\n bag.drake.on('drop', (dropElm, target, source) => {\n if (bag.drake == null || target == null) {\n return;\n }\n let dropIndex = this.domIndexOf(dropElm, target);\n let sourceModel = this.findModelForContainer(source, bag);\n let dropElmModel = null;\n if (target === source) {\n nextTick(() => {\n sourceModel.splice(dropIndex, 0, sourceModel.splice(dragIndex, 1)[0]);\n });\n dropElmModel = sourceModel[dropIndex];\n }\n else {\n let notCopy = dragElm === dropElm;\n let targetModel = this.findModelForContainer(target, bag);\n dropElmModel = notCopy ? sourceModel[dragIndex] : this.cloneObject(sourceModel[dragIndex]);\n if (notCopy) {\n nextTick(() => {\n sourceModel.splice(dragIndex, 1);\n });\n }\n nextTick(() => {\n targetModel.splice(dropIndex, 0, dropElmModel);\n });\n }\n isManualCancel = true;\n bag.drake.cancel(true);\n // Emit dropModel event \n this.eventBus.emit('dropModel', [name, dropElm, dropElmModel, target, source, dropIndex]);\n });\n // On Cancel event handler\n bag.drake.on('cancel', (dropElm, container, source) => {\n // Only handle the cancel if it was triggerd by dragula and not from this library\n if (bag.drake == null || isManualCancel) {\n isManualCancel = false;\n return;\n }\n let sourceModel = this.findModelForContainer(source, bag);\n let dropElmModel = sourceModel[dragIndex];\n // Emit cancelModel event \n this.eventBus.emit('cancelModel', [name, dropElm, dropElmModel, source]);\n });\n // Set registration flag\n bag.drakeRegistert = true;\n }\n destroy(name) {\n let bag = this.find(name);\n if (bag == null) {\n return;\n }\n let bagIndex = this.bags.indexOf(bag);\n this.bags.splice(bagIndex, 1);\n bag.destroy();\n }\n setOptions(name, options) {\n let bag = this.add(name, dragula(options));\n if (bag.drake != null) {\n this.handleModels(name, bag);\n }\n }\n injectOptions(name, options) {\n let bag = this.find(name);\n if (bag == null) {\n throw new Error('[vue3-dragula] Bag named: \"' + name + '\" does not exists.');\n }\n let currentContainers = [];\n if (bag.drake != null) {\n currentContainers = bag.drake.containers;\n bag.drake.destroy();\n bag.drake = null;\n bag.drakeRegistert = false;\n bag.initEvents = false;\n }\n options.containers = currentContainers;\n bag.drake = dragula(options);\n this.handleModels(name, bag);\n this.setupEvents(bag);\n }\n setupEvents(bag) {\n bag.initEvents = true;\n let _this = this;\n let emitter = (type) => {\n function replicate() {\n let args = Array.prototype.slice.call(arguments);\n _this.eventBus.emit(type, [bag.name].concat(args));\n }\n if (bag.drake != null) {\n bag.drake.on(type, replicate);\n }\n };\n this.events.forEach(emitter);\n }\n domIndexOf(child, parent) {\n return Array.prototype.indexOf.call(parent.children, child);\n }\n findModelForContainer(container, bag) {\n var _a;\n return (_a = this.findModelContainerByContainer(container, bag)) === null || _a === void 0 ? void 0 : _a.model;\n }\n findModelContainerByContainer(container, bag) {\n return bag.models.find((model) => model.container === container);\n }\n cloneObject(object) {\n return JSON.parse(JSON.stringify(object));\n }\n}\n//# sourceMappingURL=vue3-dragula.js.map"],"names":["cache","start","end","lookupClass","className","cached","addClass","el","current","rmClass","classes","emitter","require$$0","crossvent","require$$1","require$$2","doc","documentElement","dragula","initialContainers","options","len","_mirror","_source","_item","_offsetX","_offsetY","_moveX","_moveY","_initialSibling","_currentSibling","_copy","_renderTimer","_lastDropTarget","_grabbed","o","always","invalidTarget","never","drake","manualStart","cancel","remove","destroy","canMove","spillOver","spillOut","events","isContainer","op","touchy","grab","release","eventualMovements","startBecauseMouseMoved","movements","preventGrabbed","ignore","whichMouseButton","item","context","canStart","isInput","clientX","getCoord","clientY","elementBehindCursor","grabbed","offset","getOffset","renderMirrorImage","drag","handle","getParent","source","movable","nextEl","isCopy","drop","ungrab","getElementBehindPoint","dropTarget","findDropTarget","target","parent","isInitialPlacement","cleanup","revert","reverts","initial","removeMirrorImage","s","sibling","accepted","droppable","immediate","getImmediateChild","reference","getReference","x","y","changed","out","over","moved","type","rect","getRectWidth","getRectHeight","horizontal","inside","outside","i","resolve","after","container","fn","touch","pointers","microsoft","global","e","button","getScroll","scrollProp","offsetProp","point","state","isEditable","manually","getEventHost","coord","host","missMap","dragula_1","mitt","VueDragula","app","vueDragula","Bag","name","VueDragulaGlobal","vueApp","service","DragulaService","binding","vnode","bagName","bag","updateModelBinding","oldVnode","unbindBagName","containerIndex","newValue","modelContainer","bags","dragElm","dragIndex","isManualCancel","dropElm","dropIndex","sourceModel","dropElmModel","nextTick","notCopy","targetModel","bagIndex","currentContainers","_this","replicate","args","child","_a","model","object"],"mappings":"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","x_google_ignoreList":[0,1,2]}