moodle_local_treestudyplan/amd/build/vue-easy-dnd/vue-easy-dnd.esm.min.js.map
2023-12-02 23:22:00 +01:00

1 line
122 KiB
Plaintext

{"version":3,"file":"vue-easy-dnd.esm.min.js","sources":["../../src/vue-easy-dnd/vue-easy-dnd.esm.js"],"sourcesContent":["/* eslint-disable */\r\nimport './reflect-metadata';\r\nimport { Vue, Component, Prop } from './vue-property-decorator';\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/**\r\n * This is the class of the global object that holds the state of the drag and drop during its progress. It emits events\r\n * reporting its state evolution during the progress of the drag and drop. Its data is reactive and listeners can be\r\n * attachted to it using the method on.\r\n */\r\nvar DnD = /** @class */ (function () {\r\n function DnD() {\r\n this.inProgress = false;\r\n this.type = null;\r\n this.data = null;\r\n this.source = null;\r\n this.top = null;\r\n this.position = null;\r\n this.eventBus = new Vue();\r\n this.sourceListeners = null;\r\n this.success = null;\r\n }\r\n DnD.prototype.startDrag = function (source, event, x, y, type, data) {\r\n this.type = type;\r\n this.data = data;\r\n this.source = source;\r\n this.position = { x: x, y: y };\r\n this.top = null;\r\n this.sourceListeners = source.$listeners;\r\n this.inProgress = true;\r\n this.emit(event, \"dragstart\");\r\n this.emit(event, \"dragtopchanged\", { previousTop: null });\r\n };\r\n DnD.prototype.resetVariables = function () {\r\n this.inProgress = false;\r\n this.data = null;\r\n this.source = null;\r\n this.position = null;\r\n this.success = null;\r\n };\r\n DnD.prototype.stopDrag = function (event) {\r\n this.success = this.top !== null && this.top['compatibleMode'] && this.top['dropAllowed'];\r\n if (this.top !== null) {\r\n this.emit(event, \"drop\");\r\n }\r\n this.emit(event, \"dragend\");\r\n this.resetVariables();\r\n };\r\n DnD.prototype.cancelDrag = function (event) {\r\n this.success = false;\r\n this.emit(event, \"dragend\");\r\n this.resetVariables();\r\n };\r\n DnD.prototype.mouseMove = function (event, comp) {\r\n if (this.inProgress) {\r\n var prevent = false;\r\n var previousTop = this.top;\r\n if (comp === null) {\r\n // The mouse move event reached the top of the document without hitting a drop component.\r\n this.top = null;\r\n prevent = true;\r\n }\r\n else if (comp['isDropMask']) {\r\n // The mouse move event bubbled until it reached a drop mask.\r\n this.top = null;\r\n prevent = true;\r\n }\r\n else if (comp['candidate'](this.type, this.data, this.source)) {\r\n // The mouse move event bubbled until it reached a drop component that participates in the current drag operation.\r\n this.top = comp;\r\n prevent = true;\r\n }\r\n if (prevent) {\r\n // We prevent the mouse move event from bubbling further up the tree because it reached the foremost drop component and that component is all that matters.\r\n event.stopPropagation();\r\n }\r\n if (this.top !== previousTop) {\r\n this.emit(event.detail.native, 'dragtopchanged', { previousTop: previousTop });\r\n }\r\n this.position = {\r\n x: event.detail.x,\r\n y: event.detail.y\r\n };\r\n this.emit(event.detail.native, 'dragpositionchanged');\r\n }\r\n };\r\n DnD.prototype.emit = function (native, event, data) {\r\n this.eventBus.$emit(event, __assign({ type: this.type, data: this.data, top: this.top, source: this.source, position: this.position, success: this.success, native: native }, data));\r\n };\r\n DnD.prototype.on = function (event, callback) {\r\n this.eventBus.$on(event, callback);\r\n };\r\n DnD.prototype.off = function (event, callback) {\r\n this.eventBus.$off(event, callback);\r\n };\r\n return DnD;\r\n}());\r\nvar dnd = new DnD();\r\ndnd = Vue.observable(dnd);\r\n\r\nvar DragAwareMixin = /** @class */ (function (_super) {\r\n __extends(DragAwareMixin, _super);\r\n function DragAwareMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(DragAwareMixin.prototype, \"dragInProgress\", {\r\n get: function () {\r\n return dnd.inProgress;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DragAwareMixin.prototype, \"dragData\", {\r\n get: function () {\r\n return dnd.data;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DragAwareMixin.prototype, \"dragType\", {\r\n get: function () {\r\n return dnd.type;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DragAwareMixin.prototype, \"dragPosition\", {\r\n get: function () {\r\n return dnd.position;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DragAwareMixin.prototype, \"dragSource\", {\r\n get: function () {\r\n return dnd.source;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DragAwareMixin.prototype, \"dragTop\", {\r\n get: function () {\r\n return dnd.top;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DragAwareMixin = __decorate([\r\n Component({})\r\n ], DragAwareMixin);\r\n return DragAwareMixin;\r\n}(Vue));\r\n\r\n/**\r\n * This files contains the primitives required to create drag images from HTML elements that serve as models. A snapshot\r\n * of the computed styles of the model elements is taken when creating the drag image, so that it will look the same as\r\n * the model, no matter where the drag images is grafted into the DOM.\r\n */\r\n/**\r\n * Creates a drag image using the given element as model.\r\n */\r\nfunction createDragImage(el) {\r\n var clone = deepClone(el);\r\n clone.style.position = 'fixed';\r\n clone.style.margin = '0';\r\n clone.style[\"z-index\"] = '1000';\r\n clone.style.transition = 'opacity 0.2s';\r\n return clone;\r\n}\r\n/**\r\n * Clones the given element and all its descendants.\r\n */\r\nfunction deepClone(el) {\r\n var clone = el.cloneNode(true);\r\n copyStyle(el, clone);\r\n var vSrcElements = el.getElementsByTagName(\"*\");\r\n var vDstElements = clone.getElementsByTagName(\"*\");\r\n for (var i = vSrcElements.length; i--;) {\r\n var vSrcElement = vSrcElements[i];\r\n var vDstElement = vDstElements[i];\r\n copyStyle(vSrcElement, vDstElement);\r\n }\r\n return clone;\r\n}\r\n/**\r\n * Copy the computed styles from src to destination.\r\n */\r\nfunction copyStyle(src, destination) {\r\n var e_1, _a;\r\n var computedStyle = window.getComputedStyle(src);\r\n try {\r\n for (var computedStyle_1 = __values(computedStyle), computedStyle_1_1 = computedStyle_1.next(); !computedStyle_1_1.done; computedStyle_1_1 = computedStyle_1.next()) {\r\n var key = computedStyle_1_1.value;\r\n if (key === 'width') {\r\n // IE11\r\n var width = computedStyle.getPropertyValue(\"box-sizing\") === 'border-box' ?\r\n src.clientWidth :\r\n src.clientWidth - parseFloat(computedStyle.paddingLeft) - parseFloat(computedStyle.paddingRight);\r\n destination.style.setProperty(\"width\", width + \"px\");\r\n }\r\n else if (key === 'height') {\r\n // IE11\r\n var height = computedStyle.getPropertyValue(\"box-sizing\") === 'border-box' ?\r\n src.clientHeight :\r\n src.clientHeight - parseFloat(computedStyle.paddingTop) - parseFloat(computedStyle.paddingBottom);\r\n destination.style.setProperty(\"height\", height + \"px\");\r\n }\r\n else {\r\n destination.style.setProperty(key, computedStyle.getPropertyValue(key), computedStyle.getPropertyPriority(key));\r\n }\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (computedStyle_1_1 && !computedStyle_1_1.done && (_a = computedStyle_1.return)) { _a.call(computedStyle_1); }\r\n }\r\n finally { if (e_1) { throw e_1.error; } }\r\n }\r\n destination.style.pointerEvents = 'none';\r\n}\r\n\r\n// Forked from https://gist.github.com/gre/296291b8ce0d8fe6e1c3ea4f1d1c5c3b\r\nvar regex = /(auto|scroll)/;\r\n\r\nvar style = function (node, prop) { return getComputedStyle(node, null).getPropertyValue(prop); };\r\n\r\nvar scroll = function (node) { return regex.test(\r\n style(node, \"overflow\") +\r\n style(node, \"overflow-y\") +\r\n style(node, \"overflow-x\")); };\r\n\r\nvar scrollparent = function (node) { return !node || node===document.body\r\n ? document.body\r\n : scroll(node)\r\n ? node\r\n : scrollparent(node.parentNode); };\r\n\r\n// Forked from https://github.com/bennadel/JavaScript-Demos/blob/master/demos/window-edge-scrolling/index.htm\r\n// Code was altered to work with scrollable containers\r\n\r\nvar timer = null;\r\n\r\nfunction cancelScrollAction () {\r\n clearTimeout(timer);\r\n}\r\n\r\nfunction performEdgeScroll(event, container, clientX, clientY, edgeSize) {\r\n if (!container || !edgeSize) {\r\n cancelScrollAction();\r\n return false;\r\n }\r\n\r\n // NOTE: Much of the information here, with regard to document dimensions,\r\n // viewport dimensions, and window scrolling is derived from JavaScript.info.\r\n // I am consuming it here primarily as NOTE TO SELF.\r\n // --\r\n // Read More: https://javascript.info/size-and-scroll-window\r\n // --\r\n // CAUTION: The viewport and document dimensions can all be CACHED and then\r\n // recalculated on window-resize events (for the most part). I am keeping it\r\n // all here in the mousemove event handler to remove as many of the moving\r\n // parts as possible and keep the demo as simple as possible.\r\n\r\n // Get the viewport-relative coordinates of the mousemove event.\r\n var rect = container.getBoundingClientRect();\r\n var isBody = container === document.body;\r\n\r\n var viewportX = clientX - rect.left;\r\n var viewportY = clientY - rect.top;\r\n if (isBody) {\r\n viewportX = clientX;\r\n viewportY = clientY;\r\n }\r\n\r\n // Get the viewport dimensions.\r\n var viewportWidth = rect.width;\r\n var viewportHeight = rect.height;\r\n if (isBody) {\r\n viewportWidth = document.documentElement.clientWidth;\r\n viewportHeight = document.documentElement.clientHeight;\r\n }\r\n\r\n // Next, we need to determine if the mouse is within the \"edge\" of the\r\n // viewport, which may require scrolling the window. To do this, we need to\r\n // calculate the boundaries of the edge in the viewport (these coordinates\r\n // are relative to the viewport grid system).\r\n var edgeTop = edgeSize;\r\n var edgeLeft = edgeSize;\r\n var edgeBottom = ( viewportHeight - edgeSize );\r\n var edgeRight = ( viewportWidth - edgeSize );\r\n\r\n var isInLeftEdge = ( viewportX < edgeLeft );\r\n var isInRightEdge = ( viewportX > edgeRight );\r\n var isInTopEdge = ( viewportY < edgeTop );\r\n var isInBottomEdge = ( viewportY > edgeBottom );\r\n\r\n // If the mouse is not in the viewport edge, there's no need to calculate\r\n // anything else.\r\n if (!(isInLeftEdge || isInRightEdge || isInTopEdge || isInBottomEdge)) {\r\n cancelScrollAction();\r\n return false;\r\n }\r\n\r\n // If we made it this far, the user's mouse is located within the edge of the\r\n // viewport. As such, we need to check to see if scrolling needs to be done.\r\n\r\n // Get the document dimensions.\r\n var documentWidth = Math.max(\r\n container.scrollWidth,\r\n container.offsetWidth,\r\n container.clientWidth\r\n );\r\n var documentHeight = Math.max(\r\n container.scrollHeight,\r\n container.offsetHeight,\r\n container.clientHeight\r\n );\r\n\r\n // Calculate the maximum scroll offset in each direction. Since you can only\r\n // scroll the overflow portion of the document, the maximum represents the\r\n // length of the document that is NOT in the viewport.\r\n var maxScrollX = (documentWidth - viewportWidth);\r\n var maxScrollY = (documentHeight - viewportHeight);\r\n\r\n // As we examine the mousemove event, we want to adjust the window scroll in\r\n // immediate response to the event; but, we also want to continue adjusting\r\n // the window scroll if the user rests their mouse in the edge boundary. To\r\n // do this, we'll invoke the adjustment logic immediately. Then, we'll setup\r\n // a timer that continues to invoke the adjustment logic while the window can\r\n // still be scrolled in a particular direction.\r\n (function checkForWindowScroll() {\r\n cancelScrollAction();\r\n\r\n if (adjustWindowScroll()) {\r\n timer = setTimeout( checkForWindowScroll, 30 );\r\n }\r\n })();\r\n\r\n // Adjust the window scroll based on the user's mouse position. Returns True\r\n // or False depending on whether or not the window scroll was changed.\r\n function adjustWindowScroll() {\r\n // Get the current scroll position of the document.\r\n var currentScrollX = container.scrollLeft;\r\n var currentScrollY = container.scrollTop;\r\n if (isBody) {\r\n currentScrollX = window.pageXOffset;\r\n currentScrollY = window.pageYOffset;\r\n }\r\n\r\n // Determine if the window can be scrolled in any particular direction.\r\n var canScrollUp = (currentScrollY > 0);\r\n var canScrollDown = (currentScrollY < maxScrollY);\r\n var canScrollLeft = (currentScrollX > 0);\r\n var canScrollRight = (currentScrollX < maxScrollX);\r\n\r\n // Since we can potentially scroll in two directions at the same time,\r\n // let's keep track of the next scroll, starting with the current scroll.\r\n // Each of these values can then be adjusted independently in the logic\r\n // below.\r\n var nextScrollX = currentScrollX;\r\n var nextScrollY = currentScrollY;\r\n\r\n // As we examine the mouse position within the edge, we want to make the\r\n // incremental scroll changes more \"intense\" the closer that the user\r\n // gets the viewport edge. As such, we'll calculate the percentage that\r\n // the user has made it \"through the edge\" when calculating the delta.\r\n // Then, that use that percentage to back-off from the \"max\" step value.\r\n var maxStep = 50;\r\n\r\n // Should we scroll left?\r\n if (isInLeftEdge && canScrollLeft) {\r\n var intensity = ((edgeLeft - viewportX) / edgeSize);\r\n nextScrollX = (nextScrollX - (maxStep * intensity));\r\n }\r\n // Should we scroll right?\r\n else if (isInRightEdge && canScrollRight) {\r\n var intensity = ((viewportX - edgeRight) / edgeSize);\r\n nextScrollX = (nextScrollX + (maxStep * intensity));\r\n }\r\n\r\n // Should we scroll up?\r\n if (isInTopEdge && canScrollUp) {\r\n var intensity = ((edgeTop - viewportY) / edgeSize);\r\n nextScrollY = (nextScrollY - (maxStep * intensity));\r\n }\r\n // Should we scroll down?\r\n else if (isInBottomEdge && canScrollDown) {\r\n var intensity = ((viewportY - edgeBottom) / edgeSize);\r\n nextScrollY = (nextScrollY + (maxStep * intensity));\r\n }\r\n\r\n // Sanitize invalid maximums. An invalid scroll offset won't break the\r\n // subsequent .scrollTo() call; however, it will make it harder to\r\n // determine if the .scrollTo() method should have been called in the\r\n // first place.\r\n nextScrollX = Math.max(0, Math.min(maxScrollX, nextScrollX));\r\n nextScrollY = Math.max(0, Math.min(maxScrollY, nextScrollY));\r\n\r\n if (\r\n (nextScrollX !== currentScrollX) ||\r\n (nextScrollY !== currentScrollY)\r\n ) {\r\n (isBody ? window : container).scrollTo(nextScrollX, nextScrollY);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\nvar DragMixin = /** @class */ (function (_super) {\r\n __extends(DragMixin, _super);\r\n function DragMixin() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.dragInitialised = false;\r\n _this.dragStarted = false;\r\n _this.ignoreNextClick = false;\r\n _this.initialUserSelect = null;\r\n _this.downEvent = null;\r\n _this.startPosition = null;\r\n _this.delayTimer = null;\r\n _this.scrollContainer = null;\r\n return _this;\r\n }\r\n DragMixin.prototype.onSelectStart = function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n };\r\n DragMixin.prototype.performVibration = function () {\r\n // If browser can perform vibration and user has defined a vibration, perform it\r\n if (this.vibration > 0 && window.navigator && window.navigator.vibrate) {\r\n window.navigator.vibrate(this.vibration);\r\n }\r\n };\r\n DragMixin.prototype.onMouseDown = function (e) {\r\n var _this = this;\r\n var target;\r\n var goodButton;\r\n if (e.type === 'mousedown') {\r\n var mouse = e;\r\n target = e.target;\r\n goodButton = mouse.buttons === 1;\r\n }\r\n else {\r\n var touch = e;\r\n target = touch.touches[0].target;\r\n goodButton = true;\r\n }\r\n if (this.disabled || this.downEvent !== null || !goodButton) {\r\n return;\r\n }\r\n // Check that the target element is eligible for starting a drag\r\n // Includes checking against the handle selector\r\n // or whether the element contains 'dnd-no-drag' class (which should disable dragging from that\r\n // sub-element of a draggable parent)\r\n var goodTarget = !target.matches('.dnd-no-drag, .dnd-no-drag *') &&\r\n (!this.handle ||\r\n target.matches(this.handle + ', ' + this.handle + ' *'));\r\n if (!goodTarget) {\r\n return;\r\n }\r\n this.scrollContainer = scrollparent(target);\r\n this.initialUserSelect = document.body.style.userSelect;\r\n document.documentElement.style.userSelect = 'none'; // Permet au drag de se poursuivre normalement même\r\n // quand on quitte un élémént avec overflow: hidden.\r\n this.dragStarted = false;\r\n this.downEvent = e;\r\n if (this.downEvent.type === 'mousedown') {\r\n var mouse = event;\r\n this.startPosition = {\r\n x: mouse.clientX,\r\n y: mouse.clientY\r\n };\r\n }\r\n else {\r\n var touch = event;\r\n this.startPosition = {\r\n x: touch.touches[0].clientX,\r\n y: touch.touches[0].clientY\r\n };\r\n }\r\n if (!!this.delay) {\r\n this.dragInitialised = false;\r\n clearTimeout(this.delayTimer);\r\n this.delayTimer = setTimeout(function () {\r\n _this.dragInitialised = true;\r\n _this.performVibration();\r\n }, this.delay);\r\n }\r\n else {\r\n this.dragInitialised = true;\r\n this.performVibration();\r\n }\r\n document.addEventListener('click', this.onMouseClick, true);\r\n document.addEventListener('mouseup', this.onMouseUp);\r\n document.addEventListener('touchend', this.onMouseUp);\r\n document.addEventListener('selectstart', this.onSelectStart);\r\n document.addEventListener('keyup', this.onKeyUp);\r\n setTimeout(function () {\r\n document.addEventListener('mousemove', _this.onMouseMove);\r\n document.addEventListener('touchmove', _this.onMouseMove, { passive: false });\r\n document.addEventListener('easy-dnd-move', _this.onEasyDnDMove);\r\n }, 0);\r\n // Prevents event from bubbling to ancestor drag components and initiate several drags at the same time\r\n e.stopPropagation();\r\n };\r\n // Prevent the user from accidentally causing a click event\r\n // if they have just attempted a drag event\r\n DragMixin.prototype.onMouseClick = function (e) {\r\n if (this.ignoreNextClick) {\r\n e.preventDefault();\r\n e.stopPropagation && e.stopPropagation();\r\n e.stopImmediatePropagation && e.stopImmediatePropagation();\r\n this.ignoreNextClick = false;\r\n return false;\r\n }\r\n };\r\n DragMixin.prototype.onMouseMove = function (e) {\r\n // We ignore the mousemove event that follows touchend :\r\n if (this.downEvent === null)\r\n { return; }\r\n // On touch devices, we ignore fake mouse events and deal with touch events only.\r\n if (this.downEvent.type === 'touchstart' && e.type === 'mousemove')\r\n { return; }\r\n // Find out event target and pointer position :\r\n var target;\r\n var x;\r\n var y;\r\n if (e.type === 'touchmove') {\r\n var touch = e;\r\n x = touch.touches[0].clientX;\r\n y = touch.touches[0].clientY;\r\n target = document.elementFromPoint(x, y);\r\n if (!target) {\r\n // Mouse going off screen. Ignore event.\r\n return;\r\n }\r\n }\r\n else {\r\n var mouse = e;\r\n x = mouse.clientX;\r\n y = mouse.clientY;\r\n target = mouse.target;\r\n }\r\n // Distance between current event and start position :\r\n var dist = Math.sqrt(Math.pow(this.startPosition.x - x, 2) + Math.pow(this.startPosition.y - y, 2));\r\n // If the drag has not begun yet and distance from initial point is greater than delta, we start the drag :\r\n if (!this.dragStarted && dist > this.delta) {\r\n // If they have dragged greater than the delta before the delay period has ended,\r\n // It means that they attempted to perform another action (such as scrolling) on the page\r\n if (!this.dragInitialised) {\r\n clearTimeout(this.delayTimer);\r\n }\r\n else {\r\n this.ignoreNextClick = true;\r\n this.dragStarted = true;\r\n dnd.startDrag(this, this.downEvent, this.startPosition.x, this.startPosition.y, this.type, this.data);\r\n document.documentElement.classList.add('drag-in-progress');\r\n }\r\n }\r\n // Dispatch custom easy-dnd-move event :\r\n if (this.dragStarted) {\r\n // If cursor/touch is at edge of container, perform scroll if available\r\n // If this.dragTop is defined, it means they are dragging on top of another DropList/EasyDnd component\r\n // if dropTop is a DropList, use the scrollingEdgeSize of that container if it exists, otherwise use the scrollingEdgeSize of the Drag component\r\n var currEdgeSize = this.dragTop && this.dragTop.$props.scrollingEdgeSize !== undefined ?\r\n this.dragTop.$props.scrollingEdgeSize :\r\n this.scrollingEdgeSize;\r\n if (!!currEdgeSize) {\r\n var currScrollContainer = this.dragTop ? scrollparent(this.dragTop.$el) : this.scrollContainer;\r\n performEdgeScroll(e, currScrollContainer, x, y, currEdgeSize);\r\n }\r\n else {\r\n cancelScrollAction();\r\n }\r\n var custom = new CustomEvent(\"easy-dnd-move\", {\r\n bubbles: true,\r\n cancelable: true,\r\n detail: {\r\n x: x,\r\n y: y,\r\n native: e\r\n }\r\n });\r\n target.dispatchEvent(custom);\r\n }\r\n // Prevent scroll on touch devices if they were performing a drag\r\n if (this.dragInitialised && e.cancelable) {\r\n e.preventDefault();\r\n }\r\n };\r\n DragMixin.prototype.onEasyDnDMove = function (e) {\r\n dnd.mouseMove(e, null);\r\n };\r\n DragMixin.prototype.onMouseUp = function (e) {\r\n var _this = this;\r\n // On touch devices, we ignore fake mouse events and deal with touch events only.\r\n if (this.downEvent.type === 'touchstart' && e.type === 'mouseup')\r\n { return; }\r\n // This delay makes sure that when the click event that results from the mouseup is produced, the drag is\r\n // still in progress. So by checking the flag dnd.inProgress, one can tell apart true clicks from drag and\r\n // drop artefacts.\r\n setTimeout(function () {\r\n _this.cancelDragActions();\r\n if (_this.dragStarted) {\r\n dnd.stopDrag(e);\r\n }\r\n _this.finishDrag();\r\n }, 0);\r\n };\r\n DragMixin.prototype.onKeyUp = function (e) {\r\n var _this = this;\r\n // If ESC is pressed, cancel the drag\r\n if (e.key === 'Escape') {\r\n this.cancelDragActions();\r\n setTimeout(function () {\r\n dnd.cancelDrag(e);\r\n _this.finishDrag();\r\n }, 0);\r\n }\r\n };\r\n DragMixin.prototype.cancelDragActions = function () {\r\n this.dragInitialised = false;\r\n clearTimeout(this.delayTimer);\r\n cancelScrollAction();\r\n };\r\n DragMixin.prototype.finishDrag = function () {\r\n this.downEvent = null;\r\n this.scrollContainer = null;\r\n if (this.dragStarted) {\r\n document.documentElement.classList.remove('drag-in-progress');\r\n }\r\n document.removeEventListener('click', this.onMouseClick, true);\r\n document.removeEventListener('mousemove', this.onMouseMove);\r\n document.removeEventListener('touchmove', this.onMouseMove);\r\n document.removeEventListener('easy-dnd-move', this.onEasyDnDMove);\r\n document.removeEventListener('mouseup', this.onMouseUp);\r\n document.removeEventListener('touchend', this.onMouseUp);\r\n document.removeEventListener('selectstart', this.onSelectStart);\r\n document.removeEventListener('keyup', this.onKeyUp);\r\n document.documentElement.style.userSelect = this.initialUserSelect;\r\n };\r\n DragMixin.prototype.dndDragStart = function (ev) {\r\n if (ev.source === this) {\r\n this.$emit('dragstart', ev);\r\n }\r\n };\r\n DragMixin.prototype.dndDragEnd = function (ev) {\r\n if (ev.source === this) {\r\n this.$emit('dragend', ev);\r\n }\r\n };\r\n DragMixin.prototype.created = function () {\r\n dnd.on('dragstart', this.dndDragStart);\r\n dnd.on('dragend', this.dndDragEnd);\r\n };\r\n DragMixin.prototype.mounted = function () {\r\n this.$el.addEventListener('mousedown', this.onMouseDown);\r\n this.$el.addEventListener('touchstart', this.onMouseDown);\r\n };\r\n DragMixin.prototype.beforeDestroy = function () {\r\n dnd.off('dragstart', this.dndDragStart);\r\n dnd.off('dragend', this.dndDragEnd);\r\n this.$el.removeEventListener('mousedown', this.onMouseDown);\r\n this.$el.removeEventListener('touchstart', this.onMouseDown);\r\n };\r\n Object.defineProperty(DragMixin.prototype, \"cssClasses\", {\r\n get: function () {\r\n var clazz = {\r\n 'dnd-drag': true\r\n };\r\n if (!this.disabled) {\r\n return __assign(__assign({}, clazz), { 'drag-source': this.dragInProgress && this.dragSource === this, 'drag-mode-copy': this.currentDropMode === 'copy', 'drag-mode-cut': this.currentDropMode === 'cut', 'drag-mode-reordering': this.currentDropMode === 'reordering', 'drag-no-handle': !this.handle });\r\n }\r\n else {\r\n return clazz;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DragMixin.prototype, \"currentDropMode\", {\r\n get: function () {\r\n if (this.dragInProgress && this.dragSource === this) {\r\n if (this.dragTop && this.dragTop['dropAllowed']) {\r\n if (this.dragTop['reordering'])\r\n { return 'reordering'; }\r\n else\r\n { return this.dragTop['mode']; }\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DragMixin.prototype.createDragImage = function (selfTransform) {\r\n var image;\r\n if (this.$scopedSlots['drag-image']) {\r\n var el = this.$refs['drag-image'] || document.createElement('div');\r\n if (el.childElementCount !== 1) {\r\n image = createDragImage(el);\r\n }\r\n else {\r\n image = createDragImage(el.children.item(0));\r\n }\r\n }\r\n else {\r\n image = createDragImage(this.$el);\r\n image.style.transform = selfTransform;\r\n }\r\n if (this.dragClass) {\r\n image.classList.add(this.dragClass);\r\n }\r\n image.classList.add('dnd-ghost');\r\n image['__opacity'] = this.dragImageOpacity;\r\n return image;\r\n };\r\n __decorate([\r\n Prop({ default: null, type: null }),\r\n __metadata(\"design:type\", String)\r\n ], DragMixin.prototype, \"type\", void 0);\r\n __decorate([\r\n Prop({ default: null, type: null }),\r\n __metadata(\"design:type\", Object)\r\n ], DragMixin.prototype, \"data\", void 0);\r\n __decorate([\r\n Prop({ default: 0.7, type: Number }),\r\n __metadata(\"design:type\", Object)\r\n ], DragMixin.prototype, \"dragImageOpacity\", void 0);\r\n __decorate([\r\n Prop({ default: false, type: Boolean }),\r\n __metadata(\"design:type\", Boolean)\r\n ], DragMixin.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Prop({ default: false, type: Boolean }),\r\n __metadata(\"design:type\", Boolean)\r\n ], DragMixin.prototype, \"goBack\", void 0);\r\n __decorate([\r\n Prop({ required: false, type: String }),\r\n __metadata(\"design:type\", String)\r\n ], DragMixin.prototype, \"handle\", void 0);\r\n __decorate([\r\n Prop({ type: Number, default: 3 }),\r\n __metadata(\"design:type\", Number)\r\n ], DragMixin.prototype, \"delta\", void 0);\r\n __decorate([\r\n Prop({ type: Number, default: 0 }),\r\n __metadata(\"design:type\", Number)\r\n ], DragMixin.prototype, \"delay\", void 0);\r\n __decorate([\r\n Prop({ type: String, default: null }),\r\n __metadata(\"design:type\", String)\r\n ], DragMixin.prototype, \"dragClass\", void 0);\r\n __decorate([\r\n Prop({ type: Number, default: 0 }),\r\n __metadata(\"design:type\", Number)\r\n ], DragMixin.prototype, \"vibration\", void 0);\r\n __decorate([\r\n Prop({ type: Number, default: 100 }),\r\n __metadata(\"design:type\", Number)\r\n ], DragMixin.prototype, \"scrollingEdgeSize\", void 0);\r\n DragMixin = __decorate([\r\n Component({})\r\n ], DragMixin);\r\n return DragMixin;\r\n}(DragAwareMixin));\r\n\r\nvar Drag = /** @class */ (function (_super) {\r\n __extends(Drag, _super);\r\n function Drag() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Prop({ default: 'div', type: [String, Object, Function] }),\r\n __metadata(\"design:type\", Object)\r\n ], Drag.prototype, \"tag\", void 0);\r\n Drag = __decorate([\r\n Component({})\r\n ], Drag);\r\n return Drag;\r\n}(DragMixin));\r\n\r\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\r\n/* server only */\r\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n } // Vue.extend constructor export interop.\r\n\r\n\r\n var options = typeof script === 'function' ? script.options : script; // render functions\r\n\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true; // functional template\r\n\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n } // scopedId\r\n\r\n\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n\r\n var hook;\r\n\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function hook(context) {\r\n // 2.3 injection\r\n context = context || // cached call\r\n this.$vnode && this.$vnode.ssrContext || // stateful\r\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\r\n // 2.2 with runInNewContext: true\r\n\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n } // inject component styles\r\n\r\n\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n } // register component module identifier for async chunk inference\r\n\r\n\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n }; // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n\r\n\r\n options._ssrRegister = hook;\r\n } else if (style) {\r\n hook = shadowMode ? function () {\r\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\r\n } : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n var originalRender = options.render;\r\n\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n } else {\r\n // inject component registration as beforeCreate hook\r\n var existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n\r\n return script;\r\n}\r\n\r\nvar normalizeComponent_1 = normalizeComponent;\r\n\r\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\r\nfunction createInjector(context) {\r\n return function (id, style) {\r\n return addStyle(id, style);\r\n };\r\n}\r\nvar HEAD;\r\nvar styles = {};\r\n\r\nfunction addStyle(id, css) {\r\n var group = isOldIE ? css.media || 'default' : id;\r\n var style = styles[group] || (styles[group] = {\r\n ids: new Set(),\r\n styles: []\r\n });\r\n\r\n if (!style.ids.has(id)) {\r\n style.ids.add(id);\r\n var code = css.source;\r\n\r\n if (css.map) {\r\n // https://developer.chrome.com/devtools/docs/javascript-debugging\r\n // this makes source maps inside style tags work properly in Chrome\r\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\r\n\r\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\r\n }\r\n\r\n if (!style.element) {\r\n style.element = document.createElement('style');\r\n style.element.type = 'text/css';\r\n if (css.media) { style.element.setAttribute('media', css.media); }\r\n\r\n if (HEAD === undefined) {\r\n HEAD = document.head || document.getElementsByTagName('head')[0];\r\n }\r\n\r\n HEAD.appendChild(style.element);\r\n }\r\n\r\n if ('styleSheet' in style.element) {\r\n style.styles.push(code);\r\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\r\n } else {\r\n var index = style.ids.size - 1;\r\n var textNode = document.createTextNode(code);\r\n var nodes = style.element.childNodes;\r\n if (nodes[index]) { style.element.removeChild(nodes[index]); }\r\n if (nodes.length) { style.element.insertBefore(textNode, nodes[index]); }else { style.element.appendChild(textNode); }\r\n }\r\n }\r\n}\r\n\r\nvar browser = createInjector;\r\n\r\n/* script */\r\nvar __vue_script__ = Drag;\r\n\r\n/* template */\r\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.tag,_vm._g(_vm._b({tag:\"component\",class:_vm.cssClasses,scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'component',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\"),_vm._v(\" \"),_vm._v(\" \"),(_vm.dragInitialised)?_c('div',{ref:\"drag-image\",staticClass:\"__drag-image\"},[_vm._t(\"drag-image\")],2):_vm._e()],2)};\r\nvar __vue_staticRenderFns__ = [];\r\n\r\n /* style */\r\n var __vue_inject_styles__ = function (inject) {\r\n if (!inject) { return }\r\n inject(\"data-v-fb811e22_0\", { source: \".drop-allowed.drop-in *{cursor:inherit!important}.drop-forbidden.drop-in,.drop-forbidden.drop-in *{cursor:no-drop!important}.drag-no-handle:hover{cursor:move;cursor:grab}\", map: undefined, media: undefined })\r\n,inject(\"data-v-fb811e22_1\", { source: \"html.drag-in-progress *{cursor:move!important;cursor:grabbing!important}\", map: undefined, media: undefined })\r\n,inject(\"data-v-fb811e22_2\", { source: \".__drag-image[data-v-fb811e22]{position:fixed;top:-10000px;left:-10000px;will-change:left,top}\", map: undefined, media: undefined });\r\n\r\n };\r\n /* scoped */\r\n var __vue_scope_id__ = \"data-v-fb811e22\";\r\n /* module identifier */\r\n var __vue_module_identifier__ = undefined;\r\n /* functional template */\r\n var __vue_is_functional_template__ = false;\r\n /* style inject SSR */\r\n\r\n\r\n\r\n var Drag$1 = normalizeComponent_1(\r\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\r\n __vue_inject_styles__,\r\n __vue_script__,\r\n __vue_scope_id__,\r\n __vue_is_functional_template__,\r\n __vue_module_identifier__,\r\n browser,\r\n undefined\r\n );\r\n\r\nvar DropMixin = /** @class */ (function (_super) {\r\n __extends(DropMixin, _super);\r\n function DropMixin() {\r\n var _this = _super.call(this) || this;\r\n _this.isDrop = true;\r\n return _this;\r\n }\r\n DropMixin.prototype.effectiveAcceptsType = function (type) {\r\n if (this.acceptsType === null)\r\n { return true; }\r\n else if (typeof (this.acceptsType) === 'string')\r\n { return this.acceptsType === type; }\r\n else if (typeof (this.acceptsType) === 'object' && Array.isArray(this.acceptsType)) {\r\n return this.acceptsType.includes(type);\r\n }\r\n else {\r\n return this.acceptsType(type);\r\n }\r\n };\r\n DropMixin.prototype.effectiveAcceptsData = function (data, type) {\r\n return this.acceptsData(data, type);\r\n };\r\n DropMixin.prototype.created = function () {\r\n dnd.on(\"dragpositionchanged\", this.onDragPositionChanged);\r\n dnd.on(\"dragtopchanged\", this.onDragTopChanged);\r\n dnd.on(\"drop\", this.onDrop);\r\n dnd.on(\"dragend\", this.onDragEnd);\r\n };\r\n DropMixin.prototype.beforeDestroy = function () {\r\n dnd.off(\"dragpositionchanged\", this.onDragPositionChanged);\r\n dnd.off(\"dragtopchanged\", this.onDragTopChanged);\r\n dnd.off(\"drop\", this.onDrop);\r\n dnd.off(\"dragend\", this.onDragEnd);\r\n };\r\n DropMixin.prototype.onDragPositionChanged = function (event) {\r\n if (this === event.top) {\r\n this.$emit(\"dragover\", event);\r\n }\r\n };\r\n DropMixin.prototype.onDragTopChanged = function (event) {\r\n if (this === event.top) {\r\n this.$emit(\"dragenter\", event);\r\n }\r\n if (this === event.previousTop) {\r\n this.$emit(\"dragleave\", event);\r\n }\r\n };\r\n DropMixin.prototype.onDragEnd = function (event) {\r\n if (this === event.top) {\r\n this.$emit('dragend', event);\r\n }\r\n };\r\n DropMixin.prototype.onDrop = function (event) {\r\n if (this.dropIn && this.compatibleMode && this.dropAllowed) {\r\n this.doDrop(event);\r\n }\r\n };\r\n DropMixin.prototype.doDrop = function (event) {\r\n this.$emit('drop', event);\r\n event.source.$emit(this.mode, event);\r\n };\r\n DropMixin.prototype.mounted = function () {\r\n var el = this.$el;\r\n var comp = this;\r\n el.addEventListener('easy-dnd-move', onMouseMove);\r\n function onMouseMove(e) {\r\n dnd.mouseMove(e, comp);\r\n }\r\n };\r\n Object.defineProperty(DropMixin.prototype, \"compatibleMode\", {\r\n get: function () {\r\n if (this.dragInProgress) {\r\n return this.mode === 'copy' || dnd.sourceListeners.hasOwnProperty(this.mode);\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropMixin.prototype, \"dropIn\", {\r\n get: function () {\r\n if (this.dragInProgress) {\r\n return this.dragTop === this;\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropMixin.prototype, \"typeAllowed\", {\r\n get: function () {\r\n if (this.dragInProgress) {\r\n return this.effectiveAcceptsType(this.dragType);\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropMixin.prototype, \"dropAllowed\", {\r\n get: function () {\r\n if (this.dragInProgress) {\r\n if (this.typeAllowed) {\r\n return this.compatibleMode && this.effectiveAcceptsData(this.dragData, this.dragType);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropMixin.prototype, \"cssClasses\", {\r\n get: function () {\r\n var clazz = {\r\n 'dnd-drop': true\r\n };\r\n if (this.dropIn !== null) {\r\n clazz['drop-in'] = this.dropIn;\r\n clazz['drop-out'] = !this.dropIn;\r\n }\r\n if (this.typeAllowed !== null) {\r\n clazz['type-allowed'] = this.typeAllowed;\r\n clazz['type-forbidden'] = !this.typeAllowed;\r\n }\r\n if (this.dropAllowed !== null) {\r\n clazz['drop-allowed'] = this.dropAllowed;\r\n clazz['drop-forbidden'] = !this.dropAllowed;\r\n }\r\n return clazz;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropMixin.prototype, \"cssStyle\", {\r\n get: function () {\r\n return {};\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Returns true if the current drop area participates in the current drag operation.\r\n */\r\n DropMixin.prototype.candidate = function (type, data, source) {\r\n return this.effectiveAcceptsType(type);\r\n };\r\n DropMixin.prototype.createDragImage = function () {\r\n var image;\r\n if (this.$refs['drag-image']) {\r\n var el = this.$refs['drag-image'];\r\n if (el.childElementCount !== 1) {\r\n image = createDragImage(el);\r\n }\r\n else {\r\n image = createDragImage(el.children.item(0));\r\n }\r\n image['__opacity'] = this.dragImageOpacity;\r\n image.classList.add('dnd-ghost');\r\n }\r\n else {\r\n image = 'source';\r\n }\r\n return image;\r\n };\r\n __decorate([\r\n Prop({ default: function () { return function () { return true; }; }, type: [String, Array, Function] }),\r\n __metadata(\"design:type\", Object)\r\n ], DropMixin.prototype, \"acceptsType\", void 0);\r\n __decorate([\r\n Prop({ default: function () { return true; }, type: Function }),\r\n __metadata(\"design:type\", Object)\r\n ], DropMixin.prototype, \"acceptsData\", void 0);\r\n __decorate([\r\n Prop({ default: 'copy' }),\r\n __metadata(\"design:type\", String)\r\n ], DropMixin.prototype, \"mode\", void 0);\r\n __decorate([\r\n Prop({ default: 0.7, type: Number }),\r\n __metadata(\"design:type\", Object)\r\n ], DropMixin.prototype, \"dragImageOpacity\", void 0);\r\n DropMixin = __decorate([\r\n Component({}),\r\n __metadata(\"design:paramtypes\", [])\r\n ], DropMixin);\r\n return DropMixin;\r\n}(DragAwareMixin));\r\n\r\nvar Drop = /** @class */ (function (_super) {\r\n __extends(Drop, _super);\r\n function Drop() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Object.defineProperty(Drop.prototype, \"showDragImage\", {\r\n get: function () {\r\n return this.dragInProgress && this.typeAllowed && this.$scopedSlots['drag-image'];\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n __decorate([\r\n Prop({ default: 'div', type: [String, Object, Function] }),\r\n __metadata(\"design:type\", Object)\r\n ], Drop.prototype, \"tag\", void 0);\r\n Drop = __decorate([\r\n Component({})\r\n ], Drop);\r\n return Drop;\r\n}(DropMixin));\r\n\r\n/* script */\r\nvar __vue_script__$1 = Drop;\r\n\r\n/* template */\r\nvar __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.tag,_vm._g(_vm._b({tag:\"component\",class:_vm.cssClasses,style:(_vm.cssStyle),scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'component',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\"),_vm._v(\" \"),_vm._v(\" \"),(_vm.showDragImage)?_c('div',{ref:\"drag-image\",staticClass:\"__drag-image\"},[_vm._t(\"drag-image\",null,{\"type\":_vm.dragType,\"data\":_vm.dragData})],2):_vm._e()],2)};\r\nvar __vue_staticRenderFns__$1 = [];\r\n\r\n /* style */\r\n var __vue_inject_styles__$1 = function (inject) {\r\n if (!inject) { return }\r\n inject(\"data-v-1d9169a9_0\", { source: \".drop-allowed.drop-in,.drop-allowed.drop-in *{cursor:pointer!important}.drop-forbidden.drop-in,.drop-forbidden.drop-in *{cursor:no-drop!important}\", map: undefined, media: undefined })\r\n,inject(\"data-v-1d9169a9_1\", { source: \".__drag-image[data-v-1d9169a9]{position:fixed;top:-10000px;left:-10000px;will-change:left,top}\", map: undefined, media: undefined });\r\n\r\n };\r\n /* scoped */\r\n var __vue_scope_id__$1 = \"data-v-1d9169a9\";\r\n /* module identifier */\r\n var __vue_module_identifier__$1 = undefined;\r\n /* functional template */\r\n var __vue_is_functional_template__$1 = false;\r\n /* style inject SSR */\r\n\r\n\r\n\r\n var Drop$1 = normalizeComponent_1(\r\n { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },\r\n __vue_inject_styles__$1,\r\n __vue_script__$1,\r\n __vue_scope_id__$1,\r\n __vue_is_functional_template__$1,\r\n __vue_module_identifier__$1,\r\n browser,\r\n undefined\r\n );\r\n\r\nvar DropMask = /** @class */ (function (_super) {\r\n __extends(DropMask, _super);\r\n function DropMask() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isDropMask = true;\r\n return _this;\r\n }\r\n DropMask.prototype.mounted = function () {\r\n var el = this.$el;\r\n var comp = this;\r\n el.addEventListener('easy-dnd-move', onMouseMove);\r\n function onMouseMove(e) {\r\n dnd.mouseMove(e, comp);\r\n }\r\n };\r\n DropMask.prototype.createDragImage = function () {\r\n return 'source';\r\n };\r\n __decorate([\r\n Prop({ default: 'div', type: [String, Object, Function] }),\r\n __metadata(\"design:type\", Object)\r\n ], DropMask.prototype, \"tag\", void 0);\r\n DropMask = __decorate([\r\n Component({})\r\n ], DropMask);\r\n return DropMask;\r\n}(DragAwareMixin));\r\n\r\n/* script */\r\nvar __vue_script__$2 = DropMask;\r\n\r\n/* template */\r\nvar __vue_render__$2 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.tag,_vm._g(_vm._b({tag:\"component\",scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'component',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\")],2)};\r\nvar __vue_staticRenderFns__$2 = [];\r\n\r\n /* style */\r\n var __vue_inject_styles__$2 = undefined;\r\n /* scoped */\r\n var __vue_scope_id__$2 = undefined;\r\n /* module identifier */\r\n var __vue_module_identifier__$2 = undefined;\r\n /* functional template */\r\n var __vue_is_functional_template__$2 = false;\r\n /* style inject */\r\n\r\n /* style inject SSR */\r\n\r\n\r\n\r\n var DropMask$1 = normalizeComponent_1(\r\n { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },\r\n __vue_inject_styles__$2,\r\n __vue_script__$2,\r\n __vue_scope_id__$2,\r\n __vue_is_functional_template__$2,\r\n __vue_module_identifier__$2,\r\n undefined,\r\n undefined\r\n );\r\n\r\n/**\r\n * This class reacts to drag events emitted by the dnd object to manage a sequence of drag images and fade from one to the\r\n * other as the drag progresses.\r\n */\r\nvar DragImagesManager = /** @class */ (function (_super) {\r\n __extends(DragImagesManager, _super);\r\n function DragImagesManager() {\r\n var _this = _super.call(this) || this;\r\n _this.selfTransform = null;\r\n _this.clones = null;\r\n _this.source = null;\r\n _this.sourcePos = null;\r\n _this.sourceClone = null;\r\n dnd.on('dragstart', _this.onDragStart);\r\n dnd.on('dragtopchanged', _this.onDragTopChanged);\r\n dnd.on('dragpositionchanged', _this.onDragPositionChanged);\r\n dnd.on('dragend', _this.onDragEnd);\r\n return _this;\r\n }\r\n DragImagesManager.prototype.onDragStart = function (event) {\r\n // If go-back=true and it is still animating while they attempt another drag,\r\n // it will bug out. Best to clean up any existing elements on the page before\r\n // attempting to start the next animation\r\n this.cleanUp();\r\n this.sourcePos = {\r\n x: event.source.$el.getBoundingClientRect().left,\r\n y: event.source.$el.getBoundingClientRect().top\r\n };\r\n this.selfTransform = \"translate(-\" + (event.position.x - this.sourcePos.x) + \"px, -\" + (event.position.y - this.sourcePos.y) + \"px)\";\r\n this.clones = new Map();\r\n this.source = event.source;\r\n };\r\n DragImagesManager.prototype.onDragEnd = function (event) {\r\n var _this = this;\r\n Vue.nextTick(function () {\r\n if (!event.success && _this.source && _this.source['goBack']) {\r\n // Restore the drag image that is active when hovering outside any drop zone :\r\n var img_1 = _this.switch(null);\r\n // Move it back to its original place :\r\n window.requestAnimationFrame(function () {\r\n img_1.style.transition = \"all 0.5s\";\r\n window.requestAnimationFrame(function () {\r\n img_1.style.left = _this.sourcePos.x + \"px\";\r\n img_1.style.top = _this.sourcePos.y + \"px\";\r\n img_1.style.transform = \"translate(0,0)\";\r\n var handler = function () {\r\n _this.cleanUp();\r\n img_1.removeEventListener(\"transitionend\", handler);\r\n };\r\n img_1.addEventListener(\"transitionend\", handler);\r\n });\r\n });\r\n }\r\n else {\r\n _this.cleanUp();\r\n }\r\n });\r\n };\r\n DragImagesManager.prototype.cleanUp = function () {\r\n if (this.clones) {\r\n this.clones.forEach(function (clone) {\r\n if (clone.parentNode === document.body) {\r\n document.body.removeChild(clone);\r\n }\r\n });\r\n }\r\n if (this.sourceClone !== null) {\r\n if (this.sourceClone.parentNode === document.body) {\r\n document.body.removeChild(this.sourceClone);\r\n }\r\n }\r\n this.selfTransform = null;\r\n this.clones = null;\r\n this.source = null;\r\n this.sourceClone = null;\r\n this.sourcePos = null;\r\n };\r\n DragImagesManager.prototype.onDragTopChanged = function (event) {\r\n this.switch(event.top);\r\n };\r\n DragImagesManager.prototype.switch = function (top) {\r\n this.clones.forEach(function (clone) {\r\n clone.style.opacity = \"0\";\r\n });\r\n if (this.sourceClone) {\r\n this.sourceClone.style.opacity = \"0\";\r\n }\r\n var activeClone;\r\n if (top === null) {\r\n activeClone = this.getSourceClone();\r\n }\r\n else {\r\n if (!this.clones.has(top)) {\r\n var clone = top['createDragImage'](this.selfTransform);\r\n if (clone === 'source') {\r\n clone = this.getSourceClone();\r\n }\r\n else if (clone !== null) {\r\n clone.style.opacity = '0';\r\n document.body.appendChild(clone);\r\n }\r\n this.clones.set(top, clone);\r\n }\r\n activeClone = this.clones.get(top);\r\n }\r\n if (activeClone !== null) {\r\n activeClone.offsetWidth; // Forces browser reflow\r\n activeClone.style.opacity = activeClone['__opacity'];\r\n activeClone.style.visibility = 'visible';\r\n }\r\n return activeClone;\r\n };\r\n DragImagesManager.prototype.getSourceClone = function () {\r\n if (this.sourceClone === null) {\r\n this.sourceClone = this.source['createDragImage'](this.selfTransform);\r\n this.sourceClone.style.opacity = '0';\r\n document.body.appendChild(this.sourceClone);\r\n }\r\n return this.sourceClone;\r\n };\r\n DragImagesManager.prototype.onDragPositionChanged = function (event) {\r\n this.clones.forEach(function (clone) {\r\n clone.style.left = dnd.position.x + \"px\";\r\n clone.style.top = dnd.position.y + \"px\";\r\n });\r\n if (this.sourceClone) {\r\n this.sourceClone.style.left = dnd.position.x + \"px\";\r\n this.sourceClone.style.top = dnd.position.y + \"px\";\r\n }\r\n };\r\n DragImagesManager = __decorate([\r\n Component({}) // Necessary to set proper \"this\" context in event listeners.\r\n ,\r\n __metadata(\"design:paramtypes\", [])\r\n ], DragImagesManager);\r\n return DragImagesManager;\r\n}(Vue));\r\nnew DragImagesManager();\r\n\r\nvar DragFeedback = /** @class */ (function (_super) {\r\n __extends(DragFeedback, _super);\r\n function DragFeedback() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DragFeedback = __decorate([\r\n Component({})\r\n ], DragFeedback);\r\n return DragFeedback;\r\n}(Vue));\r\n\r\n/* script */\r\nvar __vue_script__$3 = DragFeedback;\r\n\r\n/* template */\r\nvar __vue_render__$3 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"DragFeedback\"},[_vm._t(\"default\")],2)};\r\nvar __vue_staticRenderFns__$3 = [];\r\n\r\n /* style */\r\n var __vue_inject_styles__$3 = undefined;\r\n /* scoped */\r\n var __vue_scope_id__$3 = \"data-v-0589f3cb\";\r\n /* module identifier */\r\n var __vue_module_identifier__$3 = undefined;\r\n /* functional template */\r\n var __vue_is_functional_template__$3 = false;\r\n /* style inject */\r\n\r\n /* style inject SSR */\r\n\r\n\r\n\r\n var DragFeedback$1 = normalizeComponent_1(\r\n { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },\r\n __vue_inject_styles__$3,\r\n __vue_script__$3,\r\n __vue_scope_id__$3,\r\n __vue_is_functional_template__$3,\r\n __vue_module_identifier__$3,\r\n undefined,\r\n undefined\r\n );\r\n\r\nvar Grid = /** @class */ (function () {\r\n function Grid(collection, upToIndex, row, fromIndex) {\r\n var e_1, _a;\r\n this.magnets = [];\r\n this.reference = collection.item(0).parentNode;\r\n this.referenceOriginalPosition = {\r\n x: this.reference.getBoundingClientRect().left - this.reference.scrollLeft,\r\n y: this.reference.getBoundingClientRect().top - this.reference.scrollTop,\r\n };\r\n var index = 0;\r\n try {\r\n for (var collection_1 = __values(collection), collection_1_1 = collection_1.next(); !collection_1_1.done; collection_1_1 = collection_1.next()) {\r\n var child = collection_1_1.value;\r\n if (index > upToIndex)\r\n { break; }\r\n var rect = child.getBoundingClientRect();\r\n var hasNestedDrop = child.classList.contains(\"dnd-drop\") || child.getElementsByClassName(\"dnd-drop\").length > 0;\r\n var horizontal = null;\r\n if (hasNestedDrop) {\r\n if (row === 'auto') {\r\n // Auto mode not supported for now. Row or column must be defined explicitly if there are nested drop lists.\r\n throw new Error(\"Easy-DnD error : a drop list is missing one of these attributes : 'row' or 'column'.\");\r\n }\r\n else {\r\n horizontal = row === 'row';\r\n }\r\n }\r\n if (fromIndex === null) {\r\n // Inserting mode.\r\n this.magnets.push(hasNestedDrop ? this.before(rect, horizontal) : this.center(rect));\r\n }\r\n else {\r\n // Reordering mode.\r\n this.magnets.push(hasNestedDrop ? (fromIndex < index ? this.after : this.before)(rect, horizontal) : this.center(rect));\r\n }\r\n // Debug : show magnets :\r\n //document.body.insertAdjacentHTML(\"beforeend\", \"<div style='background-color: red; position: fixed; width: 1px; height: 1px; top:\" + this.magnets[index].y + \"px; left:\" + this.magnets[index].x + \"px;' ></div>\")\r\n index++;\r\n }\r\n }\r\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n finally {\r\n try {\r\n if (collection_1_1 && !collection_1_1.done && (_a = collection_1.return)) { _a.call(collection_1); }\r\n }\r\n finally { if (e_1) { throw e_1.error; } }\r\n }\r\n }\r\n /**\r\n * Returns the center of the rectangle.\r\n */\r\n Grid.prototype.center = function (rect) {\r\n return {\r\n x: rect.left + rect.width / 2,\r\n y: rect.top + rect.height / 2\r\n };\r\n };\r\n /**\r\n * When horizontal is true / false, returns middle of the left / top side of the rectangle.\r\n */\r\n Grid.prototype.before = function (rect, horizontal) {\r\n return horizontal ? {\r\n x: rect.left,\r\n y: rect.top + rect.height / 2\r\n } : {\r\n x: rect.left + rect.width / 2,\r\n y: rect.top\r\n };\r\n };\r\n /**\r\n * When horizontal is true / false, returns middle of the right / bottom side of the rectangle.\r\n */\r\n Grid.prototype.after = function (rect, horizontal) {\r\n return horizontal ? {\r\n x: rect.left + rect.width,\r\n y: rect.top + rect.height / 2\r\n } : {\r\n x: rect.left + rect.width / 2,\r\n y: rect.top + rect.height\r\n };\r\n };\r\n /**\r\n * In case the user scrolls during the drag, the position of the magnets are not what they used to be when the drag\r\n * started. A correction must be applied that takes into account the amount of scroll. This correction is the\r\n * difference between the current position of the parent element and its position when the drag started.\r\n */\r\n Grid.prototype.correction = function () {\r\n return {\r\n x: this.reference.getBoundingClientRect().left - this.reference.scrollLeft - this.referenceOriginalPosition.x,\r\n y: this.reference.getBoundingClientRect().top - this.reference.scrollTop - this.referenceOriginalPosition.y,\r\n };\r\n };\r\n Grid.prototype.closestIndex = function (position) {\r\n var x = position.x - this.correction().x;\r\n var y = position.y - this.correction().y;\r\n var minDist = 999999;\r\n var index = -1;\r\n for (var i = 0; i < this.magnets.length; i++) {\r\n var magnet = this.magnets[i];\r\n var dist = Math.sqrt(Math.pow(magnet.x - x, 2) + Math.pow(magnet.y - y, 2));\r\n if (dist < minDist) {\r\n minDist = dist;\r\n index = i;\r\n }\r\n }\r\n return index;\r\n };\r\n return Grid;\r\n}());\r\n\r\nvar DnDEvent = /** @class */ (function () {\r\n function DnDEvent() {\r\n }\r\n return DnDEvent;\r\n}());\r\nvar ReorderEvent = /** @class */ (function () {\r\n function ReorderEvent(from, to) {\r\n this.from = from;\r\n this.to = to;\r\n }\r\n ReorderEvent.prototype.apply = function (array) {\r\n var tmp = array[this.from];\r\n array.splice(this.from, 1);\r\n array.splice(this.to, 0, tmp);\r\n };\r\n return ReorderEvent;\r\n}());\r\nvar InsertEvent = /** @class */ (function () {\r\n function InsertEvent(type, data, index) {\r\n this.type = type;\r\n this.data = data;\r\n this.index = index;\r\n }\r\n return InsertEvent;\r\n}());\r\n\r\nvar DropList = /** @class */ (function (_super) {\r\n __extends(DropList, _super);\r\n function DropList() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.grid = null;\r\n _this.forbiddenKeys = [];\r\n _this.feedbackKey = null;\r\n _this.fromIndex = null;\r\n return _this;\r\n }\r\n Object.defineProperty(DropList.prototype, \"rootTag\", {\r\n get: function () {\r\n if (this.noAnimations) {\r\n return this.tag ? this.tag : 'div';\r\n }\r\n else {\r\n return \"transition-group\";\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"rootProps\", {\r\n get: function () {\r\n if (this.noAnimations) {\r\n return this.$attrs;\r\n }\r\n else {\r\n return {\r\n tag: this.tag,\r\n duration: { enter: 0, leave: 0 },\r\n css: false\r\n };\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"rootListeners\", {\r\n get: function () {\r\n if (this.noAnimations) {\r\n return this.$listeners;\r\n }\r\n else {\r\n return {};\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DropList.prototype.created = function () {\r\n dnd.on(\"dragstart\", this.onDragStart);\r\n dnd.on(\"dragend\", this.onDragEnd);\r\n };\r\n Object.defineProperty(DropList.prototype, \"direction\", {\r\n get: function () {\r\n if (this.row)\r\n { return 'row'; }\r\n if (this.column)\r\n { return 'column'; }\r\n return 'auto';\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DropList.prototype.beforeDestroy = function () {\r\n dnd.off(\"dragstart\", this.onDragStart);\r\n dnd.off(\"dragend\", this.onDragEnd);\r\n };\r\n // Presence of feedback node in the DOM and of keys in the virtual DOM required => delayed until what\r\n // depends on drag data has been processed.\r\n DropList.prototype.refresh = function () {\r\n var _this = this;\r\n this.$nextTick(function () {\r\n _this.grid = _this.computeInsertingGrid();\r\n _this.feedbackKey = _this.computeFeedbackKey();\r\n _this.forbiddenKeys = _this.computeForbiddenKeys();\r\n });\r\n };\r\n DropList.prototype.onDragStart = function (event) {\r\n if (this.candidate(dnd.type, dnd.data, dnd.source)) {\r\n if (this.reordering) {\r\n this.fromIndex = Array.prototype.indexOf.call(event.source.$el.parentElement.children, event.source.$el);\r\n this.grid = this.computeReorderingGrid();\r\n }\r\n else {\r\n this.refresh();\r\n }\r\n }\r\n };\r\n DropList.prototype.onDragEnd = function () {\r\n this.fromIndex = null;\r\n this.feedbackKey = null;\r\n this.forbiddenKeys = null;\r\n this.grid = null;\r\n };\r\n Object.defineProperty(DropList.prototype, \"reordering\", {\r\n get: function () {\r\n if (dnd.inProgress) {\r\n return dnd.source.$el.parentElement === this.$el && this.$listeners.hasOwnProperty('reorder');\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"closestIndex\", {\r\n get: function () {\r\n if (this.grid) {\r\n return this.grid.closestIndex(dnd.position);\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"dropAllowed\", {\r\n get: function () {\r\n if (this.dragInProgress) {\r\n if (this.reordering) {\r\n return this.items.length > 1;\r\n }\r\n else {\r\n var superDropAllowed = DropMixin['options'].computed.dropAllowed.get.call(this);\r\n if (!superDropAllowed) {\r\n return false;\r\n }\r\n else {\r\n if (this.forbiddenKeys !== null && this.feedbackKey !== null) {\r\n return !this.forbiddenKeys.includes(this.feedbackKey);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"itemsBeforeFeedback\", {\r\n get: function () {\r\n if (this.closestIndex === 0) {\r\n return [];\r\n }\r\n else {\r\n return this.items.slice(0, this.closestIndex);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"itemsAfterFeedback\", {\r\n get: function () {\r\n if (this.closestIndex === this.items.length) {\r\n return [];\r\n }\r\n else {\r\n return this.items.slice(this.closestIndex);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"itemsBeforeReorderingFeedback\", {\r\n get: function () {\r\n if (this.closestIndex <= this.fromIndex) {\r\n return this.items.slice(0, this.closestIndex);\r\n }\r\n else {\r\n return this.items.slice(0, this.closestIndex + 1);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"itemsAfterReorderingFeedback\", {\r\n get: function () {\r\n if (this.closestIndex <= this.fromIndex) {\r\n return this.items.slice(this.closestIndex);\r\n }\r\n else {\r\n return this.items.slice(this.closestIndex + 1);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"reorderedItems\", {\r\n get: function () {\r\n var toIndex = this.closestIndex;\r\n var reordered = __spread(this.items);\r\n var temp = reordered[this.fromIndex];\r\n reordered.splice(this.fromIndex, 1);\r\n reordered.splice(toIndex, 0, temp);\r\n return reordered;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"clazz\", {\r\n get: function () {\r\n return __assign({ 'drop-list': true, 'reordering': this.reordering === true, 'inserting': this.reordering === false }, (this.reordering === false ? this.cssClasses : { 'dnd-drop': true }));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"style\", {\r\n get: function () {\r\n return __assign({}, (this.reordering === false ? this.cssStyle : {}));\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"showDragFeedback\", {\r\n get: function () {\r\n return this.dragInProgress && this.typeAllowed && !this.reordering;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"showInsertingDragImage\", {\r\n get: function () {\r\n return this.dragInProgress && this.typeAllowed && !this.reordering && this.$scopedSlots.hasOwnProperty(\"drag-image\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(DropList.prototype, \"showReorderingDragImage\", {\r\n get: function () {\r\n return this.dragInProgress && this.reordering && this.$scopedSlots.hasOwnProperty(\"reordering-drag-image\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DropList.prototype.doDrop = function (event) {\r\n if (this.reordering) {\r\n if (this.fromIndex !== this.closestIndex) {\r\n this.$emit('reorder', new ReorderEvent(this.fromIndex, this.closestIndex));\r\n }\r\n }\r\n else {\r\n DropMixin['options'].methods.doDrop.call(this, event);\r\n this.$emit('insert', new InsertEvent(event.type, event.data, this.closestIndex));\r\n }\r\n };\r\n DropList.prototype.candidate = function (type, data, source) {\r\n var _a;\r\n var superCandidate = (_a = DropMixin['options'].methods.candidate).call.apply(_a, __spread([this], arguments));\r\n return (superCandidate && (this.$listeners.hasOwnProperty(\"insert\") || this.$listeners.hasOwnProperty(\"drop\"))) || this.reordering;\r\n };\r\n DropList.prototype.computeForbiddenKeys = function () {\r\n var vnodes = this.noAnimations ? [] : this.$children[0].$vnode.context.$children[0].$slots.default;\r\n return vnodes\r\n .map(function (vn) { return vn.key; })\r\n .filter(function (k) { return k !== undefined && k !== 'drag-image' && k !== 'drag-feedback'; });\r\n };\r\n DropList.prototype.computeFeedbackKey = function () {\r\n return this.$refs['feedback']['$slots']['default'][0]['key'];\r\n };\r\n Object.defineProperty(DropList.prototype, \"hasReorderingFeedback\", {\r\n get: function () {\r\n return this.$scopedSlots.hasOwnProperty(\"reordering-feedback\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n DropList.prototype.computeInsertingGrid = function () {\r\n var feedbackParent = this.$refs['feedback']['$el'];\r\n var feedback = feedbackParent.children[0];\r\n var clone = feedback.cloneNode(true);\r\n var tg = this.$el;\r\n if (tg.children.length > this.items.length) {\r\n tg.insertBefore(clone, tg.children[this.items.length]);\r\n }\r\n else {\r\n tg.appendChild(clone);\r\n }\r\n var grid = new Grid(tg.children, this.items.length, this.direction, null);\r\n tg.removeChild(clone);\r\n return grid;\r\n };\r\n DropList.prototype.computeReorderingGrid = function () {\r\n var tg = this.$el;\r\n return new Grid(tg.children, this.items.length - 1, this.direction, this.fromIndex);\r\n };\r\n DropList.prototype.createDragImage = function () {\r\n var image;\r\n if (this.$refs['drag-image']) {\r\n var el = this.$refs['drag-image'];\r\n var model = void 0;\r\n if (el.childElementCount !== 1) {\r\n model = el;\r\n }\r\n else {\r\n model = el.children.item(0);\r\n }\r\n var clone = model.cloneNode(true);\r\n var tg = this.$el;\r\n tg.appendChild(clone);\r\n image = createDragImage(clone);\r\n tg.removeChild(clone);\r\n image['__opacity'] = this.dragImageOpacity;\r\n image.classList.add('dnd-ghost');\r\n }\r\n else {\r\n image = 'source';\r\n }\r\n return image;\r\n };\r\n __decorate([\r\n Prop({ default: 'div', type: [String, Object, Function] }),\r\n __metadata(\"design:type\", Object)\r\n ], DropList.prototype, \"tag\", void 0);\r\n __decorate([\r\n Prop(),\r\n __metadata(\"design:type\", Array)\r\n ], DropList.prototype, \"items\", void 0);\r\n __decorate([\r\n Prop({ default: null }),\r\n __metadata(\"design:type\", Boolean)\r\n ], DropList.prototype, \"row\", void 0);\r\n __decorate([\r\n Prop({ default: null, type: Boolean }),\r\n __metadata(\"design:type\", Boolean)\r\n ], DropList.prototype, \"column\", void 0);\r\n __decorate([\r\n Prop({ default: false, type: Boolean }),\r\n __metadata(\"design:type\", Boolean)\r\n ], DropList.prototype, \"noAnimations\", void 0);\r\n __decorate([\r\n Prop({ type: Number, default: undefined }),\r\n __metadata(\"design:type\", Number)\r\n ], DropList.prototype, \"scrollingEdgeSize\", void 0);\r\n DropList = __decorate([\r\n Component({\r\n components: { DragFeedback: DragFeedback$1 },\r\n inheritAttrs: false\r\n })\r\n ], DropList);\r\n return DropList;\r\n}(DropMixin));\r\n\r\n/* script */\r\nvar __vue_script__$4 = DropList;\r\n\r\n/* template */\r\nvar __vue_render__$4 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.rootTag,_vm._g(_vm._b({tag:\"component\",class:_vm.clazz,style:(_vm.style)},'component',_vm.rootProps,false),_vm.rootListeners),[(_vm.dropIn && _vm.dropAllowed)?[(_vm.reordering)?[(_vm.hasReorderingFeedback)?[_vm._l((_vm.itemsBeforeReorderingFeedback),function(item,index){return _vm._t(\"item\",null,{\"item\":item,\"index\":index})}),_vm._v(\" \"),_vm._t(\"reordering-feedback\",null,{\"item\":_vm.items[_vm.fromIndex]}),_vm._v(\" \"),_vm._l((_vm.itemsAfterReorderingFeedback),function(item,index){return _vm._t(\"item\",null,{\"item\":item,\"index\":_vm.itemsBeforeReorderingFeedback.length + index})})]:[_vm._l((_vm.reorderedItems),function(item,index){return _vm._t(\"item\",null,{\"item\":item,\"index\":index,\"reorder\":index === _vm.closestIndex})})]]:[_vm._l((_vm.itemsBeforeFeedback),function(item,index){return _vm._t(\"item\",null,{\"item\":item,\"reorder\":false,\"index\":index})}),_vm._v(\" \"),_vm._t(\"feedback\",null,{\"data\":_vm.dragData,\"type\":_vm.dragType}),_vm._v(\" \"),_vm._l((_vm.itemsAfterFeedback),function(item,index){return _vm._t(\"item\",null,{\"item\":item,\"reorder\":false,\"index\":_vm.itemsBeforeFeedback.length + index})})]]:[_vm._l((_vm.items),function(item,index){return _vm._t(\"item\",null,{\"item\":item,\"reorder\":false,\"index\":index})}),_vm._v(\" \"),(_vm.items.length < 1)?_vm._t(\"empty\"):_vm._e()],_vm._v(\" \"),(_vm.showDragFeedback)?_c('drag-feedback',{key:\"drag-feedback\",ref:\"feedback\",staticClass:\"__feedback\"},[_vm._t(\"feedback\",null,{\"data\":_vm.dragData,\"type\":_vm.dragType})],2):_vm._e(),_vm._v(\" \"),(_vm.showInsertingDragImage)?_c('div',{key:\"inserting-drag-image\",ref:\"drag-image\",staticClass:\"__drag-image\"},[_vm._t(\"drag-image\",null,{\"type\":_vm.dragType,\"data\":_vm.dragData})],2):_vm._e(),_vm._v(\" \"),(_vm.showReorderingDragImage)?_c('div',{key:\"reordering-drag-image\",ref:\"drag-image\",staticClass:\"__drag-image\"},[_vm._t(\"reordering-drag-image\",null,{\"item\":_vm.items[_vm.fromIndex]})],2):_vm._e(),_vm._v(\" \"),_vm._t(\"default\")],2)};\r\nvar __vue_staticRenderFns__$4 = [];\r\n\r\n /* style */\r\n var __vue_inject_styles__$4 = function (inject) {\r\n if (!inject) { return }\r\n inject(\"data-v-228404f8_0\", { source: \".drop-list[data-v-228404f8]>*{transition:transform .2s}.__feedback[data-v-228404f8]{display:none}.__drag-image[data-v-228404f8]{position:fixed;top:-10000px;left:-10000px;will-change:left,top}\", map: undefined, media: undefined })\r\n,inject(\"data-v-228404f8_1\", { source: \".drop-allowed.drop-in *{cursor:inherit!important}.drop-forbidden.drop-in,.drop-forbidden.drop-in *{cursor:no-drop!important}\", map: undefined, media: undefined });\r\n\r\n };\r\n /* scoped */\r\n var __vue_scope_id__$4 = \"data-v-228404f8\";\r\n /* module identifier */\r\n var __vue_module_identifier__$4 = undefined;\r\n /* functional template */\r\n var __vue_is_functional_template__$4 = false;\r\n /* style inject SSR */\r\n\r\n\r\n\r\n var DropList$1 = normalizeComponent_1(\r\n { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },\r\n __vue_inject_styles__$4,\r\n __vue_script__$4,\r\n __vue_scope_id__$4,\r\n __vue_is_functional_template__$4,\r\n __vue_module_identifier__$4,\r\n browser,\r\n undefined\r\n );\r\n\r\nexport { DnDEvent, Drag$1 as Drag, DragAwareMixin, DragImagesManager, DragMixin, Drop$1 as Drop, DropList$1 as DropList, DropMask$1 as DropMask, DropMixin, InsertEvent, ReorderEvent, createDragImage, dnd };\r\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","this","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__values","o","m","Symbol","iterator","next","value","done","__read","e","ar","push","error","__spread","concat","dnd","DnD","inProgress","type","data","source","top","position","eventBus","Vue","sourceListeners","success","startDrag","event","x","y","$listeners","emit","previousTop","resetVariables","stopDrag","cancelDrag","mouseMove","comp","prevent","stopPropagation","detail","native","$emit","on","callback","$on","off","$off","observable","DragAwareMixin","_super","get","enumerable","configurable","createDragImage","el","clone","cloneNode","copyStyle","vSrcElements","getElementsByTagName","vDstElements","deepClone","style","margin","transition","src","destination","e_1","_a","computedStyle","window","getComputedStyle","computedStyle_1","computedStyle_1_1","width","getPropertyValue","clientWidth","parseFloat","paddingLeft","paddingRight","setProperty","height","clientHeight","paddingTop","paddingBottom","getPropertyPriority","e_1_1","return","pointerEvents","regex","node","prop","scrollparent","document","body","test","scroll","parentNode","timer","cancelScrollAction","clearTimeout","performEdgeScroll","container","clientX","clientY","edgeSize","rect","getBoundingClientRect","isBody","viewportX","left","viewportY","viewportWidth","viewportHeight","documentElement","edgeTop","edgeLeft","edgeBottom","edgeRight","isInLeftEdge","isInRightEdge","isInTopEdge","isInBottomEdge","documentWidth","Math","max","scrollWidth","offsetWidth","documentHeight","scrollHeight","offsetHeight","maxScrollX","maxScrollY","checkForWindowScroll","currentScrollX","scrollLeft","currentScrollY","scrollTop","pageXOffset","pageYOffset","canScrollUp","canScrollDown","canScrollLeft","canScrollRight","nextScrollX","nextScrollY","maxStep","min","scrollTo","adjustWindowScroll","setTimeout","DragMixin","_this","dragInitialised","dragStarted","ignoreNextClick","initialUserSelect","downEvent","startPosition","delayTimer","scrollContainer","onSelectStart","preventDefault","performVibration","vibration","navigator","vibrate","onMouseDown","goodButton","mouse","buttons","touch","touches","disabled","matches","handle","userSelect","delay","addEventListener","onMouseClick","onMouseUp","onKeyUp","onMouseMove","passive","onEasyDnDMove","stopImmediatePropagation","elementFromPoint","dist","sqrt","pow","delta","classList","add","currEdgeSize","dragTop","undefined","$props","scrollingEdgeSize","$el","custom","CustomEvent","bubbles","cancelable","dispatchEvent","cancelDragActions","finishDrag","remove","removeEventListener","dndDragStart","ev","dndDragEnd","created","mounted","beforeDestroy","clazz","dragInProgress","dragSource","currentDropMode","selfTransform","image","$scopedSlots","$refs","createElement","childElementCount","children","item","transform","dragClass","dragImageOpacity","default","String","Number","Boolean","required","Drag","Function","HEAD","normalizeComponent_1","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","options","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","isOldIE","userAgent","toLowerCase","styles","browser","id","css","group","media","ids","Set","has","code","map","sources","btoa","unescape","encodeURIComponent","JSON","stringify","element","setAttribute","head","appendChild","styleSheet","cssText","filter","join","index","size","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","addStyle","Drag$1","_vm","_h","$createElement","_c","_self","tag","_g","_b","class","cssClasses","scopedSlots","_u","_l","_","slot","fn","scope","_t","$attrs","_v","ref","staticClass","_e","inject","DropMixin","isDrop","effectiveAcceptsType","acceptsType","isArray","includes","effectiveAcceptsData","acceptsData","onDragPositionChanged","onDragTopChanged","onDrop","onDragEnd","dropIn","compatibleMode","dropAllowed","doDrop","mode","dragType","typeAllowed","dragData","candidate","Drop","Drop$1","cssStyle","showDragImage","DropMask","isDropMask","DropMask$1","DragImagesManager","clones","sourcePos","sourceClone","onDragStart","cleanUp","Map","nextTick","img_1","switch","requestAnimationFrame","handler","forEach","activeClone","opacity","getSourceClone","set","visibility","DragFeedback","DragFeedback$1","Grid","collection","upToIndex","row","fromIndex","magnets","reference","referenceOriginalPosition","collection_1","collection_1_1","child","hasNestedDrop","contains","getElementsByClassName","horizontal","Error","before","center","after","correction","closestIndex","minDist","magnet","DnDEvent","ReorderEvent","from","to","array","tmp","splice","InsertEvent","DropList","grid","forbiddenKeys","feedbackKey","noAnimations","duration","enter","leave","column","refresh","$nextTick","computeInsertingGrid","computeFeedbackKey","computeForbiddenKeys","reordering","indexOf","parentElement","computeReorderingGrid","items","computed","slice","toIndex","reordered","temp","methods","$children","$slots","vn","k","tg","direction","components","inheritAttrs","DropList$1","rootTag","rootProps","rootListeners","hasReorderingFeedback","itemsBeforeReorderingFeedback","itemsAfterReorderingFeedback","reorderedItems","itemsBeforeFeedback","itemsAfterFeedback","showDragFeedback","showInsertingDragImage","showReorderingDragImage"],"mappings":"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"}