easy-drag-and-drop 1.3.208 → 1.3.210

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -101,12 +101,12 @@ function startDrag(event, element, mouseTop, mouseLeft) {
101
101
  function stopDrag(event, element, aborted) {
102
102
  var _this = this;
103
103
  var dropElement = getDropElement(), customEventType = _customEventTypes.STOP_DRAG_CUSTOM_EVENT_TYPE;
104
+ this.removeClass("dragging");
104
105
  _easy.window.offKeyDown(keyDownHandler, this);
105
106
  _easy.window.offMouseMove(mouseMoveHandler, this);
106
107
  var done = function() {
107
108
  _this.callCustomHandlersAsync(customEventType, event, element, dropElement, aborted, function() {
108
109
  resetDragElement();
109
- _this.removeClass("dragging");
110
110
  });
111
111
  };
112
112
  if (dropElement !== null) {
@@ -263,4 +263,4 @@ function mouseMoveHandler(event, element) {
263
263
  event.stopPropagation();
264
264
  }
265
265
 
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZHJhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCIgO1xuaW1wb3J0IHsgd2luZG93LCBtb3VzZUJ1dHRvbnMgfSBmcm9tIFwiZWFzeVwiO1xuXG5pbXBvcnQgeyBTVEFSVF9EUkFHR0lOR19ERUxBWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgbW91c2VUb3BGcm9tRXZlbnQsIG1vdXNlTGVmdEZyb21FdmVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXZlbnRcIjtcbmltcG9ydCB7IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsIFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSwgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9jdXN0b21FdmVudFR5cGVzXCI7XG5cbmNvbnN0IHsgRVNDQVBFX0tFWV9DT0RFIH0gPSBrZXlDb2RlcyxcbiAgICAgIHsgTEVGVF9NT1VTRV9CVVRUT04gfSA9IG1vdXNlQnV0dG9ucztcblxuZnVuY3Rpb24gZ2V0RHJhZ0VsZW1lbnQoKSB7XG4gIGNvbnN0IHsgZHJhZ0VsZW1lbnQgfSA9IGdsb2JhbFRoaXM7XG5cbiAgcmV0dXJuIGRyYWdFbGVtZW50O1xufVxuXG5mdW5jdGlvbiBzZXREcmFnRWxlbWVudChkcmFnRWxlbWVudCkge1xuICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICBkcmFnRWxlbWVudFxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVzZXREcmFnRWxlbWVudCgpIHtcbiAgY29uc3QgZHJhZ0VsZW1lbnQgPSBudWxsO1xuXG4gIHNldERyYWdFbGVtZW50KGRyYWdFbGVtZW50KTtcbn1cblxuT2JqZWN0LmFzc2lnbihnbG9iYWxUaGlzLCB7XG4gIGdldERyYWdFbGVtZW50LFxuICBzZXREcmFnRWxlbWVudCxcbiAgcmVzZXREcmFnRWxlbWVudFxufSk7XG5cbnJlc2V0RHJhZ0VsZW1lbnQoKTtcblxuZnVuY3Rpb24gZW5hYmxlRHJhZygpIHtcbiAgY29uc3QgdGltZW91dCA9IG51bGwsXG4gICAgICAgIHRvcE9mZnNldCA9IG51bGwsXG4gICAgICAgIGxlZnRPZmZzZXQgPSBudWxsLFxuICAgICAgICBkcmFnRW5hYmxlZCA9IHRydWUsXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSBudWxsLFxuICAgICAgICBzdGFydE1vdXNlTGVmdCA9IG51bGw7XG5cbiAgdGhpcy5vbk1vdXNlRG93bihtb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICB0aW1lb3V0LFxuICAgIHRvcE9mZnNldCxcbiAgICBsZWZ0T2Zmc2V0LFxuICAgIGRyYWdFbmFibGVkLFxuICAgIHN0YXJ0TW91c2VUb3AsXG4gICAgc3RhcnRNb3VzZUxlZnRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRpc2FibGVEcmFnKCkge1xuICBjb25zdCBkcmFnRW5hYmxlZCA9IGZhbHNlO1xuXG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIGRyYWdFbmFibGVkXG4gIH0pO1xuXG4gIHRoaXMub2ZmTW91c2VEb3duKG1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbURyYWcoZHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IGRyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vbkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZkN1c3RvbURyYWcoZHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IGRyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vZmZDdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbVN0b3BEcmFnKHN0b3BEcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdG9wRHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tU3RvcERyYWcoc3RvcERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0b3BEcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21TdGFydERyYWcoc3RhcnREcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RhcnREcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21TdGFydERyYWcoc3RhcnREcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RhcnREcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gaXNEcmFnRW5hYmxlZCgpIHtcbiAgY29uc3QgeyBkcmFnRW5hYmxlZCA9IGZhbHNlIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIGRyYWdFbmFibGVkO1xufVxuXG5mdW5jdGlvbiBpc0RyYWdnaW5nKCkge1xuICBjb25zdCBkcmFnZ2luZyA9IHRoaXMuaGFzQ2xhc3MoXCJkcmFnZ2luZ1wiKTtcblxuICByZXR1cm4gZHJhZ2dpbmc7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0RHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBjb25zdCBib3VuZHMgPSB0aGlzLmdldEJvdW5kcygpLFxuICAgICAgICBib3VuZHNUb3AgPSBib3VuZHMuZ2V0VG9wKCksXG4gICAgICAgIGJvdW5kc0xlZnQgPSBib3VuZHMuZ2V0TGVmdCgpLFxuICAgICAgICBib3VuZHNSaWdodCA9IGJvdW5kcy5nZXRSaWdodCgpLFxuICAgICAgICBib3VuZHNCb3R0b20gPSBib3VuZHMuZ2V0Qm90dG9tKCksXG4gICAgICAgIGJvdW5kc1dpZHRoID0gYm91bmRzUmlnaHQgLSBib3VuZHNMZWZ0LFxuICAgICAgICBib3VuZHNIZWlnaHQgPSBib3VuZHNCb3R0b20gLSBib3VuZHNUb3AsXG4gICAgICAgIHRvcE9mZnNldCA9IE1hdGguZmxvb3IoYm91bmRzSGVpZ2h0IC8gMiksXG4gICAgICAgIGxlZnRPZmZzZXQgPSBNYXRoLmZsb29yKGJvdW5kc1dpZHRoIC8gMiksXG4gICAgICAgIGRyYWdFbGVtZW50ID0gdGhpcywgLy8vXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSBtb3VzZVRvcCwgLy8vXG4gICAgICAgIHN0YXJ0TW91c2VMZWZ0ID0gbW91c2VMZWZ0LCAvLy9cbiAgICAgICAgY3VzdG9tRXZlbnRUeXBlID0gU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRTtcblxuICB3aW5kb3cub25LZXlEb3duKGtleURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB3aW5kb3cub25Nb3VzZU1vdmUobW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XG5cbiAgdGhpcy5hZGRDbGFzcyhcImRyYWdnaW5nXCIpO1xuXG4gIHNldERyYWdFbGVtZW50KGRyYWdFbGVtZW50KTtcblxuICB0aGlzLnNldFRvcE9mZnNldCh0b3BPZmZzZXQpO1xuXG4gIHRoaXMuc2V0TGVmdE9mZnNldChsZWZ0T2Zmc2V0KTtcblxuICB0aGlzLnNldFN0YXJ0TW91c2VUb3Aoc3RhcnRNb3VzZVRvcCk7XG5cbiAgdGhpcy5zZXRTdGFydE1vdXNlTGVmdChzdGFydE1vdXNlTGVmdCk7XG5cbiAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnMoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XG5cbiAgdGhpcy5kcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gc3RvcERyYWcoZXZlbnQsIGVsZW1lbnQsIGFib3J0ZWQpIHtcbiAgY29uc3QgZHJvcEVsZW1lbnQgPSBnZXREcm9wRWxlbWVudCgpLFxuICAgICAgICBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEU7XG5cbiAgd2luZG93Lm9mZktleURvd24oa2V5RG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHdpbmRvdy5vZmZNb3VzZU1vdmUobW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XG5cbiAgY29uc3QgZG9uZSA9ICgpID0+IHtcbiAgICB0aGlzLmNhbGxDdXN0b21IYW5kbGVyc0FzeW5jKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIGRyb3BFbGVtZW50LCBhYm9ydGVkLCAoKSA9PiB7XG4gICAgICByZXNldERyYWdFbGVtZW50KCk7XG5cbiAgICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJkcmFnZ2luZ1wiKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChkcm9wRWxlbWVudCAhPT0gbnVsbCkge1xuICAgIGxldCBkcmFnRWxlbWVudCA9IHRoaXM7IC8vL1xuXG4gICAgY29uc3QgZHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgPSBjaGVja0RyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50KGRyYWdFbGVtZW50LCBkcm9wRWxlbWVudCk7XG5cbiAgICBpZiAoZHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQpIHtcbiAgICAgIGRyYWdFbGVtZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICBkcm9wRWxlbWVudC5kcm9wKGV2ZW50LCBlbGVtZW50LCBkcmFnRWxlbWVudCwgYWJvcnRlZCwgZG9uZSk7XG4gIH0gZWxzZSB7XG4gICAgZG9uZSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpIHtcbiAgY29uc3Qgc2Nyb2xsVG9wID0gd2luZG93LmdldFNjcm9sbFRvcCgpLFxuICAgICAgICBzY3JvbGxMZWZ0ID0gd2luZG93LmdldFNjcm9sbExlZnQoKSxcbiAgICAgICAgdG9wT2Zmc2V0ID0gdGhpcy5nZXRUb3BPZmZzZXQoKSxcbiAgICAgICAgbGVmdE9mZnNldCA9IHRoaXMuZ2V0TGVmdE9mZnNldCgpLFxuICAgICAgICBzdGFydE1vdXNlVG9wID0gdGhpcy5nZXRTdGFydE1vdXNlVG9wKCksXG4gICAgICAgIHN0YXJ0TW91c2VMZWZ0ID0gdGhpcy5nZXRTdGFydE1vdXNlTGVmdCgpLFxuICAgICAgICBjdXN0b21FdmVudFR5cGUgPSBEUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICByZWxhdGl2ZU1vdXNlVG9wID0gbW91c2VUb3AgLSBzdGFydE1vdXNlVG9wLFxuICAgICAgICByZWxhdGl2ZU1vdXNlTGVmdCA9IG1vdXNlTGVmdCAtIHN0YXJ0TW91c2VMZWZ0O1xuXG4gIGxldCB0b3AgPSBzdGFydE1vdXNlVG9wICsgcmVsYXRpdmVNb3VzZVRvcCAtIHRvcE9mZnNldCAtIHNjcm9sbFRvcCxcbiAgICAgIGxlZnQgPSBzdGFydE1vdXNlTGVmdCArIHJlbGF0aXZlTW91c2VMZWZ0IC0gbGVmdE9mZnNldCAtIHNjcm9sbExlZnQ7XG5cbiAgdG9wID0gYCR7dG9wfXB4YDsgLy8vXG4gIGxlZnQgPSBgJHtsZWZ0fXB4YDsgLy8vXG5cbiAgY29uc3QgY3NzID0ge1xuICAgIHRvcCxcbiAgICBsZWZ0XG4gIH07XG5cbiAgdGhpcy5jc3MoY3NzKTtcblxuICB0aGlzLmNhbGxDdXN0b21IYW5kbGVycyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCByZWxhdGl2ZU1vdXNlVG9wLCByZWxhdGl2ZU1vdXNlTGVmdCk7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0V2FpdGluZ1RvRHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBsZXQgdGltZW91dCA9IHRoaXMuZ2V0VGltZW91dCgpO1xuXG4gIGlmICh0aW1lb3V0ID09PSBudWxsKSB7XG4gICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldFRpbWVvdXQoKTtcblxuICAgICAgdGhpcy5zdGFydERyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xuICAgIH0sIFNUQVJUX0RSQUdHSU5HX0RFTEFZKTtcblxuICAgIHRoaXMudXBkYXRlVGltZW91dCh0aW1lb3V0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9wV2FpdGluZ1RvRHJhZygpIHtcbiAgY29uc3QgdGltZW91dCA9IHRoaXMuZ2V0VGltZW91dCgpO1xuXG4gIGlmICh0aW1lb3V0ICE9PSBudWxsKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuXG4gICAgdGhpcy5yZXNldFRpbWVvdXQoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUaW1lb3V0KCkge1xuICBjb25zdCB7IHRpbWVvdXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gdGltZW91dDtcbn1cblxuZnVuY3Rpb24gcmVzZXRUaW1lb3V0KCkge1xuICBjb25zdCB0aW1lb3V0ID0gbnVsbDtcblxuICB0aGlzLnVwZGF0ZVRpbWVvdXQodGltZW91dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVRpbWVvdXQodGltZW91dCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICB0aW1lb3V0XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRUb3BPZmZzZXQoKSB7XG4gIGNvbnN0IHsgdG9wT2Zmc2V0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHRvcE9mZnNldDtcbn1cblxuZnVuY3Rpb24gZ2V0TGVmdE9mZnNldCgpIHtcbiAgY29uc3QgeyBsZWZ0T2Zmc2V0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIGxlZnRPZmZzZXQ7XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW91c2VUb3AoKSB7XG4gIGNvbnN0IHsgc3RhcnRNb3VzZVRvcCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiBzdGFydE1vdXNlVG9wO1xufVxuXG5mdW5jdGlvbiBnZXRTdGFydE1vdXNlTGVmdCgpIHtcbiAgY29uc3QgeyBzdGFydE1vdXNlTGVmdCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiBzdGFydE1vdXNlTGVmdDtcbn1cblxuZnVuY3Rpb24gc2V0VG9wT2Zmc2V0KHRvcE9mZnNldCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICB0b3BPZmZzZXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldExlZnRPZmZzZXQobGVmdE9mZnNldCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBsZWZ0T2Zmc2V0XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydE1vdXNlVG9wKHN0YXJ0TW91c2VUb3ApIHtcbiAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgc3RhcnRNb3VzZVRvcFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0U3RhcnRNb3VzZUxlZnQoc3RhcnRNb3VzZUxlZnQpIHtcbiAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgc3RhcnRNb3VzZUxlZnRcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZW5hYmxlRHJhZyxcbiAgZGlzYWJsZURyYWcsXG4gIG9uQ3VzdG9tRHJhZyxcbiAgb2ZmQ3VzdG9tRHJhZyxcbiAgb25DdXN0b21TdG9wRHJhZyxcbiAgb2ZmQ3VzdG9tU3RvcERyYWcsXG4gIG9uQ3VzdG9tU3RhcnREcmFnLFxuICBvZmZDdXN0b21TdGFydERyYWcsXG4gIGlzRHJhZ0VuYWJsZWQsXG4gIGlzRHJhZ2dpbmcsXG4gIHN0YXJ0RHJhZyxcbiAgc3RvcERyYWcsXG4gIGRyYWcsXG4gIHN0YXJ0V2FpdGluZ1RvRHJhZyxcbiAgc3RvcFdhaXRpbmdUb0RyYWcsXG4gIGdldFRpbWVvdXQsXG4gIHJlc2V0VGltZW91dCxcbiAgdXBkYXRlVGltZW91dCxcbiAgZ2V0VG9wT2Zmc2V0LFxuICBnZXRMZWZ0T2Zmc2V0LFxuICBnZXRTdGFydE1vdXNlVG9wLFxuICBnZXRTdGFydE1vdXNlTGVmdCxcbiAgc2V0VG9wT2Zmc2V0LFxuICBzZXRMZWZ0T2Zmc2V0LFxuICBzZXRTdGFydE1vdXNlVG9wLFxuICBzZXRTdGFydE1vdXNlTGVmdFxufTtcblxuZnVuY3Rpb24ga2V5RG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBrZXlDb2RlIH0gPSBldmVudCxcbiAgICAgICAgZXNjYXBlS2V5ID0gKGtleUNvZGUgPT09IEVTQ0FQRV9LRVlfQ09ERSksXG4gICAgICAgIGFib3J0ZWQgPSB0cnVlO1xuXG4gIGlmIChlc2NhcGVLZXkpIHtcbiAgICB0aGlzLnN0b3BEcmFnKGV2ZW50LCBlbGVtZW50LCBhYm9ydGVkKTtcblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1vdXNlVXBIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5pc0RyYWdnaW5nKCksXG4gICAgICAgIGFib3J0ZWQgPSBmYWxzZTtcblxuICBkcmFnZ2luZyA/XG4gICAgdGhpcy5zdG9wRHJhZyhldmVudCwgZWxlbWVudCwgYWJvcnRlZCkgOlxuICAgICAgdGhpcy5zdG9wV2FpdGluZ1RvRHJhZygpO1xuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gIHdpbmRvdy5vbkJsdXIobW91c2VVcEhhbmRsZXIsIHRoaXMpOyAgLy8vXG5cbiAgd2luZG93Lm9mZk1vdXNlVXAobW91c2VVcEhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBtb3VzZURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHsgYnV0dG9uIH0gPSBldmVudDtcblxuICBpZiAoYnV0dG9uID09PSBMRUZUX01PVVNFX0JVVFRPTikge1xuICAgIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5pc0RyYWdnaW5nKCk7XG5cbiAgICBpZiAoIWRyYWdnaW5nKSB7XG4gICAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICAgIG1vdXNlTGVmdCA9IG1vdXNlTGVmdEZyb21FdmVudChldmVudCk7XG5cbiAgICAgIHRoaXMuc3RhcnRXYWl0aW5nVG9EcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICB3aW5kb3cub25CbHVyKG1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXG5cbiAgd2luZG93Lm9uTW91c2VVcChtb3VzZVVwSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlTW92ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKTtcblxuICBpZiAoZHJhZ2dpbmcpIHtcbiAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICBtb3VzZUxlZnQgPSBtb3VzZUxlZnRGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgdGhpcy5kcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgfVxuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuIl0sIm5hbWVzIjpbIkVTQ0FQRV9LRVlfQ09ERSIsImtleUNvZGVzIiwiTEVGVF9NT1VTRV9CVVRUT04iLCJtb3VzZUJ1dHRvbnMiLCJnZXREcmFnRWxlbWVudCIsImRyYWdFbGVtZW50IiwiZ2xvYmFsVGhpcyIsInNldERyYWdFbGVtZW50IiwiT2JqZWN0IiwiYXNzaWduIiwicmVzZXREcmFnRWxlbWVudCIsImVuYWJsZURyYWciLCJ0aW1lb3V0IiwidG9wT2Zmc2V0IiwibGVmdE9mZnNldCIsImRyYWdFbmFibGVkIiwic3RhcnRNb3VzZVRvcCIsInN0YXJ0TW91c2VMZWZ0Iiwib25Nb3VzZURvd24iLCJtb3VzZURvd25IYW5kbGVyIiwidXBkYXRlU3RhdGUiLCJkaXNhYmxlRHJhZyIsIm9mZk1vdXNlRG93biIsIm9uQ3VzdG9tRHJhZyIsImRyYWdDdXN0b21IYW5kbGVyIiwiZWxlbWVudCIsImN1c3RvbUV2ZW50VHlwZSIsIkRSQUdfQ1VTVE9NX0VWRU5UX1RZUEUiLCJjdXN0b21IYW5kbGVyIiwib25DdXN0b21FdmVudCIsIm9mZkN1c3RvbURyYWciLCJvZmZDdXN0b21FdmVudCIsIm9uQ3VzdG9tU3RvcERyYWciLCJzdG9wRHJhZ0N1c3RvbUhhbmRsZXIiLCJTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUiLCJvZmZDdXN0b21TdG9wRHJhZyIsIm9uQ3VzdG9tU3RhcnREcmFnIiwic3RhcnREcmFnQ3VzdG9tSGFuZGxlciIsIlNUQVJUX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUiLCJvZmZDdXN0b21TdGFydERyYWciLCJpc0RyYWdFbmFibGVkIiwiZ2V0U3RhdGUiLCJpc0RyYWdnaW5nIiwiZHJhZ2dpbmciLCJoYXNDbGFzcyIsInN0YXJ0RHJhZyIsImV2ZW50IiwibW91c2VUb3AiLCJtb3VzZUxlZnQiLCJib3VuZHMiLCJnZXRCb3VuZHMiLCJib3VuZHNUb3AiLCJnZXRUb3AiLCJib3VuZHNMZWZ0IiwiZ2V0TGVmdCIsImJvdW5kc1JpZ2h0IiwiZ2V0UmlnaHQiLCJib3VuZHNCb3R0b20iLCJnZXRCb3R0b20iLCJib3VuZHNXaWR0aCIsImJvdW5kc0hlaWdodCIsIk1hdGgiLCJmbG9vciIsIndpbmRvdyIsIm9uS2V5RG93biIsImtleURvd25IYW5kbGVyIiwib25Nb3VzZU1vdmUiLCJtb3VzZU1vdmVIYW5kbGVyIiwiYWRkQ2xhc3MiLCJzZXRUb3BPZmZzZXQiLCJzZXRMZWZ0T2Zmc2V0Iiwic2V0U3RhcnRNb3VzZVRvcCIsInNldFN0YXJ0TW91c2VMZWZ0IiwiY2FsbEN1c3RvbUhhbmRsZXJzIiwiZHJhZyIsInN0b3BEcmFnIiwiYWJvcnRlZCIsImRyb3BFbGVtZW50IiwiZ2V0RHJvcEVsZW1lbnQiLCJvZmZLZXlEb3duIiwib2ZmTW91c2VNb3ZlIiwiZG9uZSIsImNhbGxDdXN0b21IYW5kbGVyc0FzeW5jIiwicmVtb3ZlQ2xhc3MiLCJkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCIsImNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQiLCJkcm9wIiwic2Nyb2xsVG9wIiwiZ2V0U2Nyb2xsVG9wIiwic2Nyb2xsTGVmdCIsImdldFNjcm9sbExlZnQiLCJnZXRUb3BPZmZzZXQiLCJnZXRMZWZ0T2Zmc2V0IiwiZ2V0U3RhcnRNb3VzZVRvcCIsImdldFN0YXJ0TW91c2VMZWZ0IiwicmVsYXRpdmVNb3VzZVRvcCIsInJlbGF0aXZlTW91c2VMZWZ0IiwidG9wIiwibGVmdCIsImNzcyIsInN0YXJ0V2FpdGluZ1RvRHJhZyIsImdldFRpbWVvdXQiLCJzZXRUaW1lb3V0IiwicmVzZXRUaW1lb3V0IiwiU1RBUlRfRFJBR0dJTkdfREVMQVkiLCJ1cGRhdGVUaW1lb3V0Iiwic3RvcFdhaXRpbmdUb0RyYWciLCJjbGVhclRpbWVvdXQiLCJrZXlDb2RlIiwiZXNjYXBlS2V5Iiwic3RvcFByb3BhZ2F0aW9uIiwibW91c2VVcEhhbmRsZXIiLCJvbkJsdXIiLCJvZmZNb3VzZVVwIiwiYnV0dG9uIiwibW91c2VUb3BGcm9tRXZlbnQiLCJtb3VzZUxlZnRGcm9tRXZlbnQiLCJvbk1vdXNlVXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW1UQTs7O2VBQUE7Ozt5QkFqVHlCO29CQUNZO3lCQUVBO3lCQUNjO3FCQUNHO2dDQUM0QztBQUVsRyxJQUFNLEFBQUVBLGtCQUFvQkMsbUJBQVEsQ0FBNUJELGlCQUNGLEFBQUVFLG9CQUFzQkMsa0JBQVksQ0FBbENEO0FBRVIsU0FBU0U7SUFDUCxJQUFNLEFBQUVDLGNBQWdCQyxXQUFoQkQ7SUFFUixPQUFPQTtBQUNUO0FBRUEsU0FBU0UsZUFBZUYsV0FBVztJQUNqQ0csT0FBT0MsTUFBTSxDQUFDSCxZQUFZO1FBQ3hCRCxhQUFBQTtJQUNGO0FBQ0Y7QUFFQSxTQUFTSztJQUNQLElBQU1MLGNBQWM7SUFFcEJFLGVBQWVGO0FBQ2pCO0FBRUFHLE9BQU9DLE1BQU0sQ0FBQ0gsWUFBWTtJQUN4QkYsZ0JBQUFBO0lBQ0FHLGdCQUFBQTtJQUNBRyxrQkFBQUE7QUFDRjtBQUVBQTtBQUVBLFNBQVNDO0lBQ1AsSUFBTUMsVUFBVSxNQUNWQyxZQUFZLE1BQ1pDLGFBQWEsTUFDYkMsY0FBYyxNQUNkQyxnQkFBZ0IsTUFDaEJDLGlCQUFpQjtJQUV2QixJQUFJLENBQUNDLFdBQVcsQ0FBQ0Msa0JBQWtCLElBQUk7SUFFdkMs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
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZHJhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCIgO1xuaW1wb3J0IHsgd2luZG93LCBtb3VzZUJ1dHRvbnMgfSBmcm9tIFwiZWFzeVwiO1xuXG5pbXBvcnQgeyBTVEFSVF9EUkFHR0lOR19ERUxBWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgbW91c2VUb3BGcm9tRXZlbnQsIG1vdXNlTGVmdEZyb21FdmVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXZlbnRcIjtcbmltcG9ydCB7IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsIFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSwgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9jdXN0b21FdmVudFR5cGVzXCI7XG5cbmNvbnN0IHsgRVNDQVBFX0tFWV9DT0RFIH0gPSBrZXlDb2RlcyxcbiAgICAgIHsgTEVGVF9NT1VTRV9CVVRUT04gfSA9IG1vdXNlQnV0dG9ucztcblxuZnVuY3Rpb24gZ2V0RHJhZ0VsZW1lbnQoKSB7XG4gIGNvbnN0IHsgZHJhZ0VsZW1lbnQgfSA9IGdsb2JhbFRoaXM7XG5cbiAgcmV0dXJuIGRyYWdFbGVtZW50O1xufVxuXG5mdW5jdGlvbiBzZXREcmFnRWxlbWVudChkcmFnRWxlbWVudCkge1xuICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICBkcmFnRWxlbWVudFxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVzZXREcmFnRWxlbWVudCgpIHtcbiAgY29uc3QgZHJhZ0VsZW1lbnQgPSBudWxsO1xuXG4gIHNldERyYWdFbGVtZW50KGRyYWdFbGVtZW50KTtcbn1cblxuT2JqZWN0LmFzc2lnbihnbG9iYWxUaGlzLCB7XG4gIGdldERyYWdFbGVtZW50LFxuICBzZXREcmFnRWxlbWVudCxcbiAgcmVzZXREcmFnRWxlbWVudFxufSk7XG5cbnJlc2V0RHJhZ0VsZW1lbnQoKTtcblxuZnVuY3Rpb24gZW5hYmxlRHJhZygpIHtcbiAgY29uc3QgdGltZW91dCA9IG51bGwsXG4gICAgICAgIHRvcE9mZnNldCA9IG51bGwsXG4gICAgICAgIGxlZnRPZmZzZXQgPSBudWxsLFxuICAgICAgICBkcmFnRW5hYmxlZCA9IHRydWUsXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSBudWxsLFxuICAgICAgICBzdGFydE1vdXNlTGVmdCA9IG51bGw7XG5cbiAgdGhpcy5vbk1vdXNlRG93bihtb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICB0aW1lb3V0LFxuICAgIHRvcE9mZnNldCxcbiAgICBsZWZ0T2Zmc2V0LFxuICAgIGRyYWdFbmFibGVkLFxuICAgIHN0YXJ0TW91c2VUb3AsXG4gICAgc3RhcnRNb3VzZUxlZnRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRpc2FibGVEcmFnKCkge1xuICBjb25zdCBkcmFnRW5hYmxlZCA9IGZhbHNlO1xuXG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIGRyYWdFbmFibGVkXG4gIH0pO1xuXG4gIHRoaXMub2ZmTW91c2VEb3duKG1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbURyYWcoZHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IGRyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vbkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZkN1c3RvbURyYWcoZHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IGRyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vZmZDdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbVN0b3BEcmFnKHN0b3BEcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdG9wRHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tU3RvcERyYWcoc3RvcERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0b3BEcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21TdGFydERyYWcoc3RhcnREcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RhcnREcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21TdGFydERyYWcoc3RhcnREcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RhcnREcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gaXNEcmFnRW5hYmxlZCgpIHtcbiAgY29uc3QgeyBkcmFnRW5hYmxlZCA9IGZhbHNlIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIGRyYWdFbmFibGVkO1xufVxuXG5mdW5jdGlvbiBpc0RyYWdnaW5nKCkge1xuICBjb25zdCBkcmFnZ2luZyA9IHRoaXMuaGFzQ2xhc3MoXCJkcmFnZ2luZ1wiKTtcblxuICByZXR1cm4gZHJhZ2dpbmc7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0RHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBjb25zdCBib3VuZHMgPSB0aGlzLmdldEJvdW5kcygpLFxuICAgICAgICBib3VuZHNUb3AgPSBib3VuZHMuZ2V0VG9wKCksXG4gICAgICAgIGJvdW5kc0xlZnQgPSBib3VuZHMuZ2V0TGVmdCgpLFxuICAgICAgICBib3VuZHNSaWdodCA9IGJvdW5kcy5nZXRSaWdodCgpLFxuICAgICAgICBib3VuZHNCb3R0b20gPSBib3VuZHMuZ2V0Qm90dG9tKCksXG4gICAgICAgIGJvdW5kc1dpZHRoID0gYm91bmRzUmlnaHQgLSBib3VuZHNMZWZ0LFxuICAgICAgICBib3VuZHNIZWlnaHQgPSBib3VuZHNCb3R0b20gLSBib3VuZHNUb3AsXG4gICAgICAgIHRvcE9mZnNldCA9IE1hdGguZmxvb3IoYm91bmRzSGVpZ2h0IC8gMiksXG4gICAgICAgIGxlZnRPZmZzZXQgPSBNYXRoLmZsb29yKGJvdW5kc1dpZHRoIC8gMiksXG4gICAgICAgIGRyYWdFbGVtZW50ID0gdGhpcywgLy8vXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSBtb3VzZVRvcCwgLy8vXG4gICAgICAgIHN0YXJ0TW91c2VMZWZ0ID0gbW91c2VMZWZ0LCAvLy9cbiAgICAgICAgY3VzdG9tRXZlbnRUeXBlID0gU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRTtcblxuICB3aW5kb3cub25LZXlEb3duKGtleURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB3aW5kb3cub25Nb3VzZU1vdmUobW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XG5cbiAgdGhpcy5hZGRDbGFzcyhcImRyYWdnaW5nXCIpO1xuXG4gIHNldERyYWdFbGVtZW50KGRyYWdFbGVtZW50KTtcblxuICB0aGlzLnNldFRvcE9mZnNldCh0b3BPZmZzZXQpO1xuXG4gIHRoaXMuc2V0TGVmdE9mZnNldChsZWZ0T2Zmc2V0KTtcblxuICB0aGlzLnNldFN0YXJ0TW91c2VUb3Aoc3RhcnRNb3VzZVRvcCk7XG5cbiAgdGhpcy5zZXRTdGFydE1vdXNlTGVmdChzdGFydE1vdXNlTGVmdCk7XG5cbiAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnMoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XG5cbiAgdGhpcy5kcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gc3RvcERyYWcoZXZlbnQsIGVsZW1lbnQsIGFib3J0ZWQpIHtcbiAgY29uc3QgZHJvcEVsZW1lbnQgPSBnZXREcm9wRWxlbWVudCgpLFxuICAgICAgICBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEU7XG5cbiAgdGhpcy5yZW1vdmVDbGFzcyhcImRyYWdnaW5nXCIpO1xuXG4gIHdpbmRvdy5vZmZLZXlEb3duKGtleURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB3aW5kb3cub2ZmTW91c2VNb3ZlKG1vdXNlTW92ZUhhbmRsZXIsIHRoaXMpO1xuXG4gIGNvbnN0IGRvbmUgPSAoKSA9PiB7XG4gICAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnNBc3luYyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCBkcm9wRWxlbWVudCwgYWJvcnRlZCwgKCkgPT4ge1xuICAgICAgcmVzZXREcmFnRWxlbWVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKGRyb3BFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgbGV0IGRyYWdFbGVtZW50ID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCBkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCA9IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQoZHJhZ0VsZW1lbnQsIGRyb3BFbGVtZW50KTtcblxuICAgIGlmIChkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCkge1xuICAgICAgZHJhZ0VsZW1lbnQgPSBudWxsO1xuICAgIH1cblxuICAgIGRyb3BFbGVtZW50LmRyb3AoZXZlbnQsIGVsZW1lbnQsIGRyYWdFbGVtZW50LCBhYm9ydGVkLCBkb25lKTtcbiAgfSBlbHNlIHtcbiAgICBkb25lKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgIHNjcm9sbExlZnQgPSB3aW5kb3cuZ2V0U2Nyb2xsTGVmdCgpLFxuICAgICAgICB0b3BPZmZzZXQgPSB0aGlzLmdldFRvcE9mZnNldCgpLFxuICAgICAgICBsZWZ0T2Zmc2V0ID0gdGhpcy5nZXRMZWZ0T2Zmc2V0KCksXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSB0aGlzLmdldFN0YXJ0TW91c2VUb3AoKSxcbiAgICAgICAgc3RhcnRNb3VzZUxlZnQgPSB0aGlzLmdldFN0YXJ0TW91c2VMZWZ0KCksXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIHJlbGF0aXZlTW91c2VUb3AgPSBtb3VzZVRvcCAtIHN0YXJ0TW91c2VUb3AsXG4gICAgICAgIHJlbGF0aXZlTW91c2VMZWZ0ID0gbW91c2VMZWZ0IC0gc3RhcnRNb3VzZUxlZnQ7XG5cbiAgbGV0IHRvcCA9IHN0YXJ0TW91c2VUb3AgKyByZWxhdGl2ZU1vdXNlVG9wIC0gdG9wT2Zmc2V0IC0gc2Nyb2xsVG9wLFxuICAgICAgbGVmdCA9IHN0YXJ0TW91c2VMZWZ0ICsgcmVsYXRpdmVNb3VzZUxlZnQgLSBsZWZ0T2Zmc2V0IC0gc2Nyb2xsTGVmdDtcblxuICB0b3AgPSBgJHt0b3B9cHhgOyAvLy9cbiAgbGVmdCA9IGAke2xlZnR9cHhgOyAvLy9cblxuICBjb25zdCBjc3MgPSB7XG4gICAgdG9wLFxuICAgIGxlZnRcbiAgfTtcblxuICB0aGlzLmNzcyhjc3MpO1xuXG4gIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIHJlbGF0aXZlTW91c2VUb3AsIHJlbGF0aXZlTW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gc3RhcnRXYWl0aW5nVG9EcmFnKGV2ZW50LCBlbGVtZW50LCBtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGxldCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgPT09IG51bGwpIHtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuXG4gICAgICB0aGlzLnN0YXJ0RHJhZyhldmVudCwgZWxlbWVudCwgbW91c2VUb3AsIG1vdXNlTGVmdCk7XG4gICAgfSwgU1RBUlRfRFJBR0dJTkdfREVMQVkpO1xuXG4gICAgdGhpcy51cGRhdGVUaW1lb3V0KHRpbWVvdXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0b3BXYWl0aW5nVG9EcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgIT09IG51bGwpIHtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG5cbiAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHsgdGltZW91dCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiB0aW1lb3V0O1xufVxuXG5mdW5jdGlvbiByZXNldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSBudWxsO1xuXG4gIHRoaXMudXBkYXRlVGltZW91dCh0aW1lb3V0KTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVGltZW91dCh0aW1lb3V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRpbWVvdXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFRvcE9mZnNldCgpIHtcbiAgY29uc3QgeyB0b3BPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gdG9wT2Zmc2V0O1xufVxuXG5mdW5jdGlvbiBnZXRMZWZ0T2Zmc2V0KCkge1xuICBjb25zdCB7IGxlZnRPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gbGVmdE9mZnNldDtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb3VzZVRvcCgpIHtcbiAgY29uc3QgeyBzdGFydE1vdXNlVG9wIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VUb3A7XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW91c2VMZWZ0KCkge1xuICBjb25zdCB7IHN0YXJ0TW91c2VMZWZ0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VMZWZ0O1xufVxuXG5mdW5jdGlvbiBzZXRUb3BPZmZzZXQodG9wT2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRvcE9mZnNldFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0TGVmdE9mZnNldChsZWZ0T2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIGxlZnRPZmZzZXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldFN0YXJ0TW91c2VUb3Aoc3RhcnRNb3VzZVRvcCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlVG9wXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydE1vdXNlTGVmdChzdGFydE1vdXNlTGVmdCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlTGVmdFxuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBlbmFibGVEcmFnLFxuICBkaXNhYmxlRHJhZyxcbiAgb25DdXN0b21EcmFnLFxuICBvZmZDdXN0b21EcmFnLFxuICBvbkN1c3RvbVN0b3BEcmFnLFxuICBvZmZDdXN0b21TdG9wRHJhZyxcbiAgb25DdXN0b21TdGFydERyYWcsXG4gIG9mZkN1c3RvbVN0YXJ0RHJhZyxcbiAgaXNEcmFnRW5hYmxlZCxcbiAgaXNEcmFnZ2luZyxcbiAgc3RhcnREcmFnLFxuICBzdG9wRHJhZyxcbiAgZHJhZyxcbiAgc3RhcnRXYWl0aW5nVG9EcmFnLFxuICBzdG9wV2FpdGluZ1RvRHJhZyxcbiAgZ2V0VGltZW91dCxcbiAgcmVzZXRUaW1lb3V0LFxuICB1cGRhdGVUaW1lb3V0LFxuICBnZXRUb3BPZmZzZXQsXG4gIGdldExlZnRPZmZzZXQsXG4gIGdldFN0YXJ0TW91c2VUb3AsXG4gIGdldFN0YXJ0TW91c2VMZWZ0LFxuICBzZXRUb3BPZmZzZXQsXG4gIHNldExlZnRPZmZzZXQsXG4gIHNldFN0YXJ0TW91c2VUb3AsXG4gIHNldFN0YXJ0TW91c2VMZWZ0XG59O1xuXG5mdW5jdGlvbiBrZXlEb3duSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50LFxuICAgICAgICBlc2NhcGVLZXkgPSAoa2V5Q29kZSA9PT0gRVNDQVBFX0tFWV9DT0RFKSxcbiAgICAgICAgYWJvcnRlZCA9IHRydWU7XG5cbiAgaWYgKGVzY2FwZUtleSkge1xuICAgIHRoaXMuc3RvcERyYWcoZXZlbnQsIGVsZW1lbnQsIGFib3J0ZWQpO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91c2VVcEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKSxcbiAgICAgICAgYWJvcnRlZCA9IGZhbHNlO1xuXG4gIGRyYWdnaW5nID9cbiAgICB0aGlzLnN0b3BEcmFnKGV2ZW50LCBlbGVtZW50LCBhYm9ydGVkKSA6XG4gICAgICB0aGlzLnN0b3BXYWl0aW5nVG9EcmFnKCk7XG5cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgd2luZG93Lm9uQmx1cihtb3VzZVVwSGFuZGxlciwgdGhpcyk7ICAvLy9cblxuICB3aW5kb3cub2ZmTW91c2VVcChtb3VzZVVwSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBidXR0b24gfSA9IGV2ZW50O1xuXG4gIGlmIChidXR0b24gPT09IExFRlRfTU9VU0VfQlVUVE9OKSB7XG4gICAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKTtcblxuICAgIGlmICghZHJhZ2dpbmcpIHtcbiAgICAgIGNvbnN0IG1vdXNlVG9wID0gbW91c2VUb3BGcm9tRXZlbnQoZXZlbnQpLFxuICAgICAgICAgICAgbW91c2VMZWZ0ID0gbW91c2VMZWZ0RnJvbUV2ZW50KGV2ZW50KTtcblxuICAgICAgdGhpcy5zdGFydFdhaXRpbmdUb0RyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xuICAgIH1cbiAgfVxuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gIHdpbmRvdy5vbkJsdXIobW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cblxuICB3aW5kb3cub25Nb3VzZVVwKG1vdXNlVXBIYW5kbGVyLCB0aGlzKTtcbn1cblxuZnVuY3Rpb24gbW91c2VNb3ZlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCBkcmFnZ2luZyA9IHRoaXMuaXNEcmFnZ2luZygpO1xuXG4gIGlmIChkcmFnZ2luZykge1xuICAgIGNvbnN0IG1vdXNlVG9wID0gbW91c2VUb3BGcm9tRXZlbnQoZXZlbnQpLFxuICAgICAgICAgIG1vdXNlTGVmdCA9IG1vdXNlTGVmdEZyb21FdmVudChldmVudCk7XG5cbiAgICB0aGlzLmRyYWcoZXZlbnQsIGVsZW1lbnQsIG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xuICB9XG5cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG4iXSwibmFtZXMiOlsiRVNDQVBFX0tFWV9DT0RFIiwia2V5Q29kZXMiLCJMRUZUX01PVVNFX0JVVFRPTiIsIm1vdXNlQnV0dG9ucyIsImdldERyYWdFbGVtZW50IiwiZHJhZ0VsZW1lbnQiLCJnbG9iYWxUaGlzIiwic2V0RHJhZ0VsZW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iLCJyZXNldERyYWdFbGVtZW50IiwiZW5hYmxlRHJhZyIsInRpbWVvdXQiLCJ0b3BPZmZzZXQiLCJsZWZ0T2Zmc2V0IiwiZHJhZ0VuYWJsZWQiLCJzdGFydE1vdXNlVG9wIiwic3RhcnRNb3VzZUxlZnQiLCJvbk1vdXNlRG93biIsIm1vdXNlRG93bkhhbmRsZXIiLCJ1cGRhdGVTdGF0ZSIsImRpc2FibGVEcmFnIiwib2ZmTW91c2VEb3duIiwib25DdXN0b21EcmFnIiwiZHJhZ0N1c3RvbUhhbmRsZXIiLCJlbGVtZW50IiwiY3VzdG9tRXZlbnRUeXBlIiwiRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsImN1c3RvbUhhbmRsZXIiLCJvbkN1c3RvbUV2ZW50Iiwib2ZmQ3VzdG9tRHJhZyIsIm9mZkN1c3RvbUV2ZW50Iiwib25DdXN0b21TdG9wRHJhZyIsInN0b3BEcmFnQ3VzdG9tSGFuZGxlciIsIlNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbVN0b3BEcmFnIiwib25DdXN0b21TdGFydERyYWciLCJzdGFydERyYWdDdXN0b21IYW5kbGVyIiwiU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbVN0YXJ0RHJhZyIsImlzRHJhZ0VuYWJsZWQiLCJnZXRTdGF0ZSIsImlzRHJhZ2dpbmciLCJkcmFnZ2luZyIsImhhc0NsYXNzIiwic3RhcnREcmFnIiwiZXZlbnQiLCJtb3VzZVRvcCIsIm1vdXNlTGVmdCIsImJvdW5kcyIsImdldEJvdW5kcyIsImJvdW5kc1RvcCIsImdldFRvcCIsImJvdW5kc0xlZnQiLCJnZXRMZWZ0IiwiYm91bmRzUmlnaHQiLCJnZXRSaWdodCIsImJvdW5kc0JvdHRvbSIsImdldEJvdHRvbSIsImJvdW5kc1dpZHRoIiwiYm91bmRzSGVpZ2h0IiwiTWF0aCIsImZsb29yIiwid2luZG93Iiwib25LZXlEb3duIiwia2V5RG93bkhhbmRsZXIiLCJvbk1vdXNlTW92ZSIsIm1vdXNlTW92ZUhhbmRsZXIiLCJhZGRDbGFzcyIsInNldFRvcE9mZnNldCIsInNldExlZnRPZmZzZXQiLCJzZXRTdGFydE1vdXNlVG9wIiwic2V0U3RhcnRNb3VzZUxlZnQiLCJjYWxsQ3VzdG9tSGFuZGxlcnMiLCJkcmFnIiwic3RvcERyYWciLCJhYm9ydGVkIiwiZHJvcEVsZW1lbnQiLCJnZXREcm9wRWxlbWVudCIsInJlbW92ZUNsYXNzIiwib2ZmS2V5RG93biIsIm9mZk1vdXNlTW92ZSIsImRvbmUiLCJjYWxsQ3VzdG9tSGFuZGxlcnNBc3luYyIsImRyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50IiwiY2hlY2tEcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCIsImRyb3AiLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCIsImdldFRvcE9mZnNldCIsImdldExlZnRPZmZzZXQiLCJnZXRTdGFydE1vdXNlVG9wIiwiZ2V0U3RhcnRNb3VzZUxlZnQiLCJyZWxhdGl2ZU1vdXNlVG9wIiwicmVsYXRpdmVNb3VzZUxlZnQiLCJ0b3AiLCJsZWZ0IiwiY3NzIiwic3RhcnRXYWl0aW5nVG9EcmFnIiwiZ2V0VGltZW91dCIsInNldFRpbWVvdXQiLCJyZXNldFRpbWVvdXQiLCJTVEFSVF9EUkFHR0lOR19ERUxBWSIsInVwZGF0ZVRpbWVvdXQiLCJzdG9wV2FpdGluZ1RvRHJhZyIsImNsZWFyVGltZW91dCIsImtleUNvZGUiLCJlc2NhcGVLZXkiLCJzdG9wUHJvcGFnYXRpb24iLCJtb3VzZVVwSGFuZGxlciIsIm9uQmx1ciIsIm9mZk1vdXNlVXAiLCJidXR0b24iLCJtb3VzZVRvcEZyb21FdmVudCIsIm1vdXNlTGVmdEZyb21FdmVudCIsIm9uTW91c2VVcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBbVRBOzs7ZUFBQTs7O3lCQWpUeUI7b0JBQ1k7eUJBRUE7eUJBQ2M7cUJBQ0c7Z0NBQzRDO0FBRWxHLElBQU0sQUFBRUEsa0JBQW9CQyxtQkFBUSxDQUE1QkQsaUJBQ0YsQUFBRUUsb0JBQXNCQyxrQkFBWSxDQUFsQ0Q7QUFFUixTQUFTRTtJQUNQLElBQU0sQUFBRUMsY0FBZ0JDLFdBQWhCRDtJQUVSLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRSxlQUFlRixXQUFXO0lBQ2pDRyxPQUFPQyxNQUFNLENBQUNILFlBQVk7UUFDeEJELGFBQUFBO0lBQ0Y7QUFDRjtBQUVBLFNBQVNLO0lBQ1AsSUFBTUwsY0FBYztJQUVwQkUsZUFBZUY7QUFDakI7QUFFQUcsT0FBT0MsTUFBTSxDQUFDSCxZQUFZO0lBQ3hCRixnQkFBQUE7SUFDQUcsZ0JBQUFBO0lBQ0FHLGtCQUFBQTtBQUNGO0FBRUFBO0FBRUEsU0FBU0M7SUFDUCxJQUFNQyxVQUFVLE1BQ1ZDLFlBQVksTUFDWkMsYUFBYSxNQUNiQyxjQUFjLE1BQ2RDLGdCQUFnQixNQUNoQkMsaUJBQWlCO0lBRXZCLElBQUksQ0FBQ0MsV0FBVyxDQUFDQyxrQkFBa0IsSUFBSTtJQUV2QyxJQUFJ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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "easy-drag-and-drop",
3
3
  "author": "James Smith",
4
- "version": "1.3.208",
4
+ "version": "1.3.210",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/easy-drag-and-drop",
7
7
  "description": "Drag and drop functionality for Easy elements.",
@@ -161,6 +161,8 @@ function stopDrag(event, element, aborted) {
161
161
  const dropElement = getDropElement(),
162
162
  customEventType = STOP_DRAG_CUSTOM_EVENT_TYPE;
163
163
 
164
+ this.removeClass("dragging");
165
+
164
166
  window.offKeyDown(keyDownHandler, this);
165
167
 
166
168
  window.offMouseMove(mouseMoveHandler, this);
@@ -168,8 +170,6 @@ function stopDrag(event, element, aborted) {
168
170
  const done = () => {
169
171
  this.callCustomHandlersAsync(customEventType, event, element, dropElement, aborted, () => {
170
172
  resetDragElement();
171
-
172
- this.removeClass("dragging");
173
173
  });
174
174
  }
175
175