vue-pure-admin/public/sortable.min.js
2021-09-17 10:29:59 +08:00

2608 lines
79 KiB
JavaScript

/*! Sortable 1.13.0 - MIT | git://github.com/SortableJS/Sortable.git */
!(function (t, e) {
"object" == typeof exports && "undefined" != typeof module
? (module.exports = e())
: "function" == typeof define && define.amd
? define(e)
: ((t = t || self).Sortable = e());
})(this, function () {
"use strict";
function o(t) {
return (o =
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator
? function (t) {
return typeof t;
}
: function (t) {
return t &&
"function" == typeof Symbol &&
t.constructor === Symbol &&
t !== Symbol.prototype
? "symbol"
: typeof t;
})(t);
}
function a() {
return (a =
Object.assign ||
function (t) {
for (var e = 1; e < arguments.length; e++) {
var n = arguments[e];
for (var o in n)
Object.prototype.hasOwnProperty.call(n, o) && (t[o] = n[o]);
}
return t;
}).apply(this, arguments);
}
function I(i) {
for (var t = 1; t < arguments.length; t++) {
var r = null != arguments[t] ? arguments[t] : {},
e = Object.keys(r);
"function" == typeof Object.getOwnPropertySymbols &&
(e = e.concat(
Object.getOwnPropertySymbols(r).filter(function (t) {
return Object.getOwnPropertyDescriptor(r, t).enumerable;
})
)),
e.forEach(function (t) {
var e, n, o;
(e = i),
(o = r[(n = t)]),
n in e
? Object.defineProperty(e, n, {
value: o,
enumerable: !0,
configurable: !0,
writable: !0
})
: (e[n] = o);
});
}
return i;
}
function l(t, e) {
if (null == t) return {};
var n,
o,
i = (function (t, e) {
if (null == t) return {};
var n,
o,
i = {},
r = Object.keys(t);
for (o = 0; o < r.length; o++)
(n = r[o]), 0 <= e.indexOf(n) || (i[n] = t[n]);
return i;
})(t, e);
if (Object.getOwnPropertySymbols) {
var r = Object.getOwnPropertySymbols(t);
for (o = 0; o < r.length; o++)
(n = r[o]),
0 <= e.indexOf(n) ||
(Object.prototype.propertyIsEnumerable.call(t, n) && (i[n] = t[n]));
}
return i;
}
function e(t) {
return (
(function (t) {
if (Array.isArray(t)) {
for (var e = 0, n = new Array(t.length); e < t.length; e++)
n[e] = t[e];
return n;
}
})(t) ||
(function (t) {
if (
Symbol.iterator in Object(t) ||
"[object Arguments]" === Object.prototype.toString.call(t)
)
return Array.from(t);
})(t) ||
(function () {
throw new TypeError("Invalid attempt to spread non-iterable instance");
})()
);
}
function t(t) {
if ("undefined" != typeof window && window.navigator)
return !!navigator.userAgent.match(t);
}
var w = t(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),
E = t(/Edge/i),
c = t(/firefox/i),
u = t(/safari/i) && !t(/chrome/i) && !t(/android/i),
n = t(/iP(ad|od|hone)/i),
i = t(/chrome/i) && t(/android/i),
r = { capture: !1, passive: !1 };
function d(t, e, n) {
t.addEventListener(e, n, !w && r);
}
function s(t, e, n) {
t.removeEventListener(e, n, !w && r);
}
function h(t, e) {
if (e) {
if ((">" === e[0] && (e = e.substring(1)), t))
try {
if (t.matches) return t.matches(e);
if (t.msMatchesSelector) return t.msMatchesSelector(e);
if (t.webkitMatchesSelector) return t.webkitMatchesSelector(e);
} catch (t) {
return !1;
}
return !1;
}
}
function P(t, e, n, o) {
if (t) {
n = n || document;
do {
if (
(null != e &&
(">" === e[0] ? t.parentNode === n && h(t, e) : h(t, e))) ||
(o && t === n)
)
return t;
if (t === n) break;
} while (
(t =
(i = t).host && i !== document && i.host.nodeType
? i.host
: i.parentNode)
);
}
var i;
return null;
}
var f,
p = /\s+/g;
function k(t, e, n) {
if (t && e)
if (t.classList) t.classList[n ? "add" : "remove"](e);
else {
var o = (" " + t.className + " ")
.replace(p, " ")
.replace(" " + e + " ", " ");
t.className = (o + (n ? " " + e : "")).replace(p, " ");
}
}
function R(t, e, n) {
var o = t && t.style;
if (o) {
if (void 0 === n)
return (
document.defaultView && document.defaultView.getComputedStyle
? (n = document.defaultView.getComputedStyle(t, ""))
: t.currentStyle && (n = t.currentStyle),
void 0 === e ? n : n[e]
);
e in o || -1 !== e.indexOf("webkit") || (e = "-webkit-" + e),
(o[e] = n + ("string" == typeof n ? "" : "px"));
}
}
function v(t, e) {
var n = "";
if ("string" == typeof t) n = t;
else
do {
var o = R(t, "transform");
o && "none" !== o && (n = o + " " + n);
} while (!e && (t = t.parentNode));
var i =
window.DOMMatrix ||
window.WebKitCSSMatrix ||
window.CSSMatrix ||
window.MSCSSMatrix;
return i && new i(n);
}
function g(t, e, n) {
if (t) {
var o = t.getElementsByTagName(e),
i = 0,
r = o.length;
if (n) for (; i < r; i++) n(o[i], i);
return o;
}
return [];
}
function A() {
var t = document.scrollingElement;
return t || document.documentElement;
}
function X(t, e, n, o, i) {
if (t.getBoundingClientRect || t === window) {
var r, a, l, s, c, u, d;
if (
((d =
t !== window && t.parentNode && t !== A()
? ((a = (r = t.getBoundingClientRect()).top),
(l = r.left),
(s = r.bottom),
(c = r.right),
(u = r.height),
r.width)
: ((l = a = 0),
(s = window.innerHeight),
(c = window.innerWidth),
(u = window.innerHeight),
window.innerWidth)),
(e || n) && t !== window && ((i = i || t.parentNode), !w))
)
do {
if (
i &&
i.getBoundingClientRect &&
("none" !== R(i, "transform") ||
(n && "static" !== R(i, "position")))
) {
var h = i.getBoundingClientRect();
(a -= h.top + parseInt(R(i, "border-top-width"))),
(l -= h.left + parseInt(R(i, "border-left-width"))),
(s = a + r.height),
(c = l + r.width);
break;
}
} while ((i = i.parentNode));
if (o && t !== window) {
var f = v(i || t),
p = f && f.a,
g = f && f.d;
f && ((s = (a /= g) + (u /= g)), (c = (l /= p) + (d /= p)));
}
return { top: a, left: l, bottom: s, right: c, width: d, height: u };
}
}
function Y(t, e, n) {
for (var o = H(t, !0), i = X(t)[e]; o; ) {
var r = X(o)[n];
if (!("top" === n || "left" === n ? r <= i : i <= r)) return o;
if (o === A()) break;
o = H(o, !1);
}
return !1;
}
function m(t, e, n) {
for (var o = 0, i = 0, r = t.children; i < r.length; ) {
if (
"none" !== r[i].style.display &&
r[i] !== Rt.ghost &&
r[i] !== Rt.dragged &&
P(r[i], n.draggable, t, !1)
) {
if (o === e) return r[i];
o++;
}
i++;
}
return null;
}
function B(t, e) {
for (
var n = t.lastElementChild;
n && (n === Rt.ghost || "none" === R(n, "display") || (e && !h(n, e)));
)
n = n.previousElementSibling;
return n || null;
}
function F(t, e) {
var n = 0;
if (!t || !t.parentNode) return -1;
for (; (t = t.previousElementSibling); )
"TEMPLATE" === t.nodeName.toUpperCase() ||
t === Rt.clone ||
(e && !h(t, e)) ||
n++;
return n;
}
function b(t) {
var e = 0,
n = 0,
o = A();
if (t)
do {
var i = v(t),
r = i.a,
a = i.d;
(e += t.scrollLeft * r), (n += t.scrollTop * a);
} while (t !== o && (t = t.parentNode));
return [e, n];
}
function H(t, e) {
if (!t || !t.getBoundingClientRect) return A();
var n = t,
o = !1;
do {
if (n.clientWidth < n.scrollWidth || n.clientHeight < n.scrollHeight) {
var i = R(n);
if (
(n.clientWidth < n.scrollWidth &&
("auto" == i.overflowX || "scroll" == i.overflowX)) ||
(n.clientHeight < n.scrollHeight &&
("auto" == i.overflowY || "scroll" == i.overflowY))
) {
if (!n.getBoundingClientRect || n === document.body) return A();
if (o || e) return n;
o = !0;
}
}
} while ((n = n.parentNode));
return A();
}
function y(t, e) {
return (
Math.round(t.top) === Math.round(e.top) &&
Math.round(t.left) === Math.round(e.left) &&
Math.round(t.height) === Math.round(e.height) &&
Math.round(t.width) === Math.round(e.width)
);
}
function D(e, n) {
return function () {
if (!f) {
var t = arguments;
1 === t.length ? e.call(this, t[0]) : e.apply(this, t),
(f = setTimeout(function () {
f = void 0;
}, n));
}
};
}
function L(t, e, n) {
(t.scrollLeft += e), (t.scrollTop += n);
}
function S(t) {
var e = window.Polymer,
n = window.jQuery || window.Zepto;
return e && e.dom
? e.dom(t).cloneNode(!0)
: n
? n(t).clone(!0)[0]
: t.cloneNode(!0);
}
function _(t, e) {
R(t, "position", "absolute"),
R(t, "top", e.top),
R(t, "left", e.left),
R(t, "width", e.width),
R(t, "height", e.height);
}
function C(t) {
R(t, "position", ""),
R(t, "top", ""),
R(t, "left", ""),
R(t, "width", ""),
R(t, "height", "");
}
var j = "Sortable" + new Date().getTime();
function T() {
var e,
o = [];
return {
captureAnimationState: function () {
(o = []),
this.options.animation &&
[].slice.call(this.el.children).forEach(function (t) {
if ("none" !== R(t, "display") && t !== Rt.ghost) {
o.push({ target: t, rect: X(t) });
var e = I({}, o[o.length - 1].rect);
if (t.thisAnimationDuration) {
var n = v(t, !0);
n && ((e.top -= n.f), (e.left -= n.e));
}
t.fromRect = e;
}
});
},
addAnimationState: function (t) {
o.push(t);
},
removeAnimationState: function (t) {
o.splice(
(function (t, e) {
for (var n in t)
if (t.hasOwnProperty(n))
for (var o in e)
if (e.hasOwnProperty(o) && e[o] === t[n][o]) return Number(n);
return -1;
})(o, { target: t }),
1
);
},
animateAll: function (t) {
var c = this;
if (!this.options.animation)
return clearTimeout(e), void ("function" == typeof t && t());
var u = !1,
d = 0;
o.forEach(function (t) {
var e = 0,
n = t.target,
o = n.fromRect,
i = X(n),
r = n.prevFromRect,
a = n.prevToRect,
l = t.rect,
s = v(n, !0);
s && ((i.top -= s.f), (i.left -= s.e)),
(n.toRect = i),
n.thisAnimationDuration &&
y(r, i) &&
!y(o, i) &&
(l.top - i.top) / (l.left - i.left) ==
(o.top - i.top) / (o.left - i.left) &&
(e = (function (t, e, n, o) {
return (
(Math.sqrt(
Math.pow(e.top - t.top, 2) + Math.pow(e.left - t.left, 2)
) /
Math.sqrt(
Math.pow(e.top - n.top, 2) + Math.pow(e.left - n.left, 2)
)) *
o.animation
);
})(l, r, a, c.options)),
y(i, o) ||
((n.prevFromRect = o),
(n.prevToRect = i),
e || (e = c.options.animation),
c.animate(n, l, i, e)),
e &&
((u = !0),
(d = Math.max(d, e)),
clearTimeout(n.animationResetTimer),
(n.animationResetTimer = setTimeout(function () {
(n.animationTime = 0),
(n.prevFromRect = null),
(n.fromRect = null),
(n.prevToRect = null),
(n.thisAnimationDuration = null);
}, e)),
(n.thisAnimationDuration = e));
}),
clearTimeout(e),
u
? (e = setTimeout(function () {
"function" == typeof t && t();
}, d))
: "function" == typeof t && t(),
(o = []);
},
animate: function (t, e, n, o) {
if (o) {
R(t, "transition", ""), R(t, "transform", "");
var i = v(this.el),
r = i && i.a,
a = i && i.d,
l = (e.left - n.left) / (r || 1),
s = (e.top - n.top) / (a || 1);
(t.animatingX = !!l),
(t.animatingY = !!s),
R(t, "transform", "translate3d(" + l + "px," + s + "px,0)"),
(this.forRepaintDummy = (function (t) {
return t.offsetWidth;
})(t)),
R(
t,
"transition",
"transform " +
o +
"ms" +
(this.options.easing ? " " + this.options.easing : "")
),
R(t, "transform", "translate3d(0,0,0)"),
"number" == typeof t.animated && clearTimeout(t.animated),
(t.animated = setTimeout(function () {
R(t, "transition", ""),
R(t, "transform", ""),
(t.animated = !1),
(t.animatingX = !1),
(t.animatingY = !1);
}, o));
}
}
};
}
var x = [],
M = { initializeByDefault: !0 },
O = {
mount: function (e) {
for (var t in M) !M.hasOwnProperty(t) || t in e || (e[t] = M[t]);
x.forEach(function (t) {
if (t.pluginName === e.pluginName)
throw "Sortable: Cannot mount plugin ".concat(
e.pluginName,
" more than once"
);
}),
x.push(e);
},
pluginEvent: function (e, n, o) {
var t = this;
(this.eventCanceled = !1),
(o.cancel = function () {
t.eventCanceled = !0;
});
var i = e + "Global";
x.forEach(function (t) {
n[t.pluginName] &&
(n[t.pluginName][i] && n[t.pluginName][i](I({ sortable: n }, o)),
n.options[t.pluginName] &&
n[t.pluginName][e] &&
n[t.pluginName][e](I({ sortable: n }, o)));
});
},
initializePlugins: function (o, i, r, t) {
for (var e in (x.forEach(function (t) {
var e = t.pluginName;
if (o.options[e] || t.initializeByDefault) {
var n = new t(o, i, o.options);
(n.sortable = o),
(n.options = o.options),
(o[e] = n),
a(r, n.defaults);
}
}),
o.options))
if (o.options.hasOwnProperty(e)) {
var n = this.modifyOption(o, e, o.options[e]);
void 0 !== n && (o.options[e] = n);
}
},
getEventProperties: function (e, n) {
var o = {};
return (
x.forEach(function (t) {
"function" == typeof t.eventProperties &&
a(o, t.eventProperties.call(n[t.pluginName], e));
}),
o
);
},
modifyOption: function (e, n, o) {
var i;
return (
x.forEach(function (t) {
e[t.pluginName] &&
t.optionListeners &&
"function" == typeof t.optionListeners[n] &&
(i = t.optionListeners[n].call(e[t.pluginName], o));
}),
i
);
}
};
function N(t) {
var e = t.sortable,
n = t.rootEl,
o = t.name,
i = t.targetEl,
r = t.cloneEl,
a = t.toEl,
l = t.fromEl,
s = t.oldIndex,
c = t.newIndex,
u = t.oldDraggableIndex,
d = t.newDraggableIndex,
h = t.originalEvent,
f = t.putSortable,
p = t.extraEventProperties;
if ((e = e || (n && n[j]))) {
var g,
v = e.options,
m = "on" + o.charAt(0).toUpperCase() + o.substr(1);
!window.CustomEvent || w || E
? (g = document.createEvent("Event")).initEvent(o, !0, !0)
: (g = new CustomEvent(o, { bubbles: !0, cancelable: !0 })),
(g.to = a || n),
(g.from = l || n),
(g.item = i || n),
(g.clone = r),
(g.oldIndex = s),
(g.newIndex = c),
(g.oldDraggableIndex = u),
(g.newDraggableIndex = d),
(g.originalEvent = h),
(g.pullMode = f ? f.lastPutMode : void 0);
var b = I({}, p, O.getEventProperties(o, e));
for (var y in b) g[y] = b[y];
n && n.dispatchEvent(g), v[m] && v[m].call(e, g);
}
}
function K(t, e, n) {
var o = 2 < arguments.length && void 0 !== n ? n : {},
i = o.evt,
r = l(o, ["evt"]);
O.pluginEvent.bind(Rt)(
t,
e,
I(
{
dragEl: z,
parentEl: G,
ghostEl: U,
rootEl: q,
nextEl: V,
lastDownEl: Z,
cloneEl: Q,
cloneHidden: $,
dragStarted: dt,
putSortable: it,
activeSortable: Rt.active,
originalEvent: i,
oldIndex: J,
oldDraggableIndex: et,
newIndex: tt,
newDraggableIndex: nt,
hideGhostForTarget: At,
unhideGhostForTarget: It,
cloneNowHidden: function () {
$ = !0;
},
cloneNowShown: function () {
$ = !1;
},
dispatchSortableEvent: function (t) {
W({ sortable: e, name: t, originalEvent: i });
}
},
r
)
);
}
function W(t) {
N(
I(
{
putSortable: it,
cloneEl: Q,
targetEl: z,
rootEl: q,
oldIndex: J,
oldDraggableIndex: et,
newIndex: tt,
newDraggableIndex: nt
},
t
)
);
}
var z,
G,
U,
q,
V,
Z,
Q,
$,
J,
tt,
et,
nt,
ot,
it,
rt,
at,
lt,
st,
ct,
ut,
dt,
ht,
ft,
pt,
gt,
vt = !1,
mt = !1,
bt = [],
yt = !1,
wt = !1,
Et = [],
Dt = !1,
St = [],
_t = "undefined" != typeof document,
Ct = n,
Tt = E || w ? "cssFloat" : "float",
xt = _t && !i && !n && "draggable" in document.createElement("div"),
Mt = (function () {
if (_t) {
if (w) return !1;
var t = document.createElement("x");
return (
(t.style.cssText = "pointer-events:auto"),
"auto" === t.style.pointerEvents
);
}
})(),
Ot = function (t, e) {
var n = R(t),
o =
parseInt(n.width) -
parseInt(n.paddingLeft) -
parseInt(n.paddingRight) -
parseInt(n.borderLeftWidth) -
parseInt(n.borderRightWidth),
i = m(t, 0, e),
r = m(t, 1, e),
a = i && R(i),
l = r && R(r),
s = a && parseInt(a.marginLeft) + parseInt(a.marginRight) + X(i).width,
c = l && parseInt(l.marginLeft) + parseInt(l.marginRight) + X(r).width;
if ("flex" === n.display)
return "column" === n.flexDirection ||
"column-reverse" === n.flexDirection
? "vertical"
: "horizontal";
if ("grid" === n.display)
return n.gridTemplateColumns.split(" ").length <= 1
? "vertical"
: "horizontal";
if (i && a.float && "none" !== a.float) {
var u = "left" === a.float ? "left" : "right";
return !r || ("both" !== l.clear && l.clear !== u)
? "horizontal"
: "vertical";
}
return i &&
("block" === a.display ||
"flex" === a.display ||
"table" === a.display ||
"grid" === a.display ||
(o <= s && "none" === n[Tt]) ||
(r && "none" === n[Tt] && o < s + c))
? "vertical"
: "horizontal";
},
Nt = function (t) {
function s(a, l) {
return function (t, e, n, o) {
var i =
t.options.group.name &&
e.options.group.name &&
t.options.group.name === e.options.group.name;
if (null == a && (l || i)) return !0;
if (null == a || !1 === a) return !1;
if (l && "clone" === a) return a;
if ("function" == typeof a) return s(a(t, e, n, o), l)(t, e, n, o);
var r = (l ? t : e).options.group.name;
return (
!0 === a ||
("string" == typeof a && a === r) ||
(a.join && -1 < a.indexOf(r))
);
};
}
var e = {},
n = t.group;
(n && "object" == o(n)) || (n = { name: n }),
(e.name = n.name),
(e.checkPull = s(n.pull, !0)),
(e.checkPut = s(n.put)),
(e.revertClone = n.revertClone),
(t.group = e);
},
At = function () {
!Mt && U && R(U, "display", "none");
},
It = function () {
!Mt && U && R(U, "display", "");
};
_t &&
document.addEventListener(
"click",
function (t) {
if (mt)
return (
t.preventDefault(),
t.stopPropagation && t.stopPropagation(),
t.stopImmediatePropagation && t.stopImmediatePropagation(),
(mt = !1)
);
},
!0
);
function Pt(t) {
if (z) {
var e = (function (r, a) {
var l;
return (
bt.some(function (t) {
if (!B(t)) {
var e = X(t),
n = t[j].options.emptyInsertThreshold,
o = r >= e.left - n && r <= e.right + n,
i = a >= e.top - n && a <= e.bottom + n;
return n && o && i ? (l = t) : void 0;
}
}),
l
);
})((t = t.touches ? t.touches[0] : t).clientX, t.clientY);
if (e) {
var n = {};
for (var o in t) t.hasOwnProperty(o) && (n[o] = t[o]);
(n.target = n.rootEl = e),
(n.preventDefault = void 0),
(n.stopPropagation = void 0),
e[j]._onDragOver(n);
}
}
}
function kt(t) {
z && z.parentNode[j]._isOutsideThisEl(t.target);
}
function Rt(t, e) {
if (!t || !t.nodeType || 1 !== t.nodeType)
throw "Sortable: `el` must be an HTMLElement, not ".concat(
{}.toString.call(t)
);
(this.el = t), (this.options = e = a({}, e)), (t[j] = this);
var n = {
group: null,
sort: !0,
disabled: !1,
store: null,
handle: null,
draggable: /^[uo]l$/i.test(t.nodeName) ? ">li" : ">*",
swapThreshold: 1,
invertSwap: !1,
invertedSwapThreshold: null,
removeCloneOnHide: !0,
direction: function () {
return Ot(t, this.options);
},
ghostClass: "sortable-ghost",
chosenClass: "sortable-chosen",
dragClass: "sortable-drag",
ignore: "a, img",
filter: null,
preventOnFilter: !0,
animation: 0,
easing: null,
setData: function (t, e) {
t.setData("Text", e.textContent);
},
dropBubble: !1,
dragoverBubble: !1,
dataIdAttr: "data-id",
delay: 0,
delayOnTouchOnly: !1,
touchStartThreshold:
(Number.parseInt ? Number : window).parseInt(
window.devicePixelRatio,
10
) || 1,
forceFallback: !1,
fallbackClass: "sortable-fallback",
fallbackOnBody: !1,
fallbackTolerance: 0,
fallbackOffset: { x: 0, y: 0 },
supportPointer:
!1 !== Rt.supportPointer && "PointerEvent" in window && !u,
emptyInsertThreshold: 5
};
for (var o in (O.initializePlugins(this, t, n), n)) o in e || (e[o] = n[o]);
for (var i in (Nt(e), this))
"_" === i.charAt(0) &&
"function" == typeof this[i] &&
(this[i] = this[i].bind(this));
(this.nativeDraggable = !e.forceFallback && xt),
this.nativeDraggable && (this.options.touchStartThreshold = 1),
e.supportPointer
? d(t, "pointerdown", this._onTapStart)
: (d(t, "mousedown", this._onTapStart),
d(t, "touchstart", this._onTapStart)),
this.nativeDraggable && (d(t, "dragover", this), d(t, "dragenter", this)),
bt.push(this.el),
e.store && e.store.get && this.sort(e.store.get(this) || []),
a(this, T());
}
function Xt(t, e, n, o, i, r, a, l) {
var s,
c,
u = t[j],
d = u.options.onMove;
return (
!window.CustomEvent || w || E
? (s = document.createEvent("Event")).initEvent("move", !0, !0)
: (s = new CustomEvent("move", { bubbles: !0, cancelable: !0 })),
(s.to = e),
(s.from = t),
(s.dragged = n),
(s.draggedRect = o),
(s.related = i || e),
(s.relatedRect = r || X(e)),
(s.willInsertAfter = l),
(s.originalEvent = a),
t.dispatchEvent(s),
d && (c = d.call(u, s, a)),
c
);
}
function Yt(t) {
t.draggable = !1;
}
function Bt() {
Dt = !1;
}
function Ft(t) {
for (
var e = t.tagName + t.className + t.src + t.href + t.textContent,
n = e.length,
o = 0;
n--;
)
o += e.charCodeAt(n);
return o.toString(36);
}
function Ht(t) {
return setTimeout(t, 0);
}
function Lt(t) {
return clearTimeout(t);
}
(Rt.prototype = {
constructor: Rt,
_isOutsideThisEl: function (t) {
this.el.contains(t) || t === this.el || (ht = null);
},
_getDirection: function (t, e) {
return "function" == typeof this.options.direction
? this.options.direction.call(this, t, e, z)
: this.options.direction;
},
_onTapStart: function (e) {
if (e.cancelable) {
var n = this,
o = this.el,
t = this.options,
i = t.preventOnFilter,
r = e.type,
a =
(e.touches && e.touches[0]) ||
(e.pointerType && "touch" === e.pointerType && e),
l = (a || e).target,
s =
(e.target.shadowRoot &&
((e.path && e.path[0]) ||
(e.composedPath && e.composedPath()[0]))) ||
l,
c = t.filter;
if (
((function (t) {
St.length = 0;
var e = t.getElementsByTagName("input"),
n = e.length;
for (; n--; ) {
var o = e[n];
o.checked && St.push(o);
}
})(o),
!z &&
!(
(/mousedown|pointerdown/.test(r) && 0 !== e.button) ||
t.disabled
) &&
!s.isContentEditable &&
(this.nativeDraggable ||
!u ||
!l ||
"SELECT" !== l.tagName.toUpperCase()) &&
!(((l = P(l, t.draggable, o, !1)) && l.animated) || Z === l))
) {
if (((J = F(l)), (et = F(l, t.draggable)), "function" == typeof c)) {
if (c.call(this, e, l, this))
return (
W({
sortable: n,
rootEl: s,
name: "filter",
targetEl: l,
toEl: o,
fromEl: o
}),
K("filter", n, { evt: e }),
void (i && e.cancelable && e.preventDefault())
);
} else if (
c &&
(c = c.split(",").some(function (t) {
if ((t = P(s, t.trim(), o, !1)))
return (
W({
sortable: n,
rootEl: t,
name: "filter",
targetEl: l,
fromEl: o,
toEl: o
}),
K("filter", n, { evt: e }),
!0
);
}))
)
return void (i && e.cancelable && e.preventDefault());
(t.handle && !P(s, t.handle, o, !1)) ||
this._prepareDragStart(e, a, l);
}
}
},
_prepareDragStart: function (t, e, n) {
var o,
i = this,
r = i.el,
a = i.options,
l = r.ownerDocument;
if (n && !z && n.parentNode === r) {
var s = X(n);
if (
((q = r),
(G = (z = n).parentNode),
(V = z.nextSibling),
(Z = n),
(ot = a.group),
(rt = {
target: (Rt.dragged = z),
clientX: (e || t).clientX,
clientY: (e || t).clientY
}),
(ct = rt.clientX - s.left),
(ut = rt.clientY - s.top),
(this._lastX = (e || t).clientX),
(this._lastY = (e || t).clientY),
(z.style["will-change"] = "all"),
(o = function () {
K("delayEnded", i, { evt: t }),
Rt.eventCanceled
? i._onDrop()
: (i._disableDelayedDragEvents(),
!c && i.nativeDraggable && (z.draggable = !0),
i._triggerDragStart(t, e),
W({ sortable: i, name: "choose", originalEvent: t }),
k(z, a.chosenClass, !0));
}),
a.ignore.split(",").forEach(function (t) {
g(z, t.trim(), Yt);
}),
d(l, "dragover", Pt),
d(l, "mousemove", Pt),
d(l, "touchmove", Pt),
d(l, "mouseup", i._onDrop),
d(l, "touchend", i._onDrop),
d(l, "touchcancel", i._onDrop),
c &&
this.nativeDraggable &&
((this.options.touchStartThreshold = 4), (z.draggable = !0)),
K("delayStart", this, { evt: t }),
!a.delay ||
(a.delayOnTouchOnly && !e) ||
(this.nativeDraggable && (E || w)))
)
o();
else {
if (Rt.eventCanceled) return void this._onDrop();
d(l, "mouseup", i._disableDelayedDrag),
d(l, "touchend", i._disableDelayedDrag),
d(l, "touchcancel", i._disableDelayedDrag),
d(l, "mousemove", i._delayedDragTouchMoveHandler),
d(l, "touchmove", i._delayedDragTouchMoveHandler),
a.supportPointer &&
d(l, "pointermove", i._delayedDragTouchMoveHandler),
(i._dragStartTimer = setTimeout(o, a.delay));
}
}
},
_delayedDragTouchMoveHandler: function (t) {
var e = t.touches ? t.touches[0] : t;
Math.max(
Math.abs(e.clientX - this._lastX),
Math.abs(e.clientY - this._lastY)
) >=
Math.floor(
this.options.touchStartThreshold /
((this.nativeDraggable && window.devicePixelRatio) || 1)
) && this._disableDelayedDrag();
},
_disableDelayedDrag: function () {
z && Yt(z),
clearTimeout(this._dragStartTimer),
this._disableDelayedDragEvents();
},
_disableDelayedDragEvents: function () {
var t = this.el.ownerDocument;
s(t, "mouseup", this._disableDelayedDrag),
s(t, "touchend", this._disableDelayedDrag),
s(t, "touchcancel", this._disableDelayedDrag),
s(t, "mousemove", this._delayedDragTouchMoveHandler),
s(t, "touchmove", this._delayedDragTouchMoveHandler),
s(t, "pointermove", this._delayedDragTouchMoveHandler);
},
_triggerDragStart: function (t, e) {
(e = e || ("touch" == t.pointerType && t)),
!this.nativeDraggable || e
? this.options.supportPointer
? d(document, "pointermove", this._onTouchMove)
: d(document, e ? "touchmove" : "mousemove", this._onTouchMove)
: (d(z, "dragend", this), d(q, "dragstart", this._onDragStart));
try {
document.selection
? Ht(function () {
document.selection.empty();
})
: window.getSelection().removeAllRanges();
} catch (t) {}
},
_dragStarted: function (t, e) {
if (((vt = !1), q && z)) {
K("dragStarted", this, { evt: e }),
this.nativeDraggable && d(document, "dragover", kt);
var n = this.options;
t || k(z, n.dragClass, !1),
k(z, n.ghostClass, !0),
(Rt.active = this),
t && this._appendGhost(),
W({ sortable: this, name: "start", originalEvent: e });
} else this._nulling();
},
_emulateDragOver: function () {
if (at) {
(this._lastX = at.clientX), (this._lastY = at.clientY), At();
for (
var t = document.elementFromPoint(at.clientX, at.clientY), e = t;
t &&
t.shadowRoot &&
(t = t.shadowRoot.elementFromPoint(at.clientX, at.clientY)) !== e;
)
e = t;
if ((z.parentNode[j]._isOutsideThisEl(t), e))
do {
if (e[j]) {
if (
e[j]._onDragOver({
clientX: at.clientX,
clientY: at.clientY,
target: t,
rootEl: e
}) &&
!this.options.dragoverBubble
)
break;
}
t = e;
} while ((e = e.parentNode));
It();
}
},
_onTouchMove: function (t) {
if (rt) {
var e = this.options,
n = e.fallbackTolerance,
o = e.fallbackOffset,
i = t.touches ? t.touches[0] : t,
r = U && v(U, !0),
a = U && r && r.a,
l = U && r && r.d,
s = Ct && gt && b(gt),
c =
(i.clientX - rt.clientX + o.x) / (a || 1) +
(s ? s[0] - Et[0] : 0) / (a || 1),
u =
(i.clientY - rt.clientY + o.y) / (l || 1) +
(s ? s[1] - Et[1] : 0) / (l || 1);
if (!Rt.active && !vt) {
if (
n &&
Math.max(
Math.abs(i.clientX - this._lastX),
Math.abs(i.clientY - this._lastY)
) < n
)
return;
this._onDragStart(t, !0);
}
if (U) {
r
? ((r.e += c - (lt || 0)), (r.f += u - (st || 0)))
: (r = { a: 1, b: 0, c: 0, d: 1, e: c, f: u });
var d = "matrix("
.concat(r.a, ",")
.concat(r.b, ",")
.concat(r.c, ",")
.concat(r.d, ",")
.concat(r.e, ",")
.concat(r.f, ")");
R(U, "webkitTransform", d),
R(U, "mozTransform", d),
R(U, "msTransform", d),
R(U, "transform", d),
(lt = c),
(st = u),
(at = i);
}
t.cancelable && t.preventDefault();
}
},
_appendGhost: function () {
if (!U) {
var t = this.options.fallbackOnBody ? document.body : q,
e = X(z, !0, Ct, !0, t),
n = this.options;
if (Ct) {
for (
gt = t;
"static" === R(gt, "position") &&
"none" === R(gt, "transform") &&
gt !== document;
)
gt = gt.parentNode;
gt !== document.body && gt !== document.documentElement
? (gt === document && (gt = A()),
(e.top += gt.scrollTop),
(e.left += gt.scrollLeft))
: (gt = A()),
(Et = b(gt));
}
k((U = z.cloneNode(!0)), n.ghostClass, !1),
k(U, n.fallbackClass, !0),
k(U, n.dragClass, !0),
R(U, "transition", ""),
R(U, "transform", ""),
R(U, "box-sizing", "border-box"),
R(U, "margin", 0),
R(U, "top", e.top),
R(U, "left", e.left),
R(U, "width", e.width),
R(U, "height", e.height),
R(U, "opacity", "0.8"),
R(U, "position", Ct ? "absolute" : "fixed"),
R(U, "zIndex", "100000"),
R(U, "pointerEvents", "none"),
(Rt.ghost = U),
t.appendChild(U),
R(
U,
"transform-origin",
(ct / parseInt(U.style.width)) * 100 +
"% " +
(ut / parseInt(U.style.height)) * 100 +
"%"
);
}
},
_onDragStart: function (t, e) {
var n = this,
o = t.dataTransfer,
i = n.options;
K("dragStart", this, { evt: t }),
Rt.eventCanceled
? this._onDrop()
: (K("setupClone", this),
Rt.eventCanceled ||
(((Q = S(z)).draggable = !1),
(Q.style["will-change"] = ""),
this._hideClone(),
k(Q, this.options.chosenClass, !1),
(Rt.clone = Q)),
(n.cloneId = Ht(function () {
K("clone", n),
Rt.eventCanceled ||
(n.options.removeCloneOnHide || q.insertBefore(Q, z),
n._hideClone(),
W({ sortable: n, name: "clone" }));
})),
e || k(z, i.dragClass, !0),
e
? ((mt = !0), (n._loopId = setInterval(n._emulateDragOver, 50)))
: (s(document, "mouseup", n._onDrop),
s(document, "touchend", n._onDrop),
s(document, "touchcancel", n._onDrop),
o &&
((o.effectAllowed = "move"),
i.setData && i.setData.call(n, o, z)),
d(document, "drop", n),
R(z, "transform", "translateZ(0)")),
(vt = !0),
(n._dragStartId = Ht(n._dragStarted.bind(n, e, t))),
d(document, "selectstart", n),
(dt = !0),
u && R(document.body, "user-select", "none"));
},
_onDragOver: function (n) {
var o,
i,
r,
a,
l = this.el,
s = n.target,
e = this.options,
t = e.group,
c = Rt.active,
u = ot === t,
d = e.sort,
h = it || c,
f = this,
p = !1;
if (!Dt) {
if (
(void 0 !== n.preventDefault && n.cancelable && n.preventDefault(),
(s = P(s, e.draggable, l, !0)),
M("dragOver"),
Rt.eventCanceled)
)
return p;
if (
z.contains(n.target) ||
(s.animated && s.animatingX && s.animatingY) ||
f._ignoreWhileAnimating === s
)
return N(!1);
if (
((mt = !1),
c &&
!e.disabled &&
(u
? d || (r = !q.contains(z))
: it === this ||
((this.lastPutMode = ot.checkPull(this, c, z, n)) &&
t.checkPut(this, c, z, n))))
) {
if (
((a = "vertical" === this._getDirection(n, s)),
(o = X(z)),
M("dragOverValid"),
Rt.eventCanceled)
)
return p;
if (r)
return (
(G = q),
O(),
this._hideClone(),
M("revert"),
Rt.eventCanceled || (V ? q.insertBefore(z, V) : q.appendChild(z)),
N(!0)
);
var g = B(l, e.draggable);
if (
!g ||
((function (t, e, n) {
var o = X(B(n.el, n.options.draggable));
return e
? t.clientX > o.right + 10 ||
(t.clientX <= o.right &&
t.clientY > o.bottom &&
t.clientX >= o.left)
: (t.clientX > o.right && t.clientY > o.top) ||
(t.clientX <= o.right && t.clientY > o.bottom + 10);
})(n, a, this) &&
!g.animated)
) {
if (g === z) return N(!1);
if (
(g && l === n.target && (s = g),
s && (i = X(s)),
!1 !== Xt(q, l, z, o, s, i, n, !!s))
)
return O(), l.appendChild(z), (G = l), A(), N(!0);
} else if (s.parentNode === l) {
i = X(s);
var v,
m,
b,
y = z.parentNode !== l,
w = !(function (t, e, n) {
var o = n ? t.left : t.top,
i = n ? t.right : t.bottom,
r = n ? t.width : t.height,
a = n ? e.left : e.top,
l = n ? e.right : e.bottom,
s = n ? e.width : e.height;
return o === a || i === l || o + r / 2 === a + s / 2;
})(
(z.animated && z.toRect) || o,
(s.animated && s.toRect) || i,
a
),
E = a ? "top" : "left",
D = Y(s, "top", "top") || Y(z, "top", "top"),
S = D ? D.scrollTop : void 0;
if (
(ht !== s &&
((m = i[E]), (yt = !1), (wt = (!w && e.invertSwap) || y)),
0 !==
(v = (function (t, e, n, o, i, r, a, l) {
var s = o ? t.clientY : t.clientX,
c = o ? n.height : n.width,
u = o ? n.top : n.left,
d = o ? n.bottom : n.right,
h = !1;
if (!a)
if (l && pt < c * i) {
if (
(!yt &&
(1 === ft
? u + (c * r) / 2 < s
: s < d - (c * r) / 2) &&
(yt = !0),
yt)
)
h = !0;
else if (1 === ft ? s < u + pt : d - pt < s) return -ft;
} else if (
u + (c * (1 - i)) / 2 < s &&
s < d - (c * (1 - i)) / 2
)
return (function (t) {
return F(z) < F(t) ? 1 : -1;
})(e);
if (
(h = h || a) &&
(s < u + (c * r) / 2 || d - (c * r) / 2 < s)
)
return u + c / 2 < s ? 1 : -1;
return 0;
})(
n,
s,
i,
a,
w ? 1 : e.swapThreshold,
null == e.invertedSwapThreshold
? e.swapThreshold
: e.invertedSwapThreshold,
wt,
ht === s
)))
)
for (
var _ = F(z);
(_ -= v),
(b = G.children[_]) &&
("none" === R(b, "display") || b === U);
);
if (0 === v || b === s) return N(!1);
ft = v;
var C = (ht = s).nextElementSibling,
T = !1,
x = Xt(q, l, z, o, s, i, n, (T = 1 === v));
if (!1 !== x)
return (
(1 !== x && -1 !== x) || (T = 1 === x),
(Dt = !0),
setTimeout(Bt, 30),
O(),
T && !C
? l.appendChild(z)
: s.parentNode.insertBefore(z, T ? C : s),
D && L(D, 0, S - D.scrollTop),
(G = z.parentNode),
void 0 === m || wt || (pt = Math.abs(m - X(s)[E])),
A(),
N(!0)
);
}
if (l.contains(z)) return N(!1);
}
return !1;
}
function M(t, e) {
K(
t,
f,
I(
{
evt: n,
isOwner: u,
axis: a ? "vertical" : "horizontal",
revert: r,
dragRect: o,
targetRect: i,
canSort: d,
fromSortable: h,
target: s,
completed: N,
onMove: function (t, e) {
return Xt(q, l, z, o, t, X(t), n, e);
},
changed: A
},
e
)
);
}
function O() {
M("dragOverAnimationCapture"),
f.captureAnimationState(),
f !== h && h.captureAnimationState();
}
function N(t) {
return (
M("dragOverCompleted", { insertion: t }),
t &&
(u ? c._hideClone() : c._showClone(f),
f !== h &&
(k(z, it ? it.options.ghostClass : c.options.ghostClass, !1),
k(z, e.ghostClass, !0)),
it !== f && f !== Rt.active
? (it = f)
: f === Rt.active && it && (it = null),
h === f && (f._ignoreWhileAnimating = s),
f.animateAll(function () {
M("dragOverAnimationComplete"), (f._ignoreWhileAnimating = null);
}),
f !== h && (h.animateAll(), (h._ignoreWhileAnimating = null))),
((s === z && !z.animated) || (s === l && !s.animated)) && (ht = null),
e.dragoverBubble ||
n.rootEl ||
s === document ||
(z.parentNode[j]._isOutsideThisEl(n.target), t || Pt(n)),
!e.dragoverBubble && n.stopPropagation && n.stopPropagation(),
(p = !0)
);
}
function A() {
(tt = F(z)),
(nt = F(z, e.draggable)),
W({
sortable: f,
name: "change",
toEl: l,
newIndex: tt,
newDraggableIndex: nt,
originalEvent: n
});
}
},
_ignoreWhileAnimating: null,
_offMoveEvents: function () {
s(document, "mousemove", this._onTouchMove),
s(document, "touchmove", this._onTouchMove),
s(document, "pointermove", this._onTouchMove),
s(document, "dragover", Pt),
s(document, "mousemove", Pt),
s(document, "touchmove", Pt);
},
_offUpEvents: function () {
var t = this.el.ownerDocument;
s(t, "mouseup", this._onDrop),
s(t, "touchend", this._onDrop),
s(t, "pointerup", this._onDrop),
s(t, "touchcancel", this._onDrop),
s(document, "selectstart", this);
},
_onDrop: function (t) {
var e = this.el,
n = this.options;
(tt = F(z)),
(nt = F(z, n.draggable)),
K("drop", this, { evt: t }),
(G = z && z.parentNode),
(tt = F(z)),
(nt = F(z, n.draggable)),
Rt.eventCanceled ||
((yt = wt = vt = !1),
clearInterval(this._loopId),
clearTimeout(this._dragStartTimer),
Lt(this.cloneId),
Lt(this._dragStartId),
this.nativeDraggable &&
(s(document, "drop", this), s(e, "dragstart", this._onDragStart)),
this._offMoveEvents(),
this._offUpEvents(),
u && R(document.body, "user-select", ""),
R(z, "transform", ""),
t &&
(dt &&
(t.cancelable && t.preventDefault(),
n.dropBubble || t.stopPropagation()),
U && U.parentNode && U.parentNode.removeChild(U),
(q === G || (it && "clone" !== it.lastPutMode)) &&
Q &&
Q.parentNode &&
Q.parentNode.removeChild(Q),
z &&
(this.nativeDraggable && s(z, "dragend", this),
Yt(z),
(z.style["will-change"] = ""),
dt &&
!vt &&
k(z, it ? it.options.ghostClass : this.options.ghostClass, !1),
k(z, this.options.chosenClass, !1),
W({
sortable: this,
name: "unchoose",
toEl: G,
newIndex: null,
newDraggableIndex: null,
originalEvent: t
}),
q !== G
? (0 <= tt &&
(W({
rootEl: G,
name: "add",
toEl: G,
fromEl: q,
originalEvent: t
}),
W({
sortable: this,
name: "remove",
toEl: G,
originalEvent: t
}),
W({
rootEl: G,
name: "sort",
toEl: G,
fromEl: q,
originalEvent: t
}),
W({
sortable: this,
name: "sort",
toEl: G,
originalEvent: t
})),
it && it.save())
: tt !== J &&
0 <= tt &&
(W({
sortable: this,
name: "update",
toEl: G,
originalEvent: t
}),
W({
sortable: this,
name: "sort",
toEl: G,
originalEvent: t
})),
Rt.active &&
((null != tt && -1 !== tt) || ((tt = J), (nt = et)),
W({ sortable: this, name: "end", toEl: G, originalEvent: t }),
this.save())))),
this._nulling();
},
_nulling: function () {
K("nulling", this),
(q =
z =
G =
U =
V =
Q =
Z =
$ =
rt =
at =
dt =
tt =
nt =
J =
et =
ht =
ft =
it =
ot =
Rt.dragged =
Rt.ghost =
Rt.clone =
Rt.active =
null),
St.forEach(function (t) {
t.checked = !0;
}),
(St.length = lt = st = 0);
},
handleEvent: function (t) {
switch (t.type) {
case "drop":
case "dragend":
this._onDrop(t);
break;
case "dragenter":
case "dragover":
z &&
(this._onDragOver(t),
(function (t) {
t.dataTransfer && (t.dataTransfer.dropEffect = "move");
t.cancelable && t.preventDefault();
})(t));
break;
case "selectstart":
t.preventDefault();
}
},
toArray: function () {
for (
var t,
e = [],
n = this.el.children,
o = 0,
i = n.length,
r = this.options;
o < i;
o++
)
P((t = n[o]), r.draggable, this.el, !1) &&
e.push(t.getAttribute(r.dataIdAttr) || Ft(t));
return e;
},
sort: function (t, e) {
var o = {},
i = this.el;
this.toArray().forEach(function (t, e) {
var n = i.children[e];
P(n, this.options.draggable, i, !1) && (o[t] = n);
}, this),
e && this.captureAnimationState(),
t.forEach(function (t) {
o[t] && (i.removeChild(o[t]), i.appendChild(o[t]));
}),
e && this.animateAll();
},
save: function () {
var t = this.options.store;
t && t.set && t.set(this);
},
closest: function (t, e) {
return P(t, e || this.options.draggable, this.el, !1);
},
option: function (t, e) {
var n = this.options;
if (void 0 === e) return n[t];
var o = O.modifyOption(this, t, e);
(n[t] = void 0 !== o ? o : e), "group" === t && Nt(n);
},
destroy: function () {
K("destroy", this);
var t = this.el;
(t[j] = null),
s(t, "mousedown", this._onTapStart),
s(t, "touchstart", this._onTapStart),
s(t, "pointerdown", this._onTapStart),
this.nativeDraggable &&
(s(t, "dragover", this), s(t, "dragenter", this)),
Array.prototype.forEach.call(
t.querySelectorAll("[draggable]"),
function (t) {
t.removeAttribute("draggable");
}
),
this._onDrop(),
this._disableDelayedDragEvents(),
bt.splice(bt.indexOf(this.el), 1),
(this.el = t = null);
},
_hideClone: function () {
if (!$) {
if ((K("hideClone", this), Rt.eventCanceled)) return;
R(Q, "display", "none"),
this.options.removeCloneOnHide &&
Q.parentNode &&
Q.parentNode.removeChild(Q),
($ = !0);
}
},
_showClone: function (t) {
if ("clone" === t.lastPutMode) {
if ($) {
if ((K("showClone", this), Rt.eventCanceled)) return;
z.parentNode != q || this.options.group.revertClone
? V
? q.insertBefore(Q, V)
: q.appendChild(Q)
: q.insertBefore(Q, z),
this.options.group.revertClone && this.animate(z, Q),
R(Q, "display", ""),
($ = !1);
}
} else this._hideClone();
}
}),
_t &&
d(document, "touchmove", function (t) {
(Rt.active || vt) && t.cancelable && t.preventDefault();
}),
(Rt.utils = {
on: d,
off: s,
css: R,
find: g,
is: function (t, e) {
return !!P(t, e, t, !1);
},
extend: function (t, e) {
if (t && e) for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
return t;
},
throttle: D,
closest: P,
toggleClass: k,
clone: S,
index: F,
nextTick: Ht,
cancelNextTick: Lt,
detectDirection: Ot,
getChild: m
}),
(Rt.get = function (t) {
return t[j];
}),
(Rt.mount = function () {
for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)
e[n] = arguments[n];
e[0].constructor === Array && (e = e[0]),
e.forEach(function (t) {
if (!t.prototype || !t.prototype.constructor)
throw "Sortable: Mounted plugin must be a constructor function, not ".concat(
{}.toString.call(t)
);
t.utils && (Rt.utils = I({}, Rt.utils, t.utils)), O.mount(t);
});
}),
(Rt.create = function (t, e) {
return new Rt(t, e);
});
var jt,
Kt,
Wt,
zt,
Gt,
Ut,
qt = [],
Vt = !(Rt.version = "1.13.0");
function Zt() {
qt.forEach(function (t) {
clearInterval(t.pid);
}),
(qt = []);
}
function Qt() {
clearInterval(Ut);
}
function $t(t) {
var e = t.originalEvent,
n = t.putSortable,
o = t.dragEl,
i = t.activeSortable,
r = t.dispatchSortableEvent,
a = t.hideGhostForTarget,
l = t.unhideGhostForTarget;
if (e) {
var s = n || i;
a();
var c =
e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e,
u = document.elementFromPoint(c.clientX, c.clientY);
l(),
s &&
!s.el.contains(u) &&
(r("spill"), this.onSpill({ dragEl: o, putSortable: n }));
}
}
var Jt,
te = D(function (n, t, e, o) {
if (t.scroll) {
var i,
r = (n.touches ? n.touches[0] : n).clientX,
a = (n.touches ? n.touches[0] : n).clientY,
l = t.scrollSensitivity,
s = t.scrollSpeed,
c = A(),
u = !1;
Kt !== e &&
((Kt = e),
Zt(),
(jt = t.scroll),
(i = t.scrollFn),
!0 === jt && (jt = H(e, !0)));
var d = 0,
h = jt;
do {
var f = h,
p = X(f),
g = p.top,
v = p.bottom,
m = p.left,
b = p.right,
y = p.width,
w = p.height,
E = void 0,
D = void 0,
S = f.scrollWidth,
_ = f.scrollHeight,
C = R(f),
T = f.scrollLeft,
x = f.scrollTop;
D =
f === c
? ((E =
y < S &&
("auto" === C.overflowX ||
"scroll" === C.overflowX ||
"visible" === C.overflowX)),
w < _ &&
("auto" === C.overflowY ||
"scroll" === C.overflowY ||
"visible" === C.overflowY))
: ((E =
y < S &&
("auto" === C.overflowX || "scroll" === C.overflowX)),
w < _ && ("auto" === C.overflowY || "scroll" === C.overflowY));
var M =
E &&
(Math.abs(b - r) <= l && T + y < S) -
(Math.abs(m - r) <= l && !!T),
O =
D &&
(Math.abs(v - a) <= l && x + w < _) -
(Math.abs(g - a) <= l && !!x);
if (!qt[d]) for (var N = 0; N <= d; N++) qt[N] || (qt[N] = {});
(qt[d].vx == M && qt[d].vy == O && qt[d].el === f) ||
((qt[d].el = f),
(qt[d].vx = M),
(qt[d].vy = O),
clearInterval(qt[d].pid),
(0 == M && 0 == O) ||
((u = !0),
(qt[d].pid = setInterval(
function () {
o && 0 === this.layer && Rt.active._onTouchMove(Gt);
var t = qt[this.layer].vy ? qt[this.layer].vy * s : 0,
e = qt[this.layer].vx ? qt[this.layer].vx * s : 0;
("function" == typeof i &&
"continue" !==
i.call(
Rt.dragged.parentNode[j],
e,
t,
n,
Gt,
qt[this.layer].el
)) ||
L(qt[this.layer].el, e, t);
}.bind({ layer: d }),
24
)))),
d++;
} while (t.bubbleScroll && h !== c && (h = H(h, !1)));
Vt = u;
}
}, 30);
function ee() {}
function ne() {}
(ee.prototype = {
startIndex: null,
dragStart: function (t) {
var e = t.oldDraggableIndex;
this.startIndex = e;
},
onSpill: function (t) {
var e = t.dragEl,
n = t.putSortable;
this.sortable.captureAnimationState(), n && n.captureAnimationState();
var o = m(this.sortable.el, this.startIndex, this.options);
o ? this.sortable.el.insertBefore(e, o) : this.sortable.el.appendChild(e),
this.sortable.animateAll(),
n && n.animateAll();
},
drop: $t
}),
a(ee, { pluginName: "revertOnSpill" }),
(ne.prototype = {
onSpill: function (t) {
var e = t.dragEl,
n = t.putSortable || this.sortable;
n.captureAnimationState(),
e.parentNode && e.parentNode.removeChild(e),
n.animateAll();
},
drop: $t
}),
a(ne, { pluginName: "removeOnSpill" });
var oe,
ie,
re,
ae,
le,
se = [],
ce = [],
ue = !1,
de = !1,
he = !1;
function fe(o, i) {
ce.forEach(function (t, e) {
var n = i.children[t.sortableIndex + (o ? Number(e) : 0)];
n ? i.insertBefore(t, n) : i.appendChild(t);
});
}
function pe() {
se.forEach(function (t) {
t !== re && t.parentNode && t.parentNode.removeChild(t);
});
}
return (
Rt.mount(
new (function () {
function t() {
for (var t in ((this.defaults = {
scroll: !0,
scrollSensitivity: 30,
scrollSpeed: 10,
bubbleScroll: !0
}),
this))
"_" === t.charAt(0) &&
"function" == typeof this[t] &&
(this[t] = this[t].bind(this));
}
return (
(t.prototype = {
dragStarted: function (t) {
var e = t.originalEvent;
this.sortable.nativeDraggable
? d(document, "dragover", this._handleAutoScroll)
: this.options.supportPointer
? d(document, "pointermove", this._handleFallbackAutoScroll)
: e.touches
? d(document, "touchmove", this._handleFallbackAutoScroll)
: d(document, "mousemove", this._handleFallbackAutoScroll);
},
dragOverCompleted: function (t) {
var e = t.originalEvent;
this.options.dragOverBubble ||
e.rootEl ||
this._handleAutoScroll(e);
},
drop: function () {
this.sortable.nativeDraggable
? s(document, "dragover", this._handleAutoScroll)
: (s(document, "pointermove", this._handleFallbackAutoScroll),
s(document, "touchmove", this._handleFallbackAutoScroll),
s(document, "mousemove", this._handleFallbackAutoScroll)),
Qt(),
Zt(),
clearTimeout(f),
(f = void 0);
},
nulling: function () {
(Gt = Kt = jt = Vt = Ut = Wt = zt = null), (qt.length = 0);
},
_handleFallbackAutoScroll: function (t) {
this._handleAutoScroll(t, !0);
},
_handleAutoScroll: function (e, n) {
var o = this,
i = (e.touches ? e.touches[0] : e).clientX,
r = (e.touches ? e.touches[0] : e).clientY,
t = document.elementFromPoint(i, r);
if (((Gt = e), n || E || w || u)) {
te(e, this.options, t, n);
var a = H(t, !0);
!Vt ||
(Ut && i === Wt && r === zt) ||
(Ut && Qt(),
(Ut = setInterval(function () {
var t = H(document.elementFromPoint(i, r), !0);
t !== a && ((a = t), Zt()), te(e, o.options, t, n);
}, 10)),
(Wt = i),
(zt = r));
} else {
if (!this.options.bubbleScroll || H(t, !0) === A())
return void Zt();
te(e, this.options, H(t, !1), !1);
}
}
}),
a(t, { pluginName: "scroll", initializeByDefault: !0 })
);
})()
),
Rt.mount(ne, ee),
Rt.mount(
new (function () {
function t() {
this.defaults = { swapClass: "sortable-swap-highlight" };
}
return (
(t.prototype = {
dragStart: function (t) {
var e = t.dragEl;
Jt = e;
},
dragOverValid: function (t) {
var e = t.completed,
n = t.target,
o = t.onMove,
i = t.activeSortable,
r = t.changed,
a = t.cancel;
if (i.options.swap) {
var l = this.sortable.el,
s = this.options;
if (n && n !== l) {
var c = Jt;
(Jt = !1 !== o(n) ? (k(n, s.swapClass, !0), n) : null),
c && c !== Jt && k(c, s.swapClass, !1);
}
r(), e(!0), a();
}
},
drop: function (t) {
var e = t.activeSortable,
n = t.putSortable,
o = t.dragEl,
i = n || this.sortable,
r = this.options;
Jt && k(Jt, r.swapClass, !1),
Jt &&
(r.swap || (n && n.options.swap)) &&
o !== Jt &&
(i.captureAnimationState(),
i !== e && e.captureAnimationState(),
(function (t, e) {
var n,
o,
i = t.parentNode,
r = e.parentNode;
if (!i || !r || i.isEqualNode(e) || r.isEqualNode(t))
return;
(n = F(t)), (o = F(e)), i.isEqualNode(r) && n < o && o++;
i.insertBefore(e, i.children[n]),
r.insertBefore(t, r.children[o]);
})(o, Jt),
i.animateAll(),
i !== e && e.animateAll());
},
nulling: function () {
Jt = null;
}
}),
a(t, {
pluginName: "swap",
eventProperties: function () {
return { swapItem: Jt };
}
})
);
})()
),
Rt.mount(
new (function () {
function t(o) {
for (var t in this)
"_" === t.charAt(0) &&
"function" == typeof this[t] &&
(this[t] = this[t].bind(this));
o.options.supportPointer
? d(document, "pointerup", this._deselectMultiDrag)
: (d(document, "mouseup", this._deselectMultiDrag),
d(document, "touchend", this._deselectMultiDrag)),
d(document, "keydown", this._checkKeyDown),
d(document, "keyup", this._checkKeyUp),
(this.defaults = {
selectedClass: "sortable-selected",
multiDragKey: null,
setData: function (t, e) {
var n = "";
se.length && ie === o
? se.forEach(function (t, e) {
n += (e ? ", " : "") + t.textContent;
})
: (n = e.textContent),
t.setData("Text", n);
}
});
}
return (
(t.prototype = {
multiDragKeyDown: !1,
isMultiDrag: !1,
delayStartGlobal: function (t) {
var e = t.dragEl;
re = e;
},
delayEnded: function () {
this.isMultiDrag = ~se.indexOf(re);
},
setupClone: function (t) {
var e = t.sortable,
n = t.cancel;
if (this.isMultiDrag) {
for (var o = 0; o < se.length; o++)
ce.push(S(se[o])),
(ce[o].sortableIndex = se[o].sortableIndex),
(ce[o].draggable = !1),
(ce[o].style["will-change"] = ""),
k(ce[o], this.options.selectedClass, !1),
se[o] === re && k(ce[o], this.options.chosenClass, !1);
e._hideClone(), n();
}
},
clone: function (t) {
var e = t.sortable,
n = t.rootEl,
o = t.dispatchSortableEvent,
i = t.cancel;
this.isMultiDrag &&
(this.options.removeCloneOnHide ||
(se.length && ie === e && (fe(!0, n), o("clone"), i())));
},
showClone: function (t) {
var e = t.cloneNowShown,
n = t.rootEl,
o = t.cancel;
this.isMultiDrag &&
(fe(!1, n),
ce.forEach(function (t) {
R(t, "display", "");
}),
e(),
(le = !1),
o());
},
hideClone: function (t) {
var e = this,
n = (t.sortable, t.cloneNowHidden),
o = t.cancel;
this.isMultiDrag &&
(ce.forEach(function (t) {
R(t, "display", "none"),
e.options.removeCloneOnHide &&
t.parentNode &&
t.parentNode.removeChild(t);
}),
n(),
(le = !0),
o());
},
dragStartGlobal: function (t) {
t.sortable;
!this.isMultiDrag && ie && ie.multiDrag._deselectMultiDrag(),
se.forEach(function (t) {
t.sortableIndex = F(t);
}),
(se = se.sort(function (t, e) {
return t.sortableIndex - e.sortableIndex;
})),
(he = !0);
},
dragStarted: function (t) {
var e = this,
n = t.sortable;
if (this.isMultiDrag) {
if (
this.options.sort &&
(n.captureAnimationState(), this.options.animation)
) {
se.forEach(function (t) {
t !== re && R(t, "position", "absolute");
});
var o = X(re, !1, !0, !0);
se.forEach(function (t) {
t !== re && _(t, o);
}),
(ue = de = !0);
}
n.animateAll(function () {
(ue = de = !1),
e.options.animation &&
se.forEach(function (t) {
C(t);
}),
e.options.sort && pe();
});
}
},
dragOver: function (t) {
var e = t.target,
n = t.completed,
o = t.cancel;
de && ~se.indexOf(e) && (n(!1), o());
},
revert: function (t) {
var e = t.fromSortable,
n = t.rootEl,
o = t.sortable,
i = t.dragRect;
1 < se.length &&
(se.forEach(function (t) {
o.addAnimationState({ target: t, rect: de ? X(t) : i }),
C(t),
(t.fromRect = i),
e.removeAnimationState(t);
}),
(de = !1),
(function (o, i) {
se.forEach(function (t, e) {
var n = i.children[t.sortableIndex + (o ? Number(e) : 0)];
n ? i.insertBefore(t, n) : i.appendChild(t);
});
})(!this.options.removeCloneOnHide, n));
},
dragOverCompleted: function (t) {
var e = t.sortable,
n = t.isOwner,
o = t.insertion,
i = t.activeSortable,
r = t.parentEl,
a = t.putSortable,
l = this.options;
if (o) {
if (
(n && i._hideClone(),
(ue = !1),
l.animation &&
1 < se.length &&
(de || (!n && !i.options.sort && !a)))
) {
var s = X(re, !1, !0, !0);
se.forEach(function (t) {
t !== re && (_(t, s), r.appendChild(t));
}),
(de = !0);
}
if (!n)
if ((de || pe(), 1 < se.length)) {
var c = le;
i._showClone(e),
i.options.animation &&
!le &&
c &&
ce.forEach(function (t) {
i.addAnimationState({ target: t, rect: ae }),
(t.fromRect = ae),
(t.thisAnimationDuration = null);
});
} else i._showClone(e);
}
},
dragOverAnimationCapture: function (t) {
var e = t.dragRect,
n = t.isOwner,
o = t.activeSortable;
if (
(se.forEach(function (t) {
t.thisAnimationDuration = null;
}),
o.options.animation && !n && o.multiDrag.isMultiDrag)
) {
ae = a({}, e);
var i = v(re, !0);
(ae.top -= i.f), (ae.left -= i.e);
}
},
dragOverAnimationComplete: function () {
de && ((de = !1), pe());
},
drop: function (t) {
var e = t.originalEvent,
n = t.rootEl,
o = t.parentEl,
i = t.sortable,
r = t.dispatchSortableEvent,
a = t.oldIndex,
l = t.putSortable,
s = l || this.sortable;
if (e) {
var c = this.options,
u = o.children;
if (!he)
if (
(c.multiDragKey &&
!this.multiDragKeyDown &&
this._deselectMultiDrag(),
k(re, c.selectedClass, !~se.indexOf(re)),
~se.indexOf(re))
)
se.splice(se.indexOf(re), 1),
(oe = null),
N({
sortable: i,
rootEl: n,
name: "deselect",
targetEl: re,
originalEvt: e
});
else {
if (
(se.push(re),
N({
sortable: i,
rootEl: n,
name: "select",
targetEl: re,
originalEvt: e
}),
e.shiftKey && oe && i.el.contains(oe))
) {
var d,
h,
f = F(oe),
p = F(re);
if (~f && ~p && f !== p)
for (
d = f < p ? ((h = f), p) : ((h = p), f + 1);
h < d;
h++
)
~se.indexOf(u[h]) ||
(k(u[h], c.selectedClass, !0),
se.push(u[h]),
N({
sortable: i,
rootEl: n,
name: "select",
targetEl: u[h],
originalEvt: e
}));
} else oe = re;
ie = s;
}
if (he && this.isMultiDrag) {
if ((o[j].options.sort || o !== n) && 1 < se.length) {
var g = X(re),
v = F(re, ":not(." + this.options.selectedClass + ")");
if (
(!ue && c.animation && (re.thisAnimationDuration = null),
s.captureAnimationState(),
!ue &&
(c.animation &&
((re.fromRect = g),
se.forEach(function (t) {
if (((t.thisAnimationDuration = null), t !== re)) {
var e = de ? X(t) : g;
(t.fromRect = e),
s.addAnimationState({ target: t, rect: e });
}
})),
pe(),
se.forEach(function (t) {
u[v] ? o.insertBefore(t, u[v]) : o.appendChild(t),
v++;
}),
a === F(re)))
) {
var m = !1;
se.forEach(function (t) {
t.sortableIndex === F(t) || (m = !0);
}),
m && r("update");
}
se.forEach(function (t) {
C(t);
}),
s.animateAll();
}
ie = s;
}
(n === o || (l && "clone" !== l.lastPutMode)) &&
ce.forEach(function (t) {
t.parentNode && t.parentNode.removeChild(t);
});
}
},
nullingGlobal: function () {
(this.isMultiDrag = he = !1), (ce.length = 0);
},
destroyGlobal: function () {
this._deselectMultiDrag(),
s(document, "pointerup", this._deselectMultiDrag),
s(document, "mouseup", this._deselectMultiDrag),
s(document, "touchend", this._deselectMultiDrag),
s(document, "keydown", this._checkKeyDown),
s(document, "keyup", this._checkKeyUp);
},
_deselectMultiDrag: function (t) {
if (
!(
(void 0 !== he && he) ||
ie !== this.sortable ||
(t &&
P(
t.target,
this.options.draggable,
this.sortable.el,
!1
)) ||
(t && 0 !== t.button)
)
)
for (; se.length; ) {
var e = se[0];
k(e, this.options.selectedClass, !1),
se.shift(),
N({
sortable: this.sortable,
rootEl: this.sortable.el,
name: "deselect",
targetEl: e,
originalEvt: t
});
}
},
_checkKeyDown: function (t) {
t.key === this.options.multiDragKey &&
(this.multiDragKeyDown = !0);
},
_checkKeyUp: function (t) {
t.key === this.options.multiDragKey &&
(this.multiDragKeyDown = !1);
}
}),
a(t, {
pluginName: "multiDrag",
utils: {
select: function (t) {
var e = t.parentNode[j];
e &&
e.options.multiDrag &&
!~se.indexOf(t) &&
(ie &&
ie !== e &&
(ie.multiDrag._deselectMultiDrag(), (ie = e)),
k(t, e.options.selectedClass, !0),
se.push(t));
},
deselect: function (t) {
var e = t.parentNode[j],
n = se.indexOf(t);
e &&
e.options.multiDrag &&
~n &&
(k(t, e.options.selectedClass, !1), se.splice(n, 1));
}
},
eventProperties: function () {
var n = this,
o = [],
i = [];
return (
se.forEach(function (t) {
var e;
o.push({ multiDragElement: t, index: t.sortableIndex }),
(e =
de && t !== re
? -1
: de
? F(t, ":not(." + n.options.selectedClass + ")")
: F(t)),
i.push({ multiDragElement: t, index: e });
}),
{
items: e(se),
clones: [].concat(ce),
oldIndicies: o,
newIndicies: i
}
);
},
optionListeners: {
multiDragKey: function (t) {
return (
"ctrl" === (t = t.toLowerCase())
? (t = "Control")
: 1 < t.length &&
(t = t.charAt(0).toUpperCase() + t.substr(1)),
t
);
}
}
})
);
})()
),
Rt
);
});