easy-drag-and-drop 1.3.81 → 1.3.83

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.
@@ -31,12 +31,12 @@ _export(exports, {
31
31
  return _default;
32
32
  }
33
33
  });
34
- var DRAG_CUSTOM_EVENT_TYPE = "drag";
35
- var DROP_CUSTOM_EVENT_TYPE = "drop";
36
- var DRAG_OUT_CUSTOM_EVENT_TYPE = "dragout";
37
- var DRAG_OVER_CUSTOM_EVENT_TYPE = "dragover";
38
- var STOP_DRAG_CUSTOM_EVENT_TYPE = "stopdrag";
39
- var START_DRAG_CUSTOM_EVENT_TYPE = "startdrag";
34
+ var DRAG_CUSTOM_EVENT_TYPE = "drag-custom";
35
+ var DROP_CUSTOM_EVENT_TYPE = "drop-custom";
36
+ var DRAG_OUT_CUSTOM_EVENT_TYPE = "drag-out-custom";
37
+ var DRAG_OVER_CUSTOM_EVENT_TYPE = "drag-over-custom";
38
+ var STOP_DRAG_CUSTOM_EVENT_TYPE = "stop-drag-custom";
39
+ var START_DRAG_CUSTOM_EVENT_TYPE = "start-drag-custom";
40
40
  var _default = {
41
41
  DRAG_CUSTOM_EVENT_TYPE: DRAG_CUSTOM_EVENT_TYPE,
42
42
  DROP_CUSTOM_EVENT_TYPE: DROP_CUSTOM_EVENT_TYPE,
@@ -46,4 +46,4 @@ var _default = {
46
46
  START_DRAG_CUSTOM_EVENT_TYPE: START_DRAG_CUSTOM_EVENT_TYPE
47
47
  };
48
48
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jdXN0b21FdmVudFR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgRFJBR19DVVNUT01fRVZFTlRfVFlQRSA9IFwiZHJhZ1wiO1xuZXhwb3J0IGNvbnN0IERST1BfQ1VTVE9NX0VWRU5UX1RZUEUgPSBcImRyb3BcIjtcbmV4cG9ydCBjb25zdCBEUkFHX09VVF9DVVNUT01fRVZFTlRfVFlQRSA9IFwiZHJhZ291dFwiO1xuZXhwb3J0IGNvbnN0IERSQUdfT1ZFUl9DVVNUT01fRVZFTlRfVFlQRSA9IFwiZHJhZ292ZXJcIjtcbmV4cG9ydCBjb25zdCBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUgPSBcInN0b3BkcmFnXCI7XG5leHBvcnQgY29uc3QgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSA9IFwic3RhcnRkcmFnXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgRFJPUF9DVVNUT01fRVZFTlRfVFlQRSxcbiAgRFJBR19PVVRfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gIERSQUdfT1ZFUl9DVVNUT01fRVZFTlRfVFlQRSxcbiAgU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFXG59O1xuIl0sIm5hbWVzIjpbIkRSQUdfQ1VTVE9NX0VWRU5UX1RZUEUiLCJEUkFHX09VVF9DVVNUT01fRVZFTlRfVFlQRSIsIkRSQUdfT1ZFUl9DVVNUT01fRVZFTlRfVFlQRSIsIkRST1BfQ1VTVE9NX0VWRU5UX1RZUEUiLCJTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFIiwiU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFYUEsc0JBQXNCO2VBQXRCQTs7SUFFQUMsMEJBQTBCO2VBQTFCQTs7SUFDQUMsMkJBQTJCO2VBQTNCQTs7SUFGQUMsc0JBQXNCO2VBQXRCQTs7SUFJQUMsNEJBQTRCO2VBQTVCQTs7SUFEQUMsMkJBQTJCO2VBQTNCQTs7SUFHYixPQU9FO2VBUEY7OztBQVBPLElBQU1MLHlCQUF5QjtBQUMvQixJQUFNRyx5QkFBeUI7QUFDL0IsSUFBTUYsNkJBQTZCO0FBQ25DLElBQU1DLDhCQUE4QjtBQUNwQyxJQUFNRyw4QkFBOEI7QUFDcEMsSUFBTUQsK0JBQStCO0lBRTVDLFdBQWU7SUFDYkosd0JBQUFBO0lBQ0FHLHdCQUFBQTtJQUNBRiw0QkFBQUE7SUFDQUMsNkJBQUFBO0lBQ0FHLDZCQUFBQTtJQUNBRCw4QkFBQUE7QUFDRiJ9
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jdXN0b21FdmVudFR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgRFJBR19DVVNUT01fRVZFTlRfVFlQRSA9IFwiZHJhZy1jdXN0b21cIjtcbmV4cG9ydCBjb25zdCBEUk9QX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJkcm9wLWN1c3RvbVwiO1xuZXhwb3J0IGNvbnN0IERSQUdfT1VUX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJkcmFnLW91dC1jdXN0b21cIjtcbmV4cG9ydCBjb25zdCBEUkFHX09WRVJfQ1VTVE9NX0VWRU5UX1RZUEUgPSBcImRyYWctb3Zlci1jdXN0b21cIjtcbmV4cG9ydCBjb25zdCBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUgPSBcInN0b3AtZHJhZy1jdXN0b21cIjtcbmV4cG9ydCBjb25zdCBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJzdGFydC1kcmFnLWN1c3RvbVwiO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gIERST1BfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gIERSQUdfT1VUX0NVU1RPTV9FVkVOVF9UWVBFLFxuICBEUkFHX09WRVJfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gIFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRVxufTtcbiJdLCJuYW1lcyI6WyJEUkFHX0NVU1RPTV9FVkVOVF9UWVBFIiwiRFJBR19PVVRfQ1VTVE9NX0VWRU5UX1RZUEUiLCJEUkFHX09WRVJfQ1VTVE9NX0VWRU5UX1RZUEUiLCJEUk9QX0NVU1RPTV9FVkVOVF9UWVBFIiwiU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIlNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBRWFBLHNCQUFzQjtlQUF0QkE7O0lBRUFDLDBCQUEwQjtlQUExQkE7O0lBQ0FDLDJCQUEyQjtlQUEzQkE7O0lBRkFDLHNCQUFzQjtlQUF0QkE7O0lBSUFDLDRCQUE0QjtlQUE1QkE7O0lBREFDLDJCQUEyQjtlQUEzQkE7O0lBR2IsT0FPRTtlQVBGOzs7QUFQTyxJQUFNTCx5QkFBeUI7QUFDL0IsSUFBTUcseUJBQXlCO0FBQy9CLElBQU1GLDZCQUE2QjtBQUNuQyxJQUFNQyw4QkFBOEI7QUFDcEMsSUFBTUcsOEJBQThCO0FBQ3BDLElBQU1ELCtCQUErQjtJQUU1QyxXQUFlO0lBQ2JKLHdCQUFBQTtJQUNBRyx3QkFBQUE7SUFDQUYsNEJBQUFBO0lBQ0FDLDZCQUFBQTtJQUNBRyw2QkFBQUE7SUFDQUQsOEJBQUFBO0FBQ0YifQ==
@@ -78,7 +78,7 @@ function stopDrag(aborted) {
78
78
  }
79
79
  }
80
80
  function drag(mouseTop, mouseLeft) {
81
- var scrollTop = _easy.window.getScrollTop(), scrollLeft = _easy.window.getScrollLeft(), topOffset = this.getTopOffset(), leftOffset = this.getLeftOffset(), startMouseTop = this.getStartMouseTop(), startMouseLeft = this.getStartMouseLeft(), customEventType = _customEventTypes.DRAG_CUSTOM_CUSTOM_EVENT_TYPE, relativeMouseTop = mouseTop - startMouseTop, relativeMouseLeft = mouseLeft - startMouseLeft;
81
+ var scrollTop = _easy.window.getScrollTop(), scrollLeft = _easy.window.getScrollLeft(), topOffset = this.getTopOffset(), leftOffset = this.getLeftOffset(), startMouseTop = this.getStartMouseTop(), startMouseLeft = this.getStartMouseLeft(), customEventType = _customEventTypes.DRAG_CUSTOM_EVENT_TYPE, relativeMouseTop = mouseTop - startMouseTop, relativeMouseLeft = mouseLeft - startMouseLeft;
82
82
  var top = startMouseTop + relativeMouseTop - topOffset - scrollTop, left = startMouseLeft + relativeMouseLeft - leftOffset - scrollLeft;
83
83
  top = "".concat(top, "px"); ///
84
84
  left = "".concat(left, "px"); ///
@@ -90,11 +90,11 @@ function drag(mouseTop, mouseLeft) {
90
90
  this.callCustomHandlers(customEventType, relativeMouseTop, relativeMouseLeft);
91
91
  }
92
92
  function onCustomDrag(dragCustomHandler, element) {
93
- var customEventType = _customEventTypes.DRAG_CUSTOM_CUSTOM_EVENT_TYPE, customHandler = dragCustomHandler; ///
93
+ var customEventType = _customEventTypes.DRAG_CUSTOM_EVENT_TYPE, customHandler = dragCustomHandler; ///
94
94
  this.onCustomEvent(customEventType, customHandler, element);
95
95
  }
96
96
  function offCustomDrag(dragCustomHandler, element) {
97
- var customEventType = _customEventTypes.DRAG_CUSTOM_CUSTOM_EVENT_TYPE, customHandler = dragCustomHandler; ///
97
+ var customEventType = _customEventTypes.DRAG_CUSTOM_EVENT_TYPE, customHandler = dragCustomHandler; ///
98
98
  this.offCustomEvent(customEventType, customHandler, element);
99
99
  }
100
100
  function onCustomStopDrag(stopDragCustomHandler, element) {
@@ -243,4 +243,4 @@ function mouseMoveHandler(event, element) {
243
243
  event.stopPropagation();
244
244
  }
245
245
 
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZHJhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCIgO1xuaW1wb3J0IHsgd2luZG93LCBldmVudFR5cGVzLCBtb3VzZUJ1dHRvbnMgfSBmcm9tIFwiZWFzeVwiO1xuXG5pbXBvcnQgeyBTVEFSVF9EUkFHR0lOR19ERUxBWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgbW91c2VUb3BGcm9tRXZlbnQsIG1vdXNlTGVmdEZyb21FdmVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXZlbnRcIjtcbmltcG9ydCB7IERSQUdfQ1VTVE9NX0NVU1RPTV9FVkVOVF9UWVBFLCBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsIFNUQVJUX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUgfSBmcm9tIFwiLi4vY3VzdG9tRXZlbnRUeXBlc1wiO1xuXG5jb25zdCB7IEVTQ0FQRV9LRVlfQ09ERSB9ID0ga2V5Q29kZXMsXG4gICAgICB7IEJMVVJfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcyxcbiAgICAgIHsgTEVGVF9NT1VTRV9CVVRUT04gfSA9IG1vdXNlQnV0dG9ucztcblxuY29uc3QgZHJhZ0VsZW1lbnQgPSBudWxsO1xuXG5PYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgZHJhZ0VsZW1lbnRcbn0pO1xuXG5mdW5jdGlvbiBlbmFibGVEcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gbnVsbCxcbiAgICAgICAgdG9wT2Zmc2V0ID0gbnVsbCxcbiAgICAgICAgbGVmdE9mZnNldCA9IG51bGwsXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSBudWxsLFxuICAgICAgICBzdGFydE1vdXNlTGVmdCA9IG51bGw7XG5cbiAgdGhpcy5vbk1vdXNlRG93bihtb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLnNldFN0YXRlKHtcbiAgICB0aW1lb3V0LFxuICAgIHRvcE9mZnNldCxcbiAgICBsZWZ0T2Zmc2V0LFxuICAgIHN0YXJ0TW91c2VUb3AsXG4gICAgc3RhcnRNb3VzZUxlZnRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRpc2FibGVEcmFnKCkge1xuICB0aGlzLm9mZk1vdXNlRG93bihtb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcbn1cblxuZnVuY3Rpb24gaXNEcmFnZ2luZygpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmhhc0NsYXNzKFwiZHJhZ2dpbmdcIik7XG5cbiAgcmV0dXJuIGRyYWdnaW5nO1xufVxuXG5mdW5jdGlvbiBzdGFydERyYWcobW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBjb25zdCBib3VuZHMgPSB0aGlzLmdldEJvdW5kcygpLFxuICAgICAgICBib3VuZHNUb3AgPSBib3VuZHMuZ2V0VG9wKCksXG4gICAgICAgIGJvdW5kc0xlZnQgPSBib3VuZHMuZ2V0TGVmdCgpLFxuICAgICAgICBib3VuZHNSaWdodCA9IGJvdW5kcy5nZXRSaWdodCgpLFxuICAgICAgICBib3VuZHNCb3R0b20gPSBib3VuZHMuZ2V0Qm90dG9tKCksXG4gICAgICAgIGJvdW5kc1dpZHRoID0gYm91bmRzUmlnaHQgLSBib3VuZHNMZWZ0LFxuICAgICAgICBib3VuZHNIZWlnaHQgPSBib3VuZHNCb3R0b20gLSBib3VuZHNUb3AsXG4gICAgICAgIHRvcE9mZnNldCA9IE1hdGguZmxvb3IoYm91bmRzSGVpZ2h0IC8gMiksXG4gICAgICAgIGxlZnRPZmZzZXQgPSBNYXRoLmZsb29yKGJvdW5kc1dpZHRoIC8gMiksXG4gICAgICAgIGRyYWdFbGVtZW50ID0gdGhpcywgLy8vXG4gICAgICAgIHN0YXJ0TW91c2VUb3AgPSBtb3VzZVRvcCwgLy8vXG4gICAgICAgIHN0YXJ0TW91c2VMZWZ0ID0gbW91c2VMZWZ0LCAvLy9cbiAgICAgICAgY3VzdG9tRXZlbnRUeXBlID0gU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRTtcblxuICB3aW5kb3cub25LZXlEb3duKGtleURvd25IYW5kbGVyLCB0aGlzKTtcblxuICB3aW5kb3cub25Nb3VzZU1vdmUobW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XG5cbiAgdGhpcy5hZGRDbGFzcyhcImRyYWdnaW5nXCIpO1xuXG4gIE9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICAgIGRyYWdFbGVtZW50XG4gIH0pO1xuXG4gIHRoaXMuc2V0VG9wT2Zmc2V0KHRvcE9mZnNldCk7XG5cbiAgdGhpcy5zZXRMZWZ0T2Zmc2V0KGxlZnRPZmZzZXQpO1xuXG4gIHRoaXMuc2V0U3RhcnRNb3VzZVRvcChzdGFydE1vdXNlVG9wKTtcblxuICB0aGlzLnNldFN0YXJ0TW91c2VMZWZ0KHN0YXJ0TW91c2VMZWZ0KTtcblxuICB0aGlzLmNhbGxDdXN0b21IYW5kbGVycyhjdXN0b21FdmVudFR5cGUpO1xuXG4gIHRoaXMuZHJhZyhtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gc3RvcERyYWcoYWJvcnRlZCkge1xuICBjb25zdCB7IGRyb3BFbGVtZW50IH0gPSBnbG9iYWxUaGlzLFxuICAgICAgICBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEU7XG5cbiAgd2luZG93Lm9mZktleURvd24oa2V5RG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHdpbmRvdy5vZmZNb3VzZU1vdmUobW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XG5cbiAgY29uc3QgZG9uZSA9ICgpID0+IHtcbiAgICB0aGlzLmNhbGxDdXN0b21IYW5kbGVyc0FzeW5jKGN1c3RvbUV2ZW50VHlwZSwgZHJvcEVsZW1lbnQsIGFib3J0ZWQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRyYWdFbGVtZW50ID0gbnVsbDtcblxuICAgICAgT2JqZWN0LmFzc2lnbihnbG9iYWxUaGlzLCB7XG4gICAgICAgIGRyYWdFbGVtZW50XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZW1vdmVDbGFzcyhcImRyYWdnaW5nXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKGRyb3BFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgbGV0IGRyYWdFbGVtZW50ID0gdGhpczsgLy8vXG5cbiAgICBjb25zdCBkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCA9IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQoZHJhZ0VsZW1lbnQsIGRyb3BFbGVtZW50KTtcblxuICAgIGlmIChkcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCkge1xuICAgICAgZHJhZ0VsZW1lbnQgPSBudWxsO1xuICAgIH1cblxuICAgIGRyb3BFbGVtZW50LmRyb3AoZHJhZ0VsZW1lbnQsIGFib3J0ZWQsIGRvbmUpO1xuICB9IGVsc2Uge1xuICAgIGRvbmUoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkcmFnKG1vdXNlVG9wLCBtb3VzZUxlZnQpIHtcbiAgY29uc3Qgc2Nyb2xsVG9wID0gd2luZG93LmdldFNjcm9sbFRvcCgpLFxuICAgIHNjcm9sbExlZnQgPSB3aW5kb3cuZ2V0U2Nyb2xsTGVmdCgpLFxuICAgIHRvcE9mZnNldCA9IHRoaXMuZ2V0VG9wT2Zmc2V0KCksXG4gICAgbGVmdE9mZnNldCA9IHRoaXMuZ2V0TGVmdE9mZnNldCgpLFxuICAgIHN0YXJ0TW91c2VUb3AgPSB0aGlzLmdldFN0YXJ0TW91c2VUb3AoKSxcbiAgICBzdGFydE1vdXNlTGVmdCA9IHRoaXMuZ2V0U3RhcnRNb3VzZUxlZnQoKSxcbiAgICBjdXN0b21FdmVudFR5cGUgPSBEUkFHX0NVU1RPTV9DVVNUT01fRVZFTlRfVFlQRSxcbiAgICByZWxhdGl2ZU1vdXNlVG9wID0gbW91c2VUb3AgLSBzdGFydE1vdXNlVG9wLFxuICAgIHJlbGF0aXZlTW91c2VMZWZ0ID0gbW91c2VMZWZ0IC0gc3RhcnRNb3VzZUxlZnQ7XG5cbiAgbGV0IHRvcCA9IHN0YXJ0TW91c2VUb3AgKyByZWxhdGl2ZU1vdXNlVG9wIC0gdG9wT2Zmc2V0IC0gc2Nyb2xsVG9wLFxuICAgIGxlZnQgPSBzdGFydE1vdXNlTGVmdCArIHJlbGF0aXZlTW91c2VMZWZ0IC0gbGVmdE9mZnNldCAtIHNjcm9sbExlZnQ7XG5cbiAgdG9wID0gYCR7dG9wfXB4YDsgLy8vXG4gIGxlZnQgPSBgJHtsZWZ0fXB4YDsgLy8vXG5cbiAgY29uc3QgY3NzID0ge1xuICAgIHRvcCxcbiAgICBsZWZ0XG4gIH07XG5cbiAgdGhpcy5jc3MoY3NzKTtcblxuICB0aGlzLmNhbGxDdXN0b21IYW5kbGVycyhjdXN0b21FdmVudFR5cGUsIHJlbGF0aXZlTW91c2VUb3AsIHJlbGF0aXZlTW91c2VMZWZ0KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21EcmFnKGRyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gZHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tRHJhZyhkcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBEUkFHX0NVU1RPTV9DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IGRyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vZmZDdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbVN0b3BEcmFnKHN0b3BEcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVE9QX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdG9wRHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tU3RvcERyYWcoc3RvcERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0b3BEcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21TdGFydERyYWcoc3RhcnREcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RhcnREcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21TdGFydERyYWcoc3RhcnREcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RhcnREcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gc3RhcnRXYWl0aW5nVG9EcmFnKG1vdXNlVG9wLCBtb3VzZUxlZnQpIHtcbiAgbGV0IHRpbWVvdXQgPSB0aGlzLmdldFRpbWVvdXQoKTtcblxuICBpZiAodGltZW91dCA9PT0gbnVsbCkge1xuICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRUaW1lb3V0KCk7XG5cbiAgICAgIHRoaXMuc3RhcnREcmFnKG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xuICAgIH0sIFNUQVJUX0RSQUdHSU5HX0RFTEFZKTtcblxuICAgIHRoaXMudXBkYXRlVGltZW91dCh0aW1lb3V0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9wV2FpdGluZ1RvRHJhZygpIHtcbiAgY29uc3QgdGltZW91dCA9IHRoaXMuZ2V0VGltZW91dCgpO1xuXG4gIGlmICh0aW1lb3V0ICE9PSBudWxsKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuXG4gICAgdGhpcy5yZXNldFRpbWVvdXQoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUaW1lb3V0KCkge1xuICBjb25zdCB7IHRpbWVvdXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gdGltZW91dDtcbn1cblxuZnVuY3Rpb24gcmVzZXRUaW1lb3V0KCkge1xuICBjb25zdCB0aW1lb3V0ID0gbnVsbDtcblxuICB0aGlzLnVwZGF0ZVRpbWVvdXQodGltZW91dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVRpbWVvdXQodGltZW91dCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICB0aW1lb3V0XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRUb3BPZmZzZXQoKSB7XG4gIGNvbnN0IHsgdG9wT2Zmc2V0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHRvcE9mZnNldDtcbn1cblxuZnVuY3Rpb24gZ2V0TGVmdE9mZnNldCgpIHtcbiAgY29uc3QgeyBsZWZ0T2Zmc2V0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIGxlZnRPZmZzZXQ7XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW91c2VUb3AoKSB7XG4gIGNvbnN0IHsgc3RhcnRNb3VzZVRvcCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiBzdGFydE1vdXNlVG9wO1xufVxuXG5mdW5jdGlvbiBnZXRTdGFydE1vdXNlTGVmdCgpIHtcbiAgY29uc3QgeyBzdGFydE1vdXNlTGVmdCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiBzdGFydE1vdXNlTGVmdDtcbn1cblxuZnVuY3Rpb24gc2V0VG9wT2Zmc2V0KHRvcE9mZnNldCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICB0b3BPZmZzZXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldExlZnRPZmZzZXQobGVmdE9mZnNldCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBsZWZ0T2Zmc2V0XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydE1vdXNlVG9wKHN0YXJ0TW91c2VUb3ApIHtcbiAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgc3RhcnRNb3VzZVRvcFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0U3RhcnRNb3VzZUxlZnQoc3RhcnRNb3VzZUxlZnQpIHtcbiAgdGhpcy51cGRhdGVTdGF0ZSh7XG4gICAgc3RhcnRNb3VzZUxlZnRcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZW5hYmxlRHJhZyxcbiAgZGlzYWJsZURyYWcsXG4gIGlzRHJhZ2dpbmcsXG4gIHN0YXJ0RHJhZyxcbiAgc3RvcERyYWcsXG4gIGRyYWcsXG4gIG9uQ3VzdG9tRHJhZyxcbiAgb2ZmQ3VzdG9tRHJhZyxcbiAgb25DdXN0b21TdG9wRHJhZyxcbiAgb2ZmQ3VzdG9tU3RvcERyYWcsXG4gIG9uQ3VzdG9tU3RhcnREcmFnLFxuICBvZmZDdXN0b21TdGFydERyYWcsXG4gIHN0YXJ0V2FpdGluZ1RvRHJhZyxcbiAgc3RvcFdhaXRpbmdUb0RyYWcsXG4gIGdldFRpbWVvdXQsXG4gIHJlc2V0VGltZW91dCxcbiAgdXBkYXRlVGltZW91dCxcbiAgZ2V0VG9wT2Zmc2V0LFxuICBnZXRMZWZ0T2Zmc2V0LFxuICBnZXRTdGFydE1vdXNlVG9wLFxuICBnZXRTdGFydE1vdXNlTGVmdCxcbiAgc2V0VG9wT2Zmc2V0LFxuICBzZXRMZWZ0T2Zmc2V0LFxuICBzZXRTdGFydE1vdXNlVG9wLFxuICBzZXRTdGFydE1vdXNlTGVmdFxufTtcblxuZnVuY3Rpb24ga2V5RG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBrZXlDb2RlIH0gPSBldmVudCxcbiAgICAgICAgZXNjYXBlS2V5ID0gKGtleUNvZGUgPT09IEVTQ0FQRV9LRVlfQ09ERSksXG4gICAgICAgIGFib3J0ZWQgPSB0cnVlO1xuXG4gIGlmIChlc2NhcGVLZXkpIHtcbiAgICB0aGlzLnN0b3BEcmFnKGFib3J0ZWQpO1xuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91c2VVcEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKSxcbiAgICAgICAgYWJvcnRlZCA9IGZhbHNlO1xuXG4gIGRyYWdnaW5nID9cbiAgICB0aGlzLnN0b3BEcmFnKGFib3J0ZWQpIDpcbiAgICAgIHRoaXMuc3RvcFdhaXRpbmdUb0RyYWcoKTtcblxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICB3aW5kb3cub2ZmRXZlbnQoQkxVUl9FVkVOVF9UWVBFLCBtb3VzZVVwSGFuZGxlciwgdGhpcyk7ICAvLy9cblxuICB3aW5kb3cub2ZmTW91c2VVcChtb3VzZVVwSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBidXR0b24gfSA9IGV2ZW50O1xuXG4gIGlmIChidXR0b24gPT09IExFRlRfTU9VU0VfQlVUVE9OKSB7XG4gICAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKTtcblxuICAgIGlmICghZHJhZ2dpbmcpIHtcbiAgICAgIGNvbnN0IG1vdXNlVG9wID0gbW91c2VUb3BGcm9tRXZlbnQoZXZlbnQpLFxuICAgICAgICAgICAgbW91c2VMZWZ0ID0gbW91c2VMZWZ0RnJvbUV2ZW50KGV2ZW50KTtcblxuICAgICAgdGhpcy5zdGFydFdhaXRpbmdUb0RyYWcobW91c2VUb3AsIG1vdXNlTGVmdCk7XG4gICAgfVxuICB9XG5cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgd2luZG93Lm9uRXZlbnQoQkxVUl9FVkVOVF9UWVBFLCBtb3VzZVVwSGFuZGxlciwgdGhpcyk7IC8vL1xuXG4gIHdpbmRvdy5vbk1vdXNlVXAobW91c2VVcEhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBtb3VzZU1vdmVIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IGRyYWdnaW5nID0gdGhpcy5pc0RyYWdnaW5nKCk7XG5cbiAgaWYgKGRyYWdnaW5nKSB7XG4gICAgY29uc3QgbW91c2VUb3AgPSBtb3VzZVRvcEZyb21FdmVudChldmVudCksXG4gICAgICAgICAgbW91c2VMZWZ0ID0gbW91c2VMZWZ0RnJvbUV2ZW50KGV2ZW50KTtcblxuICAgIHRoaXMuZHJhZyhtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgfVxuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuIl0sIm5hbWVzIjpbIkVTQ0FQRV9LRVlfQ09ERSIsImtleUNvZGVzIiwiQkxVUl9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIkxFRlRfTU9VU0VfQlVUVE9OIiwibW91c2VCdXR0b25zIiwiZHJhZ0VsZW1lbnQiLCJPYmplY3QiLCJhc3NpZ24iLCJnbG9iYWxUaGlzIiwiZW5hYmxlRHJhZyIsInRpbWVvdXQiLCJ0b3BPZmZzZXQiLCJsZWZ0T2Zmc2V0Iiwic3RhcnRNb3VzZVRvcCIsInN0YXJ0TW91c2VMZWZ0Iiwib25Nb3VzZURvd24iLCJtb3VzZURvd25IYW5kbGVyIiwic2V0U3RhdGUiLCJkaXNhYmxlRHJhZyIsIm9mZk1vdXNlRG93biIsImlzRHJhZ2dpbmciLCJkcmFnZ2luZyIsImhhc0NsYXNzIiwic3RhcnREcmFnIiwibW91c2VUb3AiLCJtb3VzZUxlZnQiLCJib3VuZHMiLCJnZXRCb3VuZHMiLCJib3VuZHNUb3AiLCJnZXRUb3AiLCJib3VuZHNMZWZ0IiwiZ2V0TGVmdCIsImJvdW5kc1JpZ2h0IiwiZ2V0UmlnaHQiLCJib3VuZHNCb3R0b20iLCJnZXRCb3R0b20iLCJib3VuZHNXaWR0aCIsImJvdW5kc0hlaWdodCIsIk1hdGgiLCJmbG9vciIsImN1c3RvbUV2ZW50VHlwZSIsIlNUQVJUX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUiLCJ3aW5kb3ciLCJvbktleURvd24iLCJrZXlEb3duSGFuZGxlciIsIm9uTW91c2VNb3ZlIiwibW91c2VNb3ZlSGFuZGxlciIsImFkZENsYXNzIiwic2V0VG9wT2Zmc2V0Iiwic2V0TGVmdE9mZnNldCIsInNldFN0YXJ0TW91c2VUb3AiLCJzZXRTdGFydE1vdXNlTGVmdCIsImNhbGxDdXN0b21IYW5kbGVycyIsImRyYWciLCJzdG9wRHJhZyIsImFib3J0ZWQiLCJkcm9wRWxlbWVudCIsIlNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIm9mZktleURvd24iLCJvZmZNb3VzZU1vdmUiLCJkb25lIiwiY2FsbEN1c3RvbUhhbmRsZXJzQXN5bmMiLCJyZW1vdmVDbGFzcyIsImRyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50IiwiY2hlY2tEcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudCIsImRyb3AiLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCIsImdldFRvcE9mZnNldCIsImdldExlZnRPZmZzZXQiLCJnZXRTdGFydE1vdXNlVG9wIiwiZ2V0U3RhcnRNb3VzZUxlZnQiLCJEUkFHX0NVU1RPTV9DVVNUT01fRVZFTlRfVFlQRSIsInJlbGF0aXZlTW91c2VUb3AiLCJyZWxhdGl2ZU1vdXNlTGVmdCIsInRvcCIsImxlZnQiLCJjc3MiLCJvbkN1c3RvbURyYWciLCJkcmFnQ3VzdG9tSGFuZGxlciIsImVsZW1lbnQiLCJjdXN0b21IYW5kbGVyIiwib25DdXN0b21FdmVudCIsIm9mZkN1c3RvbURyYWciLCJvZmZDdXN0b21FdmVudCIsIm9uQ3VzdG9tU3RvcERyYWciLCJzdG9wRHJhZ0N1c3RvbUhhbmRsZXIiLCJvZmZDdXN0b21TdG9wRHJhZyIsIm9uQ3VzdG9tU3RhcnREcmFnIiwic3RhcnREcmFnQ3VzdG9tSGFuZGxlciIsIm9mZkN1c3RvbVN0YXJ0RHJhZyIsInN0YXJ0V2FpdGluZ1RvRHJhZyIsImdldFRpbWVvdXQiLCJzZXRUaW1lb3V0IiwicmVzZXRUaW1lb3V0IiwiU1RBUlRfRFJBR0dJTkdfREVMQVkiLCJ1cGRhdGVUaW1lb3V0Iiwic3RvcFdhaXRpbmdUb0RyYWciLCJjbGVhclRpbWVvdXQiLCJnZXRTdGF0ZSIsInVwZGF0ZVN0YXRlIiwiZXZlbnQiLCJrZXlDb2RlIiwiZXNjYXBlS2V5Iiwic3RvcFByb3BhZ2F0aW9uIiwibW91c2VVcEhhbmRsZXIiLCJvZmZFdmVudCIsIm9mZk1vdXNlVXAiLCJidXR0b24iLCJtb3VzZVRvcEZyb21FdmVudCIsIm1vdXNlTGVmdEZyb21FdmVudCIsIm9uRXZlbnQiLCJvbk1vdXNlVXAiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXdSQTs7O2VBQUE7Ozt5QkF0UnlCO29CQUN3Qjt5QkFFWjt5QkFDYztxQkFDRztnQ0FDbUQ7QUFFekcsSUFBTSxBQUFFQSxrQkFBb0JDLG1CQUFRLENBQTVCRCxpQkFDRixBQUFFRSxrQkFBb0JDLGdCQUFVLENBQTlCRCxpQkFDRixBQUFFRSxvQkFBc0JDLGtCQUFZLENBQWxDRDtBQUVSLElBQU1FLGNBQWM7QUFFcEJDLE9BQU9DLE1BQU0sQ0FBQ0MsWUFBWTtJQUN4QkgsYUFBQUE7QUFDRjtBQUVBLFNBQVNJO0lBQ1AsSUFBTUMsVUFBVSxNQUNWQyxZQUFZLE1BQ1pDLGFBQWEsTUFDYkMsZ0JBQWdCLE1BQ2hC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
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvZHJhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsga2V5Q29kZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCIgO1xuaW1wb3J0IHsgd2luZG93LCBldmVudFR5cGVzLCBtb3VzZUJ1dHRvbnMgfSBmcm9tIFwiZWFzeVwiO1xuXG5pbXBvcnQgeyBTVEFSVF9EUkFHR0lOR19ERUxBWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNoZWNrRHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3JlZmVyZW5jZVwiO1xuaW1wb3J0IHsgbW91c2VUb3BGcm9tRXZlbnQsIG1vdXNlTGVmdEZyb21FdmVudCB9IGZyb20gXCIuLi91dGlsaXRpZXMvZXZlbnRcIjtcbmltcG9ydCB7IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsIFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSwgU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9jdXN0b21FdmVudFR5cGVzXCI7XG5cbmNvbnN0IHsgRVNDQVBFX0tFWV9DT0RFIH0gPSBrZXlDb2RlcyxcbiAgICAgIHsgQkxVUl9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzLFxuICAgICAgeyBMRUZUX01PVVNFX0JVVFRPTiB9ID0gbW91c2VCdXR0b25zO1xuXG5jb25zdCBkcmFnRWxlbWVudCA9IG51bGw7XG5cbk9iamVjdC5hc3NpZ24oZ2xvYmFsVGhpcywge1xuICBkcmFnRWxlbWVudFxufSk7XG5cbmZ1bmN0aW9uIGVuYWJsZURyYWcoKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSBudWxsLFxuICAgICAgICB0b3BPZmZzZXQgPSBudWxsLFxuICAgICAgICBsZWZ0T2Zmc2V0ID0gbnVsbCxcbiAgICAgICAgc3RhcnRNb3VzZVRvcCA9IG51bGwsXG4gICAgICAgIHN0YXJ0TW91c2VMZWZ0ID0gbnVsbDtcblxuICB0aGlzLm9uTW91c2VEb3duKG1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHRoaXMuc2V0U3RhdGUoe1xuICAgIHRpbWVvdXQsXG4gICAgdG9wT2Zmc2V0LFxuICAgIGxlZnRPZmZzZXQsXG4gICAgc3RhcnRNb3VzZVRvcCxcbiAgICBzdGFydE1vdXNlTGVmdFxuICB9KTtcbn1cblxuZnVuY3Rpb24gZGlzYWJsZURyYWcoKSB7XG4gIHRoaXMub2ZmTW91c2VEb3duKG1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xufVxuXG5mdW5jdGlvbiBpc0RyYWdnaW5nKCkge1xuICBjb25zdCBkcmFnZ2luZyA9IHRoaXMuaGFzQ2xhc3MoXCJkcmFnZ2luZ1wiKTtcblxuICByZXR1cm4gZHJhZ2dpbmc7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0RHJhZyhtb3VzZVRvcCwgbW91c2VMZWZ0KSB7XG4gIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0Qm91bmRzKCksXG4gICAgICAgIGJvdW5kc1RvcCA9IGJvdW5kcy5nZXRUb3AoKSxcbiAgICAgICAgYm91bmRzTGVmdCA9IGJvdW5kcy5nZXRMZWZ0KCksXG4gICAgICAgIGJvdW5kc1JpZ2h0ID0gYm91bmRzLmdldFJpZ2h0KCksXG4gICAgICAgIGJvdW5kc0JvdHRvbSA9IGJvdW5kcy5nZXRCb3R0b20oKSxcbiAgICAgICAgYm91bmRzV2lkdGggPSBib3VuZHNSaWdodCAtIGJvdW5kc0xlZnQsXG4gICAgICAgIGJvdW5kc0hlaWdodCA9IGJvdW5kc0JvdHRvbSAtIGJvdW5kc1RvcCxcbiAgICAgICAgdG9wT2Zmc2V0ID0gTWF0aC5mbG9vcihib3VuZHNIZWlnaHQgLyAyKSxcbiAgICAgICAgbGVmdE9mZnNldCA9IE1hdGguZmxvb3IoYm91bmRzV2lkdGggLyAyKSxcbiAgICAgICAgZHJhZ0VsZW1lbnQgPSB0aGlzLCAvLy9cbiAgICAgICAgc3RhcnRNb3VzZVRvcCA9IG1vdXNlVG9wLCAvLy9cbiAgICAgICAgc3RhcnRNb3VzZUxlZnQgPSBtb3VzZUxlZnQsIC8vL1xuICAgICAgICBjdXN0b21FdmVudFR5cGUgPSBTVEFSVF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFO1xuXG4gIHdpbmRvdy5vbktleURvd24oa2V5RG93bkhhbmRsZXIsIHRoaXMpO1xuXG4gIHdpbmRvdy5vbk1vdXNlTW92ZShtb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcblxuICB0aGlzLmFkZENsYXNzKFwiZHJhZ2dpbmdcIik7XG5cbiAgT2JqZWN0LmFzc2lnbihnbG9iYWxUaGlzLCB7XG4gICAgZHJhZ0VsZW1lbnRcbiAgfSk7XG5cbiAgdGhpcy5zZXRUb3BPZmZzZXQodG9wT2Zmc2V0KTtcblxuICB0aGlzLnNldExlZnRPZmZzZXQobGVmdE9mZnNldCk7XG5cbiAgdGhpcy5zZXRTdGFydE1vdXNlVG9wKHN0YXJ0TW91c2VUb3ApO1xuXG4gIHRoaXMuc2V0U3RhcnRNb3VzZUxlZnQoc3RhcnRNb3VzZUxlZnQpO1xuXG4gIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzKGN1c3RvbUV2ZW50VHlwZSk7XG5cbiAgdGhpcy5kcmFnKG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xufVxuXG5mdW5jdGlvbiBzdG9wRHJhZyhhYm9ydGVkKSB7XG4gIGNvbnN0IHsgZHJvcEVsZW1lbnQgfSA9IGdsb2JhbFRoaXMsXG4gICAgICAgIGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRTtcblxuICB3aW5kb3cub2ZmS2V5RG93bihrZXlEb3duSGFuZGxlciwgdGhpcyk7XG5cbiAgd2luZG93Lm9mZk1vdXNlTW92ZShtb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcblxuICBjb25zdCBkb25lID0gKCkgPT4ge1xuICAgIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzQXN5bmMoY3VzdG9tRXZlbnRUeXBlLCBkcm9wRWxlbWVudCwgYWJvcnRlZCwgKCkgPT4ge1xuICAgICAgY29uc3QgZHJhZ0VsZW1lbnQgPSBudWxsO1xuXG4gICAgICBPYmplY3QuYXNzaWduKGdsb2JhbFRoaXMsIHtcbiAgICAgICAgZHJhZ0VsZW1lbnRcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiZHJhZ2dpbmdcIik7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoZHJvcEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICBsZXQgZHJhZ0VsZW1lbnQgPSB0aGlzOyAvLy9cblxuICAgIGNvbnN0IGRyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50ID0gY2hlY2tEcmFnRWxlbWVudElnbm9yZXNEcm9wRWxlbWVudChkcmFnRWxlbWVudCwgZHJvcEVsZW1lbnQpO1xuXG4gICAgaWYgKGRyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50KSB7XG4gICAgICBkcmFnRWxlbWVudCA9IG51bGw7XG4gICAgfVxuXG4gICAgZHJvcEVsZW1lbnQuZHJvcChkcmFnRWxlbWVudCwgYWJvcnRlZCwgZG9uZSk7XG4gIH0gZWxzZSB7XG4gICAgZG9uZSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRyYWcobW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBjb25zdCBzY3JvbGxUb3AgPSB3aW5kb3cuZ2V0U2Nyb2xsVG9wKCksXG4gICAgc2Nyb2xsTGVmdCA9IHdpbmRvdy5nZXRTY3JvbGxMZWZ0KCksXG4gICAgdG9wT2Zmc2V0ID0gdGhpcy5nZXRUb3BPZmZzZXQoKSxcbiAgICBsZWZ0T2Zmc2V0ID0gdGhpcy5nZXRMZWZ0T2Zmc2V0KCksXG4gICAgc3RhcnRNb3VzZVRvcCA9IHRoaXMuZ2V0U3RhcnRNb3VzZVRvcCgpLFxuICAgIHN0YXJ0TW91c2VMZWZ0ID0gdGhpcy5nZXRTdGFydE1vdXNlTGVmdCgpLFxuICAgIGN1c3RvbUV2ZW50VHlwZSA9IERSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgcmVsYXRpdmVNb3VzZVRvcCA9IG1vdXNlVG9wIC0gc3RhcnRNb3VzZVRvcCxcbiAgICByZWxhdGl2ZU1vdXNlTGVmdCA9IG1vdXNlTGVmdCAtIHN0YXJ0TW91c2VMZWZ0O1xuXG4gIGxldCB0b3AgPSBzdGFydE1vdXNlVG9wICsgcmVsYXRpdmVNb3VzZVRvcCAtIHRvcE9mZnNldCAtIHNjcm9sbFRvcCxcbiAgICBsZWZ0ID0gc3RhcnRNb3VzZUxlZnQgKyByZWxhdGl2ZU1vdXNlTGVmdCAtIGxlZnRPZmZzZXQgLSBzY3JvbGxMZWZ0O1xuXG4gIHRvcCA9IGAke3RvcH1weGA7IC8vL1xuICBsZWZ0ID0gYCR7bGVmdH1weGA7IC8vL1xuXG4gIGNvbnN0IGNzcyA9IHtcbiAgICB0b3AsXG4gICAgbGVmdFxuICB9O1xuXG4gIHRoaXMuY3NzKGNzcyk7XG5cbiAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnMoY3VzdG9tRXZlbnRUeXBlLCByZWxhdGl2ZU1vdXNlVG9wLCByZWxhdGl2ZU1vdXNlTGVmdCk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VzdG9tRHJhZyhkcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBEUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gZHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tRHJhZyhkcmFnQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBEUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gZHJhZ0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9mZkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VzdG9tU3RvcERyYWcoc3RvcERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUT1BfRFJBR19DVVNUT01fRVZFTlRfVFlQRSxcbiAgICAgICAgY3VzdG9tSGFuZGxlciA9IHN0b3BEcmFnQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21TdG9wRHJhZyhzdG9wRHJhZ0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc3RvcERyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vZmZDdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvbkN1c3RvbVN0YXJ0RHJhZyhzdGFydERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUQVJUX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdGFydERyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vbkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9mZkN1c3RvbVN0YXJ0RHJhZyhzdGFydERyYWdDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNUQVJUX0RSQUdfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzdGFydERyYWdDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vZmZDdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBzdGFydFdhaXRpbmdUb0RyYWcobW91c2VUb3AsIG1vdXNlTGVmdCkge1xuICBsZXQgdGltZW91dCA9IHRoaXMuZ2V0VGltZW91dCgpO1xuXG4gIGlmICh0aW1lb3V0ID09PSBudWxsKSB7XG4gICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5yZXNldFRpbWVvdXQoKTtcblxuICAgICAgdGhpcy5zdGFydERyYWcobW91c2VUb3AsIG1vdXNlTGVmdCk7XG4gICAgfSwgU1RBUlRfRFJBR0dJTkdfREVMQVkpO1xuXG4gICAgdGhpcy51cGRhdGVUaW1lb3V0KHRpbWVvdXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0b3BXYWl0aW5nVG9EcmFnKCkge1xuICBjb25zdCB0aW1lb3V0ID0gdGhpcy5nZXRUaW1lb3V0KCk7XG5cbiAgaWYgKHRpbWVvdXQgIT09IG51bGwpIHtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG5cbiAgICB0aGlzLnJlc2V0VGltZW91dCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHsgdGltZW91dCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xuXG4gIHJldHVybiB0aW1lb3V0O1xufVxuXG5mdW5jdGlvbiByZXNldFRpbWVvdXQoKSB7XG4gIGNvbnN0IHRpbWVvdXQgPSBudWxsO1xuXG4gIHRoaXMudXBkYXRlVGltZW91dCh0aW1lb3V0KTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVGltZW91dCh0aW1lb3V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRpbWVvdXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFRvcE9mZnNldCgpIHtcbiAgY29uc3QgeyB0b3BPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gdG9wT2Zmc2V0O1xufVxuXG5mdW5jdGlvbiBnZXRMZWZ0T2Zmc2V0KCkge1xuICBjb25zdCB7IGxlZnRPZmZzZXQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcblxuICByZXR1cm4gbGVmdE9mZnNldDtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb3VzZVRvcCgpIHtcbiAgY29uc3QgeyBzdGFydE1vdXNlVG9wIH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VUb3A7XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW91c2VMZWZ0KCkge1xuICBjb25zdCB7IHN0YXJ0TW91c2VMZWZ0IH0gPSB0aGlzLmdldFN0YXRlKCk7XG5cbiAgcmV0dXJuIHN0YXJ0TW91c2VMZWZ0O1xufVxuXG5mdW5jdGlvbiBzZXRUb3BPZmZzZXQodG9wT2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIHRvcE9mZnNldFxuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0TGVmdE9mZnNldChsZWZ0T2Zmc2V0KSB7XG4gIHRoaXMudXBkYXRlU3RhdGUoe1xuICAgIGxlZnRPZmZzZXRcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldFN0YXJ0TW91c2VUb3Aoc3RhcnRNb3VzZVRvcCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlVG9wXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydE1vdXNlTGVmdChzdGFydE1vdXNlTGVmdCkge1xuICB0aGlzLnVwZGF0ZVN0YXRlKHtcbiAgICBzdGFydE1vdXNlTGVmdFxuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBlbmFibGVEcmFnLFxuICBkaXNhYmxlRHJhZyxcbiAgaXNEcmFnZ2luZyxcbiAgc3RhcnREcmFnLFxuICBzdG9wRHJhZyxcbiAgZHJhZyxcbiAgb25DdXN0b21EcmFnLFxuICBvZmZDdXN0b21EcmFnLFxuICBvbkN1c3RvbVN0b3BEcmFnLFxuICBvZmZDdXN0b21TdG9wRHJhZyxcbiAgb25DdXN0b21TdGFydERyYWcsXG4gIG9mZkN1c3RvbVN0YXJ0RHJhZyxcbiAgc3RhcnRXYWl0aW5nVG9EcmFnLFxuICBzdG9wV2FpdGluZ1RvRHJhZyxcbiAgZ2V0VGltZW91dCxcbiAgcmVzZXRUaW1lb3V0LFxuICB1cGRhdGVUaW1lb3V0LFxuICBnZXRUb3BPZmZzZXQsXG4gIGdldExlZnRPZmZzZXQsXG4gIGdldFN0YXJ0TW91c2VUb3AsXG4gIGdldFN0YXJ0TW91c2VMZWZ0LFxuICBzZXRUb3BPZmZzZXQsXG4gIHNldExlZnRPZmZzZXQsXG4gIHNldFN0YXJ0TW91c2VUb3AsXG4gIHNldFN0YXJ0TW91c2VMZWZ0XG59O1xuXG5mdW5jdGlvbiBrZXlEb3duSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCB7IGtleUNvZGUgfSA9IGV2ZW50LFxuICAgICAgICBlc2NhcGVLZXkgPSAoa2V5Q29kZSA9PT0gRVNDQVBFX0tFWV9DT0RFKSxcbiAgICAgICAgYWJvcnRlZCA9IHRydWU7XG5cbiAgaWYgKGVzY2FwZUtleSkge1xuICAgIHRoaXMuc3RvcERyYWcoYWJvcnRlZCk7XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VzZVVwSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCBkcmFnZ2luZyA9IHRoaXMuaXNEcmFnZ2luZygpLFxuICAgICAgICBhYm9ydGVkID0gZmFsc2U7XG5cbiAgZHJhZ2dpbmcgP1xuICAgIHRoaXMuc3RvcERyYWcoYWJvcnRlZCkgOlxuICAgICAgdGhpcy5zdG9wV2FpdGluZ1RvRHJhZygpO1xuXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gIHdpbmRvdy5vZmZFdmVudChCTFVSX0VWRU5UX1RZUEUsIG1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgIC8vL1xuXG4gIHdpbmRvdy5vZmZNb3VzZVVwKG1vdXNlVXBIYW5kbGVyLCB0aGlzKTtcbn1cblxuZnVuY3Rpb24gbW91c2VEb3duSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCB7IGJ1dHRvbiB9ID0gZXZlbnQ7XG5cbiAgaWYgKGJ1dHRvbiA9PT0gTEVGVF9NT1VTRV9CVVRUT04pIHtcbiAgICBjb25zdCBkcmFnZ2luZyA9IHRoaXMuaXNEcmFnZ2luZygpO1xuXG4gICAgaWYgKCFkcmFnZ2luZykge1xuICAgICAgY29uc3QgbW91c2VUb3AgPSBtb3VzZVRvcEZyb21FdmVudChldmVudCksXG4gICAgICAgICAgICBtb3VzZUxlZnQgPSBtb3VzZUxlZnRGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgICB0aGlzLnN0YXJ0V2FpdGluZ1RvRHJhZyhtb3VzZVRvcCwgbW91c2VMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICB3aW5kb3cub25FdmVudChCTFVSX0VWRU5UX1RZUEUsIG1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXG5cbiAgd2luZG93Lm9uTW91c2VVcChtb3VzZVVwSGFuZGxlciwgdGhpcyk7XG59XG5cbmZ1bmN0aW9uIG1vdXNlTW92ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgZHJhZ2dpbmcgPSB0aGlzLmlzRHJhZ2dpbmcoKTtcblxuICBpZiAoZHJhZ2dpbmcpIHtcbiAgICBjb25zdCBtb3VzZVRvcCA9IG1vdXNlVG9wRnJvbUV2ZW50KGV2ZW50KSxcbiAgICAgICAgICBtb3VzZUxlZnQgPSBtb3VzZUxlZnRGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgdGhpcy5kcmFnKG1vdXNlVG9wLCBtb3VzZUxlZnQpO1xuICB9XG5cbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG4iXSwibmFtZXMiOlsiRVNDQVBFX0tFWV9DT0RFIiwia2V5Q29kZXMiLCJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiTEVGVF9NT1VTRV9CVVRUT04iLCJtb3VzZUJ1dHRvbnMiLCJkcmFnRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsImdsb2JhbFRoaXMiLCJlbmFibGVEcmFnIiwidGltZW91dCIsInRvcE9mZnNldCIsImxlZnRPZmZzZXQiLCJzdGFydE1vdXNlVG9wIiwic3RhcnRNb3VzZUxlZnQiLCJvbk1vdXNlRG93biIsIm1vdXNlRG93bkhhbmRsZXIiLCJzZXRTdGF0ZSIsImRpc2FibGVEcmFnIiwib2ZmTW91c2VEb3duIiwiaXNEcmFnZ2luZyIsImRyYWdnaW5nIiwiaGFzQ2xhc3MiLCJzdGFydERyYWciLCJtb3VzZVRvcCIsIm1vdXNlTGVmdCIsImJvdW5kcyIsImdldEJvdW5kcyIsImJvdW5kc1RvcCIsImdldFRvcCIsImJvdW5kc0xlZnQiLCJnZXRMZWZ0IiwiYm91bmRzUmlnaHQiLCJnZXRSaWdodCIsImJvdW5kc0JvdHRvbSIsImdldEJvdHRvbSIsImJvdW5kc1dpZHRoIiwiYm91bmRzSGVpZ2h0IiwiTWF0aCIsImZsb29yIiwiY3VzdG9tRXZlbnRUeXBlIiwiU1RBUlRfRFJBR19DVVNUT01fRVZFTlRfVFlQRSIsIndpbmRvdyIsIm9uS2V5RG93biIsImtleURvd25IYW5kbGVyIiwib25Nb3VzZU1vdmUiLCJtb3VzZU1vdmVIYW5kbGVyIiwiYWRkQ2xhc3MiLCJzZXRUb3BPZmZzZXQiLCJzZXRMZWZ0T2Zmc2V0Iiwic2V0U3RhcnRNb3VzZVRvcCIsInNldFN0YXJ0TW91c2VMZWZ0IiwiY2FsbEN1c3RvbUhhbmRsZXJzIiwiZHJhZyIsInN0b3BEcmFnIiwiYWJvcnRlZCIsImRyb3BFbGVtZW50IiwiU1RPUF9EUkFHX0NVU1RPTV9FVkVOVF9UWVBFIiwib2ZmS2V5RG93biIsIm9mZk1vdXNlTW92ZSIsImRvbmUiLCJjYWxsQ3VzdG9tSGFuZGxlcnNBc3luYyIsInJlbW92ZUNsYXNzIiwiZHJhZ0VsZW1lbnRJZ25vcmVzRHJvcEVsZW1lbnQiLCJjaGVja0RyYWdFbGVtZW50SWdub3Jlc0Ryb3BFbGVtZW50IiwiZHJvcCIsInNjcm9sbFRvcCIsImdldFNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJnZXRTY3JvbGxMZWZ0IiwiZ2V0VG9wT2Zmc2V0IiwiZ2V0TGVmdE9mZnNldCIsImdldFN0YXJ0TW91c2VUb3AiLCJnZXRTdGFydE1vdXNlTGVmdCIsIkRSQUdfQ1VTVE9NX0VWRU5UX1RZUEUiLCJyZWxhdGl2ZU1vdXNlVG9wIiwicmVsYXRpdmVNb3VzZUxlZnQiLCJ0b3AiLCJsZWZ0IiwiY3NzIiwib25DdXN0b21EcmFnIiwiZHJhZ0N1c3RvbUhhbmRsZXIiLCJlbGVtZW50IiwiY3VzdG9tSGFuZGxlciIsIm9uQ3VzdG9tRXZlbnQiLCJvZmZDdXN0b21EcmFnIiwib2ZmQ3VzdG9tRXZlbnQiLCJvbkN1c3RvbVN0b3BEcmFnIiwic3RvcERyYWdDdXN0b21IYW5kbGVyIiwib2ZmQ3VzdG9tU3RvcERyYWciLCJvbkN1c3RvbVN0YXJ0RHJhZyIsInN0YXJ0RHJhZ0N1c3RvbUhhbmRsZXIiLCJvZmZDdXN0b21TdGFydERyYWciLCJzdGFydFdhaXRpbmdUb0RyYWciLCJnZXRUaW1lb3V0Iiwic2V0VGltZW91dCIsInJlc2V0VGltZW91dCIsIlNUQVJUX0RSQUdHSU5HX0RFTEFZIiwidXBkYXRlVGltZW91dCIsInN0b3BXYWl0aW5nVG9EcmFnIiwiY2xlYXJUaW1lb3V0IiwiZ2V0U3RhdGUiLCJ1cGRhdGVTdGF0ZSIsImV2ZW50Iiwia2V5Q29kZSIsImVzY2FwZUtleSIsInN0b3BQcm9wYWdhdGlvbiIsIm1vdXNlVXBIYW5kbGVyIiwib2ZmRXZlbnQiLCJvZmZNb3VzZVVwIiwiYnV0dG9uIiwibW91c2VUb3BGcm9tRXZlbnQiLCJtb3VzZUxlZnRGcm9tRXZlbnQiLCJvbkV2ZW50Iiwib25Nb3VzZVVwIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF3UkE7OztlQUFBOzs7eUJBdFJ5QjtvQkFDd0I7eUJBRVo7eUJBQ2M7cUJBQ0c7Z0NBQzRDO0FBRWxHLElBQU0sQUFBRUEsa0JBQW9CQyxtQkFBUSxDQUE1QkQsaUJBQ0YsQUFBRUUsa0JBQW9CQyxnQkFBVSxDQUE5QkQsaUJBQ0YsQUFBRUUsb0JBQXNCQyxrQkFBWSxDQUFsQ0Q7QUFFUixJQUFNRSxjQUFjO0FBRXBCQyxPQUFPQyxNQUFNLENBQUNDLFlBQVk7SUFDeEJILGFBQUFBO0FBQ0Y7QUFFQSxTQUFTSTtJQUNQLElBQU1DLFVBQVUsTUFDVkMsWUFBWSxNQUNaQyxhQUFhLE1BQ2JDLGdCQUFnQixNQUNoQkMsaUJBQWlCO0lBRXZCLElBQUksQ0FBQ0MsV0FBVyxDQUFD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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.81",
4
+ "version": "1.3.83",
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.",
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/djalbat/easy-drag-and-drop"
11
11
  },
12
12
  "dependencies": {
13
- "easy": "^15.1.9",
13
+ "easy": "^15.1.10",
14
14
  "easy-with-style": "^3.0.273",
15
15
  "necessary": "^13.1.4"
16
16
  },
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
 
3
- export const DRAG_CUSTOM_EVENT_TYPE = "drag";
4
- export const DROP_CUSTOM_EVENT_TYPE = "drop";
5
- export const DRAG_OUT_CUSTOM_EVENT_TYPE = "dragout";
6
- export const DRAG_OVER_CUSTOM_EVENT_TYPE = "dragover";
7
- export const STOP_DRAG_CUSTOM_EVENT_TYPE = "stopdrag";
8
- export const START_DRAG_CUSTOM_EVENT_TYPE = "startdrag";
3
+ export const DRAG_CUSTOM_EVENT_TYPE = "drag-custom";
4
+ export const DROP_CUSTOM_EVENT_TYPE = "drop-custom";
5
+ export const DRAG_OUT_CUSTOM_EVENT_TYPE = "drag-out-custom";
6
+ export const DRAG_OVER_CUSTOM_EVENT_TYPE = "drag-over-custom";
7
+ export const STOP_DRAG_CUSTOM_EVENT_TYPE = "stop-drag-custom";
8
+ export const START_DRAG_CUSTOM_EVENT_TYPE = "start-drag-custom";
9
9
 
10
10
  export default {
11
11
  DRAG_CUSTOM_EVENT_TYPE,
@@ -6,7 +6,7 @@ import { window, eventTypes, mouseButtons } from "easy";
6
6
  import { START_DRAGGING_DELAY } from "../constants";
7
7
  import { checkDragElementIgnoresDropElement } from "../utilities/reference";
8
8
  import { mouseTopFromEvent, mouseLeftFromEvent } from "../utilities/event";
9
- import { DRAG_CUSTOM_CUSTOM_EVENT_TYPE, STOP_DRAG_CUSTOM_EVENT_TYPE, START_DRAG_CUSTOM_EVENT_TYPE } from "../customEventTypes";
9
+ import { DRAG_CUSTOM_EVENT_TYPE, STOP_DRAG_CUSTOM_EVENT_TYPE, START_DRAG_CUSTOM_EVENT_TYPE } from "../customEventTypes";
10
10
 
11
11
  const { ESCAPE_KEY_CODE } = keyCodes,
12
12
  { BLUR_EVENT_TYPE } = eventTypes,
@@ -126,7 +126,7 @@ function drag(mouseTop, mouseLeft) {
126
126
  leftOffset = this.getLeftOffset(),
127
127
  startMouseTop = this.getStartMouseTop(),
128
128
  startMouseLeft = this.getStartMouseLeft(),
129
- customEventType = DRAG_CUSTOM_CUSTOM_EVENT_TYPE,
129
+ customEventType = DRAG_CUSTOM_EVENT_TYPE,
130
130
  relativeMouseTop = mouseTop - startMouseTop,
131
131
  relativeMouseLeft = mouseLeft - startMouseLeft;
132
132
 
@@ -147,14 +147,14 @@ function drag(mouseTop, mouseLeft) {
147
147
  }
148
148
 
149
149
  function onCustomDrag(dragCustomHandler, element) {
150
- const customEventType = DRAG_CUSTOM_CUSTOM_EVENT_TYPE,
150
+ const customEventType = DRAG_CUSTOM_EVENT_TYPE,
151
151
  customHandler = dragCustomHandler; ///
152
152
 
153
153
  this.onCustomEvent(customEventType, customHandler, element);
154
154
  }
155
155
 
156
156
  function offCustomDrag(dragCustomHandler, element) {
157
- const customEventType = DRAG_CUSTOM_CUSTOM_EVENT_TYPE,
157
+ const customEventType = DRAG_CUSTOM_EVENT_TYPE,
158
158
  customHandler = dragCustomHandler; ///
159
159
 
160
160
  this.offCustomEvent(customEventType, customHandler, element);