{"version":3,"sources":["node_modules/atoa/atoa.js","node_modules/ticky/ticky-browser.js","node_modules/contra/debounce.js","node_modules/contra/emitter.js","node_modules/custom-event/index.js","node_modules/crossvent/src/eventmap.js","node_modules/crossvent/src/crossvent.js","node_modules/dragula/classes.js","node_modules/dragula/dragula.js","node_modules/ng2-dragula/fesm2020/ng2-dragula.mjs"],"sourcesContent":["module.exports = function atoa(a, n) {\n return Array.prototype.slice.call(a, n);\n};","var si = typeof setImmediate === 'function',\n tick;\nif (si) {\n tick = function (fn) {\n setImmediate(fn);\n };\n} else {\n tick = function (fn) {\n setTimeout(fn, 0);\n };\n}\nmodule.exports = tick;","'use strict';\n\nvar ticky = require('ticky');\nmodule.exports = function debounce(fn, args, ctx) {\n if (!fn) {\n return;\n }\n ticky(function run() {\n fn.apply(ctx || null, args || []);\n });\n};","'use strict';\n\nvar atoa = require('atoa');\nvar debounce = require('./debounce');\nmodule.exports = function emitter(thing, options) {\n var opts = options || {};\n var evt = {};\n if (thing === undefined) {\n thing = {};\n }\n thing.on = function (type, fn) {\n if (!evt[type]) {\n evt[type] = [fn];\n } else {\n evt[type].push(fn);\n }\n return thing;\n };\n thing.once = function (type, fn) {\n fn._once = true; // thing.off(fn) still works!\n thing.on(type, fn);\n return thing;\n };\n thing.off = function (type, fn) {\n var c = arguments.length;\n if (c === 1) {\n delete evt[type];\n } else if (c === 0) {\n evt = {};\n } else {\n var et = evt[type];\n if (!et) {\n return thing;\n }\n et.splice(et.indexOf(fn), 1);\n }\n return thing;\n };\n thing.emit = function () {\n var args = atoa(arguments);\n return thing.emitterSnapshot(args.shift()).apply(this, args);\n };\n thing.emitterSnapshot = function (type) {\n var et = (evt[type] || []).slice(0);\n return function () {\n var args = atoa(arguments);\n var ctx = this || thing;\n if (type === 'error' && opts.throws !== false && !et.length) {\n throw args.length === 1 ? args[0] : args;\n }\n et.forEach(function emitter(listen) {\n if (opts.async) {\n debounce(listen, args, ctx);\n } else {\n listen.apply(ctx, args);\n }\n if (listen._once) {\n thing.off(type, listen);\n }\n });\n return thing;\n };\n };\n return thing;\n};","var NativeCustomEvent = global.CustomEvent;\nfunction useNative() {\n try {\n var p = new NativeCustomEvent('cat', {\n detail: {\n foo: 'bar'\n }\n });\n return 'cat' === p.type && 'bar' === p.detail.foo;\n } catch (e) {}\n return false;\n}\n\n/**\n * Cross-browser `CustomEvent` constructor.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent\n *\n * @public\n */\n\nmodule.exports = useNative() ? NativeCustomEvent :\n// IE >= 9\n'undefined' !== typeof document && 'function' === typeof document.createEvent ? function CustomEvent(type, params) {\n var e = document.createEvent('CustomEvent');\n if (params) {\n e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);\n } else {\n e.initCustomEvent(type, false, false, void 0);\n }\n return e;\n} :\n// IE <= 8\nfunction CustomEvent(type, params) {\n var e = document.createEventObject();\n e.type = type;\n if (params) {\n e.bubbles = Boolean(params.bubbles);\n e.cancelable = Boolean(params.cancelable);\n e.detail = params.detail;\n } else {\n e.bubbles = false;\n e.cancelable = false;\n e.detail = void 0;\n }\n return e;\n};","'use strict';\n\nvar eventmap = [];\nvar eventname = '';\nvar ron = /^on/;\nfor (eventname in global) {\n if (ron.test(eventname)) {\n eventmap.push(eventname.slice(2));\n }\n}\nmodule.exports = eventmap;","'use strict';\n\nvar customEvent = require('custom-event');\nvar eventmap = require('./eventmap');\nvar doc = global.document;\nvar addEvent = addEventEasy;\nvar removeEvent = removeEventEasy;\nvar hardCache = [];\nif (!global.addEventListener) {\n addEvent = addEventHard;\n removeEvent = removeEventHard;\n}\nmodule.exports = {\n add: addEvent,\n remove: removeEvent,\n fabricate: fabricateEvent\n};\nfunction addEventEasy(el, type, fn, capturing) {\n return el.addEventListener(type, fn, capturing);\n}\nfunction addEventHard(el, type, fn) {\n return el.attachEvent('on' + type, wrap(el, type, fn));\n}\nfunction removeEventEasy(el, type, fn, capturing) {\n return el.removeEventListener(type, fn, capturing);\n}\nfunction removeEventHard(el, type, fn) {\n var listener = unwrap(el, type, fn);\n if (listener) {\n return el.detachEvent('on' + type, listener);\n }\n}\nfunction fabricateEvent(el, type, model) {\n var e = eventmap.indexOf(type) === -1 ? makeCustomEvent() : makeClassicEvent();\n if (el.dispatchEvent) {\n el.dispatchEvent(e);\n } else {\n el.fireEvent('on' + type, e);\n }\n function makeClassicEvent() {\n var e;\n if (doc.createEvent) {\n e = doc.createEvent('Event');\n e.initEvent(type, true, true);\n } else if (doc.createEventObject) {\n e = doc.createEventObject();\n }\n return e;\n }\n function makeCustomEvent() {\n return new customEvent(type, {\n detail: model\n });\n }\n}\nfunction wrapperFactory(el, type, fn) {\n return function wrapper(originalEvent) {\n var e = originalEvent || global.event;\n e.target = e.target || e.srcElement;\n e.preventDefault = e.preventDefault || function preventDefault() {\n e.returnValue = false;\n };\n e.stopPropagation = e.stopPropagation || function stopPropagation() {\n e.cancelBubble = true;\n };\n e.which = e.which || e.keyCode;\n fn.call(el, e);\n };\n}\nfunction wrap(el, type, fn) {\n var wrapper = unwrap(el, type, fn) || wrapperFactory(el, type, fn);\n hardCache.push({\n wrapper: wrapper,\n element: el,\n type: type,\n fn: fn\n });\n return wrapper;\n}\nfunction unwrap(el, type, fn) {\n var i = find(el, type, fn);\n if (i) {\n var wrapper = hardCache[i].wrapper;\n hardCache.splice(i, 1); // free up a tad of memory\n return wrapper;\n }\n}\nfunction find(el, type, fn) {\n var i, item;\n for (i = 0; i < hardCache.length; i++) {\n item = hardCache[i];\n if (item.element === el && item.type === type && item.fn === fn) {\n return i;\n }\n }\n}","'use strict';\n\nvar cache = {};\nvar start = '(?:^|\\\\s)';\nvar end = '(?:\\\\s|$)';\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}\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}\nfunction rmClass(el, className) {\n el.className = el.className.replace(lookupClass(className), ' ').trim();\n}\nmodule.exports = {\n add: addClass,\n rm: rmClass\n};","'use strict';\n\nvar emitter = require('contra/emitter');\nvar crossvent = require('crossvent');\nvar classes = require('./classes');\nvar doc = document;\nvar documentElement = doc.documentElement;\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) {\n o.moves = always;\n }\n if (o.accepts === void 0) {\n o.accepts = always;\n }\n if (o.invalid === void 0) {\n o.invalid = invalidTarget;\n }\n if (o.containers === void 0) {\n o.containers = initialContainers || [];\n }\n if (o.isContainer === void 0) {\n o.isContainer = never;\n }\n if (o.copy === void 0) {\n o.copy = false;\n }\n if (o.copySortSource === void 0) {\n o.copySortSource = false;\n }\n if (o.revertOnSpill === void 0) {\n o.revertOnSpill = false;\n }\n if (o.removeOnSpill === void 0) {\n o.removeOnSpill = false;\n }\n if (o.direction === void 0) {\n o.direction = 'vertical';\n }\n if (o.ignoreInputTextSelection === void 0) {\n o.ignoreInputTextSelection = true;\n }\n if (o.mirrorContainer === void 0) {\n 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 if (o.removeOnSpill === true) {\n drake.on('over', spillOver).on('out', spillOut);\n }\n events();\n return drake;\n function isContainer(el) {\n return drake.containers.indexOf(el) !== -1 || o.isContainer(el);\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 function eventualMovements(remove) {\n var op = remove ? 'remove' : 'add';\n touchy(documentElement, op, 'mousemove', startBecauseMouseMoved);\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 function destroy() {\n events(true);\n release({});\n }\n function preventGrabbed(e) {\n if (_grabbed) {\n e.preventDefault();\n }\n }\n function grab(e) {\n _moveX = e.clientX;\n _moveY = e.clientY;\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)) {\n // 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 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) && e.clientY !== void 0 && Math.abs(e.clientY - _moveY) <= (o.slideFactorY || 0)) {\n return;\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 var grabbed = _grabbed; // call to end() unsets _grabbed\n eventualMovements(true);\n movements();\n end();\n start(grabbed);\n var offset = getOffset(_item);\n _offsetX = getCoord('pageX', e) - offset.left;\n _offsetY = getCoord('pageY', e) - offset.top;\n classes.add(_copy || _item, 'gu-transit');\n renderMirrorImage();\n drag(e);\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 var movable = o.moves(item, source, handle, nextEl(item));\n if (!movable) {\n return;\n }\n return {\n item: item,\n source: source\n };\n }\n function canMove(item) {\n return !!canStart(item);\n }\n function manualStart(item) {\n var context = canStart(item);\n if (context) {\n start(context);\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 _source = context.source;\n _item = context.item;\n _initialSibling = _currentSibling = nextEl(context.item);\n drake.dragging = true;\n drake.emit('drag', _item, _source);\n }\n function invalidTarget() {\n return false;\n }\n function end() {\n if (!drake.dragging) {\n return;\n }\n var item = _copy || _item;\n drop(item, getParent(item));\n }\n function ungrab() {\n _grabbed = false;\n eventualMovements(true);\n movements(true);\n }\n function release(e) {\n ungrab();\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 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 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 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 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 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 function findDropTarget(elementBehindCursor, clientX, clientY) {\n var target = elementBehindCursor;\n while (target && !accepted()) {\n target = getParent(target);\n }\n return target;\n function accepted() {\n var droppable = isContainer(target);\n if (droppable === false) {\n return false;\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 function drag(e) {\n if (!_mirror) {\n return;\n }\n e.preventDefault();\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 _mirror.style.left = x + 'px';\n _mirror.style.top = y + 'px';\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 (reference === null && changed || reference !== item && reference !== nextEl(item)) {\n _currentSibling = reference;\n dropTarget.insertBefore(item, reference);\n drake.emit('shadow', item, dropTarget, _source);\n }\n function moved(type) {\n drake.emit(type, item, _lastDropTarget, _source);\n }\n function over() {\n if (changed) {\n moved('over');\n }\n }\n function out() {\n if (_lastDropTarget) {\n moved('out');\n }\n }\n }\n function spillOver(el) {\n classes.rm(el, 'gu-hide');\n }\n function spillOut(el) {\n if (drake.dragging) {\n 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 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 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 function getReference(dropTarget, target, x, y) {\n var horizontal = o.direction === 'horizontal';\n var reference = target !== dropTarget ? inside() : outside();\n return reference;\n function outside() {\n // 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) {\n return el;\n }\n if (!horizontal && rect.top + rect.height / 2 > y) {\n return el;\n }\n }\n return null;\n }\n function inside() {\n // 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 function resolve(after) {\n return after ? nextEl(target) : target;\n }\n }\n function isCopy(item, container) {\n return typeof o.copy === 'boolean' ? o.copy : o.copy(item, container);\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}\nfunction whichMouseButton(e) {\n if (e.touches !== void 0) {\n return e.touches.length;\n }\n if (e.which !== void 0 && e.which !== 0) {\n return e.which;\n } // see https://github.com/bevacqua/dragula/issues/261\n if (e.buttons !== void 0) {\n return e.buttons;\n }\n var button = e.button;\n if (button !== void 0) {\n // 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}\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}\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}\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}\nfunction never() {\n return false;\n}\nfunction always() {\n return true;\n}\nfunction getRectWidth(rect) {\n return rect.width || rect.right - rect.left;\n}\nfunction getRectHeight(rect) {\n return rect.height || rect.bottom - rect.top;\n}\nfunction getParent(el) {\n return el.parentNode === doc ? null : el.parentNode;\n}\nfunction isInput(el) {\n return el.tagName === 'INPUT' || el.tagName === 'TEXTAREA' || el.tagName === 'SELECT' || isEditable(el);\n}\nfunction isEditable(el) {\n if (!el) {\n return false;\n } // no parents were editable\n if (el.contentEditable === 'false') {\n return false;\n } // stop the lookup\n if (el.contentEditable === 'true') {\n return true;\n } // found a contentEditable element in the chain\n return isEditable(getParent(el)); // contentEditable is set to 'inherit'\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}\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}\nfunction getCoord(coord, e) {\n var host = getEventHost(e);\n var missMap = {\n pageX: 'clientX',\n // 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}\nmodule.exports = dragula;","import * as i0 from '@angular/core';\nimport { Injectable, Optional, EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport * as dragulaExpt from 'dragula';\nclass Group {\n constructor(name, drake, options) {\n this.name = name;\n this.drake = drake;\n this.options = options;\n this.initEvents = false;\n }\n}\nvar EventTypes = /*#__PURE__*/function (EventTypes) {\n EventTypes[\"Cancel\"] = \"cancel\";\n EventTypes[\"Cloned\"] = \"cloned\";\n EventTypes[\"Drag\"] = \"drag\";\n EventTypes[\"DragEnd\"] = \"dragend\";\n EventTypes[\"Drop\"] = \"drop\";\n EventTypes[\"Out\"] = \"out\";\n EventTypes[\"Over\"] = \"over\";\n EventTypes[\"Remove\"] = \"remove\";\n EventTypes[\"Shadow\"] = \"shadow\";\n EventTypes[\"DropModel\"] = \"dropModel\";\n EventTypes[\"RemoveModel\"] = \"removeModel\";\n return EventTypes;\n}(EventTypes || {});\nconst AllEvents = Object.keys(EventTypes).map(k => EventTypes[k]);\nconst dragula = dragulaExpt.default || dragulaExpt;\nclass DrakeFactory {\n constructor(build = dragula) {\n this.build = build;\n }\n}\nconst filterEvent = (eventType, filterDragType, projector) => input => {\n return input.pipe(filter(({\n event,\n name\n }) => {\n return event === eventType && (filterDragType === undefined || name === filterDragType);\n }), map(({\n name,\n args\n }) => projector(name, args)));\n};\nconst elContainerSourceProjector = (name, [el, container, source]) => ({\n name,\n el,\n container,\n source\n});\nlet DragulaService = /*#__PURE__*/(() => {\n class DragulaService {\n constructor(drakeFactory) {\n this.drakeFactory = drakeFactory;\n this.groups = {};\n this.dispatch$ = new Subject();\n this.elContainerSource = eventType => groupName => this.dispatch$.pipe(filterEvent(eventType, groupName, elContainerSourceProjector));\n /* https://github.com/bevacqua/dragula#drakeon-events */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n this.cancel = this.elContainerSource(EventTypes.Cancel);\n // eslint-disable-next-line @typescript-eslint/member-ordering\n this.remove = this.elContainerSource(EventTypes.Remove);\n // eslint-disable-next-line @typescript-eslint/member-ordering\n this.shadow = this.elContainerSource(EventTypes.Shadow);\n // eslint-disable-next-line @typescript-eslint/member-ordering\n this.over = this.elContainerSource(EventTypes.Over);\n // eslint-disable-next-line @typescript-eslint/member-ordering\n this.out = this.elContainerSource(EventTypes.Out);\n this.drag = groupName => this.dispatch$.pipe(filterEvent(EventTypes.Drag, groupName, (name, [el, source]) => ({\n name,\n el,\n source\n })));\n this.dragend = groupName => this.dispatch$.pipe(filterEvent(EventTypes.DragEnd, groupName, (name, [el]) => ({\n name,\n el\n })));\n this.drop = groupName => this.dispatch$.pipe(filterEvent(EventTypes.Drop, groupName, (name, [el, target, source, sibling]) => {\n return {\n name,\n el,\n target,\n source,\n sibling\n };\n }));\n this.cloned = groupName => this.dispatch$.pipe(filterEvent(EventTypes.Cloned, groupName, (name, [clone, original, cloneType]) => {\n return {\n name,\n clone,\n original,\n cloneType\n };\n }));\n this.dropModel = groupName => this.dispatch$.pipe(filterEvent(EventTypes.DropModel, groupName, (name, [el, target, source, sibling, item, sourceModel, targetModel, sourceIndex, targetIndex]) => {\n return {\n name,\n el,\n target,\n source,\n sibling,\n item,\n sourceModel,\n targetModel,\n sourceIndex,\n targetIndex\n };\n }));\n this.removeModel = groupName => this.dispatch$.pipe(filterEvent(EventTypes.RemoveModel, groupName, (name, [el, container, source, item, sourceModel, sourceIndex]) => {\n return {\n name,\n el,\n container,\n source,\n item,\n sourceModel,\n sourceIndex\n };\n }));\n if (this.drakeFactory === null || this.drakeFactory === undefined) {\n this.drakeFactory = new DrakeFactory();\n }\n }\n /** Public mainly for testing purposes. Prefer `createGroup()`. */\n add(group) {\n const existingGroup = this.find(group.name);\n if (existingGroup) {\n throw new Error('Group named: \"' + group.name + '\" already exists.');\n }\n this.groups[group.name] = group;\n this.handleModels(group);\n this.setupEvents(group);\n return group;\n }\n find(name) {\n return this.groups[name];\n }\n destroy(name) {\n const group = this.find(name);\n if (!group) {\n return;\n }\n group.drake && group.drake.destroy();\n delete this.groups[name];\n }\n /**\n * Creates a group with the specified name and options.\n *\n * Note: formerly known as `setOptions`\n */\n createGroup(name, options) {\n return this.add(new Group(name, this.drakeFactory.build([], options), options));\n }\n handleModels({\n name,\n drake,\n options\n }) {\n let dragElm;\n let dragIndex;\n let dropIndex;\n drake.on('remove', (el, container, source) => {\n if (!drake.models) {\n return;\n }\n let sourceModel = drake.models[drake.containers.indexOf(source)];\n sourceModel = sourceModel.slice(0); // clone it\n const item = sourceModel.splice(dragIndex, 1)[0];\n this.dispatch$.next({\n event: EventTypes.RemoveModel,\n name,\n args: [el, container, source, item, sourceModel, dragIndex]\n });\n });\n drake.on('drag', (el, source) => {\n if (!drake.models) {\n return;\n }\n dragElm = el;\n dragIndex = this.domIndexOf(el, source);\n });\n drake.on('drop', (dropElm, target, source, sibling) => {\n if (!drake.models || !target) {\n return;\n }\n dropIndex = this.domIndexOf(dropElm, target);\n let sourceModel = drake.models[drake.containers.indexOf(source)];\n let targetModel = drake.models[drake.containers.indexOf(target)];\n let item;\n if (target === source) {\n sourceModel = sourceModel.slice(0);\n item = sourceModel.splice(dragIndex, 1)[0];\n sourceModel.splice(dropIndex, 0, item);\n // this was true before we cloned and updated sourceModel,\n // but targetModel still has the old value\n targetModel = sourceModel;\n } else {\n const isCopying = dragElm !== dropElm;\n item = sourceModel[dragIndex];\n if (isCopying) {\n if (!options.copyItem) {\n throw new Error(\"If you have enabled `copy` on a group, you must provide a `copyItem` function.\");\n }\n ;\n item = options.copyItem(item);\n }\n if (!isCopying) {\n sourceModel = sourceModel.slice(0);\n sourceModel.splice(dragIndex, 1);\n }\n targetModel = targetModel.slice(0);\n targetModel.splice(dropIndex, 0, item);\n if (isCopying) {\n try {\n target.removeChild(dropElm);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n }\n this.dispatch$.next({\n event: EventTypes.DropModel,\n name,\n args: [dropElm, target, source, sibling, item, sourceModel, targetModel, dragIndex, dropIndex]\n });\n });\n }\n setupEvents(group) {\n if (group.initEvents) {\n return;\n }\n group.initEvents = true;\n const name = group.name;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n const emitter = event => {\n group.drake.on(event, (...args) => {\n this.dispatch$.next({\n event,\n name,\n args\n });\n });\n };\n AllEvents.forEach(emitter);\n }\n domIndexOf(child, parent) {\n if (parent) {\n return Array.prototype.indexOf.call(parent.children, child);\n }\n }\n }\n DragulaService.ɵfac = function DragulaService_Factory(t) {\n return new (t || DragulaService)(i0.ɵɵinject(DrakeFactory, 8));\n };\n DragulaService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DragulaService,\n factory: DragulaService.ɵfac,\n providedIn: 'root'\n });\n return DragulaService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DragulaDirective = /*#__PURE__*/(() => {\n class DragulaDirective {\n constructor(el, dragulaService) {\n this.el = el;\n this.dragulaService = dragulaService;\n this.dragulaModelChange = new EventEmitter();\n }\n get container() {\n return this.el && this.el.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes && changes.dragula) {\n const {\n previousValue: prev,\n currentValue: current,\n firstChange\n } = changes.dragula;\n const hadPreviousValue = !!prev;\n const hasNewValue = !!current;\n // something -> null => teardown only\n // something -> something => teardown, then setup\n // null -> something => setup only\n //\n // null -> null (precluded by fact of change being present)\n if (hadPreviousValue) {\n this.teardown(prev);\n }\n if (hasNewValue) {\n this.setup();\n }\n } else if (changes && changes.dragulaModel) {\n // this code only runs when you're not changing the group name\n // because if you're changing the group name, you'll be doing setup or teardown\n // it also only runs if there is a group name to attach to.\n const {\n previousValue: prev,\n currentValue: current,\n firstChange\n } = changes.dragulaModel;\n const drake = this.group?.drake;\n if (this.dragula && drake) {\n drake.models = drake.models || [];\n const prevIndex = drake.models.indexOf(prev);\n if (prevIndex !== -1) {\n // delete the previous\n drake.models.splice(prevIndex, 1);\n // maybe insert a new one at the same spot\n if (current) {\n drake.models.splice(prevIndex, 0, current);\n }\n } else if (current) {\n // no previous one to remove; just push this one.\n drake.models.push(current);\n }\n }\n }\n }\n // call ngOnInit 'setup' because we want to call it in ngOnChanges\n // and it would otherwise run twice\n setup() {\n const checkModel = group => {\n if (this.dragulaModel) {\n if (group.drake?.models) {\n group.drake?.models?.push(this.dragulaModel);\n } else {\n if (group.drake) {\n group.drake.models = [this.dragulaModel];\n }\n }\n }\n };\n // find or create a group\n if (!this.dragula) {\n return;\n }\n let group = this.dragulaService.find(this.dragula);\n if (!group) {\n const options = {};\n group = this.dragulaService.createGroup(this.dragula, options);\n }\n // ensure model and container element are pushed\n checkModel(group);\n group.drake?.containers.push(this.container);\n this.subscribe(this.dragula);\n this.group = group;\n }\n subscribe(name) {\n this.subs = new Subscription();\n this.subs.add(this.dragulaService.dropModel(name).subscribe(({\n source,\n target,\n sourceModel,\n targetModel\n }) => {\n if (source === this.el.nativeElement) {\n this.dragulaModelChange.emit(sourceModel);\n } else if (target === this.el.nativeElement) {\n this.dragulaModelChange.emit(targetModel);\n }\n }));\n this.subs.add(this.dragulaService.removeModel(name).subscribe(({\n source,\n sourceModel\n }) => {\n if (source === this.el.nativeElement) {\n this.dragulaModelChange.emit(sourceModel);\n }\n }));\n }\n teardown(groupName) {\n if (this.subs) {\n this.subs.unsubscribe();\n }\n const group = this.dragulaService.find(groupName);\n if (group) {\n const itemToRemove = group.drake?.containers.indexOf(this.el.nativeElement);\n if (itemToRemove !== -1) {\n group.drake?.containers.splice(itemToRemove, 1);\n }\n if (this.dragulaModel && group.drake && group.drake.models) {\n const modelIndex = group.drake.models.indexOf(this.dragulaModel);\n if (modelIndex !== -1) {\n group.drake.models.splice(modelIndex, 1);\n }\n }\n }\n }\n ngOnDestroy() {\n if (!this.dragula) {\n return;\n }\n this.teardown(this.dragula);\n }\n }\n DragulaDirective.ɵfac = function DragulaDirective_Factory(t) {\n return new (t || DragulaDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DragulaService));\n };\n DragulaDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DragulaDirective,\n selectors: [[\"\", \"dragula\", \"\"]],\n inputs: {\n dragula: \"dragula\",\n dragulaModel: \"dragulaModel\"\n },\n outputs: {\n dragulaModelChange: \"dragulaModelChange\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return DragulaDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DragulaModule = /*#__PURE__*/(() => {\n class DragulaModule {\n static forRoot() {\n return {\n ngModule: DragulaModule,\n providers: [DragulaService]\n };\n }\n }\n DragulaModule.ɵfac = function DragulaModule_Factory(t) {\n return new (t || DragulaModule)();\n };\n DragulaModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: DragulaModule\n });\n DragulaModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [DragulaService]\n });\n return DragulaModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst MockDrakeFactory = new DrakeFactory((containers, options) => {\n return new MockDrake(containers, options);\n});\n/** You can use MockDrake to simulate Drake events.\n *\n * The three methods that actually do anything are `on(event, listener)`,\n * `destroy()`, and a new method, `emit()`. Use `emit()` to manually emit Drake\n * events, and if you injected MockDrake properly with MockDrakeFactory or\n * mocked the DragulaService.find() method, then you can make ng2-dragula think\n * drags and drops are happening.\n *\n * Caveats:\n *\n * 1. YOU MUST MAKE THE DOM CHANGES YOURSELF.\n * 2. REPEAT: YOU MUST MAKE THE DOM CHANGES YOURSELF.\n * That means `source.removeChild(el)`, and `target.insertBefore(el)`.\n * 3. None of the other methods do anything.\n * That's ok, because ng2-dragula doesn't use them.\n */\nclass MockDrake {\n /**\n * @param containers A list of container elements.\n * @param options These will NOT be used. At all.\n * @param models Nonstandard, but useful for testing using `new MockDrake()` directly.\n * Note, default value is undefined, like a real Drake. Don't change that.\n */\n constructor(containers = [], options = {}, models) {\n this.containers = containers;\n this.options = options;\n this.models = models;\n // Basic but fully functional event emitter shim\n this.emitter$ = new Subject();\n this.subs = new Subscription();\n /* Doesn't represent anything meaningful. */\n this.dragging = false;\n }\n /* Does nothing useful. */\n start(item) {\n this.dragging = true;\n }\n /* Does nothing useful. */\n end() {\n this.dragging = false;\n }\n cancel(revert) {\n this.dragging = false;\n }\n /* Does nothing useful. */\n remove() {\n this.dragging = false;\n }\n on(event, callback) {\n this.subs.add(this.emitter$.pipe(filter(({\n eventType\n }) => eventType === event)).subscribe(({\n eventType,\n args\n }) => {\n if (eventType === EventTypes.Drag) {\n const argument = Array.from(args);\n const el = argument[0];\n const source = argument[1];\n //@ts-ignore\n callback(el, source);\n return;\n }\n if (eventType === EventTypes.Drop) {\n const argument = Array.from(args);\n const el = argument[0];\n const target = argument[1];\n const source = argument[2];\n const sibling = argument[3];\n //@ts-ignore\n callback(el, target, source, sibling);\n return;\n }\n if (eventType === EventTypes.Remove) {\n const argument = Array.from(args);\n const el = argument[0];\n const container = argument[1];\n const source = argument[2];\n //@ts-ignore\n callback(el, container, source);\n return;\n }\n callback(args);\n }));\n }\n destroy() {\n this.subs.unsubscribe();\n }\n /**\n * This is the most useful method. You can use it to manually fire events that would normally\n * be fired by a real drake.\n *\n * You're likely most interested in firing `drag`, `remove` and `drop`, the three events\n * DragulaService uses to implement [dragulaModel].\n *\n * See https://github.com/bevacqua/dragula#drakeon-events for what you should emit (and in what order).\n *\n * (Note also, firing dropModel and removeModel won't work. You would have to mock DragulaService for that.)\n */\n emit(eventType, ...args) {\n this.emitter$.next({\n eventType,\n args\n });\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DragulaDirective, DragulaModule, DragulaService, DrakeFactory, EventTypes, Group, MockDrake, MockDrakeFactory, dragula };\n"],"mappings":"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","names":["require_atoa","__commonJSMin","exports","module","a","n","require_ticky_browser","__commonJSMin","exports","module","si","tick","fn","require_debounce","__commonJSMin","exports","module","ticky","fn","args","ctx","require_emitter","__commonJSMin","exports","module","atoa","debounce","thing","options","opts","evt","type","fn","c","et","args","ctx","listen","require_custom_event","__commonJSMin","exports","module","NativeCustomEvent","useNative","p","type","params","e","require_eventmap","__commonJSMin","exports","module","eventmap","eventname","ron","require_crossvent","__commonJSMin","exports","module","customEvent","eventmap","doc","addEvent","addEventEasy","removeEvent","removeEventEasy","hardCache","addEventHard","removeEventHard","fabricateEvent","el","type","fn","capturing","wrap","listener","unwrap","model","e","makeCustomEvent","makeClassicEvent","wrapperFactory","originalEvent","wrapper","i","find","item","require_classes","__commonJSMin","exports","module","cache","start","end","lookupClass","className","cached","addClass","el","current","rmClass","require_dragula","__commonJSMin","exports","module","emitter","crossvent","classes","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","end","cancel","remove","destroy","canMove","spillOver","spillOut","events","isContainer","el","op","touchy","grab","release","eventualMovements","startBecauseMouseMoved","movements","preventGrabbed","e","ignore","whichMouseButton","item","context","canStart","isInput","clientX","getCoord","clientY","elementBehindCursor","grabbed","start","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","changed","out","over","moved","type","rect","getRectWidth","getRectHeight","y","horizontal","inside","outside","i","resolve","after","container","fn","touch","pointers","microsoft","button","getScroll","scrollProp","offsetProp","point","state","isEditable","manually","getEventHost","coord","host","missMap","dragulaExpt","Group","name","drake","options","EventTypes","AllEvents","k","dragula","DrakeFactory","build","filterEvent","eventType","filterDragType","projector","input","filter","event","map","args","elContainerSourceProjector","el","container","source","DragulaService","drakeFactory","Subject","groupName","target","sibling","clone","original","cloneType","item","sourceModel","targetModel","sourceIndex","targetIndex","group","dragElm","dragIndex","dropIndex","dropElm","isCopying","that","emitter","child","parent","t","ɵɵinject","ɵɵdefineInjectable","DragulaDirective","dragulaService","EventEmitter","changes","prev","current","firstChange","hadPreviousValue","hasNewValue","prevIndex","checkModel","Subscription","itemToRemove","modelIndex","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","ɵɵNgOnChangesFeature","DragulaModule","ɵɵdefineNgModule","ɵɵdefineInjector","MockDrakeFactory","containers","MockDrake","models","revert","callback","argument"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}