(e)
| 101 | } |
| 102 | |
| 103 | function onDragStart(e) { |
| 104 | if (!scriptFromEvent(e)) return; |
| 105 | if (e.cancelable) e.preventDefault(); |
| 106 | const { clientX: x, clientY: y } = e.touches?.[0] || e; |
| 107 | const rect = original.getBoundingClientRect(); |
| 108 | const parentRect = parent.getBoundingClientRect(); |
| 109 | dragged = original.cloneNode(true); |
| 110 | elements = parent.children::[].filter(el => el.style.display !== 'none'); |
| 111 | index = elements.indexOf(original); |
| 112 | lastIndex = index; |
| 113 | elements.splice(index, 1); |
| 114 | height = rect.height; |
| 115 | offsetX = x - rect.left; |
| 116 | offsetY = y - rect.top; |
| 117 | scrollEdgeTop = parentRect.top + SCROLL_GAP; |
| 118 | scrollEdgeBottom = parentRect.bottom - SCROLL_GAP; |
| 119 | xyCache = {}; |
| 120 | original.classList.add('dragging-placeholder'); |
| 121 | dragged.classList.add('dragging'); |
| 122 | dragged.style.transform = `translate(${rect.left}px, ${rect.top}px)`; |
| 123 | dragged.style.width = `${rect.width}px`; |
| 124 | parent.appendChild(dragged); |
| 125 | if (isTouch) parent.insertAdjacentElement('afterBegin', noScroll); |
| 126 | addEventListener(eventNames.move, onDragMouseMove); |
| 127 | addEventListener(eventNames.end, onDragMouseUp); |
| 128 | } |
| 129 | |
| 130 | function onDragMouseMove(e) { |
| 131 | const { clientX: x, clientY: y, target } = e.touches?.[0] || e; |
no test coverage detected