1 line
95 KiB
Plaintext
1 line
95 KiB
Plaintext
{"version":3,"file":"vue-easy-dnd.min.js","sources":["../src/vue-easy-dnd.js"],"sourcesContent":["/* eslint-disable */\r\n/*eslint no-unused-vars: \"off\" */\r\n/* Miqra Engineering: (c) 2020 added modifications to work as es6 module and preserve vue tag names during minification\r\n*/\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\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\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 = 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\nDnD.prototype.startDrag = function startDrag (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 = {\r\n x: x,\r\n y: y\r\n };\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\nDnD.prototype.stopDrag = function stopDrag (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.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\nDnD.prototype.mouseMove = function mouseMove (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\nDnD.prototype.emit = function emit (native, event, data) {\r\n this.eventBus.$emit(event, Object.assign({}, {type: this.type,\r\n data: this.data,\r\n top: this.top,\r\n source: this.source,\r\n position: this.position,\r\n success: this.success,\r\n native: native},\r\n data));\r\n};\r\nDnD.prototype.on = function on (event, callback) {\r\n this.eventBus.$on(event, callback);\r\n};\r\nDnD.prototype.off = function off (event, callback) {\r\n this.eventBus.$off(event, callback);\r\n};\r\nvar dnd = new DnD();\r\ndnd = Vue.observable(dnd);\r\n\r\nvar DragAwareMixin = /*@__PURE__*/(function (Vue) {\r\n function DragAwareMixin () {\r\n Vue.apply(this, arguments);\r\n }\r\n\r\n if ( Vue ) DragAwareMixin.__proto__ = Vue;\r\n DragAwareMixin.prototype = Object.create( Vue && Vue.prototype );\r\n DragAwareMixin.prototype.constructor = DragAwareMixin;\r\n\r\n var prototypeAccessors = { dragInProgress: { configurable: true },dragData: { configurable: true },dragType: { configurable: true },dragPosition: { configurable: true },dragSource: { configurable: true },dragTop: { configurable: true } };\r\n\r\n prototypeAccessors.dragInProgress.get = function () {\r\n return dnd.inProgress;\r\n };\r\n prototypeAccessors.dragData.get = function () {\r\n return dnd.data;\r\n };\r\n prototypeAccessors.dragType.get = function () {\r\n return dnd.type;\r\n };\r\n prototypeAccessors.dragPosition.get = function () {\r\n return dnd.position;\r\n };\r\n prototypeAccessors.dragSource.get = function () {\r\n return dnd.source;\r\n };\r\n prototypeAccessors.dragTop.get = function () {\r\n return dnd.top;\r\n };\r\n\r\n Object.defineProperties( DragAwareMixin.prototype, prototypeAccessors );\r\n\r\n return DragAwareMixin;\r\n}(Vue));\r\nDragAwareMixin = __decorate([\r\n Component({ name: \"DragAwareMixin\",})\r\n], DragAwareMixin);\r\nvar DragAwareMixin$1 = DragAwareMixin;\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 computedStyle = window.getComputedStyle(src);\r\n Array.from(computedStyle).forEach(function (key) {\r\n destination.style.setProperty(key, computedStyle.getPropertyValue(key), computedStyle.getPropertyPriority(key));\r\n });\r\n destination.style.pointerEvents = 'none';\r\n}\r\n\r\nvar DragMixin = /*@__PURE__*/(function (DragAwareMixin) {\r\n function DragMixin() {\r\n DragAwareMixin.apply(this, arguments);\r\n this.isDrag = true;\r\n this.mouseIn = null;\r\n }\r\n\r\n if ( DragAwareMixin ) DragMixin.__proto__ = DragAwareMixin;\r\n DragMixin.prototype = Object.create( DragAwareMixin && DragAwareMixin.prototype );\r\n DragMixin.prototype.constructor = DragMixin;\r\n\r\n var prototypeAccessors = { dragIn: { configurable: true },cssClasses: { configurable: true },currentDropMode: { configurable: true } };\r\n DragMixin.prototype.created = function created () {\r\n this.reEmit(\"dragstart\");\r\n this.reEmit(\"dragend\");\r\n };\r\n DragMixin.prototype.reEmit = function reEmit (eventName) {\r\n var this$1 = this;\r\n\r\n dnd.on(eventName, function (ev) {\r\n if (ev.source === this$1) {\r\n this$1.$emit(eventName, ev);\r\n }\r\n });\r\n };\r\n DragMixin.prototype.mounted = function mounted () {\r\n var isNodeList = function (el) {\r\n return 'item' in el;\r\n };\r\n var comp = this;\r\n var el = this.$el;\r\n var dragStarted = false;\r\n var initialUserSelect;\r\n var downEvent = null;\r\n var startPosition = null;\r\n if (this.handle) {\r\n el = this.$el.querySelectorAll(this.handle);\r\n }\r\n if (isNodeList(el)) {\r\n el.forEach(function (element) {\r\n element.addEventListener('mousedown', onMouseDown);\r\n element.addEventListener('touchstart', onMouseDown);\r\n element.addEventListener('mouseenter', onMouseEnter);\r\n element.addEventListener('mouseleave', onMouseLeave);\r\n });\r\n }\r\n else {\r\n el.addEventListener('mousedown', onMouseDown);\r\n el.addEventListener('touchstart', onMouseDown);\r\n el.addEventListener('mouseenter', onMouseEnter);\r\n el.addEventListener('mouseleave', onMouseLeave);\r\n }\r\n function onMouseEnter() {\r\n comp.mouseIn = true;\r\n }\r\n function onMouseLeave() {\r\n comp.mouseIn = false;\r\n }\r\n function noop(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n function onMouseDown(e) {\r\n if (!comp.disabled && downEvent === null) {\r\n 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 dragStarted = false;\r\n downEvent = e;\r\n if (downEvent.type === 'mousedown') {\r\n var mouse = event;\r\n 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 startPosition = {\r\n x: touch.touches[0].clientX,\r\n y: touch.touches[0].clientY\r\n };\r\n }\r\n document.addEventListener('mousemove', onMouseMove);\r\n document.addEventListener('touchmove', onMouseMove, { passive: false });\r\n document.addEventListener('easy-dnd-move', onEasyDnDMove);\r\n document.addEventListener('mouseup', onMouseUp);\r\n document.addEventListener('touchend', onMouseUp);\r\n document.addEventListener('selectstart', noop);\r\n // Prevents event from bubbling to ancestor drag components and initiate several drags at the same time\r\n e.stopPropagation();\r\n // Prevents touchstart event to be converted to mousedown\r\n //e.preventDefault();\r\n }\r\n }\r\n function onMouseMove(e) {\r\n // We ignore the mousemove event that follows touchend :\r\n if (downEvent === null)\r\n { return; }\r\n // On touch devices, we ignore fake mouse events and deal with touch events only.\r\n if (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 }\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(startPosition.x - x, 2) + Math.pow(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 (!dragStarted && dist > comp.delta) {\r\n dragStarted = true;\r\n dnd.startDrag(comp, downEvent, startPosition.x, startPosition.y, comp.type, comp.data);\r\n document.documentElement.classList.add('drag-in-progress');\r\n }\r\n // Dispatch custom easy-dnd-move event :\r\n if (dragStarted) {\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 :\r\n e.preventDefault();\r\n }\r\n function onEasyDnDMove(e) {\r\n dnd.mouseMove(e, null);\r\n }\r\n function onMouseUp(e) {\r\n // On touch devices, we ignore fake mouse events and deal with touch events only.\r\n if (downEvent.type === 'touchstart' && e.type === 'mouseup')\r\n { return; }\r\n downEvent = null;\r\n // This delay makes sure that when the click event that results from the mouseup is produced, the drag is still\r\n // in progress. So by checking the flag dnd.inProgress, one can tell appart true clicks from drag and drop artefacts.\r\n setTimeout(function () {\r\n if (dragStarted) {\r\n document.documentElement.classList.remove('drag-in-progress');\r\n dnd.stopDrag(e);\r\n }\r\n document.removeEventListener('mousemove', onMouseMove);\r\n document.removeEventListener('touchmove', onMouseMove);\r\n document.removeEventListener('easy-dnd-move', onEasyDnDMove);\r\n document.removeEventListener('mouseup', onMouseUp);\r\n document.removeEventListener('touchend', onMouseUp);\r\n document.removeEventListener('selectstart', noop);\r\n document.documentElement.style.userSelect = initialUserSelect;\r\n }, 0);\r\n }\r\n };\r\n prototypeAccessors.dragIn.get = function () {\r\n return !this.dragInProgress && this.mouseIn;\r\n };\r\n prototypeAccessors.cssClasses.get = function () {\r\n if (!this.disabled) {\r\n return {\r\n 'drag-source': this.dragInProgress && this.dragSource === this,\r\n 'drag-in': this.dragIn,\r\n 'drag-out': !this.dragIn,\r\n 'drag-mode-copy': this.currentDropMode === 'copy',\r\n 'drag-mode-cut': this.currentDropMode === 'cut',\r\n 'drag-mode-reordering': this.currentDropMode === 'reordering',\r\n };\r\n }\r\n else {\r\n return {};\r\n }\r\n };\r\n prototypeAccessors.currentDropMode.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 DragMixin.prototype.createDragImage = function createDragImage$1 (selfTransform) {\r\n var image;\r\n if (this.$scopedSlots['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 }\r\n else {\r\n image = createDragImage(this.$el);\r\n image.style.transform = selfTransform;\r\n }\r\n image['__opacity'] = this.dragImageOpacity;\r\n return image;\r\n };\r\n\r\n Object.defineProperties( DragMixin.prototype, prototypeAccessors );\r\n\r\n return DragMixin;\r\n}(DragAwareMixin$1));\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\nDragMixin = __decorate([\r\n Component({ name: \"DragMixin\",})\r\n], DragMixin);\r\nvar DragMixin$1 = DragMixin;\r\n\r\nvar Drag = /*@__PURE__*/(function (DragMixin) {\r\n function Drag () {\r\n DragMixin.apply(this, arguments);\r\n }if ( DragMixin ) Drag.__proto__ = DragMixin;\r\n Drag.prototype = Object.create( DragMixin && DragMixin.prototype );\r\n Drag.prototype.constructor = Drag;\r\n\r\n \r\n\r\n return Drag;\r\n}(DragMixin$1));\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\nDrag = __decorate([\r\n Component({ name: \"Drag\",})\r\n], Drag);\r\nvar script = Drag;\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__ = script;\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,style:({cursor: _vm.disabled || _vm.handle ? null : 'grab'}),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(\" \"),_c('div',{ref:\"drag-image\",staticClass:\"__drag-image\"},[_vm._t(\"drag-image\")],2)],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-15f89b5d_0\", { 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,inject(\"data-v-15f89b5d_1\", { source: \"html.drag-in-progress *{cursor:grabbing!important}\", map: undefined, media: undefined })\r\n,inject(\"data-v-15f89b5d_2\", { source: \".__drag-image[data-v-15f89b5d]{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-15f89b5d\";\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 = /*@__PURE__*/(function (DragAwareMixin) {\r\n function DropMixin() {\r\n DragAwareMixin.call(this);\r\n this.isDrop = true;\r\n }\r\n\r\n if ( DragAwareMixin ) DropMixin.__proto__ = DragAwareMixin;\r\n DropMixin.prototype = Object.create( DragAwareMixin && DragAwareMixin.prototype );\r\n DropMixin.prototype.constructor = DropMixin;\r\n\r\n var prototypeAccessors = { compatibleMode: { configurable: true },dropIn: { configurable: true },typeAllowed: { configurable: true },dropAllowed: { configurable: true },cssClasses: { configurable: true },cssStyle: { configurable: true } };\r\n DropMixin.prototype.effectiveAcceptsType = function effectiveAcceptsType (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 effectiveAcceptsData (data, type) {\r\n return this.acceptsData(data, type);\r\n };\r\n DropMixin.prototype.created = function created () {\r\n dnd.on(\"dragpositionchanged\", this.onDragPositionChanged);\r\n dnd.on(\"dragtopchanged\", this.onDragTopChanged);\r\n dnd.on(\"drop\", this.onDrop);\r\n };\r\n DropMixin.prototype.destroyed = function destroyed () {\r\n dnd.off(\"dragpositionchanged\", this.onDragPositionChanged);\r\n dnd.off(\"dragtopchanged\", this.onDragTopChanged);\r\n dnd.off(\"drop\", this.onDrop);\r\n };\r\n DropMixin.prototype.onDragPositionChanged = function onDragPositionChanged (event) {\r\n if (this === event.top) {\r\n this.$emit(\"dragover\", event);\r\n }\r\n };\r\n DropMixin.prototype.onDragTopChanged = function onDragTopChanged (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.onDrop = function onDrop (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 doDrop (event) {\r\n this.$emit('drop', event);\r\n event.source.$emit(this.mode, event);\r\n };\r\n DropMixin.prototype.mounted = function mounted () {\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 prototypeAccessors.compatibleMode.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 prototypeAccessors.dropIn.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 prototypeAccessors.typeAllowed.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 prototypeAccessors.dropAllowed.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 prototypeAccessors.cssClasses.get = function () {\r\n var clazz = {\r\n 'dnd-drop': true\r\n };\r\n if (this.dropIn !== null) {\r\n clazz = Object.assign({}, clazz,\r\n {\"drop-in\": this.dropIn,\r\n \"drop-out\": !this.dropIn});\r\n }\r\n if (this.typeAllowed !== null) {\r\n clazz = Object.assign({}, clazz,\r\n {\"type-allowed\": this.typeAllowed,\r\n \"type-forbidden\": !this.typeAllowed});\r\n }\r\n if (this.dropAllowed !== null) {\r\n clazz = Object.assign({}, clazz,\r\n {\"drop-allowed\": this.dropAllowed,\r\n \"drop-forbidden\": !this.dropAllowed});\r\n }\r\n return clazz;\r\n };\r\n prototypeAccessors.cssStyle.get = function () {\r\n if (this.dropAllowed && this.dropIn) {\r\n return { cursor: this.cursor + ' !important' };\r\n }\r\n else {\r\n return { cursor: 'inherit' };\r\n }\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 candidate (type, data, source) {\r\n return this.effectiveAcceptsType(type);\r\n };\r\n DropMixin.prototype.createDragImage = function createDragImage$1 () {\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 }\r\n else {\r\n image = 'source';\r\n }\r\n return image;\r\n };\r\n\r\n Object.defineProperties( DropMixin.prototype, prototypeAccessors );\r\n\r\n return DropMixin;\r\n}(DragAwareMixin$1));\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: 'pointer' }),\r\n __metadata(\"design:type\", String)\r\n], DropMixin.prototype, \"cursor\", 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\nDropMixin = __decorate([\r\n Component({ name: \"DropMixin\",}),\r\n __metadata(\"design:paramtypes\", [])\r\n], DropMixin);\r\nvar DropMixin$1 = DropMixin;\r\n\r\nvar Drop = /*@__PURE__*/(function (DropMixin) {\r\n function Drop () {\r\n DropMixin.apply(this, arguments);\r\n }\r\n\r\n if ( DropMixin ) Drop.__proto__ = DropMixin;\r\n Drop.prototype = Object.create( DropMixin && DropMixin.prototype );\r\n Drop.prototype.constructor = Drop;\r\n\r\n var prototypeAccessors = { showDragImage: { configurable: true } };\r\n\r\n prototypeAccessors.showDragImage.get = function () {\r\n return this.dragInProgress && this.typeAllowed && this.$scopedSlots['drag-image'];\r\n };\r\n\r\n Object.defineProperties( Drop.prototype, prototypeAccessors );\r\n\r\n return Drop;\r\n}(DropMixin$1));\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\nDrop = __decorate([\r\n Component({ name: \"Drop\",})\r\n], Drop);\r\nvar script$1 = Drop;\r\n\r\n/* script */\r\nvar __vue_script__$1 = script$1;\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-4eedfece_0\", { 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,inject(\"data-v-4eedfece_1\", { source: \".__drag-image[data-v-4eedfece]{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-4eedfece\";\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 = /*@__PURE__*/(function (DragAwareMixin) {\r\n function DropMask() {\r\n DragAwareMixin.apply(this, arguments);\r\n this.isDropMask = true;\r\n }\r\n\r\n if ( DragAwareMixin ) DropMask.__proto__ = DragAwareMixin;\r\n DropMask.prototype = Object.create( DragAwareMixin && DragAwareMixin.prototype );\r\n DropMask.prototype.constructor = DropMask;\r\n DropMask.prototype.mounted = function mounted () {\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 createDragImage () {\r\n return 'source';\r\n };\r\n\r\n return DropMask;\r\n}(DragAwareMixin$1));\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\nDropMask = __decorate([\r\n Component({ name: \"DropMask\",})\r\n], DropMask);\r\nvar script$2 = DropMask;\r\n\r\n/* script */\r\nvar __vue_script__$2 = script$2;\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 = /*@__PURE__*/(function (Vue) {\r\n function DragImagesManager() {\r\n Vue.call(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 }\r\n\r\n if ( Vue ) DragImagesManager.__proto__ = Vue;\r\n DragImagesManager.prototype = Object.create( Vue && Vue.prototype );\r\n DragImagesManager.prototype.constructor = DragImagesManager;\r\n DragImagesManager.prototype.onDragStart = function onDragStart (event) {\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 onDragEnd (event) {\r\n var this$1 = this;\r\n\r\n Vue.nextTick(function () {\r\n if (!event.success && this$1.source['goBack']) {\r\n // Restore the drag image that is active when hovering outside any drop zone :\r\n var img = this$1.switch(null);\r\n // Move it back to its original place :\r\n window.requestAnimationFrame(function () {\r\n img.style.transition = \"all 0.5s\";\r\n window.requestAnimationFrame(function () {\r\n img.style.left = this$1.sourcePos.x + \"px\";\r\n img.style.top = this$1.sourcePos.y + \"px\";\r\n img.style.transform = \"translate(0,0)\";\r\n var handler = function () {\r\n this$1.cleanUp();\r\n img.removeEventListener(\"transitionend\", handler);\r\n };\r\n img.addEventListener(\"transitionend\", handler);\r\n });\r\n });\r\n }\r\n else {\r\n this$1.cleanUp();\r\n }\r\n });\r\n };\r\n DragImagesManager.prototype.cleanUp = function cleanUp () {\r\n this.clones.forEach(function (clone) {\r\n clone.remove();\r\n });\r\n if (this.sourceClone !== null) {\r\n this.sourceClone.remove();\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 onDragTopChanged (event) {\r\n this.switch(event.top);\r\n };\r\n DragImagesManager.prototype.switch = function switch$1 (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.append(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 broswer 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 getSourceClone () {\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.append(this.sourceClone);\r\n }\r\n return this.sourceClone;\r\n };\r\n DragImagesManager.prototype.onDragPositionChanged = function onDragPositionChanged (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\r\n return DragImagesManager;\r\n}(Vue));\r\nDragImagesManager = __decorate([\r\n Component({ name: \"DragImagesManager\",}) // Necessary to set proper \"this\" context in event listeners.\r\n ,\r\n __metadata(\"design:paramtypes\", [])\r\n], DragImagesManager);\r\nnew DragImagesManager();\r\n\r\nvar DragFeedback = /*@__PURE__*/(function (Vue) {\r\n function DragFeedback () {\r\n Vue.apply(this, arguments);\r\n }if ( Vue ) DragFeedback.__proto__ = Vue;\r\n DragFeedback.prototype = Object.create( Vue && Vue.prototype );\r\n DragFeedback.prototype.constructor = DragFeedback;\r\n\r\n \r\n\r\n return DragFeedback;\r\n}(Vue));\r\nDragFeedback = __decorate([\r\n Component({ name: \"DragFeedback\",})\r\n], DragFeedback);\r\nvar script$3 = DragFeedback;\r\n\r\n/* script */\r\nvar __vue_script__$3 = script$3;\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 = function Grid(collection, upToIndex, row, fromIndex) {\r\n this.magnets = [];\r\n var index = 0;\r\n for (var i = 0, list = collection; i < list.length; i += 1) {\r\n var child = list[i];\r\n\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/**\r\n * Returns the center of the rectangle.\r\n */\r\nGrid.prototype.center = function center (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\nGrid.prototype.before = function before (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\nGrid.prototype.after = function after (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\nGrid.prototype.closestIndex = function closestIndex (position) {\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 - position.x, 2) + Math.pow(magnet.y - position.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\r\nvar DnDEvent = function DnDEvent () {};\r\nvar ReorderEvent = function ReorderEvent(from, to) {\r\n this.from = from;\r\n this.to = to;\r\n};\r\nReorderEvent.prototype.apply = function apply (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\nvar InsertEvent = function InsertEvent(type, data, index) {\r\n this.type = type;\r\n this.data = data;\r\n this.index = index;\r\n};\r\n\r\nvar DropList = /*@__PURE__*/(function (DropMixin) {\r\n function DropList() {\r\n DropMixin.apply(this, arguments);\r\n this.grid = null;\r\n this.forbiddenKeys = [];\r\n this.feedbackKey = null;\r\n this.fromIndex = null;\r\n }\r\n\r\n if ( DropMixin ) DropList.__proto__ = DropMixin;\r\n DropList.prototype = Object.create( DropMixin && DropMixin.prototype );\r\n DropList.prototype.constructor = DropList;\r\n\r\n var prototypeAccessors = { rootTag: { configurable: true },rootProps: { configurable: true },rootListeners: { configurable: true },direction: { configurable: true },reordering: { configurable: true },closestIndex: { configurable: true },dropAllowed: { configurable: true },itemsBeforeFeedback: { configurable: true },itemsAfterFeedback: { configurable: true },itemsBeforeReorderingFeedback: { configurable: true },itemsAfterReorderingFeedback: { configurable: true },reorderedItems: { configurable: true },clazz: { configurable: true },style: { configurable: true },showDragFeedback: { configurable: true },showInsertingDragImage: { configurable: true },showReorderingDragImage: { configurable: true },hasReorderingFeedback: { configurable: true } };\r\n prototypeAccessors.rootTag.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 prototypeAccessors.rootProps.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 prototypeAccessors.rootListeners.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 DropList.prototype.created = function created () {\r\n dnd.on(\"dragstart\", this.onDragStart);\r\n dnd.on(\"dragend\", this.onDragEnd);\r\n };\r\n prototypeAccessors.direction.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 DropList.prototype.destroyed = function destroyed () {\r\n dnd.off(\"dragstart\", this.onDragStart);\r\n dnd.off(\"dragend\", this.onDragEnd);\r\n };\r\n DropList.prototype.onDragStart = function onDragStart (event) {\r\n var this$1 = this;\r\n\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.$nextTick(function () {\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 this$1.grid = this$1.computeInsertingGrid();\r\n this$1.feedbackKey = this$1.computeFeedbackKey();\r\n this$1.forbiddenKeys = this$1.computeForbiddenKeys();\r\n });\r\n }\r\n }\r\n };\r\n DropList.prototype.onDragEnd = function onDragEnd () {\r\n this.fromIndex = null;\r\n this.feedbackKey = null;\r\n this.forbiddenKeys = null;\r\n this.grid = null;\r\n };\r\n prototypeAccessors.reordering.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 prototypeAccessors.closestIndex.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 prototypeAccessors.dropAllowed.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 prototypeAccessors.itemsBeforeFeedback.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 prototypeAccessors.itemsAfterFeedback.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 prototypeAccessors.itemsBeforeReorderingFeedback.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 prototypeAccessors.itemsAfterReorderingFeedback.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 prototypeAccessors.reorderedItems.get = function () {\r\n var toIndex = this.closestIndex;\r\n var reordered = [].concat( 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 prototypeAccessors.clazz.get = function () {\r\n return Object.assign({}, {'drop-list': true,\r\n 'reordering': this.reordering === true,\r\n 'inserting': this.reordering === false},\r\n (this.reordering === false ? this.cssClasses : { 'dnd-drop': true }));\r\n };\r\n prototypeAccessors.style.get = function () {\r\n return Object.assign({}, (this.reordering === false ? this.cssStyle : {}));\r\n };\r\n prototypeAccessors.showDragFeedback.get = function () {\r\n return this.dragInProgress && this.typeAllowed && !this.reordering;\r\n };\r\n prototypeAccessors.showInsertingDragImage.get = function () {\r\n return this.dragInProgress && this.typeAllowed && !this.reordering && this.$scopedSlots.hasOwnProperty(\"drag-image\");\r\n };\r\n prototypeAccessors.showReorderingDragImage.get = function () {\r\n return this.dragInProgress && this.reordering && this.$scopedSlots.hasOwnProperty(\"reordering-drag-image\");\r\n };\r\n DropList.prototype.doDrop = function doDrop (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 candidate (type, data, source) {\r\n var i = arguments.length, argsArray = Array(i);\r\n while ( i-- ) argsArray[i] = arguments[i];\r\n var ref;\r\n\r\n var superCandidate = (ref = DropMixin['options'].methods.candidate).call.apply(ref, [ this ].concat( argsArray ));\r\n return (superCandidate && (this.$listeners.hasOwnProperty(\"insert\") || this.$listeners.hasOwnProperty(\"drop\"))) || this.reordering;\r\n };\r\n DropList.prototype.computeForbiddenKeys = function computeForbiddenKeys () {\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 computeFeedbackKey () {\r\n return this.$refs['feedback']['$slots']['default'][0]['key'];\r\n };\r\n prototypeAccessors.hasReorderingFeedback.get = function () {\r\n return this.$scopedSlots.hasOwnProperty(\"reordering-feedback\");\r\n };\r\n DropList.prototype.computeInsertingGrid = function computeInsertingGrid () {\r\n var feedbackParent = this.$refs['feedback']['$el'];\r\n if(feedbackParent.children.length == 0){\r\n console.warn(\"Feedback template has no children\",$feedbackParent,this);\r\n }\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.append(clone);\r\n }\r\n var grid = new Grid(tg.children, this.items.length, this.direction, null);\r\n clone.remove();\r\n return grid;\r\n };\r\n DropList.prototype.computeReorderingGrid = function computeReorderingGrid () {\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 createDragImage$1 () {\r\n var image;\r\n if (this.$refs['drag-image']) {\r\n var el = this.$refs['drag-image'];\r\n var model;\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.append(clone);\r\n image = createDragImage(clone);\r\n clone.remove();\r\n image['__opacity'] = this.dragImageOpacity;\r\n }\r\n else {\r\n image = 'source';\r\n }\r\n return image;\r\n };\r\n\r\n Object.defineProperties( DropList.prototype, prototypeAccessors );\r\n\r\n return DropList;\r\n}(DropMixin$1));\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\nDropList = __decorate([\r\n Component({\r\n components: { DragFeedback: DragFeedback$1 },\r\n name: \"DropList\",\r\n })\r\n], DropList);\r\nvar script$4 = DropList;\r\n\r\n/* script */\r\nvar __vue_script__$4 = script$4;\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){return _vm._t(\"item\",null,{\"item\":item})}),_vm._v(\" \"),_vm._t(\"reordering-feedback\",null,{\"item\":_vm.items[_vm.fromIndex]}),_vm._v(\" \"),_vm._l((_vm.itemsAfterReorderingFeedback),function(item){return _vm._t(\"item\",null,{\"item\":item})})]:[_vm._l((_vm.reorderedItems),function(item,index){return _vm._t(\"item\",null,{\"item\":item,\"reorder\":index === _vm.closestIndex})})]]:[_vm._l((_vm.itemsBeforeFeedback),function(item){return _vm._t(\"item\",null,{\"item\":item,\"reorder\":false})}),_vm._v(\" \"),_vm._t(\"feedback\",null,{\"data\":_vm.dragData,\"type\":_vm.dragType}),_vm._v(\" \"),_vm._l((_vm.itemsAfterFeedback),function(item){return _vm._t(\"item\",null,{\"item\":item,\"reorder\":false})})]]:[_vm._l((_vm.items),function(item){return _vm._t(\"item\",null,{\"item\":item,\"reorder\":false})})],_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(\" \"),_c('div',{key:\"drop-list-content\"},[_vm._t(\"default\")],2)],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-56f28757_0\", { source: \".drop-list[data-v-56f28757]>*{transition:transform .2s}.__feedback[data-v-56f28757]{display:none}.__drag-image[data-v-56f28757]{position:fixed;top:-10000px;left:-10000px;will-change:left,top}\", map: undefined, media: undefined })\r\n,inject(\"data-v-56f28757_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-56f28757\";\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\n// minor modifications to handle minification in moodle - the reflected property name does not survive minification. Do not want all our components to be known as 'b'\r\n\r\nexport { DnDEvent, Drag$1 as Drag, DragAwareMixin$1 as DragAwareMixin, DragImagesManager, DragMixin$1 as DragMixin, Drop$1 as Drop, DropList$1 as DropList, DropMask$1 as DropMask, DropMixin$1 as DropMixin, InsertEvent, ReorderEvent, createDragImage, dnd };\r\n"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","DnD","inProgress","type","data","source","top","position","eventBus","Vue","sourceListeners","success","prototype","startDrag","event","x","y","$listeners","emit","previousTop","stopDrag","this","mouseMove","comp","prevent","stopPropagation","detail","native","$emit","assign","on","callback","$on","off","$off","dnd","observable","DragAwareMixin","apply","__proto__","create","constructor","prototypeAccessors","dragInProgress","configurable","dragData","dragType","dragPosition","dragSource","dragTop","get","defineProperties","DragAwareMixin$1","name","createDragImage","el","clone","cloneNode","copyStyle","vSrcElements","getElementsByTagName","vDstElements","deepClone","style","margin","transition","src","destination","computedStyle","window","getComputedStyle","Array","from","forEach","setProperty","getPropertyValue","getPropertyPriority","pointerEvents","DragMixin","isDrag","mouseIn","dragIn","cssClasses","currentDropMode","created","reEmit","eventName","this$1","ev","mounted","initialUserSelect","$el","dragStarted","downEvent","startPosition","onMouseEnter","onMouseLeave","noop","e","preventDefault","onMouseDown","disabled","document","body","userSelect","documentElement","mouse","clientX","clientY","touch","touches","addEventListener","onMouseMove","passive","onEasyDnDMove","onMouseUp","elementFromPoint","dist","Math","sqrt","pow","delta","classList","add","custom","CustomEvent","bubbles","cancelable","dispatchEvent","setTimeout","remove","removeEventListener","handle","querySelectorAll","isNodeList","element","selfTransform","image","$scopedSlots","$refs","childElementCount","children","item","transform","dragImageOpacity","default","String","Number","Boolean","required","DragMixin$1","Drag","Function","script","HEAD","normalizeComponent_1","template","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","options","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","isOldIE","navigator","test","userAgent","toLowerCase","styles","browser","id","css","group","media","ids","Set","has","code","map","sources","btoa","unescape","encodeURIComponent","JSON","stringify","createElement","setAttribute","undefined","head","appendChild","push","styleSheet","cssText","filter","join","index","size","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","addStyle","Drag$1","_vm","_h","$createElement","_c","_self","tag","_g","_b","class","cursor","scopedSlots","_u","_l","_","slot","fn","scope","_t","$attrs","_v","ref","staticClass","inject","DropMixin","isDrop","compatibleMode","dropIn","typeAllowed","dropAllowed","cssStyle","effectiveAcceptsType","acceptsType","_typeof","isArray","includes","effectiveAcceptsData","acceptsData","onDragPositionChanged","onDragTopChanged","onDrop","destroyed","doDrop","mode","hasOwnProperty","clazz","candidate","DropMixin$1","Drop","showDragImage","Drop$1","_e","DropMask","isDropMask","DropMask$1","DragImagesManager","clones","sourcePos","sourceClone","onDragStart","onDragEnd","getBoundingClientRect","left","Map","nextTick","img","switch","requestAnimationFrame","handler","cleanUp","activeClone","opacity","getSourceClone","append","set","offsetWidth","visibility","DragFeedback","DragFeedback$1","Grid","collection","upToIndex","row","fromIndex","magnets","list","child","rect","hasNestedDrop","contains","getElementsByClassName","horizontal","Error","before","center","after","width","height","closestIndex","minDist","magnet","ReorderEvent","to","array","tmp","splice","InsertEvent","DropList","grid","forbiddenKeys","feedbackKey","rootTag","rootProps","rootListeners","direction","reordering","itemsBeforeFeedback","itemsAfterFeedback","itemsBeforeReorderingFeedback","itemsAfterReorderingFeedback","reorderedItems","showDragFeedback","showInsertingDragImage","showReorderingDragImage","hasReorderingFeedback","noAnimations","duration","enter","leave","column","indexOf","parentElement","computeReorderingGrid","$nextTick","computeInsertingGrid","computeFeedbackKey","computeForbiddenKeys","items","computed","slice","toIndex","reordered","temp","methods","argsArray","$children","$slots","vn","k","feedbackParent","console","warn","$feedbackParent","tg","DropList$1","components"],"mappings":"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"} |