toolshed-8.x-1.x-dev/js/DragDrop.min.js
js/DragDrop.min.js
"use strict";(({Toolshed:t})=>{t.Droppable=class{constructor(t,e={}){this.el=t,this.opts={...e},this.id=t.dataset.containerId,this.items=[],this.children=[]}getId(){return this.id}getItems(){return this.items}getChildren(){return this.children}attachItem(t,e){var i=t.getElement();(e||0===e)&&this.items.length>e?(this.el.insertBefore(i,this.items[e].getElement()),this.items.splice(e,0,i)):(this.el.appendChild(t.getElement()),this.items.push(t),e=this.items.length-1),t.attach(this,e)}detachItem(e){for(let t=0;t<this.items.length;++t)if(this.items[t]===e){this.items.splice(t,1);break}this.el.removeChild(e.getElement()),e.detach()}},t.Draggable=class{static get dragging(){return this._dragging}static set dragging(t){this._dragging&&this._dragging.cancelDrag(!1),this._dragging=t}constructor(t,e={}){this.el=t,this.opts={inputSelector:"input.drag-parent",...e},this.parent=null,this.pos=0,this.input=this.el.querySelector(this.opts.inputSelector)}getElement(){return this.el}attach(t,e){this.parent=t,this.pos=e,this.input.value=t.getId()+":"+e}detach(){this.parent=null,this.pos=0,this.input.value=""}cancelDrag(){this.placeholder&&this.placeholder.parentNode.removeChild(this.placeholder)}}})(Drupal);